@vuetify/nightly 3.0.0-beta.0 → 3.0.0-beta.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/CHANGELOG.md +53 -2
- package/dist/json/attributes.json +343 -195
- package/dist/json/importMap.json +20 -0
- package/dist/json/tags.json +106 -44
- package/dist/json/web-types.json +946 -549
- package/dist/vuetify.css +1486 -1085
- package/dist/vuetify.d.ts +9036 -8077
- package/dist/vuetify.esm.js +1511 -944
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +1510 -943
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +3 -3
- package/dist/vuetify.min.js +825 -754
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +29 -8
- package/lib/components/VAlert/VAlert.mjs +31 -17
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/VAlert.sass +27 -7
- package/lib/components/VAlert/VAlertTitle.mjs +1 -0
- package/lib/components/VAlert/VAlertTitle.mjs.map +1 -1
- package/lib/components/VAlert/_variables.scss +14 -7
- package/lib/components/VApp/VApp.css +1 -0
- package/lib/components/VApp/VApp.sass +1 -0
- package/lib/components/VAppBar/VAppBar.mjs +7 -3
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +82 -69
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.mjs +15 -14
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.css +82 -58
- package/lib/components/VBanner/VBanner.mjs +39 -43
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.sass +61 -54
- package/lib/components/VBanner/VBannerActions.mjs +34 -2
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
- package/lib/components/VBanner/VBannerAvatar.mjs +20 -0
- package/lib/components/VBanner/VBannerAvatar.mjs.map +1 -0
- package/lib/components/VBanner/VBannerIcon.mjs +20 -0
- package/lib/components/VBanner/VBannerIcon.mjs.map +1 -0
- package/lib/components/VBanner/_variables.scss +10 -14
- package/lib/components/VBanner/index.mjs +2 -0
- package/lib/components/VBanner/index.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +2 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +10 -9
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.css +20 -1
- package/lib/components/VBtn/VBtn.mjs +20 -7
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +15 -2
- package/lib/components/VBtn/_variables.scss +3 -0
- package/lib/components/VBtnGroup/VBtnGroup.css +14 -6
- package/lib/components/VBtnGroup/VBtnGroup.sass +14 -6
- package/lib/components/VCard/VCard.css +13 -11
- package/lib/components/VCard/VCard.mjs +5 -2
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCard.sass +12 -9
- package/lib/components/VCard/VCardActions.mjs +1 -2
- package/lib/components/VCard/VCardActions.mjs.map +1 -1
- package/lib/components/VCard/VCardContent.mjs +3 -0
- package/lib/components/VCard/VCardContent.mjs.map +1 -0
- package/lib/components/VCard/_variables.scss +11 -5
- package/lib/components/VCard/index.mjs +1 -0
- package/lib/components/VCard/index.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.mjs +1 -1
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VChip/VChip.css +3 -0
- package/lib/components/VChip/VChip.sass +3 -0
- package/lib/components/VChip/_variables.scss +3 -0
- package/lib/components/VColorPicker/VColorPickerCanvas.css +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +92 -74
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.css +31 -11
- package/lib/components/VDialog/VDialog.mjs +6 -9
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +27 -10
- package/lib/components/VDialog/_variables.scss +3 -6
- package/lib/components/VExpansionPanel/VExpansionPanel.css +3 -2
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +6 -2
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +5 -3
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +4 -0
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VField/VField.css +1 -1
- package/lib/components/VField/VField.mjs +3 -4
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +1 -1
- package/lib/components/VFileInput/VFileInput.mjs +2 -1
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFooter/VFooter.mjs +32 -15
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VForm/VForm.mjs +25 -11
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.css +27 -12
- package/lib/components/VIcon/VIcon.mjs +19 -16
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.sass +27 -16
- package/lib/components/VIcon/_variables.scss +1 -0
- package/lib/components/VInput/VInput.css +3 -1
- package/lib/components/VInput/VInput.mjs +3 -4
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/VInput.sass +3 -1
- package/lib/components/VInput/_variables.scss +4 -0
- package/lib/components/VList/VList.css +7 -6
- package/lib/components/VList/VList.mjs +36 -17
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VList.sass +3 -2
- package/lib/components/VList/VListChildren.mjs +1 -1
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +28 -10
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +119 -42
- package/lib/components/VList/VListItem.mjs +36 -32
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +76 -28
- package/lib/components/VList/VListItemAction.mjs +29 -0
- package/lib/components/VList/VListItemAction.mjs.map +1 -0
- package/lib/components/VList/VListItemAvatar.mjs +10 -16
- package/lib/components/VList/VListItemAvatar.mjs.map +1 -1
- package/lib/components/VList/VListItemIcon.mjs +23 -0
- package/lib/components/VList/VListItemIcon.mjs.map +1 -0
- package/lib/components/VList/VListItemMedia.mjs +4 -4
- package/lib/components/VList/VListItemMedia.mjs.map +1 -1
- package/lib/components/VList/_variables.scss +12 -3
- package/lib/components/VList/index.mjs +2 -0
- package/lib/components/VList/index.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.css +2 -12
- package/lib/components/VMenu/VMenu.mjs +61 -31
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.sass +3 -6
- package/lib/components/VMenu/shared.mjs +2 -0
- package/lib/components/VMenu/shared.mjs.map +1 -0
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.css +8 -0
- package/lib/components/VOverlay/VOverlay.mjs +16 -15
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.sass +9 -0
- package/lib/components/VOverlay/_variables.scss +1 -0
- package/lib/components/VOverlay/positionStrategies.mjs +7 -3
- package/lib/components/VOverlay/positionStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +9 -0
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +50 -14
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +10 -12
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.css +1 -1
- package/lib/components/VRadio/VRadio.mjs +1 -2
- package/lib/components/VRadio/VRadio.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs +5 -2
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRating/VRating.css +2 -2
- package/lib/components/VRating/VRating.mjs +13 -3
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/VRating.sass +2 -2
- package/lib/components/VSelect/VSelect.mjs +70 -91
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -1
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +2 -2
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.css +0 -5
- package/lib/components/VSlideGroup/VSlideGroup.mjs +36 -14
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.sass +0 -4
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs +3 -1
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.css +7 -2
- package/lib/components/VSlider/VSlider.sass +11 -5
- package/lib/components/VSlider/VSliderTrack.css +6 -6
- package/lib/components/VSlider/VSliderTrack.mjs +1 -1
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.sass +7 -7
- package/lib/components/VSlider/_variables.scss +5 -2
- package/lib/components/VSnackbar/VSnackbar.css +14 -13
- package/lib/components/VSnackbar/VSnackbar.mjs +22 -10
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.sass +15 -16
- package/lib/components/VSnackbar/_variables.scss +0 -4
- package/lib/components/VSwitch/VSwitch.mjs +8 -5
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.css +0 -5
- package/lib/components/VSystemBar/VSystemBar.mjs +31 -14
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.sass +0 -5
- package/lib/components/VSystemBar/_variables.scss +0 -3
- package/lib/components/VTabs/VTab.mjs +28 -32
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.css +6 -2
- package/lib/components/VTabs/VTabs.mjs +7 -8
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.sass +6 -1
- package/lib/components/VTabs/shared.mjs +2 -0
- package/lib/components/VTabs/shared.mjs.map +1 -0
- package/lib/components/VTextField/VTextField.css +4 -4
- package/lib/components/VTextField/VTextField.mjs +5 -9
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +5 -5
- package/lib/components/VTextarea/VTextarea.css +7 -4
- package/lib/components/VTextarea/VTextarea.sass +9 -5
- package/lib/components/VTimeline/VTimeline.css +187 -48
- package/lib/components/VTimeline/VTimeline.mjs +27 -11
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.sass +196 -51
- package/lib/components/VTimeline/VTimelineDivider.mjs +2 -1
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/_variables.scss +2 -1
- package/lib/components/VToolbar/VToolbar.css +8 -1
- package/lib/components/VToolbar/VToolbar.mjs +8 -11
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.sass +2 -1
- package/lib/components/VToolbar/VToolbarItems.mjs +0 -1
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
- package/lib/components/VToolbar/_variables.scss +13 -1
- package/lib/components/VWindow/VWindow.mjs +0 -8
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/index.d.ts +9025 -8077
- package/lib/composables/defaults.mjs +2 -2
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/form.mjs +18 -5
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/forwardRef.mjs +10 -6
- package/lib/composables/forwardRef.mjs.map +1 -1
- package/lib/composables/group.mjs +14 -6
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/index.mjs.map +1 -1
- package/lib/composables/items.mjs +56 -0
- package/lib/composables/items.mjs.map +1 -0
- package/lib/composables/layout.mjs +7 -3
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/composables/loader.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +27 -14
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/nested/openStrategies.mjs +63 -36
- package/lib/composables/nested/openStrategies.mjs.map +1 -1
- package/lib/composables/nested/selectStrategies.mjs +163 -122
- package/lib/composables/nested/selectStrategies.mjs.map +1 -1
- package/lib/composables/overlay.mjs +5 -1
- package/lib/composables/overlay.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/resizeObserver.mjs +1 -9
- package/lib/composables/resizeObserver.mjs.map +1 -1
- package/lib/composables/router.mjs +17 -5
- package/lib/composables/router.mjs.map +1 -1
- package/lib/composables/selectLink.mjs +19 -0
- package/lib/composables/selectLink.mjs.map +1 -0
- package/lib/composables/stack.mjs +7 -4
- package/lib/composables/stack.mjs.map +1 -1
- package/lib/composables/validation.mjs +6 -3
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/composables/variant.mjs +0 -3
- package/lib/composables/variant.mjs.map +1 -1
- package/lib/directives/ripple/index.mjs +15 -3
- package/lib/directives/ripple/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +12 -7
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.ts +18 -2
- package/lib/locale/ca.mjs +9 -9
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/styles/generic/_colors.scss +0 -1
- package/lib/styles/main.css +400 -392
- package/lib/styles/settings/_utilities.scss +54 -26
- package/lib/styles/tools/_states.sass +2 -1
- package/lib/util/defineComponent.mjs +37 -6
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/getCurrentInstance.mjs +1 -1
- package/lib/util/getCurrentInstance.mjs.map +1 -1
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +31 -29
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useProxiedModel } from "../proxiedModel.mjs";
|
|
2
2
|
import { getCurrentInstance, getUid, propsFactory } from "../../util/index.mjs";
|
|
3
3
|
import { computed, inject, onBeforeUnmount, provide, ref } from 'vue';
|
|
4
|
-
import { multipleOpenStrategy, singleOpenStrategy } from "./openStrategies.mjs";
|
|
5
|
-
import { classicSelectStrategy, independentSelectStrategy, independentSingleSelectStrategy, leafSelectStrategy } from "./selectStrategies.mjs"; // Types
|
|
4
|
+
import { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from "./openStrategies.mjs";
|
|
5
|
+
import { classicSelectStrategy, independentSelectStrategy, independentSingleSelectStrategy, leafSelectStrategy, leafSingleSelectStrategy } from "./selectStrategies.mjs"; // Types
|
|
6
6
|
|
|
7
7
|
export const VNestedSymbol = Symbol.for('vuetify:nested');
|
|
8
8
|
export const emptyNested = {
|
|
@@ -36,26 +36,29 @@ export const useNested = props => {
|
|
|
36
36
|
|
|
37
37
|
switch (props.selectStrategy) {
|
|
38
38
|
case 'single-leaf':
|
|
39
|
-
return
|
|
39
|
+
return leafSingleSelectStrategy(props.mandatory);
|
|
40
40
|
|
|
41
41
|
case 'leaf':
|
|
42
|
-
return leafSelectStrategy();
|
|
42
|
+
return leafSelectStrategy(props.mandatory);
|
|
43
43
|
|
|
44
44
|
case 'independent':
|
|
45
|
-
return independentSelectStrategy;
|
|
45
|
+
return independentSelectStrategy(props.mandatory);
|
|
46
46
|
|
|
47
47
|
case 'single-independent':
|
|
48
|
-
return independentSingleSelectStrategy;
|
|
48
|
+
return independentSingleSelectStrategy(props.mandatory);
|
|
49
49
|
|
|
50
50
|
case 'classic':
|
|
51
51
|
default:
|
|
52
|
-
return classicSelectStrategy;
|
|
52
|
+
return classicSelectStrategy(props.mandatory);
|
|
53
53
|
}
|
|
54
54
|
});
|
|
55
55
|
const openStrategy = computed(() => {
|
|
56
56
|
if (typeof props.openStrategy === 'function') return props.openStrategy;
|
|
57
57
|
|
|
58
58
|
switch (props.openStrategy) {
|
|
59
|
+
case 'list':
|
|
60
|
+
return listOpenStrategy;
|
|
61
|
+
|
|
59
62
|
case 'single':
|
|
60
63
|
return singleOpenStrategy;
|
|
61
64
|
|
|
@@ -126,7 +129,7 @@ export const useNested = props => {
|
|
|
126
129
|
path: getPath(id),
|
|
127
130
|
event
|
|
128
131
|
});
|
|
129
|
-
const newOpened = openStrategy.value({
|
|
132
|
+
const newOpened = openStrategy.value.open({
|
|
130
133
|
id,
|
|
131
134
|
value,
|
|
132
135
|
opened: new Set(opened.value),
|
|
@@ -149,10 +152,19 @@ export const useNested = props => {
|
|
|
149
152
|
selected: new Map(selected.value),
|
|
150
153
|
children: children.value,
|
|
151
154
|
parents: parents.value,
|
|
152
|
-
event
|
|
153
|
-
mandatory: props.mandatory
|
|
155
|
+
event
|
|
154
156
|
});
|
|
155
157
|
newSelected && (selected.value = newSelected);
|
|
158
|
+
const newOpened = openStrategy.value.select({
|
|
159
|
+
id,
|
|
160
|
+
value,
|
|
161
|
+
selected: new Map(selected.value),
|
|
162
|
+
opened: new Set(opened.value),
|
|
163
|
+
children: children.value,
|
|
164
|
+
parents: parents.value,
|
|
165
|
+
event
|
|
166
|
+
});
|
|
167
|
+
newOpened && (opened.value = newOpened);
|
|
156
168
|
},
|
|
157
169
|
children,
|
|
158
170
|
parents
|
|
@@ -176,11 +188,12 @@ export const useNestedItem = (id, isGroup) => {
|
|
|
176
188
|
select: (selected, e) => parent.root.select(computedId.value, selected, e),
|
|
177
189
|
isSelected: computed(() => parent.root.selected.value.get(computedId.value) === 'on'),
|
|
178
190
|
isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),
|
|
179
|
-
isLeaf: computed(() => !parent.root.children.value.get(computedId.value))
|
|
191
|
+
isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),
|
|
192
|
+
isGroupActivator: parent.isGroupActivator
|
|
180
193
|
};
|
|
181
|
-
!parent.
|
|
194
|
+
!parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup);
|
|
182
195
|
onBeforeUnmount(() => {
|
|
183
|
-
!parent.
|
|
196
|
+
!parent.isGroupActivator && parent.root.unregister(computedId.value);
|
|
184
197
|
});
|
|
185
198
|
isGroup && provide(VNestedSymbol, item);
|
|
186
199
|
return item;
|
|
@@ -188,7 +201,7 @@ export const useNestedItem = (id, isGroup) => {
|
|
|
188
201
|
export const useNestedGroupActivator = () => {
|
|
189
202
|
const parent = inject(VNestedSymbol, emptyNested);
|
|
190
203
|
provide(VNestedSymbol, { ...parent,
|
|
191
|
-
|
|
204
|
+
isGroupActivator: true
|
|
192
205
|
});
|
|
193
206
|
};
|
|
194
207
|
//# sourceMappingURL=nested.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/composables/nested/nested.ts"],"names":["useProxiedModel","getCurrentInstance","getUid","propsFactory","computed","inject","onBeforeUnmount","provide","ref","multipleOpenStrategy","singleOpenStrategy","classicSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","leafSelectStrategy","VNestedSymbol","Symbol","for","emptyNested","id","root","register","unregister","parents","Map","children","open","select","opened","Set","selected","selectedValues","makeNestedProps","selectStrategy","String","Function","openStrategy","Array","mandatory","Boolean","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","useNestedItem","computedId","toString","item","e","isOpen","has","isSelected","isIndeterminate","isLeaf","skipRegister","useNestedGroupActivator"],"mappings":"SAASA,e;SACAC,kB,EAAoBC,M,EAAQC,Y;AACrC,SAASC,QAAT,EAAmBC,MAAnB,EAA2BC,eAA3B,EAA4CC,OAA5C,EAAqDC,GAArD,QAAgE,KAAhE;SACSC,oB,EAAsBC,kB;SACtBC,qB,EAAuBC,yB,EAA2BC,+B,EAAiCC,kB,kCAE5F;;AAkCA,OAAO,MAAMC,aAA0C,GAAGC,MAAM,CAACC,GAAP,CAAW,gBAAX,CAAnD;AAEP,OAAO,MAAMC,WAA0B,GAAG;AACxCC,EAAAA,EAAE,EAAEX,GAAG,EADiC;AAExCY,EAAAA,IAAI,EAAE;AACJC,IAAAA,QAAQ,EAAE,MAAM,IADZ;AAEJC,IAAAA,UAAU,EAAE,MAAM,IAFd;AAGJC,IAAAA,OAAO,EAAEf,GAAG,CAAC,IAAIgB,GAAJ,EAAD,CAHR;AAIJC,IAAAA,QAAQ,EAAEjB,GAAG,CAAC,IAAIgB,GAAJ,EAAD,CAJT;AAKJE,IAAAA,IAAI,EAAE,MAAM,IALR;AAMJC,IAAAA,MAAM,EAAE,MAAM,IANV;AAOJC,IAAAA,MAAM,EAAEpB,GAAG,CAAC,IAAIqB,GAAJ,EAAD,CAPP;AAQJC,IAAAA,QAAQ,EAAEtB,GAAG,CAAC,IAAIgB,GAAJ,EAAD,CART;AASJO,IAAAA,cAAc,EAAEvB,GAAG,CAAC,EAAD;AATf;AAFkC,CAAnC;AAeP,OAAO,MAAMwB,eAAe,GAAG7B,YAAY,CAAC;AAC1C8B,EAAAA,cAAc,EAAE,CAACC,MAAD,EAASC,QAAT,CAD0B;AAE1CC,EAAAA,YAAY,EAAE,CAACF,MAAD,EAASC,QAAT,CAF4B;AAG1CP,EAAAA,MAAM,EAAES,KAHkC;AAI1CP,EAAAA,QAAQ,EAAEO,KAJgC;AAK1CC,EAAAA,SAAS,EAAEC;AAL+B,CAAD,EAMxC,QANwC,CAApC;AAQP,OAAO,MAAMC,SAAS,GAAIC,KAAD,IAAwB;AAC/C,MAAIC,WAAW,GAAG,KAAlB;AACA,QAAMjB,QAAQ,GAAGjB,GAAG,CAAC,IAAIgB,GAAJ,EAAD,CAApB;AACA,QAAMD,OAAO,GAAGf,GAAG,CAAC,IAAIgB,GAAJ,EAAD,CAAnB;AAEA,QAAMI,MAAM,GAAG5B,eAAe,CAACyC,KAAD,EAAQ,QAAR,EAAkBA,KAAK,CAACb,MAAxB,EAAgCe,CAAC,IAAI,IAAId,GAAJ,CAAQc,CAAR,CAArC,EAAiDA,CAAC,IAAI,CAAC,GAAGA,CAAC,CAACC,MAAF,EAAJ,CAAtD,CAA9B;AAEA,QAAMX,cAAc,GAAG7B,QAAQ,CAAC,MAAM;AACpC,QAAI,OAAOqC,KAAK,CAACR,cAAb,KAAgC,QAApC,EAA8C,OAAOQ,KAAK,CAACR,cAAb;;AAE9C,YAAQQ,KAAK,CAACR,cAAd;AACE,WAAK,aAAL;AAAoB,eAAOnB,kBAAkB,CAAC,IAAD,CAAzB;;AACpB,WAAK,MAAL;AAAa,eAAOA,kBAAkB,EAAzB;;AACb,WAAK,aAAL;AAAoB,eAAOF,yBAAP;;AACpB,WAAK,oBAAL;AAA2B,eAAOC,+BAAP;;AAC3B,WAAK,SAAL;AACA;AAAS,eAAOF,qBAAP;AANX;AAQD,GAX8B,CAA/B;AAaA,QAAMyB,YAAY,GAAGhC,QAAQ,CAAC,MAAM;AAClC,QAAI,OAAOqC,KAAK,CAACL,YAAb,KAA8B,UAAlC,EAA8C,OAAOK,KAAK,CAACL,YAAb;;AAE9C,YAAQK,KAAK,CAACL,YAAd;AACE,WAAK,QAAL;AAAe,eAAO1B,kBAAP;;AACf,WAAK,UAAL;AACA;AAAS,eAAOD,oBAAP;AAHX;AAKD,GAR4B,CAA7B;AAUA,QAAMqB,QAAQ,GAAG9B,eAAe,CAC9ByC,KAD8B,EAE9B,UAF8B,EAG9BA,KAAK,CAACX,QAHwB,EAI9Ba,CAAC,IAAIV,cAAc,CAACY,KAAf,CAAqBC,EAArB,CAAwBH,CAAxB,EAA2BlB,QAAQ,CAACoB,KAApC,EAA2CtB,OAAO,CAACsB,KAAnD,CAJyB,EAK9BF,CAAC,IAAIV,cAAc,CAACY,KAAf,CAAqBE,GAArB,CAAyBJ,CAAzB,EAA4BlB,QAAQ,CAACoB,KAArC,EAA4CtB,OAAO,CAACsB,KAApD,CALyB,CAAhC;AAQAvC,EAAAA,eAAe,CAAC,MAAM;AACpBoC,IAAAA,WAAW,GAAG,IAAd;AACD,GAFc,CAAf;;AAIA,WAASM,OAAT,CAAkB7B,EAAlB,EAA8B;AAC5B,UAAM8B,IAAc,GAAG,EAAvB;AACA,QAAIC,MAA0B,GAAG/B,EAAjC;;AAEA,WAAO+B,MAAM,IAAI,IAAjB,EAAuB;AACrBD,MAAAA,IAAI,CAACE,OAAL,CAAaD,MAAb;AACAA,MAAAA,MAAM,GAAG3B,OAAO,CAACsB,KAAR,CAAcO,GAAd,CAAkBF,MAAlB,CAAT;AACD;;AAED,WAAOD,IAAP;AACD;;AAED,QAAMI,EAAE,GAAGpD,kBAAkB,CAAC,QAAD,CAA7B;AAEA,QAAMqD,MAAqB,GAAG;AAC5BnC,IAAAA,EAAE,EAAEX,GAAG,EADqB;AAE5BY,IAAAA,IAAI,EAAE;AACJQ,MAAAA,MADI;AAEJE,MAAAA,QAFI;AAGJC,MAAAA,cAAc,EAAE3B,QAAQ,CAAC,MAAM;AAC7B,cAAMmD,GAAG,GAAG,EAAZ;;AAEA,aAAK,MAAM,CAACC,GAAD,EAAMX,KAAN,CAAX,IAA2Bf,QAAQ,CAACe,KAAT,CAAeY,OAAf,EAA3B,EAAqD;AACnD,cAAIZ,KAAK,KAAK,IAAd,EAAoBU,GAAG,CAACG,IAAJ,CAASF,GAAT;AACrB;;AAED,eAAOD,GAAP;AACD,OARuB,CAHpB;AAYJlC,MAAAA,QAAQ,EAAE,CAACF,EAAD,EAAKwC,QAAL,EAAeC,OAAf,KAA2B;AACnCD,QAAAA,QAAQ,IAAIxC,EAAE,KAAKwC,QAAnB,IAA+BpC,OAAO,CAACsB,KAAR,CAAcgB,GAAd,CAAkB1C,EAAlB,EAAsBwC,QAAtB,CAA/B;AAEAC,QAAAA,OAAO,IAAInC,QAAQ,CAACoB,KAAT,CAAegB,GAAf,CAAmB1C,EAAnB,EAAuB,EAAvB,CAAX;;AAEA,YAAIwC,QAAQ,IAAI,IAAhB,EAAsB;AACpBlC,UAAAA,QAAQ,CAACoB,KAAT,CAAegB,GAAf,CAAmBF,QAAnB,EAA6B,CAAC,IAAGlC,QAAQ,CAACoB,KAAT,CAAeO,GAAf,CAAmBO,QAAnB,KAAgC,EAAnC,CAAD,EAAwCxC,EAAxC,CAA7B;AACD;AACF,OApBG;AAqBJG,MAAAA,UAAU,EAAEH,EAAE,IAAI;AAChB,YAAIuB,WAAJ,EAAiB;AAEjBjB,QAAAA,QAAQ,CAACoB,KAAT,CAAeiB,MAAf,CAAsB3C,EAAtB;AACA,cAAM+B,MAAM,GAAG3B,OAAO,CAACsB,KAAR,CAAcO,GAAd,CAAkBjC,EAAlB,CAAf;;AACA,YAAI+B,MAAJ,EAAY;AAAA;;AACV,gBAAMa,IAAI,0BAAGtC,QAAQ,CAACoB,KAAT,CAAeO,GAAf,CAAmBF,MAAnB,CAAH,kCAAiC,EAA3C;AACAzB,UAAAA,QAAQ,CAACoB,KAAT,CAAegB,GAAf,CAAmBX,MAAnB,EAA2Ba,IAAI,CAACC,MAAL,CAAYC,KAAK,IAAIA,KAAK,KAAK9C,EAA/B,CAA3B;AACD;;AACDI,QAAAA,OAAO,CAACsB,KAAR,CAAciB,MAAd,CAAqB3C,EAArB;AACAS,QAAAA,MAAM,CAACiB,KAAP,CAAaiB,MAAb,CAAoB3C,EAApB;AACD,OAhCG;AAiCJO,MAAAA,IAAI,EAAE,CAACP,EAAD,EAAK0B,KAAL,EAAYqB,KAAZ,KAAsB;AAC1Bb,QAAAA,EAAE,CAACc,IAAH,CAAQ,YAAR,EAAsB;AAAEhD,UAAAA,EAAF;AAAM0B,UAAAA,KAAN;AAAaI,UAAAA,IAAI,EAAED,OAAO,CAAC7B,EAAD,CAA1B;AAAgC+C,UAAAA;AAAhC,SAAtB;AAEA,cAAME,SAAS,GAAGhC,YAAY,CAACS,KAAb,CAAmB;AACnC1B,UAAAA,EADmC;AAEnC0B,UAAAA,KAFmC;AAGnCjB,UAAAA,MAAM,EAAE,IAAIC,GAAJ,CAAQD,MAAM,CAACiB,KAAf,CAH2B;AAInCpB,UAAAA,QAAQ,EAAEA,QAAQ,CAACoB,KAJgB;AAKnCtB,UAAAA,OAAO,EAAEA,OAAO,CAACsB,KALkB;AAMnCqB,UAAAA;AANmC,SAAnB,CAAlB;AASAE,QAAAA,SAAS,KAAKxC,MAAM,CAACiB,KAAP,GAAeuB,SAApB,CAAT;AACD,OA9CG;AA+CJzC,MAAAA,MAAM,EAAE,CAACR,EAAD,EAAK0B,KAAL,EAAYqB,KAAZ,KAAsB;AAC5Bb,QAAAA,EAAE,CAACc,IAAH,CAAQ,cAAR,EAAwB;AAAEhD,UAAAA,EAAF;AAAM0B,UAAAA,KAAN;AAAaI,UAAAA,IAAI,EAAED,OAAO,CAAC7B,EAAD,CAA1B;AAAgC+C,UAAAA;AAAhC,SAAxB;AAEA,cAAMG,WAAW,GAAGpC,cAAc,CAACY,KAAf,CAAqBlB,MAArB,CAA4B;AAC9CR,UAAAA,EAD8C;AAE9C0B,UAAAA,KAF8C;AAG9Cf,UAAAA,QAAQ,EAAE,IAAIN,GAAJ,CAAQM,QAAQ,CAACe,KAAjB,CAHoC;AAI9CpB,UAAAA,QAAQ,EAAEA,QAAQ,CAACoB,KAJ2B;AAK9CtB,UAAAA,OAAO,EAAEA,OAAO,CAACsB,KAL6B;AAM9CqB,UAAAA,KAN8C;AAO9C5B,UAAAA,SAAS,EAAEG,KAAK,CAACH;AAP6B,SAA5B,CAApB;AASA+B,QAAAA,WAAW,KAAKvC,QAAQ,CAACe,KAAT,GAAiBwB,WAAtB,CAAX;AACD,OA5DG;AA6DJ5C,MAAAA,QA7DI;AA8DJF,MAAAA;AA9DI;AAFsB,GAA9B;AAoEAhB,EAAAA,OAAO,CAACQ,aAAD,EAAgBuC,MAAhB,CAAP;AAEA,SAAOA,MAAM,CAAClC,IAAd;AACD,CA/HM;AAiIP,OAAO,MAAMkD,aAAa,GAAG,CAACnD,EAAD,EAA8ByC,OAA9B,KAAmD;AAC9E,QAAMV,MAAM,GAAG7C,MAAM,CAACU,aAAD,EAAgBG,WAAhB,CAArB;AAEA,QAAMqD,UAAU,GAAGnE,QAAQ,CAAC;AAAA;;AAAA,wBAAMe,EAAE,CAAC0B,KAAT,wBAAkB3C,MAAM,GAAGsE,QAAT,EAAlB;AAAA,GAAD,CAA3B;AAEA,QAAMC,IAAI,GAAG,EACX,GAAGvB,MADQ;AAEX/B,IAAAA,EAAE,EAAEoD,UAFO;AAGX7C,IAAAA,IAAI,EAAE,CAACA,IAAD,EAAgBgD,CAAhB,KAA6BxB,MAAM,CAAC9B,IAAP,CAAYM,IAAZ,CAAiB6C,UAAU,CAAC1B,KAA5B,EAAmCnB,IAAnC,EAAyCgD,CAAzC,CAHxB;AAIXC,IAAAA,MAAM,EAAEvE,QAAQ,CAAC,MAAM8C,MAAM,CAAC9B,IAAP,CAAYQ,MAAZ,CAAmBiB,KAAnB,CAAyB+B,GAAzB,CAA6BL,UAAU,CAAC1B,KAAxC,CAAP,CAJL;AAKXK,IAAAA,MAAM,EAAE9C,QAAQ,CAAC,MAAM8C,MAAM,CAAC9B,IAAP,CAAYG,OAAZ,CAAoBsB,KAApB,CAA0BO,GAA1B,CAA8BmB,UAAU,CAAC1B,KAAzC,CAAP,CALL;AAMXlB,IAAAA,MAAM,EAAE,CAACG,QAAD,EAAoB4C,CAApB,KAAiCxB,MAAM,CAAC9B,IAAP,CAAYO,MAAZ,CAAmB4C,UAAU,CAAC1B,KAA9B,EAAqCf,QAArC,EAA+C4C,CAA/C,CAN9B;AAOXG,IAAAA,UAAU,EAAEzE,QAAQ,CAAC,MAAM8C,MAAM,CAAC9B,IAAP,CAAYU,QAAZ,CAAqBe,KAArB,CAA2BO,GAA3B,CAA+BmB,UAAU,CAAC1B,KAA1C,MAAqD,IAA5D,CAPT;AAQXiC,IAAAA,eAAe,EAAE1E,QAAQ,CAAC,MAAM8C,MAAM,CAAC9B,IAAP,CAAYU,QAAZ,CAAqBe,KAArB,CAA2BO,GAA3B,CAA+BmB,UAAU,CAAC1B,KAA1C,MAAqD,eAA5D,CARd;AASXkC,IAAAA,MAAM,EAAE3E,QAAQ,CAAC,MAAM,CAAC8C,MAAM,CAAC9B,IAAP,CAAYK,QAAZ,CAAqBoB,KAArB,CAA2BO,GAA3B,CAA+BmB,UAAU,CAAC1B,KAA1C,CAAR;AATL,GAAb;AAYA,GAACK,MAAM,CAAC8B,YAAR,IAAwB9B,MAAM,CAAC9B,IAAP,CAAYC,QAAZ,CAAqBkD,UAAU,CAAC1B,KAAhC,EAAuCK,MAAM,CAAC/B,EAAP,CAAU0B,KAAjD,EAAwDe,OAAxD,CAAxB;AAEAtD,EAAAA,eAAe,CAAC,MAAM;AACpB,KAAC4C,MAAM,CAAC8B,YAAR,IAAwB9B,MAAM,CAAC9B,IAAP,CAAYE,UAAZ,CAAuBiD,UAAU,CAAC1B,KAAlC,CAAxB;AACD,GAFc,CAAf;AAIAe,EAAAA,OAAO,IAAIrD,OAAO,CAACQ,aAAD,EAAgB0D,IAAhB,CAAlB;AAEA,SAAOA,IAAP;AACD,CA1BM;AA4BP,OAAO,MAAMQ,uBAAuB,GAAG,MAAM;AAC3C,QAAM/B,MAAM,GAAG7C,MAAM,CAACU,aAAD,EAAgBG,WAAhB,CAArB;AAEAX,EAAAA,OAAO,CAACQ,aAAD,EAAgB,EAAE,GAAGmC,MAAL;AAAa8B,IAAAA,YAAY,EAAE;AAA3B,GAAhB,CAAP;AACD,CAJM","sourcesContent":["import { useProxiedModel } from '@/composables/proxiedModel'\nimport { getCurrentInstance, getUid, propsFactory } from '@/util'\nimport { computed, inject, onBeforeUnmount, provide, ref } from 'vue'\nimport { multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport { classicSelectStrategy, independentSelectStrategy, independentSingleSelectStrategy, leafSelectStrategy } from './selectStrategies'\n\n// Types\nimport type { InjectionKey, Prop, Ref } from 'vue'\nimport type { SelectStrategyFn } from './selectStrategies'\nimport type { OpenStrategyFn } from './openStrategies'\n\nexport type SelectStrategy = 'single-leaf' | 'leaf' | 'independent' | 'single-independent' | 'classic' | SelectStrategyFn\nexport type OpenStrategy = 'single' | 'multiple' | OpenStrategyFn\n\nexport interface NestedProps {\n selectStrategy: SelectStrategy | undefined\n openStrategy: OpenStrategy | undefined\n selected: string[] | undefined\n opened: string[] | undefined\n mandatory: boolean\n 'onUpdate:selected': ((val: string[]) => void) | undefined\n 'onUpdate:opened': ((val: string[]) => void) | undefined\n}\n\ntype NestedProvide = {\n id: Ref<string | undefined>\n skipRegister?: boolean\n root: {\n children: Ref<Map<string, string[]>>\n parents: Ref<Map<string, string>>\n opened: Ref<Set<string>>\n selected: Ref<Map<string, 'on' | 'off' | 'indeterminate'>>\n selectedValues: Ref<string[]>\n register: (id: string, parentId: string | undefined, isGroup?: boolean) => void\n unregister: (id: string) => void\n open: (id: string, value: boolean, event?: Event) => void\n select: (id: string, value: boolean, event?: Event) => void\n }\n}\n\nexport const VNestedSymbol: InjectionKey<NestedProvide> = Symbol.for('vuetify:nested')\n\nexport const emptyNested: NestedProvide = {\n id: ref(),\n root: {\n register: () => null,\n unregister: () => null,\n parents: ref(new Map()),\n children: ref(new Map()),\n open: () => null,\n select: () => null,\n opened: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n },\n}\n\nexport const makeNestedProps = propsFactory({\n selectStrategy: [String, Function] as Prop<SelectStrategy>,\n openStrategy: [String, Function] as Prop<OpenStrategy>,\n opened: Array as Prop<string[]>,\n selected: Array as Prop<string[]>,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = ref(new Map<string, string[]>())\n const parents = ref(new Map<string, string>())\n\n const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()])\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n\n switch (props.selectStrategy) {\n case 'single-leaf': return leafSelectStrategy(true)\n case 'leaf': return leafSelectStrategy()\n case 'independent': return independentSelectStrategy\n case 'single-independent': return independentSingleSelectStrategy\n case 'classic':\n default: return classicSelectStrategy\n }\n })\n\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'function') return props.openStrategy\n\n switch (props.openStrategy) {\n case 'single': return singleOpenStrategy\n case 'multiple':\n default: return multipleOpenStrategy\n }\n })\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: string) {\n const path: string[] = []\n let parent: string | undefined = 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: ref(),\n root: {\n opened,\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({\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 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 mandatory: props.mandatory,\n })\n newSelected && (selected.value = newSelected)\n },\n children,\n parents,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: Ref<string | undefined>, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const computedId = computed(() => id.value ?? getUid().toString())\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(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 select: (selected: boolean, e: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(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 }\n\n !parent.skipRegister && parent.root.register(computedId.value, parent.id.value, isGroup)\n\n onBeforeUnmount(() => {\n !parent.skipRegister && 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, skipRegister: true })\n}\n"],"file":"nested.mjs"}
|
|
1
|
+
{"version":3,"sources":["../../../src/composables/nested/nested.ts"],"names":["useProxiedModel","getCurrentInstance","getUid","propsFactory","computed","inject","onBeforeUnmount","provide","ref","listOpenStrategy","multipleOpenStrategy","singleOpenStrategy","classicSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","VNestedSymbol","Symbol","for","emptyNested","id","root","register","unregister","parents","Map","children","open","select","opened","Set","selected","selectedValues","makeNestedProps","selectStrategy","String","Function","openStrategy","Array","mandatory","Boolean","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","useNestedItem","computedId","toString","item","e","isOpen","has","isSelected","isIndeterminate","isLeaf","isGroupActivator","useNestedGroupActivator"],"mappings":"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","sourcesContent":["import { useProxiedModel } from '@/composables/proxiedModel'\nimport { getCurrentInstance, getUid, propsFactory } from '@/util'\nimport { computed, inject, onBeforeUnmount, provide, ref } from 'vue'\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport {\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n} from './selectStrategies'\n\n// Types\nimport type { InjectionKey, Prop, Ref } from 'vue'\nimport type { SelectStrategyFn } from './selectStrategies'\nimport type { OpenStrategy } from './openStrategies'\n\nexport type SelectStrategy = 'single-leaf' | 'leaf' | 'independent' | 'single-independent' | 'classic' | SelectStrategyFn\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n selectStrategy: SelectStrategy | undefined\n openStrategy: OpenStrategyProp | undefined\n selected: string[] | undefined\n opened: string[] | undefined\n mandatory: boolean\n 'onUpdate:selected': ((val: string[]) => void) | undefined\n 'onUpdate:opened': ((val: string[]) => void) | undefined\n}\n\ntype NestedProvide = {\n id: Ref<string | undefined>\n isGroupActivator?: boolean\n root: {\n children: Ref<Map<string, string[]>>\n parents: Ref<Map<string, string>>\n opened: Ref<Set<string>>\n selected: Ref<Map<string, 'on' | 'off' | 'indeterminate'>>\n selectedValues: Ref<string[]>\n register: (id: string, parentId: string | undefined, isGroup?: boolean) => void\n unregister: (id: string) => void\n open: (id: string, value: boolean, event?: Event) => void\n select: (id: string, value: boolean, event?: Event) => void\n }\n}\n\nexport const VNestedSymbol: InjectionKey<NestedProvide> = Symbol.for('vuetify:nested')\n\nexport const emptyNested: NestedProvide = {\n id: ref(),\n root: {\n register: () => null,\n unregister: () => null,\n parents: ref(new Map()),\n children: ref(new Map()),\n open: () => null,\n select: () => null,\n opened: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n },\n}\n\nexport const makeNestedProps = propsFactory({\n selectStrategy: [String, Function] as Prop<SelectStrategy>,\n openStrategy: [String, Function] as Prop<OpenStrategyProp>,\n opened: Array as Prop<string[]>,\n selected: Array as Prop<string[]>,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = ref(new Map<string, string[]>())\n const parents = ref(new Map<string, string>())\n\n const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()])\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 === 'function') 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 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: string) {\n const path: string[] = []\n let parent: string | undefined = 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: ref(),\n root: {\n opened,\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 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 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 children,\n parents,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: Ref<string | undefined>, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const computedId = computed(() => id.value ?? getUid().toString())\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(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 select: (selected: boolean, e?: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(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"],"file":"nested.mjs"}
|
|
@@ -1,49 +1,76 @@
|
|
|
1
|
-
export const singleOpenStrategy =
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
if (value) {
|
|
10
|
-
const newOpened = new Set();
|
|
11
|
-
newOpened.add(id);
|
|
12
|
-
let parent = parents.get(id);
|
|
1
|
+
export const singleOpenStrategy = {
|
|
2
|
+
open: _ref => {
|
|
3
|
+
let {
|
|
4
|
+
id,
|
|
5
|
+
value,
|
|
6
|
+
opened,
|
|
7
|
+
parents
|
|
8
|
+
} = _ref;
|
|
13
9
|
|
|
14
|
-
|
|
15
|
-
newOpened
|
|
16
|
-
|
|
10
|
+
if (value) {
|
|
11
|
+
const newOpened = new Set();
|
|
12
|
+
newOpened.add(id);
|
|
13
|
+
let parent = parents.get(id);
|
|
14
|
+
|
|
15
|
+
while (parent != null) {
|
|
16
|
+
newOpened.add(parent);
|
|
17
|
+
parent = parents.get(parent);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return newOpened;
|
|
21
|
+
} else {
|
|
22
|
+
opened.delete(id);
|
|
23
|
+
return opened;
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
select: () => null
|
|
27
|
+
};
|
|
28
|
+
export const multipleOpenStrategy = {
|
|
29
|
+
open: _ref2 => {
|
|
30
|
+
let {
|
|
31
|
+
id,
|
|
32
|
+
value,
|
|
33
|
+
opened,
|
|
34
|
+
parents
|
|
35
|
+
} = _ref2;
|
|
36
|
+
|
|
37
|
+
if (value) {
|
|
38
|
+
let parent = parents.get(id);
|
|
39
|
+
opened.add(id);
|
|
40
|
+
|
|
41
|
+
while (parent != null && parent !== id) {
|
|
42
|
+
opened.add(parent);
|
|
43
|
+
parent = parents.get(parent);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return opened;
|
|
47
|
+
} else {
|
|
48
|
+
opened.delete(id);
|
|
17
49
|
}
|
|
18
50
|
|
|
19
|
-
return newOpened;
|
|
20
|
-
} else {
|
|
21
|
-
opened.delete(id);
|
|
22
51
|
return opened;
|
|
23
|
-
}
|
|
52
|
+
},
|
|
53
|
+
select: () => null
|
|
24
54
|
};
|
|
25
|
-
export const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
55
|
+
export const listOpenStrategy = {
|
|
56
|
+
open: multipleOpenStrategy.open,
|
|
57
|
+
select: _ref3 => {
|
|
58
|
+
let {
|
|
59
|
+
id,
|
|
60
|
+
value,
|
|
61
|
+
opened,
|
|
62
|
+
parents
|
|
63
|
+
} = _ref3;
|
|
64
|
+
if (!value) return opened;
|
|
65
|
+
const path = [];
|
|
34
66
|
let parent = parents.get(id);
|
|
35
|
-
opened.add(id);
|
|
36
67
|
|
|
37
|
-
while (parent != null
|
|
38
|
-
|
|
68
|
+
while (parent != null) {
|
|
69
|
+
path.push(parent);
|
|
39
70
|
parent = parents.get(parent);
|
|
40
71
|
}
|
|
41
72
|
|
|
42
|
-
return
|
|
43
|
-
} else {
|
|
44
|
-
opened.delete(id);
|
|
73
|
+
return new Set(path);
|
|
45
74
|
}
|
|
46
|
-
|
|
47
|
-
return opened;
|
|
48
75
|
};
|
|
49
76
|
//# sourceMappingURL=openStrategies.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/composables/nested/openStrategies.ts"],"names":["singleOpenStrategy","id","value","opened","parents","newOpened","Set","add","parent","get","delete","multipleOpenStrategy"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/composables/nested/openStrategies.ts"],"names":["singleOpenStrategy","open","id","value","opened","parents","newOpened","Set","add","parent","get","delete","select","multipleOpenStrategy","listOpenStrategy","path","push"],"mappings":"AAwBA,OAAO,MAAMA,kBAAgC,GAAG;AAC9CC,EAAAA,IAAI,EAAE,QAAoC;AAAA,QAAnC;AAAEC,MAAAA,EAAF;AAAMC,MAAAA,KAAN;AAAaC,MAAAA,MAAb;AAAqBC,MAAAA;AAArB,KAAmC;;AACxC,QAAIF,KAAJ,EAAW;AACT,YAAMG,SAAS,GAAG,IAAIC,GAAJ,EAAlB;AACAD,MAAAA,SAAS,CAACE,GAAV,CAAcN,EAAd;AAEA,UAAIO,MAAM,GAAGJ,OAAO,CAACK,GAAR,CAAYR,EAAZ,CAAb;;AAEA,aAAOO,MAAM,IAAI,IAAjB,EAAuB;AACrBH,QAAAA,SAAS,CAACE,GAAV,CAAcC,MAAd;AACAA,QAAAA,MAAM,GAAGJ,OAAO,CAACK,GAAR,CAAYD,MAAZ,CAAT;AACD;;AAED,aAAOH,SAAP;AACD,KAZD,MAYO;AACLF,MAAAA,MAAM,CAACO,MAAP,CAAcT,EAAd;AACA,aAAOE,MAAP;AACD;AACF,GAlB6C;AAmB9CQ,EAAAA,MAAM,EAAE,MAAM;AAnBgC,CAAzC;AAsBP,OAAO,MAAMC,oBAAkC,GAAG;AAChDZ,EAAAA,IAAI,EAAE,SAAoC;AAAA,QAAnC;AAAEC,MAAAA,EAAF;AAAMC,MAAAA,KAAN;AAAaC,MAAAA,MAAb;AAAqBC,MAAAA;AAArB,KAAmC;;AACxC,QAAIF,KAAJ,EAAW;AACT,UAAIM,MAAM,GAAGJ,OAAO,CAACK,GAAR,CAAYR,EAAZ,CAAb;AACAE,MAAAA,MAAM,CAACI,GAAP,CAAWN,EAAX;;AAEA,aAAOO,MAAM,IAAI,IAAV,IAAkBA,MAAM,KAAKP,EAApC,EAAwC;AACtCE,QAAAA,MAAM,CAACI,GAAP,CAAWC,MAAX;AACAA,QAAAA,MAAM,GAAGJ,OAAO,CAACK,GAAR,CAAYD,MAAZ,CAAT;AACD;;AAED,aAAOL,MAAP;AACD,KAVD,MAUO;AACLA,MAAAA,MAAM,CAACO,MAAP,CAAcT,EAAd;AACD;;AACD,WAAOE,MAAP;AACD,GAhB+C;AAiBhDQ,EAAAA,MAAM,EAAE,MAAM;AAjBkC,CAA3C;AAoBP,OAAO,MAAME,gBAA8B,GAAG;AAC5Cb,EAAAA,IAAI,EAAEY,oBAAoB,CAACZ,IADiB;AAE5CW,EAAAA,MAAM,EAAE,SAAoC;AAAA,QAAnC;AAAEV,MAAAA,EAAF;AAAMC,MAAAA,KAAN;AAAaC,MAAAA,MAAb;AAAqBC,MAAAA;AAArB,KAAmC;AAC1C,QAAI,CAACF,KAAL,EAAY,OAAOC,MAAP;AAEZ,UAAMW,IAAc,GAAG,EAAvB;AAEA,QAAIN,MAAM,GAAGJ,OAAO,CAACK,GAAR,CAAYR,EAAZ,CAAb;;AAEA,WAAOO,MAAM,IAAI,IAAjB,EAAuB;AACrBM,MAAAA,IAAI,CAACC,IAAL,CAAUP,MAAV;AACAA,MAAAA,MAAM,GAAGJ,OAAO,CAACK,GAAR,CAAYD,MAAZ,CAAT;AACD;;AAED,WAAO,IAAIF,GAAJ,CAAQQ,IAAR,CAAP;AACD;AAf2C,CAAvC","sourcesContent":["export type OpenStrategyFn = (data: {\n id: string\n value: boolean\n opened: Set<string>\n children: Map<string, string[]>\n parents: Map<string, string>\n event?: Event\n}) => Set<string>\n\nexport type OpenSelectStrategyFn = (data: {\n id: string\n value: boolean\n opened: Set<string>\n selected: Map<string, 'on' | 'off' | 'indeterminate'>\n children: Map<string, string[]>\n parents: Map<string, string>\n event?: Event\n}) => Set<string> | 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<string>()\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: string[] = []\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"],"file":"openStrategies.mjs"}
|
|
@@ -1,87 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
let {
|
|
4
|
-
id,
|
|
5
|
-
value,
|
|
6
|
-
mandatory,
|
|
7
|
-
selected
|
|
8
|
-
} = _ref;
|
|
9
|
-
selected.set(id, value ? 'on' : mandatory && !Array.from(selected.entries()).find(_ref2 => {
|
|
10
|
-
let [key, value] = _ref2;
|
|
11
|
-
return value === 'on' && key !== id;
|
|
12
|
-
}) ? 'on' : 'off');
|
|
13
|
-
return selected;
|
|
14
|
-
},
|
|
15
|
-
in: (v, children, parents) => {
|
|
16
|
-
let map = new Map();
|
|
17
|
-
|
|
18
|
-
for (const id of v || []) {
|
|
19
|
-
map = independentSelectStrategy.select({
|
|
20
|
-
id,
|
|
21
|
-
value: true,
|
|
22
|
-
selected: new Map(map),
|
|
23
|
-
children,
|
|
24
|
-
parents
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return map;
|
|
29
|
-
},
|
|
30
|
-
out: v => {
|
|
31
|
-
const arr = [];
|
|
32
|
-
|
|
33
|
-
for (const [key, value] of v.entries()) {
|
|
34
|
-
if (value === 'on') arr.push(key);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return arr;
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
export const independentSingleSelectStrategy = {
|
|
41
|
-
select: _ref3 => {
|
|
42
|
-
let {
|
|
43
|
-
id,
|
|
44
|
-
value,
|
|
45
|
-
...rest
|
|
46
|
-
} = _ref3;
|
|
47
|
-
return independentSelectStrategy.select({ ...rest,
|
|
48
|
-
id,
|
|
49
|
-
value,
|
|
50
|
-
selected: new Map()
|
|
51
|
-
});
|
|
52
|
-
},
|
|
53
|
-
in: (v, children, parents) => {
|
|
54
|
-
let map = new Map();
|
|
55
|
-
|
|
56
|
-
if (v != null && v.length) {
|
|
57
|
-
map = independentSelectStrategy.in(v.slice(0, 1), children, parents);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
return map;
|
|
61
|
-
},
|
|
62
|
-
out: (v, children, parents) => {
|
|
63
|
-
return independentSelectStrategy.out(v, children, parents);
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
export const leafSelectStrategy = function () {
|
|
67
|
-
let single = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
1
|
+
/* eslint-disable sonarjs/no-identical-functions */
|
|
2
|
+
export const independentSelectStrategy = mandatory => {
|
|
68
3
|
const strategy = {
|
|
69
|
-
select:
|
|
4
|
+
select: _ref => {
|
|
70
5
|
let {
|
|
71
6
|
id,
|
|
72
7
|
value,
|
|
73
|
-
selected
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
8
|
+
selected
|
|
9
|
+
} = _ref;
|
|
10
|
+
|
|
11
|
+
// When mandatory and we're trying to deselect when id
|
|
12
|
+
// is the only currently selected item then do nothing
|
|
13
|
+
if (mandatory && !value) {
|
|
14
|
+
const on = Array.from(selected.entries()).reduce((arr, _ref2) => {
|
|
15
|
+
let [key, value] = _ref2;
|
|
16
|
+
return value === 'on' ? [...arr, key] : arr;
|
|
17
|
+
}, []);
|
|
18
|
+
if (on.length === 1 && on[0] === id) return selected;
|
|
19
|
+
}
|
|
20
|
+
|
|
78
21
|
selected.set(id, value ? 'on' : 'off');
|
|
79
22
|
return selected;
|
|
80
23
|
},
|
|
81
24
|
in: (v, children, parents) => {
|
|
82
25
|
let map = new Map();
|
|
83
26
|
|
|
84
|
-
for (const id of v
|
|
27
|
+
for (const id of v || []) {
|
|
85
28
|
map = strategy.select({
|
|
86
29
|
id,
|
|
87
30
|
value: true,
|
|
@@ -93,65 +36,163 @@ export const leafSelectStrategy = function () {
|
|
|
93
36
|
|
|
94
37
|
return map;
|
|
95
38
|
},
|
|
96
|
-
out:
|
|
39
|
+
out: v => {
|
|
40
|
+
const arr = [];
|
|
41
|
+
|
|
42
|
+
for (const [key, value] of v.entries()) {
|
|
43
|
+
if (value === 'on') arr.push(key);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return arr;
|
|
47
|
+
}
|
|
97
48
|
};
|
|
98
49
|
return strategy;
|
|
99
50
|
};
|
|
100
|
-
export const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
}
|
|
118
|
-
}
|
|
51
|
+
export const independentSingleSelectStrategy = mandatory => {
|
|
52
|
+
const parentStrategy = independentSelectStrategy(mandatory);
|
|
53
|
+
const strategy = {
|
|
54
|
+
select: _ref3 => {
|
|
55
|
+
let {
|
|
56
|
+
selected,
|
|
57
|
+
id,
|
|
58
|
+
...rest
|
|
59
|
+
} = _ref3;
|
|
60
|
+
const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)]]) : new Map();
|
|
61
|
+
return parentStrategy.select({ ...rest,
|
|
62
|
+
id,
|
|
63
|
+
selected: singleSelected
|
|
64
|
+
});
|
|
65
|
+
},
|
|
66
|
+
in: (v, children, parents) => {
|
|
67
|
+
let map = new Map();
|
|
119
68
|
|
|
120
|
-
|
|
69
|
+
if (v != null && v.length) {
|
|
70
|
+
map = parentStrategy.in(v.slice(0, 1), children, parents);
|
|
71
|
+
}
|
|
121
72
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate');
|
|
127
|
-
parent = parents.get(parent);
|
|
73
|
+
return map;
|
|
74
|
+
},
|
|
75
|
+
out: (v, children, parents) => {
|
|
76
|
+
return parentStrategy.out(v, children, parents);
|
|
128
77
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
78
|
+
};
|
|
79
|
+
return strategy;
|
|
80
|
+
};
|
|
81
|
+
export const leafSelectStrategy = mandatory => {
|
|
82
|
+
const parentStrategy = independentSelectStrategy(mandatory);
|
|
83
|
+
const strategy = {
|
|
84
|
+
select: _ref4 => {
|
|
85
|
+
let {
|
|
137
86
|
id,
|
|
138
|
-
|
|
139
|
-
selected: new Map(map),
|
|
87
|
+
selected,
|
|
140
88
|
children,
|
|
141
|
-
|
|
89
|
+
...rest
|
|
90
|
+
} = _ref4;
|
|
91
|
+
if (children.has(id)) return selected;
|
|
92
|
+
return parentStrategy.select({
|
|
93
|
+
id,
|
|
94
|
+
selected,
|
|
95
|
+
children,
|
|
96
|
+
...rest
|
|
142
97
|
});
|
|
143
|
-
}
|
|
98
|
+
},
|
|
99
|
+
in: parentStrategy.in,
|
|
100
|
+
out: parentStrategy.out
|
|
101
|
+
};
|
|
102
|
+
return strategy;
|
|
103
|
+
};
|
|
104
|
+
export const leafSingleSelectStrategy = mandatory => {
|
|
105
|
+
const parentStrategy = independentSingleSelectStrategy(mandatory);
|
|
106
|
+
const strategy = {
|
|
107
|
+
select: _ref5 => {
|
|
108
|
+
let {
|
|
109
|
+
id,
|
|
110
|
+
selected,
|
|
111
|
+
children,
|
|
112
|
+
...rest
|
|
113
|
+
} = _ref5;
|
|
114
|
+
if (children.has(id)) return selected;
|
|
115
|
+
return parentStrategy.select({
|
|
116
|
+
id,
|
|
117
|
+
selected,
|
|
118
|
+
children,
|
|
119
|
+
...rest
|
|
120
|
+
});
|
|
121
|
+
},
|
|
122
|
+
in: parentStrategy.in,
|
|
123
|
+
out: parentStrategy.out
|
|
124
|
+
};
|
|
125
|
+
return strategy;
|
|
126
|
+
};
|
|
127
|
+
export const classicSelectStrategy = mandatory => {
|
|
128
|
+
const strategy = {
|
|
129
|
+
select: _ref6 => {
|
|
130
|
+
let {
|
|
131
|
+
id,
|
|
132
|
+
value,
|
|
133
|
+
selected,
|
|
134
|
+
children,
|
|
135
|
+
parents
|
|
136
|
+
} = _ref6;
|
|
137
|
+
const original = new Map(selected);
|
|
138
|
+
const items = [id];
|
|
144
139
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
const arr = [];
|
|
140
|
+
while (items.length) {
|
|
141
|
+
const item = items.shift();
|
|
142
|
+
selected.set(item, value ? 'on' : 'off');
|
|
149
143
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
144
|
+
if (children.has(item)) {
|
|
145
|
+
items.push(...children.get(item));
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
let parent = parents.get(id);
|
|
153
150
|
|
|
154
|
-
|
|
155
|
-
|
|
151
|
+
while (parent) {
|
|
152
|
+
const childrenIds = children.get(parent);
|
|
153
|
+
const everySelected = childrenIds.every(cid => selected.get(cid) === 'on');
|
|
154
|
+
const noneSelected = childrenIds.every(cid => !selected.has(cid) || selected.get(cid) === 'off');
|
|
155
|
+
selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate');
|
|
156
|
+
parent = parents.get(parent);
|
|
157
|
+
} // If mandatory and planned deselect results in no selected
|
|
158
|
+
// items then we can't do it, so return original state
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
if (mandatory && !value) {
|
|
162
|
+
const on = Array.from(selected.entries()).reduce((arr, _ref7) => {
|
|
163
|
+
let [key, value] = _ref7;
|
|
164
|
+
return value === 'on' ? [...arr, key] : arr;
|
|
165
|
+
}, []);
|
|
166
|
+
if (on.length === 0) return original;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
return selected;
|
|
170
|
+
},
|
|
171
|
+
in: (v, children, parents) => {
|
|
172
|
+
let map = new Map();
|
|
173
|
+
|
|
174
|
+
for (const id of v || []) {
|
|
175
|
+
map = strategy.select({
|
|
176
|
+
id,
|
|
177
|
+
value: true,
|
|
178
|
+
selected: new Map(map),
|
|
179
|
+
children,
|
|
180
|
+
parents
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
return map;
|
|
185
|
+
},
|
|
186
|
+
out: (v, children) => {
|
|
187
|
+
const arr = [];
|
|
188
|
+
|
|
189
|
+
for (const [key, value] of v.entries()) {
|
|
190
|
+
if (value === 'on' && !children.has(key)) arr.push(key);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
return arr;
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
return strategy;
|
|
156
197
|
};
|
|
157
198
|
//# sourceMappingURL=selectStrategies.mjs.map
|