@vuetify/nightly 2.6.10-master-20220908.0 → 2.6.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -2
- package/dist/json/web-types.json +5 -5
- package/dist/vuetify.js +41 -59
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +1 -1
- package/dist/vuetify.min.js +2 -2
- package/es5/components/VCalendar/mixins/calendar-with-events.js +10 -13
- package/es5/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
- package/es5/components/VDialog/VDialog.js +2 -2
- package/es5/components/VDialog/VDialog.js.map +1 -1
- package/es5/components/VSelect/VSelectList.js +6 -9
- package/es5/components/VSelect/VSelectList.js.map +1 -1
- package/es5/framework.js +1 -1
- package/es5/util/helpers.js +0 -13
- package/es5/util/helpers.js.map +1 -1
- package/lib/components/VCalendar/mixins/calendar-with-events.js +11 -14
- package/lib/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
- package/lib/components/VDialog/VDialog.js +2 -2
- package/lib/components/VDialog/VDialog.js.map +1 -1
- package/lib/components/VSelect/VSelectList.js +7 -10
- package/lib/components/VSelect/VSelectList.js.map +1 -1
- package/lib/framework.js +1 -1
- package/lib/util/helpers.js +0 -8
- package/lib/util/helpers.js.map +1 -1
- package/package.json +1 -1
- package/src/components/VCalendar/mixins/calendar-with-events.ts +14 -13
- package/src/components/VDialog/VDialog.ts +2 -2
- package/src/components/VSelect/VSelectList.ts +10 -15
- package/src/util/helpers.ts +0 -10
- package/types/index.d.ts +2 -2
|
@@ -11,8 +11,6 @@ var _ripple = _interopRequireDefault(require("../../../directives/ripple"));
|
|
|
11
11
|
|
|
12
12
|
var _calendarBase = _interopRequireDefault(require("./calendar-base"));
|
|
13
13
|
|
|
14
|
-
var _helpers = require("../../../util/helpers");
|
|
15
|
-
|
|
16
14
|
var _props = _interopRequireDefault(require("../util/props"));
|
|
17
15
|
|
|
18
16
|
var _modes = require("../modes");
|
|
@@ -77,7 +75,7 @@ var _default = _calendarBase.default.extend({
|
|
|
77
75
|
var _this4 = this;
|
|
78
76
|
|
|
79
77
|
return typeof this.eventName === 'function' ? this.eventName : function (event, timedEvent) {
|
|
80
|
-
return
|
|
78
|
+
return event.input[_this4.eventName] || '';
|
|
81
79
|
};
|
|
82
80
|
},
|
|
83
81
|
eventModeFunction: function eventModeFunction() {
|
|
@@ -286,16 +284,18 @@ var _default = _calendarBase.default.extend({
|
|
|
286
284
|
var name = _this5.eventNameFunction(event, timedEvent);
|
|
287
285
|
|
|
288
286
|
if (event.start.hasTime) {
|
|
289
|
-
var eventSummaryClass = 'v-event-summary';
|
|
290
|
-
|
|
291
287
|
if (timedEvent) {
|
|
292
288
|
var time = timeSummary();
|
|
293
|
-
var delimiter = singline ? ', ' : '
|
|
294
|
-
return
|
|
289
|
+
var delimiter = singline ? ', ' : _this5.$createElement('br');
|
|
290
|
+
return _this5.$createElement('span', {
|
|
291
|
+
staticClass: 'v-event-summary'
|
|
292
|
+
}, [_this5.$createElement('strong', [name]), delimiter, time]);
|
|
295
293
|
} else {
|
|
296
294
|
var _time = formatTime(event.start, true);
|
|
297
295
|
|
|
298
|
-
return
|
|
296
|
+
return _this5.$createElement('span', {
|
|
297
|
+
staticClass: 'v-event-summary'
|
|
298
|
+
}, [_this5.$createElement('strong', [_time]), ' ', name]);
|
|
299
299
|
}
|
|
300
300
|
}
|
|
301
301
|
|
|
@@ -326,11 +326,8 @@ var _default = _calendarBase.default.extend({
|
|
|
326
326
|
},
|
|
327
327
|
genName: function genName(eventSummary) {
|
|
328
328
|
return this.$createElement('div', {
|
|
329
|
-
staticClass: 'pl-1'
|
|
330
|
-
|
|
331
|
-
innerHTML: eventSummary()
|
|
332
|
-
}
|
|
333
|
-
});
|
|
329
|
+
staticClass: 'pl-1'
|
|
330
|
+
}, [eventSummary()]);
|
|
334
331
|
},
|
|
335
332
|
genPlaceholder: function genPlaceholder(day) {
|
|
336
333
|
var height = this.eventHeight + this.eventMarginBottom;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/VCalendar/mixins/calendar-with-events.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './calendar-with-events.sass'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\n// Directives\nimport ripple from '../../../directives/ripple'\n\n// Mixins\nimport CalendarBase from './calendar-base'\n\n// Helpers\nimport { escapeHTML } from '../../../util/helpers'\n\n// Util\nimport props from '../util/props'\nimport {\n CalendarEventOverlapModes,\n} from '../modes'\nimport {\n getDayIdentifier, diffMinutes,\n} from '../util/timestamp'\nimport {\n parseEvent,\n isEventStart,\n isEventOn,\n isEventOverlapping,\n isEventHiddenOn,\n} from '../util/events'\nimport {\n CalendarTimestamp,\n CalendarEventParsed,\n CalendarEventVisual,\n CalendarEventColorFunction,\n CalendarEventNameFunction,\n CalendarEventTimedFunction,\n CalendarDaySlotScope,\n CalendarDayBodySlotScope,\n CalendarEventOverlapMode,\n CalendarEvent,\n CalendarEventCategoryFunction,\n CalendarCategory,\n} from 'vuetify/types'\n\n// Types\ntype VEventGetter<D> = (day: D) => CalendarEventParsed[]\n\ntype VEventVisualToNode<D> = (visual: CalendarEventVisual, day: D) => VNode | false\n\ntype VEventsToNodes = <D extends CalendarDaySlotScope>(\n day: D,\n getter: VEventGetter<D>,\n mapper: VEventVisualToNode<D>,\n timed: boolean) => VNode[] | undefined\n\ntype VDailyEventsMap = {\n [date: string]: {\n parent: HTMLElement\n more: HTMLElement | null\n events: HTMLElement[]\n }\n}\n\ninterface VEventScopeInput {\n eventParsed: CalendarEventParsed\n day: CalendarDaySlotScope\n start: boolean\n end: boolean\n timed: boolean\n}\n\nconst WIDTH_FULL = 100\nconst WIDTH_START = 95\nconst MINUTES_IN_DAY = 1440\n\n/* @vue/component */\nexport default CalendarBase.extend({\n name: 'calendar-with-events',\n\n directives: {\n ripple,\n },\n\n props: {\n ...props.events,\n ...props.calendar,\n ...props.category,\n },\n\n computed: {\n noEvents (): boolean {\n return this.events.length === 0\n },\n parsedEvents (): CalendarEventParsed[] {\n return this.events.map(this.parseEvent)\n },\n parsedEventOverlapThreshold (): number {\n return parseInt(this.eventOverlapThreshold)\n },\n eventTimedFunction (): CalendarEventTimedFunction {\n return typeof this.eventTimed === 'function'\n ? this.eventTimed\n : event => !!event[this.eventTimed as string]\n },\n eventCategoryFunction (): CalendarEventCategoryFunction {\n return typeof this.eventCategory === 'function'\n ? this.eventCategory\n : event => event[this.eventCategory as string]\n },\n eventTextColorFunction (): CalendarEventColorFunction {\n return typeof this.eventTextColor === 'function'\n ? this.eventTextColor\n : () => this.eventTextColor as string\n },\n eventNameFunction (): CalendarEventNameFunction {\n return typeof this.eventName === 'function'\n ? this.eventName\n : (event, timedEvent) => escapeHTML(event.input[this.eventName as string] as string || '')\n },\n eventModeFunction (): CalendarEventOverlapMode {\n return typeof this.eventOverlapMode === 'function'\n ? this.eventOverlapMode\n : CalendarEventOverlapModes[this.eventOverlapMode]\n },\n eventWeekdays (): number[] {\n return this.parsedWeekdays\n },\n categoryMode (): boolean {\n return this.type === 'category'\n },\n },\n\n methods: {\n eventColorFunction (e: CalendarEvent): string {\n return typeof this.eventColor === 'function'\n ? this.eventColor(e)\n : e.color || this.eventColor\n },\n parseEvent (input: CalendarEvent, index = 0): CalendarEventParsed {\n return parseEvent(\n input,\n index,\n this.eventStart,\n this.eventEnd,\n this.eventTimedFunction(input),\n this.categoryMode ? this.eventCategoryFunction(input) : false,\n )\n },\n formatTime (withTime: CalendarTimestamp, ampm: boolean): string {\n const formatter = this.getFormatter({\n timeZone: 'UTC',\n hour: 'numeric',\n minute: withTime.minute > 0 ? 'numeric' : undefined,\n })\n\n return formatter(withTime, true)\n },\n updateEventVisibility () {\n if (this.noEvents || !this.eventMore) {\n return\n }\n\n const eventHeight = this.eventHeight\n const eventsMap = this.getEventsMap()\n\n for (const date in eventsMap) {\n const { parent, events, more } = eventsMap[date]\n if (!more) {\n break\n }\n\n const parentBounds = parent.getBoundingClientRect()\n const last = events.length - 1\n const eventsSorted = events.map(event => ({\n event,\n bottom: event.getBoundingClientRect().bottom,\n })).sort((a, b) => a.bottom - b.bottom)\n let hidden = 0\n\n for (let i = 0; i <= last; i++) {\n const bottom = eventsSorted[i].bottom\n const hide = i === last\n ? (bottom > parentBounds.bottom)\n : (bottom + eventHeight > parentBounds.bottom)\n\n if (hide) {\n eventsSorted[i].event.style.display = 'none'\n hidden++\n }\n }\n\n if (hidden) {\n more.style.display = ''\n more.innerHTML = this.$vuetify.lang.t(this.eventMoreText, hidden)\n } else {\n more.style.display = 'none'\n }\n }\n },\n getEventsMap (): VDailyEventsMap {\n const eventsMap: VDailyEventsMap = {}\n const elements = this.$refs.events as HTMLElement[]\n\n if (!elements || !elements.forEach) {\n return eventsMap\n }\n\n elements.forEach(el => {\n const date = el.getAttribute('data-date')\n if (el.parentElement && date) {\n if (!(date in eventsMap)) {\n eventsMap[date] = {\n parent: el.parentElement,\n more: null,\n events: [],\n }\n }\n if (el.getAttribute('data-more')) {\n eventsMap[date].more = el\n } else {\n eventsMap[date].events.push(el)\n el.style.display = ''\n }\n }\n })\n\n return eventsMap\n },\n genDayEvent ({ event }: CalendarEventVisual, day: CalendarDaySlotScope): VNode {\n const eventHeight = this.eventHeight\n const eventMarginBottom = this.eventMarginBottom\n const dayIdentifier = getDayIdentifier(day)\n const week = day.week\n const start = dayIdentifier === event.startIdentifier\n let end = dayIdentifier === event.endIdentifier\n let width = WIDTH_START\n\n if (!this.categoryMode) {\n for (let i = day.index + 1; i < week.length; i++) {\n const weekdayIdentifier = getDayIdentifier(week[i])\n if (event.endIdentifier >= weekdayIdentifier) {\n width += WIDTH_FULL\n end = end || weekdayIdentifier === event.endIdentifier\n } else {\n end = true\n break\n }\n }\n }\n const scope = { eventParsed: event, day, start, end, timed: false }\n\n return this.genEvent(event, scope, false, {\n staticClass: 'v-event',\n class: {\n 'v-event-start': start,\n 'v-event-end': end,\n },\n style: {\n height: `${eventHeight}px`,\n width: `${width}%`,\n 'margin-bottom': `${eventMarginBottom}px`,\n },\n attrs: {\n 'data-date': day.date,\n },\n key: event.index,\n ref: 'events',\n refInFor: true,\n })\n },\n genTimedEvent ({ event, left, width }: CalendarEventVisual, day: CalendarDayBodySlotScope): VNode | false {\n if (day.timeDelta(event.end) < 0 || day.timeDelta(event.start) >= 1 || isEventHiddenOn(event, day)) {\n return false\n }\n\n const dayIdentifier = getDayIdentifier(day)\n const start = event.startIdentifier >= dayIdentifier\n const end = event.endIdentifier > dayIdentifier\n const top = start ? day.timeToY(event.start) : 0\n const bottom = end ? day.timeToY(MINUTES_IN_DAY) : day.timeToY(event.end)\n const height = Math.max(this.eventHeight, bottom - top)\n const scope = { eventParsed: event, day, start, end, timed: true }\n\n return this.genEvent(event, scope, true, {\n staticClass: 'v-event-timed',\n style: {\n top: `${top}px`,\n height: `${height}px`,\n left: `${left}%`,\n width: `${width}%`,\n },\n })\n },\n genEvent (event: CalendarEventParsed, scopeInput: VEventScopeInput, timedEvent: boolean, data: VNodeData): VNode {\n const slot = this.$scopedSlots.event\n const text = this.eventTextColorFunction(event.input)\n const background = this.eventColorFunction(event.input)\n const overlapsNoon = event.start.hour < 12 && event.end.hour >= 12\n const singline = diffMinutes(event.start, event.end) <= this.parsedEventOverlapThreshold\n const formatTime = this.formatTime\n const timeSummary = () => formatTime(event.start, overlapsNoon) + ' - ' + formatTime(event.end, true)\n const eventSummary = () => {\n const name = this.eventNameFunction(event, timedEvent)\n if (event.start.hasTime) {\n const eventSummaryClass = 'v-event-summary'\n if (timedEvent) {\n const time = timeSummary()\n const delimiter = singline ? ', ' : '<br>'\n\n return `<span class=\"${eventSummaryClass}\"><strong>${name}</strong>${delimiter}${time}</span>`\n } else {\n const time = formatTime(event.start, true)\n\n return `<span class=\"${eventSummaryClass}\"><strong>${time}</strong> ${name}</span>`\n }\n }\n\n return name\n }\n\n const scope = {\n ...scopeInput,\n event: event.input,\n outside: scopeInput.day.outside,\n singline,\n overlapsNoon,\n formatTime,\n timeSummary,\n eventSummary,\n }\n\n return this.$createElement('div',\n this.setTextColor(text,\n this.setBackgroundColor(background, {\n on: this.getDefaultMouseEventHandlers(':event', nativeEvent => ({ ...scope, nativeEvent })),\n directives: [{\n name: 'ripple',\n value: this.eventRipple ?? true,\n }],\n ...data,\n })\n ), slot\n ? slot(scope)\n : [this.genName(eventSummary)]\n )\n },\n genName (eventSummary: () => string): VNode {\n return this.$createElement('div', {\n staticClass: 'pl-1',\n domProps: {\n innerHTML: eventSummary(),\n },\n })\n },\n genPlaceholder (day: CalendarTimestamp): VNode {\n const height = this.eventHeight + this.eventMarginBottom\n\n return this.$createElement('div', {\n style: {\n height: `${height}px`,\n },\n attrs: {\n 'data-date': day.date,\n },\n ref: 'events',\n refInFor: true,\n })\n },\n genMore (day: CalendarDaySlotScope): VNode {\n const eventHeight = this.eventHeight\n const eventMarginBottom = this.eventMarginBottom\n\n return this.$createElement('div', {\n staticClass: 'v-event-more pl-1',\n class: {\n 'v-outside': day.outside,\n },\n attrs: {\n 'data-date': day.date,\n 'data-more': 1,\n },\n directives: [{\n name: 'ripple',\n value: this.eventRipple ?? true,\n }],\n on: this.getDefaultMouseEventHandlers(':more', nativeEvent => {\n return { nativeEvent, ...day }\n }),\n\n style: {\n display: 'none',\n height: `${eventHeight}px`,\n 'margin-bottom': `${eventMarginBottom}px`,\n },\n ref: 'events',\n refInFor: true,\n })\n },\n getVisibleEvents (): CalendarEventParsed[] {\n const start = getDayIdentifier(this.days[0])\n const end = getDayIdentifier(this.days[this.days.length - 1])\n\n return this.parsedEvents.filter(\n event => isEventOverlapping(event, start, end)\n )\n },\n isEventForCategory (event: CalendarEventParsed, category: CalendarCategory): boolean {\n return !this.categoryMode ||\n (typeof category === 'object' && category.categoryName &&\n category.categoryName === event.category) ||\n (typeof event.category === 'string' && category === event.category) ||\n (typeof event.category !== 'string' && category === null)\n },\n getEventsForDay (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n const firstWeekday = this.eventWeekdays[0]\n\n return this.parsedEvents.filter(\n event => isEventStart(event, day, identifier, firstWeekday)\n )\n },\n getEventsForDayAll (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n const firstWeekday = this.eventWeekdays[0]\n\n return this.parsedEvents.filter(\n event => event.allDay &&\n (this.categoryMode ? isEventOn(event, identifier) : isEventStart(event, day, identifier, firstWeekday)) &&\n this.isEventForCategory(event, day.category)\n )\n },\n getEventsForDayTimed (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n return this.parsedEvents.filter(\n event => !event.allDay &&\n isEventOn(event, identifier) &&\n this.isEventForCategory(event, day.category)\n )\n },\n getScopedSlots () {\n if (this.noEvents) {\n return { ...this.$scopedSlots }\n }\n\n const mode = this.eventModeFunction(\n this.parsedEvents,\n this.eventWeekdays[0],\n this.parsedEventOverlapThreshold\n )\n\n const isNode = (input: VNode | false): input is VNode => !!input\n const getSlotChildren: VEventsToNodes = (day, getter, mapper, timed) => {\n const events = getter(day)\n const visuals = mode(day, events, timed, this.categoryMode)\n\n if (timed) {\n return visuals.map(visual => mapper(visual, day)).filter(isNode)\n }\n\n const children: VNode[] = []\n\n visuals.forEach((visual, index) => {\n while (children.length < visual.column) {\n children.push(this.genPlaceholder(day))\n }\n\n const mapped = mapper(visual, day)\n if (mapped) {\n children.push(mapped)\n }\n })\n\n return children\n }\n\n const slots = this.$scopedSlots\n const slotDay = slots.day\n const slotDayHeader = slots['day-header']\n const slotDayBody = slots['day-body']\n\n return {\n ...slots,\n day: (day: CalendarDaySlotScope) => {\n let children = getSlotChildren(day, this.getEventsForDay, this.genDayEvent, false)\n if (children && children.length > 0 && this.eventMore) {\n children.push(this.genMore(day))\n }\n if (slotDay) {\n const slot = slotDay(day)\n if (slot) {\n children = children ? children.concat(slot) : slot\n }\n }\n return children\n },\n 'day-header': (day: CalendarDaySlotScope) => {\n let children = getSlotChildren(day, this.getEventsForDayAll, this.genDayEvent, false)\n\n if (slotDayHeader) {\n const slot = slotDayHeader(day)\n if (slot) {\n children = children ? children.concat(slot) : slot\n }\n }\n return children\n },\n 'day-body': (day: CalendarDayBodySlotScope) => {\n const events = getSlotChildren(day, this.getEventsForDayTimed, this.genTimedEvent, true)\n let children: VNode[] = [\n this.$createElement('div', {\n staticClass: 'v-event-timed-container',\n }, events),\n ]\n\n if (slotDayBody) {\n const slot = slotDayBody(day)\n if (slot) {\n children = children.concat(slot)\n }\n }\n return children\n },\n }\n },\n },\n})\n"],"sourceRoot":"","file":"calendar-with-events.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/VCalendar/mixins/calendar-with-events.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './calendar-with-events.sass'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\n// Directives\nimport ripple from '../../../directives/ripple'\n\n// Mixins\nimport CalendarBase from './calendar-base'\n\n// Util\nimport props from '../util/props'\nimport {\n CalendarEventOverlapModes,\n} from '../modes'\nimport {\n getDayIdentifier, diffMinutes,\n} from '../util/timestamp'\nimport {\n parseEvent,\n isEventStart,\n isEventOn,\n isEventOverlapping,\n isEventHiddenOn,\n} from '../util/events'\nimport {\n CalendarTimestamp,\n CalendarEventParsed,\n CalendarEventVisual,\n CalendarEventColorFunction,\n CalendarEventNameFunction,\n CalendarEventTimedFunction,\n CalendarDaySlotScope,\n CalendarDayBodySlotScope,\n CalendarEventOverlapMode,\n CalendarEvent,\n CalendarEventCategoryFunction,\n CalendarCategory,\n} from 'vuetify/types'\n\n// Types\ntype VEventGetter<D> = (day: D) => CalendarEventParsed[]\n\ntype VEventVisualToNode<D> = (visual: CalendarEventVisual, day: D) => VNode | false\n\ntype VEventsToNodes = <D extends CalendarDaySlotScope>(\n day: D,\n getter: VEventGetter<D>,\n mapper: VEventVisualToNode<D>,\n timed: boolean) => VNode[] | undefined\n\ntype VDailyEventsMap = {\n [date: string]: {\n parent: HTMLElement\n more: HTMLElement | null\n events: HTMLElement[]\n }\n}\n\ninterface VEventScopeInput {\n eventParsed: CalendarEventParsed\n day: CalendarDaySlotScope\n start: boolean\n end: boolean\n timed: boolean\n}\n\nconst WIDTH_FULL = 100\nconst WIDTH_START = 95\nconst MINUTES_IN_DAY = 1440\n\n/* @vue/component */\nexport default CalendarBase.extend({\n name: 'calendar-with-events',\n\n directives: {\n ripple,\n },\n\n props: {\n ...props.events,\n ...props.calendar,\n ...props.category,\n },\n\n computed: {\n noEvents (): boolean {\n return this.events.length === 0\n },\n parsedEvents (): CalendarEventParsed[] {\n return this.events.map(this.parseEvent)\n },\n parsedEventOverlapThreshold (): number {\n return parseInt(this.eventOverlapThreshold)\n },\n eventTimedFunction (): CalendarEventTimedFunction {\n return typeof this.eventTimed === 'function'\n ? this.eventTimed\n : event => !!event[this.eventTimed as string]\n },\n eventCategoryFunction (): CalendarEventCategoryFunction {\n return typeof this.eventCategory === 'function'\n ? this.eventCategory\n : event => event[this.eventCategory as string]\n },\n eventTextColorFunction (): CalendarEventColorFunction {\n return typeof this.eventTextColor === 'function'\n ? this.eventTextColor\n : () => this.eventTextColor as string\n },\n eventNameFunction (): CalendarEventNameFunction {\n return typeof this.eventName === 'function'\n ? this.eventName\n : (event, timedEvent) => event.input[this.eventName as string] as string || ''\n },\n eventModeFunction (): CalendarEventOverlapMode {\n return typeof this.eventOverlapMode === 'function'\n ? this.eventOverlapMode\n : CalendarEventOverlapModes[this.eventOverlapMode]\n },\n eventWeekdays (): number[] {\n return this.parsedWeekdays\n },\n categoryMode (): boolean {\n return this.type === 'category'\n },\n },\n\n methods: {\n eventColorFunction (e: CalendarEvent): string {\n return typeof this.eventColor === 'function'\n ? this.eventColor(e)\n : e.color || this.eventColor\n },\n parseEvent (input: CalendarEvent, index = 0): CalendarEventParsed {\n return parseEvent(\n input,\n index,\n this.eventStart,\n this.eventEnd,\n this.eventTimedFunction(input),\n this.categoryMode ? this.eventCategoryFunction(input) : false,\n )\n },\n formatTime (withTime: CalendarTimestamp, ampm: boolean): string {\n const formatter = this.getFormatter({\n timeZone: 'UTC',\n hour: 'numeric',\n minute: withTime.minute > 0 ? 'numeric' : undefined,\n })\n\n return formatter(withTime, true)\n },\n updateEventVisibility () {\n if (this.noEvents || !this.eventMore) {\n return\n }\n\n const eventHeight = this.eventHeight\n const eventsMap = this.getEventsMap()\n\n for (const date in eventsMap) {\n const { parent, events, more } = eventsMap[date]\n if (!more) {\n break\n }\n\n const parentBounds = parent.getBoundingClientRect()\n const last = events.length - 1\n const eventsSorted = events.map(event => ({\n event,\n bottom: event.getBoundingClientRect().bottom,\n })).sort((a, b) => a.bottom - b.bottom)\n let hidden = 0\n\n for (let i = 0; i <= last; i++) {\n const bottom = eventsSorted[i].bottom\n const hide = i === last\n ? (bottom > parentBounds.bottom)\n : (bottom + eventHeight > parentBounds.bottom)\n\n if (hide) {\n eventsSorted[i].event.style.display = 'none'\n hidden++\n }\n }\n\n if (hidden) {\n more.style.display = ''\n more.innerHTML = this.$vuetify.lang.t(this.eventMoreText, hidden)\n } else {\n more.style.display = 'none'\n }\n }\n },\n getEventsMap (): VDailyEventsMap {\n const eventsMap: VDailyEventsMap = {}\n const elements = this.$refs.events as HTMLElement[]\n\n if (!elements || !elements.forEach) {\n return eventsMap\n }\n\n elements.forEach(el => {\n const date = el.getAttribute('data-date')\n if (el.parentElement && date) {\n if (!(date in eventsMap)) {\n eventsMap[date] = {\n parent: el.parentElement,\n more: null,\n events: [],\n }\n }\n if (el.getAttribute('data-more')) {\n eventsMap[date].more = el\n } else {\n eventsMap[date].events.push(el)\n el.style.display = ''\n }\n }\n })\n\n return eventsMap\n },\n genDayEvent ({ event }: CalendarEventVisual, day: CalendarDaySlotScope): VNode {\n const eventHeight = this.eventHeight\n const eventMarginBottom = this.eventMarginBottom\n const dayIdentifier = getDayIdentifier(day)\n const week = day.week\n const start = dayIdentifier === event.startIdentifier\n let end = dayIdentifier === event.endIdentifier\n let width = WIDTH_START\n\n if (!this.categoryMode) {\n for (let i = day.index + 1; i < week.length; i++) {\n const weekdayIdentifier = getDayIdentifier(week[i])\n if (event.endIdentifier >= weekdayIdentifier) {\n width += WIDTH_FULL\n end = end || weekdayIdentifier === event.endIdentifier\n } else {\n end = true\n break\n }\n }\n }\n const scope = { eventParsed: event, day, start, end, timed: false }\n\n return this.genEvent(event, scope, false, {\n staticClass: 'v-event',\n class: {\n 'v-event-start': start,\n 'v-event-end': end,\n },\n style: {\n height: `${eventHeight}px`,\n width: `${width}%`,\n 'margin-bottom': `${eventMarginBottom}px`,\n },\n attrs: {\n 'data-date': day.date,\n },\n key: event.index,\n ref: 'events',\n refInFor: true,\n })\n },\n genTimedEvent ({ event, left, width }: CalendarEventVisual, day: CalendarDayBodySlotScope): VNode | false {\n if (day.timeDelta(event.end) < 0 || day.timeDelta(event.start) >= 1 || isEventHiddenOn(event, day)) {\n return false\n }\n\n const dayIdentifier = getDayIdentifier(day)\n const start = event.startIdentifier >= dayIdentifier\n const end = event.endIdentifier > dayIdentifier\n const top = start ? day.timeToY(event.start) : 0\n const bottom = end ? day.timeToY(MINUTES_IN_DAY) : day.timeToY(event.end)\n const height = Math.max(this.eventHeight, bottom - top)\n const scope = { eventParsed: event, day, start, end, timed: true }\n\n return this.genEvent(event, scope, true, {\n staticClass: 'v-event-timed',\n style: {\n top: `${top}px`,\n height: `${height}px`,\n left: `${left}%`,\n width: `${width}%`,\n },\n })\n },\n genEvent (event: CalendarEventParsed, scopeInput: VEventScopeInput, timedEvent: boolean, data: VNodeData): VNode {\n const slot = this.$scopedSlots.event\n const text = this.eventTextColorFunction(event.input)\n const background = this.eventColorFunction(event.input)\n const overlapsNoon = event.start.hour < 12 && event.end.hour >= 12\n const singline = diffMinutes(event.start, event.end) <= this.parsedEventOverlapThreshold\n const formatTime = this.formatTime\n const timeSummary = () => formatTime(event.start, overlapsNoon) + ' - ' + formatTime(event.end, true)\n const eventSummary = () => {\n const name = this.eventNameFunction(event, timedEvent)\n if (event.start.hasTime) {\n if (timedEvent) {\n const time = timeSummary()\n const delimiter = singline ? ', ' : this.$createElement('br')\n\n return this.$createElement('span', { staticClass: 'v-event-summary' }, [\n this.$createElement('strong', [name]),\n delimiter,\n time,\n ])\n } else {\n const time = formatTime(event.start, true)\n\n return this.$createElement('span', { staticClass: 'v-event-summary' }, [\n this.$createElement('strong', [time]),\n ' ',\n name,\n ])\n }\n }\n\n return name\n }\n\n const scope = {\n ...scopeInput,\n event: event.input,\n outside: scopeInput.day.outside,\n singline,\n overlapsNoon,\n formatTime,\n timeSummary,\n eventSummary,\n }\n\n return this.$createElement('div',\n this.setTextColor(text,\n this.setBackgroundColor(background, {\n on: this.getDefaultMouseEventHandlers(':event', nativeEvent => ({ ...scope, nativeEvent })),\n directives: [{\n name: 'ripple',\n value: this.eventRipple ?? true,\n }],\n ...data,\n })\n ), slot\n ? slot(scope)\n : [this.genName(eventSummary)]\n )\n },\n genName (eventSummary: () => string | VNode): VNode {\n return this.$createElement('div', {\n staticClass: 'pl-1',\n }, [eventSummary()])\n },\n genPlaceholder (day: CalendarTimestamp): VNode {\n const height = this.eventHeight + this.eventMarginBottom\n\n return this.$createElement('div', {\n style: {\n height: `${height}px`,\n },\n attrs: {\n 'data-date': day.date,\n },\n ref: 'events',\n refInFor: true,\n })\n },\n genMore (day: CalendarDaySlotScope): VNode {\n const eventHeight = this.eventHeight\n const eventMarginBottom = this.eventMarginBottom\n\n return this.$createElement('div', {\n staticClass: 'v-event-more pl-1',\n class: {\n 'v-outside': day.outside,\n },\n attrs: {\n 'data-date': day.date,\n 'data-more': 1,\n },\n directives: [{\n name: 'ripple',\n value: this.eventRipple ?? true,\n }],\n on: this.getDefaultMouseEventHandlers(':more', nativeEvent => {\n return { nativeEvent, ...day }\n }),\n\n style: {\n display: 'none',\n height: `${eventHeight}px`,\n 'margin-bottom': `${eventMarginBottom}px`,\n },\n ref: 'events',\n refInFor: true,\n })\n },\n getVisibleEvents (): CalendarEventParsed[] {\n const start = getDayIdentifier(this.days[0])\n const end = getDayIdentifier(this.days[this.days.length - 1])\n\n return this.parsedEvents.filter(\n event => isEventOverlapping(event, start, end)\n )\n },\n isEventForCategory (event: CalendarEventParsed, category: CalendarCategory): boolean {\n return !this.categoryMode ||\n (typeof category === 'object' && category.categoryName &&\n category.categoryName === event.category) ||\n (typeof event.category === 'string' && category === event.category) ||\n (typeof event.category !== 'string' && category === null)\n },\n getEventsForDay (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n const firstWeekday = this.eventWeekdays[0]\n\n return this.parsedEvents.filter(\n event => isEventStart(event, day, identifier, firstWeekday)\n )\n },\n getEventsForDayAll (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n const firstWeekday = this.eventWeekdays[0]\n\n return this.parsedEvents.filter(\n event => event.allDay &&\n (this.categoryMode ? isEventOn(event, identifier) : isEventStart(event, day, identifier, firstWeekday)) &&\n this.isEventForCategory(event, day.category)\n )\n },\n getEventsForDayTimed (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n return this.parsedEvents.filter(\n event => !event.allDay &&\n isEventOn(event, identifier) &&\n this.isEventForCategory(event, day.category)\n )\n },\n getScopedSlots () {\n if (this.noEvents) {\n return { ...this.$scopedSlots }\n }\n\n const mode = this.eventModeFunction(\n this.parsedEvents,\n this.eventWeekdays[0],\n this.parsedEventOverlapThreshold\n )\n\n const isNode = (input: VNode | false): input is VNode => !!input\n const getSlotChildren: VEventsToNodes = (day, getter, mapper, timed) => {\n const events = getter(day)\n const visuals = mode(day, events, timed, this.categoryMode)\n\n if (timed) {\n return visuals.map(visual => mapper(visual, day)).filter(isNode)\n }\n\n const children: VNode[] = []\n\n visuals.forEach((visual, index) => {\n while (children.length < visual.column) {\n children.push(this.genPlaceholder(day))\n }\n\n const mapped = mapper(visual, day)\n if (mapped) {\n children.push(mapped)\n }\n })\n\n return children\n }\n\n const slots = this.$scopedSlots\n const slotDay = slots.day\n const slotDayHeader = slots['day-header']\n const slotDayBody = slots['day-body']\n\n return {\n ...slots,\n day: (day: CalendarDaySlotScope) => {\n let children = getSlotChildren(day, this.getEventsForDay, this.genDayEvent, false)\n if (children && children.length > 0 && this.eventMore) {\n children.push(this.genMore(day))\n }\n if (slotDay) {\n const slot = slotDay(day)\n if (slot) {\n children = children ? children.concat(slot) : slot\n }\n }\n return children\n },\n 'day-header': (day: CalendarDaySlotScope) => {\n let children = getSlotChildren(day, this.getEventsForDayAll, this.genDayEvent, false)\n\n if (slotDayHeader) {\n const slot = slotDayHeader(day)\n if (slot) {\n children = children ? children.concat(slot) : slot\n }\n }\n return children\n },\n 'day-body': (day: CalendarDayBodySlotScope) => {\n const events = getSlotChildren(day, this.getEventsForDayTimed, this.genTimedEvent, true)\n let children: VNode[] = [\n this.$createElement('div', {\n staticClass: 'v-event-timed-container',\n }, events),\n ]\n\n if (slotDayBody) {\n const slot = slotDayBody(day)\n if (slot) {\n children = children.concat(slot)\n }\n }\n return children\n },\n }\n },\n },\n})\n"],"sourceRoot":"","file":"calendar-with-events.js"}
|
|
@@ -240,10 +240,10 @@ var _default = baseMixins.extend({
|
|
|
240
240
|
}) // So we must have focused something outside the dialog and its children
|
|
241
241
|
) {
|
|
242
242
|
// Find and focus the first available element inside the dialog
|
|
243
|
-
var focusable = this.$refs.dialog.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
|
|
243
|
+
var focusable = this.$refs.dialog.querySelectorAll('button, [href], input:not([type="hidden"]), select, textarea, [tabindex]:not([tabindex="-1"])');
|
|
244
244
|
|
|
245
245
|
var el = _toConsumableArray(focusable).find(function (el) {
|
|
246
|
-
return !el.hasAttribute('disabled');
|
|
246
|
+
return !el.hasAttribute('disabled') && !el.matches('[tabindex="-1"]');
|
|
247
247
|
});
|
|
248
248
|
|
|
249
249
|
el && el.focus();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VDialog/VDialog.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Activatable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n directives: { ClickOutside },\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: [String, Number],\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition',\n },\n width: [String, Number],\n },\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n stackMinZIndex: 200,\n previousActiveElement: null as HTMLElement | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n [(`v-dialog ${this.contentClass}`).trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate,\n }\n },\n contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$scopedSlots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n this.previousActiveElement?.focus()\n }\n },\n fullscreen (val) {\n if (!this.isActive) return\n\n if (val) {\n this.hideScroll()\n this.removeOverlay(false)\n } else {\n this.showScroll()\n this.genOverlay()\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.isBooted = this.isActive\n this.isActive && this.show()\n })\n },\n\n beforeDestroy () {\n if (typeof window !== 'undefined') this.unbind()\n },\n\n methods: {\n animateClick () {\n this.animate = false\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n return !(\n this._isDestroyed ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\n },\n hideScroll () {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden')\n } else {\n Overlayable.options.methods.hideScroll.call(this)\n }\n },\n show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n // Double nextTick to wait for lazy content to be generated\n this.$nextTick(() => {\n this.$nextTick(() => {\n if (!this.$refs.dialog?.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.dialog?.focus()\n }\n this.bind()\n })\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\n this.$emit('click:outside', e)\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick()\n } else {\n this.isActive = false\n }\n },\n onKeydown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false\n const activator = this.getActivator()\n this.$nextTick(() => activator && (activator as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n this.$refs.dialog &&\n // It isn't the document or the dialog body\n ![document, this.$refs.dialog].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.dialog.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.dialog.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [\n this.$createElement('div', {\n class: this.contentClasses,\n attrs: {\n role: 'dialog',\n 'aria-modal': this.hideOverlay ? undefined : 'true',\n ...this.getScopeIdAttrs(),\n },\n on: { keydown: this.onKeydown },\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n appear: true,\n },\n }, [content])\n },\n genInnerContent () {\n const data: VNodeData = {\n class: this.classes,\n attrs: {\n tabindex: this.isActive ? 0 : undefined,\n },\n ref: 'dialog',\n directives: [\n {\n name: 'click-outside',\n value: {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n },\n { name: 'show', value: this.isActive },\n ],\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: convertToUnit(this.maxWidth),\n width: convertToUnit(this.width),\n }\n }\n\n return this.$createElement('div', data, this.getContentSlot())\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-dialog__container',\n class: {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VDialog.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VDialog/VDialog.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Activatable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n directives: { ClickOutside },\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: [String, Number],\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition',\n },\n width: [String, Number],\n },\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n stackMinZIndex: 200,\n previousActiveElement: null as HTMLElement | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n [(`v-dialog ${this.contentClass}`).trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate,\n }\n },\n contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$scopedSlots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n this.previousActiveElement?.focus()\n }\n },\n fullscreen (val) {\n if (!this.isActive) return\n\n if (val) {\n this.hideScroll()\n this.removeOverlay(false)\n } else {\n this.showScroll()\n this.genOverlay()\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.isBooted = this.isActive\n this.isActive && this.show()\n })\n },\n\n beforeDestroy () {\n if (typeof window !== 'undefined') this.unbind()\n },\n\n methods: {\n animateClick () {\n this.animate = false\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n return !(\n this._isDestroyed ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\n },\n hideScroll () {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden')\n } else {\n Overlayable.options.methods.hideScroll.call(this)\n }\n },\n show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n // Double nextTick to wait for lazy content to be generated\n this.$nextTick(() => {\n this.$nextTick(() => {\n if (!this.$refs.dialog?.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.dialog?.focus()\n }\n this.bind()\n })\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\n this.$emit('click:outside', e)\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick()\n } else {\n this.isActive = false\n }\n },\n onKeydown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false\n const activator = this.getActivator()\n this.$nextTick(() => activator && (activator as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n this.$refs.dialog &&\n // It isn't the document or the dialog body\n ![document, this.$refs.dialog].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.dialog.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.dialog.querySelectorAll('button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [\n this.$createElement('div', {\n class: this.contentClasses,\n attrs: {\n role: 'dialog',\n 'aria-modal': this.hideOverlay ? undefined : 'true',\n ...this.getScopeIdAttrs(),\n },\n on: { keydown: this.onKeydown },\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n appear: true,\n },\n }, [content])\n },\n genInnerContent () {\n const data: VNodeData = {\n class: this.classes,\n attrs: {\n tabindex: this.isActive ? 0 : undefined,\n },\n ref: 'dialog',\n directives: [\n {\n name: 'click-outside',\n value: {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n },\n { name: 'show', value: this.isActive },\n ],\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: convertToUnit(this.maxWidth),\n width: convertToUnit(this.width),\n }\n }\n\n return this.$createElement('div', data, this.getContentSlot())\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-dialog__container',\n class: {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VDialog.js"}
|
|
@@ -120,14 +120,14 @@ var _default2 = (0, _mixins.default)(_colorable.default, _themeable.default).ext
|
|
|
120
120
|
},
|
|
121
121
|
genFilteredText: function genFilteredText(text) {
|
|
122
122
|
text = text || '';
|
|
123
|
-
if (!this.searchInput || this.noFilter) return
|
|
123
|
+
if (!this.searchInput || this.noFilter) return text;
|
|
124
124
|
|
|
125
125
|
var _this$getMaskedCharac = this.getMaskedCharacters(text),
|
|
126
126
|
start = _this$getMaskedCharac.start,
|
|
127
127
|
middle = _this$getMaskedCharac.middle,
|
|
128
128
|
end = _this$getMaskedCharac.end;
|
|
129
129
|
|
|
130
|
-
return
|
|
130
|
+
return [start, this.genHighlight(middle), end];
|
|
131
131
|
},
|
|
132
132
|
genHeader: function genHeader(props) {
|
|
133
133
|
return this.$createElement(_VSubheader.default, {
|
|
@@ -135,7 +135,9 @@ var _default2 = (0, _mixins.default)(_colorable.default, _themeable.default).ext
|
|
|
135
135
|
}, props.header);
|
|
136
136
|
},
|
|
137
137
|
genHighlight: function genHighlight(text) {
|
|
138
|
-
return
|
|
138
|
+
return this.$createElement('span', {
|
|
139
|
+
staticClass: 'v-list-item__mask'
|
|
140
|
+
}, text);
|
|
139
141
|
},
|
|
140
142
|
getMaskedCharacters: function getMaskedCharacters(text) {
|
|
141
143
|
var searchInput = (this.searchInput || '').toString().toLocaleLowerCase();
|
|
@@ -209,12 +211,7 @@ var _default2 = (0, _mixins.default)(_colorable.default, _themeable.default).ext
|
|
|
209
211
|
},
|
|
210
212
|
genTileContent: function genTileContent(item) {
|
|
211
213
|
var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
212
|
-
|
|
213
|
-
return this.$createElement(_VList.VListItemContent, [this.$createElement(_VList.VListItemTitle, {
|
|
214
|
-
domProps: {
|
|
215
|
-
innerHTML: innerHTML
|
|
216
|
-
}
|
|
217
|
-
})]);
|
|
214
|
+
return this.$createElement(_VList.VListItemContent, [this.$createElement(_VList.VListItemTitle, [this.genFilteredText(this.getText(item))])]);
|
|
218
215
|
},
|
|
219
216
|
hasItem: function hasItem(item) {
|
|
220
217
|
return this.parsedItems.indexOf(this.getValue(item)) > -1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VSelect/VSelectList.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox'\nimport VDivider from '../VDivider'\nimport VSubheader from '../VSubheader'\nimport {\n VList,\n VListItem,\n VListItemAction,\n VListItemContent,\n VListItemTitle,\n} from '../VList'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport {\n escapeHTML,\n getPropertyFromItem,\n} from '../../util/helpers'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\ntype ListTile = { item: any, disabled?: null | boolean, value?: boolean, index: number };\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-select-list',\n\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n action: Boolean,\n dense: Boolean,\n hideSelected: Boolean,\n items: {\n type: Array,\n default: () => [],\n } as PropValidator<any[]>,\n itemDisabled: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'disabled',\n },\n itemText: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'text',\n },\n itemValue: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'value',\n },\n noDataText: String,\n noFilter: Boolean,\n searchInput: null as unknown as PropType<any>,\n selectedItems: {\n type: Array,\n default: () => [],\n } as PropValidator<any[]>,\n },\n\n computed: {\n parsedItems (): any[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n tileActiveClass (): string {\n return Object.keys(this.setTextColor(this.color).class || {}).join(' ')\n },\n staticNoDataTile (): VNode {\n const tile = {\n attrs: {\n role: undefined,\n },\n on: {\n mousedown: (e: Event) => e.preventDefault(), // Prevent onBlur from being called\n },\n }\n\n return this.$createElement(VListItem, tile, [\n this.genTileContent(this.noDataText),\n ])\n },\n },\n\n methods: {\n genAction (item: object, inputValue: any): VNode {\n return this.$createElement(VListItemAction, [\n this.$createElement(VSimpleCheckbox, {\n props: {\n color: this.color,\n value: inputValue,\n ripple: false,\n },\n on: {\n input: () => this.$emit('select', item),\n },\n }),\n ])\n },\n genDivider (props: { [key: string]: any }) {\n return this.$createElement(VDivider, { props })\n },\n genFilteredText (text: string) {\n text = text || ''\n\n if (!this.searchInput || this.noFilter) return escapeHTML(text)\n\n const { start, middle, end } = this.getMaskedCharacters(text)\n\n return `${escapeHTML(start)}${this.genHighlight(middle)}${escapeHTML(end)}`\n },\n genHeader (props: { [key: string]: any }): VNode {\n return this.$createElement(VSubheader, { props }, props.header)\n },\n genHighlight (text: string): string {\n return `<span class=\"v-list-item__mask\">${escapeHTML(text)}</span>`\n },\n getMaskedCharacters (text: string): {\n start: string\n middle: string\n end: string\n } {\n const searchInput = (this.searchInput || '').toString().toLocaleLowerCase()\n const index = text.toLocaleLowerCase().indexOf(searchInput)\n\n if (index < 0) return { start: text, middle: '', end: '' }\n\n const start = text.slice(0, index)\n const middle = text.slice(index, index + searchInput.length)\n const end = text.slice(index + searchInput.length)\n return { start, middle, end }\n },\n genTile ({\n item,\n index,\n disabled = null,\n value = false,\n }: ListTile): VNode | VNode[] | undefined {\n if (!value) value = this.hasItem(item)\n\n if (item === Object(item)) {\n disabled = disabled !== null\n ? disabled\n : this.getDisabled(item)\n }\n\n const tile = {\n attrs: {\n // Default behavior in list does not\n // contain aria-selected by default\n 'aria-selected': String(value),\n id: `list-item-${this._uid}-${index}`,\n role: 'option',\n },\n on: {\n mousedown: (e: Event) => {\n // Prevent onBlur from being called\n e.preventDefault()\n },\n click: () => disabled || this.$emit('select', item),\n },\n props: {\n activeClass: this.tileActiveClass,\n disabled,\n ripple: true,\n inputValue: value,\n },\n }\n\n if (!this.$scopedSlots.item) {\n return this.$createElement(VListItem, tile, [\n this.action && !this.hideSelected && this.items.length > 0\n ? this.genAction(item, value)\n : null,\n this.genTileContent(item, index),\n ])\n }\n\n const parent = this\n const scopedSlot = this.$scopedSlots.item({\n parent,\n item,\n attrs: {\n ...tile.attrs,\n ...tile.props,\n },\n on: tile.on,\n })\n\n return this.needsTile(scopedSlot)\n ? this.$createElement(VListItem, tile, scopedSlot)\n : scopedSlot\n },\n genTileContent (item: any, index = 0): VNode {\n const innerHTML = this.genFilteredText(this.getText(item))\n\n return this.$createElement(VListItemContent,\n [this.$createElement(VListItemTitle, {\n domProps: { innerHTML },\n })]\n )\n },\n hasItem (item: object) {\n return this.parsedItems.indexOf(this.getValue(item)) > -1\n },\n needsTile (slot: VNode[] | undefined) {\n return slot!.length !== 1 ||\n slot![0].componentOptions == null ||\n slot![0].componentOptions.Ctor.options.name !== 'v-list-item'\n },\n getDisabled (item: object) {\n return Boolean(getPropertyFromItem(item, this.itemDisabled, false))\n },\n getText (item: object) {\n return String(getPropertyFromItem(item, this.itemText, item))\n },\n getValue (item: object) {\n return getPropertyFromItem(item, this.itemValue, this.getText(item))\n },\n },\n\n render (): VNode {\n const children: VNodeChildren = []\n const itemsLength = this.items.length\n for (let index = 0; index < itemsLength; index++) {\n const item = this.items[index]\n\n if (this.hideSelected &&\n this.hasItem(item)\n ) continue\n\n if (item == null) children.push(this.genTile({ item, index }))\n else if (item.header) children.push(this.genHeader(item))\n else if (item.divider) children.push(this.genDivider(item))\n else children.push(this.genTile({ item, index }))\n }\n\n children.length || children.push(this.$slots['no-data'] || this.staticNoDataTile)\n\n this.$slots['prepend-item'] && children.unshift(this.$slots['prepend-item'])\n\n this.$slots['append-item'] && children.push(this.$slots['append-item'])\n\n return this.$createElement(VList, {\n staticClass: 'v-select-list',\n class: this.themeClasses,\n attrs: {\n role: 'listbox',\n tabindex: -1,\n },\n props: { dense: this.dense },\n }, children)\n },\n})\n"],"sourceRoot":"","file":"VSelectList.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VSelect/VSelectList.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox'\nimport VDivider from '../VDivider'\nimport VSubheader from '../VSubheader'\nimport {\n VList,\n VListItem,\n VListItemAction,\n VListItemContent,\n VListItemTitle,\n} from '../VList'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport { getPropertyFromItem } from '../../util/helpers'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\ntype ListTile = { item: any, disabled?: null | boolean, value?: boolean, index: number };\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-select-list',\n\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n action: Boolean,\n dense: Boolean,\n hideSelected: Boolean,\n items: {\n type: Array,\n default: () => [],\n } as PropValidator<any[]>,\n itemDisabled: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'disabled',\n },\n itemText: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'text',\n },\n itemValue: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'value',\n },\n noDataText: String,\n noFilter: Boolean,\n searchInput: null as unknown as PropType<any>,\n selectedItems: {\n type: Array,\n default: () => [],\n } as PropValidator<any[]>,\n },\n\n computed: {\n parsedItems (): any[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n tileActiveClass (): string {\n return Object.keys(this.setTextColor(this.color).class || {}).join(' ')\n },\n staticNoDataTile (): VNode {\n const tile = {\n attrs: {\n role: undefined,\n },\n on: {\n mousedown: (e: Event) => e.preventDefault(), // Prevent onBlur from being called\n },\n }\n\n return this.$createElement(VListItem, tile, [\n this.genTileContent(this.noDataText),\n ])\n },\n },\n\n methods: {\n genAction (item: object, inputValue: any): VNode {\n return this.$createElement(VListItemAction, [\n this.$createElement(VSimpleCheckbox, {\n props: {\n color: this.color,\n value: inputValue,\n ripple: false,\n },\n on: {\n input: () => this.$emit('select', item),\n },\n }),\n ])\n },\n genDivider (props: { [key: string]: any }) {\n return this.$createElement(VDivider, { props })\n },\n genFilteredText (text: string) {\n text = text || ''\n\n if (!this.searchInput || this.noFilter) return text\n\n const { start, middle, end } = this.getMaskedCharacters(text)\n\n return [start, this.genHighlight(middle), end]\n },\n genHeader (props: { [key: string]: any }): VNode {\n return this.$createElement(VSubheader, { props }, props.header)\n },\n genHighlight (text: string) {\n return this.$createElement('span', { staticClass: 'v-list-item__mask' }, text)\n },\n getMaskedCharacters (text: string): {\n start: string\n middle: string\n end: string\n } {\n const searchInput = (this.searchInput || '').toString().toLocaleLowerCase()\n const index = text.toLocaleLowerCase().indexOf(searchInput)\n\n if (index < 0) return { start: text, middle: '', end: '' }\n\n const start = text.slice(0, index)\n const middle = text.slice(index, index + searchInput.length)\n const end = text.slice(index + searchInput.length)\n return { start, middle, end }\n },\n genTile ({\n item,\n index,\n disabled = null,\n value = false,\n }: ListTile): VNode | VNode[] | undefined {\n if (!value) value = this.hasItem(item)\n\n if (item === Object(item)) {\n disabled = disabled !== null\n ? disabled\n : this.getDisabled(item)\n }\n\n const tile = {\n attrs: {\n // Default behavior in list does not\n // contain aria-selected by default\n 'aria-selected': String(value),\n id: `list-item-${this._uid}-${index}`,\n role: 'option',\n },\n on: {\n mousedown: (e: Event) => {\n // Prevent onBlur from being called\n e.preventDefault()\n },\n click: () => disabled || this.$emit('select', item),\n },\n props: {\n activeClass: this.tileActiveClass,\n disabled,\n ripple: true,\n inputValue: value,\n },\n }\n\n if (!this.$scopedSlots.item) {\n return this.$createElement(VListItem, tile, [\n this.action && !this.hideSelected && this.items.length > 0\n ? this.genAction(item, value)\n : null,\n this.genTileContent(item, index),\n ])\n }\n\n const parent = this\n const scopedSlot = this.$scopedSlots.item({\n parent,\n item,\n attrs: {\n ...tile.attrs,\n ...tile.props,\n },\n on: tile.on,\n })\n\n return this.needsTile(scopedSlot)\n ? this.$createElement(VListItem, tile, scopedSlot)\n : scopedSlot\n },\n genTileContent (item: any, index = 0): VNode {\n return this.$createElement(VListItemContent, [\n this.$createElement(VListItemTitle, [\n this.genFilteredText(this.getText(item)),\n ]),\n ])\n },\n hasItem (item: object) {\n return this.parsedItems.indexOf(this.getValue(item)) > -1\n },\n needsTile (slot: VNode[] | undefined) {\n return slot!.length !== 1 ||\n slot![0].componentOptions == null ||\n slot![0].componentOptions.Ctor.options.name !== 'v-list-item'\n },\n getDisabled (item: object) {\n return Boolean(getPropertyFromItem(item, this.itemDisabled, false))\n },\n getText (item: object) {\n return String(getPropertyFromItem(item, this.itemText, item))\n },\n getValue (item: object) {\n return getPropertyFromItem(item, this.itemValue, this.getText(item))\n },\n },\n\n render (): VNode {\n const children: VNodeChildren = []\n const itemsLength = this.items.length\n for (let index = 0; index < itemsLength; index++) {\n const item = this.items[index]\n\n if (this.hideSelected &&\n this.hasItem(item)\n ) continue\n\n if (item == null) children.push(this.genTile({ item, index }))\n else if (item.header) children.push(this.genHeader(item))\n else if (item.divider) children.push(this.genDivider(item))\n else children.push(this.genTile({ item, index }))\n }\n\n children.length || children.push(this.$slots['no-data'] || this.staticNoDataTile)\n\n this.$slots['prepend-item'] && children.unshift(this.$slots['prepend-item'])\n\n this.$slots['append-item'] && children.push(this.$slots['append-item'])\n\n return this.$createElement(VList, {\n staticClass: 'v-select-list',\n class: this.themeClasses,\n attrs: {\n role: 'listbox',\n tabindex: -1,\n },\n props: { dense: this.dense },\n }, children)\n },\n})\n"],"sourceRoot":"","file":"VSelectList.js"}
|
package/es5/framework.js
CHANGED
|
@@ -79,7 +79,7 @@ var Vuetify = /*#__PURE__*/function () {
|
|
|
79
79
|
exports.default = Vuetify;
|
|
80
80
|
Vuetify.install = _install.install;
|
|
81
81
|
Vuetify.installed = false;
|
|
82
|
-
Vuetify.version = "2.6.10
|
|
82
|
+
Vuetify.version = "2.6.10";
|
|
83
83
|
Vuetify.config = {
|
|
84
84
|
silent: false
|
|
85
85
|
};
|
package/es5/util/helpers.js
CHANGED
|
@@ -13,7 +13,6 @@ exports.getObjectValueByPath = getObjectValueByPath;
|
|
|
13
13
|
exports.getPropertyFromItem = getPropertyFromItem;
|
|
14
14
|
exports.createRange = createRange;
|
|
15
15
|
exports.getZIndex = getZIndex;
|
|
16
|
-
exports.escapeHTML = escapeHTML;
|
|
17
16
|
exports.filterObjectOnKeys = filterObjectOnKeys;
|
|
18
17
|
exports.convertToUnit = convertToUnit;
|
|
19
18
|
exports.kebabCase = kebabCase;
|
|
@@ -206,18 +205,6 @@ function getZIndex(el) {
|
|
|
206
205
|
return index;
|
|
207
206
|
}
|
|
208
207
|
|
|
209
|
-
var tagsToReplace = {
|
|
210
|
-
'&': '&',
|
|
211
|
-
'<': '<',
|
|
212
|
-
'>': '>'
|
|
213
|
-
};
|
|
214
|
-
|
|
215
|
-
function escapeHTML(str) {
|
|
216
|
-
return str.replace(/[&<>]/g, function (tag) {
|
|
217
|
-
return tagsToReplace[tag] || tag;
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
|
|
221
208
|
function filterObjectOnKeys(obj, keys) {
|
|
222
209
|
var filtered = {};
|
|
223
210
|
|
package/es5/util/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import Vue from 'vue'\nimport { VNode, VNodeDirective } from 'vue/types'\nimport { VuetifyIcon } from 'vuetify/types/services/icons'\nimport { DataTableCompareFunction, SelectItemKey, ItemGroup } from 'vuetify/types'\n\nexport function createSimpleFunctional (\n c: string,\n el = 'div',\n name?: string\n) {\n return Vue.extend({\n name: name || c.replace(/__/g, '-'),\n\n functional: true,\n\n props: {\n tag: {\n type: String,\n default: el,\n },\n },\n\n render (h, { data, props, children }): VNode {\n data.staticClass = (`${c} ${data.staticClass || ''}`).trim()\n\n return h(props.tag, data, children)\n },\n })\n}\n\nexport type BindingConfig = Pick<VNodeDirective, 'arg' | 'modifiers' | 'value'>\nexport function directiveConfig (binding: BindingConfig, defaults = {}): VNodeDirective {\n return {\n ...defaults,\n ...binding.modifiers,\n value: binding.arg,\n ...(binding.value || {}),\n }\n}\n\nexport function addOnceEventListener (\n el: EventTarget,\n eventName: string,\n cb: (event: Event) => void,\n options: boolean | AddEventListenerOptions = false\n): void {\n const once = (event: Event) => {\n cb(event)\n el.removeEventListener(eventName, once, options)\n }\n\n el.addEventListener(eventName, once, options)\n}\n\nlet passiveSupported = false\ntry {\n if (typeof window !== 'undefined') {\n const testListenerOpts = Object.defineProperty({}, 'passive', {\n get: () => {\n passiveSupported = true\n },\n }) as EventListener & EventListenerOptions\n\n window.addEventListener('testListener', testListenerOpts, testListenerOpts)\n window.removeEventListener('testListener', testListenerOpts, testListenerOpts)\n }\n} catch (e) { console.warn(e) } /* eslint-disable-line no-console */\nexport { passiveSupported }\n\nexport function addPassiveEventListener (\n el: EventTarget,\n event: string,\n cb: (event: any) => void,\n options: {}\n): void {\n el.addEventListener(event, cb, passiveSupported ? options : false)\n}\n\nexport function getNestedValue (obj: any, path: (string | number)[], fallback?: any): any {\n const last = path.length - 1\n\n if (last < 0) return obj === undefined ? fallback : obj\n\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback\n }\n obj = obj[path[i]]\n }\n\n if (obj == null) return fallback\n\n return obj[path[last]] === undefined ? fallback : obj[path[last]]\n}\n\nexport function deepEqual (a: any, b: any): boolean {\n if (a === b) return true\n\n if (\n a instanceof Date &&\n b instanceof Date &&\n a.getTime() !== b.getTime()\n ) {\n // If the values are Date, compare them as timestamps\n return false\n }\n\n if (a !== Object(a) || b !== Object(b)) {\n // If the values aren't objects, they were already checked for equality\n return false\n }\n\n const props = Object.keys(a)\n\n if (props.length !== Object.keys(b).length) {\n // Different number of props, don't bother to check\n return false\n }\n\n return props.every(p => deepEqual(a[p], b[p]))\n}\n\nexport function getObjectValueByPath (obj: any, path: string, fallback?: any): any {\n // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n if (obj == null || !path || typeof path !== 'string') return fallback\n if (obj[path] !== undefined) return obj[path]\n path = path.replace(/\\[(\\w+)\\]/g, '.$1') // convert indexes to properties\n path = path.replace(/^\\./, '') // strip a leading dot\n return getNestedValue(obj, path.split('.'), fallback)\n}\n\nexport function getPropertyFromItem (\n item: object,\n property: SelectItemKey,\n fallback?: any\n): any {\n if (property == null) return item === undefined ? fallback : item\n\n if (item !== Object(item)) return fallback === undefined ? item : fallback\n\n if (typeof property === 'string') return getObjectValueByPath(item, property, fallback)\n\n if (Array.isArray(property)) return getNestedValue(item, property, fallback)\n\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n}\n\nexport function createRange (length: number): number[] {\n return Array.from({ length }, (v, k) => k)\n}\n\nexport function getZIndex (el?: Element | null): number {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0\n\n const index = +window.getComputedStyle(el).getPropertyValue('z-index')\n\n if (!index) return getZIndex(el.parentNode as Element)\n return index\n}\n\nconst tagsToReplace = {\n '&': '&',\n '<': '<',\n '>': '>',\n} as any\n\nexport function escapeHTML (str: string): string {\n return str.replace(/[&<>]/g, tag => tagsToReplace[tag] || tag)\n}\n\nexport function filterObjectOnKeys<T, K extends keyof T> (obj: T, keys: K[]): { [N in K]: T[N] } {\n const filtered = {} as { [N in K]: T[N] }\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n if (typeof obj[key] !== 'undefined') {\n filtered[key] = obj[key]\n }\n }\n\n return filtered\n}\n\nexport function convertToUnit (str: string | number | null | undefined, unit = 'px'): string | undefined {\n if (str == null || str === '') {\n return undefined\n } else if (isNaN(+str!)) {\n return String(str)\n } else {\n return `${Number(str)}${unit}`\n }\n}\n\nexport function kebabCase (str: string): string {\n return (str || '').replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()\n}\n\nexport function isObject (obj: any): obj is object {\n return obj !== null && typeof obj === 'object'\n}\n\n// KeyboardEvent.keyCode aliases\nexport const keyCodes = Object.freeze({\n enter: 13,\n tab: 9,\n delete: 46,\n esc: 27,\n space: 32,\n up: 38,\n down: 40,\n left: 37,\n right: 39,\n end: 35,\n home: 36,\n del: 46,\n backspace: 8,\n insert: 45,\n pageup: 33,\n pagedown: 34,\n shift: 16,\n})\n\n/**\n * This remaps internal names like '$cancel' or '$vuetify.icons.cancel'\n * to the current name or component for that icon.\n */\nexport function remapInternalIcon (vm: Vue, iconName: string): VuetifyIcon {\n // Look for custom component in the configuration\n const component = vm.$vuetify.icons.component\n\n // Look for overrides\n if (iconName.startsWith('$')) {\n // Get the target icon name\n const iconPath = `$vuetify.icons.values.${iconName.split('$').pop()!.split('.').pop()}`\n\n // Now look up icon indirection name,\n // e.g. '$vuetify.icons.values.cancel'\n const override = getObjectValueByPath(vm, iconPath, iconName)\n\n if (typeof override === 'string') iconName = override\n else return override\n }\n\n if (component == null) {\n return iconName\n }\n\n return {\n component,\n props: {\n icon: iconName,\n },\n }\n}\n\nexport function keys<O> (o: O) {\n return Object.keys(o) as (keyof O)[]\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nconst camelizeRE = /-(\\w)/g\nexport const camelize = (str: string): string => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\n}\n\n/**\n * Returns the set difference of B and A, i.e. the set of elements in B but not in A\n */\nexport function arrayDiff (a: any[], b: any[]): any[] {\n const diff: any[] = []\n for (let i = 0; i < b.length; i++) {\n if (a.indexOf(b[i]) < 0) diff.push(b[i])\n }\n return diff\n}\n\n/**\n * Makes the first character of a string uppercase\n */\nexport function upperFirst (str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport function groupItems<T extends any = any> (\n items: T[],\n groupBy: string[],\n groupDesc: boolean[]\n): ItemGroup<T>[] {\n const key = groupBy[0]\n const groups: ItemGroup<T>[] = []\n let current\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const val = getObjectValueByPath(item, key, null)\n if (current !== val) {\n current = val\n groups.push({\n name: val ?? '',\n items: [],\n })\n }\n groups[groups.length - 1].items.push(item)\n }\n return groups\n}\n\nexport function wrapInArray<T> (v: T | T[] | null | undefined): T[] { return v != null ? Array.isArray(v) ? v : [v] : [] }\n\nexport function sortItems<T extends any = any> (\n items: T[],\n sortBy: string[],\n sortDesc: boolean[],\n locale: string,\n customSorters?: Record<string, DataTableCompareFunction<T>>\n): T[] {\n if (sortBy === null || !sortBy.length) return items\n const stringCollator = new Intl.Collator(locale, { sensitivity: 'accent', usage: 'sort' })\n\n return items.sort((a, b) => {\n for (let i = 0; i < sortBy.length; i++) {\n const sortKey = sortBy[i]\n\n let sortA = getObjectValueByPath(a, sortKey)\n let sortB = getObjectValueByPath(b, sortKey)\n\n if (sortDesc[i]) {\n [sortA, sortB] = [sortB, sortA]\n }\n\n if (customSorters && customSorters[sortKey]) {\n const customResult = customSorters[sortKey](sortA, sortB)\n\n if (!customResult) continue\n\n return customResult\n }\n\n // Check if both cannot be evaluated\n if (sortA === null && sortB === null) {\n continue\n }\n\n // Dates should be compared numerically\n if (sortA instanceof Date && sortB instanceof Date) {\n return sortA.getTime() - sortB.getTime()\n }\n\n [sortA, sortB] = [sortA, sortB].map(s => (s || '').toString().toLocaleLowerCase())\n\n if (sortA !== sortB) {\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB)\n return stringCollator.compare(sortA, sortB)\n }\n }\n\n return 0\n })\n}\n\nexport function defaultFilter (value: any, search: string | null, item: any) {\n return value != null &&\n search != null &&\n typeof value !== 'boolean' &&\n value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1\n}\n\nexport function searchItems<T extends any = any> (items: T[], search: string): T[] {\n if (!search) return items\n search = search.toString().toLowerCase()\n if (search.trim() === '') return items\n\n return items.filter((item: any) => Object.keys(item).some(key => defaultFilter(getObjectValueByPath(item, key), search, item)))\n}\n\n/**\n * Returns:\n * - 'normal' for old style slots - `<template slot=\"default\">`\n * - 'scoped' for old style scoped slots (`<template slot=\"default\" slot-scope=\"data\">`) or bound v-slot (`#default=\"data\"`)\n * - 'v-slot' for unbound v-slot (`#default`) - only if the third param is true, otherwise counts as scoped\n */\nexport function getSlotType<T extends boolean = false> (vm: Vue, name: string, split?: T): (T extends true ? 'v-slot' : never) | 'normal' | 'scoped' | void {\n if (vm.$slots.hasOwnProperty(name) && vm.$scopedSlots.hasOwnProperty(name) && (vm.$scopedSlots[name] as any).name) {\n return split ? 'v-slot' as any : 'scoped'\n }\n if (vm.$slots.hasOwnProperty(name)) return 'normal'\n if (vm.$scopedSlots.hasOwnProperty(name)) return 'scoped'\n}\n\nexport function debounce (fn: Function, delay: number) {\n let timeoutId = 0 as any\n return (...args: any[]) => {\n clearTimeout(timeoutId)\n timeoutId = setTimeout(() => fn(...args), delay)\n }\n}\n\nexport function throttle<T extends (...args: any[]) => any> (fn: T, limit: number) {\n let throttling = false\n return (...args: Parameters<T>): void | ReturnType<T> => {\n if (!throttling) {\n throttling = true\n setTimeout(() => throttling = false, limit)\n return fn(...args)\n }\n }\n}\n\nexport function getPrefixedScopedSlots (prefix: string, scopedSlots: any) {\n return Object.keys(scopedSlots).filter(k => k.startsWith(prefix)).reduce((obj: any, k: string) => {\n obj[k.replace(prefix, '')] = scopedSlots[k]\n return obj\n }, {})\n}\n\nexport function getSlot (vm: Vue, name = 'default', data?: object | (() => object), optional = false) {\n if (vm.$scopedSlots.hasOwnProperty(name)) {\n return vm.$scopedSlots[name]!(data instanceof Function ? data() : data)\n } else if (vm.$slots.hasOwnProperty(name) && (!data || optional)) {\n return vm.$slots[name]\n }\n return undefined\n}\n\nexport function clamp (value: number, min = 0, max = 1) {\n return Math.max(min, Math.min(max, value))\n}\n\nexport function padEnd (str: string, length: number, char = '0') {\n return str + char.repeat(Math.max(0, length - str.length))\n}\n\nexport function chunk (str: string, size = 1) {\n const chunked: string[] = []\n let index = 0\n while (index < str.length) {\n chunked.push(str.substr(index, size))\n index += size\n }\n return chunked\n}\n\nexport function humanReadableFileSize (bytes: number, binary = false): string {\n const base = binary ? 1024 : 1000\n if (bytes < base) {\n return `${bytes} B`\n }\n\n const prefix = binary ? ['Ki', 'Mi', 'Gi'] : ['k', 'M', 'G']\n let unit = -1\n while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n bytes /= base\n ++unit\n }\n return `${bytes.toFixed(1)} ${prefix[unit]}B`\n}\n\nexport function camelizeObjectKeys (obj: Record<string, any> | null | undefined) {\n if (!obj) return {}\n\n return Object.keys(obj).reduce((o: any, key: string) => {\n o[camelize(key)] = obj[key]\n return o\n }, {})\n}\n\nexport function mergeDeep (\n source: Dictionary<any> = {},\n target: Dictionary<any> = {}\n) {\n for (const key in target) {\n const sourceProperty = source[key]\n const targetProperty = target[key]\n\n // Only continue deep merging if\n // both properties are objects\n if (\n isObject(sourceProperty) &&\n isObject(targetProperty)\n ) {\n source[key] = mergeDeep(sourceProperty, targetProperty)\n\n continue\n }\n\n source[key] = targetProperty\n }\n\n return source\n}\n\nexport function fillArray<T> (length: number, obj: T) {\n return Array(length).fill(obj)\n}\n\n/** Polyfill for Event.prototype.composedPath */\nexport function composedPath (e: Event): EventTarget[] {\n if (e.composedPath) return e.composedPath()\n\n const path = []\n let el = e.target as Element\n\n while (el) {\n path.push(el)\n\n if (el.tagName === 'HTML') {\n path.push(document)\n path.push(window)\n\n return path\n }\n\n el = el.parentElement!\n }\n return path\n}\n"],"sourceRoot":"","file":"helpers.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/util/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import Vue from 'vue'\nimport { VNode, VNodeDirective } from 'vue/types'\nimport { VuetifyIcon } from 'vuetify/types/services/icons'\nimport { DataTableCompareFunction, SelectItemKey, ItemGroup } from 'vuetify/types'\n\nexport function createSimpleFunctional (\n c: string,\n el = 'div',\n name?: string\n) {\n return Vue.extend({\n name: name || c.replace(/__/g, '-'),\n\n functional: true,\n\n props: {\n tag: {\n type: String,\n default: el,\n },\n },\n\n render (h, { data, props, children }): VNode {\n data.staticClass = (`${c} ${data.staticClass || ''}`).trim()\n\n return h(props.tag, data, children)\n },\n })\n}\n\nexport type BindingConfig = Pick<VNodeDirective, 'arg' | 'modifiers' | 'value'>\nexport function directiveConfig (binding: BindingConfig, defaults = {}): VNodeDirective {\n return {\n ...defaults,\n ...binding.modifiers,\n value: binding.arg,\n ...(binding.value || {}),\n }\n}\n\nexport function addOnceEventListener (\n el: EventTarget,\n eventName: string,\n cb: (event: Event) => void,\n options: boolean | AddEventListenerOptions = false\n): void {\n const once = (event: Event) => {\n cb(event)\n el.removeEventListener(eventName, once, options)\n }\n\n el.addEventListener(eventName, once, options)\n}\n\nlet passiveSupported = false\ntry {\n if (typeof window !== 'undefined') {\n const testListenerOpts = Object.defineProperty({}, 'passive', {\n get: () => {\n passiveSupported = true\n },\n }) as EventListener & EventListenerOptions\n\n window.addEventListener('testListener', testListenerOpts, testListenerOpts)\n window.removeEventListener('testListener', testListenerOpts, testListenerOpts)\n }\n} catch (e) { console.warn(e) } /* eslint-disable-line no-console */\nexport { passiveSupported }\n\nexport function addPassiveEventListener (\n el: EventTarget,\n event: string,\n cb: (event: any) => void,\n options: {}\n): void {\n el.addEventListener(event, cb, passiveSupported ? options : false)\n}\n\nexport function getNestedValue (obj: any, path: (string | number)[], fallback?: any): any {\n const last = path.length - 1\n\n if (last < 0) return obj === undefined ? fallback : obj\n\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback\n }\n obj = obj[path[i]]\n }\n\n if (obj == null) return fallback\n\n return obj[path[last]] === undefined ? fallback : obj[path[last]]\n}\n\nexport function deepEqual (a: any, b: any): boolean {\n if (a === b) return true\n\n if (\n a instanceof Date &&\n b instanceof Date &&\n a.getTime() !== b.getTime()\n ) {\n // If the values are Date, compare them as timestamps\n return false\n }\n\n if (a !== Object(a) || b !== Object(b)) {\n // If the values aren't objects, they were already checked for equality\n return false\n }\n\n const props = Object.keys(a)\n\n if (props.length !== Object.keys(b).length) {\n // Different number of props, don't bother to check\n return false\n }\n\n return props.every(p => deepEqual(a[p], b[p]))\n}\n\nexport function getObjectValueByPath (obj: any, path: string, fallback?: any): any {\n // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n if (obj == null || !path || typeof path !== 'string') return fallback\n if (obj[path] !== undefined) return obj[path]\n path = path.replace(/\\[(\\w+)\\]/g, '.$1') // convert indexes to properties\n path = path.replace(/^\\./, '') // strip a leading dot\n return getNestedValue(obj, path.split('.'), fallback)\n}\n\nexport function getPropertyFromItem (\n item: object,\n property: SelectItemKey,\n fallback?: any\n): any {\n if (property == null) return item === undefined ? fallback : item\n\n if (item !== Object(item)) return fallback === undefined ? item : fallback\n\n if (typeof property === 'string') return getObjectValueByPath(item, property, fallback)\n\n if (Array.isArray(property)) return getNestedValue(item, property, fallback)\n\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n}\n\nexport function createRange (length: number): number[] {\n return Array.from({ length }, (v, k) => k)\n}\n\nexport function getZIndex (el?: Element | null): number {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0\n\n const index = +window.getComputedStyle(el).getPropertyValue('z-index')\n\n if (!index) return getZIndex(el.parentNode as Element)\n return index\n}\n\nexport function filterObjectOnKeys<T, K extends keyof T> (obj: T, keys: K[]): { [N in K]: T[N] } {\n const filtered = {} as { [N in K]: T[N] }\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n if (typeof obj[key] !== 'undefined') {\n filtered[key] = obj[key]\n }\n }\n\n return filtered\n}\n\nexport function convertToUnit (str: string | number | null | undefined, unit = 'px'): string | undefined {\n if (str == null || str === '') {\n return undefined\n } else if (isNaN(+str!)) {\n return String(str)\n } else {\n return `${Number(str)}${unit}`\n }\n}\n\nexport function kebabCase (str: string): string {\n return (str || '').replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()\n}\n\nexport function isObject (obj: any): obj is object {\n return obj !== null && typeof obj === 'object'\n}\n\n// KeyboardEvent.keyCode aliases\nexport const keyCodes = Object.freeze({\n enter: 13,\n tab: 9,\n delete: 46,\n esc: 27,\n space: 32,\n up: 38,\n down: 40,\n left: 37,\n right: 39,\n end: 35,\n home: 36,\n del: 46,\n backspace: 8,\n insert: 45,\n pageup: 33,\n pagedown: 34,\n shift: 16,\n})\n\n/**\n * This remaps internal names like '$cancel' or '$vuetify.icons.cancel'\n * to the current name or component for that icon.\n */\nexport function remapInternalIcon (vm: Vue, iconName: string): VuetifyIcon {\n // Look for custom component in the configuration\n const component = vm.$vuetify.icons.component\n\n // Look for overrides\n if (iconName.startsWith('$')) {\n // Get the target icon name\n const iconPath = `$vuetify.icons.values.${iconName.split('$').pop()!.split('.').pop()}`\n\n // Now look up icon indirection name,\n // e.g. '$vuetify.icons.values.cancel'\n const override = getObjectValueByPath(vm, iconPath, iconName)\n\n if (typeof override === 'string') iconName = override\n else return override\n }\n\n if (component == null) {\n return iconName\n }\n\n return {\n component,\n props: {\n icon: iconName,\n },\n }\n}\n\nexport function keys<O> (o: O) {\n return Object.keys(o) as (keyof O)[]\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nconst camelizeRE = /-(\\w)/g\nexport const camelize = (str: string): string => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\n}\n\n/**\n * Returns the set difference of B and A, i.e. the set of elements in B but not in A\n */\nexport function arrayDiff (a: any[], b: any[]): any[] {\n const diff: any[] = []\n for (let i = 0; i < b.length; i++) {\n if (a.indexOf(b[i]) < 0) diff.push(b[i])\n }\n return diff\n}\n\n/**\n * Makes the first character of a string uppercase\n */\nexport function upperFirst (str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport function groupItems<T extends any = any> (\n items: T[],\n groupBy: string[],\n groupDesc: boolean[]\n): ItemGroup<T>[] {\n const key = groupBy[0]\n const groups: ItemGroup<T>[] = []\n let current\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const val = getObjectValueByPath(item, key, null)\n if (current !== val) {\n current = val\n groups.push({\n name: val ?? '',\n items: [],\n })\n }\n groups[groups.length - 1].items.push(item)\n }\n return groups\n}\n\nexport function wrapInArray<T> (v: T | T[] | null | undefined): T[] { return v != null ? Array.isArray(v) ? v : [v] : [] }\n\nexport function sortItems<T extends any = any> (\n items: T[],\n sortBy: string[],\n sortDesc: boolean[],\n locale: string,\n customSorters?: Record<string, DataTableCompareFunction<T>>\n): T[] {\n if (sortBy === null || !sortBy.length) return items\n const stringCollator = new Intl.Collator(locale, { sensitivity: 'accent', usage: 'sort' })\n\n return items.sort((a, b) => {\n for (let i = 0; i < sortBy.length; i++) {\n const sortKey = sortBy[i]\n\n let sortA = getObjectValueByPath(a, sortKey)\n let sortB = getObjectValueByPath(b, sortKey)\n\n if (sortDesc[i]) {\n [sortA, sortB] = [sortB, sortA]\n }\n\n if (customSorters && customSorters[sortKey]) {\n const customResult = customSorters[sortKey](sortA, sortB)\n\n if (!customResult) continue\n\n return customResult\n }\n\n // Check if both cannot be evaluated\n if (sortA === null && sortB === null) {\n continue\n }\n\n // Dates should be compared numerically\n if (sortA instanceof Date && sortB instanceof Date) {\n return sortA.getTime() - sortB.getTime()\n }\n\n [sortA, sortB] = [sortA, sortB].map(s => (s || '').toString().toLocaleLowerCase())\n\n if (sortA !== sortB) {\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB)\n return stringCollator.compare(sortA, sortB)\n }\n }\n\n return 0\n })\n}\n\nexport function defaultFilter (value: any, search: string | null, item: any) {\n return value != null &&\n search != null &&\n typeof value !== 'boolean' &&\n value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1\n}\n\nexport function searchItems<T extends any = any> (items: T[], search: string): T[] {\n if (!search) return items\n search = search.toString().toLowerCase()\n if (search.trim() === '') return items\n\n return items.filter((item: any) => Object.keys(item).some(key => defaultFilter(getObjectValueByPath(item, key), search, item)))\n}\n\n/**\n * Returns:\n * - 'normal' for old style slots - `<template slot=\"default\">`\n * - 'scoped' for old style scoped slots (`<template slot=\"default\" slot-scope=\"data\">`) or bound v-slot (`#default=\"data\"`)\n * - 'v-slot' for unbound v-slot (`#default`) - only if the third param is true, otherwise counts as scoped\n */\nexport function getSlotType<T extends boolean = false> (vm: Vue, name: string, split?: T): (T extends true ? 'v-slot' : never) | 'normal' | 'scoped' | void {\n if (vm.$slots.hasOwnProperty(name) && vm.$scopedSlots.hasOwnProperty(name) && (vm.$scopedSlots[name] as any).name) {\n return split ? 'v-slot' as any : 'scoped'\n }\n if (vm.$slots.hasOwnProperty(name)) return 'normal'\n if (vm.$scopedSlots.hasOwnProperty(name)) return 'scoped'\n}\n\nexport function debounce (fn: Function, delay: number) {\n let timeoutId = 0 as any\n return (...args: any[]) => {\n clearTimeout(timeoutId)\n timeoutId = setTimeout(() => fn(...args), delay)\n }\n}\n\nexport function throttle<T extends (...args: any[]) => any> (fn: T, limit: number) {\n let throttling = false\n return (...args: Parameters<T>): void | ReturnType<T> => {\n if (!throttling) {\n throttling = true\n setTimeout(() => throttling = false, limit)\n return fn(...args)\n }\n }\n}\n\nexport function getPrefixedScopedSlots (prefix: string, scopedSlots: any) {\n return Object.keys(scopedSlots).filter(k => k.startsWith(prefix)).reduce((obj: any, k: string) => {\n obj[k.replace(prefix, '')] = scopedSlots[k]\n return obj\n }, {})\n}\n\nexport function getSlot (vm: Vue, name = 'default', data?: object | (() => object), optional = false) {\n if (vm.$scopedSlots.hasOwnProperty(name)) {\n return vm.$scopedSlots[name]!(data instanceof Function ? data() : data)\n } else if (vm.$slots.hasOwnProperty(name) && (!data || optional)) {\n return vm.$slots[name]\n }\n return undefined\n}\n\nexport function clamp (value: number, min = 0, max = 1) {\n return Math.max(min, Math.min(max, value))\n}\n\nexport function padEnd (str: string, length: number, char = '0') {\n return str + char.repeat(Math.max(0, length - str.length))\n}\n\nexport function chunk (str: string, size = 1) {\n const chunked: string[] = []\n let index = 0\n while (index < str.length) {\n chunked.push(str.substr(index, size))\n index += size\n }\n return chunked\n}\n\nexport function humanReadableFileSize (bytes: number, binary = false): string {\n const base = binary ? 1024 : 1000\n if (bytes < base) {\n return `${bytes} B`\n }\n\n const prefix = binary ? ['Ki', 'Mi', 'Gi'] : ['k', 'M', 'G']\n let unit = -1\n while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n bytes /= base\n ++unit\n }\n return `${bytes.toFixed(1)} ${prefix[unit]}B`\n}\n\nexport function camelizeObjectKeys (obj: Record<string, any> | null | undefined) {\n if (!obj) return {}\n\n return Object.keys(obj).reduce((o: any, key: string) => {\n o[camelize(key)] = obj[key]\n return o\n }, {})\n}\n\nexport function mergeDeep (\n source: Dictionary<any> = {},\n target: Dictionary<any> = {}\n) {\n for (const key in target) {\n const sourceProperty = source[key]\n const targetProperty = target[key]\n\n // Only continue deep merging if\n // both properties are objects\n if (\n isObject(sourceProperty) &&\n isObject(targetProperty)\n ) {\n source[key] = mergeDeep(sourceProperty, targetProperty)\n\n continue\n }\n\n source[key] = targetProperty\n }\n\n return source\n}\n\nexport function fillArray<T> (length: number, obj: T) {\n return Array(length).fill(obj)\n}\n\n/** Polyfill for Event.prototype.composedPath */\nexport function composedPath (e: Event): EventTarget[] {\n if (e.composedPath) return e.composedPath()\n\n const path = []\n let el = e.target as Element\n\n while (el) {\n path.push(el)\n\n if (el.tagName === 'HTML') {\n path.push(document)\n path.push(window)\n\n return path\n }\n\n el = el.parentElement!\n }\n return path\n}\n"],"sourceRoot":"","file":"helpers.js"}
|