@vuetify/nightly 3.6.3-master.2024-05-07 → 3.6.4-master.2024-05-09

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 (93) hide show
  1. package/CHANGELOG.md +7 -13
  2. package/dist/json/attributes.json +31 -31
  3. package/dist/json/importMap-labs.json +8 -8
  4. package/dist/json/importMap.json +124 -124
  5. package/dist/json/web-types.json +64 -64
  6. package/dist/vuetify-labs.css +2434 -2363
  7. package/dist/vuetify-labs.d.ts +995 -966
  8. package/dist/vuetify-labs.esm.js +104 -70
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +103 -69
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +775 -708
  13. package/dist/vuetify.d.ts +965 -936
  14. package/dist/vuetify.esm.js +104 -70
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +103 -69
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +981 -976
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAutocomplete/index.d.mts +169 -140
  22. package/lib/components/VBottomSheet/index.d.mts +33 -27
  23. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +1 -1
  24. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  25. package/lib/components/VCombobox/index.d.mts +169 -140
  26. package/lib/components/VDataIterator/index.d.mts +1 -1
  27. package/lib/components/VDataTable/VDataTable.css +1 -1
  28. package/lib/components/VDataTable/VDataTable.sass +2 -1
  29. package/lib/components/VDataTable/VDataTableHeaders.mjs +1 -1
  30. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  31. package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
  32. package/lib/components/VDataTable/composables/select.mjs +2 -1
  33. package/lib/components/VDataTable/composables/select.mjs.map +1 -1
  34. package/lib/components/VDataTable/index.d.mts +10 -5
  35. package/lib/components/VDatePicker/VDatePickerYears.mjs +4 -4
  36. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  37. package/lib/components/VDialog/index.d.mts +99 -93
  38. package/lib/components/VFileInput/VFileInput.mjs +1 -1
  39. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  40. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs +1 -1
  41. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  42. package/lib/components/VList/VList.mjs.map +1 -1
  43. package/lib/components/VList/index.d.mts +70 -46
  44. package/lib/components/VMenu/index.d.mts +99 -93
  45. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  46. package/lib/components/VOverlay/index.d.mts +33 -27
  47. package/lib/components/VOverlay/useActivator.mjs +5 -5
  48. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  49. package/lib/components/VSelect/index.d.mts +169 -140
  50. package/lib/components/VSheet/VSheet.css +1 -1
  51. package/lib/components/VSheet/_variables.scss +1 -1
  52. package/lib/components/VSlideGroup/VSlideGroup.mjs +25 -25
  53. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  54. package/lib/components/VSlider/VSliderThumb.css +5 -0
  55. package/lib/components/VSlider/VSliderThumb.sass +3 -0
  56. package/lib/components/VSlider/VSliderTrack.css +15 -0
  57. package/lib/components/VSlider/VSliderTrack.sass +9 -0
  58. package/lib/components/VSnackbar/index.d.mts +85 -79
  59. package/lib/components/VSpeedDial/index.d.mts +33 -27
  60. package/lib/components/VStepper/VStepper.mjs +12 -6
  61. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  62. package/lib/components/VStepper/VStepperItem.css +47 -0
  63. package/lib/components/VStepper/VStepperItem.mjs +5 -3
  64. package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
  65. package/lib/components/VStepper/VStepperItem.sass +18 -0
  66. package/lib/components/VStepper/VStepperWindow.mjs +2 -1
  67. package/lib/components/VStepper/VStepperWindow.mjs.map +1 -1
  68. package/lib/components/VStepper/VStepperWindowItem.mjs +2 -1
  69. package/lib/components/VStepper/VStepperWindowItem.mjs.map +1 -1
  70. package/lib/components/VTabs/VTabsWindow.mjs +2 -1
  71. package/lib/components/VTabs/VTabsWindow.mjs.map +1 -1
  72. package/lib/components/VTooltip/index.d.mts +99 -93
  73. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  74. package/lib/components/index.d.mts +926 -897
  75. package/lib/composables/nested/activeStrategies.mjs +16 -10
  76. package/lib/composables/nested/activeStrategies.mjs.map +1 -1
  77. package/lib/composables/nested/nested.mjs +7 -5
  78. package/lib/composables/nested/nested.mjs.map +1 -1
  79. package/lib/composables/resizeObserver.mjs +5 -5
  80. package/lib/composables/resizeObserver.mjs.map +1 -1
  81. package/lib/entry-bundler.mjs +1 -1
  82. package/lib/framework.mjs +1 -1
  83. package/lib/index.d.mts +39 -39
  84. package/lib/labs/VCalendar/VCalendar.css +5 -1
  85. package/lib/labs/VCalendar/VCalendar.sass +3 -2
  86. package/lib/labs/VCalendar/_variables.scss +8 -0
  87. package/lib/labs/VSnackbarQueue/index.d.mts +97 -91
  88. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  89. package/lib/labs/VTreeview/index.d.mts +82 -58
  90. package/lib/labs/components.d.mts +178 -149
  91. package/lib/util/helpers.mjs +16 -0
  92. package/lib/util/helpers.mjs.map +1 -1
  93. package/package.json +1 -1
@@ -1,6 +1,7 @@
1
1
  /* eslint-disable sonarjs/no-identical-functions */
2
2
  // Utilities
3
3
  import { toRaw } from 'vue';
