@volverjs/ui-vue 0.0.10-beta.3 → 0.0.10-beta.31
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/LICENSE +1 -1
- package/README.md +106 -10
- package/auto-imports.d.ts +7 -2
- package/bin/icons.cjs +1 -1
- package/bin/icons.js +22 -15
- package/dist/Volver.d.ts +1 -1
- package/dist/components/VvAccordion/VvAccordion.es.js +192 -103
- package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
- package/dist/components/VvAccordion/VvAccordion.vue.d.ts +160 -8
- package/dist/components/VvAccordion/index.d.ts +8 -9
- package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +451 -172
- package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
- package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +58 -13
- package/dist/components/VvAccordionGroup/index.d.ts +14 -6
- package/dist/components/VvAction/VvAction.es.js +78 -27
- package/dist/components/VvAction/VvAction.umd.js +1 -1
- package/dist/components/VvAction/VvAction.vue.d.ts +57 -22
- package/dist/components/VvAction/index.d.ts +25 -9
- package/dist/components/VvAlert/VvAlert.es.js +204 -171
- package/dist/components/VvAlert/VvAlert.umd.js +1 -1
- package/dist/components/VvAlert/VvAlert.vue.d.ts +24 -14
- package/dist/components/VvAlert/index.d.ts +17 -9
- package/dist/components/VvAlertGroup/VvAlertGroup.es.js +250 -188
- package/dist/components/VvAlertGroup/VvAlertGroup.umd.js +1 -1
- package/dist/components/VvAlertGroup/VvAlertGroup.vue.d.ts +16 -9
- package/dist/components/VvAlertGroup/index.d.ts +6 -14
- package/dist/components/VvAvatar/VvAvatar.es.js +61 -21
- package/dist/components/VvAvatar/VvAvatar.umd.js +1 -1
- package/dist/components/VvAvatar/VvAvatar.vue.d.ts +12 -4
- package/dist/components/VvAvatar/index.d.ts +4 -1
- package/dist/components/VvAvatarGroup/VvAvatarGroup.es.js +118 -48
- package/dist/components/VvAvatarGroup/VvAvatarGroup.umd.js +1 -1
- package/dist/components/VvAvatarGroup/VvAvatarGroup.vue.d.ts +10 -3
- package/dist/components/VvAvatarGroup/index.d.ts +4 -1
- package/dist/components/VvBadge/VvBadge.es.js +78 -28
- package/dist/components/VvBadge/VvBadge.umd.js +1 -1
- package/dist/components/VvBadge/VvBadge.vue.d.ts +12 -4
- package/dist/components/VvBadge/index.d.ts +4 -1
- package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +276 -60
- package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
- package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +27 -7
- package/dist/components/VvBreadcrumb/index.d.ts +6 -10
- package/dist/components/VvButton/VvButton.es.js +291 -252
- package/dist/components/VvButton/VvButton.umd.js +1 -1
- package/dist/components/VvButton/VvButton.vue.d.ts +94 -40
- package/dist/components/VvButton/index.d.ts +51 -29
- package/dist/components/VvButtonGroup/VvButtonGroup.es.js +81 -40
- package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
- package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +24 -11
- package/dist/components/VvButtonGroup/index.d.ts +8 -2
- package/dist/components/VvCard/VvCard.es.js +86 -36
- package/dist/components/VvCard/VvCard.umd.js +1 -1
- package/dist/components/VvCard/VvCard.vue.d.ts +12 -4
- package/dist/components/VvCard/index.d.ts +4 -1
- package/dist/components/VvCheckbox/VvCheckbox.es.js +177 -120
- package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
- package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +105 -33
- package/dist/components/VvCheckbox/index.d.ts +47 -14
- package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +190 -107
- package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
- package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +101 -30
- package/dist/components/VvCheckboxGroup/index.d.ts +45 -12
- package/dist/components/VvCombobox/VvCombobox.es.js +806 -581
- package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
- package/dist/components/VvCombobox/VvCombobox.vue.d.ts +171 -104
- package/dist/components/VvCombobox/index.d.ts +62 -26
- package/dist/components/VvDialog/VvDialog.es.js +140 -153
- package/dist/components/VvDialog/VvDialog.umd.js +1 -1
- package/dist/components/VvDialog/VvDialog.vue.d.ts +4 -4
- package/dist/components/VvDropdown/VvDropdown.es.js +138 -71
- package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
- package/dist/components/VvDropdown/VvDropdown.vue.d.ts +101 -75
- package/dist/components/VvDropdown/VvDropdownAction.vue.d.ts +66 -25
- package/dist/components/VvDropdown/VvDropdownItem.vue.d.ts +13 -1
- package/dist/components/VvDropdown/VvDropdownOptgroup.vue.d.ts +12 -4
- package/dist/components/VvDropdown/VvDropdownOption.vue.d.ts +35 -7
- package/dist/components/VvDropdown/index.d.ts +52 -10
- package/dist/components/VvDropdownAction/VvDropdownAction.es.js +152 -39
- package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -1
- package/dist/components/VvDropdownItem/VvDropdownItem.es.js +335 -8
- package/dist/components/VvDropdownItem/VvDropdownItem.umd.js +1 -1
- package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.es.js +63 -20
- package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.umd.js +1 -1
- package/dist/components/VvDropdownOption/VvDropdownOption.es.js +188 -80
- package/dist/components/VvDropdownOption/VvDropdownOption.umd.js +1 -1
- package/dist/components/VvIcon/VvIcon.es.js +23 -96
- package/dist/components/VvIcon/VvIcon.umd.js +1 -1
- package/dist/components/VvIcon/VvIcon.vue.d.ts +23 -66
- package/dist/components/VvIcon/index.d.ts +33 -48
- package/dist/components/VvInputFile/VvInputFile.es.js +1777 -0
- package/dist/components/VvInputFile/VvInputFile.umd.js +1 -0
- package/dist/components/VvInputFile/VvInputFile.vue.d.ts +359 -0
- package/dist/components/VvInputFile/index.d.ts +200 -0
- package/dist/components/VvInputText/VvInputClearAction.d.ts +7 -5
- package/dist/components/VvInputText/VvInputPasswordAction.d.ts +10 -8
- package/dist/components/VvInputText/VvInputStepAction.d.ts +2 -2
- package/dist/components/VvInputText/VvInputText.es.js +1237 -324
- package/dist/components/VvInputText/VvInputText.umd.js +1 -1
- package/dist/components/VvInputText/VvInputText.vue.d.ts +207 -57
- package/dist/components/VvInputText/index.d.ts +99 -29
- package/dist/components/VvNav/VvNav.es.js +135 -56
- package/dist/components/VvNav/VvNav.umd.js +1 -1
- package/dist/components/VvNav/VvNav.vue.d.ts +32 -9
- package/dist/components/VvNav/VvNavItem.vue.d.ts +1 -1
- package/dist/components/VvNav/VvNavSeparator.vue.d.ts +1 -1
- package/dist/components/VvNav/index.d.ts +5 -2
- package/dist/components/VvNavItem/VvNavItem.es.js +91 -33
- package/dist/components/VvNavItem/VvNavItem.umd.js +1 -1
- package/dist/components/VvProgress/VvProgress.es.js +72 -26
- package/dist/components/VvProgress/VvProgress.umd.js +1 -1
- package/dist/components/VvProgress/VvProgress.vue.d.ts +10 -3
- package/dist/components/VvProgress/index.d.ts +4 -1
- package/dist/components/VvRadio/VvRadio.es.js +160 -103
- package/dist/components/VvRadio/VvRadio.umd.js +1 -1
- package/dist/components/VvRadio/VvRadio.vue.d.ts +103 -31
- package/dist/components/VvRadio/index.d.ts +50 -17
- package/dist/components/VvRadioGroup/VvRadioGroup.es.js +190 -107
- package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
- package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +101 -30
- package/dist/components/VvRadioGroup/index.d.ts +45 -12
- package/dist/components/VvSelect/VvSelect.es.js +251 -238
- package/dist/components/VvSelect/VvSelect.umd.js +1 -1
- package/dist/components/VvSelect/VvSelect.vue.d.ts +117 -44
- package/dist/components/VvSelect/index.d.ts +48 -14
- package/dist/components/VvTab/VvTab.es.js +191 -75
- package/dist/components/VvTab/VvTab.umd.js +1 -1
- package/dist/components/VvTab/VvTab.vue.d.ts +31 -7
- package/dist/components/VvTab/index.d.ts +4 -1
- package/dist/components/VvTextarea/VvTextarea.es.js +232 -224
- package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
- package/dist/components/VvTextarea/VvTextarea.vue.d.ts +156 -49
- package/dist/components/VvTextarea/index.d.ts +68 -19
- package/dist/components/VvTooltip/VvTooltip.es.js +79 -29
- package/dist/components/VvTooltip/VvTooltip.umd.js +1 -1
- package/dist/components/VvTooltip/VvTooltip.vue.d.ts +13 -6
- package/dist/components/VvTooltip/index.d.ts +5 -2
- package/dist/components/common/HintSlot.d.ts +1 -1
- package/dist/components/index.d.ts +10 -0
- package/dist/components/index.es.js +3534 -1650
- package/dist/components/index.umd.js +1 -1
- package/dist/composables/alert/useAlert.d.ts +99 -4
- package/dist/composables/alert/useInjectAlert.d.ts +1 -6
- package/dist/composables/dropdown/useInjectDropdown.d.ts +3 -23
- package/dist/composables/dropdown/useProvideDropdown.d.ts +3 -4
- package/dist/composables/group/useInjectedGroupState.d.ts +4 -5
- package/dist/composables/group/useProvideGroupState.d.ts +3 -3
- package/dist/composables/index.d.ts +1 -0
- package/dist/composables/index.es.js +92 -3
- package/dist/composables/index.umd.js +1 -1
- package/dist/composables/useBlurhash.d.ts +7 -0
- package/dist/composables/useComponentIcon.d.ts +9 -8
- package/dist/composables/usePersistence.d.ts +2 -0
- package/dist/composables/useVolver.d.ts +1 -1
- package/dist/constants.d.ts +34 -32
- package/dist/directives/index.d.ts +3 -5
- package/dist/directives/index.es.js +99 -43
- package/dist/directives/index.umd.js +1 -1
- package/dist/directives/v-tooltip.es.js +97 -38
- package/dist/directives/v-tooltip.umd.js +1 -1
- package/dist/icons.es.js +267 -267
- package/dist/icons.umd.js +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.es.js +90 -16
- package/dist/index.umd.js +1 -1
- package/dist/props/index.d.ts +272 -81
- package/dist/resolvers/unplugin.d.ts +6 -1
- package/dist/resolvers/unplugin.es.js +87 -10
- package/dist/resolvers/unplugin.umd.js +1 -1
- package/dist/stories/AccordionGroup/AccordionGroup.stories.d.ts +143 -89
- package/dist/stories/AccordionGroup/AccordionGroupSlots.stories.d.ts +1075 -492
- package/dist/stories/AlertGroup/AlertGroupWithComposable.stories.d.ts +1 -1
- package/dist/stories/Blurhash/BlurhashComposable.stories.d.ts +4 -0
- package/dist/stories/Button/Button.settings.d.ts +0 -1
- package/dist/stories/Combobox/Combobox.settings.d.ts +8 -0
- package/dist/stories/Icon/Icon.settings.d.ts +1 -0
- package/dist/stories/InputFile/InputFile.settings.d.ts +56 -0
- package/dist/stories/InputFile/InputFile.stories.d.ts +12 -0
- package/dist/stories/InputFile/InputFileDropArea.stories.d.ts +9 -0
- package/dist/stories/InputFile/InputFileIconPosition.stories.d.ts +8 -0
- package/dist/stories/InputFile/InputFileSlots.stories.d.ts +7 -0
- package/dist/stories/Tab/Tab.settings.d.ts +2 -15
- package/dist/test/expect.d.ts +1 -1
- package/dist/types/alert.d.ts +9 -7
- package/dist/types/blurhash.d.ts +12 -0
- package/dist/types/generic.d.ts +1 -2
- package/dist/types/group.d.ts +37 -15
- package/dist/types/index.d.ts +7 -0
- package/dist/types/input-file.d.ts +16 -0
- package/dist/types/nav.d.ts +2 -2
- package/dist/utils/ObjectUtilities.d.ts +0 -1
- package/dist/workers/blurhash.d.ts +1 -0
- package/package.json +78 -78
- package/src/Volver.ts +31 -20
- package/src/assets/icons/detailed.json +1 -1
- package/src/assets/icons/normal.json +1 -1
- package/src/assets/icons/simple.json +1 -1
- package/src/components/VvAccordion/VvAccordion.vue +121 -58
- package/src/components/VvAccordion/index.ts +8 -23
- package/src/components/VvAccordionGroup/VvAccordionGroup.vue +164 -47
- package/src/components/VvAccordionGroup/index.ts +6 -6
- package/src/components/VvAction/VvAction.vue +17 -5
- package/src/components/VvAlert/index.ts +14 -9
- package/src/components/VvAlertGroup/index.ts +3 -15
- package/src/components/VvBreadcrumb/VvBreadcrumb.vue +20 -19
- package/src/components/VvBreadcrumb/index.ts +2 -8
- package/src/components/VvButton/VvButton.vue +17 -7
- package/src/components/VvButton/index.ts +9 -16
- package/src/components/VvButtonGroup/VvButtonGroup.vue +1 -2
- package/src/components/VvCheckbox/index.ts +2 -2
- package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +1 -2
- package/src/components/VvCombobox/VvCombobox.vue +15 -12
- package/src/components/VvCombobox/index.ts +4 -0
- package/src/components/VvDropdown/VvDropdown.vue +11 -2
- package/src/components/VvDropdown/VvDropdownItem.vue +4 -1
- package/src/components/VvDropdown/VvDropdownOption.vue +4 -21
- package/src/components/VvDropdown/index.ts +35 -1
- package/src/components/VvIcon/VvIcon.vue +2 -2
- package/src/components/VvIcon/index.ts +35 -48
- package/src/components/VvInputFile/VvInputFile.vue +395 -0
- package/src/components/VvInputFile/index.ts +135 -0
- package/src/components/VvInputText/VvInputClearAction.ts +10 -6
- package/src/components/VvInputText/VvInputPasswordAction.ts +13 -9
- package/src/components/VvInputText/VvInputText.vue +141 -33
- package/src/components/VvInputText/index.ts +31 -16
- package/src/components/VvNav/VvNav.vue +4 -2
- package/src/components/VvRadio/index.ts +5 -5
- package/src/components/VvRadioGroup/VvRadioGroup.vue +1 -2
- package/src/components/VvSelect/VvSelect.vue +5 -8
- package/src/components/VvTab/VvTab.vue +5 -1
- package/src/components/VvTextarea/VvTextarea.vue +6 -9
- package/src/components/index.ts +10 -0
- package/src/composables/alert/useAlert.ts +12 -9
- package/src/composables/dropdown/useProvideDropdown.ts +4 -4
- package/src/composables/group/useInjectedGroupState.ts +20 -16
- package/src/composables/group/useProvideGroupState.ts +10 -15
- package/src/composables/index.ts +1 -0
- package/src/composables/useBlurhash.ts +76 -0
- package/src/composables/useComponentIcon.ts +15 -14
- package/src/composables/usePersistence.ts +76 -0
- package/src/composables/useUniqueId.ts +2 -2
- package/src/constants.ts +47 -32
- package/src/directives/index.ts +3 -6
- package/src/directives/v-tooltip.ts +19 -10
- package/src/index.ts +3 -1
- package/src/props/index.ts +108 -31
- package/src/resolvers/unplugin.ts +24 -14
- package/src/stories/Accordion/Accordion.test.ts +1 -1
- package/src/stories/AccordionGroup/AccordionGroup.settings.ts +2 -2
- package/src/stories/AccordionGroup/AccordionGroup.test.ts +17 -11
- package/src/stories/AccordionGroup/AccordionGroupSlots.stories.ts +1 -1
- package/src/stories/Alert/Alert.test.ts +1 -1
- package/src/stories/AlertGroup/AlertGroup.test.ts +1 -1
- package/src/stories/AlertGroup/AlertGroupWithComposable.stories.ts +2 -2
- package/src/stories/Avatar/Avatar.test.ts +1 -1
- package/src/stories/AvatarGroup/AvatarGroup.test.ts +1 -1
- package/src/stories/Badge/Badge.test.ts +1 -1
- package/src/stories/Blurhash/BlurhashComposable.stories.ts +195 -0
- package/src/stories/Button/Button.settings.ts +1 -4
- package/src/stories/Button/Button.test.ts +1 -1
- package/src/stories/ButtonGroup/ButtonGroup.test.ts +1 -1
- package/src/stories/Card/Card.test.ts +1 -1
- package/src/stories/Checkbox/Checkbox.test.ts +1 -1
- package/src/stories/CheckboxGroup/CheckboxGroup.test.ts +1 -1
- package/src/stories/Combobox/Combobox.settings.ts +8 -0
- package/src/stories/Combobox/Combobox.test.ts +1 -1
- package/src/stories/Dialog/Dialog.test.ts +2 -2
- package/src/stories/Dropdown/Dropdown.test.ts +1 -1
- package/src/stories/Icon/Icon.settings.ts +3 -3
- package/src/stories/InputFile/InputFile.settings.ts +36 -0
- package/src/stories/InputFile/InputFile.stories.ts +89 -0
- package/src/stories/InputFile/InputFileDropArea.stories.ts +56 -0
- package/src/stories/InputFile/InputFileIconPosition.stories.ts +43 -0
- package/src/stories/InputFile/InputFileSlots.stories.ts +33 -0
- package/src/stories/InputText/InputText.test.ts +1 -1
- package/src/stories/Nav/Nav.test.ts +1 -1
- package/src/stories/Progress/Progress.test.ts +1 -1
- package/src/stories/Radio/Radio.test.ts +1 -1
- package/src/stories/RadioGroup/RadioGroup.test.ts +1 -1
- package/src/stories/Select/Select.test.ts +1 -1
- package/src/stories/Tab/Tab.settings.ts +2 -2
- package/src/stories/Tab/Tab.test.ts +1 -1
- package/src/stories/Textarea/Textarea.test.ts +1 -1
- package/src/stories/Tooltip/Tooltip.test.ts +1 -1
- package/src/stories/argTypes.ts +1 -1
- package/src/test/expect.ts +2 -4
- package/src/types/alert.ts +11 -7
- package/src/types/blurhash.ts +21 -0
- package/src/types/generic.ts +3 -3
- package/src/types/group.ts +22 -14
- package/src/types/index.ts +7 -0
- package/src/types/input-file.ts +18 -0
- package/src/types/nav.ts +2 -3
- package/src/utils/ObjectUtilities.ts +0 -11
- package/src/workers/blurhash.ts +9 -0
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
1
|
+
import { inject, computed, toRef, unref, defineComponent, useAttrs, toRefs, ref, watch, onBeforeUnmount, openBlock, createElementBlock, normalizeClass, createElementVNode, withModifiers, renderSlot, normalizeProps, guardReactiveProps, createTextVNode, toDisplayString, isRef, provide, watchEffect, reactive, onMounted, nextTick, Fragment, renderList, createBlock, mergeProps, createSlots, withCtx } from "vue";
|
|
2
|
+
import mitt from "mitt";
|
|
3
|
+
import { uid } from "uid";
|
|
4
|
+
import { useVModel, useStorage } from "@vueuse/core";
|
|
5
|
+
var StorageType = /* @__PURE__ */ ((StorageType2) => {
|
|
6
|
+
StorageType2["local"] = "local";
|
|
7
|
+
StorageType2["session"] = "session";
|
|
8
|
+
return StorageType2;
|
|
9
|
+
})(StorageType || {});
|
|
4
10
|
var Strategy = /* @__PURE__ */ ((Strategy2) => {
|
|
5
11
|
Strategy2["absolute"] = "absolute";
|
|
6
12
|
Strategy2["fixed"] = "fixed";
|
|
@@ -35,14 +41,16 @@ var ButtonType = /* @__PURE__ */ ((ButtonType2) => {
|
|
|
35
41
|
ButtonType2["reset"] = "reset";
|
|
36
42
|
return ButtonType2;
|
|
37
43
|
})(ButtonType || {});
|
|
38
|
-
var
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
return
|
|
44
|
-
})(
|
|
45
|
-
const INJECTION_KEY_ACCORDION_GROUP = Symbol.for(
|
|
44
|
+
var ActionTag = /* @__PURE__ */ ((ActionTag2) => {
|
|
45
|
+
ActionTag2["nuxtLink"] = "nuxt-link";
|
|
46
|
+
ActionTag2["routerLink"] = "router-link";
|
|
47
|
+
ActionTag2["a"] = "a";
|
|
48
|
+
ActionTag2["button"] = "button";
|
|
49
|
+
return ActionTag2;
|
|
50
|
+
})(ActionTag || {});
|
|
51
|
+
const INJECTION_KEY_ACCORDION_GROUP = Symbol.for(
|
|
52
|
+
"accordionGroup"
|
|
53
|
+
);
|
|
46
54
|
const LinkProps = {
|
|
47
55
|
/**
|
|
48
56
|
* The router-link/nuxt-link property, if it is defined the button is rendered as a ruouter-link or nuxt-link.
|
|
@@ -58,10 +66,7 @@ const LinkProps = {
|
|
|
58
66
|
/**
|
|
59
67
|
* Anchor target
|
|
60
68
|
*/
|
|
61
|
-
target:
|
|
62
|
-
type: String,
|
|
63
|
-
validator: (value) => Object.values(AnchorTarget).includes(value)
|
|
64
|
-
},
|
|
69
|
+
target: String,
|
|
65
70
|
/**
|
|
66
71
|
* Anchor rel
|
|
67
72
|
*/
|
|
@@ -74,44 +79,65 @@ const DisabledProps = {
|
|
|
74
79
|
/**
|
|
75
80
|
* Whether the form control is disabled
|
|
76
81
|
*/
|
|
77
|
-
disabled:
|
|
82
|
+
disabled: {
|
|
83
|
+
type: Boolean,
|
|
84
|
+
default: false
|
|
85
|
+
}
|
|
78
86
|
};
|
|
79
87
|
const ActiveProps = {
|
|
80
88
|
/**
|
|
81
89
|
* Whether the item is active
|
|
82
90
|
*/
|
|
83
|
-
active:
|
|
91
|
+
active: {
|
|
92
|
+
type: Boolean,
|
|
93
|
+
default: false
|
|
94
|
+
}
|
|
84
95
|
};
|
|
85
96
|
const CurrentProps = {
|
|
86
97
|
/**
|
|
87
98
|
* Whether the item is current
|
|
88
99
|
*/
|
|
89
|
-
current:
|
|
100
|
+
current: {
|
|
101
|
+
type: Boolean,
|
|
102
|
+
default: false
|
|
103
|
+
}
|
|
90
104
|
};
|
|
91
105
|
const PressedProps = {
|
|
92
106
|
/**
|
|
93
107
|
* Whether the item is pressed
|
|
94
108
|
*/
|
|
95
|
-
pressed:
|
|
109
|
+
pressed: {
|
|
110
|
+
type: Boolean,
|
|
111
|
+
default: false
|
|
112
|
+
}
|
|
96
113
|
};
|
|
97
114
|
const LabelProps = {
|
|
98
115
|
/**
|
|
99
116
|
* The item label
|
|
100
117
|
*/
|
|
101
|
-
label:
|
|
118
|
+
label: {
|
|
119
|
+
type: [String, Number],
|
|
120
|
+
default: void 0
|
|
121
|
+
}
|
|
102
122
|
};
|
|
103
123
|
const ModifiersProps = {
|
|
104
124
|
/**
|
|
105
125
|
* Component BEM modifiers
|
|
106
126
|
*/
|
|
107
|
-
modifiers:
|
|
127
|
+
modifiers: {
|
|
128
|
+
type: [String, Array],
|
|
129
|
+
default: void 0
|
|
130
|
+
}
|
|
108
131
|
};
|
|
109
132
|
({
|
|
110
133
|
/**
|
|
111
134
|
* VvIcon name or props
|
|
112
135
|
* @see VVIcon
|
|
113
136
|
*/
|
|
114
|
-
icon: {
|
|
137
|
+
icon: {
|
|
138
|
+
type: [String, Object],
|
|
139
|
+
default: void 0
|
|
140
|
+
},
|
|
115
141
|
/**
|
|
116
142
|
* VvIcon position
|
|
117
143
|
*/
|
|
@@ -142,7 +168,8 @@ const ModifiersProps = {
|
|
|
142
168
|
* Dropdown show / hide transition name
|
|
143
169
|
*/
|
|
144
170
|
transitionName: {
|
|
145
|
-
type: String
|
|
171
|
+
type: String,
|
|
172
|
+
default: void 0
|
|
146
173
|
},
|
|
147
174
|
/**
|
|
148
175
|
* Offset of the dropdown from the trigger
|
|
@@ -210,7 +237,8 @@ const ModifiersProps = {
|
|
|
210
237
|
* Set dropdown width to the same as the trigger
|
|
211
238
|
*/
|
|
212
239
|
triggerWidth: {
|
|
213
|
-
type: Boolean
|
|
240
|
+
type: Boolean,
|
|
241
|
+
default: false
|
|
214
242
|
}
|
|
215
243
|
});
|
|
216
244
|
({
|
|
@@ -234,20 +262,32 @@ const ModifiersProps = {
|
|
|
234
262
|
ariaLabel: {
|
|
235
263
|
type: String,
|
|
236
264
|
default: void 0
|
|
265
|
+
},
|
|
266
|
+
/**
|
|
267
|
+
* Default tag for the action
|
|
268
|
+
*/
|
|
269
|
+
defaultTag: {
|
|
270
|
+
type: String,
|
|
271
|
+
default: ActionTag.button
|
|
237
272
|
}
|
|
238
273
|
});
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
274
|
+
const StorageProps = {
|
|
275
|
+
storageType: {
|
|
276
|
+
type: String,
|
|
277
|
+
default: StorageType.local,
|
|
278
|
+
validator: (value) => Object.values(StorageType).includes(value)
|
|
279
|
+
},
|
|
280
|
+
storageKey: String
|
|
281
|
+
};
|
|
242
282
|
function useInjectedGroupState(groupKey) {
|
|
243
283
|
const group = inject(groupKey, void 0);
|
|
244
|
-
const isInGroup = computed(() =>
|
|
284
|
+
const isInGroup = computed(() => group !== void 0);
|
|
245
285
|
function getGroupOrLocalRef(propName, props, emit) {
|
|
246
|
-
|
|
247
|
-
|
|
286
|
+
const groupPropValue = group == null ? void 0 : group[propName];
|
|
287
|
+
if (groupPropValue) {
|
|
248
288
|
return computed({
|
|
249
289
|
get() {
|
|
250
|
-
return groupPropValue
|
|
290
|
+
return groupPropValue.value;
|
|
251
291
|
},
|
|
252
292
|
set(value) {
|
|
253
293
|
groupPropValue.value = value;
|
|
@@ -260,8 +300,9 @@ function useInjectedGroupState(groupKey) {
|
|
|
260
300
|
return propRef.value;
|
|
261
301
|
},
|
|
262
302
|
set(value) {
|
|
263
|
-
if (emit)
|
|
303
|
+
if (emit) {
|
|
264
304
|
emit(`update:${propName}`, value);
|
|
305
|
+
}
|
|
265
306
|
}
|
|
266
307
|
});
|
|
267
308
|
}
|
|
@@ -302,23 +343,16 @@ const VvAccordionProps = {
|
|
|
302
343
|
not: Boolean
|
|
303
344
|
};
|
|
304
345
|
const VvAccordionEvents = ["update:modelValue"];
|
|
305
|
-
function useGroupProps(props
|
|
306
|
-
const { group, isInGroup
|
|
346
|
+
function useGroupProps(props) {
|
|
347
|
+
const { group, isInGroup } = useInjectedGroupState(
|
|
307
348
|
INJECTION_KEY_ACCORDION_GROUP
|
|
308
349
|
);
|
|
309
|
-
const { title, content } = toRefs(props);
|
|
310
|
-
const modelValue = getGroupOrLocalRef("modelValue", props, emit);
|
|
311
|
-
const not = getGroupOrLocalRef("not", props);
|
|
312
|
-
const collapse = getGroupOrLocalRef("collapse", props);
|
|
313
350
|
const disabled = computed(
|
|
314
|
-
() =>
|
|
315
|
-
var _a;
|
|
316
|
-
return Boolean(props.disabled || ((_a = group == null ? void 0 : group.value) == null ? void 0 : _a.disabled.value));
|
|
317
|
-
}
|
|
351
|
+
() => Boolean(props.disabled || (group == null ? void 0 : group.disabled.value))
|
|
318
352
|
);
|
|
319
353
|
const modifiers = computed(() => {
|
|
320
354
|
let localModifiers = props.modifiers;
|
|
321
|
-
let groupModifiers = group == null ? void 0 : group.
|
|
355
|
+
let groupModifiers = group == null ? void 0 : group.modifiers.value;
|
|
322
356
|
const toReturn = /* @__PURE__ */ new Set();
|
|
323
357
|
if (localModifiers) {
|
|
324
358
|
if (!Array.isArray(localModifiers)) {
|
|
@@ -336,16 +370,11 @@ function useGroupProps(props, emit) {
|
|
|
336
370
|
});
|
|
337
371
|
return {
|
|
338
372
|
// group props
|
|
339
|
-
modelValue,
|
|
340
|
-
not,
|
|
341
373
|
isInGroup,
|
|
342
374
|
group,
|
|
343
|
-
collapse,
|
|
344
375
|
modifiers,
|
|
345
376
|
disabled,
|
|
346
|
-
|
|
347
|
-
title,
|
|
348
|
-
content
|
|
377
|
+
bus: group == null ? void 0 : group.bus
|
|
349
378
|
};
|
|
350
379
|
}
|
|
351
380
|
function useModifiers(prefix, modifiers, others) {
|
|
@@ -381,61 +410,103 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
381
410
|
...__default__$1,
|
|
382
411
|
props: VvAccordionProps,
|
|
383
412
|
emits: VvAccordionEvents,
|
|
384
|
-
setup(__props, { emit }) {
|
|
413
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
385
414
|
const props = __props;
|
|
386
415
|
const attrs = useAttrs();
|
|
416
|
+
const emit = __emit;
|
|
417
|
+
const modelValue = useVModel(props, "modelValue", emit);
|
|
387
418
|
const accordionName = computed(
|
|
388
|
-
() => props.name || (attrs == null ? void 0 : attrs.id) ||
|
|
419
|
+
() => props.name || (attrs == null ? void 0 : attrs.id) || uid()
|
|
389
420
|
);
|
|
390
|
-
const {
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
disabled,
|
|
395
|
-
collapse,
|
|
421
|
+
const { title, content, not } = toRefs(props);
|
|
422
|
+
const { isInGroup, modifiers, disabled, bus } = useGroupProps(props);
|
|
423
|
+
const isExpanded = ref(false);
|
|
424
|
+
watch(
|
|
396
425
|
modelValue,
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
const localModelValue = ref(false);
|
|
401
|
-
const isOpen = computed({
|
|
402
|
-
get: () => {
|
|
403
|
-
let toReturn = modelValue.value;
|
|
404
|
-
if (isInGroup.value) {
|
|
405
|
-
if (collapse.value && Array.isArray(modelValue.value)) {
|
|
406
|
-
toReturn = modelValue.value.includes(accordionName.value);
|
|
407
|
-
} else {
|
|
408
|
-
toReturn = modelValue.value === accordionName.value;
|
|
409
|
-
}
|
|
410
|
-
} else if (modelValue.value === void 0) {
|
|
411
|
-
toReturn = localModelValue.value;
|
|
426
|
+
(newValue) => {
|
|
427
|
+
if (typeof newValue === "boolean") {
|
|
428
|
+
isExpanded.value = not.value ? !newValue : newValue;
|
|
412
429
|
}
|
|
413
|
-
return not.value ? !toReturn : toReturn;
|
|
414
430
|
},
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
431
|
+
{ immediate: true }
|
|
432
|
+
);
|
|
433
|
+
watch(isExpanded, (newValue) => {
|
|
434
|
+
modelValue.value = not.value ? !newValue : newValue;
|
|
435
|
+
});
|
|
436
|
+
bus == null ? void 0 : bus.on("toggle", ({ name, value }) => {
|
|
437
|
+
if (name !== accordionName.value) {
|
|
438
|
+
return;
|
|
439
|
+
}
|
|
440
|
+
isExpanded.value = value;
|
|
441
|
+
});
|
|
442
|
+
const onClick = () => {
|
|
443
|
+
if (disabled.value) {
|
|
444
|
+
return;
|
|
445
|
+
}
|
|
446
|
+
if (isInGroup.value) {
|
|
447
|
+
bus == null ? void 0 : bus.emit("toggle", {
|
|
448
|
+
name: accordionName.value,
|
|
449
|
+
value: !isExpanded.value
|
|
450
|
+
});
|
|
451
|
+
return;
|
|
452
|
+
}
|
|
453
|
+
isExpanded.value = !isExpanded.value;
|
|
454
|
+
};
|
|
455
|
+
watch(
|
|
456
|
+
accordionName,
|
|
457
|
+
(newValue, oldValue) => {
|
|
458
|
+
if (bus) {
|
|
459
|
+
if (oldValue && oldValue !== newValue) {
|
|
460
|
+
bus.emit("unregister", { name: oldValue });
|
|
429
461
|
}
|
|
430
|
-
|
|
431
|
-
return;
|
|
462
|
+
bus.emit("register", { name: newValue });
|
|
432
463
|
}
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
immediate: true
|
|
467
|
+
}
|
|
468
|
+
);
|
|
469
|
+
onBeforeUnmount(() => {
|
|
470
|
+
if (bus) {
|
|
471
|
+
bus.emit("unregister", { name: accordionName.value });
|
|
472
|
+
}
|
|
473
|
+
});
|
|
474
|
+
const expand = () => {
|
|
475
|
+
if (isExpanded.value) {
|
|
476
|
+
return;
|
|
477
|
+
}
|
|
478
|
+
onClick();
|
|
479
|
+
};
|
|
480
|
+
const collapse = () => {
|
|
481
|
+
if (!isExpanded.value) {
|
|
482
|
+
return;
|
|
438
483
|
}
|
|
484
|
+
onClick();
|
|
485
|
+
};
|
|
486
|
+
const groupExpand = (name) => {
|
|
487
|
+
if (!bus) {
|
|
488
|
+
console.warn(
|
|
489
|
+
`[VvAccordion]: You are trying to expand accordion group of "${accordionName.value}" but it is not in a group`
|
|
490
|
+
);
|
|
491
|
+
return;
|
|
492
|
+
}
|
|
493
|
+
bus.emit("expand", { name });
|
|
494
|
+
};
|
|
495
|
+
const groupCollapse = (name) => {
|
|
496
|
+
if (!bus) {
|
|
497
|
+
console.warn(
|
|
498
|
+
`[VvAccordion]: You are trying to collapse accordion group of "${accordionName.value}" but it is not in a group`
|
|
499
|
+
);
|
|
500
|
+
return;
|
|
501
|
+
}
|
|
502
|
+
bus == null ? void 0 : bus.emit("collapse", { name });
|
|
503
|
+
};
|
|
504
|
+
__expose({
|
|
505
|
+
isExpanded,
|
|
506
|
+
expand,
|
|
507
|
+
collapse,
|
|
508
|
+
groupExpand,
|
|
509
|
+
groupCollapse
|
|
439
510
|
});
|
|
440
511
|
const bemCssClasses = useModifiers(
|
|
441
512
|
"vv-accordion",
|
|
@@ -444,29 +515,48 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
444
515
|
disabled: disabled.value
|
|
445
516
|
}))
|
|
446
517
|
);
|
|
447
|
-
const onClick = useToggle(isOpen);
|
|
448
518
|
return (_ctx, _cache) => {
|
|
449
519
|
return openBlock(), createElementBlock("details", {
|
|
450
520
|
id: unref(accordionName),
|
|
451
521
|
class: normalizeClass(unref(bemCssClasses)),
|
|
452
|
-
open: unref(
|
|
522
|
+
open: unref(isExpanded)
|
|
453
523
|
}, [
|
|
454
524
|
createElementVNode("summary", {
|
|
455
525
|
"aria-controls": unref(accordionName),
|
|
456
|
-
"aria-expanded": unref(
|
|
526
|
+
"aria-expanded": unref(isExpanded),
|
|
457
527
|
class: "vv-accordion__summary",
|
|
458
|
-
onClick: _cache[0] || (_cache[0] = withModifiers(($event) =>
|
|
528
|
+
onClick: _cache[0] || (_cache[0] = withModifiers(($event) => onClick(), ["prevent"]))
|
|
459
529
|
}, [
|
|
460
|
-
renderSlot(_ctx.$slots, "summary", normalizeProps(guardReactiveProps({
|
|
461
|
-
|
|
530
|
+
renderSlot(_ctx.$slots, "summary", normalizeProps(guardReactiveProps({
|
|
531
|
+
isExpanded: unref(isExpanded),
|
|
532
|
+
expand,
|
|
533
|
+
collapse,
|
|
534
|
+
groupExpand,
|
|
535
|
+
groupCollapse
|
|
536
|
+
})), () => [
|
|
537
|
+
createTextVNode(
|
|
538
|
+
toDisplayString(unref(title)),
|
|
539
|
+
1
|
|
540
|
+
/* TEXT */
|
|
541
|
+
)
|
|
462
542
|
])
|
|
463
543
|
], 8, _hoisted_2),
|
|
464
544
|
createElementVNode("div", {
|
|
465
|
-
"aria-hidden": !unref(
|
|
545
|
+
"aria-hidden": !unref(isExpanded),
|
|
466
546
|
class: "vv-accordion__content"
|
|
467
547
|
}, [
|
|
468
|
-
renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({
|
|
469
|
-
|
|
548
|
+
renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({
|
|
549
|
+
isExpanded: unref(isExpanded),
|
|
550
|
+
expand,
|
|
551
|
+
collapse,
|
|
552
|
+
groupExpand,
|
|
553
|
+
groupCollapse
|
|
554
|
+
})), () => [
|
|
555
|
+
createTextVNode(
|
|
556
|
+
toDisplayString(unref(content)),
|
|
557
|
+
1
|
|
558
|
+
/* TEXT */
|
|
559
|
+
)
|
|
470
560
|
])
|
|
471
561
|
], 8, _hoisted_3)
|
|
472
562
|
], 10, _hoisted_1);
|
|
@@ -475,10 +565,14 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
475
565
|
});
|
|
476
566
|
const VvAccordionGroupProps = {
|
|
477
567
|
...ModifiersProps,
|
|
568
|
+
...StorageProps,
|
|
478
569
|
/**
|
|
479
570
|
* VModel
|
|
480
571
|
*/
|
|
481
|
-
modelValue:
|
|
572
|
+
modelValue: {
|
|
573
|
+
type: [String, Array],
|
|
574
|
+
default: void 0
|
|
575
|
+
},
|
|
482
576
|
/**
|
|
483
577
|
* Accordion items
|
|
484
578
|
* @type VvAccordionGroupItem
|
|
@@ -505,22 +599,71 @@ const VvAccordionGroupProps = {
|
|
|
505
599
|
/**
|
|
506
600
|
* If true, the accordion items will be opened by default
|
|
507
601
|
*/
|
|
508
|
-
not: Boolean
|
|
509
|
-
/**
|
|
510
|
-
* Enable local storage persistence
|
|
511
|
-
*/
|
|
512
|
-
storeKey: String
|
|
602
|
+
not: Boolean
|
|
513
603
|
};
|
|
514
604
|
const VvAccordionGroupEvents = ["update:modelValue"];
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
605
|
+
const usePersistence = (storageKey, storageType = StorageType.local, defaultValue) => {
|
|
606
|
+
const localValue = ref();
|
|
607
|
+
if (defaultValue) {
|
|
608
|
+
localValue.value = defaultValue;
|
|
609
|
+
}
|
|
610
|
+
let storageValue;
|
|
611
|
+
if (storageKey) {
|
|
612
|
+
watch(
|
|
613
|
+
storageKey,
|
|
614
|
+
(newKey, oldKey) => {
|
|
615
|
+
const storage = unref(storageType) === StorageType.session ? sessionStorage : localStorage;
|
|
616
|
+
if (oldKey && oldKey !== newKey) {
|
|
617
|
+
storage.removeItem(oldKey);
|
|
618
|
+
}
|
|
619
|
+
if (newKey) {
|
|
620
|
+
storageValue = useStorage(
|
|
621
|
+
newKey,
|
|
622
|
+
(storageValue == null ? void 0 : storageValue.value) ?? localValue.value,
|
|
623
|
+
storage
|
|
624
|
+
);
|
|
625
|
+
return;
|
|
626
|
+
}
|
|
627
|
+
storageValue = void 0;
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
immediate: true
|
|
631
|
+
}
|
|
632
|
+
);
|
|
633
|
+
}
|
|
634
|
+
if (isRef(storageType)) {
|
|
635
|
+
watch(storageType, (newType, oldType) => {
|
|
636
|
+
if (storageKey == null ? void 0 : storageKey.value) {
|
|
637
|
+
if (newType) {
|
|
638
|
+
const storage = newType === StorageType.session ? sessionStorage : localStorage;
|
|
639
|
+
storageValue = useStorage(
|
|
640
|
+
storageKey.value,
|
|
641
|
+
(storageValue == null ? void 0 : storageValue.value) ?? localValue.value,
|
|
642
|
+
storage
|
|
643
|
+
);
|
|
644
|
+
}
|
|
645
|
+
if (oldType && oldType !== newType) {
|
|
646
|
+
const oldStorage = oldType === StorageType.session ? sessionStorage : localStorage;
|
|
647
|
+
oldStorage.removeItem(storageKey.value);
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
});
|
|
651
|
+
}
|
|
652
|
+
return computed({
|
|
653
|
+
get: () => {
|
|
654
|
+
return (storageValue == null ? void 0 : storageValue.value) ?? localValue.value;
|
|
655
|
+
},
|
|
656
|
+
set: (value) => {
|
|
657
|
+
if (storageValue) {
|
|
658
|
+
storageValue.value = value;
|
|
659
|
+
return;
|
|
660
|
+
}
|
|
661
|
+
localValue.value = value;
|
|
662
|
+
}
|
|
663
|
+
});
|
|
664
|
+
};
|
|
665
|
+
function useProvideGroupState(key, groupState) {
|
|
666
|
+
provide(key, groupState);
|
|
524
667
|
}
|
|
525
668
|
const __default__ = {
|
|
526
669
|
name: "VvAccordionGroup"
|
|
@@ -529,57 +672,161 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
529
672
|
...__default__,
|
|
530
673
|
props: VvAccordionGroupProps,
|
|
531
674
|
emits: VvAccordionGroupEvents,
|
|
532
|
-
setup(__props, { emit }) {
|
|
675
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
533
676
|
const props = __props;
|
|
534
|
-
const
|
|
677
|
+
const emit = __emit;
|
|
678
|
+
const {
|
|
679
|
+
disabled,
|
|
680
|
+
modifiers,
|
|
681
|
+
itemModifiers,
|
|
682
|
+
items,
|
|
683
|
+
storageKey,
|
|
684
|
+
storageType
|
|
685
|
+
} = toRefs(props);
|
|
535
686
|
watchEffect(() => {
|
|
536
|
-
if (typeof props.modelValue === "string" && collapse
|
|
687
|
+
if (typeof props.modelValue === "string" && props.collapse) {
|
|
537
688
|
console.warn(
|
|
538
689
|
`[VvAccordionGroup]: modelValue is a string but collapse is true.`
|
|
539
690
|
);
|
|
540
691
|
}
|
|
541
692
|
});
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
localModelValue = useStorage(newKey, localModelValue.value);
|
|
548
|
-
} else {
|
|
549
|
-
localModelValue = ref([]);
|
|
550
|
-
}
|
|
551
|
-
},
|
|
552
|
-
{ immediate: true }
|
|
693
|
+
const accordionNames = reactive(/* @__PURE__ */ new Set());
|
|
694
|
+
const storageModelValue = usePersistence(
|
|
695
|
+
storageKey,
|
|
696
|
+
storageType,
|
|
697
|
+
[]
|
|
553
698
|
);
|
|
554
|
-
const
|
|
699
|
+
const localModelValue = computed({
|
|
555
700
|
get: () => {
|
|
556
|
-
|
|
557
|
-
if (props.modelValue !== void 0) {
|
|
558
|
-
if (!collapse.value) {
|
|
559
|
-
return Array.isArray(props.modelValue) ? props.modelValue[0] : props.modelValue;
|
|
560
|
-
}
|
|
701
|
+
if (props.modelValue !== null && props.modelValue !== void 0) {
|
|
561
702
|
return props.modelValue;
|
|
562
703
|
}
|
|
563
|
-
return
|
|
704
|
+
return storageModelValue.value;
|
|
564
705
|
},
|
|
565
706
|
set: (newValue) => {
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
707
|
+
emit("update:modelValue", newValue);
|
|
708
|
+
storageModelValue.value = newValue;
|
|
709
|
+
}
|
|
710
|
+
});
|
|
711
|
+
const expandedAccordions = computed({
|
|
712
|
+
get: () => {
|
|
713
|
+
if (localModelValue.value === void 0) {
|
|
714
|
+
return /* @__PURE__ */ new Set();
|
|
715
|
+
}
|
|
716
|
+
let toReturn = /* @__PURE__ */ new Set();
|
|
717
|
+
if (props.not) {
|
|
718
|
+
if (typeof localModelValue.value === "string") {
|
|
719
|
+
toReturn = new Set(
|
|
720
|
+
[...accordionNames].filter(
|
|
721
|
+
(name) => name !== localModelValue.value
|
|
722
|
+
)
|
|
723
|
+
);
|
|
724
|
+
} else if (Array.isArray(localModelValue.value)) {
|
|
725
|
+
toReturn = new Set(
|
|
726
|
+
[...accordionNames].filter(
|
|
727
|
+
(name) => !localModelValue.value.includes(
|
|
728
|
+
name
|
|
729
|
+
)
|
|
730
|
+
)
|
|
731
|
+
);
|
|
569
732
|
}
|
|
570
|
-
|
|
733
|
+
} else if (typeof localModelValue.value === "string") {
|
|
734
|
+
toReturn = /* @__PURE__ */ new Set([localModelValue.value]);
|
|
735
|
+
} else if (Array.isArray(localModelValue.value)) {
|
|
736
|
+
toReturn = new Set(localModelValue.value);
|
|
571
737
|
}
|
|
572
|
-
|
|
738
|
+
return toReturn;
|
|
739
|
+
},
|
|
740
|
+
set: (newValue) => {
|
|
741
|
+
if (props.not) {
|
|
742
|
+
localModelValue.value = [...accordionNames].filter(
|
|
743
|
+
(name) => !newValue.has(name)
|
|
744
|
+
);
|
|
745
|
+
return;
|
|
746
|
+
}
|
|
747
|
+
if (props.collapse) {
|
|
748
|
+
localModelValue.value = [...newValue];
|
|
749
|
+
return;
|
|
750
|
+
}
|
|
751
|
+
localModelValue.value = newValue.values().next().value;
|
|
573
752
|
}
|
|
574
753
|
});
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
754
|
+
onMounted(() => {
|
|
755
|
+
if (props.not && localModelValue.value === void 0) {
|
|
756
|
+
localModelValue.value = props.collapse ? [] : [...accordionNames.values()].splice(1, accordionNames.size);
|
|
757
|
+
}
|
|
758
|
+
nextTick(() => {
|
|
759
|
+
for (const name of accordionNames) {
|
|
760
|
+
bus.emit("toggle", {
|
|
761
|
+
name,
|
|
762
|
+
value: expandedAccordions.value.has(name)
|
|
763
|
+
});
|
|
764
|
+
}
|
|
765
|
+
});
|
|
766
|
+
});
|
|
767
|
+
const bus = mitt();
|
|
768
|
+
useProvideGroupState(INJECTION_KEY_ACCORDION_GROUP, {
|
|
578
769
|
disabled,
|
|
579
|
-
collapse,
|
|
580
770
|
modifiers: itemModifiers,
|
|
581
|
-
|
|
771
|
+
bus
|
|
772
|
+
});
|
|
773
|
+
bus.on("register", ({ name }) => {
|
|
774
|
+
accordionNames.add(name);
|
|
775
|
+
});
|
|
776
|
+
bus.on("unregister", ({ name }) => {
|
|
777
|
+
accordionNames.delete(name);
|
|
582
778
|
});
|
|
779
|
+
bus.on("toggle", ({ name, value }) => {
|
|
780
|
+
const newValue = new Set(expandedAccordions.value);
|
|
781
|
+
if (value) {
|
|
782
|
+
if (!props.collapse) {
|
|
783
|
+
for (const item of newValue) {
|
|
784
|
+
if (item !== name) {
|
|
785
|
+
bus.emit("toggle", { name: item, value: false });
|
|
786
|
+
}
|
|
787
|
+
}
|
|
788
|
+
newValue.clear();
|
|
789
|
+
}
|
|
790
|
+
newValue.add(name);
|
|
791
|
+
expandedAccordions.value = newValue;
|
|
792
|
+
return;
|
|
793
|
+
}
|
|
794
|
+
newValue.delete(name);
|
|
795
|
+
expandedAccordions.value = newValue;
|
|
796
|
+
});
|
|
797
|
+
const expand = (name) => {
|
|
798
|
+
if (typeof name === "string") {
|
|
799
|
+
bus.emit("toggle", { name, value: true });
|
|
800
|
+
return;
|
|
801
|
+
}
|
|
802
|
+
if (Array.isArray(name)) {
|
|
803
|
+
for (const item of name) {
|
|
804
|
+
bus.emit("toggle", { name: item, value: true });
|
|
805
|
+
}
|
|
806
|
+
return;
|
|
807
|
+
}
|
|
808
|
+
for (const item of accordionNames) {
|
|
809
|
+
bus.emit("toggle", { name: item, value: true });
|
|
810
|
+
}
|
|
811
|
+
};
|
|
812
|
+
bus.on("expand", ({ name }) => expand(name));
|
|
813
|
+
const collapse = (name) => {
|
|
814
|
+
if (typeof name === "string") {
|
|
815
|
+
bus.emit("toggle", { name, value: false });
|
|
816
|
+
return;
|
|
817
|
+
}
|
|
818
|
+
if (Array.isArray(name)) {
|
|
819
|
+
for (const item of name) {
|
|
820
|
+
bus.emit("toggle", { name: item, value: false });
|
|
821
|
+
}
|
|
822
|
+
return;
|
|
823
|
+
}
|
|
824
|
+
for (const item of accordionNames) {
|
|
825
|
+
bus.emit("toggle", { name: item, value: false });
|
|
826
|
+
}
|
|
827
|
+
};
|
|
828
|
+
bus.on("collapse", ({ name }) => collapse(name));
|
|
829
|
+
__expose({ expandedAccordions, expand, collapse });
|
|
583
830
|
const bemCssClasses = useModifiers(
|
|
584
831
|
"vv-accordion-group",
|
|
585
832
|
modifiers,
|
|
@@ -588,29 +835,61 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
588
835
|
}))
|
|
589
836
|
);
|
|
590
837
|
return (_ctx, _cache) => {
|
|
591
|
-
return openBlock(), createElementBlock(
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
838
|
+
return openBlock(), createElementBlock(
|
|
839
|
+
"div",
|
|
840
|
+
{
|
|
841
|
+
class: normalizeClass(unref(bemCssClasses))
|
|
842
|
+
},
|
|
843
|
+
[
|
|
844
|
+
renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({
|
|
845
|
+
expandedAccordions: unref(expandedAccordions),
|
|
846
|
+
expand,
|
|
847
|
+
collapse
|
|
848
|
+
})), () => [
|
|
849
|
+
(openBlock(true), createElementBlock(
|
|
850
|
+
Fragment,
|
|
851
|
+
null,
|
|
852
|
+
renderList(unref(items), (item) => {
|
|
853
|
+
return openBlock(), createBlock(
|
|
854
|
+
_sfc_main$1,
|
|
855
|
+
mergeProps({
|
|
856
|
+
key: item.title
|
|
857
|
+
}, {
|
|
858
|
+
name: item.name,
|
|
859
|
+
title: item.title,
|
|
860
|
+
content: item.content
|
|
861
|
+
}),
|
|
862
|
+
createSlots({
|
|
863
|
+
_: 2
|
|
864
|
+
/* DYNAMIC */
|
|
865
|
+
}, [
|
|
866
|
+
_ctx.$slots[`summary::${item.name}`] ? {
|
|
867
|
+
name: "summary",
|
|
868
|
+
fn: withCtx((data) => [
|
|
869
|
+
renderSlot(_ctx.$slots, `summary::${item.name}`, normalizeProps(guardReactiveProps(data)))
|
|
870
|
+
]),
|
|
871
|
+
key: "0"
|
|
872
|
+
} : void 0,
|
|
873
|
+
_ctx.$slots[`content::${item.name}`] ? {
|
|
874
|
+
name: "default",
|
|
875
|
+
fn: withCtx((data) => [
|
|
876
|
+
renderSlot(_ctx.$slots, `content::${item.name}`, normalizeProps(guardReactiveProps(data)))
|
|
877
|
+
]),
|
|
878
|
+
key: "1"
|
|
879
|
+
} : void 0
|
|
880
|
+
]),
|
|
881
|
+
1040
|
|
882
|
+
/* FULL_PROPS, DYNAMIC_SLOTS */
|
|
883
|
+
);
|
|
884
|
+
}),
|
|
885
|
+
128
|
|
886
|
+
/* KEYED_FRAGMENT */
|
|
887
|
+
))
|
|
888
|
+
])
|
|
889
|
+
],
|
|
890
|
+
2
|
|
891
|
+
/* CLASS */
|
|
892
|
+
);
|
|
614
893
|
};
|
|
615
894
|
}
|
|
616
895
|
});
|