@vuetify/nightly 3.6.13-pr-20185.5bf1ff4 → 3.6.14-master.2024-08-02

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.
Files changed (143) hide show
  1. package/dist/json/attributes.json +96 -96
  2. package/dist/json/importMap-labs.json +16 -16
  3. package/dist/json/importMap.json +136 -136
  4. package/dist/json/web-types.json +188 -188
  5. package/dist/vuetify-labs.css +3094 -3095
  6. package/dist/vuetify-labs.esm.js +6 -6
  7. package/dist/vuetify-labs.esm.js.map +1 -1
  8. package/dist/vuetify-labs.js +6 -6
  9. package/dist/vuetify-labs.min.css +2 -2
  10. package/dist/vuetify.css +2736 -2737
  11. package/dist/vuetify.d.ts +46 -46
  12. package/dist/vuetify.esm.js +6 -6
  13. package/dist/vuetify.esm.js.map +1 -1
  14. package/dist/vuetify.js +6 -6
  15. package/dist/vuetify.js.map +1 -1
  16. package/dist/vuetify.min.css +2 -2
  17. package/dist/vuetify.min.js +5 -5
  18. package/dist/vuetify.min.js.map +1 -1
  19. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  20. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  21. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  22. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  23. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  24. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  25. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  26. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  27. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  28. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.cy.mjs.map +1 -1
  29. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  30. package/lib/components/VDataTable/VDataTableColumn.mjs.map +1 -1
  31. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  32. package/lib/components/VDataTable/VDataTableRow.mjs.map +1 -1
  33. package/lib/components/VDataTable/VDataTableRows.mjs.map +1 -1
  34. package/lib/components/VDataTable/composables/group.mjs.map +1 -1
  35. package/lib/components/VDataTable/composables/headers.mjs.map +1 -1
  36. package/lib/components/VDataTable/composables/options.mjs +1 -1
  37. package/lib/components/VDataTable/composables/options.mjs.map +1 -1
  38. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  39. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +1 -1
  40. package/lib/components/VDatePicker/util/monthChange.mjs.map +1 -1
  41. package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +1 -1
  42. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  43. package/lib/components/VEmptyState/VEmptyState.mjs.map +1 -1
  44. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  45. package/lib/components/VFab/VFab.mjs.map +1 -1
  46. package/lib/components/VField/VField.mjs.map +1 -1
  47. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  48. package/lib/components/VGrid/VCol.mjs.map +1 -1
  49. package/lib/components/VGrid/VRow.mjs.map +1 -1
  50. package/lib/components/VImg/VImg.mjs.map +1 -1
  51. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  52. package/lib/components/VInput/InputIcon.mjs.map +1 -1
  53. package/lib/components/VInput/VInput.mjs.map +1 -1
  54. package/lib/components/VList/VList.mjs.map +1 -1
  55. package/lib/components/VList/VListGroup.mjs.map +1 -1
  56. package/lib/components/VList/VListItem.mjs.map +1 -1
  57. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  58. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  59. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  60. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  61. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  62. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  63. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  64. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  65. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  66. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  67. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  68. package/lib/components/VRating/VRating.mjs.map +1 -1
  69. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  70. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  71. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  72. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  73. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  74. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  75. package/lib/components/VSparkline/VBarline.mjs.map +1 -1
  76. package/lib/components/VSparkline/VSparkline.mjs.map +1 -1
  77. package/lib/components/VSparkline/VTrendline.mjs.map +1 -1
  78. package/lib/components/VSparkline/util/path.mjs.map +1 -1
  79. package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
  80. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  81. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  82. package/lib/components/VTabs/VTab.mjs.map +1 -1
  83. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  84. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  85. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  86. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  87. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  88. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  89. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  90. package/lib/components/transitions/createTransition.mjs.map +1 -1
  91. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  92. package/lib/components/transitions/expand-transition.mjs.map +1 -1
  93. package/lib/composables/border.mjs.map +1 -1
  94. package/lib/composables/color.mjs.map +1 -1
  95. package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
  96. package/lib/composables/density.mjs.map +1 -1
  97. package/lib/composables/display.mjs.map +1 -1
  98. package/lib/composables/elevation.mjs.map +1 -1
  99. package/lib/composables/focus.mjs.map +1 -1
  100. package/lib/composables/form.mjs.map +1 -1
  101. package/lib/composables/goto.mjs.map +1 -1
  102. package/lib/composables/group.mjs.map +1 -1
  103. package/lib/composables/icons.mjs.map +1 -1
  104. package/lib/composables/layout.mjs.map +1 -1
  105. package/lib/composables/loader.mjs.map +1 -1
  106. package/lib/composables/locale.mjs.map +1 -1
  107. package/lib/composables/location.mjs.map +1 -1
  108. package/lib/composables/position.mjs.map +1 -1
  109. package/lib/composables/proxiedModel.mjs.map +1 -1
  110. package/lib/composables/rounded.mjs.map +1 -1
  111. package/lib/composables/scroll.mjs.map +1 -1
  112. package/lib/composables/size.mjs.map +1 -1
  113. package/lib/composables/teleport.mjs.map +1 -1
  114. package/lib/composables/theme.mjs.map +1 -1
  115. package/lib/composables/touch.mjs.map +1 -1
  116. package/lib/composables/validation.mjs.map +1 -1
  117. package/lib/composables/variant.mjs.map +1 -1
  118. package/lib/directives/color/index.mjs.map +1 -1
  119. package/lib/directives/ripple/index.mjs.map +1 -1
  120. package/lib/entry-bundler.mjs +1 -1
  121. package/lib/entry-bundler.mjs.map +1 -1
  122. package/lib/framework.mjs +1 -1
  123. package/lib/framework.mjs.map +1 -1
  124. package/lib/index.d.mts +46 -46
  125. package/lib/labs/VCalendar/VCalendar.mjs.map +1 -1
  126. package/lib/labs/VCalendar/VCalendarInterval.mjs.map +1 -1
  127. package/lib/labs/VCalendar/VCalendarIntervalEvent.mjs.map +1 -1
  128. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
  129. package/lib/labs/VStepperVertical/VStepperVertical.mjs.map +1 -1
  130. package/lib/labs/VTimePicker/VTimePicker.mjs.map +1 -1
  131. package/lib/labs/VTimePicker/VTimePickerClock.mjs.map +1 -1
  132. package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -1
  133. package/lib/locale/adapters/vuetify.mjs.map +1 -1
  134. package/lib/locale/fr.mjs.map +1 -1
  135. package/lib/locale/it.mjs.map +1 -1
  136. package/lib/services/goto/index.mjs.map +1 -1
  137. package/lib/services/goto/util.mjs.map +1 -1
  138. package/lib/util/colorUtils.mjs.map +1 -1
  139. package/lib/util/console.mjs.map +1 -1
  140. package/lib/util/getCurrentInstance.mjs.map +1 -1
  141. package/lib/util/helpers.mjs +2 -2
  142. package/lib/util/helpers.mjs.map +1 -1
  143. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"goto.mjs","names":["computed","inject","useRtl","clamp","consoleWarn","mergeDeep","refElement","GoToSymbol","Symbol","for","genDefaults","container","undefined","duration","layout","offset","easing","patterns","linear","t","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","getContainer","el","getTarget","document","scrollingElement","body","querySelector","getOffset","target","horizontal","rtl","totalOffset","offsetLeft","offsetTop","offsetParent","createGoTo","options","locale","isRtl","scrollTo","_target","_options","goTo","property","value","HTMLElement","parentElement","ease","TypeError","targetLocation","styles","window","getComputedStyle","layoutOffset","getPropertyValue","parseInt","clampTarget","startLocation","Promise","resolve","startTime","performance","now","requestAnimationFrame","step","currentTime","timeElapsed","progress","location","Math","floor","abs","useGoTo","arguments","length","goToInstance","Error","go","scrollWidth","scrollHeight","containerWidth","containerHeight","innerWidth","innerHeight","offsetWidth","offsetHeight","min","max"],"sources":["../../src/composables/goto.ts"],"sourcesContent":["// Utilities\nimport { computed, inject } from 'vue'\nimport { useRtl } from './locale'\nimport { clamp, consoleWarn, mergeDeep, refElement } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance, InjectionKey, Ref } from 'vue'\nimport type { LocaleInstance, RtlInstance } from './locale'\n\nexport interface GoToInstance {\n rtl: Ref<boolean>\n options: InternalGoToOptions\n}\n\nexport interface InternalGoToOptions {\n container: ComponentPublicInstance | HTMLElement | string\n duration: number\n layout: boolean\n offset: number\n easing: string | ((t: number) => number)\n patterns: Record<string, (t: number) => number>\n}\n\nexport type GoToOptions = Partial<InternalGoToOptions>\n\nexport const GoToSymbol: InjectionKey<GoToInstance> = Symbol.for('vuetify:goto')\n\nfunction genDefaults () {\n return {\n container: undefined,\n duration: 300,\n layout: false,\n offset: 0,\n easing: 'easeInOutCubic',\n patterns: {\n linear: (t: number) => t,\n easeInQuad: (t: number) => t ** 2,\n easeOutQuad: (t: number) => t * (2 - t),\n easeInOutQuad: (t: number) => (t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t),\n easeInCubic: (t: number) => t ** 3,\n easeOutCubic: (t: number) => --t ** 3 + 1,\n easeInOutCubic: (t: number) => t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,\n easeInQuart: (t: number) => t ** 4,\n easeOutQuart: (t: number) => 1 - --t ** 4,\n easeInOutQuart: (t: number) => (t < 0.5 ? 8 * t ** 4 : 1 - 8 * --t ** 4),\n easeInQuint: (t: number) => t ** 5,\n easeOutQuint: (t: number) => 1 + --t ** 5,\n easeInOutQuint: (t: number) => t < 0.5 ? 16 * t ** 5 : 1 + 16 * --t ** 5,\n },\n }\n}\n\nfunction getContainer (el?: ComponentPublicInstance | HTMLElement | string) {\n return getTarget(el) ?? (document.scrollingElement || document.body) as HTMLElement\n}\n\nfunction getTarget (el: ComponentPublicInstance | HTMLElement | string | undefined) {\n return (typeof el === 'string') ? document.querySelector<HTMLElement>(el) : refElement(el)\n}\n\nfunction getOffset (target: any, horizontal?: boolean, rtl?: boolean): number {\n if (typeof target === 'number') return horizontal && rtl ? -target : target\n\n let el = getTarget(target)\n let totalOffset = 0\n while (el) {\n totalOffset += horizontal ? el.offsetLeft : el.offsetTop\n el = el.offsetParent as HTMLElement\n }\n\n return totalOffset\n}\n\nexport function createGoTo (\n options: GoToOptions| undefined,\n locale: LocaleInstance & RtlInstance\n): GoToInstance {\n return {\n rtl: locale.isRtl,\n options: mergeDeep(genDefaults(), options) as InternalGoToOptions,\n }\n}\n\nexport async function scrollTo (\n _target: ComponentPublicInstance | HTMLElement | number | string,\n _options: GoToOptions,\n horizontal?: boolean,\n goTo?: GoToInstance,\n) {\n const property = horizontal ? 'scrollLeft' : 'scrollTop'\n const options = mergeDeep(goTo?.options ?? genDefaults(), _options)\n const rtl = goTo?.rtl.value\n const target = (typeof _target === 'number' ? _target : getTarget(_target)) ?? 0\n const container = options.container === 'parent' && target instanceof HTMLElement\n ? target.parentElement!\n : getContainer(options.container)\n const ease = typeof options.easing === 'function' ? options.easing : options.patterns[options.easing]\n\n if (!ease) throw new TypeError(`Easing function \"${options.easing}\" not found.`)\n\n let targetLocation: number\n if (typeof target === 'number') {\n targetLocation = getOffset(target, horizontal, rtl)\n } else {\n targetLocation = getOffset(target, horizontal, rtl) - getOffset(container, horizontal, rtl)\n\n if (options.layout) {\n const styles = window.getComputedStyle(target)\n const layoutOffset = styles.getPropertyValue('--v-layout-top')\n\n if (layoutOffset) targetLocation -= parseInt(layoutOffset, 10)\n }\n }\n\n targetLocation += options.offset\n targetLocation = clampTarget(container, targetLocation, !!rtl, !!horizontal)\n\n const startLocation = container[property] ?? 0\n\n if (targetLocation === startLocation) return Promise.resolve(targetLocation)\n\n const startTime = performance.now()\n\n return new Promise(resolve => requestAnimationFrame(function step (currentTime: number) {\n const timeElapsed = currentTime - startTime\n const progress = timeElapsed / options.duration\n const location = Math.floor(\n startLocation +\n (targetLocation - startLocation) *\n ease(clamp(progress, 0, 1))\n )\n\n container[property] = location\n\n // Allow for some jitter if target time has elapsed\n if (progress >= 1 && Math.abs(location - container[property]) < 10) {\n return resolve(targetLocation)\n } else if (progress > 2) {\n // The target might not be reachable\n consoleWarn('Scroll target is not reachable')\n return resolve(container[property])\n }\n\n requestAnimationFrame(step)\n }))\n}\n\nexport function useGoTo (_options: GoToOptions = {}) {\n const goToInstance = inject(GoToSymbol)\n const { isRtl } = useRtl()\n\n if (!goToInstance) throw new Error('[Vuetify] Could not find injected goto instance')\n\n const goTo = {\n ...goToInstance,\n // can be set via VLocaleProvider\n rtl: computed(() => goToInstance.rtl.value || isRtl.value),\n }\n\n async function go (\n target: ComponentPublicInstance | HTMLElement | string | number,\n options?: Partial<GoToOptions>,\n ) {\n return scrollTo(target, mergeDeep(_options, options), false, goTo)\n }\n\n go.horizontal = async (\n target: ComponentPublicInstance | HTMLElement | string | number,\n options?: Partial<GoToOptions>,\n ) => {\n return scrollTo(target, mergeDeep(_options, options), true, goTo)\n }\n\n return go\n}\n\n/**\n * Clamp target value to achieve a smooth scroll animation\n * when the value goes outside the scroll container size\n */\nfunction clampTarget (\n container: HTMLElement,\n value: number,\n rtl: boolean,\n horizontal: boolean,\n) {\n const { scrollWidth, scrollHeight } = container\n const [containerWidth, containerHeight] = container === document.scrollingElement\n ? [window.innerWidth, window.innerHeight]\n : [container.offsetWidth, container.offsetHeight]\n\n let min: number\n let max: number\n\n if (horizontal) {\n if (rtl) {\n min = -(scrollWidth - containerWidth)\n max = 0\n } else {\n min = 0\n max = scrollWidth - containerWidth\n }\n } else {\n min = 0\n max = scrollHeight + -containerHeight\n }\n\n return Math.max(Math.min(value, max), min)\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"goto.mjs","names":["computed","inject","useRtl","clamp","consoleWarn","mergeDeep","refElement","GoToSymbol","Symbol","for","genDefaults","container","undefined","duration","layout","offset","easing","patterns","linear","t","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","getContainer","el","getTarget","document","scrollingElement","body","querySelector","getOffset","target","horizontal","rtl","totalOffset","offsetLeft","offsetTop","offsetParent","createGoTo","options","locale","isRtl","scrollTo","_target","_options","goTo","property","value","HTMLElement","parentElement","ease","TypeError","targetLocation","styles","window","getComputedStyle","layoutOffset","getPropertyValue","parseInt","clampTarget","startLocation","Promise","resolve","startTime","performance","now","requestAnimationFrame","step","currentTime","timeElapsed","progress","location","Math","floor","abs","useGoTo","arguments","length","goToInstance","Error","go","scrollWidth","scrollHeight","containerWidth","containerHeight","innerWidth","innerHeight","offsetWidth","offsetHeight","min","max"],"sources":["../../src/composables/goto.ts"],"sourcesContent":["// Utilities\nimport { computed, inject } from 'vue'\nimport { useRtl } from './locale'\nimport { clamp, consoleWarn, mergeDeep, refElement } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance, InjectionKey, Ref } from 'vue'\nimport type { LocaleInstance, RtlInstance } from './locale'\n\nexport interface GoToInstance {\n rtl: Ref<boolean>\n options: InternalGoToOptions\n}\n\nexport interface InternalGoToOptions {\n container: ComponentPublicInstance | HTMLElement | string\n duration: number\n layout: boolean\n offset: number\n easing: string | ((t: number) => number)\n patterns: Record<string, (t: number) => number>\n}\n\nexport type GoToOptions = Partial<InternalGoToOptions>\n\nexport const GoToSymbol: InjectionKey<GoToInstance> = Symbol.for('vuetify:goto')\n\nfunction genDefaults () {\n return {\n container: undefined,\n duration: 300,\n layout: false,\n offset: 0,\n easing: 'easeInOutCubic',\n patterns: {\n linear: (t: number) => t,\n easeInQuad: (t: number) => t ** 2,\n easeOutQuad: (t: number) => t * (2 - t),\n easeInOutQuad: (t: number) => (t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t),\n easeInCubic: (t: number) => t ** 3,\n easeOutCubic: (t: number) => --t ** 3 + 1,\n easeInOutCubic: (t: number) => t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,\n easeInQuart: (t: number) => t ** 4,\n easeOutQuart: (t: number) => 1 - --t ** 4,\n easeInOutQuart: (t: number) => (t < 0.5 ? 8 * t ** 4 : 1 - 8 * --t ** 4),\n easeInQuint: (t: number) => t ** 5,\n easeOutQuint: (t: number) => 1 + --t ** 5,\n easeInOutQuint: (t: number) => t < 0.5 ? 16 * t ** 5 : 1 + 16 * --t ** 5,\n },\n }\n}\n\nfunction getContainer (el?: ComponentPublicInstance | HTMLElement | string) {\n return getTarget(el) ?? (document.scrollingElement || document.body) as HTMLElement\n}\n\nfunction getTarget (el: ComponentPublicInstance | HTMLElement | string | undefined) {\n return (typeof el === 'string') ? document.querySelector<HTMLElement>(el) : refElement(el)\n}\n\nfunction getOffset (target: any, horizontal?: boolean, rtl?: boolean): number {\n if (typeof target === 'number') return horizontal && rtl ? -target : target\n\n let el = getTarget(target)\n let totalOffset = 0\n while (el) {\n totalOffset += horizontal ? el.offsetLeft : el.offsetTop\n el = el.offsetParent as HTMLElement\n }\n\n return totalOffset\n}\n\nexport function createGoTo (\n options: GoToOptions| undefined,\n locale: LocaleInstance & RtlInstance\n): GoToInstance {\n return {\n rtl: locale.isRtl,\n options: mergeDeep(genDefaults(), options) as InternalGoToOptions,\n }\n}\n\nexport async function scrollTo (\n _target: ComponentPublicInstance | HTMLElement | number | string,\n _options: GoToOptions,\n horizontal?: boolean,\n goTo?: GoToInstance,\n) {\n const property = horizontal ? 'scrollLeft' : 'scrollTop'\n const options = mergeDeep(goTo?.options ?? genDefaults(), _options)\n const rtl = goTo?.rtl.value\n const target = (typeof _target === 'number' ? _target : getTarget(_target)) ?? 0\n const container = options.container === 'parent' && target instanceof HTMLElement\n ? target.parentElement!\n : getContainer(options.container)\n const ease = typeof options.easing === 'function' ? options.easing : options.patterns[options.easing]\n\n if (!ease) throw new TypeError(`Easing function \"${options.easing}\" not found.`)\n\n let targetLocation: number\n if (typeof target === 'number') {\n targetLocation = getOffset(target, horizontal, rtl)\n } else {\n targetLocation = getOffset(target, horizontal, rtl) - getOffset(container, horizontal, rtl)\n\n if (options.layout) {\n const styles = window.getComputedStyle(target)\n const layoutOffset = styles.getPropertyValue('--v-layout-top')\n\n if (layoutOffset) targetLocation -= parseInt(layoutOffset, 10)\n }\n }\n\n targetLocation += options.offset\n targetLocation = clampTarget(container, targetLocation, !!rtl, !!horizontal)\n\n const startLocation = container[property] ?? 0\n\n if (targetLocation === startLocation) return Promise.resolve(targetLocation)\n\n const startTime = performance.now()\n\n return new Promise(resolve => requestAnimationFrame(function step (currentTime: number) {\n const timeElapsed = currentTime - startTime\n const progress = timeElapsed / options.duration\n const location = Math.floor(\n startLocation +\n (targetLocation - startLocation) *\n ease(clamp(progress, 0, 1))\n )\n\n container[property] = location\n\n // Allow for some jitter if target time has elapsed\n if (progress >= 1 && Math.abs(location - container[property]) < 10) {\n return resolve(targetLocation)\n } else if (progress > 2) {\n // The target might not be reachable\n consoleWarn('Scroll target is not reachable')\n return resolve(container[property])\n }\n\n requestAnimationFrame(step)\n }))\n}\n\nexport function useGoTo (_options: GoToOptions = {}) {\n const goToInstance = inject(GoToSymbol)\n const { isRtl } = useRtl()\n\n if (!goToInstance) throw new Error('[Vuetify] Could not find injected goto instance')\n\n const goTo = {\n ...goToInstance,\n // can be set via VLocaleProvider\n rtl: computed(() => goToInstance.rtl.value || isRtl.value),\n }\n\n async function go (\n target: ComponentPublicInstance | HTMLElement | string | number,\n options?: Partial<GoToOptions>,\n ) {\n return scrollTo(target, mergeDeep(_options, options), false, goTo)\n }\n\n go.horizontal = async (\n target: ComponentPublicInstance | HTMLElement | string | number,\n options?: Partial<GoToOptions>,\n ) => {\n return scrollTo(target, mergeDeep(_options, options), true, goTo)\n }\n\n return go\n}\n\n/**\n * Clamp target value to achieve a smooth scroll animation\n * when the value goes outside the scroll container size\n */\nfunction clampTarget (\n container: HTMLElement,\n value: number,\n rtl: boolean,\n horizontal: boolean,\n) {\n const { scrollWidth, scrollHeight } = container\n const [containerWidth, containerHeight] = container === document.scrollingElement\n ? [window.innerWidth, window.innerHeight]\n : [container.offsetWidth, container.offsetHeight]\n\n let min: number\n let max: number\n\n if (horizontal) {\n if (rtl) {\n min = -(scrollWidth - containerWidth)\n max = 0\n } else {\n min = 0\n max = scrollWidth - containerWidth\n }\n } else {\n min = 0\n max = scrollHeight + -containerHeight\n }\n\n return Math.max(Math.min(value, max), min)\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"group.mjs","names":["useProxiedModel","computed","inject","onBeforeUnmount","onMounted","onUpdated","provide","reactive","toRef","unref","watch","consoleWarn","deepEqual","findChildrenWithProvide","getCurrentInstance","getUid","propsFactory","wrapInArray","makeGroupProps","modelValue","type","default","undefined","multiple","Boolean","mandatory","String","max","Number","selectedClass","disabled","makeGroupItemProps","value","useGroupItem","props","injectKey","required","arguments","length","vm","Error","id","Symbol","for","description","group","register","unregister","isSelected","isFirst","items","isLast","emit","flush","toggle","select","useGroup","isUnmounted","selected","v","getIds","arr","getValues","groupVm","item","unwrapped","key","children","vnode","index","indexOf","useIndexAsValue","splice","push","forceMandatoryValue","findIndex","find","i","internalValue","slice","includes","step","offset","currentId","currentIndex","newIndex","newItem","state","prev","next","getItemIndex","ids","forEach","itemByIndex","values","itemIndex"],"sources":["../../src/composables/group.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from './proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, onUpdated, provide, reactive, toRef, unref, watch } from 'vue'\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, ComputedRef, ExtractPropTypes, InjectionKey, PropType, Ref, UnwrapRef } from 'vue'\nimport type { EventProp } from '@/util'\n\nexport interface GroupItem {\n id: number\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n useIndexAsValue?: boolean\n}\n\nexport interface GroupProps {\n disabled: boolean\n modelValue: unknown\n multiple?: boolean\n mandatory?: boolean | 'force' | undefined\n max?: number | undefined\n selectedClass: string | undefined\n 'onUpdate:modelValue': EventProp<[unknown]> | undefined\n}\n\nexport interface GroupProvide {\n register: (item: GroupItem, cmp: ComponentInternalInstance) => void\n unregister: (id: number) => void\n select: (id: number, value: boolean) => void\n selected: Ref<Readonly<number[]>>\n isSelected: (id: number) => boolean\n prev: () => void\n next: () => void\n selectedClass: Ref<string | undefined>\n items: ComputedRef<{\n id: number\n value: unknown\n disabled: boolean | undefined\n }[]>\n disabled: Ref<boolean | undefined>\n getItemIndex: (value: unknown) => number\n}\n\nexport interface GroupItemProvide {\n id: number\n isSelected: Ref<boolean>\n isFirst: Ref<boolean>\n isLast: Ref<boolean>\n toggle: () => void\n select: (value: boolean) => void\n selectedClass: Ref<(string | undefined)[] | false>\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n group: GroupProvide\n}\n\nexport const makeGroupProps = propsFactory({\n modelValue: {\n type: null,\n default: undefined,\n },\n multiple: Boolean,\n mandatory: [Boolean, String] as PropType<boolean | 'force'>,\n max: Number,\n selectedClass: String,\n disabled: Boolean,\n}, 'group')\n\nexport const makeGroupItemProps = propsFactory({\n value: null,\n disabled: Boolean,\n selectedClass: String,\n}, 'group-item')\n\nexport interface GroupItemProps extends ExtractPropTypes<ReturnType<typeof makeGroupItemProps>> {\n 'onGroup:selected': EventProp<[{ value: boolean }]> | undefined\n}\n\n// Composables\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required?: true,\n): GroupItemProvide\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required: false,\n): GroupItemProvide | null\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required = true,\n): GroupItemProvide | null {\n const vm = getCurrentInstance('useGroupItem')\n\n if (!vm) {\n throw new Error(\n '[Vuetify] useGroupItem composable must be used inside a component setup function'\n )\n }\n\n const id = getUid()\n\n provide(Symbol.for(`${injectKey.description}:id`), id)\n\n const group = inject(injectKey, null)\n\n if (!group) {\n if (!required) return group\n\n throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`)\n }\n\n const value = toRef(props, 'value')\n const disabled = computed(() => !!(group.disabled.value || props.disabled))\n\n group.register({\n id,\n value,\n disabled,\n }, vm)\n\n onBeforeUnmount(() => {\n group.unregister(id)\n })\n\n const isSelected = computed(() => {\n return group.isSelected(id)\n })\n const isFirst = computed(() => {\n return group.items.value[0].id === id\n })\n const isLast = computed(() => {\n return group.items.value[group.items.value.length - 1].id === id\n })\n\n const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass])\n\n watch(isSelected, value => {\n vm.emit('group:selected', { value })\n }, { flush: 'sync' })\n\n return {\n id,\n isSelected,\n isFirst,\n isLast,\n toggle: () => group.select(id, !isSelected.value),\n select: (value: boolean) => group.select(id, value),\n selectedClass,\n value,\n disabled,\n group,\n }\n}\n\nexport function useGroup (\n props: GroupProps,\n injectKey: InjectionKey<GroupProvide>\n) {\n let isUnmounted = false\n const items = reactive<GroupItem[]>([])\n const selected = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => {\n if (v == null) return []\n\n return getIds(items, wrapInArray(v))\n },\n v => {\n const arr = getValues(items, v)\n\n return props.multiple ? arr : arr[0]\n }\n )\n\n const groupVm = getCurrentInstance('useGroup')\n\n function register (item: GroupItem, vm: ComponentInternalInstance) {\n // Is there a better way to fix this typing?\n const unwrapped = item as unknown as UnwrapRef<GroupItem>\n\n const key = Symbol.for(`${injectKey.description}:id`)\n const children = findChildrenWithProvide(key, groupVm?.vnode)\n const index = children.indexOf(vm)\n\n if (unref(unwrapped.value) == null) {\n unwrapped.value = index\n unwrapped.useIndexAsValue = true\n }\n\n if (index > -1) {\n items.splice(index, 0, unwrapped)\n } else {\n items.push(unwrapped)\n }\n }\n\n function unregister (id: number) {\n if (isUnmounted) return\n\n // TODO: re-evaluate this line's importance in the future\n // should we only modify the model if mandatory is set.\n // selected.value = selected.value.filter(v => v !== id)\n\n forceMandatoryValue()\n\n const index = items.findIndex(item => item.id === id)\n items.splice(index, 1)\n }\n\n // If mandatory and nothing is selected, then select first non-disabled item\n function forceMandatoryValue () {\n const item = items.find(item => !item.disabled)\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id]\n }\n }\n\n onMounted(() => {\n forceMandatoryValue()\n })\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n onUpdated(() => {\n // #19655 update the items that use the index as the value.\n for (let i = 0; i < items.length; i++) {\n if (items[i].useIndexAsValue) {\n items[i].value = i\n }\n }\n })\n\n function select (id: number, value?: boolean) {\n const item = items.find(item => item.id === id)\n if (value && item?.disabled) return\n\n if (props.multiple) {\n const internalValue = selected.value.slice()\n const index = internalValue.findIndex(v => v === id)\n const isSelected = ~index\n value = value ?? !isSelected\n\n // We can't remove value if group is\n // mandatory, value already exists,\n // and it is the only value\n if (\n isSelected &&\n props.mandatory &&\n internalValue.length <= 1\n ) return\n\n // We can't add value if it would\n // cause max limit to be exceeded\n if (\n !isSelected &&\n props.max != null &&\n internalValue.length + 1 > props.max\n ) return\n\n if (index < 0 && value) internalValue.push(id)\n else if (index >= 0 && !value) internalValue.splice(index, 1)\n\n selected.value = internalValue\n } else {\n const isSelected = selected.value.includes(id)\n if (props.mandatory && isSelected) return\n\n selected.value = (value ?? !isSelected) ? [id] : []\n }\n }\n\n function step (offset: number) {\n // getting an offset from selected value obviously won't work with multiple values\n if (props.multiple) consoleWarn('This method is not supported when using \"multiple\" prop')\n\n if (!selected.value.length) {\n const item = items.find(item => !item.disabled)\n item && (selected.value = [item.id])\n } else {\n const currentId = selected.value[0]\n const currentIndex = items.findIndex(i => i.id === currentId)\n\n let newIndex = (currentIndex + offset) % items.length\n let newItem = items[newIndex]\n\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length\n newItem = items[newIndex]\n }\n\n if (newItem.disabled) return\n\n selected.value = [items[newIndex].id]\n }\n }\n\n const state: GroupProvide = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: (id: number) => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: (value: unknown) => getItemIndex(items, value),\n }\n\n provide(injectKey, state)\n\n return state\n}\n\nfunction getItemIndex (items: UnwrapRef<GroupItem[]>, value: unknown) {\n const ids = getIds(items, [value])\n\n if (!ids.length) return -1\n\n return items.findIndex(item => item.id === ids[0])\n}\n\nfunction getIds (items: UnwrapRef<GroupItem[]>, modelValue: any[]) {\n const ids: number[] = []\n\n modelValue.forEach(value => {\n const item = items.find(item => deepEqual(value, item.value))\n const itemByIndex = items[value]\n\n if (item?.value != null) {\n ids.push(item.id)\n } else if (itemByIndex != null) {\n ids.push(itemByIndex.id)\n }\n })\n\n return ids\n}\n\nfunction getValues (items: UnwrapRef<GroupItem[]>, ids: any[]) {\n const values: unknown[] = []\n\n ids.forEach(id => {\n const itemIndex = items.findIndex(item => item.id === id)\n if (~itemIndex) {\n const item = items[itemIndex]\n values.push(item.value != null ? item.value : itemIndex)\n }\n })\n\n return values\n}\n"],"mappings":"AAAA;AAAA,SACSA,eAAe,8BAExB;AACA,SAASC,QAAQ,EAAEC,MAAM,EAAEC,eAAe,EAAEC,SAAS,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,KAAK,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5GC,WAAW,EAAEC,SAAS,EAAEC,uBAAuB,EAAEC,kBAAkB,EAAEC,MAAM,EAAEC,YAAY,EAAEC,WAAW,6BAE/G;AAoDA,OAAO,MAAMC,cAAc,GAAGF,YAAY,CAAC;EACzCG,UAAU,EAAE;IACVC,IAAI,EAAE,IAAI;IACVC,OAAO,EAAEC;EACX,CAAC;EACDC,QAAQ,EAAEC,OAAO;EACjBC,SAAS,EAAE,CAACD,OAAO,EAAEE,MAAM,CAAgC;EAC3DC,GAAG,EAAEC,MAAM;EACXC,aAAa,EAAEH,MAAM;EACrBI,QAAQ,EAAEN;AACZ,CAAC,EAAE,OAAO,CAAC;AAEX,OAAO,MAAMO,kBAAkB,GAAGf,YAAY,CAAC;EAC7CgB,KAAK,EAAE,IAAI;EACXF,QAAQ,EAAEN,OAAO;EACjBK,aAAa,EAAEH;AACjB,CAAC,EAAE,YAAY,CAAC;;AAMhB;;AAWA,OAAO,SAASO,YAAYA,CAC1BC,KAAqB,EACrBC,SAAqC,EAEZ;EAAA,IADzBC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAf,SAAA,GAAAe,SAAA,MAAG,IAAI;EAEf,MAAME,EAAE,GAAGzB,kBAAkB,CAAC,cAAc,CAAC;EAE7C,IAAI,CAACyB,EAAE,EAAE;IACP,MAAM,IAAIC,KAAK,CACb,kFACF,CAAC;EACH;EAEA,MAAMC,EAAE,GAAG1B,MAAM,CAAC,CAAC;EAEnBT,OAAO,CAACoC,MAAM,CAACC,GAAG,CAAE,GAAER,SAAS,CAACS,WAAY,KAAI,CAAC,EAAEH,EAAE,CAAC;EAEtD,MAAMI,KAAK,GAAG3C,MAAM,CAACiC,SAAS,EAAE,IAAI,CAAC;EAErC,IAAI,CAACU,KAAK,EAAE;IACV,IAAI,CAACT,QAAQ,EAAE,OAAOS,KAAK;IAE3B,MAAM,IAAIL,KAAK,CAAE,2DAA0DL,SAAS,CAACS,WAAY,EAAC,CAAC;EACrG;EAEA,MAAMZ,KAAK,GAAGxB,KAAK,CAAC0B,KAAK,EAAE,OAAO,CAAC;EACnC,MAAMJ,QAAQ,GAAG7B,QAAQ,CAAC,MAAM,CAAC,EAAE4C,KAAK,CAACf,QAAQ,CAACE,KAAK,IAAIE,KAAK,CAACJ,QAAQ,CAAC,CAAC;EAE3Ee,KAAK,CAACC,QAAQ,CAAC;IACbL,EAAE;IACFT,KAAK;IACLF;EACF,CAAC,EAAES,EAAE,CAAC;EAENpC,eAAe,CAAC,MAAM;IACpB0C,KAAK,CAACE,UAAU,CAACN,EAAE,CAAC;EACtB,CAAC,CAAC;EAEF,MAAMO,UAAU,GAAG/C,QAAQ,CAAC,MAAM;IAChC,OAAO4C,KAAK,CAACG,UAAU,CAACP,EAAE,CAAC;EAC7B,CAAC,CAAC;EACF,MAAMQ,OAAO,GAAGhD,QAAQ,CAAC,MAAM;IAC7B,OAAO4C,KAAK,CAACK,KAAK,CAAClB,KAAK,CAAC,CAAC,CAAC,CAACS,EAAE,KAAKA,EAAE;EACvC,CAAC,CAAC;EACF,MAAMU,MAAM,GAAGlD,QAAQ,CAAC,MAAM;IAC5B,OAAO4C,KAAK,CAACK,KAAK,CAAClB,KAAK,CAACa,KAAK,CAACK,KAAK,CAAClB,KAAK,CAACM,MAAM,GAAG,CAAC,CAAC,CAACG,EAAE,KAAKA,EAAE;EAClE,CAAC,CAAC;EAEF,MAAMZ,aAAa,GAAG5B,QAAQ,CAAC,MAAM+C,UAAU,CAAChB,KAAK,IAAI,CAACa,KAAK,CAAChB,aAAa,CAACG,KAAK,EAAEE,KAAK,CAACL,aAAa,CAAC,CAAC;EAE1GnB,KAAK,CAACsC,UAAU,EAAEhB,KAAK,IAAI;IACzBO,EAAE,CAACa,IAAI,CAAC,gBAAgB,EAAE;MAAEpB;IAAM,CAAC,CAAC;EACtC,CAAC,EAAE;IAAEqB,KAAK,EAAE;EAAO,CAAC,CAAC;EAErB,OAAO;IACLZ,EAAE;IACFO,UAAU;IACVC,OAAO;IACPE,MAAM;IACNG,MAAM,EAAEA,CAAA,KAAMT,KAAK,CAACU,MAAM,CAACd,EAAE,EAAE,CAACO,UAAU,CAAChB,KAAK,CAAC;IACjDuB,MAAM,EAAGvB,KAAc,IAAKa,KAAK,CAACU,MAAM,CAACd,EAAE,EAAET,KAAK,CAAC;IACnDH,aAAa;IACbG,KAAK;IACLF,QAAQ;IACRe;EACF,CAAC;AACH;AAEA,OAAO,SAASW,QAAQA,CACtBtB,KAAiB,EACjBC,SAAqC,EACrC;EACA,IAAIsB,WAAW,GAAG,KAAK;EACvB,MAAMP,KAAK,GAAG3C,QAAQ,CAAc,EAAE,CAAC;EACvC,MAAMmD,QAAQ,GAAG1D,eAAe,CAC9BkC,KAAK,EACL,YAAY,EACZ,EAAE,EACFyB,CAAC,IAAI;IACH,IAAIA,CAAC,IAAI,IAAI,EAAE,OAAO,EAAE;IAExB,OAAOC,MAAM,CAACV,KAAK,EAAEjC,WAAW,CAAC0C,CAAC,CAAC,CAAC;EACtC,CAAC,EACDA,CAAC,IAAI;IACH,MAAME,GAAG,GAAGC,SAAS,CAACZ,KAAK,EAAES,CAAC,CAAC;IAE/B,OAAOzB,KAAK,CAACX,QAAQ,GAAGsC,GAAG,GAAGA,GAAG,CAAC,CAAC,CAAC;EACtC,CACF,CAAC;EAED,MAAME,OAAO,GAAGjD,kBAAkB,CAAC,UAAU,CAAC;EAE9C,SAASgC,QAAQA,CAAEkB,IAAe,EAAEzB,EAA6B,EAAE;IACjE;IACA,MAAM0B,SAAS,GAAGD,IAAuC;IAEzD,MAAME,GAAG,GAAGxB,MAAM,CAACC,GAAG,CAAE,GAAER,SAAS,CAACS,WAAY,KAAI,CAAC;IACrD,MAAMuB,QAAQ,GAAGtD,uBAAuB,CAACqD,GAAG,EAAEH,OAAO,EAAEK,KAAK,CAAC;IAC7D,MAAMC,KAAK,GAAGF,QAAQ,CAACG,OAAO,CAAC/B,EAAE,CAAC;IAElC,IAAI9B,KAAK,CAACwD,SAAS,CAACjC,KAAK,CAAC,IAAI,IAAI,EAAE;MAClCiC,SAAS,CAACjC,KAAK,GAAGqC,KAAK;MACvBJ,SAAS,CAACM,eAAe,GAAG,IAAI;IAClC;IAEA,IAAIF,KAAK,GAAG,CAAC,CAAC,EAAE;MACdnB,KAAK,CAACsB,MAAM,CAACH,KAAK,EAAE,CAAC,EAAEJ,SAAS,CAAC;IACnC,CAAC,MAAM;MACLf,KAAK,CAACuB,IAAI,CAACR,SAAS,CAAC;IACvB;EACF;EAEA,SAASlB,UAAUA,CAAEN,EAAU,EAAE;IAC/B,IAAIgB,WAAW,EAAE;;IAEjB;IACA;IACA;;IAEAiB,mBAAmB,CAAC,CAAC;IAErB,MAAML,KAAK,GAAGnB,KAAK,CAACyB,SAAS,CAACX,IAAI,IAAIA,IAAI,CAACvB,EAAE,KAAKA,EAAE,CAAC;IACrDS,KAAK,CAACsB,MAAM,CAACH,KAAK,EAAE,CAAC,CAAC;EACxB;;EAEA;EACA,SAASK,mBAAmBA,CAAA,EAAI;IAC9B,MAAMV,IAAI,GAAGd,KAAK,CAAC0B,IAAI,CAACZ,IAAI,IAAI,CAACA,IAAI,CAAClC,QAAQ,CAAC;IAC/C,IAAIkC,IAAI,IAAI9B,KAAK,CAACT,SAAS,KAAK,OAAO,IAAI,CAACiC,QAAQ,CAAC1B,KAAK,CAACM,MAAM,EAAE;MACjEoB,QAAQ,CAAC1B,KAAK,GAAG,CAACgC,IAAI,CAACvB,EAAE,CAAC;IAC5B;EACF;EAEArC,SAAS,CAAC,MAAM;IACdsE,mBAAmB,CAAC,CAAC;EACvB,CAAC,CAAC;EAEFvE,eAAe,CAAC,MAAM;IACpBsD,WAAW,GAAG,IAAI;EACpB,CAAC,CAAC;EAEFpD,SAAS,CAAC,MAAM;IACd;IACA,KAAK,IAAIwE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG3B,KAAK,CAACZ,MAAM,EAAEuC,CAAC,EAAE,EAAE;MACrC,IAAI3B,KAAK,CAAC2B,CAAC,CAAC,CAACN,eAAe,EAAE;QAC5BrB,KAAK,CAAC2B,CAAC,CAAC,CAAC7C,KAAK,GAAG6C,CAAC;MACpB;IACF;EACF,CAAC,CAAC;EAEF,SAAStB,MAAMA,CAAEd,EAAU,EAAET,KAAe,EAAE;IAC5C,MAAMgC,IAAI,GAAGd,KAAK,CAAC0B,IAAI,CAACZ,IAAI,IAAIA,IAAI,CAACvB,EAAE,KAAKA,EAAE,CAAC;IAC/C,IAAIT,KAAK,IAAIgC,IAAI,EAAElC,QAAQ,EAAE;IAE7B,IAAII,KAAK,CAACX,QAAQ,EAAE;MAClB,MAAMuD,aAAa,GAAGpB,QAAQ,CAAC1B,KAAK,CAAC+C,KAAK,CAAC,CAAC;MAC5C,MAAMV,KAAK,GAAGS,aAAa,CAACH,SAAS,CAAChB,CAAC,IAAIA,CAAC,KAAKlB,EAAE,CAAC;MACpD,MAAMO,UAAU,GAAG,CAACqB,KAAK;MACzBrC,KAAK,GAAGA,KAAK,IAAI,CAACgB,UAAU;;MAE5B;MACA;MACA;MACA,IACEA,UAAU,IACVd,KAAK,CAACT,SAAS,IACfqD,aAAa,CAACxC,MAAM,IAAI,CAAC,EACzB;;MAEF;MACA;MACA,IACE,CAACU,UAAU,IACXd,KAAK,CAACP,GAAG,IAAI,IAAI,IACjBmD,aAAa,CAACxC,MAAM,GAAG,CAAC,GAAGJ,KAAK,CAACP,GAAG,EACpC;MAEF,IAAI0C,KAAK,GAAG,CAAC,IAAIrC,KAAK,EAAE8C,aAAa,CAACL,IAAI,CAAChC,EAAE,CAAC,MACzC,IAAI4B,KAAK,IAAI,CAAC,IAAI,CAACrC,KAAK,EAAE8C,aAAa,CAACN,MAAM,CAACH,KAAK,EAAE,CAAC,CAAC;MAE7DX,QAAQ,CAAC1B,KAAK,GAAG8C,aAAa;IAChC,CAAC,MAAM;MACL,MAAM9B,UAAU,GAAGU,QAAQ,CAAC1B,KAAK,CAACgD,QAAQ,CAACvC,EAAE,CAAC;MAC9C,IAAIP,KAAK,CAACT,SAAS,IAAIuB,UAAU,EAAE;MAEnCU,QAAQ,CAAC1B,KAAK,GAAIA,KAAK,IAAI,CAACgB,UAAU,GAAI,CAACP,EAAE,CAAC,GAAG,EAAE;IACrD;EACF;EAEA,SAASwC,IAAIA,CAAEC,MAAc,EAAE;IAC7B;IACA,IAAIhD,KAAK,CAACX,QAAQ,EAAEZ,WAAW,CAAC,yDAAyD,CAAC;IAE1F,IAAI,CAAC+C,QAAQ,CAAC1B,KAAK,CAACM,MAAM,EAAE;MAC1B,MAAM0B,IAAI,GAAGd,KAAK,CAAC0B,IAAI,CAACZ,IAAI,IAAI,CAACA,IAAI,CAAClC,QAAQ,CAAC;MAC/CkC,IAAI,KAAKN,QAAQ,CAAC1B,KAAK,GAAG,CAACgC,IAAI,CAACvB,EAAE,CAAC,CAAC;IACtC,CAAC,MAAM;MACL,MAAM0C,SAAS,GAAGzB,QAAQ,CAAC1B,KAAK,CAAC,CAAC,CAAC;MACnC,MAAMoD,YAAY,GAAGlC,KAAK,CAACyB,SAAS,CAACE,CAAC,IAAIA,CAAC,CAACpC,EAAE,KAAK0C,SAAS,CAAC;MAE7D,IAAIE,QAAQ,GAAG,CAACD,YAAY,GAAGF,MAAM,IAAIhC,KAAK,CAACZ,MAAM;MACrD,IAAIgD,OAAO,GAAGpC,KAAK,CAACmC,QAAQ,CAAC;MAE7B,OAAOC,OAAO,CAACxD,QAAQ,IAAIuD,QAAQ,KAAKD,YAAY,EAAE;QACpDC,QAAQ,GAAG,CAACA,QAAQ,GAAGH,MAAM,IAAIhC,KAAK,CAACZ,MAAM;QAC7CgD,OAAO,GAAGpC,KAAK,CAACmC,QAAQ,CAAC;MAC3B;MAEA,IAAIC,OAAO,CAACxD,QAAQ,EAAE;MAEtB4B,QAAQ,CAAC1B,KAAK,GAAG,CAACkB,KAAK,CAACmC,QAAQ,CAAC,CAAC5C,EAAE,CAAC;IACvC;EACF;EAEA,MAAM8C,KAAmB,GAAG;IAC1BzC,QAAQ;IACRC,UAAU;IACVW,QAAQ;IACRH,MAAM;IACNzB,QAAQ,EAAEtB,KAAK,CAAC0B,KAAK,EAAE,UAAU,CAAC;IAClCsD,IAAI,EAAEA,CAAA,KAAMP,IAAI,CAAC/B,KAAK,CAACZ,MAAM,GAAG,CAAC,CAAC;IAClCmD,IAAI,EAAEA,CAAA,KAAMR,IAAI,CAAC,CAAC,CAAC;IACnBjC,UAAU,EAAGP,EAAU,IAAKiB,QAAQ,CAAC1B,KAAK,CAACgD,QAAQ,CAACvC,EAAE,CAAC;IACvDZ,aAAa,EAAE5B,QAAQ,CAAC,MAAMiC,KAAK,CAACL,aAAa,CAAC;IAClDqB,KAAK,EAAEjD,QAAQ,CAAC,MAAMiD,KAAK,CAAC;IAC5BwC,YAAY,EAAG1D,KAAc,IAAK0D,YAAY,CAACxC,KAAK,EAAElB,KAAK;EAC7D,CAAC;EAED1B,OAAO,CAAC6B,SAAS,EAAEoD,KAAK,CAAC;EAEzB,OAAOA,KAAK;AACd;AAEA,SAASG,YAAYA,CAAExC,KAA6B,EAAElB,KAAc,EAAE;EACpE,MAAM2D,GAAG,GAAG/B,MAAM,CAACV,KAAK,EAAE,CAAClB,KAAK,CAAC,CAAC;EAElC,IAAI,CAAC2D,GAAG,CAACrD,MAAM,EAAE,OAAO,CAAC,CAAC;EAE1B,OAAOY,KAAK,CAACyB,SAAS,CAACX,IAAI,IAAIA,IAAI,CAACvB,EAAE,KAAKkD,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD;AAEA,SAAS/B,MAAMA,CAAEV,KAA6B,EAAE/B,UAAiB,EAAE;EACjE,MAAMwE,GAAa,GAAG,EAAE;EAExBxE,UAAU,CAACyE,OAAO,CAAC5D,KAAK,IAAI;IAC1B,MAAMgC,IAAI,GAAGd,KAAK,CAAC0B,IAAI,CAACZ,IAAI,IAAIpD,SAAS,CAACoB,KAAK,EAAEgC,IAAI,CAAChC,KAAK,CAAC,CAAC;IAC7D,MAAM6D,WAAW,GAAG3C,KAAK,CAAClB,KAAK,CAAC;IAEhC,IAAIgC,IAAI,EAAEhC,KAAK,IAAI,IAAI,EAAE;MACvB2D,GAAG,CAAClB,IAAI,CAACT,IAAI,CAACvB,EAAE,CAAC;IACnB,CAAC,MAAM,IAAIoD,WAAW,IAAI,IAAI,EAAE;MAC9BF,GAAG,CAAClB,IAAI,CAACoB,WAAW,CAACpD,EAAE,CAAC;IAC1B;EACF,CAAC,CAAC;EAEF,OAAOkD,GAAG;AACZ;AAEA,SAAS7B,SAASA,CAAEZ,KAA6B,EAAEyC,GAAU,EAAE;EAC7D,MAAMG,MAAiB,GAAG,EAAE;EAE5BH,GAAG,CAACC,OAAO,CAACnD,EAAE,IAAI;IAChB,MAAMsD,SAAS,GAAG7C,KAAK,CAACyB,SAAS,CAACX,IAAI,IAAIA,IAAI,CAACvB,EAAE,KAAKA,EAAE,CAAC;IACzD,IAAI,CAACsD,SAAS,EAAE;MACd,MAAM/B,IAAI,GAAGd,KAAK,CAAC6C,SAAS,CAAC;MAC7BD,MAAM,CAACrB,IAAI,CAACT,IAAI,CAAChC,KAAK,IAAI,IAAI,GAAGgC,IAAI,CAAChC,KAAK,GAAG+D,SAAS,CAAC;IAC1D;EACF,CAAC,CAAC;EAEF,OAAOD,MAAM;AACf","ignoreList":[]}
1
+ {"version":3,"file":"group.mjs","names":["useProxiedModel","computed","inject","onBeforeUnmount","onMounted","onUpdated","provide","reactive","toRef","unref","watch","consoleWarn","deepEqual","findChildrenWithProvide","getCurrentInstance","getUid","propsFactory","wrapInArray","makeGroupProps","modelValue","type","default","undefined","multiple","Boolean","mandatory","String","max","Number","selectedClass","disabled","makeGroupItemProps","value","useGroupItem","props","injectKey","required","arguments","length","vm","Error","id","Symbol","for","description","group","register","unregister","isSelected","isFirst","items","isLast","emit","flush","toggle","select","useGroup","isUnmounted","selected","v","getIds","arr","getValues","groupVm","item","unwrapped","key","children","vnode","index","indexOf","useIndexAsValue","splice","push","forceMandatoryValue","findIndex","find","i","internalValue","slice","includes","step","offset","currentId","currentIndex","newIndex","newItem","state","prev","next","getItemIndex","ids","forEach","itemByIndex","values","itemIndex"],"sources":["../../src/composables/group.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from './proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, onUpdated, provide, reactive, toRef, unref, watch } from 'vue'\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, ComputedRef, ExtractPropTypes, InjectionKey, PropType, Ref, UnwrapRef } from 'vue'\nimport type { EventProp } from '@/util'\n\nexport interface GroupItem {\n id: number\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n useIndexAsValue?: boolean\n}\n\nexport interface GroupProps {\n disabled: boolean\n modelValue: unknown\n multiple?: boolean\n mandatory?: boolean | 'force' | undefined\n max?: number | undefined\n selectedClass: string | undefined\n 'onUpdate:modelValue': EventProp<[unknown]> | undefined\n}\n\nexport interface GroupProvide {\n register: (item: GroupItem, cmp: ComponentInternalInstance) => void\n unregister: (id: number) => void\n select: (id: number, value: boolean) => void\n selected: Ref<Readonly<number[]>>\n isSelected: (id: number) => boolean\n prev: () => void\n next: () => void\n selectedClass: Ref<string | undefined>\n items: ComputedRef<{\n id: number\n value: unknown\n disabled: boolean | undefined\n }[]>\n disabled: Ref<boolean | undefined>\n getItemIndex: (value: unknown) => number\n}\n\nexport interface GroupItemProvide {\n id: number\n isSelected: Ref<boolean>\n isFirst: Ref<boolean>\n isLast: Ref<boolean>\n toggle: () => void\n select: (value: boolean) => void\n selectedClass: Ref<(string | undefined)[] | false>\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n group: GroupProvide\n}\n\nexport const makeGroupProps = propsFactory({\n modelValue: {\n type: null,\n default: undefined,\n },\n multiple: Boolean,\n mandatory: [Boolean, String] as PropType<boolean | 'force'>,\n max: Number,\n selectedClass: String,\n disabled: Boolean,\n}, 'group')\n\nexport const makeGroupItemProps = propsFactory({\n value: null,\n disabled: Boolean,\n selectedClass: String,\n}, 'group-item')\n\nexport interface GroupItemProps extends ExtractPropTypes<ReturnType<typeof makeGroupItemProps>> {\n 'onGroup:selected': EventProp<[{ value: boolean }]> | undefined\n}\n\n// Composables\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required?: true,\n): GroupItemProvide\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required: false,\n): GroupItemProvide | null\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required = true,\n): GroupItemProvide | null {\n const vm = getCurrentInstance('useGroupItem')\n\n if (!vm) {\n throw new Error(\n '[Vuetify] useGroupItem composable must be used inside a component setup function'\n )\n }\n\n const id = getUid()\n\n provide(Symbol.for(`${injectKey.description}:id`), id)\n\n const group = inject(injectKey, null)\n\n if (!group) {\n if (!required) return group\n\n throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`)\n }\n\n const value = toRef(props, 'value')\n const disabled = computed(() => !!(group.disabled.value || props.disabled))\n\n group.register({\n id,\n value,\n disabled,\n }, vm)\n\n onBeforeUnmount(() => {\n group.unregister(id)\n })\n\n const isSelected = computed(() => {\n return group.isSelected(id)\n })\n const isFirst = computed(() => {\n return group.items.value[0].id === id\n })\n const isLast = computed(() => {\n return group.items.value[group.items.value.length - 1].id === id\n })\n\n const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass])\n\n watch(isSelected, value => {\n vm.emit('group:selected', { value })\n }, { flush: 'sync' })\n\n return {\n id,\n isSelected,\n isFirst,\n isLast,\n toggle: () => group.select(id, !isSelected.value),\n select: (value: boolean) => group.select(id, value),\n selectedClass,\n value,\n disabled,\n group,\n }\n}\n\nexport function useGroup (\n props: GroupProps,\n injectKey: InjectionKey<GroupProvide>\n) {\n let isUnmounted = false\n const items = reactive<GroupItem[]>([])\n const selected = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => {\n if (v == null) return []\n\n return getIds(items, wrapInArray(v))\n },\n v => {\n const arr = getValues(items, v)\n\n return props.multiple ? arr : arr[0]\n }\n )\n\n const groupVm = getCurrentInstance('useGroup')\n\n function register (item: GroupItem, vm: ComponentInternalInstance) {\n // Is there a better way to fix this typing?\n const unwrapped = item as unknown as UnwrapRef<GroupItem>\n\n const key = Symbol.for(`${injectKey.description}:id`)\n const children = findChildrenWithProvide(key, groupVm?.vnode)\n const index = children.indexOf(vm)\n\n if (unref(unwrapped.value) == null) {\n unwrapped.value = index\n unwrapped.useIndexAsValue = true\n }\n\n if (index > -1) {\n items.splice(index, 0, unwrapped)\n } else {\n items.push(unwrapped)\n }\n }\n\n function unregister (id: number) {\n if (isUnmounted) return\n\n // TODO: re-evaluate this line's importance in the future\n // should we only modify the model if mandatory is set.\n // selected.value = selected.value.filter(v => v !== id)\n\n forceMandatoryValue()\n\n const index = items.findIndex(item => item.id === id)\n items.splice(index, 1)\n }\n\n // If mandatory and nothing is selected, then select first non-disabled item\n function forceMandatoryValue () {\n const item = items.find(item => !item.disabled)\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id]\n }\n }\n\n onMounted(() => {\n forceMandatoryValue()\n })\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n onUpdated(() => {\n // #19655 update the items that use the index as the value.\n for (let i = 0; i < items.length; i++) {\n if (items[i].useIndexAsValue) {\n items[i].value = i\n }\n }\n })\n\n function select (id: number, value?: boolean) {\n const item = items.find(item => item.id === id)\n if (value && item?.disabled) return\n\n if (props.multiple) {\n const internalValue = selected.value.slice()\n const index = internalValue.findIndex(v => v === id)\n const isSelected = ~index\n value = value ?? !isSelected\n\n // We can't remove value if group is\n // mandatory, value already exists,\n // and it is the only value\n if (\n isSelected &&\n props.mandatory &&\n internalValue.length <= 1\n ) return\n\n // We can't add value if it would\n // cause max limit to be exceeded\n if (\n !isSelected &&\n props.max != null &&\n internalValue.length + 1 > props.max\n ) return\n\n if (index < 0 && value) internalValue.push(id)\n else if (index >= 0 && !value) internalValue.splice(index, 1)\n\n selected.value = internalValue\n } else {\n const isSelected = selected.value.includes(id)\n if (props.mandatory && isSelected) return\n\n selected.value = (value ?? !isSelected) ? [id] : []\n }\n }\n\n function step (offset: number) {\n // getting an offset from selected value obviously won't work with multiple values\n if (props.multiple) consoleWarn('This method is not supported when using \"multiple\" prop')\n\n if (!selected.value.length) {\n const item = items.find(item => !item.disabled)\n item && (selected.value = [item.id])\n } else {\n const currentId = selected.value[0]\n const currentIndex = items.findIndex(i => i.id === currentId)\n\n let newIndex = (currentIndex + offset) % items.length\n let newItem = items[newIndex]\n\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length\n newItem = items[newIndex]\n }\n\n if (newItem.disabled) return\n\n selected.value = [items[newIndex].id]\n }\n }\n\n const state: GroupProvide = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: (id: number) => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: (value: unknown) => getItemIndex(items, value),\n }\n\n provide(injectKey, state)\n\n return state\n}\n\nfunction getItemIndex (items: UnwrapRef<GroupItem[]>, value: unknown) {\n const ids = getIds(items, [value])\n\n if (!ids.length) return -1\n\n return items.findIndex(item => item.id === ids[0])\n}\n\nfunction getIds (items: UnwrapRef<GroupItem[]>, modelValue: any[]) {\n const ids: number[] = []\n\n modelValue.forEach(value => {\n const item = items.find(item => deepEqual(value, item.value))\n const itemByIndex = items[value]\n\n if (item?.value != null) {\n ids.push(item.id)\n } else if (itemByIndex != null) {\n ids.push(itemByIndex.id)\n }\n })\n\n return ids\n}\n\nfunction getValues (items: UnwrapRef<GroupItem[]>, ids: any[]) {\n const values: unknown[] = []\n\n ids.forEach(id => {\n const itemIndex = items.findIndex(item => item.id === id)\n if (~itemIndex) {\n const item = items[itemIndex]\n values.push(item.value != null ? item.value : itemIndex)\n }\n })\n\n return values\n}\n"],"mappings":"AAAA;AAAA,SACSA,eAAe,8BAExB;AACA,SAASC,QAAQ,EAAEC,MAAM,EAAEC,eAAe,EAAEC,SAAS,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,KAAK,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5GC,WAAW,EAAEC,SAAS,EAAEC,uBAAuB,EAAEC,kBAAkB,EAAEC,MAAM,EAAEC,YAAY,EAAEC,WAAW,6BAE/G;AAoDA,OAAO,MAAMC,cAAc,GAAGF,YAAY,CAAC;EACzCG,UAAU,EAAE;IACVC,IAAI,EAAE,IAAI;IACVC,OAAO,EAAEC;EACX,CAAC;EACDC,QAAQ,EAAEC,OAAO;EACjBC,SAAS,EAAE,CAACD,OAAO,EAAEE,MAAM,CAAgC;EAC3DC,GAAG,EAAEC,MAAM;EACXC,aAAa,EAAEH,MAAM;EACrBI,QAAQ,EAAEN;AACZ,CAAC,EAAE,OAAO,CAAC;AAEX,OAAO,MAAMO,kBAAkB,GAAGf,YAAY,CAAC;EAC7CgB,KAAK,EAAE,IAAI;EACXF,QAAQ,EAAEN,OAAO;EACjBK,aAAa,EAAEH;AACjB,CAAC,EAAE,YAAY,CAAC;;AAMhB;;AAWA,OAAO,SAASO,YAAYA,CAC1BC,KAAqB,EACrBC,SAAqC,EAEZ;EAAA,IADzBC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAf,SAAA,GAAAe,SAAA,MAAG,IAAI;EAEf,MAAME,EAAE,GAAGzB,kBAAkB,CAAC,cAAc,CAAC;EAE7C,IAAI,CAACyB,EAAE,EAAE;IACP,MAAM,IAAIC,KAAK,CACb,kFACF,CAAC;EACH;EAEA,MAAMC,EAAE,GAAG1B,MAAM,CAAC,CAAC;EAEnBT,OAAO,CAACoC,MAAM,CAACC,GAAG,CAAC,GAAGR,SAAS,CAACS,WAAW,KAAK,CAAC,EAAEH,EAAE,CAAC;EAEtD,MAAMI,KAAK,GAAG3C,MAAM,CAACiC,SAAS,EAAE,IAAI,CAAC;EAErC,IAAI,CAACU,KAAK,EAAE;IACV,IAAI,CAACT,QAAQ,EAAE,OAAOS,KAAK;IAE3B,MAAM,IAAIL,KAAK,CAAC,2DAA2DL,SAAS,CAACS,WAAW,EAAE,CAAC;EACrG;EAEA,MAAMZ,KAAK,GAAGxB,KAAK,CAAC0B,KAAK,EAAE,OAAO,CAAC;EACnC,MAAMJ,QAAQ,GAAG7B,QAAQ,CAAC,MAAM,CAAC,EAAE4C,KAAK,CAACf,QAAQ,CAACE,KAAK,IAAIE,KAAK,CAACJ,QAAQ,CAAC,CAAC;EAE3Ee,KAAK,CAACC,QAAQ,CAAC;IACbL,EAAE;IACFT,KAAK;IACLF;EACF,CAAC,EAAES,EAAE,CAAC;EAENpC,eAAe,CAAC,MAAM;IACpB0C,KAAK,CAACE,UAAU,CAACN,EAAE,CAAC;EACtB,CAAC,CAAC;EAEF,MAAMO,UAAU,GAAG/C,QAAQ,CAAC,MAAM;IAChC,OAAO4C,KAAK,CAACG,UAAU,CAACP,EAAE,CAAC;EAC7B,CAAC,CAAC;EACF,MAAMQ,OAAO,GAAGhD,QAAQ,CAAC,MAAM;IAC7B,OAAO4C,KAAK,CAACK,KAAK,CAAClB,KAAK,CAAC,CAAC,CAAC,CAACS,EAAE,KAAKA,EAAE;EACvC,CAAC,CAAC;EACF,MAAMU,MAAM,GAAGlD,QAAQ,CAAC,MAAM;IAC5B,OAAO4C,KAAK,CAACK,KAAK,CAAClB,KAAK,CAACa,KAAK,CAACK,KAAK,CAAClB,KAAK,CAACM,MAAM,GAAG,CAAC,CAAC,CAACG,EAAE,KAAKA,EAAE;EAClE,CAAC,CAAC;EAEF,MAAMZ,aAAa,GAAG5B,QAAQ,CAAC,MAAM+C,UAAU,CAAChB,KAAK,IAAI,CAACa,KAAK,CAAChB,aAAa,CAACG,KAAK,EAAEE,KAAK,CAACL,aAAa,CAAC,CAAC;EAE1GnB,KAAK,CAACsC,UAAU,EAAEhB,KAAK,IAAI;IACzBO,EAAE,CAACa,IAAI,CAAC,gBAAgB,EAAE;MAAEpB;IAAM,CAAC,CAAC;EACtC,CAAC,EAAE;IAAEqB,KAAK,EAAE;EAAO,CAAC,CAAC;EAErB,OAAO;IACLZ,EAAE;IACFO,UAAU;IACVC,OAAO;IACPE,MAAM;IACNG,MAAM,EAAEA,CAAA,KAAMT,KAAK,CAACU,MAAM,CAACd,EAAE,EAAE,CAACO,UAAU,CAAChB,KAAK,CAAC;IACjDuB,MAAM,EAAGvB,KAAc,IAAKa,KAAK,CAACU,MAAM,CAACd,EAAE,EAAET,KAAK,CAAC;IACnDH,aAAa;IACbG,KAAK;IACLF,QAAQ;IACRe;EACF,CAAC;AACH;AAEA,OAAO,SAASW,QAAQA,CACtBtB,KAAiB,EACjBC,SAAqC,EACrC;EACA,IAAIsB,WAAW,GAAG,KAAK;EACvB,MAAMP,KAAK,GAAG3C,QAAQ,CAAc,EAAE,CAAC;EACvC,MAAMmD,QAAQ,GAAG1D,eAAe,CAC9BkC,KAAK,EACL,YAAY,EACZ,EAAE,EACFyB,CAAC,IAAI;IACH,IAAIA,CAAC,IAAI,IAAI,EAAE,OAAO,EAAE;IAExB,OAAOC,MAAM,CAACV,KAAK,EAAEjC,WAAW,CAAC0C,CAAC,CAAC,CAAC;EACtC,CAAC,EACDA,CAAC,IAAI;IACH,MAAME,GAAG,GAAGC,SAAS,CAACZ,KAAK,EAAES,CAAC,CAAC;IAE/B,OAAOzB,KAAK,CAACX,QAAQ,GAAGsC,GAAG,GAAGA,GAAG,CAAC,CAAC,CAAC;EACtC,CACF,CAAC;EAED,MAAME,OAAO,GAAGjD,kBAAkB,CAAC,UAAU,CAAC;EAE9C,SAASgC,QAAQA,CAAEkB,IAAe,EAAEzB,EAA6B,EAAE;IACjE;IACA,MAAM0B,SAAS,GAAGD,IAAuC;IAEzD,MAAME,GAAG,GAAGxB,MAAM,CAACC,GAAG,CAAC,GAAGR,SAAS,CAACS,WAAW,KAAK,CAAC;IACrD,MAAMuB,QAAQ,GAAGtD,uBAAuB,CAACqD,GAAG,EAAEH,OAAO,EAAEK,KAAK,CAAC;IAC7D,MAAMC,KAAK,GAAGF,QAAQ,CAACG,OAAO,CAAC/B,EAAE,CAAC;IAElC,IAAI9B,KAAK,CAACwD,SAAS,CAACjC,KAAK,CAAC,IAAI,IAAI,EAAE;MAClCiC,SAAS,CAACjC,KAAK,GAAGqC,KAAK;MACvBJ,SAAS,CAACM,eAAe,GAAG,IAAI;IAClC;IAEA,IAAIF,KAAK,GAAG,CAAC,CAAC,EAAE;MACdnB,KAAK,CAACsB,MAAM,CAACH,KAAK,EAAE,CAAC,EAAEJ,SAAS,CAAC;IACnC,CAAC,MAAM;MACLf,KAAK,CAACuB,IAAI,CAACR,SAAS,CAAC;IACvB;EACF;EAEA,SAASlB,UAAUA,CAAEN,EAAU,EAAE;IAC/B,IAAIgB,WAAW,EAAE;;IAEjB;IACA;IACA;;IAEAiB,mBAAmB,CAAC,CAAC;IAErB,MAAML,KAAK,GAAGnB,KAAK,CAACyB,SAAS,CAACX,IAAI,IAAIA,IAAI,CAACvB,EAAE,KAAKA,EAAE,CAAC;IACrDS,KAAK,CAACsB,MAAM,CAACH,KAAK,EAAE,CAAC,CAAC;EACxB;;EAEA;EACA,SAASK,mBAAmBA,CAAA,EAAI;IAC9B,MAAMV,IAAI,GAAGd,KAAK,CAAC0B,IAAI,CAACZ,IAAI,IAAI,CAACA,IAAI,CAAClC,QAAQ,CAAC;IAC/C,IAAIkC,IAAI,IAAI9B,KAAK,CAACT,SAAS,KAAK,OAAO,IAAI,CAACiC,QAAQ,CAAC1B,KAAK,CAACM,MAAM,EAAE;MACjEoB,QAAQ,CAAC1B,KAAK,GAAG,CAACgC,IAAI,CAACvB,EAAE,CAAC;IAC5B;EACF;EAEArC,SAAS,CAAC,MAAM;IACdsE,mBAAmB,CAAC,CAAC;EACvB,CAAC,CAAC;EAEFvE,eAAe,CAAC,MAAM;IACpBsD,WAAW,GAAG,IAAI;EACpB,CAAC,CAAC;EAEFpD,SAAS,CAAC,MAAM;IACd;IACA,KAAK,IAAIwE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG3B,KAAK,CAACZ,MAAM,EAAEuC,CAAC,EAAE,EAAE;MACrC,IAAI3B,KAAK,CAAC2B,CAAC,CAAC,CAACN,eAAe,EAAE;QAC5BrB,KAAK,CAAC2B,CAAC,CAAC,CAAC7C,KAAK,GAAG6C,CAAC;MACpB;IACF;EACF,CAAC,CAAC;EAEF,SAAStB,MAAMA,CAAEd,EAAU,EAAET,KAAe,EAAE;IAC5C,MAAMgC,IAAI,GAAGd,KAAK,CAAC0B,IAAI,CAACZ,IAAI,IAAIA,IAAI,CAACvB,EAAE,KAAKA,EAAE,CAAC;IAC/C,IAAIT,KAAK,IAAIgC,IAAI,EAAElC,QAAQ,EAAE;IAE7B,IAAII,KAAK,CAACX,QAAQ,EAAE;MAClB,MAAMuD,aAAa,GAAGpB,QAAQ,CAAC1B,KAAK,CAAC+C,KAAK,CAAC,CAAC;MAC5C,MAAMV,KAAK,GAAGS,aAAa,CAACH,SAAS,CAAChB,CAAC,IAAIA,CAAC,KAAKlB,EAAE,CAAC;MACpD,MAAMO,UAAU,GAAG,CAACqB,KAAK;MACzBrC,KAAK,GAAGA,KAAK,IAAI,CAACgB,UAAU;;MAE5B;MACA;MACA;MACA,IACEA,UAAU,IACVd,KAAK,CAACT,SAAS,IACfqD,aAAa,CAACxC,MAAM,IAAI,CAAC,EACzB;;MAEF;MACA;MACA,IACE,CAACU,UAAU,IACXd,KAAK,CAACP,GAAG,IAAI,IAAI,IACjBmD,aAAa,CAACxC,MAAM,GAAG,CAAC,GAAGJ,KAAK,CAACP,GAAG,EACpC;MAEF,IAAI0C,KAAK,GAAG,CAAC,IAAIrC,KAAK,EAAE8C,aAAa,CAACL,IAAI,CAAChC,EAAE,CAAC,MACzC,IAAI4B,KAAK,IAAI,CAAC,IAAI,CAACrC,KAAK,EAAE8C,aAAa,CAACN,MAAM,CAACH,KAAK,EAAE,CAAC,CAAC;MAE7DX,QAAQ,CAAC1B,KAAK,GAAG8C,aAAa;IAChC,CAAC,MAAM;MACL,MAAM9B,UAAU,GAAGU,QAAQ,CAAC1B,KAAK,CAACgD,QAAQ,CAACvC,EAAE,CAAC;MAC9C,IAAIP,KAAK,CAACT,SAAS,IAAIuB,UAAU,EAAE;MAEnCU,QAAQ,CAAC1B,KAAK,GAAIA,KAAK,IAAI,CAACgB,UAAU,GAAI,CAACP,EAAE,CAAC,GAAG,EAAE;IACrD;EACF;EAEA,SAASwC,IAAIA,CAAEC,MAAc,EAAE;IAC7B;IACA,IAAIhD,KAAK,CAACX,QAAQ,EAAEZ,WAAW,CAAC,yDAAyD,CAAC;IAE1F,IAAI,CAAC+C,QAAQ,CAAC1B,KAAK,CAACM,MAAM,EAAE;MAC1B,MAAM0B,IAAI,GAAGd,KAAK,CAAC0B,IAAI,CAACZ,IAAI,IAAI,CAACA,IAAI,CAAClC,QAAQ,CAAC;MAC/CkC,IAAI,KAAKN,QAAQ,CAAC1B,KAAK,GAAG,CAACgC,IAAI,CAACvB,EAAE,CAAC,CAAC;IACtC,CAAC,MAAM;MACL,MAAM0C,SAAS,GAAGzB,QAAQ,CAAC1B,KAAK,CAAC,CAAC,CAAC;MACnC,MAAMoD,YAAY,GAAGlC,KAAK,CAACyB,SAAS,CAACE,CAAC,IAAIA,CAAC,CAACpC,EAAE,KAAK0C,SAAS,CAAC;MAE7D,IAAIE,QAAQ,GAAG,CAACD,YAAY,GAAGF,MAAM,IAAIhC,KAAK,CAACZ,MAAM;MACrD,IAAIgD,OAAO,GAAGpC,KAAK,CAACmC,QAAQ,CAAC;MAE7B,OAAOC,OAAO,CAACxD,QAAQ,IAAIuD,QAAQ,KAAKD,YAAY,EAAE;QACpDC,QAAQ,GAAG,CAACA,QAAQ,GAAGH,MAAM,IAAIhC,KAAK,CAACZ,MAAM;QAC7CgD,OAAO,GAAGpC,KAAK,CAACmC,QAAQ,CAAC;MAC3B;MAEA,IAAIC,OAAO,CAACxD,QAAQ,EAAE;MAEtB4B,QAAQ,CAAC1B,KAAK,GAAG,CAACkB,KAAK,CAACmC,QAAQ,CAAC,CAAC5C,EAAE,CAAC;IACvC;EACF;EAEA,MAAM8C,KAAmB,GAAG;IAC1BzC,QAAQ;IACRC,UAAU;IACVW,QAAQ;IACRH,MAAM;IACNzB,QAAQ,EAAEtB,KAAK,CAAC0B,KAAK,EAAE,UAAU,CAAC;IAClCsD,IAAI,EAAEA,CAAA,KAAMP,IAAI,CAAC/B,KAAK,CAACZ,MAAM,GAAG,CAAC,CAAC;IAClCmD,IAAI,EAAEA,CAAA,KAAMR,IAAI,CAAC,CAAC,CAAC;IACnBjC,UAAU,EAAGP,EAAU,IAAKiB,QAAQ,CAAC1B,KAAK,CAACgD,QAAQ,CAACvC,EAAE,CAAC;IACvDZ,aAAa,EAAE5B,QAAQ,CAAC,MAAMiC,KAAK,CAACL,aAAa,CAAC;IAClDqB,KAAK,EAAEjD,QAAQ,CAAC,MAAMiD,KAAK,CAAC;IAC5BwC,YAAY,EAAG1D,KAAc,IAAK0D,YAAY,CAACxC,KAAK,EAAElB,KAAK;EAC7D,CAAC;EAED1B,OAAO,CAAC6B,SAAS,EAAEoD,KAAK,CAAC;EAEzB,OAAOA,KAAK;AACd;AAEA,SAASG,YAAYA,CAAExC,KAA6B,EAAElB,KAAc,EAAE;EACpE,MAAM2D,GAAG,GAAG/B,MAAM,CAACV,KAAK,EAAE,CAAClB,KAAK,CAAC,CAAC;EAElC,IAAI,CAAC2D,GAAG,CAACrD,MAAM,EAAE,OAAO,CAAC,CAAC;EAE1B,OAAOY,KAAK,CAACyB,SAAS,CAACX,IAAI,IAAIA,IAAI,CAACvB,EAAE,KAAKkD,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD;AAEA,SAAS/B,MAAMA,CAAEV,KAA6B,EAAE/B,UAAiB,EAAE;EACjE,MAAMwE,GAAa,GAAG,EAAE;EAExBxE,UAAU,CAACyE,OAAO,CAAC5D,KAAK,IAAI;IAC1B,MAAMgC,IAAI,GAAGd,KAAK,CAAC0B,IAAI,CAACZ,IAAI,IAAIpD,SAAS,CAACoB,KAAK,EAAEgC,IAAI,CAAChC,KAAK,CAAC,CAAC;IAC7D,MAAM6D,WAAW,GAAG3C,KAAK,CAAClB,KAAK,CAAC;IAEhC,IAAIgC,IAAI,EAAEhC,KAAK,IAAI,IAAI,EAAE;MACvB2D,GAAG,CAAClB,IAAI,CAACT,IAAI,CAACvB,EAAE,CAAC;IACnB,CAAC,MAAM,IAAIoD,WAAW,IAAI,IAAI,EAAE;MAC9BF,GAAG,CAAClB,IAAI,CAACoB,WAAW,CAACpD,EAAE,CAAC;IAC1B;EACF,CAAC,CAAC;EAEF,OAAOkD,GAAG;AACZ;AAEA,SAAS7B,SAASA,CAAEZ,KAA6B,EAAEyC,GAAU,EAAE;EAC7D,MAAMG,MAAiB,GAAG,EAAE;EAE5BH,GAAG,CAACC,OAAO,CAACnD,EAAE,IAAI;IAChB,MAAMsD,SAAS,GAAG7C,KAAK,CAACyB,SAAS,CAACX,IAAI,IAAIA,IAAI,CAACvB,EAAE,KAAKA,EAAE,CAAC;IACzD,IAAI,CAACsD,SAAS,EAAE;MACd,MAAM/B,IAAI,GAAGd,KAAK,CAAC6C,SAAS,CAAC;MAC7BD,MAAM,CAACrB,IAAI,CAACT,IAAI,CAAChC,KAAK,IAAI,IAAI,GAAGgC,IAAI,CAAChC,KAAK,GAAG+D,SAAS,CAAC;IAC1D;EACF,CAAC,CAAC;EAEF,OAAOD,MAAM;AACf","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"icons.mjs","names":["aliases","mdi","computed","inject","unref","consoleWarn","defineComponent","genericComponent","mergeDeep","propsFactory","IconValue","String","Function","Object","Array","IconSymbol","Symbol","for","makeIconProps","icon","type","tag","required","VComponentIcon","name","props","setup","_ref","slots","Icon","_createVNode","default","VSvgIcon","inheritAttrs","_ref2","attrs","_mergeProps","isArray","map","path","VLigatureIcon","VClassIcon","genDefaults","svg","component","class","createIcons","options","sets","defaultSet","vuetify","useIcon","icons","Error","iconData","iconAlias","trim","startsWith","slice","iconSetName","keys","find","setName","iconName","length","iconSet"],"sources":["../../src/composables/icons.tsx"],"sourcesContent":["// Icons\nimport { aliases, mdi } from '@/iconsets/mdi'\n\n// Utilities\nimport { computed, inject, unref } from 'vue'\nimport { consoleWarn, defineComponent, genericComponent, mergeDeep, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, JSXComponent, PropType, Ref } from 'vue'\n\nexport type IconValue =\n | string\n | (string | [path: string, opacity: number])[]\n | JSXComponent\nexport const IconValue = [String, Function, Object, Array] as PropType<IconValue>\n\nexport interface IconAliases {\n [name: string]: IconValue\n complete: IconValue\n cancel: IconValue\n close: IconValue\n delete: IconValue\n clear: IconValue\n success: IconValue\n info: IconValue\n warning: IconValue\n error: IconValue\n prev: IconValue\n next: IconValue\n checkboxOn: IconValue\n checkboxOff: IconValue\n checkboxIndeterminate: IconValue\n delimiter: IconValue\n sortAsc: IconValue\n sortDesc: IconValue\n expand: IconValue\n menu: IconValue\n subgroup: IconValue\n dropdown: IconValue\n radioOn: IconValue\n radioOff: IconValue\n edit: IconValue\n ratingEmpty: IconValue\n ratingFull: IconValue\n ratingHalf: IconValue\n loading: IconValue\n first: IconValue\n last: IconValue\n unfold: IconValue\n file: IconValue\n plus: IconValue\n minus: IconValue\n calendar: IconValue\n}\n\nexport interface IconProps {\n tag: string\n icon?: IconValue\n disabled?: Boolean\n}\n\ntype IconComponent = JSXComponent<IconProps>\n\nexport interface IconSet {\n component: IconComponent\n}\n\nexport type InternalIconOptions = {\n defaultSet: string\n aliases: Partial<IconAliases>\n sets: Record<string, IconSet>\n}\n\nexport type IconOptions = Partial<InternalIconOptions>\n\ntype IconInstance = {\n component: IconComponent\n icon?: IconValue\n}\n\nexport const IconSymbol: InjectionKey<InternalIconOptions> = Symbol.for('vuetify:icons')\n\nexport const makeIconProps = propsFactory({\n icon: {\n type: IconValue,\n },\n // Could not remove this and use makeTagProps, types complained because it is not required\n tag: {\n type: String,\n required: true,\n },\n}, 'icon')\n\nexport const VComponentIcon = genericComponent()({\n name: 'VComponentIcon',\n\n props: makeIconProps(),\n\n setup (props, { slots }) {\n return () => {\n const Icon = props.icon as JSXComponent\n return (\n <props.tag>\n { props.icon ? <Icon /> : slots.default?.() }\n </props.tag>\n )\n }\n },\n})\nexport type VComponentIcon = InstanceType<typeof VComponentIcon>\n\nexport const VSvgIcon = defineComponent({\n name: 'VSvgIcon',\n\n inheritAttrs: false,\n\n props: makeIconProps(),\n\n setup (props, { attrs }) {\n return () => {\n return (\n <props.tag { ...attrs } style={ null }>\n <svg\n class=\"v-icon__svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-hidden=\"true\"\n >\n { Array.isArray(props.icon)\n ? props.icon.map(path => (\n Array.isArray(path)\n ? <path d={ path[0] as string } fill-opacity={ path[1] }></path>\n : <path d={ path as string }></path>\n ))\n : <path d={ props.icon as string }></path>\n }\n </svg>\n </props.tag>\n )\n }\n },\n})\nexport type VSvgIcon = InstanceType<typeof VSvgIcon>\n\nexport const VLigatureIcon = defineComponent({\n name: 'VLigatureIcon',\n\n props: makeIconProps(),\n\n setup (props) {\n return () => {\n return <props.tag>{ props.icon }</props.tag>\n }\n },\n})\nexport type VLigatureIcon = InstanceType<typeof VLigatureIcon>\n\nexport const VClassIcon = defineComponent({\n name: 'VClassIcon',\n\n props: makeIconProps(),\n\n setup (props) {\n return () => {\n return <props.tag class={ props.icon }></props.tag>\n }\n },\n})\nexport type VClassIcon = InstanceType<typeof VClassIcon>\n\nfunction genDefaults (): Record<string, IconSet> {\n return {\n svg: {\n component: VSvgIcon,\n },\n class: {\n component: VClassIcon,\n },\n }\n}\n\n// Composables\nexport function createIcons (options?: IconOptions) {\n const sets = genDefaults()\n const defaultSet = options?.defaultSet ?? 'mdi'\n\n if (defaultSet === 'mdi' && !sets.mdi) {\n sets.mdi = mdi\n }\n\n return mergeDeep({\n defaultSet,\n sets,\n aliases: {\n ...aliases,\n /* eslint-disable max-len */\n vuetify: [\n 'M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z',\n ['M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z', 0.6],\n ],\n 'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z',\n 'vuetify-play': [\n 'm6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z',\n ['M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z', 0.6],\n ],\n /* eslint-enable max-len */\n },\n }, options) as InternalIconOptions\n}\n\nexport const useIcon = (props: Ref<IconValue | undefined>) => {\n const icons = inject(IconSymbol)\n\n if (!icons) throw new Error('Missing Vuetify Icons provide!')\n\n const iconData = computed<IconInstance>(() => {\n const iconAlias = unref(props)\n\n if (!iconAlias) return { component: VComponentIcon }\n\n let icon: IconValue | undefined = iconAlias\n\n if (typeof icon === 'string') {\n icon = icon.trim()\n\n if (icon.startsWith('$')) {\n icon = icons.aliases?.[icon.slice(1)]\n }\n }\n\n if (!icon) consoleWarn(`Could not find aliased icon \"${iconAlias}\"`)\n\n if (Array.isArray(icon)) {\n return {\n component: VSvgIcon,\n icon,\n }\n } else if (typeof icon !== 'string') {\n return {\n component: VComponentIcon,\n icon,\n }\n }\n\n const iconSetName = Object.keys(icons.sets).find(\n setName => typeof icon === 'string' && icon.startsWith(`${setName}:`)\n )\n\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon\n const iconSet = icons.sets[iconSetName ?? icons.defaultSet]\n\n return {\n component: iconSet.component,\n icon: iconName,\n }\n })\n\n return { iconData }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"icons.mjs","names":["aliases","mdi","computed","inject","unref","consoleWarn","defineComponent","genericComponent","mergeDeep","propsFactory","IconValue","String","Function","Object","Array","IconSymbol","Symbol","for","makeIconProps","icon","type","tag","required","VComponentIcon","name","props","setup","_ref","slots","Icon","_createVNode","default","VSvgIcon","inheritAttrs","_ref2","attrs","_mergeProps","isArray","map","path","VLigatureIcon","VClassIcon","genDefaults","svg","component","class","createIcons","options","sets","defaultSet","vuetify","useIcon","icons","Error","iconData","iconAlias","trim","startsWith","slice","iconSetName","keys","find","setName","iconName","length","iconSet"],"sources":["../../src/composables/icons.tsx"],"sourcesContent":["// Icons\nimport { aliases, mdi } from '@/iconsets/mdi'\n\n// Utilities\nimport { computed, inject, unref } from 'vue'\nimport { consoleWarn, defineComponent, genericComponent, mergeDeep, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, JSXComponent, PropType, Ref } from 'vue'\n\nexport type IconValue =\n | string\n | (string | [path: string, opacity: number])[]\n | JSXComponent\nexport const IconValue = [String, Function, Object, Array] as PropType<IconValue>\n\nexport interface IconAliases {\n [name: string]: IconValue\n complete: IconValue\n cancel: IconValue\n close: IconValue\n delete: IconValue\n clear: IconValue\n success: IconValue\n info: IconValue\n warning: IconValue\n error: IconValue\n prev: IconValue\n next: IconValue\n checkboxOn: IconValue\n checkboxOff: IconValue\n checkboxIndeterminate: IconValue\n delimiter: IconValue\n sortAsc: IconValue\n sortDesc: IconValue\n expand: IconValue\n menu: IconValue\n subgroup: IconValue\n dropdown: IconValue\n radioOn: IconValue\n radioOff: IconValue\n edit: IconValue\n ratingEmpty: IconValue\n ratingFull: IconValue\n ratingHalf: IconValue\n loading: IconValue\n first: IconValue\n last: IconValue\n unfold: IconValue\n file: IconValue\n plus: IconValue\n minus: IconValue\n calendar: IconValue\n}\n\nexport interface IconProps {\n tag: string\n icon?: IconValue\n disabled?: Boolean\n}\n\ntype IconComponent = JSXComponent<IconProps>\n\nexport interface IconSet {\n component: IconComponent\n}\n\nexport type InternalIconOptions = {\n defaultSet: string\n aliases: Partial<IconAliases>\n sets: Record<string, IconSet>\n}\n\nexport type IconOptions = Partial<InternalIconOptions>\n\ntype IconInstance = {\n component: IconComponent\n icon?: IconValue\n}\n\nexport const IconSymbol: InjectionKey<InternalIconOptions> = Symbol.for('vuetify:icons')\n\nexport const makeIconProps = propsFactory({\n icon: {\n type: IconValue,\n },\n // Could not remove this and use makeTagProps, types complained because it is not required\n tag: {\n type: String,\n required: true,\n },\n}, 'icon')\n\nexport const VComponentIcon = genericComponent()({\n name: 'VComponentIcon',\n\n props: makeIconProps(),\n\n setup (props, { slots }) {\n return () => {\n const Icon = props.icon as JSXComponent\n return (\n <props.tag>\n { props.icon ? <Icon /> : slots.default?.() }\n </props.tag>\n )\n }\n },\n})\nexport type VComponentIcon = InstanceType<typeof VComponentIcon>\n\nexport const VSvgIcon = defineComponent({\n name: 'VSvgIcon',\n\n inheritAttrs: false,\n\n props: makeIconProps(),\n\n setup (props, { attrs }) {\n return () => {\n return (\n <props.tag { ...attrs } style={ null }>\n <svg\n class=\"v-icon__svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-hidden=\"true\"\n >\n { Array.isArray(props.icon)\n ? props.icon.map(path => (\n Array.isArray(path)\n ? <path d={ path[0] as string } fill-opacity={ path[1] }></path>\n : <path d={ path as string }></path>\n ))\n : <path d={ props.icon as string }></path>\n }\n </svg>\n </props.tag>\n )\n }\n },\n})\nexport type VSvgIcon = InstanceType<typeof VSvgIcon>\n\nexport const VLigatureIcon = defineComponent({\n name: 'VLigatureIcon',\n\n props: makeIconProps(),\n\n setup (props) {\n return () => {\n return <props.tag>{ props.icon }</props.tag>\n }\n },\n})\nexport type VLigatureIcon = InstanceType<typeof VLigatureIcon>\n\nexport const VClassIcon = defineComponent({\n name: 'VClassIcon',\n\n props: makeIconProps(),\n\n setup (props) {\n return () => {\n return <props.tag class={ props.icon }></props.tag>\n }\n },\n})\nexport type VClassIcon = InstanceType<typeof VClassIcon>\n\nfunction genDefaults (): Record<string, IconSet> {\n return {\n svg: {\n component: VSvgIcon,\n },\n class: {\n component: VClassIcon,\n },\n }\n}\n\n// Composables\nexport function createIcons (options?: IconOptions) {\n const sets = genDefaults()\n const defaultSet = options?.defaultSet ?? 'mdi'\n\n if (defaultSet === 'mdi' && !sets.mdi) {\n sets.mdi = mdi\n }\n\n return mergeDeep({\n defaultSet,\n sets,\n aliases: {\n ...aliases,\n /* eslint-disable max-len */\n vuetify: [\n 'M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z',\n ['M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z', 0.6],\n ],\n 'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z',\n 'vuetify-play': [\n 'm6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z',\n ['M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z', 0.6],\n ],\n /* eslint-enable max-len */\n },\n }, options) as InternalIconOptions\n}\n\nexport const useIcon = (props: Ref<IconValue | undefined>) => {\n const icons = inject(IconSymbol)\n\n if (!icons) throw new Error('Missing Vuetify Icons provide!')\n\n const iconData = computed<IconInstance>(() => {\n const iconAlias = unref(props)\n\n if (!iconAlias) return { component: VComponentIcon }\n\n let icon: IconValue | undefined = iconAlias\n\n if (typeof icon === 'string') {\n icon = icon.trim()\n\n if (icon.startsWith('$')) {\n icon = icons.aliases?.[icon.slice(1)]\n }\n }\n\n if (!icon) consoleWarn(`Could not find aliased icon \"${iconAlias}\"`)\n\n if (Array.isArray(icon)) {\n return {\n component: VSvgIcon,\n icon,\n }\n } else if (typeof icon !== 'string') {\n return {\n component: VComponentIcon,\n icon,\n }\n }\n\n const iconSetName = Object.keys(icons.sets).find(\n setName => typeof icon === 'string' && icon.startsWith(`${setName}:`)\n )\n\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon\n const iconSet = icons.sets[iconSetName ?? icons.defaultSet]\n\n return {\n component: iconSet.component,\n icon: iconName,\n }\n })\n\n return { iconData }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"layout.mjs","names":["useResizeObserver","computed","inject","nextTick","onActivated","onBeforeUnmount","onDeactivated","provide","reactive","ref","shallowRef","convertToUnit","eagerComputed","findChildrenWithProvide","getCurrentInstance","getUid","propsFactory","VuetifyLayoutKey","Symbol","for","VuetifyLayoutItemKey","ROOT_ZINDEX","makeLayoutProps","overlaps","type","Array","default","fullHeight","Boolean","makeLayoutItemProps","name","String","order","Number","absolute","useLayout","layout","Error","layoutIsReady","getLayoutItem","mainRect","mainStyles","useLayoutItem","options","id","vm","isKeptAlive","value","layoutItemStyles","layoutItemScrimStyles","register","active","unregister","layoutRect","generateLayers","positions","layoutSizes","activeItems","previousLayer","top","left","right","bottom","layers","layer","position","get","amount","parseInt","push","createLayout","props","parentLayout","rootZIndex","registered","Map","priorities","disabledTransitions","resizeRef","contentRect","uniquePriorities","Set","values","map","p","sort","a","b","items","filter","transitionsEnabled","from","some","length","undefined","transition","slice","_ref","index","size","find","item","rootVm","_ref2","layoutSize","elementSize","disableTransitions","set","instances","vnode","instanceIndex","indexOf","splice","findIndex","i","zIndex","isHorizontal","isOppositeHorizontal","isOppositeVertical","unit","styles","transform","height","width","delete","v","layoutClasses","layoutStyles","overflow","layoutRef"],"sources":["../../src/composables/layout.ts"],"sourcesContent":["// Composables\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport {\n computed,\n inject,\n nextTick,\n onActivated,\n onBeforeUnmount,\n onDeactivated,\n provide,\n reactive,\n ref,\n shallowRef,\n} from 'vue'\nimport { convertToUnit, eagerComputed, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, CSSProperties, InjectionKey, Prop, Ref } from 'vue'\n\nexport type Position = 'top' | 'left' | 'right' | 'bottom'\n\ninterface Layer {\n top: number\n bottom: number\n left: number\n right: number\n}\n\ninterface LayoutItem extends Layer {\n id: string\n size: number\n position: Position\n}\n\ninterface LayoutProvide {\n register: (\n vm: ComponentInternalInstance,\n options: {\n id: string\n order: Ref<number>\n position: Ref<Position>\n layoutSize: Ref<number | string>\n elementSize: Ref<number | string | undefined>\n active: Ref<boolean>\n disableTransitions?: Ref<boolean>\n absolute: Ref<boolean | undefined>\n }\n ) => {\n layoutItemStyles: Ref<CSSProperties>\n layoutItemScrimStyles: Ref<CSSProperties>\n zIndex: Ref<number>\n }\n unregister: (id: string) => void\n mainRect: Ref<Layer>\n mainStyles: Ref<CSSProperties>\n getLayoutItem: (id: string) => LayoutItem | undefined\n items: Ref<LayoutItem[]>\n layoutRect: Ref<DOMRectReadOnly | undefined>\n rootZIndex: Ref<number>\n layoutIsReady: Promise<void>\n}\n\nexport const VuetifyLayoutKey: InjectionKey<LayoutProvide> = Symbol.for('vuetify:layout')\nexport const VuetifyLayoutItemKey: InjectionKey<{ id: string }> = Symbol.for('vuetify:layout-item')\n\nconst ROOT_ZINDEX = 1000\n\nexport const makeLayoutProps = propsFactory({\n overlaps: {\n type: Array,\n default: () => ([]),\n } as Prop<string[]>,\n fullHeight: Boolean,\n}, 'layout')\n\n// Composables\nexport const makeLayoutItemProps = propsFactory({\n name: {\n type: String,\n },\n order: {\n type: [Number, String],\n default: 0,\n },\n absolute: Boolean,\n}, 'layout-item')\n\nexport function useLayout () {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('[Vuetify] Could not find injected layout')\n\n const layoutIsReady = nextTick()\n\n return {\n layoutIsReady,\n getLayoutItem: layout.getLayoutItem,\n mainRect: layout.mainRect,\n mainStyles: layout.mainStyles,\n }\n}\n\nexport function useLayoutItem (options: {\n id: string | undefined\n order: Ref<number>\n position: Ref<Position>\n layoutSize: Ref<number | string>\n elementSize: Ref<number | string | undefined>\n active: Ref<boolean>\n disableTransitions?: Ref<boolean>\n absolute: Ref<boolean | undefined>\n}) {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('[Vuetify] Could not find injected layout')\n\n const id = options.id ?? `layout-item-${getUid()}`\n\n const vm = getCurrentInstance('useLayoutItem')\n\n provide(VuetifyLayoutItemKey, { id })\n\n const isKeptAlive = shallowRef(false)\n onDeactivated(() => isKeptAlive.value = true)\n onActivated(() => isKeptAlive.value = false)\n\n const layoutIsReady = nextTick()\n\n const {\n layoutItemStyles,\n layoutItemScrimStyles,\n } = layout.register(vm, {\n ...options,\n active: computed(() => isKeptAlive.value ? false : options.active.value),\n id,\n })\n\n onBeforeUnmount(() => layout.unregister(id))\n\n return { layoutItemStyles, layoutRect: layout.layoutRect, layoutItemScrimStyles, layoutIsReady }\n}\n\nconst generateLayers = (\n layout: string[],\n positions: Map<string, Ref<Position>>,\n layoutSizes: Map<string, Ref<number | string>>,\n activeItems: Map<string, Ref<boolean>>,\n): { id: string, layer: Layer }[] => {\n let previousLayer: Layer = { top: 0, left: 0, right: 0, bottom: 0 }\n const layers = [{ id: '', layer: { ...previousLayer } }]\n for (const id of layout) {\n const position = positions.get(id)\n const amount = layoutSizes.get(id)\n const active = activeItems.get(id)\n if (!position || !amount || !active) continue\n\n const layer = {\n ...previousLayer,\n [position.value]: parseInt(previousLayer[position.value], 10) + (active.value ? parseInt(amount.value, 10) : 0),\n }\n\n layers.push({\n id,\n layer,\n })\n\n previousLayer = layer\n }\n\n return layers\n}\n\nexport function createLayout (props: { overlaps?: string[], fullHeight?: boolean }) {\n const parentLayout = inject(VuetifyLayoutKey, null)\n const rootZIndex = computed(() => parentLayout ? parentLayout.rootZIndex.value - 100 : ROOT_ZINDEX)\n const registered = ref<string[]>([])\n const positions = reactive(new Map<string, Ref<Position>>())\n const layoutSizes = reactive(new Map<string, Ref<number | string>>())\n const priorities = reactive(new Map<string, Ref<number>>())\n const activeItems = reactive(new Map<string, Ref<boolean>>())\n const disabledTransitions = reactive(new Map<string, Ref<boolean>>())\n const { resizeRef, contentRect: layoutRect } = useResizeObserver()\n\n const layers = eagerComputed(() => {\n const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b)\n const layout = []\n for (const p of uniquePriorities) {\n const items = registered.value.filter(id => priorities.get(id)?.value === p)\n layout.push(...items)\n }\n return generateLayers(layout, positions, layoutSizes, activeItems)\n })\n\n const transitionsEnabled = computed(() => {\n return !Array.from(disabledTransitions.values()).some(ref => ref.value)\n })\n\n const mainRect = computed(() => {\n return layers.value[layers.value.length - 1].layer\n })\n\n const mainStyles = computed<CSSProperties>(() => {\n return {\n '--v-layout-left': convertToUnit(mainRect.value.left),\n '--v-layout-right': convertToUnit(mainRect.value.right),\n '--v-layout-top': convertToUnit(mainRect.value.top),\n '--v-layout-bottom': convertToUnit(mainRect.value.bottom),\n ...(transitionsEnabled.value ? undefined : { transition: 'none' }),\n }\n })\n\n const items = eagerComputed(() => {\n return layers.value.slice(1).map(({ id }, index) => {\n const { layer } = layers.value[index]\n const size = layoutSizes.get(id)\n const position = positions.get(id)\n\n return {\n id,\n ...layer,\n size: Number(size!.value),\n position: position!.value,\n }\n })\n })\n\n const getLayoutItem = (id: string) => {\n return items.value.find(item => item.id === id)\n }\n\n const rootVm = getCurrentInstance('createLayout')\n\n const layoutIsReady = nextTick()\n\n provide(VuetifyLayoutKey, {\n register: (\n vm: ComponentInternalInstance,\n {\n id,\n order,\n position,\n layoutSize,\n elementSize,\n active,\n disableTransitions,\n absolute,\n }\n ) => {\n priorities.set(id, order)\n positions.set(id, position)\n layoutSizes.set(id, layoutSize)\n activeItems.set(id, active)\n disableTransitions && disabledTransitions.set(id, disableTransitions)\n\n const instances = findChildrenWithProvide(VuetifyLayoutItemKey, rootVm?.vnode)\n const instanceIndex = instances.indexOf(vm)\n\n if (instanceIndex > -1) registered.value.splice(instanceIndex, 0, id)\n else registered.value.push(id)\n\n const index = computed(() => items.value.findIndex(i => i.id === id))\n const zIndex = computed(() => rootZIndex.value + (layers.value.length * 2) - (index.value * 2))\n\n const layoutItemStyles = computed<CSSProperties>(() => {\n const isHorizontal = position.value === 'left' || position.value === 'right'\n const isOppositeHorizontal = position.value === 'right'\n const isOppositeVertical = position.value === 'bottom'\n const size = elementSize.value ?? layoutSize.value\n const unit = size === 0 ? '%' : 'px'\n\n const styles = {\n [position.value]: 0,\n zIndex: zIndex.value,\n transform: `translate${isHorizontal ? 'X' : 'Y'}(${(active.value ? 0 : -(size === 0 ? 100 : size)) * (isOppositeHorizontal || isOppositeVertical ? -1 : 1)}${unit})`,\n position: absolute.value || rootZIndex.value !== ROOT_ZINDEX ? 'absolute' : 'fixed',\n ...(transitionsEnabled.value ? undefined : { transition: 'none' }),\n } as const\n\n if (index.value < 0) throw new Error(`Layout item \"${id}\" is missing`)\n\n const item = items.value[index.value]\n\n if (!item) throw new Error(`[Vuetify] Could not find layout item \"${id}\"`)\n\n return {\n ...styles,\n height:\n isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)`\n : elementSize.value ? `${elementSize.value}px`\n : undefined,\n left: isOppositeHorizontal ? undefined : `${item.left}px`,\n right: isOppositeHorizontal ? `${item.right}px` : undefined,\n top: position.value !== 'bottom' ? `${item.top}px` : undefined,\n bottom: position.value !== 'top' ? `${item.bottom}px` : undefined,\n width:\n !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)`\n : elementSize.value ? `${elementSize.value}px`\n : undefined,\n }\n })\n\n const layoutItemScrimStyles = computed<CSSProperties>(() => ({\n zIndex: zIndex.value - 1,\n }))\n\n return { layoutItemStyles, layoutItemScrimStyles, zIndex }\n },\n unregister: (id: string) => {\n priorities.delete(id)\n positions.delete(id)\n layoutSizes.delete(id)\n activeItems.delete(id)\n disabledTransitions.delete(id)\n registered.value = registered.value.filter(v => v !== id)\n },\n mainRect,\n mainStyles,\n getLayoutItem,\n items,\n layoutRect,\n rootZIndex,\n layoutIsReady,\n })\n\n const layoutClasses = computed(() => [\n 'v-layout',\n { 'v-layout--full-height': props.fullHeight },\n ])\n\n const layoutStyles = computed(() => ({\n zIndex: parentLayout ? rootZIndex.value : undefined,\n position: parentLayout ? 'relative' as const : undefined,\n overflow: parentLayout ? 'hidden' : undefined,\n }))\n\n return {\n layoutClasses,\n layoutStyles,\n getLayoutItem,\n items,\n layoutRect,\n layoutIsReady,\n layoutRef: resizeRef,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"layout.mjs","names":["useResizeObserver","computed","inject","nextTick","onActivated","onBeforeUnmount","onDeactivated","provide","reactive","ref","shallowRef","convertToUnit","eagerComputed","findChildrenWithProvide","getCurrentInstance","getUid","propsFactory","VuetifyLayoutKey","Symbol","for","VuetifyLayoutItemKey","ROOT_ZINDEX","makeLayoutProps","overlaps","type","Array","default","fullHeight","Boolean","makeLayoutItemProps","name","String","order","Number","absolute","useLayout","layout","Error","layoutIsReady","getLayoutItem","mainRect","mainStyles","useLayoutItem","options","id","vm","isKeptAlive","value","layoutItemStyles","layoutItemScrimStyles","register","active","unregister","layoutRect","generateLayers","positions","layoutSizes","activeItems","previousLayer","top","left","right","bottom","layers","layer","position","get","amount","parseInt","push","createLayout","props","parentLayout","rootZIndex","registered","Map","priorities","disabledTransitions","resizeRef","contentRect","uniquePriorities","Set","values","map","p","sort","a","b","items","filter","transitionsEnabled","from","some","length","undefined","transition","slice","_ref","index","size","find","item","rootVm","_ref2","layoutSize","elementSize","disableTransitions","set","instances","vnode","instanceIndex","indexOf","splice","findIndex","i","zIndex","isHorizontal","isOppositeHorizontal","isOppositeVertical","unit","styles","transform","height","width","delete","v","layoutClasses","layoutStyles","overflow","layoutRef"],"sources":["../../src/composables/layout.ts"],"sourcesContent":["// Composables\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport {\n computed,\n inject,\n nextTick,\n onActivated,\n onBeforeUnmount,\n onDeactivated,\n provide,\n reactive,\n ref,\n shallowRef,\n} from 'vue'\nimport { convertToUnit, eagerComputed, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, CSSProperties, InjectionKey, Prop, Ref } from 'vue'\n\nexport type Position = 'top' | 'left' | 'right' | 'bottom'\n\ninterface Layer {\n top: number\n bottom: number\n left: number\n right: number\n}\n\ninterface LayoutItem extends Layer {\n id: string\n size: number\n position: Position\n}\n\ninterface LayoutProvide {\n register: (\n vm: ComponentInternalInstance,\n options: {\n id: string\n order: Ref<number>\n position: Ref<Position>\n layoutSize: Ref<number | string>\n elementSize: Ref<number | string | undefined>\n active: Ref<boolean>\n disableTransitions?: Ref<boolean>\n absolute: Ref<boolean | undefined>\n }\n ) => {\n layoutItemStyles: Ref<CSSProperties>\n layoutItemScrimStyles: Ref<CSSProperties>\n zIndex: Ref<number>\n }\n unregister: (id: string) => void\n mainRect: Ref<Layer>\n mainStyles: Ref<CSSProperties>\n getLayoutItem: (id: string) => LayoutItem | undefined\n items: Ref<LayoutItem[]>\n layoutRect: Ref<DOMRectReadOnly | undefined>\n rootZIndex: Ref<number>\n layoutIsReady: Promise<void>\n}\n\nexport const VuetifyLayoutKey: InjectionKey<LayoutProvide> = Symbol.for('vuetify:layout')\nexport const VuetifyLayoutItemKey: InjectionKey<{ id: string }> = Symbol.for('vuetify:layout-item')\n\nconst ROOT_ZINDEX = 1000\n\nexport const makeLayoutProps = propsFactory({\n overlaps: {\n type: Array,\n default: () => ([]),\n } as Prop<string[]>,\n fullHeight: Boolean,\n}, 'layout')\n\n// Composables\nexport const makeLayoutItemProps = propsFactory({\n name: {\n type: String,\n },\n order: {\n type: [Number, String],\n default: 0,\n },\n absolute: Boolean,\n}, 'layout-item')\n\nexport function useLayout () {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('[Vuetify] Could not find injected layout')\n\n const layoutIsReady = nextTick()\n\n return {\n layoutIsReady,\n getLayoutItem: layout.getLayoutItem,\n mainRect: layout.mainRect,\n mainStyles: layout.mainStyles,\n }\n}\n\nexport function useLayoutItem (options: {\n id: string | undefined\n order: Ref<number>\n position: Ref<Position>\n layoutSize: Ref<number | string>\n elementSize: Ref<number | string | undefined>\n active: Ref<boolean>\n disableTransitions?: Ref<boolean>\n absolute: Ref<boolean | undefined>\n}) {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('[Vuetify] Could not find injected layout')\n\n const id = options.id ?? `layout-item-${getUid()}`\n\n const vm = getCurrentInstance('useLayoutItem')\n\n provide(VuetifyLayoutItemKey, { id })\n\n const isKeptAlive = shallowRef(false)\n onDeactivated(() => isKeptAlive.value = true)\n onActivated(() => isKeptAlive.value = false)\n\n const layoutIsReady = nextTick()\n\n const {\n layoutItemStyles,\n layoutItemScrimStyles,\n } = layout.register(vm, {\n ...options,\n active: computed(() => isKeptAlive.value ? false : options.active.value),\n id,\n })\n\n onBeforeUnmount(() => layout.unregister(id))\n\n return { layoutItemStyles, layoutRect: layout.layoutRect, layoutItemScrimStyles, layoutIsReady }\n}\n\nconst generateLayers = (\n layout: string[],\n positions: Map<string, Ref<Position>>,\n layoutSizes: Map<string, Ref<number | string>>,\n activeItems: Map<string, Ref<boolean>>,\n): { id: string, layer: Layer }[] => {\n let previousLayer: Layer = { top: 0, left: 0, right: 0, bottom: 0 }\n const layers = [{ id: '', layer: { ...previousLayer } }]\n for (const id of layout) {\n const position = positions.get(id)\n const amount = layoutSizes.get(id)\n const active = activeItems.get(id)\n if (!position || !amount || !active) continue\n\n const layer = {\n ...previousLayer,\n [position.value]: parseInt(previousLayer[position.value], 10) + (active.value ? parseInt(amount.value, 10) : 0),\n }\n\n layers.push({\n id,\n layer,\n })\n\n previousLayer = layer\n }\n\n return layers\n}\n\nexport function createLayout (props: { overlaps?: string[], fullHeight?: boolean }) {\n const parentLayout = inject(VuetifyLayoutKey, null)\n const rootZIndex = computed(() => parentLayout ? parentLayout.rootZIndex.value - 100 : ROOT_ZINDEX)\n const registered = ref<string[]>([])\n const positions = reactive(new Map<string, Ref<Position>>())\n const layoutSizes = reactive(new Map<string, Ref<number | string>>())\n const priorities = reactive(new Map<string, Ref<number>>())\n const activeItems = reactive(new Map<string, Ref<boolean>>())\n const disabledTransitions = reactive(new Map<string, Ref<boolean>>())\n const { resizeRef, contentRect: layoutRect } = useResizeObserver()\n\n const layers = eagerComputed(() => {\n const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b)\n const layout = []\n for (const p of uniquePriorities) {\n const items = registered.value.filter(id => priorities.get(id)?.value === p)\n layout.push(...items)\n }\n return generateLayers(layout, positions, layoutSizes, activeItems)\n })\n\n const transitionsEnabled = computed(() => {\n return !Array.from(disabledTransitions.values()).some(ref => ref.value)\n })\n\n const mainRect = computed(() => {\n return layers.value[layers.value.length - 1].layer\n })\n\n const mainStyles = computed<CSSProperties>(() => {\n return {\n '--v-layout-left': convertToUnit(mainRect.value.left),\n '--v-layout-right': convertToUnit(mainRect.value.right),\n '--v-layout-top': convertToUnit(mainRect.value.top),\n '--v-layout-bottom': convertToUnit(mainRect.value.bottom),\n ...(transitionsEnabled.value ? undefined : { transition: 'none' }),\n }\n })\n\n const items = eagerComputed(() => {\n return layers.value.slice(1).map(({ id }, index) => {\n const { layer } = layers.value[index]\n const size = layoutSizes.get(id)\n const position = positions.get(id)\n\n return {\n id,\n ...layer,\n size: Number(size!.value),\n position: position!.value,\n }\n })\n })\n\n const getLayoutItem = (id: string) => {\n return items.value.find(item => item.id === id)\n }\n\n const rootVm = getCurrentInstance('createLayout')\n\n const layoutIsReady = nextTick()\n\n provide(VuetifyLayoutKey, {\n register: (\n vm: ComponentInternalInstance,\n {\n id,\n order,\n position,\n layoutSize,\n elementSize,\n active,\n disableTransitions,\n absolute,\n }\n ) => {\n priorities.set(id, order)\n positions.set(id, position)\n layoutSizes.set(id, layoutSize)\n activeItems.set(id, active)\n disableTransitions && disabledTransitions.set(id, disableTransitions)\n\n const instances = findChildrenWithProvide(VuetifyLayoutItemKey, rootVm?.vnode)\n const instanceIndex = instances.indexOf(vm)\n\n if (instanceIndex > -1) registered.value.splice(instanceIndex, 0, id)\n else registered.value.push(id)\n\n const index = computed(() => items.value.findIndex(i => i.id === id))\n const zIndex = computed(() => rootZIndex.value + (layers.value.length * 2) - (index.value * 2))\n\n const layoutItemStyles = computed<CSSProperties>(() => {\n const isHorizontal = position.value === 'left' || position.value === 'right'\n const isOppositeHorizontal = position.value === 'right'\n const isOppositeVertical = position.value === 'bottom'\n const size = elementSize.value ?? layoutSize.value\n const unit = size === 0 ? '%' : 'px'\n\n const styles = {\n [position.value]: 0,\n zIndex: zIndex.value,\n transform: `translate${isHorizontal ? 'X' : 'Y'}(${(active.value ? 0 : -(size === 0 ? 100 : size)) * (isOppositeHorizontal || isOppositeVertical ? -1 : 1)}${unit})`,\n position: absolute.value || rootZIndex.value !== ROOT_ZINDEX ? 'absolute' : 'fixed',\n ...(transitionsEnabled.value ? undefined : { transition: 'none' }),\n } as const\n\n if (index.value < 0) throw new Error(`Layout item \"${id}\" is missing`)\n\n const item = items.value[index.value]\n\n if (!item) throw new Error(`[Vuetify] Could not find layout item \"${id}\"`)\n\n return {\n ...styles,\n height:\n isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)`\n : elementSize.value ? `${elementSize.value}px`\n : undefined,\n left: isOppositeHorizontal ? undefined : `${item.left}px`,\n right: isOppositeHorizontal ? `${item.right}px` : undefined,\n top: position.value !== 'bottom' ? `${item.top}px` : undefined,\n bottom: position.value !== 'top' ? `${item.bottom}px` : undefined,\n width:\n !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)`\n : elementSize.value ? `${elementSize.value}px`\n : undefined,\n }\n })\n\n const layoutItemScrimStyles = computed<CSSProperties>(() => ({\n zIndex: zIndex.value - 1,\n }))\n\n return { layoutItemStyles, layoutItemScrimStyles, zIndex }\n },\n unregister: (id: string) => {\n priorities.delete(id)\n positions.delete(id)\n layoutSizes.delete(id)\n activeItems.delete(id)\n disabledTransitions.delete(id)\n registered.value = registered.value.filter(v => v !== id)\n },\n mainRect,\n mainStyles,\n getLayoutItem,\n items,\n layoutRect,\n rootZIndex,\n layoutIsReady,\n })\n\n const layoutClasses = computed(() => [\n 'v-layout',\n { 'v-layout--full-height': props.fullHeight },\n ])\n\n const layoutStyles = computed(() => ({\n zIndex: parentLayout ? rootZIndex.value : undefined,\n position: parentLayout ? 'relative' as const : undefined,\n overflow: parentLayout ? 'hidden' : undefined,\n }))\n\n return {\n layoutClasses,\n layoutStyles,\n getLayoutItem,\n items,\n layoutRect,\n layoutIsReady,\n layoutRef: resizeRef,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"loader.mjs","names":["VProgressLinear","computed","getCurrentInstanceName","propsFactory","makeLoaderProps","loading","Boolean","String","useLoader","props","name","arguments","length","undefined","loaderClasses","LoaderSlot","_ref","slots","_createVNode","default","color","isActive","active","absolute"],"sources":["../../src/composables/loader.tsx"],"sourcesContent":["// Components\nimport { VProgressLinear } from '@/components/VProgressLinear'\n\n// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, SetupContext } from 'vue'\nimport type { SlotsToProps } from '@/util'\n\nexport interface LoaderSlotProps {\n color: string | undefined\n isActive: boolean\n}\n\nexport interface LoaderProps {\n loading?: boolean | string\n}\n\n// Composables\nexport const makeLoaderProps = propsFactory({\n loading: [Boolean, String],\n}, 'loader')\n\nexport function useLoader (\n props: LoaderProps,\n name = getCurrentInstanceName(),\n) {\n const loaderClasses = computed(() => ({\n [`${name}--loading`]: props.loading,\n }))\n\n return { loaderClasses }\n}\n\nexport function LoaderSlot (\n props: {\n absolute?: boolean\n active: boolean\n name: string\n color?: string\n } & ExtractPropTypes<SlotsToProps<{\n default: LoaderSlotProps\n }>>,\n { slots }: SetupContext,\n) {\n return (\n <div class={ `${props.name}__loader` }>\n { slots.default?.({\n color: props.color,\n isActive: props.active,\n } as LoaderSlotProps) || (\n <VProgressLinear\n absolute={ props.absolute }\n active={ props.active }\n color={ props.color }\n height=\"2\"\n indeterminate\n />\n )}\n </div>\n )\n}\n"],"mappings":";AAAA;AAAA,SACSA,eAAe,mDAExB;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,sBAAsB,EAAEC,YAAY,6BAE7C;AAaA;AACA,OAAO,MAAMC,eAAe,GAAGD,YAAY,CAAC;EAC1CE,OAAO,EAAE,CAACC,OAAO,EAAEC,MAAM;AAC3B,CAAC,EAAE,QAAQ,CAAC;AAEZ,OAAO,SAASC,SAASA,CACvBC,KAAkB,EAElB;EAAA,IADAC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGT,sBAAsB,CAAC,CAAC;EAE/B,MAAMY,aAAa,GAAGb,QAAQ,CAAC,OAAO;IACpC,CAAE,GAAES,IAAK,WAAU,GAAGD,KAAK,CAACJ;EAC9B,CAAC,CAAC,CAAC;EAEH,OAAO;IAAES;EAAc,CAAC;AAC1B;AAEA,OAAO,SAASC,UAAUA,CACxBN,KAOG,EAAAO,IAAA,EAEH;EAAA,IADA;IAAEC;EAAoB,CAAC,GAAAD,IAAA;EAEvB,OAAAE,YAAA;IAAA,SACgB,GAAET,KAAK,CAACC,IAAK;EAAS,IAChCO,KAAK,CAACE,OAAO,GAAG;IAChBC,KAAK,EAAEX,KAAK,CAACW,KAAK;IAClBC,QAAQ,EAAEZ,KAAK,CAACa;EAClB,CAAoB,CAAC,IAAAJ,YAAA,CAAAlB,eAAA;IAAA,YAENS,KAAK,CAACc,QAAQ;IAAA,UAChBd,KAAK,CAACa,MAAM;IAAA,SACbb,KAAK,CAACW,KAAK;IAAA;IAAA;EAAA,QAItB;AAGP","ignoreList":[]}
1
+ {"version":3,"file":"loader.mjs","names":["VProgressLinear","computed","getCurrentInstanceName","propsFactory","makeLoaderProps","loading","Boolean","String","useLoader","props","name","arguments","length","undefined","loaderClasses","LoaderSlot","_ref","slots","_createVNode","default","color","isActive","active","absolute"],"sources":["../../src/composables/loader.tsx"],"sourcesContent":["// Components\nimport { VProgressLinear } from '@/components/VProgressLinear'\n\n// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, SetupContext } from 'vue'\nimport type { SlotsToProps } from '@/util'\n\nexport interface LoaderSlotProps {\n color: string | undefined\n isActive: boolean\n}\n\nexport interface LoaderProps {\n loading?: boolean | string\n}\n\n// Composables\nexport const makeLoaderProps = propsFactory({\n loading: [Boolean, String],\n}, 'loader')\n\nexport function useLoader (\n props: LoaderProps,\n name = getCurrentInstanceName(),\n) {\n const loaderClasses = computed(() => ({\n [`${name}--loading`]: props.loading,\n }))\n\n return { loaderClasses }\n}\n\nexport function LoaderSlot (\n props: {\n absolute?: boolean\n active: boolean\n name: string\n color?: string\n } & ExtractPropTypes<SlotsToProps<{\n default: LoaderSlotProps\n }>>,\n { slots }: SetupContext,\n) {\n return (\n <div class={ `${props.name}__loader` }>\n { slots.default?.({\n color: props.color,\n isActive: props.active,\n } as LoaderSlotProps) || (\n <VProgressLinear\n absolute={ props.absolute }\n active={ props.active }\n color={ props.color }\n height=\"2\"\n indeterminate\n />\n )}\n </div>\n )\n}\n"],"mappings":";AAAA;AAAA,SACSA,eAAe,mDAExB;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,sBAAsB,EAAEC,YAAY,6BAE7C;AAaA;AACA,OAAO,MAAMC,eAAe,GAAGD,YAAY,CAAC;EAC1CE,OAAO,EAAE,CAACC,OAAO,EAAEC,MAAM;AAC3B,CAAC,EAAE,QAAQ,CAAC;AAEZ,OAAO,SAASC,SAASA,CACvBC,KAAkB,EAElB;EAAA,IADAC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGT,sBAAsB,CAAC,CAAC;EAE/B,MAAMY,aAAa,GAAGb,QAAQ,CAAC,OAAO;IACpC,CAAC,GAAGS,IAAI,WAAW,GAAGD,KAAK,CAACJ;EAC9B,CAAC,CAAC,CAAC;EAEH,OAAO;IAAES;EAAc,CAAC;AAC1B;AAEA,OAAO,SAASC,UAAUA,CACxBN,KAOG,EAAAO,IAAA,EAEH;EAAA,IADA;IAAEC;EAAoB,CAAC,GAAAD,IAAA;EAEvB,OAAAE,YAAA;IAAA,SACe,GAAGT,KAAK,CAACC,IAAI;EAAU,IAChCO,KAAK,CAACE,OAAO,GAAG;IAChBC,KAAK,EAAEX,KAAK,CAACW,KAAK;IAClBC,QAAQ,EAAEZ,KAAK,CAACa;EAClB,CAAoB,CAAC,IAAAJ,YAAA,CAAAlB,eAAA;IAAA,YAENS,KAAK,CAACc,QAAQ;IAAA,UAChBd,KAAK,CAACa,MAAM;IAAA,SACbb,KAAK,CAACW,KAAK;IAAA;IAAA;EAAA,QAItB;AAGP","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"locale.mjs","names":["computed","inject","provide","ref","createVuetifyAdapter","LocaleSymbol","Symbol","for","isLocaleInstance","obj","name","createLocale","options","i18n","adapter","rtl","createRtl","useLocale","locale","Error","provideLocale","props","provideRtl","data","RtlSymbol","genDefaults","af","ar","bg","ca","ckb","cs","de","el","en","es","et","fa","fi","fr","hr","hu","he","id","it","ja","km","ko","lv","lt","nl","no","pl","pt","ro","ru","sk","sl","srCyrl","srLatn","sv","th","tr","az","uk","vi","zhHans","zhHant","isRtl","value","current","rtlClasses","useRtl"],"sources":["../../src/composables/locale.ts"],"sourcesContent":["// Utilities\nimport { computed, inject, provide, ref } from 'vue'\nimport { createVuetifyAdapter } from '@/locale/adapters/vuetify'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\nexport interface LocaleMessages {\n [key: string]: LocaleMessages | string\n}\n\nexport interface LocaleOptions {\n messages?: LocaleMessages\n locale?: string\n fallback?: string\n adapter?: LocaleInstance\n}\n\nexport interface LocaleInstance {\n name: string\n messages: Ref<LocaleMessages>\n current: Ref<string>\n fallback: Ref<string>\n t: (key: string, ...params: unknown[]) => string\n n: (value: number) => string\n provide: (props: LocaleOptions) => LocaleInstance\n}\n\nexport const LocaleSymbol: InjectionKey<LocaleInstance & RtlInstance> = Symbol.for('vuetify:locale')\n\nfunction isLocaleInstance (obj: any): obj is LocaleInstance {\n return obj.name != null\n}\n\nexport function createLocale (options?: LocaleOptions & RtlOptions) {\n const i18n = options?.adapter && isLocaleInstance(options?.adapter) ? options?.adapter : createVuetifyAdapter(options)\n const rtl = createRtl(i18n, options)\n\n return { ...i18n, ...rtl }\n}\n\nexport function useLocale () {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance')\n\n return locale\n}\n\nexport function provideLocale (props: LocaleOptions & RtlProps) {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance')\n\n const i18n = locale.provide(props)\n const rtl = provideRtl(i18n, locale.rtl, props)\n\n const data = { ...i18n, ...rtl }\n\n provide(LocaleSymbol, data)\n\n return data\n}\n\n// RTL\n\nexport interface RtlOptions {\n rtl?: Record<string, boolean>\n}\n\nexport interface RtlProps {\n rtl?: boolean\n}\n\nexport interface RtlInstance {\n isRtl: Ref<boolean>\n rtl: Ref<Record<string, boolean>>\n rtlClasses: Ref<string>\n}\n\nexport const RtlSymbol: InjectionKey<RtlInstance> = Symbol.for('vuetify:rtl')\n\nfunction genDefaults () {\n return {\n af: false,\n ar: true,\n bg: false,\n ca: false,\n ckb: false,\n cs: false,\n de: false,\n el: false,\n en: false,\n es: false,\n et: false,\n fa: true,\n fi: false,\n fr: false,\n hr: false,\n hu: false,\n he: true,\n id: false,\n it: false,\n ja: false,\n km: false,\n ko: false,\n lv: false,\n lt: false,\n nl: false,\n no: false,\n pl: false,\n pt: false,\n ro: false,\n ru: false,\n sk: false,\n sl: false,\n srCyrl: false,\n srLatn: false,\n sv: false,\n th: false,\n tr: false,\n az: false,\n uk: false,\n vi: false,\n zhHans: false,\n zhHant: false,\n }\n}\n\nexport function createRtl (i18n: LocaleInstance, options?: RtlOptions): RtlInstance {\n const rtl = ref<Record<string, boolean>>(options?.rtl ?? genDefaults())\n const isRtl = computed(() => rtl.value[i18n.current.value] ?? false)\n\n return {\n isRtl,\n rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`),\n }\n}\n\nexport function provideRtl (locale: LocaleInstance, rtl: RtlInstance['rtl'], props: RtlProps): RtlInstance {\n const isRtl = computed(() => props.rtl ?? rtl.value[locale.current.value] ?? false)\n\n return {\n isRtl,\n rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`),\n }\n}\n\nexport function useRtl () {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected rtl instance')\n\n return { isRtl: locale.isRtl, rtlClasses: locale.rtlClasses }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"locale.mjs","names":["computed","inject","provide","ref","createVuetifyAdapter","LocaleSymbol","Symbol","for","isLocaleInstance","obj","name","createLocale","options","i18n","adapter","rtl","createRtl","useLocale","locale","Error","provideLocale","props","provideRtl","data","RtlSymbol","genDefaults","af","ar","bg","ca","ckb","cs","de","el","en","es","et","fa","fi","fr","hr","hu","he","id","it","ja","km","ko","lv","lt","nl","no","pl","pt","ro","ru","sk","sl","srCyrl","srLatn","sv","th","tr","az","uk","vi","zhHans","zhHant","isRtl","value","current","rtlClasses","useRtl"],"sources":["../../src/composables/locale.ts"],"sourcesContent":["// Utilities\nimport { computed, inject, provide, ref } from 'vue'\nimport { createVuetifyAdapter } from '@/locale/adapters/vuetify'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\nexport interface LocaleMessages {\n [key: string]: LocaleMessages | string\n}\n\nexport interface LocaleOptions {\n messages?: LocaleMessages\n locale?: string\n fallback?: string\n adapter?: LocaleInstance\n}\n\nexport interface LocaleInstance {\n name: string\n messages: Ref<LocaleMessages>\n current: Ref<string>\n fallback: Ref<string>\n t: (key: string, ...params: unknown[]) => string\n n: (value: number) => string\n provide: (props: LocaleOptions) => LocaleInstance\n}\n\nexport const LocaleSymbol: InjectionKey<LocaleInstance & RtlInstance> = Symbol.for('vuetify:locale')\n\nfunction isLocaleInstance (obj: any): obj is LocaleInstance {\n return obj.name != null\n}\n\nexport function createLocale (options?: LocaleOptions & RtlOptions) {\n const i18n = options?.adapter && isLocaleInstance(options?.adapter) ? options?.adapter : createVuetifyAdapter(options)\n const rtl = createRtl(i18n, options)\n\n return { ...i18n, ...rtl }\n}\n\nexport function useLocale () {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance')\n\n return locale\n}\n\nexport function provideLocale (props: LocaleOptions & RtlProps) {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance')\n\n const i18n = locale.provide(props)\n const rtl = provideRtl(i18n, locale.rtl, props)\n\n const data = { ...i18n, ...rtl }\n\n provide(LocaleSymbol, data)\n\n return data\n}\n\n// RTL\n\nexport interface RtlOptions {\n rtl?: Record<string, boolean>\n}\n\nexport interface RtlProps {\n rtl?: boolean\n}\n\nexport interface RtlInstance {\n isRtl: Ref<boolean>\n rtl: Ref<Record<string, boolean>>\n rtlClasses: Ref<string>\n}\n\nexport const RtlSymbol: InjectionKey<RtlInstance> = Symbol.for('vuetify:rtl')\n\nfunction genDefaults () {\n return {\n af: false,\n ar: true,\n bg: false,\n ca: false,\n ckb: false,\n cs: false,\n de: false,\n el: false,\n en: false,\n es: false,\n et: false,\n fa: true,\n fi: false,\n fr: false,\n hr: false,\n hu: false,\n he: true,\n id: false,\n it: false,\n ja: false,\n km: false,\n ko: false,\n lv: false,\n lt: false,\n nl: false,\n no: false,\n pl: false,\n pt: false,\n ro: false,\n ru: false,\n sk: false,\n sl: false,\n srCyrl: false,\n srLatn: false,\n sv: false,\n th: false,\n tr: false,\n az: false,\n uk: false,\n vi: false,\n zhHans: false,\n zhHant: false,\n }\n}\n\nexport function createRtl (i18n: LocaleInstance, options?: RtlOptions): RtlInstance {\n const rtl = ref<Record<string, boolean>>(options?.rtl ?? genDefaults())\n const isRtl = computed(() => rtl.value[i18n.current.value] ?? false)\n\n return {\n isRtl,\n rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`),\n }\n}\n\nexport function provideRtl (locale: LocaleInstance, rtl: RtlInstance['rtl'], props: RtlProps): RtlInstance {\n const isRtl = computed(() => props.rtl ?? rtl.value[locale.current.value] ?? false)\n\n return {\n isRtl,\n rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`),\n }\n}\n\nexport function useRtl () {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected rtl instance')\n\n return { isRtl: locale.isRtl, rtlClasses: locale.rtlClasses }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"location.mjs","names":["useRtl","computed","parseAnchor","propsFactory","oppositeMap","center","top","bottom","left","right","makeLocationProps","location","String","useLocation","props","opposite","arguments","length","undefined","offset","isRtl","locationStyles","side","align","split","value","getOffset","styles","transform"],"sources":["../../src/composables/location.ts"],"sourcesContent":["// Composables\nimport { useRtl } from '@/composables/locale'\n\n// Utilities\nimport { computed } from 'vue'\nimport { parseAnchor, propsFactory } from '@/util'\n\n// Types\nimport type { CSSProperties, PropType } from 'vue'\nimport type { Anchor } from '@/util'\n\nconst oppositeMap = {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n} as const\n\nexport interface LocationProps {\n location: Anchor | undefined\n}\n\nexport const makeLocationProps = propsFactory({\n location: String as PropType<Anchor>,\n}, 'location')\n\nexport function useLocation (props: LocationProps, opposite = false, offset?: (side: string) => number) {\n const { isRtl } = useRtl()\n\n const locationStyles = computed(() => {\n if (!props.location) return {}\n\n const { side, align } = parseAnchor(\n props.location.split(' ').length > 1\n ? props.location\n : `${props.location} center` as Anchor,\n isRtl.value\n )\n\n function getOffset (side: string) {\n return offset\n ? offset(side)\n : 0\n }\n\n const styles = {} as CSSProperties\n\n if (side !== 'center') {\n if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`\n else styles[side] = 0\n }\n if (align !== 'center') {\n if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`\n else styles[align] = 0\n } else {\n if (side === 'center') styles.top = styles.left = '50%'\n else {\n styles[({\n top: 'left',\n bottom: 'left',\n left: 'top',\n right: 'top',\n } as const)[side]] = '50%'\n }\n styles.transform = {\n top: 'translateX(-50%)',\n bottom: 'translateX(-50%)',\n left: 'translateY(-50%)',\n right: 'translateY(-50%)',\n center: 'translate(-50%, -50%)',\n }[side]\n }\n\n return styles\n })\n\n return { locationStyles }\n}\n"],"mappings":"AAAA;AAAA,SACSA,MAAM,wBAEf;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,WAAW,EAAEC,YAAY,6BAElC;AAIA,MAAMC,WAAW,GAAG;EAClBC,MAAM,EAAE,QAAQ;EAChBC,GAAG,EAAE,QAAQ;EACbC,MAAM,EAAE,KAAK;EACbC,IAAI,EAAE,OAAO;EACbC,KAAK,EAAE;AACT,CAAU;AAMV,OAAO,MAAMC,iBAAiB,GAAGP,YAAY,CAAC;EAC5CQ,QAAQ,EAAEC;AACZ,CAAC,EAAE,UAAU,CAAC;AAEd,OAAO,SAASC,WAAWA,CAAEC,KAAoB,EAAuD;EAAA,IAArDC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAAA,IAAEG,MAAiC,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EACpG,MAAM;IAAEE;EAAM,CAAC,GAAGpB,MAAM,CAAC,CAAC;EAE1B,MAAMqB,cAAc,GAAGpB,QAAQ,CAAC,MAAM;IACpC,IAAI,CAACa,KAAK,CAACH,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE9B,MAAM;MAAEW,IAAI;MAAEC;IAAM,CAAC,GAAGrB,WAAW,CACjCY,KAAK,CAACH,QAAQ,CAACa,KAAK,CAAC,GAAG,CAAC,CAACP,MAAM,GAAG,CAAC,GAChCH,KAAK,CAACH,QAAQ,GACb,GAAEG,KAAK,CAACH,QAAS,SAAkB,EACxCS,KAAK,CAACK,KACR,CAAC;IAED,SAASC,SAASA,CAAEJ,IAAY,EAAE;MAChC,OAAOH,MAAM,GACTA,MAAM,CAACG,IAAI,CAAC,GACZ,CAAC;IACP;IAEA,MAAMK,MAAM,GAAG,CAAC,CAAkB;IAElC,IAAIL,IAAI,KAAK,QAAQ,EAAE;MACrB,IAAIP,QAAQ,EAAEY,MAAM,CAACvB,WAAW,CAACkB,IAAI,CAAC,CAAC,GAAI,eAAcI,SAAS,CAACJ,IAAI,CAAE,KAAI,MACxEK,MAAM,CAACL,IAAI,CAAC,GAAG,CAAC;IACvB;IACA,IAAIC,KAAK,KAAK,QAAQ,EAAE;MACtB,IAAIR,QAAQ,EAAEY,MAAM,CAACvB,WAAW,CAACmB,KAAK,CAAC,CAAC,GAAI,eAAcG,SAAS,CAACH,KAAK,CAAE,KAAI,MAC1EI,MAAM,CAACJ,KAAK,CAAC,GAAG,CAAC;IACxB,CAAC,MAAM;MACL,IAAID,IAAI,KAAK,QAAQ,EAAEK,MAAM,CAACrB,GAAG,GAAGqB,MAAM,CAACnB,IAAI,GAAG,KAAK,MAClD;QACHmB,MAAM,CAAE;UACNrB,GAAG,EAAE,MAAM;UACXC,MAAM,EAAE,MAAM;UACdC,IAAI,EAAE,KAAK;UACXC,KAAK,EAAE;QACT,CAAC,CAAWa,IAAI,CAAC,CAAC,GAAG,KAAK;MAC5B;MACAK,MAAM,CAACC,SAAS,GAAG;QACjBtB,GAAG,EAAE,kBAAkB;QACvBC,MAAM,EAAE,kBAAkB;QAC1BC,IAAI,EAAE,kBAAkB;QACxBC,KAAK,EAAE,kBAAkB;QACzBJ,MAAM,EAAE;MACV,CAAC,CAACiB,IAAI,CAAC;IACT;IAEA,OAAOK,MAAM;EACf,CAAC,CAAC;EAEF,OAAO;IAAEN;EAAe,CAAC;AAC3B","ignoreList":[]}
1
+ {"version":3,"file":"location.mjs","names":["useRtl","computed","parseAnchor","propsFactory","oppositeMap","center","top","bottom","left","right","makeLocationProps","location","String","useLocation","props","opposite","arguments","length","undefined","offset","isRtl","locationStyles","side","align","split","value","getOffset","styles","transform"],"sources":["../../src/composables/location.ts"],"sourcesContent":["// Composables\nimport { useRtl } from '@/composables/locale'\n\n// Utilities\nimport { computed } from 'vue'\nimport { parseAnchor, propsFactory } from '@/util'\n\n// Types\nimport type { CSSProperties, PropType } from 'vue'\nimport type { Anchor } from '@/util'\n\nconst oppositeMap = {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n} as const\n\nexport interface LocationProps {\n location: Anchor | undefined\n}\n\nexport const makeLocationProps = propsFactory({\n location: String as PropType<Anchor>,\n}, 'location')\n\nexport function useLocation (props: LocationProps, opposite = false, offset?: (side: string) => number) {\n const { isRtl } = useRtl()\n\n const locationStyles = computed(() => {\n if (!props.location) return {}\n\n const { side, align } = parseAnchor(\n props.location.split(' ').length > 1\n ? props.location\n : `${props.location} center` as Anchor,\n isRtl.value\n )\n\n function getOffset (side: string) {\n return offset\n ? offset(side)\n : 0\n }\n\n const styles = {} as CSSProperties\n\n if (side !== 'center') {\n if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`\n else styles[side] = 0\n }\n if (align !== 'center') {\n if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`\n else styles[align] = 0\n } else {\n if (side === 'center') styles.top = styles.left = '50%'\n else {\n styles[({\n top: 'left',\n bottom: 'left',\n left: 'top',\n right: 'top',\n } as const)[side]] = '50%'\n }\n styles.transform = {\n top: 'translateX(-50%)',\n bottom: 'translateX(-50%)',\n left: 'translateY(-50%)',\n right: 'translateY(-50%)',\n center: 'translate(-50%, -50%)',\n }[side]\n }\n\n return styles\n })\n\n return { locationStyles }\n}\n"],"mappings":"AAAA;AAAA,SACSA,MAAM,wBAEf;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,WAAW,EAAEC,YAAY,6BAElC;AAIA,MAAMC,WAAW,GAAG;EAClBC,MAAM,EAAE,QAAQ;EAChBC,GAAG,EAAE,QAAQ;EACbC,MAAM,EAAE,KAAK;EACbC,IAAI,EAAE,OAAO;EACbC,KAAK,EAAE;AACT,CAAU;AAMV,OAAO,MAAMC,iBAAiB,GAAGP,YAAY,CAAC;EAC5CQ,QAAQ,EAAEC;AACZ,CAAC,EAAE,UAAU,CAAC;AAEd,OAAO,SAASC,WAAWA,CAAEC,KAAoB,EAAuD;EAAA,IAArDC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAAA,IAAEG,MAAiC,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EACpG,MAAM;IAAEE;EAAM,CAAC,GAAGpB,MAAM,CAAC,CAAC;EAE1B,MAAMqB,cAAc,GAAGpB,QAAQ,CAAC,MAAM;IACpC,IAAI,CAACa,KAAK,CAACH,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE9B,MAAM;MAAEW,IAAI;MAAEC;IAAM,CAAC,GAAGrB,WAAW,CACjCY,KAAK,CAACH,QAAQ,CAACa,KAAK,CAAC,GAAG,CAAC,CAACP,MAAM,GAAG,CAAC,GAChCH,KAAK,CAACH,QAAQ,GACd,GAAGG,KAAK,CAACH,QAAQ,SAAmB,EACxCS,KAAK,CAACK,KACR,CAAC;IAED,SAASC,SAASA,CAAEJ,IAAY,EAAE;MAChC,OAAOH,MAAM,GACTA,MAAM,CAACG,IAAI,CAAC,GACZ,CAAC;IACP;IAEA,MAAMK,MAAM,GAAG,CAAC,CAAkB;IAElC,IAAIL,IAAI,KAAK,QAAQ,EAAE;MACrB,IAAIP,QAAQ,EAAEY,MAAM,CAACvB,WAAW,CAACkB,IAAI,CAAC,CAAC,GAAG,eAAeI,SAAS,CAACJ,IAAI,CAAC,KAAK,MACxEK,MAAM,CAACL,IAAI,CAAC,GAAG,CAAC;IACvB;IACA,IAAIC,KAAK,KAAK,QAAQ,EAAE;MACtB,IAAIR,QAAQ,EAAEY,MAAM,CAACvB,WAAW,CAACmB,KAAK,CAAC,CAAC,GAAG,eAAeG,SAAS,CAACH,KAAK,CAAC,KAAK,MAC1EI,MAAM,CAACJ,KAAK,CAAC,GAAG,CAAC;IACxB,CAAC,MAAM;MACL,IAAID,IAAI,KAAK,QAAQ,EAAEK,MAAM,CAACrB,GAAG,GAAGqB,MAAM,CAACnB,IAAI,GAAG,KAAK,MAClD;QACHmB,MAAM,CAAE;UACNrB,GAAG,EAAE,MAAM;UACXC,MAAM,EAAE,MAAM;UACdC,IAAI,EAAE,KAAK;UACXC,KAAK,EAAE;QACT,CAAC,CAAWa,IAAI,CAAC,CAAC,GAAG,KAAK;MAC5B;MACAK,MAAM,CAACC,SAAS,GAAG;QACjBtB,GAAG,EAAE,kBAAkB;QACvBC,MAAM,EAAE,kBAAkB;QAC1BC,IAAI,EAAE,kBAAkB;QACxBC,KAAK,EAAE,kBAAkB;QACzBJ,MAAM,EAAE;MACV,CAAC,CAACiB,IAAI,CAAC;IACT;IAEA,OAAOK,MAAM;EACf,CAAC,CAAC;EAEF,OAAO;IAAEN;EAAe,CAAC;AAC3B","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"position.mjs","names":["computed","getCurrentInstanceName","propsFactory","positionValues","makePositionProps","position","type","String","validator","v","includes","usePosition","props","name","arguments","length","undefined","positionClasses"],"sources":["../../src/composables/position.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'] as const\n\ntype Position = typeof positionValues[number]\n\nexport interface PositionProps {\n position: Position | undefined\n}\n\n// Composables\nexport const makePositionProps = propsFactory({\n position: {\n type: String as PropType<Position>,\n validator: /* istanbul ignore next */ (v: any) => positionValues.includes(v),\n },\n}, 'position')\n\nexport function usePosition (\n props: PositionProps,\n name = getCurrentInstanceName(),\n) {\n const positionClasses = computed(() => {\n return props.position ? `${name}--${props.position}` : undefined\n })\n\n return { positionClasses }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,QAAQ,KAAK;AAAA,SACrBC,sBAAsB,EAAEC,YAAY,6BAE7C;AAGA,MAAMC,cAAc,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAU;AAQrF;AACA,OAAO,MAAMC,iBAAiB,GAAGF,YAAY,CAAC;EAC5CG,QAAQ,EAAE;IACRC,IAAI,EAAEC,MAA4B;IAClCC,SAAS,EAAE,0BAA4BC,CAAM,IAAKN,cAAc,CAACO,QAAQ,CAACD,CAAC;EAC7E;AACF,CAAC,EAAE,UAAU,CAAC;AAEd,OAAO,SAASE,WAAWA,CACzBC,KAAoB,EAEpB;EAAA,IADAC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGb,sBAAsB,CAAC,CAAC;EAE/B,MAAMgB,eAAe,GAAGjB,QAAQ,CAAC,MAAM;IACrC,OAAOY,KAAK,CAACP,QAAQ,GAAI,GAAEQ,IAAK,KAAID,KAAK,CAACP,QAAS,EAAC,GAAGW,SAAS;EAClE,CAAC,CAAC;EAEF,OAAO;IAAEC;EAAgB,CAAC;AAC5B","ignoreList":[]}
1
+ {"version":3,"file":"position.mjs","names":["computed","getCurrentInstanceName","propsFactory","positionValues","makePositionProps","position","type","String","validator","v","includes","usePosition","props","name","arguments","length","undefined","positionClasses"],"sources":["../../src/composables/position.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'] as const\n\ntype Position = typeof positionValues[number]\n\nexport interface PositionProps {\n position: Position | undefined\n}\n\n// Composables\nexport const makePositionProps = propsFactory({\n position: {\n type: String as PropType<Position>,\n validator: /* istanbul ignore next */ (v: any) => positionValues.includes(v),\n },\n}, 'position')\n\nexport function usePosition (\n props: PositionProps,\n name = getCurrentInstanceName(),\n) {\n const positionClasses = computed(() => {\n return props.position ? `${name}--${props.position}` : undefined\n })\n\n return { positionClasses }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,QAAQ,KAAK;AAAA,SACrBC,sBAAsB,EAAEC,YAAY,6BAE7C;AAGA,MAAMC,cAAc,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAU;AAQrF;AACA,OAAO,MAAMC,iBAAiB,GAAGF,YAAY,CAAC;EAC5CG,QAAQ,EAAE;IACRC,IAAI,EAAEC,MAA4B;IAClCC,SAAS,EAAE,0BAA4BC,CAAM,IAAKN,cAAc,CAACO,QAAQ,CAACD,CAAC;EAC7E;AACF,CAAC,EAAE,UAAU,CAAC;AAEd,OAAO,SAASE,WAAWA,CACzBC,KAAoB,EAEpB;EAAA,IADAC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGb,sBAAsB,CAAC,CAAC;EAE/B,MAAMgB,eAAe,GAAGjB,QAAQ,CAAC,MAAM;IACrC,OAAOY,KAAK,CAACP,QAAQ,GAAG,GAAGQ,IAAI,KAAKD,KAAK,CAACP,QAAQ,EAAE,GAAGW,SAAS;EAClE,CAAC,CAAC;EAEF,OAAO;IAAEC;EAAgB,CAAC;AAC5B","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"proxiedModel.mjs","names":["useToggleScope","computed","ref","toRaw","watch","getCurrentInstance","toKebabCase","useProxiedModel","props","prop","defaultValue","transformIn","arguments","length","undefined","v","transformOut","vm","internal","kebabProp","checkKebab","isControlled","vnode","hasOwnProperty","value","val","model","get","externalValue","set","internalValue","newValue","emit","Object","defineProperty"],"sources":["../../src/composables/proxiedModel.ts"],"sourcesContent":["// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, ref, toRaw, watch } from 'vue'\nimport { getCurrentInstance, toKebabCase } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { EventProp } from '@/util'\n\ntype InnerVal<T> = T extends any[] ? Readonly<T> : T\n\n// Composables\nexport function useProxiedModel<\n Props extends object & { [key in Prop as `onUpdate:${Prop}`]: EventProp | undefined },\n Prop extends Extract<keyof Props, string>,\n Inner = Props[Prop],\n> (\n props: Props,\n prop: Prop,\n defaultValue?: Props[Prop],\n transformIn: (value?: Props[Prop]) => Inner = (v: any) => v,\n transformOut: (value: Inner) => Props[Prop] = (v: any) => v,\n) {\n const vm = getCurrentInstance('useProxiedModel')\n const internal = ref(props[prop] !== undefined ? props[prop] : defaultValue) as Ref<Props[Prop]>\n const kebabProp = toKebabCase(prop)\n const checkKebab = kebabProp !== prop\n\n const isControlled = checkKebab\n ? computed(() => {\n void props[prop]\n return !!(\n (vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) &&\n (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) || vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`))\n )\n })\n : computed(() => {\n void props[prop]\n return !!(vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`))\n })\n\n useToggleScope(() => !isControlled.value, () => {\n watch(() => props[prop], val => {\n internal.value = val\n })\n })\n\n const model = computed({\n get (): any {\n const externalValue = props[prop]\n return transformIn(isControlled.value ? externalValue : internal.value)\n },\n set (internalValue) {\n const newValue = transformOut(internalValue)\n const value = toRaw(isControlled.value ? props[prop] : internal.value)\n if (value === newValue || transformIn(value) === internalValue) {\n return\n }\n internal.value = newValue\n vm?.emit(`update:${prop}`, newValue)\n },\n }) as any as Ref<InnerVal<Inner>> & { readonly externalValue: Props[Prop] }\n\n Object.defineProperty(model, 'externalValue', {\n get: () => isControlled.value ? props[prop] : internal.value,\n })\n\n return model\n}\n"],"mappings":"AAAA;AAAA,SACSA,cAAc,6BAEvB;AACA,SAASC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACxCC,kBAAkB,EAAEC,WAAW,6BAExC;AAMA;AACA,OAAO,SAASC,eAAeA,CAK7BC,KAAY,EACZC,IAAU,EACVC,YAA0B,EAG1B;EAAA,IAFAC,WAA2C,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAIG,CAAM,IAAKA,CAAC;EAAA,IAC3DC,YAA2C,GAAAJ,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAIG,CAAM,IAAKA,CAAC;EAE3D,MAAME,EAAE,GAAGZ,kBAAkB,CAAC,iBAAiB,CAAC;EAChD,MAAMa,QAAQ,GAAGhB,GAAG,CAACM,KAAK,CAACC,IAAI,CAAC,KAAKK,SAAS,GAAGN,KAAK,CAACC,IAAI,CAAC,GAAGC,YAAY,CAAqB;EAChG,MAAMS,SAAS,GAAGb,WAAW,CAACG,IAAI,CAAC;EACnC,MAAMW,UAAU,GAAGD,SAAS,KAAKV,IAAI;EAErC,MAAMY,YAAY,GAAGD,UAAU,GAC3BnB,QAAQ,CAAC,MAAM;IACf,KAAKO,KAAK,CAACC,IAAI,CAAC;IAChB,OAAO,CAAC,EACN,CAACQ,EAAE,CAACK,KAAK,CAACd,KAAK,EAAEe,cAAc,CAACd,IAAI,CAAC,IAAIQ,EAAE,CAACK,KAAK,CAACd,KAAK,EAAEe,cAAc,CAACJ,SAAS,CAAC,MACjFF,EAAE,CAACK,KAAK,CAACd,KAAK,EAAEe,cAAc,CAAE,YAAWd,IAAK,EAAC,CAAC,IAAIQ,EAAE,CAACK,KAAK,CAACd,KAAK,EAAEe,cAAc,CAAE,YAAWJ,SAAU,EAAC,CAAC,CAAC,CAChH;EACH,CAAC,CAAC,GACAlB,QAAQ,CAAC,MAAM;IACf,KAAKO,KAAK,CAACC,IAAI,CAAC;IAChB,OAAO,CAAC,EAAEQ,EAAE,CAACK,KAAK,CAACd,KAAK,EAAEe,cAAc,CAACd,IAAI,CAAC,IAAIQ,EAAE,CAACK,KAAK,CAACd,KAAK,EAAEe,cAAc,CAAE,YAAWd,IAAK,EAAC,CAAC,CAAC;EACvG,CAAC,CAAC;EAEJT,cAAc,CAAC,MAAM,CAACqB,YAAY,CAACG,KAAK,EAAE,MAAM;IAC9CpB,KAAK,CAAC,MAAMI,KAAK,CAACC,IAAI,CAAC,EAAEgB,GAAG,IAAI;MAC9BP,QAAQ,CAACM,KAAK,GAAGC,GAAG;IACtB,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,MAAMC,KAAK,GAAGzB,QAAQ,CAAC;IACrB0B,GAAGA,CAAA,EAAS;MACV,MAAMC,aAAa,GAAGpB,KAAK,CAACC,IAAI,CAAC;MACjC,OAAOE,WAAW,CAACU,YAAY,CAACG,KAAK,GAAGI,aAAa,GAAGV,QAAQ,CAACM,KAAK,CAAC;IACzE,CAAC;IACDK,GAAGA,CAAEC,aAAa,EAAE;MAClB,MAAMC,QAAQ,GAAGf,YAAY,CAACc,aAAa,CAAC;MAC5C,MAAMN,KAAK,GAAGrB,KAAK,CAACkB,YAAY,CAACG,KAAK,GAAGhB,KAAK,CAACC,IAAI,CAAC,GAAGS,QAAQ,CAACM,KAAK,CAAC;MACtE,IAAIA,KAAK,KAAKO,QAAQ,IAAIpB,WAAW,CAACa,KAAK,CAAC,KAAKM,aAAa,EAAE;QAC9D;MACF;MACAZ,QAAQ,CAACM,KAAK,GAAGO,QAAQ;MACzBd,EAAE,EAAEe,IAAI,CAAE,UAASvB,IAAK,EAAC,EAAEsB,QAAQ,CAAC;IACtC;EACF,CAAC,CAA0E;EAE3EE,MAAM,CAACC,cAAc,CAACR,KAAK,EAAE,eAAe,EAAE;IAC5CC,GAAG,EAAEA,CAAA,KAAMN,YAAY,CAACG,KAAK,GAAGhB,KAAK,CAACC,IAAI,CAAC,GAAGS,QAAQ,CAACM;EACzD,CAAC,CAAC;EAEF,OAAOE,KAAK;AACd","ignoreList":[]}
1
+ {"version":3,"file":"proxiedModel.mjs","names":["useToggleScope","computed","ref","toRaw","watch","getCurrentInstance","toKebabCase","useProxiedModel","props","prop","defaultValue","transformIn","arguments","length","undefined","v","transformOut","vm","internal","kebabProp","checkKebab","isControlled","vnode","hasOwnProperty","value","val","model","get","externalValue","set","internalValue","newValue","emit","Object","defineProperty"],"sources":["../../src/composables/proxiedModel.ts"],"sourcesContent":["// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, ref, toRaw, watch } from 'vue'\nimport { getCurrentInstance, toKebabCase } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { EventProp } from '@/util'\n\ntype InnerVal<T> = T extends any[] ? Readonly<T> : T\n\n// Composables\nexport function useProxiedModel<\n Props extends object & { [key in Prop as `onUpdate:${Prop}`]: EventProp | undefined },\n Prop extends Extract<keyof Props, string>,\n Inner = Props[Prop],\n> (\n props: Props,\n prop: Prop,\n defaultValue?: Props[Prop],\n transformIn: (value?: Props[Prop]) => Inner = (v: any) => v,\n transformOut: (value: Inner) => Props[Prop] = (v: any) => v,\n) {\n const vm = getCurrentInstance('useProxiedModel')\n const internal = ref(props[prop] !== undefined ? props[prop] : defaultValue) as Ref<Props[Prop]>\n const kebabProp = toKebabCase(prop)\n const checkKebab = kebabProp !== prop\n\n const isControlled = checkKebab\n ? computed(() => {\n void props[prop]\n return !!(\n (vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) &&\n (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) || vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`))\n )\n })\n : computed(() => {\n void props[prop]\n return !!(vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`))\n })\n\n useToggleScope(() => !isControlled.value, () => {\n watch(() => props[prop], val => {\n internal.value = val\n })\n })\n\n const model = computed({\n get (): any {\n const externalValue = props[prop]\n return transformIn(isControlled.value ? externalValue : internal.value)\n },\n set (internalValue) {\n const newValue = transformOut(internalValue)\n const value = toRaw(isControlled.value ? props[prop] : internal.value)\n if (value === newValue || transformIn(value) === internalValue) {\n return\n }\n internal.value = newValue\n vm?.emit(`update:${prop}`, newValue)\n },\n }) as any as Ref<InnerVal<Inner>> & { readonly externalValue: Props[Prop] }\n\n Object.defineProperty(model, 'externalValue', {\n get: () => isControlled.value ? props[prop] : internal.value,\n })\n\n return model\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"rounded.mjs","names":["computed","isRef","getCurrentInstanceName","propsFactory","makeRoundedProps","rounded","type","Boolean","Number","String","default","undefined","tile","useRounded","props","name","arguments","length","roundedClasses","value","classes","push","split"],"sources":["../../src/composables/rounded.ts"],"sourcesContent":["// Utilities\nimport { computed, isRef } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\ntype RoundedValue = boolean | string | number | null | undefined\n\nexport interface RoundedProps {\n rounded?: RoundedValue\n tile?: boolean\n}\n\ntype RoundedData = {\n roundedClasses: Ref<string[]>\n}\n\n// Composables\nexport const makeRoundedProps = propsFactory({\n rounded: {\n type: [Boolean, Number, String],\n default: undefined,\n },\n tile: Boolean,\n}, 'rounded')\n\nexport function useRounded (\n props: RoundedProps | Ref<RoundedValue>,\n name = getCurrentInstanceName(),\n): RoundedData {\n const roundedClasses = computed(() => {\n const rounded = isRef(props) ? props.value : props.rounded\n const tile = isRef(props) ? props.value : props.tile\n const classes: string[] = []\n\n if (rounded === true || rounded === '') {\n classes.push(`${name}--rounded`)\n } else if (\n typeof rounded === 'string' ||\n rounded === 0\n ) {\n for (const value of String(rounded).split(' ')) {\n classes.push(`rounded-${value}`)\n }\n } else if (tile || rounded === false) {\n classes.push('rounded-0')\n }\n\n return classes\n })\n\n return { roundedClasses }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,sBAAsB,EAAEC,YAAY,6BAE7C;AAcA;AACA,OAAO,MAAMC,gBAAgB,GAAGD,YAAY,CAAC;EAC3CE,OAAO,EAAE;IACPC,IAAI,EAAE,CAACC,OAAO,EAAEC,MAAM,EAAEC,MAAM,CAAC;IAC/BC,OAAO,EAAEC;EACX,CAAC;EACDC,IAAI,EAAEL;AACR,CAAC,EAAE,SAAS,CAAC;AAEb,OAAO,SAASM,UAAUA,CACxBC,KAAuC,EAE1B;EAAA,IADbC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAL,SAAA,GAAAK,SAAA,MAAGd,sBAAsB,CAAC,CAAC;EAE/B,MAAMgB,cAAc,GAAGlB,QAAQ,CAAC,MAAM;IACpC,MAAMK,OAAO,GAAGJ,KAAK,CAACa,KAAK,CAAC,GAAGA,KAAK,CAACK,KAAK,GAAGL,KAAK,CAACT,OAAO;IAC1D,MAAMO,IAAI,GAAGX,KAAK,CAACa,KAAK,CAAC,GAAGA,KAAK,CAACK,KAAK,GAAGL,KAAK,CAACF,IAAI;IACpD,MAAMQ,OAAiB,GAAG,EAAE;IAE5B,IAAIf,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAK,EAAE,EAAE;MACtCe,OAAO,CAACC,IAAI,CAAE,GAAEN,IAAK,WAAU,CAAC;IAClC,CAAC,MAAM,IACL,OAAOV,OAAO,KAAK,QAAQ,IAC3BA,OAAO,KAAK,CAAC,EACb;MACA,KAAK,MAAMc,KAAK,IAAIV,MAAM,CAACJ,OAAO,CAAC,CAACiB,KAAK,CAAC,GAAG,CAAC,EAAE;QAC9CF,OAAO,CAACC,IAAI,CAAE,WAAUF,KAAM,EAAC,CAAC;MAClC;IACF,CAAC,MAAM,IAAIP,IAAI,IAAIP,OAAO,KAAK,KAAK,EAAE;MACpCe,OAAO,CAACC,IAAI,CAAC,WAAW,CAAC;IAC3B;IAEA,OAAOD,OAAO;EAChB,CAAC,CAAC;EAEF,OAAO;IAAEF;EAAe,CAAC;AAC3B","ignoreList":[]}
1
+ {"version":3,"file":"rounded.mjs","names":["computed","isRef","getCurrentInstanceName","propsFactory","makeRoundedProps","rounded","type","Boolean","Number","String","default","undefined","tile","useRounded","props","name","arguments","length","roundedClasses","value","classes","push","split"],"sources":["../../src/composables/rounded.ts"],"sourcesContent":["// Utilities\nimport { computed, isRef } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\ntype RoundedValue = boolean | string | number | null | undefined\n\nexport interface RoundedProps {\n rounded?: RoundedValue\n tile?: boolean\n}\n\ntype RoundedData = {\n roundedClasses: Ref<string[]>\n}\n\n// Composables\nexport const makeRoundedProps = propsFactory({\n rounded: {\n type: [Boolean, Number, String],\n default: undefined,\n },\n tile: Boolean,\n}, 'rounded')\n\nexport function useRounded (\n props: RoundedProps | Ref<RoundedValue>,\n name = getCurrentInstanceName(),\n): RoundedData {\n const roundedClasses = computed(() => {\n const rounded = isRef(props) ? props.value : props.rounded\n const tile = isRef(props) ? props.value : props.tile\n const classes: string[] = []\n\n if (rounded === true || rounded === '') {\n classes.push(`${name}--rounded`)\n } else if (\n typeof rounded === 'string' ||\n rounded === 0\n ) {\n for (const value of String(rounded).split(' ')) {\n classes.push(`rounded-${value}`)\n }\n } else if (tile || rounded === false) {\n classes.push('rounded-0')\n }\n\n return classes\n })\n\n return { roundedClasses }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,sBAAsB,EAAEC,YAAY,6BAE7C;AAcA;AACA,OAAO,MAAMC,gBAAgB,GAAGD,YAAY,CAAC;EAC3CE,OAAO,EAAE;IACPC,IAAI,EAAE,CAACC,OAAO,EAAEC,MAAM,EAAEC,MAAM,CAAC;IAC/BC,OAAO,EAAEC;EACX,CAAC;EACDC,IAAI,EAAEL;AACR,CAAC,EAAE,SAAS,CAAC;AAEb,OAAO,SAASM,UAAUA,CACxBC,KAAuC,EAE1B;EAAA,IADbC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAL,SAAA,GAAAK,SAAA,MAAGd,sBAAsB,CAAC,CAAC;EAE/B,MAAMgB,cAAc,GAAGlB,QAAQ,CAAC,MAAM;IACpC,MAAMK,OAAO,GAAGJ,KAAK,CAACa,KAAK,CAAC,GAAGA,KAAK,CAACK,KAAK,GAAGL,KAAK,CAACT,OAAO;IAC1D,MAAMO,IAAI,GAAGX,KAAK,CAACa,KAAK,CAAC,GAAGA,KAAK,CAACK,KAAK,GAAGL,KAAK,CAACF,IAAI;IACpD,MAAMQ,OAAiB,GAAG,EAAE;IAE5B,IAAIf,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAK,EAAE,EAAE;MACtCe,OAAO,CAACC,IAAI,CAAC,GAAGN,IAAI,WAAW,CAAC;IAClC,CAAC,MAAM,IACL,OAAOV,OAAO,KAAK,QAAQ,IAC3BA,OAAO,KAAK,CAAC,EACb;MACA,KAAK,MAAMc,KAAK,IAAIV,MAAM,CAACJ,OAAO,CAAC,CAACiB,KAAK,CAAC,GAAG,CAAC,EAAE;QAC9CF,OAAO,CAACC,IAAI,CAAC,WAAWF,KAAK,EAAE,CAAC;MAClC;IACF,CAAC,MAAM,IAAIP,IAAI,IAAIP,OAAO,KAAK,KAAK,EAAE;MACpCe,OAAO,CAACC,IAAI,CAAC,WAAW,CAAC;IAC3B;IAEA,OAAOD,OAAO;EAChB,CAAC,CAAC;EAEF,OAAO;IAAEF;EAAe,CAAC;AAC3B","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"scroll.mjs","names":["computed","onBeforeUnmount","onMounted","ref","shallowRef","watch","clamp","consoleWarn","propsFactory","makeScrollProps","scrollTarget","type","String","scrollThreshold","Number","default","useScroll","props","args","arguments","length","undefined","canScroll","previousScroll","previousScrollHeight","target","currentScroll","savedScroll","currentThreshold","isScrollActive","isScrollingUp","scrollRatio","value","onScroll","targetEl","pageYOffset","scrollTop","currentScrollHeight","Window","document","documentElement","scrollHeight","Math","abs","newTarget","querySelector","window","removeEventListener","addEventListener","passive","immediate"],"sources":["../../src/composables/scroll.ts"],"sourcesContent":["// Utilities\nimport {\n computed,\n onBeforeUnmount,\n onMounted,\n ref,\n shallowRef,\n watch,\n} from 'vue'\nimport { clamp, consoleWarn, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport interface ScrollProps {\n scrollTarget?: string\n scrollThreshold?: string | number\n}\n\nexport interface ThresholdMetCallbackData {\n isScrollingUp: boolean\n currentThreshold: number\n savedScroll: Ref<number>\n}\n\n// Composables\nexport const makeScrollProps = propsFactory({\n scrollTarget: {\n type: String,\n },\n scrollThreshold: {\n type: [String, Number],\n default: 300,\n },\n}, 'scroll')\n\nexport interface ScrollArguments {\n canScroll?: Readonly<Ref<boolean>>\n}\n\nexport function useScroll (\n props: ScrollProps,\n args: ScrollArguments = {},\n) {\n const { canScroll } = args\n let previousScroll = 0\n let previousScrollHeight = 0\n const target = ref<Element | Window | null>(null)\n const currentScroll = shallowRef(0)\n const savedScroll = shallowRef(0)\n const currentThreshold = shallowRef(0)\n const isScrollActive = shallowRef(false)\n const isScrollingUp = shallowRef(false)\n\n const scrollThreshold = computed(() => {\n return Number(props.scrollThreshold)\n })\n\n /**\n * 1: at top\n * 0: at threshold\n */\n const scrollRatio = computed(() => {\n return clamp(((scrollThreshold.value - currentScroll.value) / scrollThreshold.value) || 0)\n })\n\n const onScroll = () => {\n const targetEl = target.value\n\n if (!targetEl || (canScroll && !canScroll.value)) return\n\n previousScroll = currentScroll.value\n currentScroll.value = ('window' in targetEl) ? targetEl.pageYOffset : targetEl.scrollTop\n\n const currentScrollHeight = targetEl instanceof Window ? document.documentElement.scrollHeight : targetEl.scrollHeight\n if (previousScrollHeight !== currentScrollHeight) {\n previousScrollHeight = currentScrollHeight\n return\n }\n\n isScrollingUp.value = currentScroll.value < previousScroll\n currentThreshold.value = Math.abs(currentScroll.value - scrollThreshold.value)\n }\n\n watch(isScrollingUp, () => {\n savedScroll.value = savedScroll.value || currentScroll.value\n })\n\n watch(isScrollActive, () => {\n savedScroll.value = 0\n })\n\n onMounted(() => {\n watch(() => props.scrollTarget, scrollTarget => {\n const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window\n\n if (!newTarget) {\n consoleWarn(`Unable to locate element with identifier ${scrollTarget}`)\n return\n }\n\n if (newTarget === target.value) return\n\n target.value?.removeEventListener('scroll', onScroll)\n target.value = newTarget\n target.value.addEventListener('scroll', onScroll, { passive: true })\n }, { immediate: true })\n })\n\n onBeforeUnmount(() => {\n target.value?.removeEventListener('scroll', onScroll)\n })\n\n // Do we need this? If yes - seems that\n // there's no need to expose onScroll\n canScroll && watch(canScroll, onScroll, { immediate: true })\n\n return {\n scrollThreshold,\n currentScroll,\n currentThreshold,\n isScrollActive,\n scrollRatio,\n\n // required only for testing\n // probably can be removed\n // later (2 chars chlng)\n isScrollingUp,\n savedScroll,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"scroll.mjs","names":["computed","onBeforeUnmount","onMounted","ref","shallowRef","watch","clamp","consoleWarn","propsFactory","makeScrollProps","scrollTarget","type","String","scrollThreshold","Number","default","useScroll","props","args","arguments","length","undefined","canScroll","previousScroll","previousScrollHeight","target","currentScroll","savedScroll","currentThreshold","isScrollActive","isScrollingUp","scrollRatio","value","onScroll","targetEl","pageYOffset","scrollTop","currentScrollHeight","Window","document","documentElement","scrollHeight","Math","abs","newTarget","querySelector","window","removeEventListener","addEventListener","passive","immediate"],"sources":["../../src/composables/scroll.ts"],"sourcesContent":["// Utilities\nimport {\n computed,\n onBeforeUnmount,\n onMounted,\n ref,\n shallowRef,\n watch,\n} from 'vue'\nimport { clamp, consoleWarn, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport interface ScrollProps {\n scrollTarget?: string\n scrollThreshold?: string | number\n}\n\nexport interface ThresholdMetCallbackData {\n isScrollingUp: boolean\n currentThreshold: number\n savedScroll: Ref<number>\n}\n\n// Composables\nexport const makeScrollProps = propsFactory({\n scrollTarget: {\n type: String,\n },\n scrollThreshold: {\n type: [String, Number],\n default: 300,\n },\n}, 'scroll')\n\nexport interface ScrollArguments {\n canScroll?: Readonly<Ref<boolean>>\n}\n\nexport function useScroll (\n props: ScrollProps,\n args: ScrollArguments = {},\n) {\n const { canScroll } = args\n let previousScroll = 0\n let previousScrollHeight = 0\n const target = ref<Element | Window | null>(null)\n const currentScroll = shallowRef(0)\n const savedScroll = shallowRef(0)\n const currentThreshold = shallowRef(0)\n const isScrollActive = shallowRef(false)\n const isScrollingUp = shallowRef(false)\n\n const scrollThreshold = computed(() => {\n return Number(props.scrollThreshold)\n })\n\n /**\n * 1: at top\n * 0: at threshold\n */\n const scrollRatio = computed(() => {\n return clamp(((scrollThreshold.value - currentScroll.value) / scrollThreshold.value) || 0)\n })\n\n const onScroll = () => {\n const targetEl = target.value\n\n if (!targetEl || (canScroll && !canScroll.value)) return\n\n previousScroll = currentScroll.value\n currentScroll.value = ('window' in targetEl) ? targetEl.pageYOffset : targetEl.scrollTop\n\n const currentScrollHeight = targetEl instanceof Window ? document.documentElement.scrollHeight : targetEl.scrollHeight\n if (previousScrollHeight !== currentScrollHeight) {\n previousScrollHeight = currentScrollHeight\n return\n }\n\n isScrollingUp.value = currentScroll.value < previousScroll\n currentThreshold.value = Math.abs(currentScroll.value - scrollThreshold.value)\n }\n\n watch(isScrollingUp, () => {\n savedScroll.value = savedScroll.value || currentScroll.value\n })\n\n watch(isScrollActive, () => {\n savedScroll.value = 0\n })\n\n onMounted(() => {\n watch(() => props.scrollTarget, scrollTarget => {\n const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window\n\n if (!newTarget) {\n consoleWarn(`Unable to locate element with identifier ${scrollTarget}`)\n return\n }\n\n if (newTarget === target.value) return\n\n target.value?.removeEventListener('scroll', onScroll)\n target.value = newTarget\n target.value.addEventListener('scroll', onScroll, { passive: true })\n }, { immediate: true })\n })\n\n onBeforeUnmount(() => {\n target.value?.removeEventListener('scroll', onScroll)\n })\n\n // Do we need this? If yes - seems that\n // there's no need to expose onScroll\n canScroll && watch(canScroll, onScroll, { immediate: true })\n\n return {\n scrollThreshold,\n currentScroll,\n currentThreshold,\n isScrollActive,\n scrollRatio,\n\n // required only for testing\n // probably can be removed\n // later (2 chars chlng)\n isScrollingUp,\n savedScroll,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"size.mjs","names":["convertToUnit","destructComputed","getCurrentInstanceName","includes","propsFactory","predefinedSizes","makeSizeProps","size","type","String","Number","default","useSize","props","name","arguments","length","undefined","sizeClasses","sizeStyles","width","height"],"sources":["../../src/composables/size.ts"],"sourcesContent":["// Utilities\nimport { convertToUnit, destructComputed, getCurrentInstanceName, includes, propsFactory } from '@/util'\n\n// Types\nconst predefinedSizes = ['x-small', 'small', 'default', 'large', 'x-large']\n\nexport interface SizeProps {\n size?: string | number\n}\n\n// Composables\nexport const makeSizeProps = propsFactory({\n size: {\n type: [String, Number],\n default: 'default',\n },\n}, 'size')\n\nexport function useSize (\n props: SizeProps,\n name = getCurrentInstanceName(),\n) {\n return destructComputed(() => {\n let sizeClasses\n let sizeStyles\n if (includes(predefinedSizes, props.size)) {\n sizeClasses = `${name}--size-${props.size}`\n } else if (props.size) {\n sizeStyles = {\n width: convertToUnit(props.size),\n height: convertToUnit(props.size),\n }\n }\n return { sizeClasses, sizeStyles }\n })\n}\n"],"mappings":"AAAA;AAAA,SACSA,aAAa,EAAEC,gBAAgB,EAAEC,sBAAsB,EAAEC,QAAQ,EAAEC,YAAY,6BAExF;AACA,MAAMC,eAAe,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC;AAM3E;AACA,OAAO,MAAMC,aAAa,GAAGF,YAAY,CAAC;EACxCG,IAAI,EAAE;IACJC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX;AACF,CAAC,EAAE,MAAM,CAAC;AAEV,OAAO,SAASC,OAAOA,CACrBC,KAAgB,EAEhB;EAAA,IADAC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGb,sBAAsB,CAAC,CAAC;EAE/B,OAAOD,gBAAgB,CAAC,MAAM;IAC5B,IAAIiB,WAAW;IACf,IAAIC,UAAU;IACd,IAAIhB,QAAQ,CAACE,eAAe,EAAEQ,KAAK,CAACN,IAAI,CAAC,EAAE;MACzCW,WAAW,GAAI,GAAEJ,IAAK,UAASD,KAAK,CAACN,IAAK,EAAC;IAC7C,CAAC,MAAM,IAAIM,KAAK,CAACN,IAAI,EAAE;MACrBY,UAAU,GAAG;QACXC,KAAK,EAAEpB,aAAa,CAACa,KAAK,CAACN,IAAI,CAAC;QAChCc,MAAM,EAAErB,aAAa,CAACa,KAAK,CAACN,IAAI;MAClC,CAAC;IACH;IACA,OAAO;MAAEW,WAAW;MAAEC;IAAW,CAAC;EACpC,CAAC,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"size.mjs","names":["convertToUnit","destructComputed","getCurrentInstanceName","includes","propsFactory","predefinedSizes","makeSizeProps","size","type","String","Number","default","useSize","props","name","arguments","length","undefined","sizeClasses","sizeStyles","width","height"],"sources":["../../src/composables/size.ts"],"sourcesContent":["// Utilities\nimport { convertToUnit, destructComputed, getCurrentInstanceName, includes, propsFactory } from '@/util'\n\n// Types\nconst predefinedSizes = ['x-small', 'small', 'default', 'large', 'x-large']\n\nexport interface SizeProps {\n size?: string | number\n}\n\n// Composables\nexport const makeSizeProps = propsFactory({\n size: {\n type: [String, Number],\n default: 'default',\n },\n}, 'size')\n\nexport function useSize (\n props: SizeProps,\n name = getCurrentInstanceName(),\n) {\n return destructComputed(() => {\n let sizeClasses\n let sizeStyles\n if (includes(predefinedSizes, props.size)) {\n sizeClasses = `${name}--size-${props.size}`\n } else if (props.size) {\n sizeStyles = {\n width: convertToUnit(props.size),\n height: convertToUnit(props.size),\n }\n }\n return { sizeClasses, sizeStyles }\n })\n}\n"],"mappings":"AAAA;AAAA,SACSA,aAAa,EAAEC,gBAAgB,EAAEC,sBAAsB,EAAEC,QAAQ,EAAEC,YAAY,6BAExF;AACA,MAAMC,eAAe,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC;AAM3E;AACA,OAAO,MAAMC,aAAa,GAAGF,YAAY,CAAC;EACxCG,IAAI,EAAE;IACJC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX;AACF,CAAC,EAAE,MAAM,CAAC;AAEV,OAAO,SAASC,OAAOA,CACrBC,KAAgB,EAEhB;EAAA,IADAC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGb,sBAAsB,CAAC,CAAC;EAE/B,OAAOD,gBAAgB,CAAC,MAAM;IAC5B,IAAIiB,WAAW;IACf,IAAIC,UAAU;IACd,IAAIhB,QAAQ,CAACE,eAAe,EAAEQ,KAAK,CAACN,IAAI,CAAC,EAAE;MACzCW,WAAW,GAAG,GAAGJ,IAAI,UAAUD,KAAK,CAACN,IAAI,EAAE;IAC7C,CAAC,MAAM,IAAIM,KAAK,CAACN,IAAI,EAAE;MACrBY,UAAU,GAAG;QACXC,KAAK,EAAEpB,aAAa,CAACa,KAAK,CAACN,IAAI,CAAC;QAChCc,MAAM,EAAErB,aAAa,CAACa,KAAK,CAACN,IAAI;MAClC,CAAC;IACH;IACA,OAAO;MAAEW,WAAW;MAAEC;IAAW,CAAC;EACpC,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"teleport.mjs","names":["computed","warn","IN_BROWSER","useTeleport","target","teleportTarget","_target","undefined","targetElement","document","body","querySelector","container","createElement","className","appendChild"],"sources":["../../src/composables/teleport.ts"],"sourcesContent":["// Utilities\nimport { computed, warn } from 'vue'\nimport { IN_BROWSER } from '@/util'\n\nexport function useTeleport (target: () => (boolean | string | ParentNode)) {\n const teleportTarget = computed(() => {\n const _target = target()\n\n if (_target === true || !IN_BROWSER) return undefined\n\n const targetElement =\n _target === false ? document.body\n : typeof _target === 'string' ? document.querySelector(_target)\n : _target\n\n if (targetElement == null) {\n warn(`Unable to locate target ${_target}`)\n return undefined\n }\n\n let container = targetElement.querySelector(':scope > .v-overlay-container')\n\n if (!container) {\n container = document.createElement('div')\n container.className = 'v-overlay-container'\n targetElement.appendChild(container)\n }\n\n return container\n })\n\n return { teleportTarget }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,IAAI,QAAQ,KAAK;AAAA,SAC3BC,UAAU;AAEnB,OAAO,SAASC,WAAWA,CAAEC,MAA6C,EAAE;EAC1E,MAAMC,cAAc,GAAGL,QAAQ,CAAC,MAAM;IACpC,MAAMM,OAAO,GAAGF,MAAM,CAAC,CAAC;IAExB,IAAIE,OAAO,KAAK,IAAI,IAAI,CAACJ,UAAU,EAAE,OAAOK,SAAS;IAErD,MAAMC,aAAa,GACjBF,OAAO,KAAK,KAAK,GAAGG,QAAQ,CAACC,IAAI,GAC/B,OAAOJ,OAAO,KAAK,QAAQ,GAAGG,QAAQ,CAACE,aAAa,CAACL,OAAO,CAAC,GAC7DA,OAAO;IAEX,IAAIE,aAAa,IAAI,IAAI,EAAE;MACzBP,IAAI,CAAE,2BAA0BK,OAAQ,EAAC,CAAC;MAC1C,OAAOC,SAAS;IAClB;IAEA,IAAIK,SAAS,GAAGJ,aAAa,CAACG,aAAa,CAAC,+BAA+B,CAAC;IAE5E,IAAI,CAACC,SAAS,EAAE;MACdA,SAAS,GAAGH,QAAQ,CAACI,aAAa,CAAC,KAAK,CAAC;MACzCD,SAAS,CAACE,SAAS,GAAG,qBAAqB;MAC3CN,aAAa,CAACO,WAAW,CAACH,SAAS,CAAC;IACtC;IAEA,OAAOA,SAAS;EAClB,CAAC,CAAC;EAEF,OAAO;IAAEP;EAAe,CAAC;AAC3B","ignoreList":[]}
1
+ {"version":3,"file":"teleport.mjs","names":["computed","warn","IN_BROWSER","useTeleport","target","teleportTarget","_target","undefined","targetElement","document","body","querySelector","container","createElement","className","appendChild"],"sources":["../../src/composables/teleport.ts"],"sourcesContent":["// Utilities\nimport { computed, warn } from 'vue'\nimport { IN_BROWSER } from '@/util'\n\nexport function useTeleport (target: () => (boolean | string | ParentNode)) {\n const teleportTarget = computed(() => {\n const _target = target()\n\n if (_target === true || !IN_BROWSER) return undefined\n\n const targetElement =\n _target === false ? document.body\n : typeof _target === 'string' ? document.querySelector(_target)\n : _target\n\n if (targetElement == null) {\n warn(`Unable to locate target ${_target}`)\n return undefined\n }\n\n let container = targetElement.querySelector(':scope > .v-overlay-container')\n\n if (!container) {\n container = document.createElement('div')\n container.className = 'v-overlay-container'\n targetElement.appendChild(container)\n }\n\n return container\n })\n\n return { teleportTarget }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,IAAI,QAAQ,KAAK;AAAA,SAC3BC,UAAU;AAEnB,OAAO,SAASC,WAAWA,CAAEC,MAA6C,EAAE;EAC1E,MAAMC,cAAc,GAAGL,QAAQ,CAAC,MAAM;IACpC,MAAMM,OAAO,GAAGF,MAAM,CAAC,CAAC;IAExB,IAAIE,OAAO,KAAK,IAAI,IAAI,CAACJ,UAAU,EAAE,OAAOK,SAAS;IAErD,MAAMC,aAAa,GACjBF,OAAO,KAAK,KAAK,GAAGG,QAAQ,CAACC,IAAI,GAC/B,OAAOJ,OAAO,KAAK,QAAQ,GAAGG,QAAQ,CAACE,aAAa,CAACL,OAAO,CAAC,GAC7DA,OAAO;IAEX,IAAIE,aAAa,IAAI,IAAI,EAAE;MACzBP,IAAI,CAAC,2BAA2BK,OAAO,EAAE,CAAC;MAC1C,OAAOC,SAAS;IAClB;IAEA,IAAIK,SAAS,GAAGJ,aAAa,CAACG,aAAa,CAAC,+BAA+B,CAAC;IAE5E,IAAI,CAACC,SAAS,EAAE;MACdA,SAAS,GAAGH,QAAQ,CAACI,aAAa,CAAC,KAAK,CAAC;MACzCD,SAAS,CAACE,SAAS,GAAG,qBAAqB;MAC3CN,aAAa,CAACO,WAAW,CAACH,SAAS,CAAC;IACtC;IAEA,OAAOA,SAAS;EAClB,CAAC,CAAC;EAEF,OAAO;IAAEP;EAAe,CAAC;AAC3B","ignoreList":[]}