vuetify eingebunden + erster Versuch Combobox
This commit is contained in:
+93
@@ -0,0 +1,93 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _mixins = require('../../../util/mixins');
|
||||
|
||||
var _mixins2 = _interopRequireDefault(_mixins);
|
||||
|
||||
var _themeable = require('../../../mixins/themeable');
|
||||
|
||||
var _themeable2 = _interopRequireDefault(_themeable);
|
||||
|
||||
var _colorable = require('../../../mixins/colorable');
|
||||
|
||||
var _colorable2 = _interopRequireDefault(_colorable);
|
||||
|
||||
var _times = require('./times');
|
||||
|
||||
var _times2 = _interopRequireDefault(_times);
|
||||
|
||||
var _mouse = require('./mouse');
|
||||
|
||||
var _mouse2 = _interopRequireDefault(_mouse);
|
||||
|
||||
var _props = require('../util/props');
|
||||
|
||||
var _props2 = _interopRequireDefault(_props);
|
||||
|
||||
var _timestamp = require('../util/timestamp');
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
/* @vue/component */
|
||||
|
||||
// Util
|
||||
exports.default = (0, _mixins2.default)(_colorable2.default, _themeable2.default, _times2.default, _mouse2.default).extend({
|
||||
name: 'calendar-base',
|
||||
props: _props2.default.base,
|
||||
computed: {
|
||||
weekdaySkips: function weekdaySkips() {
|
||||
return (0, _timestamp.getWeekdaySkips)(this.weekdays);
|
||||
},
|
||||
parsedStart: function parsedStart() {
|
||||
return (0, _timestamp.parseTimestamp)(this.start);
|
||||
},
|
||||
parsedEnd: function parsedEnd() {
|
||||
return (0, _timestamp.parseTimestamp)(this.end);
|
||||
},
|
||||
days: function days() {
|
||||
return (0, _timestamp.createDayList)(this.parsedStart, this.parsedEnd, this.times.today, this.weekdaySkips);
|
||||
},
|
||||
dayFormatter: function dayFormatter() {
|
||||
if (this.dayFormat) {
|
||||
return this.dayFormat;
|
||||
}
|
||||
var options = { timeZone: 'UTC', day: 'numeric' };
|
||||
return (0, _timestamp.createNativeLocaleFormatter)(this.locale, function (_tms, _short) {
|
||||
return options;
|
||||
});
|
||||
},
|
||||
weekdayFormatter: function weekdayFormatter() {
|
||||
if (this.weekdayFormat) {
|
||||
return this.weekdayFormat;
|
||||
}
|
||||
var longOptions = { timeZone: 'UTC', weekday: 'long' };
|
||||
var shortOptions = { timeZone: 'UTC', weekday: 'short' };
|
||||
return (0, _timestamp.createNativeLocaleFormatter)(this.locale, function (_tms, short) {
|
||||
return short ? shortOptions : longOptions;
|
||||
});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getRelativeClasses: function getRelativeClasses(timestamp) {
|
||||
var outside = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
||||
|
||||
return {
|
||||
'v-present': timestamp.present,
|
||||
'v-past': timestamp.past,
|
||||
'v-future': timestamp.future,
|
||||
'v-outside': outside
|
||||
};
|
||||
},
|
||||
getStartOfWeek: function getStartOfWeek(timestamp) {
|
||||
return (0, _timestamp.getStartOfWeek)(timestamp, this.weekdays, this.times.today);
|
||||
},
|
||||
getEndOfWeek: function getEndOfWeek(timestamp) {
|
||||
return (0, _timestamp.getEndOfWeek)(timestamp, this.weekdays, this.times.today);
|
||||
}
|
||||
}
|
||||
}); // Mixins
|
||||
//# sourceMappingURL=calendar-base.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["../../../../src/components/VCalendar/mixins/calendar-base.ts"],"names":[],"mappings":";;;;;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AAGA;;;;AACA;;;;AAWA;;AAbA;kBAce,sBAAO,mBAAP,EAAkB,mBAAlB,EAA6B,eAA7B,EAAoC,eAApC,EAA2C,MAA3C,CAAkD;AAC/D,UAAM,eADyD;AAG/D,WAAO,gBAAM,IAHkD;AAK/D,cAAU;AACR,oBADQ,0BACI;AACV,mBAAO,gCAAgB,KAAK,QAArB,CAAP;AACD,SAHO;AAIR,mBAJQ,yBAIG;AACT,mBAAO,+BAAe,KAAK,KAApB,CAAP;AACD,SANO;AAOR,iBAPQ,uBAOC;AACP,mBAAO,+BAAe,KAAK,GAApB,CAAP;AACD,SATO;AAUR,YAVQ,kBAUJ;AACF,mBAAO,8BACL,KAAK,WADA,EAEL,KAAK,SAFA,EAGL,KAAK,KAAL,CAAW,KAHN,EAIL,KAAK,YAJA,CAAP;AAMD,SAjBO;AAkBR,oBAlBQ,0BAkBI;AACV,gBAAI,KAAK,SAAT,EAAoB;AAClB,uBAAO,KAAK,SAAZ;AACD;AAED,gBAAM,UAAU,EAAE,UAAU,KAAZ,EAAmB,KAAK,SAAxB,EAAhB;AAEA,mBAAO,4CACL,KAAK,MADA,EAEL,UAAC,IAAD,EAAO,MAAP;AAAA,uBAAkB,OAAlB;AAAA,aAFK,CAAP;AAID,SA7BO;AA8BR,wBA9BQ,8BA8BQ;AACd,gBAAI,KAAK,aAAT,EAAwB;AACtB,uBAAO,KAAK,aAAZ;AACD;AAED,gBAAM,cAAc,EAAE,UAAU,KAAZ,EAAmB,SAAS,MAA5B,EAApB;AACA,gBAAM,eAAe,EAAE,UAAU,KAAZ,EAAmB,SAAS,OAA5B,EAArB;AAEA,mBAAO,4CACL,KAAK,MADA,EAEL,UAAC,IAAD,EAAO,KAAP;AAAA,uBAAiB,QAAQ,YAAR,GAAuB,WAAxC;AAAA,aAFK,CAAP;AAID;AA1CO,KALqD;AAkD/D,aAAS;AACP,0BADO,8BACa,SADb,EACmD;AAAA,gBAAf,OAAe,uEAAL,KAAK;;AACxD,mBAAO;AACL,6BAAa,UAAU,OADlB;AAEL,0BAAU,UAAU,IAFf;AAGL,4BAAY,UAAU,MAHjB;AAIL,6BAAa;AAJR,aAAP;AAMD,SARM;AASP,sBATO,0BASS,SATT,EAS8B;AACnC,mBAAO,+BAAe,SAAf,EAA0B,KAAK,QAA/B,EAAyC,KAAK,KAAL,CAAW,KAApD,CAAP;AACD,SAXM;AAYP,oBAZO,wBAYO,SAZP,EAY4B;AACjC,mBAAO,6BAAa,SAAb,EAAwB,KAAK,QAA7B,EAAuC,KAAK,KAAL,CAAW,KAAlD,CAAP;AACD;AAdM;AAlDsD,CAAlD,C","sourcesContent":["\n// Mixins\nimport mixins from '../../../util/mixins'\nimport Themeable from '../../../mixins/themeable'\nimport Colorable from '../../../mixins/colorable'\nimport Times from './times'\nimport Mouse from './mouse'\n\n// Util\nimport props from '../util/props'\nimport {\n VTimestamp,\n VTimestampFormatter,\n parseTimestamp,\n getWeekdaySkips,\n createDayList,\n createNativeLocaleFormatter,\n getStartOfWeek,\n getEndOfWeek\n} from '../util/timestamp'\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable, Times, Mouse).extend({\n name: 'calendar-base',\n\n props: props.base,\n\n computed: {\n weekdaySkips (): number[] {\n return getWeekdaySkips(this.weekdays)\n },\n parsedStart (): VTimestamp {\n return parseTimestamp(this.start) as VTimestamp\n },\n parsedEnd (): VTimestamp {\n return parseTimestamp(this.end) as VTimestamp\n },\n days (): VTimestamp[] {\n return createDayList(\n this.parsedStart,\n this.parsedEnd,\n this.times.today,\n this.weekdaySkips\n )\n },\n dayFormatter (): VTimestampFormatter {\n if (this.dayFormat) {\n return this.dayFormat as VTimestampFormatter\n }\n\n const options = { timeZone: 'UTC', day: 'numeric' }\n\n return createNativeLocaleFormatter(\n this.locale,\n (_tms, _short) => options\n )\n },\n weekdayFormatter (): VTimestampFormatter {\n if (this.weekdayFormat) {\n return this.weekdayFormat as VTimestampFormatter\n }\n\n const longOptions = { timeZone: 'UTC', weekday: 'long' }\n const shortOptions = { timeZone: 'UTC', weekday: 'short' }\n\n return createNativeLocaleFormatter(\n this.locale,\n (_tms, short) => short ? shortOptions : longOptions\n )\n }\n },\n\n methods: {\n getRelativeClasses (timestamp: VTimestamp, outside = false): object {\n return {\n 'v-present': timestamp.present,\n 'v-past': timestamp.past,\n 'v-future': timestamp.future,\n 'v-outside': outside\n }\n },\n getStartOfWeek (timestamp: VTimestamp): VTimestamp {\n return getStartOfWeek(timestamp, this.weekdays, this.times.today)\n },\n getEndOfWeek (timestamp: VTimestamp): VTimestamp {\n return getEndOfWeek(timestamp, this.weekdays, this.times.today)\n }\n }\n})\n"],"sourceRoot":""}
|
||||
+132
@@ -0,0 +1,132 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _calendarBase = require('./calendar-base');
|
||||
|
||||
var _calendarBase2 = _interopRequireDefault(_calendarBase);
|
||||
|
||||
var _props = require('../util/props');
|
||||
|
||||
var _props2 = _interopRequireDefault(_props);
|
||||
|
||||
var _timestamp = require('../util/timestamp');
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
/* @vue/component */
|
||||
|
||||
// Util
|
||||
exports.default = _calendarBase2.default.extend({
|
||||
name: 'calendar-with-intervals',
|
||||
props: _props2.default.intervals,
|
||||
computed: {
|
||||
parsedFirstInterval: function parsedFirstInterval() {
|
||||
return parseInt(this.firstInterval);
|
||||
},
|
||||
parsedIntervalMinutes: function parsedIntervalMinutes() {
|
||||
return parseInt(this.intervalMinutes);
|
||||
},
|
||||
parsedIntervalCount: function parsedIntervalCount() {
|
||||
return parseInt(this.intervalCount);
|
||||
},
|
||||
parsedIntervalHeight: function parsedIntervalHeight() {
|
||||
return parseFloat(this.intervalHeight);
|
||||
},
|
||||
firstMinute: function firstMinute() {
|
||||
return this.parsedFirstInterval * this.parsedIntervalMinutes;
|
||||
},
|
||||
bodyHeight: function bodyHeight() {
|
||||
return this.parsedIntervalCount * this.parsedIntervalHeight;
|
||||
},
|
||||
days: function days() {
|
||||
return (0, _timestamp.createDayList)(this.parsedStart, this.parsedEnd, this.times.today, this.weekdaySkips, this.maxDays);
|
||||
},
|
||||
intervals: function intervals() {
|
||||
var days = this.days;
|
||||
var first = this.parsedFirstInterval;
|
||||
var minutes = this.parsedIntervalMinutes;
|
||||
var count = this.parsedIntervalCount;
|
||||
var now = this.times.now;
|
||||
return days.map(function (d) {
|
||||
return (0, _timestamp.createIntervalList)(d, first, minutes, count, now);
|
||||
});
|
||||
},
|
||||
intervalFormatter: function intervalFormatter() {
|
||||
if (this.intervalFormat) {
|
||||
return this.intervalFormat;
|
||||
}
|
||||
var longOptions = { timeZone: 'UTC', hour12: true, hour: '2-digit', minute: '2-digit' };
|
||||
var shortOptions = { timeZone: 'UTC', hour12: true, hour: 'numeric', minute: '2-digit' };
|
||||
var shortHourOptions = { timeZone: 'UTC', hour12: true, hour: 'numeric' };
|
||||
return (0, _timestamp.createNativeLocaleFormatter)(this.locale, function (tms, short) {
|
||||
return short ? tms.minute === 0 ? shortHourOptions : shortOptions : longOptions;
|
||||
});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
showIntervalLabelDefault: function showIntervalLabelDefault(interval) {
|
||||
var first = this.intervals[0][0];
|
||||
var isFirst = first.hour === interval.hour && first.minute === interval.minute;
|
||||
return !isFirst && interval.minute === 0;
|
||||
},
|
||||
intervalStyleDefault: function intervalStyleDefault(_interval) {
|
||||
return undefined;
|
||||
},
|
||||
getTimestampAtEvent: function getTimestampAtEvent(e, day) {
|
||||
var timestamp = (0, _timestamp.copyTimestamp)(day);
|
||||
var bounds = e.currentTarget.getBoundingClientRect();
|
||||
var baseMinutes = this.firstMinute;
|
||||
var touchEvent = e;
|
||||
var mouseEvent = e;
|
||||
var touches = touchEvent.changedTouches || touchEvent.touches;
|
||||
var clientY = touches && touches[0] ? touches[0].clientY : mouseEvent.clientY;
|
||||
var addIntervals = (clientY - bounds.top) / this.parsedIntervalHeight;
|
||||
var addMinutes = Math.floor(addIntervals * this.parsedIntervalMinutes);
|
||||
var minutes = baseMinutes + addMinutes;
|
||||
return (0, _timestamp.updateMinutes)(timestamp, minutes, this.times.now);
|
||||
},
|
||||
getSlotScope: function getSlotScope(timestamp) {
|
||||
var scope = (0, _timestamp.copyTimestamp)(timestamp);
|
||||
scope.timeToY = this.timeToY;
|
||||
scope.minutesToPixels = this.minutesToPixels;
|
||||
return scope;
|
||||
},
|
||||
scrollToTime: function scrollToTime(time) {
|
||||
var y = this.timeToY(time);
|
||||
var pane = this.$refs.scrollArea;
|
||||
if (y === false || !pane) {
|
||||
return false;
|
||||
}
|
||||
pane.scrollTop = y;
|
||||
return true;
|
||||
},
|
||||
minutesToPixels: function minutesToPixels(minutes) {
|
||||
return minutes / this.parsedIntervalMinutes * this.parsedIntervalHeight;
|
||||
},
|
||||
timeToY: function timeToY(time) {
|
||||
var clamp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
||||
|
||||
var minutes = (0, _timestamp.parseTime)(time);
|
||||
if (minutes === false) {
|
||||
return false;
|
||||
}
|
||||
var min = this.firstMinute;
|
||||
var gap = this.parsedIntervalCount * this.parsedIntervalMinutes;
|
||||
var delta = (minutes - min) / gap;
|
||||
var y = delta * this.bodyHeight;
|
||||
if (clamp) {
|
||||
if (y < 0) {
|
||||
y = 0;
|
||||
}
|
||||
if (y > this.bodyHeight) {
|
||||
y = this.bodyHeight;
|
||||
}
|
||||
}
|
||||
return y;
|
||||
}
|
||||
}
|
||||
}); // Mixins
|
||||
//# sourceMappingURL=calendar-with-intervals.js.map
|
||||
Generated
Vendored
+1
File diff suppressed because one or more lines are too long
+67
@@ -0,0 +1,67 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _vue = require('vue');
|
||||
|
||||
var _vue2 = _interopRequireDefault(_vue);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
|
||||
exports.default = _vue2.default.extend({
|
||||
name: 'mouse',
|
||||
methods: {
|
||||
getDefaultMouseEventHandlers: function getDefaultMouseEventHandlers(suffix, getEvent) {
|
||||
var _getMouseEventHandler;
|
||||
|
||||
return this.getMouseEventHandlers((_getMouseEventHandler = {}, _defineProperty(_getMouseEventHandler, 'click' + suffix, { event: 'click' }), _defineProperty(_getMouseEventHandler, 'contextmenu' + suffix, { event: 'contextmenu', prevent: true, result: false }), _defineProperty(_getMouseEventHandler, 'mousedown' + suffix, { event: 'mousedown' }), _defineProperty(_getMouseEventHandler, 'mousemove' + suffix, { event: 'mousemove' }), _defineProperty(_getMouseEventHandler, 'mouseup' + suffix, { event: 'mouseup' }), _defineProperty(_getMouseEventHandler, 'mouseenter' + suffix, { event: 'mouseenter' }), _defineProperty(_getMouseEventHandler, 'mouseleave' + suffix, { event: 'mouseleave' }), _defineProperty(_getMouseEventHandler, 'touchstart' + suffix, { event: 'touchstart' }), _defineProperty(_getMouseEventHandler, 'touchmove' + suffix, { event: 'touchmove' }), _defineProperty(_getMouseEventHandler, 'touchend' + suffix, { event: 'touchend' }), _getMouseEventHandler), getEvent);
|
||||
},
|
||||
getMouseEventHandlers: function getMouseEventHandlers(events, getEvent) {
|
||||
var _this = this;
|
||||
|
||||
var on = {};
|
||||
|
||||
var _loop = function _loop(event) {
|
||||
var eventOptions = events[event];
|
||||
if (!_this.$listeners[event]) return 'continue';
|
||||
// TODO somehow pull in modifiers
|
||||
var prefix = eventOptions.passive ? '&' : (eventOptions.once ? '~' : '') + (eventOptions.capture ? '!' : '');
|
||||
var key = prefix + eventOptions.event;
|
||||
var handler = function handler(e) {
|
||||
var mouseEvent = e;
|
||||
if (eventOptions.button === undefined || mouseEvent.buttons > 0 && mouseEvent.button === eventOptions.button) {
|
||||
if (eventOptions.prevent) {
|
||||
e.preventDefault();
|
||||
}
|
||||
if (eventOptions.stop) {
|
||||
e.stopPropagation();
|
||||
}
|
||||
_this.$emit(event, getEvent(e));
|
||||
}
|
||||
return eventOptions.result;
|
||||
};
|
||||
if (key in on) {
|
||||
if (Array.isArray(on[key])) {
|
||||
on[key].push(handler);
|
||||
} else {
|
||||
on[key] = [on[key], handler];
|
||||
}
|
||||
} else {
|
||||
on[key] = handler;
|
||||
}
|
||||
};
|
||||
|
||||
for (var event in events) {
|
||||
var _ret = _loop(event);
|
||||
|
||||
if (_ret === 'continue') continue;
|
||||
}
|
||||
return on;
|
||||
}
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=mouse.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["../../../../src/components/VCalendar/mixins/mouse.ts"],"names":[],"mappings":";;;;;;;;;;;;;;kBAqBe,cAAI,MAAJ,CAAW;AACxB,UAAM,OADkB;AAGxB,aAAS;AACP,oCADO,wCACuB,MADvB,EACuC,QADvC,EAC6D;AAAA;;AAClE,mBAAO,KAAK,qBAAL,qEACJ,UAAU,MADN,EACe,EAAE,OAAO,OAAT,EADf,0CAEJ,gBAAgB,MAFZ,EAEqB,EAAE,OAAO,aAAT,EAAwB,SAAS,IAAjC,EAAuC,QAAQ,KAA/C,EAFrB,0CAGJ,cAAc,MAHV,EAGmB,EAAE,OAAO,WAAT,EAHnB,0CAIJ,cAAc,MAJV,EAImB,EAAE,OAAO,WAAT,EAJnB,0CAKJ,YAAY,MALR,EAKiB,EAAE,OAAO,SAAT,EALjB,0CAMJ,eAAe,MANX,EAMoB,EAAE,OAAO,YAAT,EANpB,0CAOJ,eAAe,MAPX,EAOoB,EAAE,OAAO,YAAT,EAPpB,0CAQJ,eAAe,MARX,EAQoB,EAAE,OAAO,YAAT,EARpB,0CASJ,cAAc,MATV,EASmB,EAAE,OAAO,WAAT,EATnB,0CAUJ,aAAa,MAVT,EAUkB,EAAE,OAAO,UAAT,EAVlB,2BAWJ,QAXI,CAAP;AAYD,SAdM;AAeP,6BAfO,iCAegB,MAfhB,EAeqC,QAfrC,EAe2D;AAAA;;AAChE,gBAAM,KAAqB,EAA3B;;AADgE,uCAGrD,KAHqD;AAI9D,oBAAM,eAAe,OAAO,KAAP,CAArB;AAEA,oBAAI,CAAC,MAAK,UAAL,CAAgB,KAAhB,CAAL,EAA6B;AAE7B;AAEA,oBAAM,SAAS,aAAa,OAAb,GAAuB,GAAvB,GAA8B,CAAC,aAAa,IAAb,GAAoB,GAApB,GAA0B,EAA3B,KAAkC,aAAa,OAAb,GAAuB,GAAvB,GAA6B,EAA/D,CAA7C;AACA,oBAAM,MAAM,SAAS,aAAa,KAAlC;AAEA,oBAAM,UAAwB,SAAxB,OAAwB,IAAI;AAChC,wBAAM,aAAyB,CAA/B;AACA,wBAAI,aAAa,MAAb,KAAwB,SAAxB,IAAsC,WAAW,OAAX,GAAqB,CAArB,IAA0B,WAAW,MAAX,KAAsB,aAAa,MAAvG,EAAgH;AAC9G,4BAAI,aAAa,OAAjB,EAA0B;AACxB,8BAAE,cAAF;AACD;AACD,4BAAI,aAAa,IAAjB,EAAuB;AACrB,8BAAE,eAAF;AACD;AACD,8BAAK,KAAL,CAAW,KAAX,EAAkB,SAAS,CAAT,CAAlB;AACD;AAED,2BAAO,aAAa,MAApB;AACD,iBAbD;AAeA,oBAAI,OAAO,EAAX,EAAe;AACb,wBAAI,MAAM,OAAN,CAAc,GAAG,GAAH,CAAd,CAAJ,EAA4B;AACzB,2BAAG,GAAH,EAA2B,IAA3B,CAAgC,OAAhC;AACF,qBAFD,MAEO;AACL,2BAAG,GAAH,IAAU,CAAC,GAAG,GAAH,CAAD,EAAU,OAAV,CAAV;AACD;AACF,iBAND,MAMO;AACL,uBAAG,GAAH,IAAU,OAAV;AACD;AApC6D;;AAGhE,iBAAK,IAAM,KAAX,IAAoB,MAApB,EAA4B;AAAA,iCAAjB,KAAiB;;AAAA,yCAGG;AA+B9B;AAED,mBAAO,EAAP;AACD;AAvDM;AAHe,CAAX,C","sourcesContent":["import Vue from 'vue'\n\nexport type MouseHandler = (e: MouseEvent | TouchEvent) => any\n\nexport type MouseEvents = {\n [event: string]: {\n event: string\n passive?: boolean\n capture?: boolean\n once?: boolean\n stop?: boolean\n prevent?: boolean\n button?: number\n result?: any\n }\n}\n\nexport type MouseEventsMap = {\n [event: string]: MouseHandler | MouseHandler[]\n}\n\nexport default Vue.extend({\n name: 'mouse',\n\n methods: {\n getDefaultMouseEventHandlers (suffix: string, getEvent: MouseHandler): MouseEventsMap {\n return this.getMouseEventHandlers({\n ['click' + suffix]: { event: 'click' },\n ['contextmenu' + suffix]: { event: 'contextmenu', prevent: true, result: false },\n ['mousedown' + suffix]: { event: 'mousedown' },\n ['mousemove' + suffix]: { event: 'mousemove' },\n ['mouseup' + suffix]: { event: 'mouseup' },\n ['mouseenter' + suffix]: { event: 'mouseenter' },\n ['mouseleave' + suffix]: { event: 'mouseleave' },\n ['touchstart' + suffix]: { event: 'touchstart' },\n ['touchmove' + suffix]: { event: 'touchmove' },\n ['touchend' + suffix]: { event: 'touchend' }\n }, getEvent)\n },\n getMouseEventHandlers (events: MouseEvents, getEvent: MouseHandler): MouseEventsMap {\n const on: MouseEventsMap = {}\n\n for (const event in events) {\n const eventOptions = events[event]\n\n if (!this.$listeners[event]) continue\n\n // TODO somehow pull in modifiers\n\n const prefix = eventOptions.passive ? '&' : ((eventOptions.once ? '~' : '') + (eventOptions.capture ? '!' : ''))\n const key = prefix + eventOptions.event\n\n const handler: MouseHandler = e => {\n const mouseEvent: MouseEvent = e as MouseEvent\n if (eventOptions.button === undefined || (mouseEvent.buttons > 0 && mouseEvent.button === eventOptions.button)) {\n if (eventOptions.prevent) {\n e.preventDefault()\n }\n if (eventOptions.stop) {\n e.stopPropagation()\n }\n this.$emit(event, getEvent(e))\n }\n\n return eventOptions.result\n }\n\n if (key in on) {\n if (Array.isArray(on[key])) {\n (on[key] as MouseHandler[]).push(handler)\n } else {\n on[key] = [on[key], handler] as MouseHandler[]\n }\n } else {\n on[key] = handler\n }\n }\n\n return on\n }\n }\n})\n"],"sourceRoot":""}
|
||||
+77
@@ -0,0 +1,77 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _vue = require('vue');
|
||||
|
||||
var _vue2 = _interopRequireDefault(_vue);
|
||||
|
||||
var _timestamp = require('../util/timestamp');
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
exports.default = _vue2.default.extend({
|
||||
name: 'times',
|
||||
props: {
|
||||
now: {
|
||||
type: String,
|
||||
validator: _timestamp.validateTimestamp
|
||||
}
|
||||
},
|
||||
data: function data() {
|
||||
return {
|
||||
times: {
|
||||
now: (0, _timestamp.parseTimestamp)('0000-00-00 00:00'),
|
||||
today: (0, _timestamp.parseTimestamp)('0000-00-00')
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
parsedNow: function parsedNow() {
|
||||
return this.now ? (0, _timestamp.parseTimestamp)(this.now) : null;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
parsedNow: 'updateTimes'
|
||||
},
|
||||
created: function created() {
|
||||
this.updateTimes();
|
||||
this.setPresent();
|
||||
},
|
||||
|
||||
methods: {
|
||||
setPresent: function setPresent() {
|
||||
this.times.now.present = this.times.today.present = true;
|
||||
this.times.now.past = this.times.today.past = false;
|
||||
this.times.now.future = this.times.today.future = false;
|
||||
},
|
||||
updateTimes: function updateTimes() {
|
||||
var now = this.parsedNow || this.getNow();
|
||||
this.updateDay(now, this.times.now);
|
||||
this.updateTime(now, this.times.now);
|
||||
this.updateDay(now, this.times.today);
|
||||
},
|
||||
getNow: function getNow() {
|
||||
return (0, _timestamp.parseDate)(new Date());
|
||||
},
|
||||
updateDay: function updateDay(now, target) {
|
||||
if (now.date !== target.date) {
|
||||
target.year = now.year;
|
||||
target.month = now.month;
|
||||
target.day = now.day;
|
||||
target.weekday = now.weekday;
|
||||
target.date = now.date;
|
||||
}
|
||||
},
|
||||
updateTime: function updateTime(now, target) {
|
||||
if (now.time !== target.time) {
|
||||
target.hour = now.hour;
|
||||
target.minute = now.minute;
|
||||
target.time = now.time;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=times.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["../../../../src/components/VCalendar/mixins/times.ts"],"names":[],"mappings":";;;;;;;;;;AAEA;;;;kBAOe,cAAI,MAAJ,CAAW;AACxB,UAAM,OADkB;AAGxB,WAAO;AACL,aAAK;AACH,kBAAM,MADH;AAEH,uBAAW;AAFR;AADA,KAHiB;AAUxB,UAAM;AAAA,eAAO;AACX,mBAAO;AACL,qBAAK,+BAAe,kBAAf,CADA;AAEL,uBAAO,+BAAe,YAAf;AAFF;AADI,SAAP;AAAA,KAVkB;AAiBxB,cAAU;AACR,iBADQ,uBACC;AACP,mBAAO,KAAK,GAAL,GAAW,+BAAe,KAAK,GAApB,CAAX,GAAsC,IAA7C;AACD;AAHO,KAjBc;AAuBxB,WAAO;AACL,mBAAW;AADN,KAvBiB;AA2BxB,WA3BwB,qBA2BjB;AACL,aAAK,WAAL;AACA,aAAK,UAAL;AACD,KA9BuB;;AAgCxB,aAAS;AACP,kBADO,wBACG;AACR,iBAAK,KAAL,CAAW,GAAX,CAAe,OAAf,GAAyB,KAAK,KAAL,CAAW,KAAX,CAAiB,OAAjB,GAA2B,IAApD;AACA,iBAAK,KAAL,CAAW,GAAX,CAAe,IAAf,GAAsB,KAAK,KAAL,CAAW,KAAX,CAAiB,IAAjB,GAAwB,KAA9C;AACA,iBAAK,KAAL,CAAW,GAAX,CAAe,MAAf,GAAwB,KAAK,KAAL,CAAW,KAAX,CAAiB,MAAjB,GAA0B,KAAlD;AACD,SALM;AAMP,mBANO,yBAMI;AACT,gBAAM,MAAkB,KAAK,SAAL,IAAkB,KAAK,MAAL,EAA1C;AACA,iBAAK,SAAL,CAAe,GAAf,EAAoB,KAAK,KAAL,CAAW,GAA/B;AACA,iBAAK,UAAL,CAAgB,GAAhB,EAAqB,KAAK,KAAL,CAAW,GAAhC;AACA,iBAAK,SAAL,CAAe,GAAf,EAAoB,KAAK,KAAL,CAAW,KAA/B;AACD,SAXM;AAYP,cAZO,oBAYD;AACJ,mBAAO,0BAAU,IAAI,IAAJ,EAAV,CAAP;AACD,SAdM;AAeP,iBAfO,qBAeI,GAfJ,EAeqB,MAfrB,EAeuC;AAC5C,gBAAI,IAAI,IAAJ,KAAa,OAAO,IAAxB,EAA8B;AAC5B,uBAAO,IAAP,GAAc,IAAI,IAAlB;AACA,uBAAO,KAAP,GAAe,IAAI,KAAnB;AACA,uBAAO,GAAP,GAAa,IAAI,GAAjB;AACA,uBAAO,OAAP,GAAiB,IAAI,OAArB;AACA,uBAAO,IAAP,GAAc,IAAI,IAAlB;AACD;AACF,SAvBM;AAwBP,kBAxBO,sBAwBK,GAxBL,EAwBsB,MAxBtB,EAwBwC;AAC7C,gBAAI,IAAI,IAAJ,KAAa,OAAO,IAAxB,EAA8B;AAC5B,uBAAO,IAAP,GAAc,IAAI,IAAlB;AACA,uBAAO,MAAP,GAAgB,IAAI,MAApB;AACA,uBAAO,IAAP,GAAc,IAAI,IAAlB;AACD;AACF;AA9BM;AAhCe,CAAX,C","sourcesContent":["import Vue from 'vue'\n\nimport {\n VTimestamp,\n validateTimestamp,\n parseTimestamp,\n parseDate\n} from '../util/timestamp'\n\nexport default Vue.extend({\n name: 'times',\n\n props: {\n now: {\n type: String,\n validator: validateTimestamp\n }\n },\n\n data: () => ({\n times: {\n now: parseTimestamp('0000-00-00 00:00') as VTimestamp,\n today: parseTimestamp('0000-00-00') as VTimestamp\n }\n }),\n\n computed: {\n parsedNow (): VTimestamp | null {\n return this.now ? parseTimestamp(this.now) : null\n }\n },\n\n watch: {\n parsedNow: 'updateTimes'\n },\n\n created () {\n this.updateTimes()\n this.setPresent()\n },\n\n methods: {\n setPresent (): void {\n this.times.now.present = this.times.today.present = true\n this.times.now.past = this.times.today.past = false\n this.times.now.future = this.times.today.future = false\n },\n updateTimes (): void {\n const now: VTimestamp = this.parsedNow || this.getNow()\n this.updateDay(now, this.times.now)\n this.updateTime(now, this.times.now)\n this.updateDay(now, this.times.today)\n },\n getNow (): VTimestamp {\n return parseDate(new Date())\n },\n updateDay (now: VTimestamp, target: VTimestamp): void {\n if (now.date !== target.date) {\n target.year = now.year\n target.month = now.month\n target.day = now.day\n target.weekday = now.weekday\n target.date = now.date\n }\n },\n updateTime (now: VTimestamp, target: VTimestamp): void {\n if (now.time !== target.time) {\n target.hour = now.hour\n target.minute = now.minute\n target.time = now.time\n }\n }\n }\n})\n"],"sourceRoot":""}
|
||||
Reference in New Issue
Block a user