vuetify 3.7.0 → 3.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/json/attributes.json +172 -172
- package/dist/json/importMap-labs.json +8 -8
- package/dist/json/importMap.json +160 -160
- package/dist/json/web-types.json +230 -219
- package/dist/vuetify-labs.css +1941 -1926
- package/dist/vuetify-labs.d.ts +4266 -2397
- package/dist/vuetify-labs.esm.js +107 -111
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +107 -111
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1521 -1506
- package/dist/vuetify.d.ts +1282 -901
- package/dist/vuetify.esm.js +79 -54
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +79 -54
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1087 -1086
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.mts +4 -1
- package/lib/blueprints/md1.d.mts +4 -1
- package/lib/blueprints/md2.d.mts +4 -1
- package/lib/blueprints/md3.d.mts +4 -1
- package/lib/components/VAlert/index.d.mts +14 -11
- package/lib/components/VAppBar/index.d.mts +22 -19
- package/lib/components/VAutocomplete/index.d.mts +158 -110
- package/lib/components/VAvatar/VAvatar.css +1 -1
- package/lib/components/VAvatar/_variables.scss +1 -1
- package/lib/components/VAvatar/index.d.mts +8 -5
- package/lib/components/VBadge/index.d.mts +8 -5
- package/lib/components/VBanner/index.d.mts +18 -15
- package/lib/components/VBottomNavigation/index.d.mts +4 -4
- package/lib/components/VBottomSheet/index.d.mts +11 -11
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +3 -5
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.mts +8 -5
- package/lib/components/VBtn/VBtn.mjs +3 -4
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/index.d.mts +18 -15
- package/lib/components/VBtnGroup/index.d.mts +4 -4
- package/lib/components/VBtnToggle/index.d.mts +4 -4
- package/lib/components/VCard/VCard.mjs +3 -4
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/index.d.mts +18 -15
- package/lib/components/VCarousel/index.d.mts +17 -14
- package/lib/components/VCheckbox/index.d.mts +8 -5
- package/lib/components/VChip/VChip.mjs +2 -3
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/index.d.mts +12 -9
- package/lib/components/VChipGroup/index.d.mts +8 -5
- package/lib/components/VColorPicker/index.d.mts +22 -22
- package/lib/components/VCombobox/index.d.mts +158 -110
- package/lib/components/VDataTable/index.d.mts +18 -15
- package/lib/components/VDatePicker/index.d.mts +16 -13
- package/lib/components/VDialog/VDialog.css +4 -1
- package/lib/components/VDialog/VDialog.mjs +3 -2
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +2 -1
- package/lib/components/VDialog/index.d.mts +89 -50
- package/lib/components/VEmptyState/index.d.mts +12 -9
- package/lib/components/VExpansionPanel/index.d.mts +8 -5
- package/lib/components/VFab/index.d.mts +22 -19
- package/lib/components/VField/index.d.mts +4 -1
- package/lib/components/VFileInput/index.d.mts +34 -7
- package/lib/components/VFooter/index.d.mts +4 -4
- package/lib/components/VForm/index.d.mts +96 -3
- package/lib/components/VIcon/index.d.mts +8 -5
- package/lib/components/VInfiniteScroll/VInfiniteScroll.css +13 -1
- package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs +6 -8
- package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
- package/lib/components/VInfiniteScroll/VInfiniteScroll.sass +10 -1
- package/lib/components/VInput/index.d.mts +6 -3
- package/lib/components/VItemGroup/index.d.mts +4 -4
- package/lib/components/VLabel/index.d.mts +4 -4
- package/lib/components/VList/VList.mjs +4 -2
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +8 -6
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/index.d.mts +84 -24
- package/lib/components/VMenu/index.d.mts +92 -50
- package/lib/components/VMessages/index.d.mts +8 -8
- package/lib/components/VNavigationDrawer/index.d.mts +18 -18
- package/lib/components/VOtpInput/index.d.mts +4 -4
- package/lib/components/VOverlay/index.d.mts +11 -11
- package/lib/components/VPagination/index.d.mts +8 -5
- package/lib/components/VProgressCircular/index.d.mts +4 -4
- package/lib/components/VRadio/index.d.mts +4 -1
- package/lib/components/VRadioGroup/index.d.mts +6 -3
- package/lib/components/VRangeSlider/index.d.mts +12 -9
- package/lib/components/VRating/index.d.mts +4 -1
- package/lib/components/VSelect/index.d.mts +158 -110
- package/lib/components/VSelectionControl/index.d.mts +4 -1
- package/lib/components/VSelectionControlGroup/index.d.mts +4 -1
- package/lib/components/VSheet/index.d.mts +10 -10
- package/lib/components/VSkeletonLoader/index.d.mts +4 -4
- package/lib/components/VSlideGroup/index.d.mts +4 -1
- package/lib/components/VSlider/index.d.mts +12 -9
- package/lib/components/VSnackbar/index.d.mts +95 -62
- package/lib/components/VSpeedDial/index.d.mts +11 -11
- package/lib/components/VStepper/index.d.mts +12 -12
- package/lib/components/VSwitch/index.d.mts +6 -3
- package/lib/components/VSystemBar/index.d.mts +4 -4
- package/lib/components/VTabs/index.d.mts +69 -54
- package/lib/components/VTextField/index.d.mts +47 -14
- package/lib/components/VTextarea/index.d.mts +38 -11
- package/lib/components/VTimeline/index.d.mts +8 -5
- package/lib/components/VToolbar/index.d.mts +4 -4
- package/lib/components/VTooltip/index.d.mts +78 -45
- package/lib/components/VWindow/index.d.mts +10 -7
- package/lib/components/index.d.mts +1204 -814
- package/lib/components/index.mjs +1 -1
- package/lib/components/index.mjs.map +1 -1
- package/lib/composables/directiveComponent.mjs +1 -1
- package/lib/composables/directiveComponent.mjs.map +1 -1
- package/lib/composables/forwardRefs.mjs +2 -0
- package/lib/composables/forwardRefs.mjs.map +1 -1
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/index.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +18 -6
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/nested/openStrategies.mjs +2 -4
- package/lib/composables/nested/openStrategies.mjs.map +1 -1
- package/lib/composables/router.mjs +19 -9
- package/lib/composables/router.mjs.map +1 -1
- package/lib/directives/tooltip/index.mjs +1 -1
- package/lib/directives/tooltip/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/iconsets/fa-svg.d.mts +4 -1
- package/lib/iconsets/fa.d.mts +4 -1
- package/lib/iconsets/fa4.d.mts +4 -1
- package/lib/iconsets/md.d.mts +4 -1
- package/lib/iconsets/mdi-svg.d.mts +4 -1
- package/lib/iconsets/mdi.d.mts +4 -1
- package/lib/index.d.mts +82 -88
- package/lib/labs/VDateInput/index.d.mts +16 -13
- package/lib/labs/VNumberInput/VNumberInput.mjs +7 -1
- package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
- package/lib/labs/VNumberInput/index.d.mts +2212 -730
- package/lib/labs/VPicker/index.d.mts +10 -10
- package/lib/labs/VSnackbarQueue/index.d.mts +128 -95
- package/lib/labs/VStepperVertical/index.d.mts +10 -7
- package/lib/labs/VTimePicker/VTimePicker.mjs +1 -1
- package/lib/labs/VTimePicker/VTimePicker.mjs.map +1 -1
- package/lib/labs/VTimePicker/VTimePickerControls.mjs +2 -2
- package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -1
- package/lib/labs/VTimePicker/index.d.mts +26 -26
- package/lib/labs/VTimePicker/util.mjs +5 -0
- package/lib/labs/VTimePicker/util.mjs.map +1 -0
- package/lib/labs/VTreeview/VTreeview.mjs +3 -12
- package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
- package/lib/labs/VTreeview/VTreeviewChildren.mjs +1 -1
- package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
- package/lib/labs/VTreeview/VTreeviewItem.mjs +9 -20
- package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
- package/lib/labs/VTreeview/index.d.mts +44 -41
- package/lib/labs/components.d.mts +2515 -1000
- package/lib/util/helpers.mjs +7 -3
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +7 -13
- package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs +0 -21
- package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +0 -1
- package/lib/components/VDatePicker/util/eventHelpers.mjs +0 -22
- package/lib/components/VDatePicker/util/eventHelpers.mjs.map +0 -1
- package/lib/components/VDatePicker/util/index.mjs +0 -9
- package/lib/components/VDatePicker/util/index.mjs.map +0 -1
- package/lib/components/VDatePicker/util/isDateAllowed.mjs +0 -7
- package/lib/components/VDatePicker/util/isDateAllowed.mjs.map +0 -1
- package/lib/components/VDatePicker/util/monthChange.mjs +0 -18
- package/lib/components/VDatePicker/util/monthChange.mjs.map +0 -1
- package/lib/components/VDatePicker/util/pad.mjs +0 -21
- package/lib/components/VDatePicker/util/pad.mjs.map +0 -1
- package/lib/components/VDatePicker/util/sanitizeDateString.mjs +0 -12
- package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +0 -1
- package/lib/components/VTreeview/VTreeview.mjs +0 -350
- package/lib/components/VTreeview/VTreeview.mjs.map +0 -1
- package/lib/components/VTreeview/VTreeview.sass +0 -128
- package/lib/components/VTreeview/VTreeviewNode.mjs +0 -321
- package/lib/components/VTreeview/VTreeviewNode.mjs.map +0 -1
- package/lib/components/VTreeview/_mixins.sass +0 -18
- package/lib/components/VTreeview/_variables.scss +0 -10
- package/lib/components/VTreeview/index.mjs +0 -10
- package/lib/components/VTreeview/index.mjs.map +0 -1
- package/lib/components/VTreeview/util/filterTreeItems.mjs +0 -25
- package/lib/components/VTreeview/util/filterTreeItems.mjs.map +0 -1
- package/lib/services/goto/easing-patterns.mjs +0 -27
- package/lib/services/goto/easing-patterns.mjs.map +0 -1
- package/lib/services/goto/index.mjs +0 -73
- package/lib/services/goto/index.mjs.map +0 -1
- package/lib/services/goto/util.mjs +0 -39
- package/lib/services/goto/util.mjs.map +0 -1
package/lib/components/index.mjs
CHANGED
|
@@ -17,7 +17,7 @@ export * from "./VCheckbox/index.mjs";
|
|
|
17
17
|
export * from "./VChip/index.mjs";
|
|
18
18
|
export * from "./VChipGroup/index.mjs";
|
|
19
19
|
export * from "./VCode/index.mjs";
|
|
20
|
-
export * from "./VColorPicker/index.mjs";
|
|
20
|
+
export * from "./VColorPicker/index.mjs";
|
|
21
21
|
export * from "./VCombobox/index.mjs";
|
|
22
22
|
export * from "./VConfirmEdit/index.mjs";
|
|
23
23
|
export * from "./VCounter/index.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/components/index.ts"],"sourcesContent":["export * from './VApp'\nexport * from './VAppBar'\nexport * from './VAlert'\nexport * from './VAutocomplete'\nexport * from './VAvatar'\nexport * from './VBadge'\nexport * from './VBanner'\nexport * from './VBottomNavigation'\nexport * from './VBottomSheet'\nexport * from './VBreadcrumbs'\nexport * from './VBtn'\nexport * from './VBtnGroup'\nexport * from './VBtnToggle'\n// export * from './VCalendar'\nexport * from './VCard'\nexport * from './VCarousel'\nexport * from './VCheckbox'\nexport * from './VChip'\nexport * from './VChipGroup'\nexport * from './VCode'\nexport * from './VColorPicker'\
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/components/index.ts"],"sourcesContent":["export * from './VApp'\nexport * from './VAppBar'\nexport * from './VAlert'\nexport * from './VAutocomplete'\nexport * from './VAvatar'\nexport * from './VBadge'\nexport * from './VBanner'\nexport * from './VBottomNavigation'\nexport * from './VBottomSheet'\nexport * from './VBreadcrumbs'\nexport * from './VBtn'\nexport * from './VBtnGroup'\nexport * from './VBtnToggle'\n// export * from './VCalendar'\nexport * from './VCard'\nexport * from './VCarousel'\nexport * from './VCheckbox'\nexport * from './VChip'\nexport * from './VChipGroup'\nexport * from './VCode'\nexport * from './VColorPicker'\nexport * from './VCombobox'\nexport * from './VConfirmEdit'\nexport * from './VCounter'\nexport * from './VDataIterator'\nexport * from './VDataTable'\nexport * from './VDatePicker'\nexport * from './VDefaultsProvider'\nexport * from './VDialog'\nexport * from './VDivider'\nexport * from './VEmptyState'\nexport * from './VExpansionPanel'\nexport * from './VFab'\nexport * from './VField'\nexport * from './VFileInput'\nexport * from './VFooter'\nexport * from './VForm'\nexport * from './VGrid'\nexport * from './VHover'\nexport * from './VIcon'\nexport * from './VImg'\nexport * from './VInfiniteScroll'\nexport * from './VInput'\nexport * from './VItemGroup'\nexport * from './VKbd'\nexport * from './VLabel'\nexport * from './VLayout'\nexport * from './VLazy'\nexport * from './VList'\nexport * from './VLocaleProvider'\nexport * from './VMain'\nexport * from './VMenu'\nexport * from './VMessages'\nexport * from './VNavigationDrawer'\nexport * from './VNoSsr'\nexport * from './VOtpInput'\n// export * from './VOverflowBtn'\nexport * from './VOverlay'\nexport * from './VPagination'\nexport * from './VParallax'\nexport * from './VProgressCircular'\nexport * from './VProgressLinear'\nexport * from './VRadio'\nexport * from './VRadioGroup'\nexport * from './VRangeSlider'\nexport * from './VRating'\nexport * from './VResponsive'\nexport * from './VSelect'\nexport * from './VSelectionControl'\nexport * from './VSelectionControlGroup'\nexport * from './VSheet'\nexport * from './VSkeletonLoader'\nexport * from './VSlideGroup'\nexport * from './VSlider'\nexport * from './VSnackbar'\nexport * from './VSparkline'\nexport * from './VSpeedDial'\nexport * from './VStepper'\nexport * from './VSwitch'\nexport * from './VSystemBar'\nexport * from './VTabs'\nexport * from './VTable'\nexport * from './VTextarea'\nexport * from './VTextField'\nexport * from './VThemeProvider'\nexport * from './VTimeline'\n// export * from './VTimePicker'\nexport * from './VToolbar'\nexport * from './VTooltip'\n// export * from './VTreeview'\nexport * from './VValidation'\nexport * from './VVirtualScroll'\nexport * from './VWindow'\nexport * from './transitions'\n"],"mappings":";;;;;;;;;;;;wCAaA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uCA2CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uCA8BA;AAAA;AAAA,sCAGA;AAAA;AAAA;AAAA;AAAA","ignoreList":[]}
|
|
@@ -19,7 +19,7 @@ function mountComponent(component, props) {
|
|
|
19
19
|
const value = isObject(binding.value) ? binding.value : {};
|
|
20
20
|
|
|
21
21
|
// Get the children from the props or directive value, or the element's children
|
|
22
|
-
const children = () => text ?? el.
|
|
22
|
+
const children = () => text ?? el.textContent;
|
|
23
23
|
|
|
24
24
|
// If vnode.ctx is the same as the instance, then we're bound to a plain element
|
|
25
25
|
// and need to find the nearest parent component instance to inherit provides from
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directiveComponent.mjs","names":["h","mergeProps","render","resolveComponent","isObject","useDirectiveComponent","component","props","concreteComponent","hook","mountComponent","mounted","updated","unmounted","el","binding","vnode","_props","text","value","children","
|
|
1
|
+
{"version":3,"file":"directiveComponent.mjs","names":["h","mergeProps","render","resolveComponent","isObject","useDirectiveComponent","component","props","concreteComponent","hook","mountComponent","mounted","updated","unmounted","el","binding","vnode","_props","text","value","children","textContent","provides","ctx","instance","$","findComponentParent","node","appContext","Object","assign","create","root","stack","Set","walk","child","add","result","suspense","ssContent","Array","isArray","subTree","delete","Error","from","reverse"],"sources":["../../src/composables/directiveComponent.ts"],"sourcesContent":["// Utilities\nimport { h, mergeProps, render, resolveComponent } from 'vue'\nimport { isObject } from '@/util'\n\n// Types\nimport type {\n Component,\n ComponentInternalInstance,\n ComponentPublicInstance,\n ConcreteComponent,\n DirectiveBinding,\n ObjectDirective,\n VNode,\n} from 'vue'\nimport type { ComponentInstance } from '@/util'\n\ntype ExcludeProps =\n | 'v-slots'\n | `v-slot:${string}`\n | `on${Uppercase<string>}${string}`\n | 'key'\n | 'ref'\n | 'ref_for'\n | 'ref_key'\n | '$children'\n\ndeclare const CustomDirectiveSymbol: unique symbol\ntype DirectiveHook<B extends DirectiveBinding> = (el: any, binding: B, vnode: VNode<any, any>, prevVNode: VNode<any, any>) => void\nexport interface CustomDirective<B extends DirectiveBinding = DirectiveBinding> {\n created?: DirectiveHook<B>\n beforeMount?: DirectiveHook<B>\n mounted?: DirectiveHook<B>\n beforeUpdate?: DirectiveHook<B>\n updated?: DirectiveHook<B>\n beforeUnmount?: DirectiveHook<B>\n unmounted?: DirectiveHook<B>\n [CustomDirectiveSymbol]: true\n}\n\nexport function useDirectiveComponent <\n Binding extends DirectiveBinding,\n> (component: string | Component, props?: (binding: Binding) => Record<string, any>): CustomDirective<Binding>\nexport function useDirectiveComponent <\n C extends Component,\n Props = Omit<ComponentInstance<C>['$props'], ExcludeProps>\n> (component: string | C, props?: Record<string, any>): ObjectDirective<any, Props>\nexport function useDirectiveComponent (\n component: string | Component,\n props?: Record<string, any> | ((binding: DirectiveBinding) => Record<string, any>)\n): ObjectDirective | CustomDirective {\n const concreteComponent = (typeof component === 'string'\n ? resolveComponent(component)\n : component) as ConcreteComponent\n\n const hook = mountComponent(concreteComponent, props)\n\n return {\n mounted: hook,\n updated: hook,\n unmounted (el: HTMLElement) {\n render(null, el)\n },\n }\n}\n\nfunction mountComponent (component: ConcreteComponent, props?: Record<string, any> | ((binding: DirectiveBinding) => Record<string, any>)) {\n return function (el: HTMLElement, binding: DirectiveBinding, vnode: VNode) {\n const _props = typeof props === 'function' ? props(binding) : props\n const text = binding.value?.text ?? binding.value ?? _props?.text\n const value = isObject(binding.value) ? binding.value : {}\n\n // Get the children from the props or directive value, or the element's children\n const children = () => text ?? el.textContent\n\n // If vnode.ctx is the same as the instance, then we're bound to a plain element\n // and need to find the nearest parent component instance to inherit provides from\n const provides = (vnode.ctx === binding.instance!.$\n ? findComponentParent(vnode, binding.instance!.$)?.provides\n : vnode.ctx?.provides) ?? binding.instance!.$.provides\n\n const node = h(component, mergeProps(_props, value), children)\n node.appContext = Object.assign(\n Object.create(null),\n (binding.instance as ComponentPublicInstance).$.appContext,\n { provides }\n )\n\n render(node, el)\n }\n}\n\nfunction findComponentParent (vnode: VNode, root: ComponentInternalInstance): ComponentInternalInstance | null {\n // Walk the tree from root until we find the child vnode\n const stack = new Set<VNode>()\n const walk = (children: VNode[]): boolean => {\n for (const child of children) {\n if (!child) continue\n\n if (child === vnode) {\n return true\n }\n\n stack.add(child)\n let result\n if (child.suspense) {\n result = walk([child.ssContent!])\n } else if (Array.isArray(child.children)) {\n result = walk(child.children as VNode[])\n } else if (child.component?.vnode) {\n result = walk([child.component?.subTree])\n }\n if (result) {\n return result\n }\n stack.delete(child)\n }\n\n return false\n }\n if (!walk([root.subTree])) {\n throw new Error('Could not find original vnode')\n }\n\n // Return the first component parent\n const result = Array.from(stack).reverse()\n for (const child of result) {\n if (child.component) {\n return child.component\n }\n }\n return root\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forwardRefs.mjs","names":["Refs","Symbol","getDescriptor","obj","key","currentObj","descriptor","Reflect","getOwnPropertyDescriptor","Object","getPrototypeOf","undefined","forwardRefs","target","_len","arguments","length","refs","Array","_key","Proxy","get","has","startsWith","ref","value","val","bind","set","_","setupState","childRefs","queue","slice","shift","push"],"sources":["../../src/composables/forwardRefs.ts"],"sourcesContent":["// Types\nimport type { ComponentPublicInstance, Ref, UnwrapRef } from 'vue'\nimport type { UnionToIntersection } from '@/util'\n\nconst Refs = Symbol('Forwarded refs')\n\n/** Omit properties starting with P */\ntype OmitPrefix
|
|
1
|
+
{"version":3,"file":"forwardRefs.mjs","names":["Refs","Symbol","getDescriptor","obj","key","currentObj","descriptor","Reflect","getOwnPropertyDescriptor","Object","getPrototypeOf","undefined","forwardRefs","target","_len","arguments","length","refs","Array","_key","Proxy","get","has","startsWith","ref","value","val","bind","set","_","setupState","childRefs","queue","slice","shift","push"],"sources":["../../src/composables/forwardRefs.ts"],"sourcesContent":["// Types\nimport type { ComponentOptionsBase, ComponentPublicInstance, Ref, UnwrapRef } from 'vue'\nimport type { UnionToIntersection } from '@/util'\n\nconst Refs = Symbol('Forwarded refs')\n\n/** Omit properties starting with P */\ntype OmitPrefix<\n T,\n P extends string,\n E = Extract<keyof T, `${P}${any}`>,\n> = [E] extends [never] ? T : Omit<T, `${P}${any}`>\ntype OmitPrivate<T> = OmitPrefix<T, '$'>\n\n/** Omit keyof $props from T */\ntype OmitProps<T> = T extends { $props: any } ? Omit<T, keyof T['$props']> : T\n\nfunction getDescriptor (obj: any, key: PropertyKey) {\n let currentObj = obj\n while (currentObj) {\n const descriptor = Reflect.getOwnPropertyDescriptor(currentObj, key)\n if (descriptor) return descriptor\n currentObj = Object.getPrototypeOf(currentObj)\n }\n return undefined\n}\n\nexport function forwardRefs<\n T extends {},\n U extends Ref<HTMLElement | Omit<ComponentPublicInstance, '$emit' | '$slots'> | undefined>[],\n UU = { [K in keyof U]: NonNullable<UnwrapRef<U[K]>> }[number],\n UC = { [K in keyof U]: OmitPrivate<OmitProps<NonNullable<UnwrapRef<U[K]>>>> }[number],\n R = T & UnionToIntersection<UC> & {\n _allExposed: T | (\n UU extends { $options: infer O }\n ? O extends ComponentOptionsBase<any, infer E, any, any, any, any, any, any>\n ? E\n : never\n : never\n )\n }\n> (target: T, ...refs: U): R {\n (target as any)[Refs] = refs\n\n return new Proxy(target, {\n get (target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key)\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return\n\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n const val = Reflect.get(ref.value, key)\n return typeof val === 'function'\n ? val.bind(ref.value)\n : val\n }\n }\n },\n has (target, key) {\n if (Reflect.has(target, key)) {\n return true\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false\n\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return true\n }\n }\n return false\n },\n set (target, key, value) {\n if (Reflect.has(target, key)) {\n return Reflect.set(target, key, value)\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false\n\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return Reflect.set(ref.value, key, value)\n }\n }\n\n return false\n },\n getOwnPropertyDescriptor (target, key) {\n const descriptor = Reflect.getOwnPropertyDescriptor(target, key)\n if (descriptor) return descriptor\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return\n\n // Check each ref's own properties\n for (const ref of refs) {\n if (!ref.value) continue\n const descriptor = getDescriptor(ref.value, key) ?? ('_' in ref.value ? getDescriptor(ref.value._?.setupState, key) : undefined)\n if (descriptor) return descriptor\n }\n\n // Recursive search up each ref's prototype\n for (const ref of refs) {\n const childRefs = ref.value && (ref.value as any)[Refs]\n if (!childRefs) continue\n const queue = childRefs.slice()\n while (queue.length) {\n const ref = queue.shift()\n const descriptor = getDescriptor(ref.value, key)\n if (descriptor) return descriptor\n const childRefs = ref.value && (ref.value as any)[Refs]\n if (childRefs) queue.push(...childRefs)\n }\n }\n\n return undefined\n },\n }) as any\n}\n"],"mappings":"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","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 { ComponentPublicInstance, FunctionalComponent, InjectionKey, PropType, Ref } from 'vue'\n\nexport type JSXComponent<Props = any> =\n | { new (): ComponentPublicInstance<Props> }\n | FunctionalComponent<Props>\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":"index.mjs","names":["useDate","useDefaults","useDisplay","useGoTo","useLayout","useLocale","useRtl","useTheme"],"sources":["../../src/composables/index.ts"],"sourcesContent":["/*\n * PUBLIC INTERFACES ONLY\n * Imports in our code should be to the composable directly, not this file\n */\n\nexport { useDate } from './date'\nexport { useDefaults } from './defaults'\nexport { useDisplay } from './display'\nexport { useGoTo } from './goto'\nexport { useLayout } from './layout'\nexport { useLocale, useRtl } from './locale'\nexport { useTheme } from './theme'\n\nexport type { DateInstance } from './date'\nexport type { DefaultsInstance } from './defaults'\nexport type { DisplayBreakpoint, DisplayInstance, DisplayThresholds } from './display'\nexport type { SubmitEventPromise } from './form'\nexport type { GoToInstance } from './goto'\nexport type { IconAliases, IconProps, IconSet, IconOptions } from './icons'\nexport type { LocaleInstance, LocaleMessages, RtlInstance, LocaleOptions, RtlOptions } from './locale'\nexport type { ThemeDefinition, ThemeInstance } from './theme'\n"],"mappings":"AAAA;AACA;AACA;AACA;AAHA,SAKSA,OAAO;AAAA,SACPC,WAAW;AAAA,SACXC,UAAU;AAAA,SACVC,OAAO;AAAA,SACPC,SAAS;AAAA,SACTC,SAAS,EAAEC,MAAM;AAAA,SACjBC,QAAQ","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["useDate","useDefaults","useDisplay","useGoTo","useLayout","useLocale","useRtl","useTheme"],"sources":["../../src/composables/index.ts"],"sourcesContent":["/*\n * PUBLIC INTERFACES ONLY\n * Imports in our code should be to the composable directly, not this file\n */\n\nexport { useDate } from './date'\nexport { useDefaults } from './defaults'\nexport { useDisplay } from './display'\nexport { useGoTo } from './goto'\nexport { useLayout } from './layout'\nexport { useLocale, useRtl } from './locale'\nexport { useTheme } from './theme'\n\nexport type { DateInstance } from './date'\nexport type { DefaultsInstance } from './defaults'\nexport type { DisplayBreakpoint, DisplayInstance, DisplayThresholds } from './display'\nexport type { SubmitEventPromise } from './form'\nexport type { GoToInstance } from './goto'\nexport type { IconAliases, IconProps, IconSet, IconOptions, JSXComponent } from './icons'\nexport type { LocaleInstance, LocaleMessages, RtlInstance, LocaleOptions, RtlOptions } from './locale'\nexport type { ThemeDefinition, ThemeInstance } from './theme'\n"],"mappings":"AAAA;AACA;AACA;AACA;AAHA,SAKSA,OAAO;AAAA,SACPC,WAAW;AAAA,SACXC,UAAU;AAAA,SACVC,OAAO;AAAA,SACPC,SAAS;AAAA,SACTC,SAAS,EAAEC,MAAM;AAAA,SACjBC,QAAQ","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@ import { computed, inject, onBeforeUnmount, provide, ref, shallowRef, toRaw, toR
|
|
|
4
4
|
import { independentActiveStrategy, independentSingleActiveStrategy, leafActiveStrategy, leafSingleActiveStrategy } from "./activeStrategies.mjs";
|
|
5
5
|
import { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from "./openStrategies.mjs";
|
|
6
6
|
import { classicSelectStrategy, independentSelectStrategy, independentSingleSelectStrategy, leafSelectStrategy, leafSingleSelectStrategy } from "./selectStrategies.mjs";
|
|
7
|
-
import { getCurrentInstance, getUid, propsFactory } from "../../util/index.mjs"; // Types
|
|
7
|
+
import { consoleError, getCurrentInstance, getUid, propsFactory } from "../../util/index.mjs"; // Types
|
|
8
8
|
export const VNestedSymbol = Symbol.for('vuetify:nested');
|
|
9
9
|
export const emptyNested = {
|
|
10
10
|
id: shallowRef(),
|
|
@@ -22,7 +22,8 @@ export const emptyNested = {
|
|
|
22
22
|
opened: ref(new Set()),
|
|
23
23
|
activated: ref(new Set()),
|
|
24
24
|
selected: ref(new Map()),
|
|
25
|
-
selectedValues: ref([])
|
|
25
|
+
selectedValues: ref([]),
|
|
26
|
+
getPath: () => []
|
|
26
27
|
}
|
|
27
28
|
};
|
|
28
29
|
export const makeNestedProps = propsFactory({
|
|
@@ -40,7 +41,7 @@ export const useNested = props => {
|
|
|
40
41
|
let isUnmounted = false;
|
|
41
42
|
const children = ref(new Map());
|
|
42
43
|
const parents = ref(new Map());
|
|
43
|
-
const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(
|
|
44
|
+
const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);
|
|
44
45
|
const activeStrategy = computed(() => {
|
|
45
46
|
if (typeof props.activeStrategy === 'object') return props.activeStrategy;
|
|
46
47
|
if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);
|
|
@@ -100,6 +101,7 @@ export const useNested = props => {
|
|
|
100
101
|
return path;
|
|
101
102
|
}
|
|
102
103
|
const vm = getCurrentInstance('nested');
|
|
104
|
+
const nodeIds = new Set();
|
|
103
105
|
const nested = {
|
|
104
106
|
id: shallowRef(),
|
|
105
107
|
root: {
|
|
@@ -116,6 +118,14 @@ export const useNested = props => {
|
|
|
116
118
|
return arr;
|
|
117
119
|
}),
|
|
118
120
|
register: (id, parentId, isGroup) => {
|
|
121
|
+
if (nodeIds.has(id)) {
|
|
122
|
+
const path = getPath(id).join(' -> ');
|
|
123
|
+
const newPath = getPath(parentId).concat(id).join(' -> ');
|
|
124
|
+
consoleError(`Multiple nodes with the same ID\n\t${path}\n\t${newPath}`);
|
|
125
|
+
return;
|
|
126
|
+
} else {
|
|
127
|
+
nodeIds.add(id);
|
|
128
|
+
}
|
|
119
129
|
parentId && id !== parentId && parents.value.set(id, parentId);
|
|
120
130
|
isGroup && children.value.set(id, []);
|
|
121
131
|
if (parentId != null) {
|
|
@@ -124,6 +134,7 @@ export const useNested = props => {
|
|
|
124
134
|
},
|
|
125
135
|
unregister: id => {
|
|
126
136
|
if (isUnmounted) return;
|
|
137
|
+
nodeIds.delete(id);
|
|
127
138
|
children.value.delete(id);
|
|
128
139
|
const parent = parents.value.get(id);
|
|
129
140
|
if (parent) {
|
|
@@ -200,7 +211,8 @@ export const useNested = props => {
|
|
|
200
211
|
newActivated && (activated.value = newActivated);
|
|
201
212
|
},
|
|
202
213
|
children,
|
|
203
|
-
parents
|
|
214
|
+
parents,
|
|
215
|
+
getPath
|
|
204
216
|
}
|
|
205
217
|
};
|
|
206
218
|
provide(VNestedSymbol, nested);
|
|
@@ -213,9 +225,9 @@ export const useNestedItem = (id, isGroup) => {
|
|
|
213
225
|
const item = {
|
|
214
226
|
...parent,
|
|
215
227
|
id: computedId,
|
|
216
|
-
open: (open, e) => parent.root.open(
|
|
228
|
+
open: (open, e) => parent.root.open(computedId.value, open, e),
|
|
217
229
|
openOnSelect: (open, e) => parent.root.openOnSelect(computedId.value, open, e),
|
|
218
|
-
isOpen: computed(() => parent.root.opened.value.has(
|
|
230
|
+
isOpen: computed(() => parent.root.opened.value.has(computedId.value)),
|
|
219
231
|
parent: computed(() => parent.root.parents.value.get(computedId.value)),
|
|
220
232
|
activate: (activated, e) => parent.root.activate(computedId.value, activated, e),
|
|
221
233
|
isActivated: computed(() => parent.root.activated.value.has(toRaw(computedId.value))),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nested.mjs","names":["useProxiedModel","computed","inject","onBeforeUnmount","provide","ref","shallowRef","toRaw","toRef","independentActiveStrategy","independentSingleActiveStrategy","leafActiveStrategy","leafSingleActiveStrategy","listOpenStrategy","multipleOpenStrategy","singleOpenStrategy","classicSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","getCurrentInstance","getUid","propsFactory","VNestedSymbol","Symbol","for","emptyNested","id","root","register","unregister","parents","Map","children","open","openOnSelect","activate","select","activatable","selectable","opened","Set","activated","selected","selectedValues","makeNestedProps","Boolean","activeStrategy","String","Function","Object","selectStrategy","openStrategy","mandatory","useNested","props","isUnmounted","v","values","value","in","out","getPath","path","parent","unshift","get","vm","nested","arr","key","entries","push","parentId","isGroup","set","delete","list","filter","child","event","emit","newOpened","newSelected","newActivated","useNestedItem","uidSymbol","computedId","undefined","item","e","isOpen","has","isActivated","isSelected","isIndeterminate","isLeaf","isGroupActivator","useNestedGroupActivator"],"sources":["../../../src/composables/nested/nested.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, provide, ref, shallowRef, toRaw, toRef } from 'vue'\nimport {\n independentActiveStrategy,\n independentSingleActiveStrategy,\n leafActiveStrategy,\n leafSingleActiveStrategy,\n} from './activeStrategies'\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport {\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n} from './selectStrategies'\nimport { getCurrentInstance, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { ActiveStrategy } from './activeStrategies'\nimport type { OpenStrategy } from './openStrategies'\nimport type { SelectStrategy } from './selectStrategies'\nimport type { EventProp } from '@/util'\n\nexport type ActiveStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | ActiveStrategy\n | ((mandatory: boolean) => ActiveStrategy)\nexport type SelectStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | 'classic'\n | SelectStrategy\n | ((mandatory: boolean) => SelectStrategy)\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n activatable: boolean\n selectable: boolean\n activeStrategy: ActiveStrategyProp | undefined\n selectStrategy: SelectStrategyProp | undefined\n openStrategy: OpenStrategyProp | undefined\n activated: any\n selected: any\n opened: any\n mandatory: boolean\n 'onUpdate:activated': EventProp<[any]> | undefined\n 'onUpdate:selected': EventProp<[any]> | undefined\n 'onUpdate:opened': EventProp<[any]> | undefined\n}\n\ntype NestedProvide = {\n id: Ref<unknown>\n isGroupActivator?: boolean\n root: {\n children: Ref<Map<unknown, unknown[]>>\n parents: Ref<Map<unknown, unknown>>\n activatable: Ref<boolean>\n selectable: Ref<boolean>\n opened: Ref<Set<unknown>>\n activated: Ref<Set<unknown>>\n selected: Ref<Map<unknown, 'on' | 'off' | 'indeterminate'>>\n selectedValues: Ref<unknown[]>\n register: (id: unknown, parentId: unknown, isGroup?: boolean) => void\n unregister: (id: unknown) => void\n open: (id: unknown, value: boolean, event?: Event) => void\n activate: (id: unknown, value: boolean, event?: Event) => void\n select: (id: unknown, value: boolean, event?: Event) => void\n openOnSelect: (id: unknown, value: boolean, event?: Event) => void\n }\n}\n\nexport const VNestedSymbol: InjectionKey<NestedProvide> = Symbol.for('vuetify:nested')\n\nexport const emptyNested: NestedProvide = {\n id: shallowRef(),\n root: {\n register: () => null,\n unregister: () => null,\n parents: ref(new Map()),\n children: ref(new Map()),\n open: () => null,\n openOnSelect: () => null,\n activate: () => null,\n select: () => null,\n activatable: ref(false),\n selectable: ref(false),\n opened: ref(new Set()),\n activated: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n },\n}\n\nexport const makeNestedProps = propsFactory({\n activatable: Boolean,\n selectable: Boolean,\n activeStrategy: [String, Function, Object] as PropType<ActiveStrategyProp>,\n selectStrategy: [String, Function, Object] as PropType<SelectStrategyProp>,\n openStrategy: [String, Object] as PropType<OpenStrategyProp>,\n opened: null,\n activated: null,\n selected: null,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = ref(new Map<unknown, unknown[]>())\n const parents = ref(new Map<unknown, unknown>())\n\n const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(toRaw(v)), v => [...v.values()])\n\n const activeStrategy = computed(() => {\n if (typeof props.activeStrategy === 'object') return props.activeStrategy\n if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory)\n\n switch (props.activeStrategy) {\n case 'leaf': return leafActiveStrategy(props.mandatory)\n case 'single-leaf': return leafSingleActiveStrategy(props.mandatory)\n case 'independent': return independentActiveStrategy(props.mandatory)\n case 'single-independent':\n default: return independentSingleActiveStrategy(props.mandatory)\n }\n })\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n if (typeof props.selectStrategy === 'function') return props.selectStrategy(props.mandatory)\n\n switch (props.selectStrategy) {\n case 'single-leaf': return leafSingleSelectStrategy(props.mandatory)\n case 'leaf': return leafSelectStrategy(props.mandatory)\n case 'independent': return independentSelectStrategy(props.mandatory)\n case 'single-independent': return independentSingleSelectStrategy(props.mandatory)\n case 'classic':\n default: return classicSelectStrategy(props.mandatory)\n }\n })\n\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'object') return props.openStrategy\n\n switch (props.openStrategy) {\n case 'list': return listOpenStrategy\n case 'single': return singleOpenStrategy\n case 'multiple':\n default: return multipleOpenStrategy\n }\n })\n\n const activated = useProxiedModel(\n props,\n 'activated',\n props.activated,\n v => activeStrategy.value.in(v, children.value, parents.value),\n v => activeStrategy.value.out(v, children.value, parents.value),\n )\n const selected = useProxiedModel(\n props,\n 'selected',\n props.selected,\n v => selectStrategy.value.in(v, children.value, parents.value),\n v => selectStrategy.value.out(v, children.value, parents.value),\n )\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function getPath (id: unknown) {\n const path: unknown[] = []\n let parent: unknown = id\n\n while (parent != null) {\n path.unshift(parent)\n parent = parents.value.get(parent)\n }\n\n return path\n }\n\n const vm = getCurrentInstance('nested')\n\n const nested: NestedProvide = {\n id: shallowRef(),\n root: {\n opened,\n activatable: toRef(props, 'activatable'),\n selectable: toRef(props, 'selectable'),\n activated,\n selected,\n selectedValues: computed(() => {\n const arr = []\n\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n }),\n register: (id, parentId, isGroup) => {\n parentId && id !== parentId && parents.value.set(id, parentId)\n\n isGroup && children.value.set(id, [])\n\n if (parentId != null) {\n children.value.set(parentId, [...children.value.get(parentId) || [], id])\n }\n },\n unregister: id => {\n if (isUnmounted) return\n\n children.value.delete(id)\n const parent = parents.value.get(id)\n if (parent) {\n const list = children.value.get(parent) ?? []\n children.value.set(parent, list.filter(child => child !== id))\n }\n parents.value.delete(id)\n },\n open: (id, value, event) => {\n vm.emit('click:open', { id, value, path: getPath(id), event })\n\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newOpened && (opened.value = newOpened)\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newOpened && (opened.value = newOpened)\n },\n select: (id, value, event) => {\n vm.emit('click:select', { id, value, path: getPath(id), event })\n\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newSelected && (selected.value = newSelected)\n\n nested.root.openOnSelect(id, value, event)\n },\n activate: (id, value, event) => {\n if (!props.activatable) {\n return nested.root.select(id, true, event)\n }\n\n vm.emit('click:activate', { id, value, path: getPath(id), event })\n\n const newActivated = activeStrategy.value.activate({\n id,\n value,\n activated: new Set(activated.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newActivated && (activated.value = newActivated)\n },\n children,\n parents,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: Ref<unknown>, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const uidSymbol = Symbol(getUid())\n const computedId = computed(() => id.value !== undefined ? id.value : uidSymbol)\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(toRaw(computedId.value), open, e),\n openOnSelect: (open: boolean, e?: Event) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(toRaw(computedId.value))),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n activate: (activated: boolean, e?: Event) => parent.root.activate(computedId.value, activated, e),\n isActivated: computed(() => parent.root.activated.value.has(toRaw(computedId.value))),\n select: (selected: boolean, e?: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator,\n }\n\n !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup)\n\n onBeforeUnmount(() => {\n !parent.isGroupActivator && parent.root.unregister(computedId.value)\n })\n\n isGroup && provide(VNestedSymbol, item)\n\n return item\n}\n\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n provide(VNestedSymbol, { ...parent, isGroupActivator: true })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"nested.mjs","names":["useProxiedModel","computed","inject","onBeforeUnmount","provide","ref","shallowRef","toRaw","toRef","independentActiveStrategy","independentSingleActiveStrategy","leafActiveStrategy","leafSingleActiveStrategy","listOpenStrategy","multipleOpenStrategy","singleOpenStrategy","classicSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","consoleError","getCurrentInstance","getUid","propsFactory","VNestedSymbol","Symbol","for","emptyNested","id","root","register","unregister","parents","Map","children","open","openOnSelect","activate","select","activatable","selectable","opened","Set","activated","selected","selectedValues","getPath","makeNestedProps","Boolean","activeStrategy","String","Function","Object","selectStrategy","openStrategy","mandatory","useNested","props","isUnmounted","v","values","value","in","out","path","parent","unshift","get","vm","nodeIds","nested","arr","key","entries","push","parentId","isGroup","has","join","newPath","concat","add","set","delete","list","filter","child","event","emit","newOpened","newSelected","newActivated","useNestedItem","uidSymbol","computedId","undefined","item","e","isOpen","isActivated","isSelected","isIndeterminate","isLeaf","isGroupActivator","useNestedGroupActivator"],"sources":["../../../src/composables/nested/nested.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, provide, ref, shallowRef, toRaw, toRef } from 'vue'\nimport {\n independentActiveStrategy,\n independentSingleActiveStrategy,\n leafActiveStrategy,\n leafSingleActiveStrategy,\n} from './activeStrategies'\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport {\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n} from './selectStrategies'\nimport { consoleError, getCurrentInstance, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { ActiveStrategy } from './activeStrategies'\nimport type { OpenStrategy } from './openStrategies'\nimport type { SelectStrategy } from './selectStrategies'\nimport type { EventProp } from '@/util'\n\nexport type ActiveStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | ActiveStrategy\n | ((mandatory: boolean) => ActiveStrategy)\nexport type SelectStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | 'classic'\n | SelectStrategy\n | ((mandatory: boolean) => SelectStrategy)\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n activatable: boolean\n selectable: boolean\n activeStrategy: ActiveStrategyProp | undefined\n selectStrategy: SelectStrategyProp | undefined\n openStrategy: OpenStrategyProp | undefined\n activated: any\n selected: any\n opened: any\n mandatory: boolean\n 'onUpdate:activated': EventProp<[any]> | undefined\n 'onUpdate:selected': EventProp<[any]> | undefined\n 'onUpdate:opened': EventProp<[any]> | undefined\n}\n\ntype NestedProvide = {\n id: Ref<unknown>\n isGroupActivator?: boolean\n root: {\n children: Ref<Map<unknown, unknown[]>>\n parents: Ref<Map<unknown, unknown>>\n activatable: Ref<boolean>\n selectable: Ref<boolean>\n opened: Ref<Set<unknown>>\n activated: Ref<Set<unknown>>\n selected: Ref<Map<unknown, 'on' | 'off' | 'indeterminate'>>\n selectedValues: Ref<unknown[]>\n register: (id: unknown, parentId: unknown, isGroup?: boolean) => void\n unregister: (id: unknown) => void\n open: (id: unknown, value: boolean, event?: Event) => void\n activate: (id: unknown, value: boolean, event?: Event) => void\n select: (id: unknown, value: boolean, event?: Event) => void\n openOnSelect: (id: unknown, value: boolean, event?: Event) => void\n getPath: (id: unknown) => unknown[]\n }\n}\n\nexport const VNestedSymbol: InjectionKey<NestedProvide> = Symbol.for('vuetify:nested')\n\nexport const emptyNested: NestedProvide = {\n id: shallowRef(),\n root: {\n register: () => null,\n unregister: () => null,\n parents: ref(new Map()),\n children: ref(new Map()),\n open: () => null,\n openOnSelect: () => null,\n activate: () => null,\n select: () => null,\n activatable: ref(false),\n selectable: ref(false),\n opened: ref(new Set()),\n activated: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n getPath: () => [],\n },\n}\n\nexport const makeNestedProps = propsFactory({\n activatable: Boolean,\n selectable: Boolean,\n activeStrategy: [String, Function, Object] as PropType<ActiveStrategyProp>,\n selectStrategy: [String, Function, Object] as PropType<SelectStrategyProp>,\n openStrategy: [String, Object] as PropType<OpenStrategyProp>,\n opened: null,\n activated: null,\n selected: null,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = ref(new Map<unknown, unknown[]>())\n const parents = ref(new Map<unknown, unknown>())\n\n const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()])\n\n const activeStrategy = computed(() => {\n if (typeof props.activeStrategy === 'object') return props.activeStrategy\n if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory)\n\n switch (props.activeStrategy) {\n case 'leaf': return leafActiveStrategy(props.mandatory)\n case 'single-leaf': return leafSingleActiveStrategy(props.mandatory)\n case 'independent': return independentActiveStrategy(props.mandatory)\n case 'single-independent':\n default: return independentSingleActiveStrategy(props.mandatory)\n }\n })\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n if (typeof props.selectStrategy === 'function') return props.selectStrategy(props.mandatory)\n\n switch (props.selectStrategy) {\n case 'single-leaf': return leafSingleSelectStrategy(props.mandatory)\n case 'leaf': return leafSelectStrategy(props.mandatory)\n case 'independent': return independentSelectStrategy(props.mandatory)\n case 'single-independent': return independentSingleSelectStrategy(props.mandatory)\n case 'classic':\n default: return classicSelectStrategy(props.mandatory)\n }\n })\n\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'object') return props.openStrategy\n\n switch (props.openStrategy) {\n case 'list': return listOpenStrategy\n case 'single': return singleOpenStrategy\n case 'multiple':\n default: return multipleOpenStrategy\n }\n })\n\n const activated = useProxiedModel(\n props,\n 'activated',\n props.activated,\n v => activeStrategy.value.in(v, children.value, parents.value),\n v => activeStrategy.value.out(v, children.value, parents.value),\n )\n const selected = useProxiedModel(\n props,\n 'selected',\n props.selected,\n v => selectStrategy.value.in(v, children.value, parents.value),\n v => selectStrategy.value.out(v, children.value, parents.value),\n )\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function getPath (id: unknown) {\n const path: unknown[] = []\n let parent: unknown = id\n\n while (parent != null) {\n path.unshift(parent)\n parent = parents.value.get(parent)\n }\n\n return path\n }\n\n const vm = getCurrentInstance('nested')\n\n const nodeIds = new Set<unknown>()\n\n const nested: NestedProvide = {\n id: shallowRef(),\n root: {\n opened,\n activatable: toRef(props, 'activatable'),\n selectable: toRef(props, 'selectable'),\n activated,\n selected,\n selectedValues: computed(() => {\n const arr = []\n\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n }),\n register: (id, parentId, isGroup) => {\n if (nodeIds.has(id)) {\n const path = getPath(id).join(' -> ')\n const newPath = getPath(parentId).concat(id).join(' -> ')\n consoleError(`Multiple nodes with the same ID\\n\\t${path}\\n\\t${newPath}`)\n return\n } else {\n nodeIds.add(id)\n }\n\n parentId && id !== parentId && parents.value.set(id, parentId)\n\n isGroup && children.value.set(id, [])\n\n if (parentId != null) {\n children.value.set(parentId, [...children.value.get(parentId) || [], id])\n }\n },\n unregister: id => {\n if (isUnmounted) return\n\n nodeIds.delete(id)\n children.value.delete(id)\n const parent = parents.value.get(id)\n if (parent) {\n const list = children.value.get(parent) ?? []\n children.value.set(parent, list.filter(child => child !== id))\n }\n parents.value.delete(id)\n },\n open: (id, value, event) => {\n vm.emit('click:open', { id, value, path: getPath(id), event })\n\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newOpened && (opened.value = newOpened)\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newOpened && (opened.value = newOpened)\n },\n select: (id, value, event) => {\n vm.emit('click:select', { id, value, path: getPath(id), event })\n\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newSelected && (selected.value = newSelected)\n\n nested.root.openOnSelect(id, value, event)\n },\n activate: (id, value, event) => {\n if (!props.activatable) {\n return nested.root.select(id, true, event)\n }\n\n vm.emit('click:activate', { id, value, path: getPath(id), event })\n\n const newActivated = activeStrategy.value.activate({\n id,\n value,\n activated: new Set(activated.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newActivated && (activated.value = newActivated)\n },\n children,\n parents,\n getPath,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: Ref<unknown>, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const uidSymbol = Symbol(getUid())\n const computedId = computed(() => id.value !== undefined ? id.value : uidSymbol)\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(computedId.value, open, e),\n openOnSelect: (open: boolean, e?: Event) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n activate: (activated: boolean, e?: Event) => parent.root.activate(computedId.value, activated, e),\n isActivated: computed(() => parent.root.activated.value.has(toRaw(computedId.value))),\n select: (selected: boolean, e?: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator,\n }\n\n !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup)\n\n onBeforeUnmount(() => {\n !parent.isGroupActivator && parent.root.unregister(computedId.value)\n })\n\n isGroup && provide(VNestedSymbol, item)\n\n return item\n}\n\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n provide(VNestedSymbol, { ...parent, isGroupActivator: true })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// Utilities
|
|
2
|
-
import { toRaw } from 'vue';
|
|
3
1
|
export const singleOpenStrategy = {
|
|
4
2
|
open: _ref => {
|
|
5
3
|
let {
|
|
@@ -33,11 +31,11 @@ export const multipleOpenStrategy = {
|
|
|
33
31
|
parents
|
|
34
32
|
} = _ref2;
|
|
35
33
|
if (value) {
|
|
36
|
-
let parent =
|
|
34
|
+
let parent = parents.get(id);
|
|
37
35
|
opened.add(id);
|
|
38
36
|
while (parent != null && parent !== id) {
|
|
39
37
|
opened.add(parent);
|
|
40
|
-
parent =
|
|
38
|
+
parent = parents.get(parent);
|
|
41
39
|
}
|
|
42
40
|
return opened;
|
|
43
41
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openStrategies.mjs","names":["
|
|
1
|
+
{"version":3,"file":"openStrategies.mjs","names":["singleOpenStrategy","open","_ref","id","value","opened","parents","newOpened","Set","add","parent","get","delete","select","multipleOpenStrategy","_ref2","listOpenStrategy","_ref3","path","push"],"sources":["../../../src/composables/nested/openStrategies.ts"],"sourcesContent":["export type OpenStrategyFn = (data: {\n id: unknown\n value: boolean\n opened: Set<unknown>\n children: Map<unknown, unknown[]>\n parents: Map<unknown, unknown>\n event?: Event\n}) => Set<unknown>\n\nexport type OpenSelectStrategyFn = (data: {\n id: unknown\n value: boolean\n opened: Set<unknown>\n selected: Map<unknown, 'on' | 'off' | 'indeterminate'>\n children: Map<unknown, unknown[]>\n parents: Map<unknown, unknown>\n event?: Event\n}) => Set<unknown> | null\n\nexport type OpenStrategy = {\n open: OpenStrategyFn\n select: OpenSelectStrategyFn\n}\n\nexport const singleOpenStrategy: OpenStrategy = {\n open: ({ id, value, opened, parents }) => {\n if (value) {\n const newOpened = new Set<unknown>()\n newOpened.add(id)\n\n let parent = parents.get(id)\n\n while (parent != null) {\n newOpened.add(parent)\n parent = parents.get(parent)\n }\n\n return newOpened\n } else {\n opened.delete(id)\n return opened\n }\n },\n select: () => null,\n}\n\nexport const multipleOpenStrategy: OpenStrategy = {\n open: ({ id, value, opened, parents }) => {\n if (value) {\n let parent = parents.get(id)\n opened.add(id)\n\n while (parent != null && parent !== id) {\n opened.add(parent)\n parent = parents.get(parent)\n }\n\n return opened\n } else {\n opened.delete(id)\n }\n return opened\n },\n select: () => null,\n}\n\nexport const listOpenStrategy: OpenStrategy = {\n open: multipleOpenStrategy.open,\n select: ({ id, value, opened, parents }) => {\n if (!value) return opened\n\n const path: unknown[] = []\n\n let parent = parents.get(id)\n\n while (parent != null) {\n path.push(parent)\n parent = parents.get(parent)\n }\n\n return new Set(path)\n },\n}\n"],"mappings":"AAwBA,OAAO,MAAMA,kBAAgC,GAAG;EAC9CC,IAAI,EAAEC,IAAA,IAAoC;IAAA,IAAnC;MAAEC,EAAE;MAAEC,KAAK;MAAEC,MAAM;MAAEC;IAAQ,CAAC,GAAAJ,IAAA;IACnC,IAAIE,KAAK,EAAE;MACT,MAAMG,SAAS,GAAG,IAAIC,GAAG,CAAU,CAAC;MACpCD,SAAS,CAACE,GAAG,CAACN,EAAE,CAAC;MAEjB,IAAIO,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACR,EAAE,CAAC;MAE5B,OAAOO,MAAM,IAAI,IAAI,EAAE;QACrBH,SAAS,CAACE,GAAG,CAACC,MAAM,CAAC;QACrBA,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACD,MAAM,CAAC;MAC9B;MAEA,OAAOH,SAAS;IAClB,CAAC,MAAM;MACLF,MAAM,CAACO,MAAM,CAACT,EAAE,CAAC;MACjB,OAAOE,MAAM;IACf;EACF,CAAC;EACDQ,MAAM,EAAEA,CAAA,KAAM;AAChB,CAAC;AAED,OAAO,MAAMC,oBAAkC,GAAG;EAChDb,IAAI,EAAEc,KAAA,IAAoC;IAAA,IAAnC;MAAEZ,EAAE;MAAEC,KAAK;MAAEC,MAAM;MAAEC;IAAQ,CAAC,GAAAS,KAAA;IACnC,IAAIX,KAAK,EAAE;MACT,IAAIM,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACR,EAAE,CAAC;MAC5BE,MAAM,CAACI,GAAG,CAACN,EAAE,CAAC;MAEd,OAAOO,MAAM,IAAI,IAAI,IAAIA,MAAM,KAAKP,EAAE,EAAE;QACtCE,MAAM,CAACI,GAAG,CAACC,MAAM,CAAC;QAClBA,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACD,MAAM,CAAC;MAC9B;MAEA,OAAOL,MAAM;IACf,CAAC,MAAM;MACLA,MAAM,CAACO,MAAM,CAACT,EAAE,CAAC;IACnB;IACA,OAAOE,MAAM;EACf,CAAC;EACDQ,MAAM,EAAEA,CAAA,KAAM;AAChB,CAAC;AAED,OAAO,MAAMG,gBAA8B,GAAG;EAC5Cf,IAAI,EAAEa,oBAAoB,CAACb,IAAI;EAC/BY,MAAM,EAAEI,KAAA,IAAoC;IAAA,IAAnC;MAAEd,EAAE;MAAEC,KAAK;MAAEC,MAAM;MAAEC;IAAQ,CAAC,GAAAW,KAAA;IACrC,IAAI,CAACb,KAAK,EAAE,OAAOC,MAAM;IAEzB,MAAMa,IAAe,GAAG,EAAE;IAE1B,IAAIR,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACR,EAAE,CAAC;IAE5B,OAAOO,MAAM,IAAI,IAAI,EAAE;MACrBQ,IAAI,CAACC,IAAI,CAACT,MAAM,CAAC;MACjBA,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACD,MAAM,CAAC;IAC9B;IAEA,OAAO,IAAIF,GAAG,CAACU,IAAI,CAAC;EACtB;AACF,CAAC","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Utilities
|
|
2
|
-
import { computed, nextTick, onScopeDispose, resolveDynamicComponent, toRef } from 'vue';
|
|
2
|
+
import { computed, nextTick, onScopeDispose, reactive, resolveDynamicComponent, toRef } from 'vue';
|
|
3
3
|
import { deepEqual, getCurrentInstance, hasEvent, IN_BROWSER, propsFactory } from "../util/index.mjs"; // Types
|
|
4
4
|
export function useRoute() {
|
|
5
5
|
const vm = getCurrentInstance('useRoute');
|
|
@@ -15,10 +15,14 @@ export function useLink(props, attrs) {
|
|
|
15
15
|
return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click');
|
|
16
16
|
});
|
|
17
17
|
if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {
|
|
18
|
+
const href = toRef(props, 'href');
|
|
18
19
|
return {
|
|
19
20
|
isLink,
|
|
20
21
|
isClickable,
|
|
21
|
-
href
|
|
22
|
+
href,
|
|
23
|
+
linkProps: reactive({
|
|
24
|
+
href
|
|
25
|
+
})
|
|
22
26
|
};
|
|
23
27
|
}
|
|
24
28
|
// vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined
|
|
@@ -30,18 +34,24 @@ export function useLink(props, attrs) {
|
|
|
30
34
|
// Actual link needs to be undefined when to prop is not used
|
|
31
35
|
const link = computed(() => props.to ? routerLink : undefined);
|
|
32
36
|
const route = useRoute();
|
|
37
|
+
const isActive = computed(() => {
|
|
38
|
+
if (!link.value) return false;
|
|
39
|
+
if (!props.exact) return link.value.isActive?.value ?? false;
|
|
40
|
+
if (!route.value) return link.value.isExactActive?.value ?? false;
|
|
41
|
+
return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query);
|
|
42
|
+
});
|
|
43
|
+
const href = computed(() => props.to ? link.value?.route.value.href : props.href);
|
|
33
44
|
return {
|
|
34
45
|
isLink,
|
|
35
46
|
isClickable,
|
|
47
|
+
isActive,
|
|
36
48
|
route: link.value?.route,
|
|
37
49
|
navigate: link.value?.navigate,
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}),
|
|
44
|
-
href: computed(() => props.to ? link.value?.route.value.href : props.href)
|
|
50
|
+
href,
|
|
51
|
+
linkProps: reactive({
|
|
52
|
+
href,
|
|
53
|
+
'aria-current': computed(() => isActive.value ? 'page' : undefined)
|
|
54
|
+
})
|
|
45
55
|
};
|
|
46
56
|
}
|
|
47
57
|
export const makeRouterProps = propsFactory({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.mjs","names":["computed","nextTick","onScopeDispose","resolveDynamicComponent","toRef","deepEqual","getCurrentInstance","hasEvent","IN_BROWSER","propsFactory","useRoute","vm","proxy","$route","useRouter","$router","useLink","props","attrs","RouterLink","isLink","href","to","isClickable","value","linkProps","routerLink","link","undefined","route","
|
|
1
|
+
{"version":3,"file":"router.mjs","names":["computed","nextTick","onScopeDispose","reactive","resolveDynamicComponent","toRef","deepEqual","getCurrentInstance","hasEvent","IN_BROWSER","propsFactory","useRoute","vm","proxy","$route","useRouter","$router","useLink","props","attrs","RouterLink","isLink","href","to","isClickable","value","linkProps","routerLink","link","undefined","route","isActive","exact","isExactActive","query","navigate","makeRouterProps","String","replace","Boolean","Object","inTransition","useBackButton","router","cb","popped","removeBefore","removeAfter","window","addEventListener","onPopstate","beforeEach","from","next","setTimeout","afterEach","removeEventListener","e","state","replaced"],"sources":["../../src/composables/router.tsx"],"sourcesContent":["// Utilities\nimport {\n computed,\n nextTick,\n onScopeDispose, reactive,\n resolveDynamicComponent,\n toRef,\n} from 'vue'\nimport { deepEqual, getCurrentInstance, hasEvent, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { ComputedRef, PropType, Ref, SetupContext } from 'vue'\nimport type {\n RouterLink as _RouterLink,\n useLink as _useLink,\n NavigationGuardNext,\n RouteLocationNormalizedLoaded,\n RouteLocationRaw,\n Router,\n UseLinkOptions,\n} from 'vue-router'\nimport type { EventProp } from '@/util'\n\nexport function useRoute (): Ref<RouteLocationNormalizedLoaded | undefined> {\n const vm = getCurrentInstance('useRoute')\n\n return computed(() => vm?.proxy?.$route)\n}\n\nexport function useRouter (): Router | undefined {\n return getCurrentInstance('useRouter')?.proxy?.$router\n}\n\nexport interface LinkProps {\n href: string | undefined\n replace: boolean | undefined\n to: RouteLocationRaw | undefined\n exact: boolean | undefined\n}\n\nexport interface LinkListeners {\n onClick?: EventProp | undefined\n onClickOnce?: EventProp | undefined\n}\n\nexport interface UseLink extends Omit<Partial<ReturnType<typeof _useLink>>, 'href'> {\n isLink: ComputedRef<boolean>\n isClickable: ComputedRef<boolean>\n href: Ref<string | undefined>\n linkProps: Record<string, string | undefined>\n}\n\nexport function useLink (props: LinkProps & LinkListeners, attrs: SetupContext['attrs']): UseLink {\n const RouterLink = resolveDynamicComponent('RouterLink') as typeof _RouterLink | string\n\n const isLink = computed(() => !!(props.href || props.to))\n const isClickable = computed(() => {\n return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click')\n })\n\n if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {\n const href = toRef(props, 'href')\n return {\n isLink,\n isClickable,\n href,\n linkProps: reactive({ href }),\n }\n }\n // vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined\n const linkProps = computed(() => ({\n ...props,\n to: toRef(() => props.to || ''),\n }))\n\n const routerLink = RouterLink.useLink(linkProps.value as UseLinkOptions)\n // Actual link needs to be undefined when to prop is not used\n const link = computed(() => props.to ? routerLink : undefined)\n const route = useRoute()\n const isActive = computed(() => {\n if (!link.value) return false\n if (!props.exact) return link.value.isActive?.value ?? false\n if (!route.value) return link.value.isExactActive?.value ?? false\n\n return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query)\n })\n const href = computed(() => props.to ? link.value?.route.value.href : props.href)\n\n return {\n isLink,\n isClickable,\n isActive,\n route: link.value?.route,\n navigate: link.value?.navigate,\n href,\n linkProps: reactive({\n href,\n 'aria-current': computed(() => isActive.value ? 'page' : undefined),\n }),\n }\n}\n\nexport const makeRouterProps = propsFactory({\n href: String,\n replace: Boolean,\n to: [String, Object] as PropType<RouteLocationRaw>,\n exact: Boolean,\n}, 'router')\n\nlet inTransition = false\nexport function useBackButton (router: Router | undefined, cb: (next: NavigationGuardNext) => void) {\n let popped = false\n let removeBefore: (() => void) | undefined\n let removeAfter: (() => void) | undefined\n\n if (IN_BROWSER) {\n nextTick(() => {\n window.addEventListener('popstate', onPopstate)\n removeBefore = router?.beforeEach((to, from, next) => {\n if (!inTransition) {\n setTimeout(() => popped ? cb(next) : next())\n } else {\n popped ? cb(next) : next()\n }\n inTransition = true\n })\n removeAfter = router?.afterEach(() => {\n inTransition = false\n })\n })\n onScopeDispose(() => {\n window.removeEventListener('popstate', onPopstate)\n removeBefore?.()\n removeAfter?.()\n })\n }\n\n function onPopstate (e: PopStateEvent) {\n if (e.state?.replaced) return\n\n popped = true\n setTimeout(() => (popped = false))\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@ import { useDirectiveComponent } from "../../composables/directiveComponent.mjs"
|
|
|
4
4
|
export const Tooltip = useDirectiveComponent(VTooltip, binding => {
|
|
5
5
|
return {
|
|
6
6
|
activator: 'parent',
|
|
7
|
-
location: binding.arg?.replace('-', ' ')
|
|
7
|
+
location: binding.arg?.replace('-', ' '),
|
|
8
8
|
text: typeof binding.value === 'boolean' ? undefined : binding.value
|
|
9
9
|
};
|
|
10
10
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["VTooltip","useDirectiveComponent","Tooltip","binding","activator","location","arg","replace","text","value","undefined"],"sources":["../../../src/directives/tooltip/index.ts"],"sourcesContent":["// Components\nimport { VTooltip } from '@/components/VTooltip'\n\n// Composables\nimport { useDirectiveComponent } from '@/composables/directiveComponent'\n\n// Types\nimport type { DirectiveBinding } from 'vue'\nimport type { Anchor } from '@/util'\n\nexport interface TooltipDirectiveBinding extends Omit<DirectiveBinding<string>, 'arg' | 'value'> {\n arg?: { [T in Anchor]: T extends `${infer A} ${infer B}` ? `${A}-${B}` : T }[Anchor]\n value: boolean | string | Record<string, any>\n}\n\nexport const Tooltip = useDirectiveComponent<TooltipDirectiveBinding>(VTooltip, binding => {\n return {\n activator: 'parent',\n location: binding.arg?.replace('-', ' ')
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["VTooltip","useDirectiveComponent","Tooltip","binding","activator","location","arg","replace","text","value","undefined"],"sources":["../../../src/directives/tooltip/index.ts"],"sourcesContent":["// Components\nimport { VTooltip } from '@/components/VTooltip'\n\n// Composables\nimport { useDirectiveComponent } from '@/composables/directiveComponent'\n\n// Types\nimport type { DirectiveBinding } from 'vue'\nimport type { Anchor } from '@/util'\n\nexport interface TooltipDirectiveBinding extends Omit<DirectiveBinding<string>, 'arg' | 'value'> {\n arg?: { [T in Anchor]: T extends `${infer A} ${infer B}` ? `${A}-${B}` : T }[Anchor]\n value: boolean | string | Record<string, any>\n}\n\nexport const Tooltip = useDirectiveComponent<TooltipDirectiveBinding>(VTooltip, binding => {\n return {\n activator: 'parent',\n location: binding.arg?.replace('-', ' '),\n text: typeof binding.value === 'boolean' ? undefined : binding.value,\n }\n})\n\nexport default Tooltip\n"],"mappings":"AAAA;AAAA,SACSA,QAAQ,+CAEjB;AAAA,SACSC,qBAAqB,oDAE9B;AASA,OAAO,MAAMC,OAAO,GAAGD,qBAAqB,CAA0BD,QAAQ,EAAEG,OAAO,IAAI;EACzF,OAAO;IACLC,SAAS,EAAE,QAAQ;IACnBC,QAAQ,EAAEF,OAAO,CAACG,GAAG,EAAEC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;IACxCC,IAAI,EAAE,OAAOL,OAAO,CAACM,KAAK,KAAK,SAAS,GAAGC,SAAS,GAAGP,OAAO,CAACM;EACjE,CAAC;AACH,CAAC,CAAC;AAEF,eAAeP,OAAO","ignoreList":[]}
|
package/lib/entry-bundler.mjs
CHANGED
|
@@ -16,7 +16,7 @@ export const createVuetify = function () {
|
|
|
16
16
|
...options
|
|
17
17
|
});
|
|
18
18
|
};
|
|
19
|
-
export const version = "3.7.
|
|
19
|
+
export const version = "3.7.2";
|
|
20
20
|
createVuetify.version = version;
|
|
21
21
|
export { blueprints, components, directives };
|
|
22
22
|
export * from "./composables/index.mjs";
|