This commit is contained in:
darenhsu
2022-07-17 13:16:16 +08:00
parent 84759556ff
commit befd344ab0
28070 changed files with 4008428 additions and 1 deletions
+120
View File
@@ -0,0 +1,120 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _mixins = _interopRequireDefault(require("../../../util/mixins"));
var _colorable = _interopRequireDefault(require("../../../mixins/colorable"));
var _localable = _interopRequireDefault(require("../../../mixins/localable"));
var _mouse = _interopRequireDefault(require("./mouse"));
var _themeable = _interopRequireDefault(require("../../../mixins/themeable"));
var _times = _interopRequireDefault(require("./times"));
var _resize = _interopRequireDefault(require("../../../directives/resize"));
var _props = _interopRequireDefault(require("../util/props"));
var _timestamp = require("../util/timestamp");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// Mixins
// Directives
// Util
var _default = (0, _mixins.default)(_colorable.default, _localable.default, _mouse.default, _themeable.default, _times.default
/* @vue/component */
).extend({
name: 'calendar-base',
directives: {
Resize: _resize.default
},
props: _props.default.base,
computed: {
parsedWeekdays: function parsedWeekdays() {
return Array.isArray(this.weekdays) ? this.weekdays : (this.weekdays || '').split(',').map(function (x) {
return parseInt(x, 10);
});
},
weekdaySkips: function weekdaySkips() {
return (0, _timestamp.getWeekdaySkips)(this.parsedWeekdays);
},
weekdaySkipsReverse: function weekdaySkipsReverse() {
var reversed = this.weekdaySkips.slice();
reversed.reverse();
return reversed;
},
parsedStart: function parsedStart() {
return (0, _timestamp.parseTimestamp)(this.start, true);
},
parsedEnd: function parsedEnd() {
var start = this.parsedStart;
var end = this.end ? (0, _timestamp.parseTimestamp)(this.end) || start : start;
return (0, _timestamp.getTimestampIdentifier)(end) < (0, _timestamp.getTimestampIdentifier)(start) ? start : 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.currentLocale, 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.currentLocale, 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.parsedWeekdays, this.times.today);
},
getEndOfWeek: function getEndOfWeek(timestamp) {
return (0, _timestamp.getEndOfWeek)(timestamp, this.parsedWeekdays, this.times.today);
},
getFormatter: function getFormatter(options) {
return (0, _timestamp.createNativeLocaleFormatter)(this.locale, function (_tms, _short) {
return options;
});
}
}
});
exports.default = _default;
//# sourceMappingURL=calendar-base.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,502 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
require("../../../../src/components/VCalendar/mixins/calendar-with-events.sass");
var _ripple = _interopRequireDefault(require("../../../directives/ripple"));
var _calendarBase = _interopRequireDefault(require("./calendar-base"));
var _helpers = require("../../../util/helpers");
var _props = _interopRequireDefault(require("../util/props"));
var _modes = require("../modes");
var _timestamp = require("../util/timestamp");
var _events = require("../util/events");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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; }
var WIDTH_FULL = 100;
var WIDTH_START = 95;
var MINUTES_IN_DAY = 1440;
/* @vue/component */
var _default = _calendarBase.default.extend({
name: 'calendar-with-events',
directives: {
ripple: _ripple.default
},
props: _props.default.events,
computed: {
noEvents: function noEvents() {
return this.events.length === 0;
},
parsedEvents: function parsedEvents() {
return this.events.map(this.parseEvent);
},
parsedEventOverlapThreshold: function parsedEventOverlapThreshold() {
return parseInt(this.eventOverlapThreshold);
},
eventColorFunction: function eventColorFunction() {
var _this = this;
return typeof this.eventColor === 'function' ? this.eventColor : function () {
return _this.eventColor;
};
},
eventTimedFunction: function eventTimedFunction() {
var _this2 = this;
return typeof this.eventTimed === 'function' ? this.eventTimed : function (event) {
return !!event[_this2.eventTimed];
};
},
eventCategoryFunction: function eventCategoryFunction() {
var _this3 = this;
return typeof this.eventCategory === 'function' ? this.eventCategory : function (event) {
return event[_this3.eventCategory];
};
},
eventTextColorFunction: function eventTextColorFunction() {
var _this4 = this;
return typeof this.eventTextColor === 'function' ? this.eventTextColor : function () {
return _this4.eventTextColor;
};
},
eventNameFunction: function eventNameFunction() {
var _this5 = this;
return typeof this.eventName === 'function' ? this.eventName : function (event, timedEvent) {
return (0, _helpers.escapeHTML)(event.input[_this5.eventName]);
};
},
eventModeFunction: function eventModeFunction() {
return typeof this.eventOverlapMode === 'function' ? this.eventOverlapMode : _modes.CalendarEventOverlapModes[this.eventOverlapMode];
},
eventWeekdays: function eventWeekdays() {
return this.parsedWeekdays;
},
categoryMode: function categoryMode() {
return false;
}
},
methods: {
parseEvent: function parseEvent(input) {
var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
return (0, _events.parseEvent)(input, index, this.eventStart, this.eventEnd, this.eventTimedFunction(input), this.categoryMode ? this.eventCategoryFunction(input) : false);
},
formatTime: function formatTime(withTime, ampm) {
var formatter = this.getFormatter({
timeZone: 'UTC',
hour: 'numeric',
minute: withTime.minute > 0 ? 'numeric' : undefined
});
return formatter(withTime, true);
},
updateEventVisibility: function updateEventVisibility() {
if (this.noEvents || !this.eventMore) {
return;
}
var eventHeight = this.eventHeight;
var eventsMap = this.getEventsMap();
for (var date in eventsMap) {
var _eventsMap$date = eventsMap[date],
parent = _eventsMap$date.parent,
events = _eventsMap$date.events,
more = _eventsMap$date.more;
if (!more) {
break;
}
var parentBounds = parent.getBoundingClientRect();
var last = events.length - 1;
var hide = false;
var hidden = 0;
for (var i = 0; i <= last; i++) {
if (!hide) {
var eventBounds = events[i].getBoundingClientRect();
hide = i === last ? eventBounds.bottom > parentBounds.bottom : eventBounds.bottom + eventHeight > parentBounds.bottom;
}
if (hide) {
events[i].style.display = 'none';
hidden++;
}
}
if (hide) {
more.style.display = '';
more.innerHTML = this.$vuetify.lang.t(this.eventMoreText, hidden);
} else {
more.style.display = 'none';
}
}
},
getEventsMap: function getEventsMap() {
var eventsMap = {};
var elements = this.$refs.events;
if (!elements || !elements.forEach) {
return eventsMap;
}
elements.forEach(function (el) {
var date = el.getAttribute('data-date');
if (el.parentElement && date) {
if (!(date in eventsMap)) {
eventsMap[date] = {
parent: el.parentElement,
more: null,
events: []
};
}
if (el.getAttribute('data-more')) {
eventsMap[date].more = el;
} else {
eventsMap[date].events.push(el);
el.style.display = '';
}
}
});
return eventsMap;
},
genDayEvent: function genDayEvent(_ref, day) {
var event = _ref.event;
var eventHeight = this.eventHeight;
var eventMarginBottom = this.eventMarginBottom;
var dayIdentifier = (0, _timestamp.getDayIdentifier)(day);
var week = day.week;
var start = dayIdentifier === event.startIdentifier;
var end = dayIdentifier === event.endIdentifier;
var width = WIDTH_START;
if (!this.categoryMode) {
for (var i = day.index + 1; i < week.length; i++) {
var weekdayIdentifier = (0, _timestamp.getDayIdentifier)(week[i]);
if (event.endIdentifier >= weekdayIdentifier) {
width += WIDTH_FULL;
end = end || weekdayIdentifier === event.endIdentifier;
} else {
end = true;
break;
}
}
}
var scope = {
eventParsed: event,
day: day,
start: start,
end: end,
timed: false
};
return this.genEvent(event, scope, false, {
staticClass: 'v-event',
class: {
'v-event-start': start,
'v-event-end': end
},
style: {
height: "".concat(eventHeight, "px"),
width: "".concat(width, "%"),
'margin-bottom': "".concat(eventMarginBottom, "px")
},
attrs: {
'data-date': day.date
},
key: event.index,
ref: 'events',
refInFor: true
});
},
genTimedEvent: function genTimedEvent(_ref2, day) {
var event = _ref2.event,
left = _ref2.left,
width = _ref2.width;
if (day.timeDelta(event.end) <= 0 || day.timeDelta(event.start) >= 1) {
return false;
}
var dayIdentifier = (0, _timestamp.getDayIdentifier)(day);
var start = event.startIdentifier >= dayIdentifier;
var end = event.endIdentifier > dayIdentifier;
var top = start ? day.timeToY(event.start) : 0;
var bottom = end ? day.timeToY(MINUTES_IN_DAY) : day.timeToY(event.end);
var height = Math.max(this.eventHeight, bottom - top);
var scope = {
eventParsed: event,
day: day,
start: start,
end: end,
timed: true
};
return this.genEvent(event, scope, true, {
staticClass: 'v-event-timed',
style: {
top: "".concat(top, "px"),
height: "".concat(height, "px"),
left: "".concat(left, "%"),
width: "".concat(width, "%")
}
});
},
genEvent: function genEvent(event, scopeInput, timedEvent, data) {
var _this6 = this;
var slot = this.$scopedSlots.event;
var text = this.eventTextColorFunction(event.input);
var background = this.eventColorFunction(event.input);
var overlapsNoon = event.start.hour < 12 && event.end.hour >= 12;
var singline = (0, _timestamp.diffMinutes)(event.start, event.end) <= this.parsedEventOverlapThreshold;
var formatTime = this.formatTime;
var timeSummary = function timeSummary() {
return formatTime(event.start, overlapsNoon) + ' - ' + formatTime(event.end, true);
};
var eventSummary = function eventSummary() {
var name = _this6.eventNameFunction(event, timedEvent);
if (event.start.hasTime) {
if (timedEvent) {
var time = timeSummary();
var delimiter = singline ? ', ' : '<br>';
return "<strong>".concat(name, "</strong>").concat(delimiter).concat(time);
} else {
var _time = formatTime(event.start, true);
return "<strong>".concat(_time, "</strong> ").concat(name);
}
}
return name;
};
var scope = _objectSpread({}, scopeInput, {
event: event.input,
outside: scopeInput.day.outside,
singline: singline,
overlapsNoon: overlapsNoon,
formatTime: formatTime,
timeSummary: timeSummary,
eventSummary: eventSummary
});
return this.$createElement('div', this.setTextColor(text, this.setBackgroundColor(background, _objectSpread({
on: this.getDefaultMouseEventHandlers(':event', function (nativeEvent) {
return _objectSpread({}, scope, {
nativeEvent: nativeEvent
});
}),
directives: [{
name: 'ripple',
value: this.eventRipple != null ? this.eventRipple : true
}]
}, data))), slot ? slot(scope) : [this.genName(eventSummary)]);
},
genName: function genName(eventSummary) {
return this.$createElement('div', {
staticClass: 'pl-1',
domProps: {
innerHTML: eventSummary()
}
});
},
genPlaceholder: function genPlaceholder(day) {
var height = this.eventHeight + this.eventMarginBottom;
return this.$createElement('div', {
style: {
height: "".concat(height, "px")
},
attrs: {
'data-date': day.date
},
ref: 'events',
refInFor: true
});
},
genMore: function genMore(day) {
var _this7 = this;
var eventHeight = this.eventHeight;
var eventMarginBottom = this.eventMarginBottom;
return this.$createElement('div', {
staticClass: 'v-event-more pl-1',
class: {
'v-outside': day.outside
},
attrs: {
'data-date': day.date,
'data-more': 1
},
directives: [{
name: 'ripple',
value: this.eventRipple != null ? this.eventRipple : true
}],
on: {
click: function click() {
return _this7.$emit('click:more', day);
}
},
style: {
display: 'none',
height: "".concat(eventHeight, "px"),
'margin-bottom': "".concat(eventMarginBottom, "px")
},
ref: 'events',
refInFor: true
});
},
getVisibleEvents: function getVisibleEvents() {
var start = (0, _timestamp.getDayIdentifier)(this.days[0]);
var end = (0, _timestamp.getDayIdentifier)(this.days[this.days.length - 1]);
return this.parsedEvents.filter(function (event) {
return (0, _events.isEventOverlapping)(event, start, end);
});
},
isEventForCategory: function isEventForCategory(event, category) {
return !this.categoryMode || category === event.category || typeof event.category !== 'string' && category === null;
},
getEventsForDay: function getEventsForDay(day) {
var identifier = (0, _timestamp.getDayIdentifier)(day);
var firstWeekday = this.eventWeekdays[0];
return this.parsedEvents.filter(function (event) {
return (0, _events.isEventStart)(event, day, identifier, firstWeekday);
});
},
getEventsForDayAll: function getEventsForDayAll(day) {
var _this8 = this;
var identifier = (0, _timestamp.getDayIdentifier)(day);
var firstWeekday = this.eventWeekdays[0];
return this.parsedEvents.filter(function (event) {
return event.allDay && (_this8.categoryMode ? (0, _events.isEventOn)(event, identifier) : (0, _events.isEventStart)(event, day, identifier, firstWeekday)) && _this8.isEventForCategory(event, day.category);
});
},
getEventsForDayTimed: function getEventsForDayTimed(day) {
var _this9 = this;
var identifier = (0, _timestamp.getDayIdentifier)(day);
return this.parsedEvents.filter(function (event) {
return !event.allDay && (0, _events.isEventOn)(event, identifier) && _this9.isEventForCategory(event, day.category);
});
},
getScopedSlots: function getScopedSlots() {
var _this10 = this;
if (this.noEvents) {
return _objectSpread({}, this.$scopedSlots);
}
var mode = this.eventModeFunction(this.parsedEvents, this.eventWeekdays[0], this.parsedEventOverlapThreshold);
var isNode = function isNode(input) {
return !!input;
};
var getSlotChildren = function getSlotChildren(day, getter, mapper, timed) {
var events = getter(day);
var visuals = mode(day, events, timed, _this10.categoryMode);
if (timed) {
return visuals.map(function (visual) {
return mapper(visual, day);
}).filter(isNode);
}
var children = [];
visuals.forEach(function (visual, index) {
while (children.length < visual.column) {
children.push(_this10.genPlaceholder(day));
}
var mapped = mapper(visual, day);
if (mapped) {
children.push(mapped);
}
});
return children;
};
var slots = this.$scopedSlots;
var slotDay = slots.day;
var slotDayHeader = slots['day-header'];
var slotDayBody = slots['day-body'];
return _objectSpread({}, slots, {
day: function day(_day) {
var children = getSlotChildren(_day, _this10.getEventsForDay, _this10.genDayEvent, false);
if (children && children.length > 0 && _this10.eventMore) {
children.push(_this10.genMore(_day));
}
if (slotDay) {
var slot = slotDay(_day);
if (slot) {
children = children ? children.concat(slot) : slot;
}
}
return children;
},
'day-header': function dayHeader(day) {
var children = getSlotChildren(day, _this10.getEventsForDayAll, _this10.genDayEvent, false);
if (slotDayHeader) {
var slot = slotDayHeader(day);
if (slot) {
children = children ? children.concat(slot) : slot;
}
}
return children;
},
'day-body': function dayBody(day) {
var events = getSlotChildren(day, _this10.getEventsForDayTimed, _this10.genTimedEvent, true);
var children = [_this10.$createElement('div', {
staticClass: 'v-event-timed-container'
}, events)];
if (slotDayBody) {
var slot = slotDayBody(day);
if (slot) {
children = children.concat(slot);
}
}
return children;
}
});
}
}
});
exports.default = _default;
//# sourceMappingURL=calendar-with-events.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,162 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _calendarBase = _interopRequireDefault(require("./calendar-base"));
var _props = _interopRequireDefault(require("../util/props"));
var _timestamp = require("../util/timestamp");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// Mixins
// Util
/* @vue/component */
var _default = _calendarBase.default.extend({
name: 'calendar-with-intervals',
props: _props.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);
},
parsedFirstTime: function parsedFirstTime() {
return (0, _timestamp.parseTime)(this.firstTime);
},
firstMinute: function firstMinute() {
var time = this.parsedFirstTime;
return time !== false && time >= 0 && time <= _timestamp.MINUTES_IN_DAY ? time : 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.firstMinute;
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',
hour: '2-digit',
minute: '2-digit'
};
var shortOptions = {
timeZone: 'UTC',
hour: 'numeric',
minute: '2-digit'
};
var shortHourOptions = {
timeZone: 'UTC',
hour: 'numeric'
};
return (0, _timestamp.createNativeLocaleFormatter)(this.currentLocale, 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;
},
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.timeDelta = this.timeDelta;
scope.minutesToPixels = this.minutesToPixels;
scope.week = this.days;
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 y = this.timeDelta(time);
if (y !== false) {
y *= this.bodyHeight;
if (clamp) {
if (y < 0) {
y = 0;
}
if (y > this.bodyHeight) {
y = this.bodyHeight;
}
}
}
return y;
},
timeDelta: function timeDelta(time) {
var minutes = (0, _timestamp.parseTime)(time);
if (minutes === false) {
return false;
}
var min = this.firstMinute;
var gap = this.parsedIntervalCount * this.parsedIntervalMinutes;
return (minutes - min) / gap;
}
}
});
exports.default = _default;
//# sourceMappingURL=calendar-with-intervals.js.map
File diff suppressed because one or more lines are too long
+98
View File
@@ -0,0 +1,98 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _vue = _interopRequireDefault(require("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; }
var _default = _vue.default.extend({
name: 'mouse',
methods: {
getDefaultMouseEventHandlers: function getDefaultMouseEventHandlers(suffix, getEvent) {
var _this$getMouseEventHa;
return this.getMouseEventHandlers((_this$getMouseEventHa = {}, _defineProperty(_this$getMouseEventHa, 'click' + suffix, {
event: 'click'
}), _defineProperty(_this$getMouseEventHa, 'contextmenu' + suffix, {
event: 'contextmenu',
prevent: true,
result: false
}), _defineProperty(_this$getMouseEventHa, 'mousedown' + suffix, {
event: 'mousedown'
}), _defineProperty(_this$getMouseEventHa, 'mousemove' + suffix, {
event: 'mousemove'
}), _defineProperty(_this$getMouseEventHa, 'mouseup' + suffix, {
event: 'mouseup'
}), _defineProperty(_this$getMouseEventHa, 'mouseenter' + suffix, {
event: 'mouseenter'
}), _defineProperty(_this$getMouseEventHa, 'mouseleave' + suffix, {
event: 'mouseleave'
}), _defineProperty(_this$getMouseEventHa, 'touchstart' + suffix, {
event: 'touchstart'
}), _defineProperty(_this$getMouseEventHa, 'touchmove' + suffix, {
event: 'touchmove'
}), _defineProperty(_this$getMouseEventHa, 'touchend' + suffix, {
event: 'touchend'
}), _this$getMouseEventHa), 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) {
/* istanbul ignore next */
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;
}
}
});
exports.default = _default;
//# sourceMappingURL=mouse.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/components/VCalendar/mixins/mouse.ts"],"names":[],"mappings":"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","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 /* istanbul ignore next */\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":"","file":"mouse.js"}
+77
View File
@@ -0,0 +1,77 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _vue = _interopRequireDefault(require("vue"));
var _timestamp = require("../util/timestamp");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _default = _vue.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', true),
today: (0, _timestamp.parseTimestamp)('0000-00-00', true)
}
};
},
computed: {
parsedNow: function parsedNow() {
return this.now ? (0, _timestamp.parseTimestamp)(this.now, true) : 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;
}
}
}
});
exports.default = _default;
//# sourceMappingURL=times.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/components/VCalendar/mixins/times.ts"],"names":[],"mappings":";;;;;;;AAAA;;AAEA;;;;eAOe,aAAI,MAAJ,CAAW;AACxB,EAAA,IAAI,EAAE,OADkB;AAGxB,EAAA,KAAK,EAAE;AACL,IAAA,GAAG,EAAE;AACH,MAAA,IAAI,EAAE,MADH;AAEH,MAAA,SAAS,EAAE;AAFR;AADA,GAHiB;AAUxB,EAAA,IAAI,EAAE;AAAA,WAAO;AACX,MAAA,KAAK,EAAE;AACL,QAAA,GAAG,EAAE,+BAAe,kBAAf,EAAmC,IAAnC,CADA;AAEL,QAAA,KAAK,EAAE,+BAAe,YAAf,EAA6B,IAA7B;AAFF;AADI,KAAP;AAAA,GAVkB;AAiBxB,EAAA,QAAQ,EAAE;AACR,IAAA,SADQ,uBACC;AACP,aAAO,KAAK,GAAL,GAAW,+BAAe,KAAK,GAApB,EAAyB,IAAzB,CAAX,GAA4C,IAAnD;AACD;AAHO,GAjBc;AAuBxB,EAAA,KAAK,EAAE;AACL,IAAA,SAAS,EAAE;AADN,GAvBiB;AA2BxB,EAAA,OA3BwB,qBA2BjB;AACL,SAAK,WAAL;AACA,SAAK,UAAL;AACD,GA9BuB;AAgCxB,EAAA,OAAO,EAAE;AACP,IAAA,UADO,wBACG;AACR,WAAK,KAAL,CAAW,GAAX,CAAe,OAAf,GAAyB,KAAK,KAAL,CAAW,KAAX,CAAiB,OAAjB,GAA2B,IAApD;AACA,WAAK,KAAL,CAAW,GAAX,CAAe,IAAf,GAAsB,KAAK,KAAL,CAAW,KAAX,CAAiB,IAAjB,GAAwB,KAA9C;AACA,WAAK,KAAL,CAAW,GAAX,CAAe,MAAf,GAAwB,KAAK,KAAL,CAAW,KAAX,CAAiB,MAAjB,GAA0B,KAAlD;AACD,KALM;AAMP,IAAA,WANO,yBAMI;AACT,UAAM,GAAG,GAAsB,KAAK,SAAL,IAAkB,KAAK,MAAL,EAAjD;AACA,WAAK,SAAL,CAAe,GAAf,EAAoB,KAAK,KAAL,CAAW,GAA/B;AACA,WAAK,UAAL,CAAgB,GAAhB,EAAqB,KAAK,KAAL,CAAW,GAAhC;AACA,WAAK,SAAL,CAAe,GAAf,EAAoB,KAAK,KAAL,CAAW,KAA/B;AACD,KAXM;AAYP,IAAA,MAZO,oBAYD;AACJ,aAAO,0BAAU,IAAI,IAAJ,EAAV,CAAP;AACD,KAdM;AAeP,IAAA,SAfO,qBAeI,GAfJ,EAe4B,MAf5B,EAeqD;AAC1D,UAAI,GAAG,CAAC,IAAJ,KAAa,MAAM,CAAC,IAAxB,EAA8B;AAC5B,QAAA,MAAM,CAAC,IAAP,GAAc,GAAG,CAAC,IAAlB;AACA,QAAA,MAAM,CAAC,KAAP,GAAe,GAAG,CAAC,KAAnB;AACA,QAAA,MAAM,CAAC,GAAP,GAAa,GAAG,CAAC,GAAjB;AACA,QAAA,MAAM,CAAC,OAAP,GAAiB,GAAG,CAAC,OAArB;AACA,QAAA,MAAM,CAAC,IAAP,GAAc,GAAG,CAAC,IAAlB;AACD;AACF,KAvBM;AAwBP,IAAA,UAxBO,sBAwBK,GAxBL,EAwB6B,MAxB7B,EAwBsD;AAC3D,UAAI,GAAG,CAAC,IAAJ,KAAa,MAAM,CAAC,IAAxB,EAA8B;AAC5B,QAAA,MAAM,CAAC,IAAP,GAAc,GAAG,CAAC,IAAlB;AACA,QAAA,MAAM,CAAC,MAAP,GAAgB,GAAG,CAAC,MAApB;AACA,QAAA,MAAM,CAAC,IAAP,GAAc,GAAG,CAAC,IAAlB;AACD;AACF;AA9BM;AAhCe,CAAX,C","sourcesContent":["import Vue from 'vue'\n\nimport {\n validateTimestamp,\n parseTimestamp,\n parseDate,\n} from '../util/timestamp'\nimport { CalendarTimestamp } from 'vuetify/types'\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', true),\n today: parseTimestamp('0000-00-00', true),\n },\n }),\n\n computed: {\n parsedNow (): CalendarTimestamp | null {\n return this.now ? parseTimestamp(this.now, true) : 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: CalendarTimestamp = 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 (): CalendarTimestamp {\n return parseDate(new Date())\n },\n updateDay (now: CalendarTimestamp, target: CalendarTimestamp): 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: CalendarTimestamp, target: CalendarTimestamp): 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":"","file":"times.js"}