4
+ import { wrapInArray } from "../../util/index.mjs";
4
5
  export const independentActiveStrategy = mandatory => {
5
6
  const strategy = {
6
7
  activate: _ref => {
@@ -23,14 +24,16 @@ export const independentActiveStrategy = mandatory => {
23
24
  },
24
25
  in: (v, children, parents) => {
25
26
  let set = new Set();
26
- for (const id of v || []) {
27
- set = strategy.activate({
28
- id,
29
- value: true,
30
- activated: new Set(set),
31
- children,
32
- parents
33
- });
27
+ if (v != null) {
28
+ for (const id of wrapInArray(v)) {
29
+ set = strategy.activate({
30
+ id,
31
+ value: true,
32
+ activated: new Set(set),
33
+ children,
34
+ parents
35
+ });
36
+ }
34
37
  }
35
38
  return set;
36
39
  },
@@ -59,8 +62,11 @@ export const independentSingleActiveStrategy = mandatory => {
59
62
  },
60
63
  in: (v, children, parents) => {
61
64
  let set = new Set();
62
- if (v?.length) {
63
- set = parentStrategy.in(v.slice(0, 1), children, parents);
65
+ if (v != null) {
66
+ const arr = wrapInArray(v);
67
+ if (arr.length) {
68
+ set = parentStrategy.in(arr.slice(0, 1), children, parents);
69
+ }
64
70
  }
65
71
  return set;
66
72
  },
@@ -1 +1 @@
1
- {"version":3,"file":"activeStrategies.mjs","names":["toRaw","independentActiveStrategy","mandatory","strategy","activate","_ref","id","value","activated","size","has","add","delete","in","v","children","parents","set","Set","out","Array","from","independentSingleActiveStrategy","parentStrategy","_ref2","rest","singleSelected","length","slice","leafActiveStrategy","_ref3","leafSingleActiveStrategy","_ref4"],"sources":["../../../src/composables/nested/activeStrategies.ts"],"sourcesContent":["/* eslint-disable sonarjs/no-identical-functions */\n// Utilities\nimport { toRaw } from 'vue'\n\nexport type ActiveStrategyFn = (data: {\n id: unknown\n value: boolean\n activated: Set<unknown>\n children: Map<unknown, unknown[]>\n parents: Map<unknown, unknown>\n event?: Event\n}) => Set<unknown>\n\nexport type ActiveStrategyTransformInFn = (\n v: readonly unknown[] | undefined,\n children: Map<unknown, unknown[]>,\n parents: Map<unknown, unknown>,\n) => Set<unknown>\n\nexport type ActiveStrategyTransformOutFn = (\n v: Set<unknown>,\n children: Map<unknown, unknown[]>,\n parents: Map<unknown, unknown>,\n) => unknown[]\n\nexport type ActiveStrategy = {\n activate: ActiveStrategyFn\n in: ActiveStrategyTransformInFn\n out: ActiveStrategyTransformOutFn\n}\n\nexport const independentActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const strategy: ActiveStrategy = {\n activate: ({ id, value, activated }) => {\n id = toRaw(id)\n\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value && activated.size === 1 && activated.has(id)) return activated\n\n if (value) {\n activated.add(id)\n } else {\n activated.delete(id)\n }\n\n return activated\n },\n in: (v, children, parents) => {\n let set = new Set()\n\n for (const id of (v || [])) {\n set = strategy.activate({\n id,\n value: true,\n activated: new Set(set),\n children,\n parents,\n })\n }\n\n return set\n },\n out: v => {\n return Array.from(v)\n },\n }\n\n return strategy\n}\n\nexport const independentSingleActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ activated, id, ...rest }) => {\n id = toRaw(id)\n const singleSelected = activated.has(id) ? new Set([id]) : new Set()\n return parentStrategy.activate({ ...rest, id, activated: singleSelected })\n },\n in: (v, children, parents) => {\n let set = new Set()\n\n if (v?.length) {\n set = parentStrategy.in(v.slice(0, 1), children, parents)\n }\n\n return set\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents)\n },\n }\n\n return strategy\n}\n\nexport const leafActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ id, activated, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return activated\n\n return parentStrategy.activate({ id, activated, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const leafSingleActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentSingleActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ id, activated, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return activated\n\n return parentStrategy.activate({ id, activated, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"activeStrategies.mjs","names":["toRaw","wrapInArray","independentActiveStrategy","mandatory","strategy","activate","_ref","id","value","activated","size","has","add","delete","in","v","children","parents","set","Set","out","Array","from","independentSingleActiveStrategy","parentStrategy","_ref2","rest","singleSelected","arr","length","slice","leafActiveStrategy","_ref3","leafSingleActiveStrategy","_ref4"],"sources":["../../../src/composables/nested/activeStrategies.ts"],"sourcesContent":["/* eslint-disable sonarjs/no-identical-functions */\n// Utilities\nimport { toRaw } from 'vue'\nimport { wrapInArray } from '@/util'\n\nexport type ActiveStrategyFn = (data: {\n id: unknown\n value: boolean\n activated: Set<unknown>\n children: Map<unknown, unknown[]>\n parents: Map<unknown, unknown>\n event?: Event\n}) => Set<unknown>\n\nexport type ActiveStrategyTransformInFn = (\n v: unknown | undefined,\n children: Map<unknown, unknown[]>,\n parents: Map<unknown, unknown>,\n) => Set<unknown>\n\nexport type ActiveStrategyTransformOutFn = (\n v: Set<unknown>,\n children: Map<unknown, unknown[]>,\n parents: Map<unknown, unknown>,\n) => unknown\n\nexport type ActiveStrategy = {\n activate: ActiveStrategyFn\n in: ActiveStrategyTransformInFn\n out: ActiveStrategyTransformOutFn\n}\n\nexport const independentActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const strategy: ActiveStrategy = {\n activate: ({ id, value, activated }) => {\n id = toRaw(id)\n\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value && activated.size === 1 && activated.has(id)) return activated\n\n if (value) {\n activated.add(id)\n } else {\n activated.delete(id)\n }\n\n return activated\n },\n in: (v, children, parents) => {\n let set = new Set()\n\n if (v != null) {\n for (const id of wrapInArray(v)) {\n set = strategy.activate({\n id,\n value: true,\n activated: new Set(set),\n children,\n parents,\n })\n }\n }\n\n return set\n },\n out: v => {\n return Array.from(v)\n },\n }\n\n return strategy\n}\n\nexport const independentSingleActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ activated, id, ...rest }) => {\n id = toRaw(id)\n const singleSelected = activated.has(id) ? new Set([id]) : new Set()\n return parentStrategy.activate({ ...rest, id, activated: singleSelected })\n },\n in: (v, children, parents) => {\n let set = new Set()\n\n if (v != null) {\n const arr = wrapInArray(v)\n if (arr.length) {\n set = parentStrategy.in(arr.slice(0, 1), children, parents)\n }\n }\n\n return set\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents)\n },\n }\n\n return strategy\n}\n\nexport const leafActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ id, activated, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return activated\n\n return parentStrategy.activate({ id, activated, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const leafSingleActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentSingleActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ id, activated, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return activated\n\n return parentStrategy.activate({ id, activated, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n"],"mappings":"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","ignoreList":[]}
@@ -28,12 +28,12 @@ export const emptyNested = {
28
28
  export const makeNestedProps = propsFactory({
29
29
  activatable: Boolean,
30
30
  selectable: Boolean,
31
- activeStrategy: [String, Function],
32
- selectStrategy: [String, Function],
31
+ activeStrategy: [String, Function, Object],
32
+ selectStrategy: [String, Function, Object],
33
33
  openStrategy: [String, Object],
34
- opened: Array,
35
- activated: Array,
36
- selected: Array,
34
+ opened: null,
35
+ activated: null,
36
+ selected: null,
37
37
  mandatory: Boolean
38
38
  }, 'nested');
39
39
  export const useNested = props => {
@@ -43,6 +43,7 @@ export const useNested = props => {
43
43
  const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);
44
44
  const activeStrategy = computed(() => {
45
45
  if (typeof props.activeStrategy === 'object') return props.activeStrategy;
46
+ if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);
46
47
  switch (props.activeStrategy) {
47
48
  case 'leaf':
48
49
  return leafActiveStrategy(props.mandatory);
@@ -57,6 +58,7 @@ export const useNested = props => {
57
58
  });
58
59
  const selectStrategy = computed(() => {
59
60
  if (typeof props.selectStrategy === 'object') return props.selectStrategy;
61
+ if (typeof props.selectStrategy === 'function') return props.selectStrategy(props.mandatory);
60
62
  switch (props.selectStrategy) {
61
63
  case 'single-leaf':
62
64
  return leafSingleSelectStrategy(props.mandatory);
@@ -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","selectStrategy","openStrategy","Object","Array","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, 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 { OpenStrategy } from './openStrategies'\nimport type { SelectStrategyFn } from './selectStrategies'\nimport type { EventProp } from '@/util'\n\nexport type SelectStrategy = 'single-leaf' | 'leaf' | 'independent' | 'single-independent' | 'classic' | SelectStrategyFn\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n activatable: boolean\n selectable: boolean\n activeStrategy: SelectStrategy | undefined\n selectStrategy: SelectStrategy | undefined\n openStrategy: OpenStrategyProp | undefined\n activated: readonly unknown[] | undefined\n selected: readonly unknown[] | undefined\n opened: readonly unknown[] | undefined\n mandatory: boolean\n 'onUpdate:activated': EventProp<[unknown[]]> | undefined\n 'onUpdate:selected': EventProp<[unknown[]]> | undefined\n 'onUpdate:opened': EventProp<[unknown[]]> | 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] as PropType<SelectStrategy>,\n selectStrategy: [String, Function] as PropType<SelectStrategy>,\n openStrategy: [String, Object] as PropType<OpenStrategyProp>,\n opened: Array as PropType<readonly unknown[]>,\n activated: Array as PropType<readonly unknown[]>,\n selected: Array as PropType<readonly unknown[]>,\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\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\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 opened.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(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":"AAAA;AAAA,SACSA,eAAe,+BAExB;AACA,SAASC,QAAQ,EAAEC,MAAM,EAAEC,eAAe,EAAEC,OAAO,EAAEC,GAAG,EAAEC,UAAU,EAAEC,KAAK,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAE7FC,yBAAyB,EACzBC,+BAA+B,EAAEC,kBAAkB,EACnDC,wBAAwB;AAAA,SAEjBC,gBAAgB,EAAEC,oBAAoB,EAAEC,kBAAkB;AAAA,SAEjEC,qBAAqB,EACrBC,yBAAyB,EACzBC,+BAA+B,EAC/BC,kBAAkB,EAClBC,wBAAwB;AAAA,SAEjBC,kBAAkB,EAAEC,MAAM,EAAEC,YAAY,gCAEjD;AA6CA,OAAO,MAAMC,aAA0C,GAAGC,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;AAEtF,OAAO,MAAMC,WAA0B,GAAG;EACxCC,EAAE,EAAEtB,UAAU,CAAC,CAAC;EAChBuB,IAAI,EAAE;IACJC,QAAQ,EAAEA,CAAA,KAAM,IAAI;IACpBC,UAAU,EAAEA,CAAA,KAAM,IAAI;IACtBC,OAAO,EAAE3B,GAAG,CAAC,IAAI4B,GAAG,CAAC,CAAC,CAAC;IACvBC,QAAQ,EAAE7B,GAAG,CAAC,IAAI4B,GAAG,CAAC,CAAC,CAAC;IACxBE,IAAI,EAAEA,CAAA,KAAM,IAAI;IAChBC,YAAY,EAAEA,CAAA,KAAM,IAAI;IACxBC,QAAQ,EAAEA,CAAA,KAAM,IAAI;IACpBC,MAAM,EAAEA,CAAA,KAAM,IAAI;IAClBC,WAAW,EAAElC,GAAG,CAAC,KAAK,CAAC;IACvBmC,UAAU,EAAEnC,GAAG,CAAC,KAAK,CAAC;IACtBoC,MAAM,EAAEpC,GAAG,CAAC,IAAIqC,GAAG,CAAC,CAAC,CAAC;IACtBC,SAAS,EAAEtC,GAAG,CAAC,IAAIqC,GAAG,CAAC,CAAC,CAAC;IACzBE,QAAQ,EAAEvC,GAAG,CAAC,IAAI4B,GAAG,CAAC,CAAC,CAAC;IACxBY,cAAc,EAAExC,GAAG,CAAC,EAAE;EACxB;AACF,CAAC;AAED,OAAO,MAAMyC,eAAe,GAAGvB,YAAY,CAAC;EAC1CgB,WAAW,EAAEQ,OAAO;EACpBP,UAAU,EAAEO,OAAO;EACnBC,cAAc,EAAE,CAACC,MAAM,EAAEC,QAAQ,CAA6B;EAC9DC,cAAc,EAAE,CAACF,MAAM,EAAEC,QAAQ,CAA6B;EAC9DE,YAAY,EAAE,CAACH,MAAM,EAAEI,MAAM,CAA+B;EAC5DZ,MAAM,EAAEa,KAAqC;EAC7CX,SAAS,EAAEW,KAAqC;EAChDV,QAAQ,EAAEU,KAAqC;EAC/CC,SAAS,EAAER;AACb,CAAC,EAAE,QAAQ,CAAC;AAEZ,OAAO,MAAMS,SAAS,GAAIC,KAAkB,IAAK;EAC/C,IAAIC,WAAW,GAAG,KAAK;EACvB,MAAMxB,QAAQ,GAAG7B,GAAG,CAAC,IAAI4B,GAAG,CAAqB,CAAC,CAAC;EACnD,MAAMD,OAAO,GAAG3B,GAAG,CAAC,IAAI4B,GAAG,CAAmB,CAAC,CAAC;EAEhD,MAAMQ,MAAM,GAAGzC,eAAe,CAACyD,KAAK,EAAE,QAAQ,EAAEA,KAAK,CAAChB,MAAM,EAAEkB,CAAC,IAAI,IAAIjB,GAAG,CAACiB,CAAC,CAAC,EAAEA,CAAC,IAAI,CAAC,GAAGA,CAAC,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC;EAEpG,MAAMZ,cAAc,GAAG/C,QAAQ,CAAC,MAAM;IACpC,IAAI,OAAOwD,KAAK,CAACT,cAAc,KAAK,QAAQ,EAAE,OAAOS,KAAK,CAACT,cAAc;IAEzE,QAAQS,KAAK,CAACT,cAAc;MAC1B,KAAK,MAAM;QAAE,OAAOrC,kBAAkB,CAAC8C,KAAK,CAACF,SAAS,CAAC;MACvD,KAAK,aAAa;QAAE,OAAO3C,wBAAwB,CAAC6C,KAAK,CAACF,SAAS,CAAC;MACpE,KAAK,aAAa;QAAE,OAAO9C,yBAAyB,CAACgD,KAAK,CAACF,SAAS,CAAC;MACrE,KAAK,oBAAoB;MACzB;QAAS,OAAO7C,+BAA+B,CAAC+C,KAAK,CAACF,SAAS,CAAC;IAClE;EACF,CAAC,CAAC;EAEF,MAAMJ,cAAc,GAAGlD,QAAQ,CAAC,MAAM;IACpC,IAAI,OAAOwD,KAAK,CAACN,cAAc,KAAK,QAAQ,EAAE,OAAOM,KAAK,CAACN,cAAc;IAEzE,QAAQM,KAAK,CAACN,cAAc;MAC1B,KAAK,aAAa;QAAE,OAAO/B,wBAAwB,CAACqC,KAAK,CAACF,SAAS,CAAC;MACpE,KAAK,MAAM;QAAE,OAAOpC,kBAAkB,CAACsC,KAAK,CAACF,SAAS,CAAC;MACvD,KAAK,aAAa;QAAE,OAAOtC,yBAAyB,CAACwC,KAAK,CAACF,SAAS,CAAC;MACrE,KAAK,oBAAoB;QAAE,OAAOrC,+BAA+B,CAACuC,KAAK,CAACF,SAAS,CAAC;MAClF,KAAK,SAAS;MACd;QAAS,OAAOvC,qBAAqB,CAACyC,KAAK,CAACF,SAAS,CAAC;IACxD;EACF,CAAC,CAAC;EAEF,MAAMH,YAAY,GAAGnD,QAAQ,CAAC,MAAM;IAClC,IAAI,OAAOwD,KAAK,CAACL,YAAY,KAAK,QAAQ,EAAE,OAAOK,KAAK,CAACL,YAAY;IAErE,QAAQK,KAAK,CAACL,YAAY;MACxB,KAAK,MAAM;QAAE,OAAOvC,gBAAgB;MACpC,KAAK,QAAQ;QAAE,OAAOE,kBAAkB;MACxC,KAAK,UAAU;MACf;QAAS,OAAOD,oBAAoB;IACtC;EACF,CAAC,CAAC;EAEF,MAAM6B,SAAS,GAAG3C,eAAe,CAC/ByD,KAAK,EACL,WAAW,EACXA,KAAK,CAACd,SAAS,EACfgB,CAAC,IAAIX,cAAc,CAACa,KAAK,CAACC,EAAE,CAACH,CAAC,EAAEzB,QAAQ,CAAC2B,KAAK,EAAE7B,OAAO,CAAC6B,KAAK,CAAC,EAC9DF,CAAC,IAAIX,cAAc,CAACa,KAAK,CAACE,GAAG,CAACJ,CAAC,EAAEzB,QAAQ,CAAC2B,KAAK,EAAE7B,OAAO,CAAC6B,KAAK,CAChE,CAAC;EACD,MAAMjB,QAAQ,GAAG5C,eAAe,CAC9ByD,KAAK,EACL,UAAU,EACVA,KAAK,CAACb,QAAQ,EACde,CAAC,IAAIR,cAAc,CAACU,KAAK,CAACC,EAAE,CAACH,CAAC,EAAEzB,QAAQ,CAAC2B,KAAK,EAAE7B,OAAO,CAAC6B,KAAK,CAAC,EAC9DF,CAAC,IAAIR,cAAc,CAACU,KAAK,CAACE,GAAG,CAACJ,CAAC,EAAEzB,QAAQ,CAAC2B,KAAK,EAAE7B,OAAO,CAAC6B,KAAK,CAChE,CAAC;EAED1D,eAAe,CAAC,MAAM;IACpBuD,WAAW,GAAG,IAAI;EACpB,CAAC,CAAC;EAEF,SAASM,OAAOA,CAAEpC,EAAW,EAAE;IAC7B,MAAMqC,IAAe,GAAG,EAAE;IAC1B,IAAIC,MAAe,GAAGtC,EAAE;IAExB,OAAOsC,MAAM,IAAI,IAAI,EAAE;MACrBD,IAAI,CAACE,OAAO,CAACD,MAAM,CAAC;MACpBA,MAAM,GAAGlC,OAAO,CAAC6B,KAAK,CAACO,GAAG,CAACF,MAAM,CAAC;IACpC;IAEA,OAAOD,IAAI;EACb;EAEA,MAAMI,EAAE,GAAGhD,kBAAkB,CAAC,QAAQ,CAAC;EAEvC,MAAMiD,MAAqB,GAAG;IAC5B1C,EAAE,EAAEtB,UAAU,CAAC,CAAC;IAChBuB,IAAI,EAAE;MACJY,MAAM;MACNF,WAAW,EAAE/B,KAAK,CAACiD,KAAK,EAAE,aAAa,CAAC;MACxCjB,UAAU,EAAEhC,KAAK,CAACiD,KAAK,EAAE,YAAY,CAAC;MACtCd,SAAS;MACTC,QAAQ;MACRC,cAAc,EAAE5C,QAAQ,CAAC,MAAM;QAC7B,MAAMsE,GAAG,GAAG,EAAE;QAEd,KAAK,MAAM,CAACC,GAAG,EAAEX,KAAK,CAAC,IAAIjB,QAAQ,CAACiB,KAAK,CAACY,OAAO,CAAC,CAAC,EAAE;UACnD,IAAIZ,KAAK,KAAK,IAAI,EAAEU,GAAG,CAACG,IAAI,CAACF,GAAG,CAAC;QACnC;QAEA,OAAOD,GAAG;MACZ,CAAC,CAAC;MACFzC,QAAQ,EAAEA,CAACF,EAAE,EAAE+C,QAAQ,EAAEC,OAAO,KAAK;QACnCD,QAAQ,IAAI/C,EAAE,KAAK+C,QAAQ,IAAI3C,OAAO,CAAC6B,KAAK,CAACgB,GAAG,CAACjD,EAAE,EAAE+C,QAAQ,CAAC;QAE9DC,OAAO,IAAI1C,QAAQ,CAAC2B,KAAK,CAACgB,GAAG,CAACjD,EAAE,EAAE,EAAE,CAAC;QAErC,IAAI+C,QAAQ,IAAI,IAAI,EAAE;UACpBzC,QAAQ,CAAC2B,KAAK,CAACgB,GAAG,CAACF,QAAQ,EAAE,CAAC,IAAGzC,QAAQ,CAAC2B,KAAK,CAACO,GAAG,CAACO,QAAQ,CAAC,IAAI,EAAE,GAAE/C,EAAE,CAAC,CAAC;QAC3E;MACF,CAAC;MACDG,UAAU,EAAEH,EAAE,IAAI;QAChB,IAAI8B,WAAW,EAAE;QAEjBxB,QAAQ,CAAC2B,KAAK,CAACiB,MAAM,CAAClD,EAAE,CAAC;QACzB,MAAMsC,MAAM,GAAGlC,OAAO,CAAC6B,KAAK,CAACO,GAAG,CAACxC,EAAE,CAAC;QACpC,IAAIsC,MAAM,EAAE;UACV,MAAMa,IAAI,GAAG7C,QAAQ,CAAC2B,KAAK,CAACO,GAAG,CAACF,MAAM,CAAC,IAAI,EAAE;UAC7ChC,QAAQ,CAAC2B,KAAK,CAACgB,GAAG,CAACX,MAAM,EAAEa,IAAI,CAACC,MAAM,CAACC,KAAK,IAAIA,KAAK,KAAKrD,EAAE,CAAC,CAAC;QAChE;QACAI,OAAO,CAAC6B,KAAK,CAACiB,MAAM,CAAClD,EAAE,CAAC;QACxBa,MAAM,CAACoB,KAAK,CAACiB,MAAM,CAAClD,EAAE,CAAC;MACzB,CAAC;MACDO,IAAI,EAAEA,CAACP,EAAE,EAAEiC,KAAK,EAAEqB,KAAK,KAAK;QAC1Bb,EAAE,CAACc,IAAI,CAAC,YAAY,EAAE;UAAEvD,EAAE;UAAEiC,KAAK;UAAEI,IAAI,EAAED,OAAO,CAACpC,EAAE,CAAC;UAAEsD;QAAM,CAAC,CAAC;QAE9D,MAAME,SAAS,GAAGhC,YAAY,CAACS,KAAK,CAAC1B,IAAI,CAAC;UACxCP,EAAE;UACFiC,KAAK;UACLpB,MAAM,EAAE,IAAIC,GAAG,CAACD,MAAM,CAACoB,KAAK,CAAC;UAC7B3B,QAAQ,EAAEA,QAAQ,CAAC2B,KAAK;UACxB7B,OAAO,EAAEA,OAAO,CAAC6B,KAAK;UACtBqB;QACF,CAAC,CAAC;QAEFE,SAAS,KAAK3C,MAAM,CAACoB,KAAK,GAAGuB,SAAS,CAAC;MACzC,CAAC;MACDhD,YAAY,EAAEA,CAACR,EAAE,EAAEiC,KAAK,EAAEqB,KAAK,KAAK;QAClC,MAAME,SAAS,GAAGhC,YAAY,CAACS,KAAK,CAACvB,MAAM,CAAC;UAC1CV,EAAE;UACFiC,KAAK;UACLjB,QAAQ,EAAE,IAAIX,GAAG,CAACW,QAAQ,CAACiB,KAAK,CAAC;UACjCpB,MAAM,EAAE,IAAIC,GAAG,CAACD,MAAM,CAACoB,KAAK,CAAC;UAC7B3B,QAAQ,EAAEA,QAAQ,CAAC2B,KAAK;UACxB7B,OAAO,EAAEA,OAAO,CAAC6B,KAAK;UACtBqB;QACF,CAAC,CAAC;QACFE,SAAS,KAAK3C,MAAM,CAACoB,KAAK,GAAGuB,SAAS,CAAC;MACzC,CAAC;MACD9C,MAAM,EAAEA,CAACV,EAAE,EAAEiC,KAAK,EAAEqB,KAAK,KAAK;QAC5Bb,EAAE,CAACc,IAAI,CAAC,cAAc,EAAE;UAAEvD,EAAE;UAAEiC,KAAK;UAAEI,IAAI,EAAED,OAAO,CAACpC,EAAE,CAAC;UAAEsD;QAAM,CAAC,CAAC;QAEhE,MAAMG,WAAW,GAAGlC,cAAc,CAACU,KAAK,CAACvB,MAAM,CAAC;UAC9CV,EAAE;UACFiC,KAAK;UACLjB,QAAQ,EAAE,IAAIX,GAAG,CAACW,QAAQ,CAACiB,KAAK,CAAC;UACjC3B,QAAQ,EAAEA,QAAQ,CAAC2B,KAAK;UACxB7B,OAAO,EAAEA,OAAO,CAAC6B,KAAK;UACtBqB;QACF,CAAC,CAAC;QACFG,WAAW,KAAKzC,QAAQ,CAACiB,KAAK,GAAGwB,WAAW,CAAC;QAE7Cf,MAAM,CAACzC,IAAI,CAACO,YAAY,CAACR,EAAE,EAAEiC,KAAK,EAAEqB,KAAK,CAAC;MAC5C,CAAC;MACD7C,QAAQ,EAAEA,CAACT,EAAE,EAAEiC,KAAK,EAAEqB,KAAK,KAAK;QAC9B,IAAI,CAACzB,KAAK,CAAClB,WAAW,EAAE;UACtB,OAAO+B,MAAM,CAACzC,IAAI,CAACS,MAAM,CAACV,EAAE,EAAE,IAAI,EAAEsD,KAAK,CAAC;QAC5C;QAEAb,EAAE,CAACc,IAAI,CAAC,gBAAgB,EAAE;UAAEvD,EAAE;UAAEiC,KAAK;UAAEI,IAAI,EAAED,OAAO,CAACpC,EAAE,CAAC;UAAEsD;QAAM,CAAC,CAAC;QAElE,MAAMI,YAAY,GAAGtC,cAAc,CAACa,KAAK,CAACxB,QAAQ,CAAC;UACjDT,EAAE;UACFiC,KAAK;UACLlB,SAAS,EAAE,IAAID,GAAG,CAACC,SAAS,CAACkB,KAAK,CAAC;UACnC3B,QAAQ,EAAEA,QAAQ,CAAC2B,KAAK;UACxB7B,OAAO,EAAEA,OAAO,CAAC6B,KAAK;UACtBqB;QACF,CAAC,CAAC;QAEFI,YAAY,KAAK3C,SAAS,CAACkB,KAAK,GAAGyB,YAAY,CAAC;MAClD,CAAC;MACDpD,QAAQ;MACRF;IACF;EACF,CAAC;EAED5B,OAAO,CAACoB,aAAa,EAAE8C,MAAM,CAAC;EAE9B,OAAOA,MAAM,CAACzC,IAAI;AACpB,CAAC;AAED,OAAO,MAAM0D,aAAa,GAAGA,CAAC3D,EAAgB,EAAEgD,OAAgB,KAAK;EACnE,MAAMV,MAAM,GAAGhE,MAAM,CAACsB,aAAa,EAAEG,WAAW,CAAC;EAEjD,MAAM6D,SAAS,GAAG/D,MAAM,CAACH,MAAM,CAAC,CAAC,CAAC;EAClC,MAAMmE,UAAU,GAAGxF,QAAQ,CAAC,MAAM2B,EAAE,CAACiC,KAAK,KAAK6B,SAAS,GAAG9D,EAAE,CAACiC,KAAK,GAAG2B,SAAS,CAAC;EAEhF,MAAMG,IAAI,GAAG;IACX,GAAGzB,MAAM;IACTtC,EAAE,EAAE6D,UAAU;IACdtD,IAAI,EAAEA,CAACA,IAAa,EAAEyD,CAAQ,KAAK1B,MAAM,CAACrC,IAAI,CAACM,IAAI,CAACsD,UAAU,CAAC5B,KAAK,EAAE1B,IAAI,EAAEyD,CAAC,CAAC;IAC9ExD,YAAY,EAAEA,CAACD,IAAa,EAAEyD,CAAS,KAAK1B,MAAM,CAACrC,IAAI,CAACO,YAAY,CAACqD,UAAU,CAAC5B,KAAK,EAAE1B,IAAI,EAAEyD,CAAC,CAAC;IAC/FC,MAAM,EAAE5F,QAAQ,CAAC,MAAMiE,MAAM,CAACrC,IAAI,CAACY,MAAM,CAACoB,KAAK,CAACiC,GAAG,CAACL,UAAU,CAAC5B,KAAK,CAAC,CAAC;IACtEK,MAAM,EAAEjE,QAAQ,CAAC,MAAMiE,MAAM,CAACrC,IAAI,CAACG,OAAO,CAAC6B,KAAK,CAACO,GAAG,CAACqB,UAAU,CAAC5B,KAAK,CAAC,CAAC;IACvExB,QAAQ,EAAEA,CAACM,SAAkB,EAAEiD,CAAS,KAAK1B,MAAM,CAACrC,IAAI,CAACQ,QAAQ,CAACoD,UAAU,CAAC5B,KAAK,EAAElB,SAAS,EAAEiD,CAAC,CAAC;IACjGG,WAAW,EAAE9F,QAAQ,CAAC,MAAMiE,MAAM,CAACrC,IAAI,CAACc,SAAS,CAACkB,KAAK,CAACiC,GAAG,CAACvF,KAAK,CAACkF,UAAU,CAAC5B,KAAK,CAAC,CAAC,CAAC;IACrFvB,MAAM,EAAEA,CAACM,QAAiB,EAAEgD,CAAS,KAAK1B,MAAM,CAACrC,IAAI,CAACS,MAAM,CAACmD,UAAU,CAAC5B,KAAK,EAAEjB,QAAQ,EAAEgD,CAAC,CAAC;IAC3FI,UAAU,EAAE/F,QAAQ,CAAC,MAAMiE,MAAM,CAACrC,IAAI,CAACe,QAAQ,CAACiB,KAAK,CAACO,GAAG,CAAC7D,KAAK,CAACkF,UAAU,CAAC5B,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC;IAC5FoC,eAAe,EAAEhG,QAAQ,CAAC,MAAMiE,MAAM,CAACrC,IAAI,CAACe,QAAQ,CAACiB,KAAK,CAACO,GAAG,CAACqB,UAAU,CAAC5B,KAAK,CAAC,KAAK,eAAe,CAAC;IACrGqC,MAAM,EAAEjG,QAAQ,CAAC,MAAM,CAACiE,MAAM,CAACrC,IAAI,CAACK,QAAQ,CAAC2B,KAAK,CAACO,GAAG,CAACqB,UAAU,CAAC5B,KAAK,CAAC,CAAC;IACzEsC,gBAAgB,EAAEjC,MAAM,CAACiC;EAC3B,CAAC;EAED,CAACjC,MAAM,CAACiC,gBAAgB,IAAIjC,MAAM,CAACrC,IAAI,CAACC,QAAQ,CAAC2D,UAAU,CAAC5B,KAAK,EAAEK,MAAM,CAACtC,EAAE,CAACiC,KAAK,EAAEe,OAAO,CAAC;EAE5FzE,eAAe,CAAC,MAAM;IACpB,CAAC+D,MAAM,CAACiC,gBAAgB,IAAIjC,MAAM,CAACrC,IAAI,CAACE,UAAU,CAAC0D,UAAU,CAAC5B,KAAK,CAAC;EACtE,CAAC,CAAC;EAEFe,OAAO,IAAIxE,OAAO,CAACoB,aAAa,EAAEmE,IAAI,CAAC;EAEvC,OAAOA,IAAI;AACb,CAAC;AAED,OAAO,MAAMS,uBAAuB,GAAGA,CAAA,KAAM;EAC3C,MAAMlC,MAAM,GAAGhE,MAAM,CAACsB,aAAa,EAAEG,WAAW,CAAC;EAEjDvB,OAAO,CAACoB,aAAa,EAAE;IAAE,GAAG0C,MAAM;IAAEiC,gBAAgB,EAAE;EAAK,CAAC,CAAC;AAC/D,CAAC","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","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(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 opened.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(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,10 +1,10 @@
1
1
  // Utilities
2
2
  import { onBeforeUnmount, readonly, ref, watch } from 'vue';
3
- import { refElement } from "../util/index.mjs";
3
+ import { templateRef } from "../util/index.mjs";
4
4
  import { IN_BROWSER } from "../util/globals.mjs"; // Types
5
5
  export function useResizeObserver(callback) {
6
6
  let box = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'content';
7
- const resizeRef = ref();
7
+ const resizeRef = templateRef();
8
8
  const contentRect = ref();
9
9
  if (IN_BROWSER) {
10
10
  const observer = new ResizeObserver(entries => {
@@ -19,12 +19,12 @@ export function useResizeObserver(callback) {
19
19
  onBeforeUnmount(() => {
20
20
  observer.disconnect();
21
21
  });
22
- watch(resizeRef, (newValue, oldValue) => {
22
+ watch(() => resizeRef.el, (newValue, oldValue) => {
23
23
  if (oldValue) {
24
- observer.unobserve(refElement(oldValue));
24
+ observer.unobserve(oldValue);
25
25
  contentRect.value = undefined;
26
26
  }
27
- if (newValue) observer.observe(refElement(newValue));
27
+ if (newValue) observer.observe(newValue);
28
28
  }, {
29
29
  flush: 'post'
30
30
  });
@@ -1 +1 @@
1
- {"version":3,"file":"resizeObserver.mjs","names":["onBeforeUnmount","readonly","ref","watch","refElement","IN_BROWSER","useResizeObserver","callback","box","arguments","length","undefined","resizeRef","contentRect","observer","ResizeObserver","entries","value","target","getBoundingClientRect","disconnect","newValue","oldValue","unobserve","observe","flush"],"sources":["../../src/composables/resizeObserver.ts"],"sourcesContent":["// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue'\nimport { refElement } from '@/util'\nimport { IN_BROWSER } from '@/util/globals'\n\n// Types\nimport type { DeepReadonly, Ref } from 'vue'\n\ninterface ResizeState {\n resizeRef: Ref<HTMLElement | undefined>\n contentRect: DeepReadonly<Ref<DOMRectReadOnly | undefined>>\n}\n\nexport function useResizeObserver (callback?: ResizeObserverCallback, box: 'content' | 'border' = 'content'): ResizeState {\n const resizeRef = ref<HTMLElement>()\n const contentRect = ref<DOMRectReadOnly>()\n\n if (IN_BROWSER) {\n const observer = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n callback?.(entries, observer)\n\n if (!entries.length) return\n\n if (box === 'content') {\n contentRect.value = entries[0].contentRect\n } else {\n contentRect.value = entries[0].target.getBoundingClientRect()\n }\n })\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(resizeRef, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(refElement(oldValue) as Element)\n contentRect.value = undefined\n }\n\n if (newValue) observer.observe(refElement(newValue) as Element)\n }, {\n flush: 'post',\n })\n }\n\n return {\n resizeRef,\n contentRect: readonly(contentRect),\n }\n}\n"],"mappings":"AAAA;AACA,SAASA,eAAe,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAClDC,UAAU;AAAA,SACVC,UAAU,+BAEnB;AAQA,OAAO,SAASC,iBAAiBA,CAAEC,QAAiC,EAAsD;EAAA,IAApDC,GAAyB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,SAAS;EACzG,MAAMG,SAAS,GAAGV,GAAG,CAAc,CAAC;EACpC,MAAMW,WAAW,GAAGX,GAAG,CAAkB,CAAC;EAE1C,IAAIG,UAAU,EAAE;IACd,MAAMS,QAAQ,GAAG,IAAIC,cAAc,CAAEC,OAA8B,IAAK;MACtET,QAAQ,GAAGS,OAAO,EAAEF,QAAQ,CAAC;MAE7B,IAAI,CAACE,OAAO,CAACN,MAAM,EAAE;MAErB,IAAIF,GAAG,KAAK,SAAS,EAAE;QACrBK,WAAW,CAACI,KAAK,GAAGD,OAAO,CAAC,CAAC,CAAC,CAACH,WAAW;MAC5C,CAAC,MAAM;QACLA,WAAW,CAACI,KAAK,GAAGD,OAAO,CAAC,CAAC,CAAC,CAACE,MAAM,CAACC,qBAAqB,CAAC,CAAC;MAC/D;IACF,CAAC,CAAC;IAEFnB,eAAe,CAAC,MAAM;MACpBc,QAAQ,CAACM,UAAU,CAAC,CAAC;IACvB,CAAC,CAAC;IAEFjB,KAAK,CAACS,SAAS,EAAE,CAACS,QAAQ,EAAEC,QAAQ,KAAK;MACvC,IAAIA,QAAQ,EAAE;QACZR,QAAQ,CAACS,SAAS,CAACnB,UAAU,CAACkB,QAAQ,CAAY,CAAC;QACnDT,WAAW,CAACI,KAAK,GAAGN,SAAS;MAC/B;MAEA,IAAIU,QAAQ,EAAEP,QAAQ,CAACU,OAAO,CAACpB,UAAU,CAACiB,QAAQ,CAAY,CAAC;IACjE,CAAC,EAAE;MACDI,KAAK,EAAE;IACT,CAAC,CAAC;EACJ;EAEA,OAAO;IACLb,SAAS;IACTC,WAAW,EAAEZ,QAAQ,CAACY,WAAW;EACnC,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"resizeObserver.mjs","names":["onBeforeUnmount","readonly","ref","watch","templateRef","IN_BROWSER","useResizeObserver","callback","box","arguments","length","undefined","resizeRef","contentRect","observer","ResizeObserver","entries","value","target","getBoundingClientRect","disconnect","el","newValue","oldValue","unobserve","observe","flush"],"sources":["../../src/composables/resizeObserver.ts"],"sourcesContent":["// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue'\nimport { templateRef } from '@/util'\nimport { IN_BROWSER } from '@/util/globals'\n\n// Types\nimport type { DeepReadonly, Ref } from 'vue'\nimport type { TemplateRef } from '@/util'\n\ninterface ResizeState {\n resizeRef: TemplateRef\n contentRect: DeepReadonly<Ref<DOMRectReadOnly | undefined>>\n}\n\nexport function useResizeObserver (callback?: ResizeObserverCallback, box: 'content' | 'border' = 'content'): ResizeState {\n const resizeRef = templateRef()\n const contentRect = ref<DOMRectReadOnly>()\n\n if (IN_BROWSER) {\n const observer = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n callback?.(entries, observer)\n\n if (!entries.length) return\n\n if (box === 'content') {\n contentRect.value = entries[0].contentRect\n } else {\n contentRect.value = entries[0].target.getBoundingClientRect()\n }\n })\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(() => resizeRef.el, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue)\n contentRect.value = undefined\n }\n\n if (newValue) observer.observe(newValue)\n }, {\n flush: 'post',\n })\n }\n\n return {\n resizeRef,\n contentRect: readonly(contentRect),\n }\n}\n"],"mappings":"AAAA;AACA,SAASA,eAAe,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAClDC,WAAW;AAAA,SACXC,UAAU,+BAEnB;AASA,OAAO,SAASC,iBAAiBA,CAAEC,QAAiC,EAAsD;EAAA,IAApDC,GAAyB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,SAAS;EACzG,MAAMG,SAAS,GAAGR,WAAW,CAAC,CAAC;EAC/B,MAAMS,WAAW,GAAGX,GAAG,CAAkB,CAAC;EAE1C,IAAIG,UAAU,EAAE;IACd,MAAMS,QAAQ,GAAG,IAAIC,cAAc,CAAEC,OAA8B,IAAK;MACtET,QAAQ,GAAGS,OAAO,EAAEF,QAAQ,CAAC;MAE7B,IAAI,CAACE,OAAO,CAACN,MAAM,EAAE;MAErB,IAAIF,GAAG,KAAK,SAAS,EAAE;QACrBK,WAAW,CAACI,KAAK,GAAGD,OAAO,CAAC,CAAC,CAAC,CAACH,WAAW;MAC5C,CAAC,MAAM;QACLA,WAAW,CAACI,KAAK,GAAGD,OAAO,CAAC,CAAC,CAAC,CAACE,MAAM,CAACC,qBAAqB,CAAC,CAAC;MAC/D;IACF,CAAC,CAAC;IAEFnB,eAAe,CAAC,MAAM;MACpBc,QAAQ,CAACM,UAAU,CAAC,CAAC;IACvB,CAAC,CAAC;IAEFjB,KAAK,CAAC,MAAMS,SAAS,CAACS,EAAE,EAAE,CAACC,QAAQ,EAAEC,QAAQ,KAAK;MAChD,IAAIA,QAAQ,EAAE;QACZT,QAAQ,CAACU,SAAS,CAACD,QAAQ,CAAC;QAC5BV,WAAW,CAACI,KAAK,GAAGN,SAAS;MAC/B;MAEA,IAAIW,QAAQ,EAAER,QAAQ,CAACW,OAAO,CAACH,QAAQ,CAAC;IAC1C,CAAC,EAAE;MACDI,KAAK,EAAE;IACT,CAAC,CAAC;EACJ;EAEA,OAAO;IACLd,SAAS;IACTC,WAAW,EAAEZ,QAAQ,CAACY,WAAW;EACnC,CAAC;AACH","ignoreList":[]}
@@ -16,7 +16,7 @@ export const createVuetify = function () {
16
16
  ...options
17
17
  });
18
18
  };
19
- export const version = "3.6.3-master.2024-05-07";
19
+ export const version = "3.6.4-master.2024-05-09";
20
20
  createVuetify.version = version;
21
21
  export { blueprints, components, directives };
22
22
  export * from "./composables/index.mjs";
package/lib/framework.mjs CHANGED
@@ -97,7 +97,7 @@ export function createVuetify() {
97
97
  goTo
98
98
  };
99
99
  }
100
- export const version = "3.6.3-master.2024-05-07";
100
+ export const version = "3.6.4-master.2024-05-09";
101
101
  createVuetify.version = version;
102
102
 
103
103
  // Vue's inject() can only be used in setup
package/lib/index.d.mts CHANGED
@@ -494,40 +494,40 @@ declare module '@vue/runtime-core' {
494
494
 
495
495
  export interface GlobalComponents {
496
496
  VApp: typeof import('vuetify/components')['VApp']
497
- VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
498
- VBadge: typeof import('vuetify/components')['VBadge']
499
- VAvatar: typeof import('vuetify/components')['VAvatar']
500
497
  VAppBar: typeof import('vuetify/components')['VAppBar']
501
498
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
502
499
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
503
500
  VAlert: typeof import('vuetify/components')['VAlert']
504
501
  VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
502
+ VAvatar: typeof import('vuetify/components')['VAvatar']
503
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
505
504
  VBanner: typeof import('vuetify/components')['VBanner']
506
505
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
507
506
  VBannerText: typeof import('vuetify/components')['VBannerText']
508
507
  VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
509
508
  VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
510
- VCarousel: typeof import('vuetify/components')['VCarousel']
511
- VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
509
+ VBadge: typeof import('vuetify/components')['VBadge']
512
510
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
513
511
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
514
512
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
515
513
  VBtn: typeof import('vuetify/components')['VBtn']
516
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
517
- VChip: typeof import('vuetify/components')['VChip']
518
- VCheckbox: typeof import('vuetify/components')['VCheckbox']
519
- VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
520
514
  VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
515
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
521
516
  VCard: typeof import('vuetify/components')['VCard']
522
517
  VCardActions: typeof import('vuetify/components')['VCardActions']
523
518
  VCardItem: typeof import('vuetify/components')['VCardItem']
524
519
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
525
520
  VCardText: typeof import('vuetify/components')['VCardText']
526
521
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
522
+ VCheckbox: typeof import('vuetify/components')['VCheckbox']
523
+ VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
524
+ VCarousel: typeof import('vuetify/components')['VCarousel']
525
+ VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
527
526
  VCode: typeof import('vuetify/components')['VCode']
528
- VChipGroup: typeof import('vuetify/components')['VChipGroup']
529
527
  VColorPicker: typeof import('vuetify/components')['VColorPicker']
528
+ VChip: typeof import('vuetify/components')['VChip']
530
529
  VCombobox: typeof import('vuetify/components')['VCombobox']
530
+ VChipGroup: typeof import('vuetify/components')['VChipGroup']
531
531
  VCounter: typeof import('vuetify/components')['VCounter']
532
532
  VDataTable: typeof import('vuetify/components')['VDataTable']
533
533
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
@@ -544,27 +544,28 @@ declare module '@vue/runtime-core' {
544
544
  VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
545
545
  VDialog: typeof import('vuetify/components')['VDialog']
546
546
  VDivider: typeof import('vuetify/components')['VDivider']
547
- VFab: typeof import('vuetify/components')['VFab']
547
+ VEmptyState: typeof import('vuetify/components')['VEmptyState']
548
548
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
549
549
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
550
550
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
551
551
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
552
- VEmptyState: typeof import('vuetify/components')['VEmptyState']
552
+ VFab: typeof import('vuetify/components')['VFab']
553
+ VFileInput: typeof import('vuetify/components')['VFileInput']
553
554
  VField: typeof import('vuetify/components')['VField']
554
555
  VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
555
556
  VFooter: typeof import('vuetify/components')['VFooter']
556
- VFileInput: typeof import('vuetify/components')['VFileInput']
557
- VInput: typeof import('vuetify/components')['VInput']
558
557
  VIcon: typeof import('vuetify/components')['VIcon']
559
558
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
560
559
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
561
560
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
562
561
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
563
- VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
562
+ VInput: typeof import('vuetify/components')['VInput']
564
563
  VImg: typeof import('vuetify/components')['VImg']
564
+ VLabel: typeof import('vuetify/components')['VLabel']
565
+ VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
566
+ VKbd: typeof import('vuetify/components')['VKbd']
565
567
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
566
568
  VItem: typeof import('vuetify/components')['VItem']
567
- VKbd: typeof import('vuetify/components')['VKbd']
568
569
  VList: typeof import('vuetify/components')['VList']
569
570
  VListGroup: typeof import('vuetify/components')['VListGroup']
570
571
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -574,50 +575,49 @@ declare module '@vue/runtime-core' {
574
575
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
575
576
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
576
577
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
577
- VLabel: typeof import('vuetify/components')['VLabel']
578
- VMessages: typeof import('vuetify/components')['VMessages']
579
578
  VMenu: typeof import('vuetify/components')['VMenu']
579
+ VMessages: typeof import('vuetify/components')['VMessages']
580
580
  VMain: typeof import('vuetify/components')['VMain']
581
+ VOtpInput: typeof import('vuetify/components')['VOtpInput']
581
582
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
582
583
  VPagination: typeof import('vuetify/components')['VPagination']
583
- VOtpInput: typeof import('vuetify/components')['VOtpInput']
584
- VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
585
- VRating: typeof import('vuetify/components')['VRating']
586
584
  VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
587
- VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
588
585
  VOverlay: typeof import('vuetify/components')['VOverlay']
586
+ VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
587
+ VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
588
+ VRating: typeof import('vuetify/components')['VRating']
589
589
  VSelect: typeof import('vuetify/components')['VSelect']
590
- VSheet: typeof import('vuetify/components')['VSheet']
590
+ VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
591
591
  VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
592
- VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
593
- VSlider: typeof import('vuetify/components')['VSlider']
592
+ VSheet: typeof import('vuetify/components')['VSheet']
594
593
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
595
594
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
596
- VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
597
- VSwitch: typeof import('vuetify/components')['VSwitch']
598
- VSnackbar: typeof import('vuetify/components')['VSnackbar']
599
- VTextField: typeof import('vuetify/components')['VTextField']
600
595
  VStepper: typeof import('vuetify/components')['VStepper']
601
596
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
602
597
  VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
603
598
  VStepperItem: typeof import('vuetify/components')['VStepperItem']
604
599
  VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
605
600
  VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
606
- VTable: typeof import('vuetify/components')['VTable']
601
+ VSnackbar: typeof import('vuetify/components')['VSnackbar']
602
+ VSlider: typeof import('vuetify/components')['VSlider']
603
+ VSwitch: typeof import('vuetify/components')['VSwitch']
604
+ VSystemBar: typeof import('vuetify/components')['VSystemBar']
607
605
  VTab: typeof import('vuetify/components')['VTab']
608
606
  VTabs: typeof import('vuetify/components')['VTabs']
609
607
  VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
610
608
  VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
611
- VSystemBar: typeof import('vuetify/components')['VSystemBar']
612
- VToolbar: typeof import('vuetify/components')['VToolbar']
613
- VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
614
- VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
609
+ VTable: typeof import('vuetify/components')['VTable']
615
610
  VTextarea: typeof import('vuetify/components')['VTextarea']
616
611
  VTimeline: typeof import('vuetify/components')['VTimeline']
617
612
  VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
613
+ VTextField: typeof import('vuetify/components')['VTextField']
614
+ VToolbar: typeof import('vuetify/components')['VToolbar']
615
+ VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
616
+ VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
617
+ VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
618
+ VTooltip: typeof import('vuetify/components')['VTooltip']
618
619
  VWindow: typeof import('vuetify/components')['VWindow']
619
620
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
620
- VTooltip: typeof import('vuetify/components')['VTooltip']
621
621
  VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
622
622
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
623
623
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
@@ -627,10 +627,10 @@ declare module '@vue/runtime-core' {
627
627
  VRow: typeof import('vuetify/components')['VRow']
628
628
  VSpacer: typeof import('vuetify/components')['VSpacer']
629
629
  VHover: typeof import('vuetify/components')['VHover']
630
+ VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
630
631
  VLayout: typeof import('vuetify/components')['VLayout']
631
632
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
632
633
  VLazy: typeof import('vuetify/components')['VLazy']
633
- VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
634
634
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
635
635
  VParallax: typeof import('vuetify/components')['VParallax']
636
636
  VRadio: typeof import('vuetify/components')['VRadio']
@@ -638,8 +638,8 @@ declare module '@vue/runtime-core' {
638
638
  VResponsive: typeof import('vuetify/components')['VResponsive']
639
639
  VSparkline: typeof import('vuetify/components')['VSparkline']
640
640
  VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
641
- VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
642
641
  VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
642
+ VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
643
643
  VValidation: typeof import('vuetify/components')['VValidation']
644
644
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
645
645
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
@@ -663,17 +663,17 @@ declare module '@vue/runtime-core' {
663
663
  VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
664
664
  VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
665
665
  VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
666
- VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
667
666
  VPicker: typeof import('vuetify/labs/components')['VPicker']
668
667
  VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
668
+ VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
669
669
  VTreeview: typeof import('vuetify/labs/components')['VTreeview']
670
670
  VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
671
671
  VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
672
672
  VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
673
673
  VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
674
674
  VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
675
+ VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
675
676
  VDateInput: typeof import('vuetify/labs/components')['VDateInput']
676
677
  VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
677
- VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
678
678
  }
679
679
  }
@@ -1,10 +1,14 @@
1
+ .v-calendar {
2
+ background: rgb(var(--v-theme-background));
3
+ color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity));
4
+ }
5
+
1
6
  .v-calendar-weekly {
2
7
  width: 100%;
3
8
  height: 100%;
4
9
  display: flex;
5
10
  flex-direction: column;
6
11
  min-height: 0;
7
- background-color: #fff;
8
12
  }
9
13
 
10
14
  .v-calendar__container {
@@ -2,6 +2,9 @@
2
2
  @use './variables' as *
3
3
 
4
4
  @include tools.layer('components')
5
+ .v-calendar
6
+ @include tools.theme($calendar-theme...)
7
+
5
8
  .v-calendar-weekly
6
9
  width: 100%
7
10
  height: 100%
@@ -9,8 +12,6 @@
9
12
  flex-direction: column
10
13
  // https://github.com/vuetifyjs/vuetify/issues/8319
11
14
  min-height: 0
12
- // Themed
13
- background-color: #fff
14
15
 
15
16
  .v-calendar__container
16
17
  border-top: $calendar-line-width solid $calendar-line-color
@@ -1,3 +1,6 @@
1
+ $calendar-color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity)) !default;
2
+ $calendar-background: rgb(var(--v-theme-background)) !default;
3
+
1
4
  $calendar-line-width: thin !default;
2
5
  $calendar-line-color: #e0e0e0 !default;
3
6
 
@@ -45,3 +48,8 @@ $calendar-event-border-width: 1px !default;
45
48
  $calendar-event-font-size: 12px !default;
46
49
  $calendar-event-line-height: 20px !default;
47
50
  $calendar-event-right-empty: 10px !default;
51
+
52
+ $calendar-theme: (
53
+ $calendar-background,
54
+ $calendar-color
55
+ ) !default;