@volverjs/ui-vue 0.0.10-beta.5 → 0.0.10-beta.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (496) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +148 -51
  3. package/auto-imports.d.ts +25 -12
  4. package/bin/icons.cjs +1 -1
  5. package/bin/icons.js +28 -20
  6. package/dist/Volver.d.ts +11 -11
  7. package/dist/components/VvAccordion/VvAccordion.es.js +192 -104
  8. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  9. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +29 -10
  10. package/dist/components/VvAccordion/index.d.ts +8 -9
  11. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +485 -206
  12. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  13. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +61 -18
  14. package/dist/components/VvAccordionGroup/index.d.ts +16 -8
  15. package/dist/components/VvAction/VvAction.es.js +84 -33
  16. package/dist/components/VvAction/VvAction.umd.js +1 -1
  17. package/dist/components/VvAction/VvAction.vue.d.ts +61 -28
  18. package/dist/components/VvAction/index.d.ts +26 -10
  19. package/dist/components/VvAlert/VvAlert.es.js +350 -318
  20. package/dist/components/VvAlert/VvAlert.umd.js +1 -1
  21. package/dist/components/VvAlert/VvAlert.vue.d.ts +25 -17
  22. package/dist/components/VvAlert/index.d.ts +20 -11
  23. package/dist/components/VvAlertGroup/VvAlertGroup.es.js +388 -327
  24. package/dist/components/VvAlertGroup/VvAlertGroup.umd.js +1 -1
  25. package/dist/components/VvAlertGroup/VvAlertGroup.vue.d.ts +22 -17
  26. package/dist/components/VvAlertGroup/index.d.ts +10 -18
  27. package/dist/components/VvAvatar/VvAvatar.es.js +66 -28
  28. package/dist/components/VvAvatar/VvAvatar.umd.js +1 -1
  29. package/dist/components/VvAvatar/VvAvatar.vue.d.ts +13 -5
  30. package/dist/components/VvAvatar/index.d.ts +4 -1
  31. package/dist/components/VvAvatarGroup/VvAvatarGroup.es.js +147 -74
  32. package/dist/components/VvAvatarGroup/VvAvatarGroup.umd.js +1 -1
  33. package/dist/components/VvAvatarGroup/VvAvatarGroup.vue.d.ts +17 -10
  34. package/dist/components/VvAvatarGroup/index.d.ts +6 -3
  35. package/dist/components/VvBadge/VvBadge.es.js +78 -34
  36. package/dist/components/VvBadge/VvBadge.umd.js +1 -1
  37. package/dist/components/VvBadge/VvBadge.vue.d.ts +13 -5
  38. package/dist/components/VvBadge/index.d.ts +4 -1
  39. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +294 -83
  40. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
  41. package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +28 -8
  42. package/dist/components/VvBreadcrumb/index.d.ts +6 -10
  43. package/dist/components/VvButton/VvButton.es.js +510 -488
  44. package/dist/components/VvButton/VvButton.umd.js +1 -1
  45. package/dist/components/VvButton/VvButton.vue.d.ts +97 -45
  46. package/dist/components/VvButton/index.d.ts +52 -30
  47. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +95 -45
  48. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  49. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +35 -17
  50. package/dist/components/VvButtonGroup/index.d.ts +13 -4
  51. package/dist/components/VvCard/VvCard.es.js +87 -42
  52. package/dist/components/VvCard/VvCard.umd.js +1 -1
  53. package/dist/components/VvCard/VvCard.vue.d.ts +13 -5
  54. package/dist/components/VvCard/index.d.ts +4 -1
  55. package/dist/components/VvCheckbox/VvCheckbox.es.js +177 -136
  56. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
  57. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +105 -35
  58. package/dist/components/VvCheckbox/index.d.ts +52 -19
  59. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +408 -322
  60. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
  61. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +103 -34
  62. package/dist/components/VvCheckboxGroup/index.d.ts +45 -12
  63. package/dist/components/VvCombobox/VvCombobox.es.js +2304 -1992
  64. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  65. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +258 -672
  66. package/dist/components/VvCombobox/index.d.ts +377 -135
  67. package/dist/components/VvDialog/VvDialog.es.js +177 -297
  68. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  69. package/dist/components/VvDialog/VvDialog.vue.d.ts +23 -7
  70. package/dist/components/VvDialog/index.d.ts +12 -0
  71. package/dist/components/VvDropdown/VvDropdown.es.js +172 -102
  72. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  73. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +110 -315
  74. package/dist/components/VvDropdown/VvDropdownAction.vue.d.ts +77 -28
  75. package/dist/components/VvDropdown/VvDropdownItem.vue.d.ts +13 -1
  76. package/dist/components/VvDropdown/VvDropdownOptgroup.vue.d.ts +13 -5
  77. package/dist/components/VvDropdown/VvDropdownOption.vue.d.ts +38 -10
  78. package/dist/components/VvDropdown/index.d.ts +52 -118
  79. package/dist/components/VvDropdownAction/VvDropdownAction.es.js +165 -60
  80. package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -1
  81. package/dist/components/VvDropdownItem/VvDropdownItem.es.js +337 -10
  82. package/dist/components/VvDropdownItem/VvDropdownItem.umd.js +1 -1
  83. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.es.js +63 -20
  84. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.umd.js +1 -1
  85. package/dist/components/VvDropdownOption/VvDropdownOption.es.js +188 -80
  86. package/dist/components/VvDropdownOption/VvDropdownOption.umd.js +1 -1
  87. package/dist/components/VvIcon/VvIcon.es.js +24 -102
  88. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  89. package/dist/components/VvIcon/VvIcon.vue.d.ts +4 -68
  90. package/dist/components/VvIcon/index.d.ts +33 -48
  91. package/dist/components/VvInputFile/VvInputFile.es.js +1777 -0
  92. package/dist/components/VvInputFile/VvInputFile.umd.js +1 -0
  93. package/dist/components/VvInputFile/VvInputFile.vue.d.ts +317 -0
  94. package/dist/components/VvInputFile/index.d.ts +193 -0
  95. package/dist/components/VvInputText/VvInputClearAction.d.ts +16 -10
  96. package/dist/components/VvInputText/VvInputPasswordAction.d.ts +20 -14
  97. package/dist/components/VvInputText/VvInputStepAction.d.ts +11 -7
  98. package/dist/components/VvInputText/VvInputText.es.js +1491 -551
  99. package/dist/components/VvInputText/VvInputText.umd.js +1 -1
  100. package/dist/components/VvInputText/VvInputText.vue.d.ts +216 -68
  101. package/dist/components/VvInputText/index.d.ts +101 -31
  102. package/dist/components/VvNav/VvNav.es.js +155 -75
  103. package/dist/components/VvNav/VvNav.umd.js +1 -1
  104. package/dist/components/VvNav/VvNav.vue.d.ts +32 -11
  105. package/dist/components/VvNav/VvNavItem.vue.d.ts +1 -1
  106. package/dist/components/VvNav/VvNavSeparator.vue.d.ts +1 -1
  107. package/dist/components/VvNav/index.d.ts +5 -2
  108. package/dist/components/VvNavItem/VvNavItem.es.js +100 -39
  109. package/dist/components/VvNavItem/VvNavItem.umd.js +1 -1
  110. package/dist/components/VvProgress/VvProgress.es.js +73 -27
  111. package/dist/components/VvProgress/VvProgress.umd.js +1 -1
  112. package/dist/components/VvProgress/VvProgress.vue.d.ts +13 -6
  113. package/dist/components/VvProgress/index.d.ts +4 -1
  114. package/dist/components/VvRadio/VvRadio.es.js +175 -135
  115. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  116. package/dist/components/VvRadio/VvRadio.vue.d.ts +103 -33
  117. package/dist/components/VvRadio/index.d.ts +50 -17
  118. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +406 -321
  119. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
  120. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +103 -34
  121. package/dist/components/VvRadioGroup/index.d.ts +45 -12
  122. package/dist/components/VvSelect/VvSelect.es.js +677 -611
  123. package/dist/components/VvSelect/VvSelect.umd.js +1 -1
  124. package/dist/components/VvSelect/VvSelect.vue.d.ts +107 -199
  125. package/dist/components/VvSelect/index.d.ts +196 -16
  126. package/dist/components/VvTab/VvTab.es.js +230 -110
  127. package/dist/components/VvTab/VvTab.umd.js +1 -1
  128. package/dist/components/VvTab/VvTab.vue.d.ts +34 -12
  129. package/dist/components/VvTab/index.d.ts +6 -3
  130. package/dist/components/VvTextarea/VvTextarea.es.js +606 -597
  131. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
  132. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +159 -54
  133. package/dist/components/VvTextarea/index.d.ts +69 -20
  134. package/dist/components/VvTooltip/VvTooltip.es.js +83 -30
  135. package/dist/components/VvTooltip/VvTooltip.umd.js +1 -1
  136. package/dist/components/VvTooltip/VvTooltip.vue.d.ts +16 -9
  137. package/dist/components/VvTooltip/index.d.ts +5 -2
  138. package/dist/components/common/HintSlot.d.ts +8 -9
  139. package/dist/components/index.d.ts +10 -0
  140. package/dist/components/index.es.js +4086 -2029
  141. package/dist/components/index.umd.js +1 -1
  142. package/dist/composables/alert/useAlerInject.d.ts +4 -0
  143. package/dist/composables/alert/useAlert.d.ts +71 -6
  144. package/dist/composables/alert/{useProvideAlert.d.ts → useAlertProvide.d.ts} +1 -1
  145. package/dist/composables/dropdown/useDropdownContextmenu.d.ts +18 -0
  146. package/dist/composables/dropdown/useDropdownInject.d.ts +12 -0
  147. package/dist/composables/dropdown/{useProvideDropdown.d.ts → useDropdownProvide.d.ts} +6 -7
  148. package/dist/composables/dropdown/useDropdownVirtualElement.d.ts +17 -0
  149. package/dist/composables/group/useGroupStateInject.d.ts +9 -0
  150. package/dist/composables/group/useGroupStateProvide.d.ts +6 -0
  151. package/dist/composables/index.d.ts +3 -0
  152. package/dist/composables/index.es.js +178 -6
  153. package/dist/composables/index.umd.js +1 -1
  154. package/dist/composables/useBlurhash.d.ts +7 -0
  155. package/dist/composables/useComponentFocus.d.ts +2 -2
  156. package/dist/composables/useComponentIcon.d.ts +9 -8
  157. package/dist/composables/useOptions.d.ts +5 -5
  158. package/dist/composables/usePersistence.d.ts +3 -0
  159. package/dist/composables/useUniqueId.d.ts +2 -2
  160. package/dist/composables/useVolver.d.ts +1 -1
  161. package/dist/constants.d.ts +35 -33
  162. package/dist/directives/index.d.ts +3 -5
  163. package/dist/directives/index.es.js +247 -82
  164. package/dist/directives/index.umd.js +1 -1
  165. package/dist/directives/v-contextmenu.es.js +137 -31
  166. package/dist/directives/v-contextmenu.umd.js +1 -1
  167. package/dist/directives/v-tooltip.es.js +101 -39
  168. package/dist/directives/v-tooltip.umd.js +1 -1
  169. package/dist/icons.d.ts +17 -17
  170. package/dist/icons.es.js +516 -516
  171. package/dist/icons.umd.js +1 -1
  172. package/dist/index.d.ts +3 -1
  173. package/dist/index.es.js +74 -6
  174. package/dist/index.umd.js +1 -1
  175. package/dist/props/index.d.ts +277 -193
  176. package/dist/resolvers/unplugin.d.ts +6 -1
  177. package/dist/resolvers/unplugin.es.js +87 -10
  178. package/dist/resolvers/unplugin.umd.js +1 -1
  179. package/dist/stories/Accordion/Accordion.settings.d.ts +2 -57
  180. package/dist/stories/AccordionGroup/AccordionGroup.settings.d.ts +2 -66
  181. package/dist/stories/AccordionGroup/AccordionGroup.stories.d.ts +2 -127
  182. package/dist/stories/AccordionGroup/AccordionGroupSlots.stories.d.ts +1304 -538
  183. package/dist/stories/Alert/Alert.settings.d.ts +2 -109
  184. package/dist/stories/AlertGroup/AlertGroup.settings.d.ts +2 -85
  185. package/dist/stories/AlertGroup/AlertGroupWithComposable.stories.d.ts +1 -1
  186. package/dist/stories/AvatarGroup/AvatarGroup.settings.d.ts +2 -38
  187. package/dist/stories/Badge/Badge.settings.d.ts +2 -26
  188. package/dist/stories/Badge/Badge.test.d.ts +1 -1
  189. package/dist/stories/Blurhash/BlurhashComposable.stories.d.ts +4 -0
  190. package/dist/stories/Breadcrumb/Breadcrumb.settings.d.ts +2 -18
  191. package/dist/stories/Breadcrumb/Breadcrumb.test.d.ts +1 -1
  192. package/dist/stories/Button/Button.settings.d.ts +2 -194
  193. package/dist/stories/ButtonGroup/ButtonGroup.settings.d.ts +2 -40
  194. package/dist/stories/Card/Card.settings.d.ts +2 -63
  195. package/dist/stories/Checkbox/Checkbox.settings.d.ts +2 -132
  196. package/dist/stories/CheckboxGroup/CheckboxGroup.settings.d.ts +1 -141
  197. package/dist/stories/Combobox/Combobox.settings.d.ts +2 -609
  198. package/dist/stories/Combobox/Combobox.stories.d.ts +1 -0
  199. package/dist/stories/Combobox/ComboboxMultiple.stories.d.ts +1 -0
  200. package/dist/stories/Dialog/Dialog.settings.d.ts +2 -47
  201. package/dist/stories/Dialog/DialogModifiers.stories.d.ts +8 -0
  202. package/dist/stories/Dropdown/Dropdown.settings.d.ts +2 -205
  203. package/dist/stories/Icon/Icon.settings.d.ts +3 -68
  204. package/dist/stories/InputFile/InputFile.settings.d.ts +6 -0
  205. package/dist/stories/InputFile/InputFile.stories.d.ts +13 -0
  206. package/dist/stories/InputFile/InputFileDropArea.stories.d.ts +9 -0
  207. package/dist/stories/InputFile/InputFileIconPosition.stories.d.ts +8 -0
  208. package/dist/stories/InputFile/InputFileSlots.stories.d.ts +7 -0
  209. package/dist/stories/InputText/InputText.settings.d.ts +2 -438
  210. package/dist/stories/Nav/Nav.settings.d.ts +2 -10
  211. package/dist/stories/Progress/Progress.settings.d.ts +2 -27
  212. package/dist/stories/Radio/Radio.settings.d.ts +1 -110
  213. package/dist/stories/RadioGroup/RadioGroup.settings.d.ts +1 -141
  214. package/dist/stories/Select/Select.settings.d.ts +2 -246
  215. package/dist/stories/Select/Select.stories.d.ts +1 -0
  216. package/dist/stories/Tab/Tab.settings.d.ts +2 -15
  217. package/dist/stories/Textarea/Textarea.settings.d.ts +2 -287
  218. package/dist/stories/argTypes.d.ts +27 -866
  219. package/dist/test/expect.d.ts +1 -2
  220. package/dist/test/options.d.ts +1 -1
  221. package/dist/test/sleep.d.ts +1 -1
  222. package/dist/types/alert.d.ts +9 -7
  223. package/dist/types/blurhash.d.ts +12 -0
  224. package/dist/types/floating-ui.d.ts +1 -1
  225. package/dist/types/generic.d.ts +1 -2
  226. package/dist/types/group.d.ts +37 -15
  227. package/dist/types/index.d.ts +7 -0
  228. package/dist/types/input-file.d.ts +9 -0
  229. package/dist/types/nav.d.ts +2 -2
  230. package/dist/utils/DomUtilities.d.ts +1 -0
  231. package/dist/utils/ObjectUtilities.d.ts +8 -9
  232. package/dist/workers/blurhash.d.ts +1 -0
  233. package/package.json +238 -246
  234. package/src/Volver.ts +251 -246
  235. package/src/assets/icons/detailed.json +1 -1
  236. package/src/assets/icons/normal.json +1 -1
  237. package/src/assets/icons/simple.json +1 -1
  238. package/src/components/VvAccordion/VvAccordion.vue +163 -100
  239. package/src/components/VvAccordion/index.ts +65 -80
  240. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +224 -106
  241. package/src/components/VvAccordionGroup/index.ts +42 -42
  242. package/src/components/VvAction/VvAction.vue +144 -130
  243. package/src/components/VvAlert/VvAlert.vue +72 -70
  244. package/src/components/VvAlert/index.ts +149 -147
  245. package/src/components/VvAlertGroup/VvAlertGroup.vue +57 -56
  246. package/src/components/VvAlertGroup/index.ts +102 -118
  247. package/src/components/VvAvatar/VvAvatar.vue +20 -14
  248. package/src/components/VvAvatar/index.ts +5 -5
  249. package/src/components/VvAvatarGroup/VvAvatarGroup.vue +58 -53
  250. package/src/components/VvAvatarGroup/index.ts +21 -21
  251. package/src/components/VvBadge/VvBadge.vue +15 -14
  252. package/src/components/VvBadge/index.ts +2 -2
  253. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +50 -48
  254. package/src/components/VvBreadcrumb/index.ts +3 -9
  255. package/src/components/VvButton/VvButton.vue +163 -152
  256. package/src/components/VvButton/index.ts +104 -111
  257. package/src/components/VvButtonGroup/VvButtonGroup.vue +73 -65
  258. package/src/components/VvButtonGroup/index.ts +23 -22
  259. package/src/components/VvCard/VvCard.vue +30 -30
  260. package/src/components/VvCard/index.ts +2 -2
  261. package/src/components/VvCheckbox/VvCheckbox.vue +186 -184
  262. package/src/components/VvCheckbox/index.ts +45 -45
  263. package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +88 -87
  264. package/src/components/VvCombobox/VvCombobox.vue +655 -619
  265. package/src/components/VvCombobox/index.ts +210 -168
  266. package/src/components/VvDialog/VvDialog.vue +139 -129
  267. package/src/components/VvDialog/index.ts +42 -36
  268. package/src/components/VvDropdown/VvDropdown.vue +466 -445
  269. package/src/components/VvDropdown/VvDropdownAction.vue +37 -39
  270. package/src/components/VvDropdown/VvDropdownItem.vue +30 -26
  271. package/src/components/VvDropdown/VvDropdownOptgroup.vue +13 -12
  272. package/src/components/VvDropdown/VvDropdownOption.vue +47 -64
  273. package/src/components/VvDropdown/index.ts +61 -27
  274. package/src/components/VvIcon/README.md +1 -1
  275. package/src/components/VvIcon/VvIcon.vue +133 -133
  276. package/src/components/VvIcon/index.ts +84 -97
  277. package/src/components/VvInputFile/VvInputFile.vue +413 -0
  278. package/src/components/VvInputFile/index.ts +143 -0
  279. package/src/components/VvInputText/VvInputClearAction.ts +51 -47
  280. package/src/components/VvInputText/VvInputPasswordAction.ts +66 -62
  281. package/src/components/VvInputText/VvInputStepAction.ts +43 -43
  282. package/src/components/VvInputText/VvInputText.vue +652 -516
  283. package/src/components/VvInputText/VvInputTextActions.ts +87 -87
  284. package/src/components/VvInputText/index.ts +201 -186
  285. package/src/components/VvNav/VvNav.vue +40 -36
  286. package/src/components/VvNav/VvNavItem.vue +12 -12
  287. package/src/components/VvNav/VvNavSeparator.vue +6 -6
  288. package/src/components/VvNav/index.ts +2 -2
  289. package/src/components/VvProgress/VvProgress.vue +27 -27
  290. package/src/components/VvProgress/index.ts +28 -28
  291. package/src/components/VvRadio/VvRadio.vue +115 -112
  292. package/src/components/VvRadio/index.ts +29 -29
  293. package/src/components/VvRadioGroup/VvRadioGroup.vue +91 -90
  294. package/src/components/VvSelect/VvSelect.vue +262 -241
  295. package/src/components/VvSelect/index.ts +88 -63
  296. package/src/components/VvTab/VvTab.vue +79 -69
  297. package/src/components/VvTab/index.ts +13 -13
  298. package/src/components/VvTextarea/VvTextarea.vue +218 -219
  299. package/src/components/VvTextarea/index.ts +35 -35
  300. package/src/components/VvTooltip/VvTooltip.vue +22 -16
  301. package/src/components/VvTooltip/index.ts +12 -12
  302. package/src/components/common/HintSlot.ts +151 -152
  303. package/src/components/index.ts +10 -0
  304. package/src/composables/alert/{useInjectAlert.ts → useAlerInject.ts} +1 -1
  305. package/src/composables/alert/useAlert.ts +76 -73
  306. package/src/composables/alert/{useProvideAlert.ts → useAlertProvide.ts} +12 -12
  307. package/src/composables/dropdown/useDropdownContextmenu.ts +22 -0
  308. package/src/composables/dropdown/{useInjectDropdown.ts → useDropdownInject.ts} +6 -6
  309. package/src/composables/dropdown/useDropdownProvide.ts +94 -0
  310. package/src/composables/dropdown/useDropdownVirtualElement.ts +53 -0
  311. package/src/composables/group/useGroupStateInject.ts +55 -0
  312. package/src/composables/group/useGroupStateProvide.ts +14 -0
  313. package/src/composables/index.ts +3 -0
  314. package/src/composables/useBlurhash.ts +68 -0
  315. package/src/composables/useComponentFocus.ts +9 -9
  316. package/src/composables/useComponentIcon.ts +36 -35
  317. package/src/composables/useDebouncedInput.ts +25 -25
  318. package/src/composables/useDefaults.ts +81 -80
  319. package/src/composables/useModifiers.ts +29 -29
  320. package/src/composables/useOptions.ts +51 -42
  321. package/src/composables/usePersistence.ts +74 -0
  322. package/src/composables/useTextCount.ts +46 -46
  323. package/src/composables/useUniqueId.ts +4 -4
  324. package/src/composables/useVolver.ts +1 -1
  325. package/src/constants.ts +98 -83
  326. package/src/directives/index.ts +3 -6
  327. package/src/directives/v-contextmenu.ts +26 -34
  328. package/src/directives/v-tooltip.ts +20 -11
  329. package/src/icons.ts +2 -2
  330. package/src/index.ts +6 -4
  331. package/src/props/index.ts +461 -384
  332. package/src/resolvers/unplugin.ts +154 -144
  333. package/src/shims.d.ts +4 -5
  334. package/src/stories/Accordion/Accordion.settings.ts +51 -50
  335. package/src/stories/Accordion/Accordion.stories.ts +21 -21
  336. package/src/stories/Accordion/Accordion.test.ts +56 -54
  337. package/src/stories/Accordion/AccordionSlots.stories.ts +13 -13
  338. package/src/stories/AccordionGroup/AccordionGroup.settings.ts +70 -67
  339. package/src/stories/AccordionGroup/AccordionGroup.stories.ts +41 -39
  340. package/src/stories/AccordionGroup/AccordionGroup.test.ts +49 -45
  341. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.ts +36 -36
  342. package/src/stories/Alert/Alert.settings.ts +117 -116
  343. package/src/stories/Alert/Alert.stories.ts +30 -30
  344. package/src/stories/Alert/Alert.test.ts +78 -80
  345. package/src/stories/Alert/AlertModifiers.stories.ts +45 -45
  346. package/src/stories/Alert/AlertSlots.stories.ts +35 -35
  347. package/src/stories/AlertGroup/AlertGroup.settings.ts +107 -105
  348. package/src/stories/AlertGroup/AlertGroup.stories.ts +25 -25
  349. package/src/stories/AlertGroup/AlertGroup.test.ts +69 -71
  350. package/src/stories/AlertGroup/AlertGroupPosition.stories.ts +68 -68
  351. package/src/stories/AlertGroup/AlertGroupSlots.stories.ts +23 -23
  352. package/src/stories/AlertGroup/AlertGroupWithComposable.stories.ts +58 -58
  353. package/src/stories/Avatar/Avatar.settings.ts +29 -29
  354. package/src/stories/Avatar/Avatar.stories.ts +22 -22
  355. package/src/stories/Avatar/Avatar.test.ts +22 -24
  356. package/src/stories/Avatar/AvatarBadge.stories.ts +15 -15
  357. package/src/stories/Avatar/AvatarModifiers.stories.ts +60 -60
  358. package/src/stories/Avatar/AvatarSlots.stories.ts +17 -17
  359. package/src/stories/AvatarGroup/AvatarGroup.settings.ts +54 -53
  360. package/src/stories/AvatarGroup/AvatarGroup.stories.ts +17 -17
  361. package/src/stories/AvatarGroup/AvatarGroup.test.ts +24 -26
  362. package/src/stories/AvatarGroup/AvatarGroupModifiers.stories.ts +15 -15
  363. package/src/stories/AvatarGroup/AvatarGroupSlotDefault.stories.ts +17 -17
  364. package/src/stories/Badge/Badge.settings.ts +21 -20
  365. package/src/stories/Badge/Badge.stories.ts +24 -24
  366. package/src/stories/Badge/Badge.test.ts +8 -8
  367. package/src/stories/Badge/BadgeSlots.stories.ts +10 -10
  368. package/src/stories/Blurhash/BlurhashComposable.stories.ts +116 -0
  369. package/src/stories/Breadcrumb/Breadcrumb.settings.ts +35 -34
  370. package/src/stories/Breadcrumb/Breadcrumb.stories.ts +23 -23
  371. package/src/stories/Breadcrumb/Breadcrumb.test.ts +44 -43
  372. package/src/stories/Breadcrumb/BreadcrumbSlots.stories.ts +19 -19
  373. package/src/stories/Button/Button.settings.ts +147 -151
  374. package/src/stories/Button/Button.stories.ts +19 -19
  375. package/src/stories/Button/Button.test.ts +41 -42
  376. package/src/stories/Button/ButtonIcon.stories.ts +42 -42
  377. package/src/stories/Button/ButtonLink.stories.ts +24 -24
  378. package/src/stories/Button/ButtonLoading.stories.ts +22 -22
  379. package/src/stories/Button/ButtonModifiers.stories.ts +91 -91
  380. package/src/stories/Button/ButtonSlots.stories.ts +47 -47
  381. package/src/stories/Button/ButtonState.stories.ts +23 -23
  382. package/src/stories/Button/ButtonToggle.stories.ts +30 -30
  383. package/src/stories/ButtonGroup/ButtonGroup.settings.ts +33 -24
  384. package/src/stories/ButtonGroup/ButtonGroup.stories.ts +19 -19
  385. package/src/stories/ButtonGroup/ButtonGroup.test.ts +23 -26
  386. package/src/stories/ButtonGroup/ButtonGroupModifiers.stories.ts +20 -20
  387. package/src/stories/ButtonGroup/ButtonGroupSlots.stories.ts +17 -17
  388. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.ts +22 -22
  389. package/src/stories/Card/Card.settings.ts +49 -48
  390. package/src/stories/Card/Card.stories.ts +22 -22
  391. package/src/stories/Card/Card.test.ts +14 -16
  392. package/src/stories/Card/CardSlots.stories.ts +42 -42
  393. package/src/stories/Checkbox/Checkbox.settings.ts +36 -35
  394. package/src/stories/Checkbox/Checkbox.stories.ts +57 -57
  395. package/src/stories/Checkbox/Checkbox.test.ts +63 -66
  396. package/src/stories/Checkbox/CheckboxBinary.stories.ts +18 -18
  397. package/src/stories/Checkbox/CheckboxSlots.stories.ts +15 -15
  398. package/src/stories/CheckboxGroup/CheckboxGroup.settings.ts +9 -9
  399. package/src/stories/CheckboxGroup/CheckboxGroup.stories.ts +50 -50
  400. package/src/stories/CheckboxGroup/CheckboxGroup.test.ts +64 -68
  401. package/src/stories/CheckboxGroup/CheckboxGroupOptions.stories.ts +34 -34
  402. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.ts +23 -23
  403. package/src/stories/Combobox/Combobox.settings.ts +408 -385
  404. package/src/stories/Combobox/Combobox.stories.ts +116 -107
  405. package/src/stories/Combobox/Combobox.test.ts +92 -92
  406. package/src/stories/Combobox/ComboboxIconPosition.stories.ts +25 -24
  407. package/src/stories/Combobox/ComboboxMultiple.stories.ts +32 -22
  408. package/src/stories/Combobox/ComboboxOptions.stories.ts +81 -84
  409. package/src/stories/Combobox/ComboboxSlots.stories.ts +55 -54
  410. package/src/stories/Dialog/Dialog.settings.ts +49 -40
  411. package/src/stories/Dialog/Dialog.stories.ts +28 -28
  412. package/src/stories/Dialog/Dialog.test.ts +49 -54
  413. package/src/stories/Dialog/DialogModifiers.stories.ts +42 -0
  414. package/src/stories/Dialog/DialogSlots.stories.ts +20 -20
  415. package/src/stories/Dropdown/Dropdown.settings.ts +62 -61
  416. package/src/stories/Dropdown/Dropdown.stories.ts +60 -60
  417. package/src/stories/Dropdown/Dropdown.test.ts +9 -13
  418. package/src/stories/Dropdown/DropdownContextmenuDirective.stories.ts +18 -19
  419. package/src/stories/Dropdown/DropdownMultilevel.stories.ts +19 -19
  420. package/src/stories/Dropdown/DropdownSlots.stories.ts +51 -51
  421. package/src/stories/Icon/Icon.settings.ts +66 -65
  422. package/src/stories/Icon/Icon.stories.ts +29 -30
  423. package/src/stories/Icon/IconsCollection.stories.ts +24 -24
  424. package/src/stories/InputFile/InputFile.settings.ts +37 -0
  425. package/src/stories/InputFile/InputFile.stories.ts +97 -0
  426. package/src/stories/InputFile/InputFileDropArea.stories.ts +56 -0
  427. package/src/stories/InputFile/InputFileIconPosition.stories.ts +43 -0
  428. package/src/stories/InputFile/InputFileSlots.stories.ts +33 -0
  429. package/src/stories/InputText/InputText.settings.ts +248 -246
  430. package/src/stories/InputText/InputText.stories.ts +68 -68
  431. package/src/stories/InputText/InputText.test.ts +119 -122
  432. package/src/stories/InputText/InputTextIconPosition.stories.ts +24 -24
  433. package/src/stories/InputText/InputTextLength.stories.ts +33 -33
  434. package/src/stories/InputText/InputTextMask.stories.ts +91 -91
  435. package/src/stories/InputText/InputTextMinMax.stories.ts +30 -30
  436. package/src/stories/InputText/InputTextSlots.stories.ts +20 -20
  437. package/src/stories/InputText/InputTextType.stories.ts +70 -70
  438. package/src/stories/Nav/Nav.settings.ts +27 -27
  439. package/src/stories/Nav/Nav.stories.ts +18 -18
  440. package/src/stories/Nav/Nav.test.ts +10 -12
  441. package/src/stories/Nav/NavModifiers.stories.ts +25 -25
  442. package/src/stories/Progress/Progress.settings.ts +24 -23
  443. package/src/stories/Progress/Progress.stories.ts +23 -23
  444. package/src/stories/Progress/Progress.test.ts +5 -5
  445. package/src/stories/Radio/Radio.settings.ts +9 -9
  446. package/src/stories/Radio/Radio.stories.ts +47 -47
  447. package/src/stories/Radio/Radio.test.ts +54 -57
  448. package/src/stories/Radio/RadioSlots.stories.ts +15 -15
  449. package/src/stories/RadioGroup/RadioGroup.settings.ts +9 -9
  450. package/src/stories/RadioGroup/RadioGroup.stories.ts +51 -52
  451. package/src/stories/RadioGroup/RadioGroup.test.ts +64 -68
  452. package/src/stories/RadioGroup/RadioGroupOptions.stories.ts +35 -35
  453. package/src/stories/RadioGroup/RadioGroupSlots.stories.ts +23 -23
  454. package/src/stories/Select/Select.settings.ts +72 -71
  455. package/src/stories/Select/Select.stories.ts +75 -66
  456. package/src/stories/Select/Select.test.ts +67 -70
  457. package/src/stories/Select/SelectIconPosition.stories.ts +27 -26
  458. package/src/stories/Select/SelectOptions.stories.ts +55 -55
  459. package/src/stories/Select/SelectSlots.stories.ts +21 -20
  460. package/src/stories/Tab/Tab.settings.ts +34 -34
  461. package/src/stories/Tab/Tab.stories.ts +16 -16
  462. package/src/stories/Tab/Tab.test.ts +17 -19
  463. package/src/stories/Textarea/Textarea.settings.ts +80 -78
  464. package/src/stories/Textarea/Textarea.stories.ts +63 -63
  465. package/src/stories/Textarea/Textarea.test.ts +70 -73
  466. package/src/stories/Textarea/TextareaLength.stories.ts +33 -33
  467. package/src/stories/Textarea/TextareaSlots.stories.ts +20 -20
  468. package/src/stories/Textarea/TextareatIconPosition.stories.ts +24 -24
  469. package/src/stories/Tooltip/Tooltip.settings.ts +16 -17
  470. package/src/stories/Tooltip/Tooltip.stories.ts +18 -18
  471. package/src/stories/Tooltip/Tooltip.test.ts +53 -54
  472. package/src/stories/Tooltip/TooltipDirective.stories.ts +37 -37
  473. package/src/stories/argTypes.ts +506 -505
  474. package/src/test/expect.ts +74 -79
  475. package/src/test/options.ts +17 -16
  476. package/src/test/sleep.ts +3 -2
  477. package/src/test/types.d.ts +12 -12
  478. package/src/types/alert.ts +21 -17
  479. package/src/types/blurhash.ts +21 -0
  480. package/src/types/floating-ui.ts +1 -1
  481. package/src/types/generic.ts +2 -3
  482. package/src/types/group.ts +35 -27
  483. package/src/types/index.ts +7 -0
  484. package/src/types/input-file.ts +10 -0
  485. package/src/types/nav.ts +13 -14
  486. package/src/utils/DomUtilities.ts +15 -0
  487. package/src/utils/ObjectUtilities.ts +192 -188
  488. package/src/workers/blurhash.ts +9 -0
  489. package/dist/composables/alert/useInjectAlert.d.ts +0 -9
  490. package/dist/composables/dropdown/useInjectDropdown.d.ts +0 -32
  491. package/dist/composables/group/useInjectedGroupState.d.ts +0 -10
  492. package/dist/composables/group/useProvideGroupState.d.ts +0 -6
  493. package/src/composables/dropdown/useProvideDropdown.ts +0 -94
  494. package/src/composables/group/useInjectedGroupState.ts +0 -51
  495. package/src/composables/group/useProvideGroupState.ts +0 -20
  496. /package/src/assets/icons/normal/{dulicate.svg → duplicate.svg} +0 -0
@@ -1,7 +1,11 @@
1
- import { unref, computed, isRef, defineComponent, h, inject, toRef, toRefs, useSlots, ref, openBlock, createElementBlock, normalizeClass, withDirectives, createElementVNode, vModelRadio, renderSlot, createTextVNode, toDisplayString, createVNode, createSlots, withCtx, normalizeProps, guardReactiveProps, provide, createCommentVNode, Fragment, renderList, createBlock, mergeProps } from "vue";
2
- import { uid } from "uid";
1
+ import { computed, isRef, defineComponent, h, inject, toRef, toRefs, useId, unref, useSlots, ref, openBlock, createElementBlock, normalizeClass, withDirectives, createElementVNode, vModelRadio, renderSlot, createTextVNode, toDisplayString, createVNode, createSlots, withCtx, normalizeProps, guardReactiveProps, provide, createCommentVNode, Fragment, renderList, createBlock, mergeProps } from "vue";
3
2
  import { useVModel } from "@vueuse/core";
4
3
  import { get } from "ts-dot-prop";
4
+ var StorageType = /* @__PURE__ */ ((StorageType2) => {
5
+ StorageType2["local"] = "local";
6
+ StorageType2["session"] = "session";
7
+ return StorageType2;
8
+ })(StorageType || {});
5
9
  var Strategy = /* @__PURE__ */ ((Strategy2) => {
6
10
  Strategy2["absolute"] = "absolute";
7
11
  Strategy2["fixed"] = "fixed";
@@ -36,218 +40,17 @@ var ButtonType = /* @__PURE__ */ ((ButtonType2) => {
36
40
  ButtonType2["reset"] = "reset";
37
41
  return ButtonType2;
38
42
  })(ButtonType || {});
39
- var AnchorTarget = /* @__PURE__ */ ((AnchorTarget2) => {
40
- AnchorTarget2["_blank"] = "_blank";
41
- AnchorTarget2["_self"] = "_self";
42
- AnchorTarget2["_parent"] = "_parent";
43
- AnchorTarget2["_top"] = "_top";
44
- return AnchorTarget2;
45
- })(AnchorTarget || {});
43
+ var ActionTag = /* @__PURE__ */ ((ActionTag2) => {
44
+ ActionTag2["nuxtLink"] = "nuxt-link";
45
+ ActionTag2["routerLink"] = "router-link";
46
+ ActionTag2["a"] = "a";
47
+ ActionTag2["button"] = "button";
48
+ return ActionTag2;
49
+ })(ActionTag || {});
46
50
  const INJECTION_KEY_VOLVER = Symbol.for("volver");
47
- const INJECTION_KEY_RADIO_GROUP = Symbol.for("radioGroup");
48
- function equals(obj1, obj2, field) {
49
- if (field) {
50
- return resolveFieldData(obj1, field) === resolveFieldData(obj2, field);
51
- }
52
- return deepEquals(obj1, obj2);
53
- }
54
- function deepEquals(a, b) {
55
- if (a === b)
56
- return true;
57
- if (a && b && typeof a == "object" && typeof b == "object") {
58
- const arrA = Array.isArray(a);
59
- const arrB = Array.isArray(b);
60
- let i, length, key;
61
- if (arrA && arrB) {
62
- length = a.length;
63
- if (length != b.length)
64
- return false;
65
- for (i = length; i-- !== 0; )
66
- if (!deepEquals(a[i], b[i]))
67
- return false;
68
- return true;
69
- }
70
- if (arrA != arrB)
71
- return false;
72
- const dateA = a instanceof Date, dateB = b instanceof Date;
73
- if (dateA != dateB)
74
- return false;
75
- if (dateA && dateB)
76
- return a.getTime() == b.getTime();
77
- const regexpA = a instanceof RegExp, regexpB = b instanceof RegExp;
78
- if (regexpA != regexpB)
79
- return false;
80
- if (regexpA && regexpB)
81
- return a.toString() == b.toString();
82
- const keys = Object.keys(a);
83
- length = keys.length;
84
- if (length !== Object.keys(b).length)
85
- return false;
86
- for (i = length; i-- !== 0; )
87
- if (!Object.prototype.hasOwnProperty.call(b, keys[i]))
88
- return false;
89
- for (i = length; i-- !== 0; ) {
90
- key = keys[i];
91
- if (!deepEquals(a[key], b[key]))
92
- return false;
93
- }
94
- return true;
95
- }
96
- return a !== a && b !== b;
97
- }
98
- function resolveFieldData(data, field) {
99
- if (data && Object.keys(data).length && field) {
100
- if (field.indexOf(".") === -1) {
101
- return data[field];
102
- } else {
103
- const fields = field.split(".");
104
- let value = data;
105
- for (let i = 0, len = fields.length; i < len; ++i) {
106
- if (data == null) {
107
- return null;
108
- }
109
- value = value[fields[i]];
110
- }
111
- return value;
112
- }
113
- } else {
114
- return null;
115
- }
116
- }
117
- function contains(value, list) {
118
- if (value != null && list && list.length) {
119
- for (const val of list) {
120
- if (equals(value, val)) {
121
- return true;
122
- }
123
- }
124
- }
125
- return false;
126
- }
127
- function isEmpty(value) {
128
- return ((value2) => value2 === null || value2 === void 0 || value2 === "" || Array.isArray(value2) && value2.length === 0 || !(value2 instanceof Date) && typeof value2 === "object" && Object.keys(value2).length === 0)(unref(value));
129
- }
130
- function isString(value) {
131
- return typeof value === "string" || value instanceof String;
132
- }
133
- function joinLines(items) {
134
- if (Array.isArray(items)) {
135
- return items.filter((item) => isString(item)).join(" ");
136
- }
137
- return items;
138
- }
139
- function HintSlotFactory(propsOrRef, slots) {
140
- const props = computed(() => {
141
- if (isRef(propsOrRef)) {
142
- return propsOrRef.value;
143
- }
144
- return propsOrRef;
145
- });
146
- const invalidLabel = computed(() => joinLines(props.value.invalidLabel));
147
- const validLabel = computed(() => joinLines(props.value.validLabel));
148
- const loadingLabel = computed(() => props.value.loadingLabel);
149
- const hintLabel = computed(() => props.value.hintLabel);
150
- const hasLoadingLabelOrSlot = computed(
151
- () => Boolean(props.value.loading && (slots.loading || loadingLabel.value))
152
- );
153
- const hasInvalidLabelOrSlot = computed(
154
- () => !hasLoadingLabelOrSlot.value && Boolean(
155
- props.value.invalid && (slots.invalid || invalidLabel.value)
156
- )
157
- );
158
- const hasValidLabelOrSlot = computed(
159
- () => !hasLoadingLabelOrSlot.value && !hasInvalidLabelOrSlot.value && Boolean(props.value.valid && (slots.valid || validLabel.value))
160
- );
161
- const hasHintLabelOrSlot = computed(
162
- () => !hasLoadingLabelOrSlot.value && !hasInvalidLabelOrSlot.value && !hasValidLabelOrSlot.value && Boolean(slots.hint || hintLabel.value)
163
- );
164
- const isVisible = computed(
165
- () => hasInvalidLabelOrSlot.value || hasValidLabelOrSlot.value || hasLoadingLabelOrSlot.value || hasHintLabelOrSlot.value
166
- );
167
- const hintSlotScope = computed(() => ({
168
- modelValue: props.value.modelValue,
169
- valid: props.value.valid,
170
- invalid: props.value.invalid,
171
- loading: props.value.loading
172
- }));
173
- const HintSlot = defineComponent({
174
- name: "HintSlot",
175
- props: {
176
- tag: {
177
- type: String,
178
- default: "small"
179
- }
180
- },
181
- setup() {
182
- return {
183
- isVisible,
184
- invalidLabel,
185
- validLabel,
186
- loadingLabel,
187
- hintLabel,
188
- hasInvalidLabelOrSlot,
189
- hasValidLabelOrSlot,
190
- hasLoadingLabelOrSlot,
191
- hasHintLabelOrSlot
192
- };
193
- },
194
- render() {
195
- var _a, _b, _c, _d, _e, _f, _g, _h;
196
- if (this.isVisible) {
197
- let role;
198
- if (this.hasInvalidLabelOrSlot) {
199
- role = "alert";
200
- }
201
- if (this.hasValidLabelOrSlot) {
202
- role = "status";
203
- }
204
- if (this.hasLoadingLabelOrSlot) {
205
- return h(
206
- this.tag,
207
- {
208
- role
209
- },
210
- ((_b = (_a = this.$slots).loading) == null ? void 0 : _b.call(_a)) ?? this.loadingLabel
211
- );
212
- }
213
- if (this.hasInvalidLabelOrSlot) {
214
- return h(
215
- this.tag,
216
- {
217
- role
218
- },
219
- ((_d = (_c = this.$slots).invalid) == null ? void 0 : _d.call(_c)) ?? this.$slots.invalid ?? this.invalidLabel
220
- );
221
- }
222
- if (this.hasValidLabelOrSlot) {
223
- return h(
224
- this.tag,
225
- {
226
- role
227
- },
228
- ((_f = (_e = this.$slots).valid) == null ? void 0 : _f.call(_e)) ?? this.validLabel
229
- );
230
- }
231
- return h(
232
- this.tag,
233
- {
234
- role
235
- },
236
- ((_h = (_g = this.$slots).hint) == null ? void 0 : _h.call(_g)) ?? this.$slots.hint ?? this.hintLabel
237
- );
238
- }
239
- return null;
240
- }
241
- });
242
- return {
243
- hasInvalidLabelOrSlot,
244
- hasHintLabelOrSlot,
245
- hasValidLabelOrSlot,
246
- hasLoadingLabelOrSlot,
247
- hintSlotScope,
248
- HintSlot
249
- };
250
- }
51
+ const INJECTION_KEY_RADIO_GROUP = Symbol.for(
52
+ "radioGroup"
53
+ );
251
54
  const LinkProps = {
252
55
  /**
253
56
  * The router-link/nuxt-link property, if it is defined the button is rendered as a ruouter-link or nuxt-link.
@@ -263,10 +66,7 @@ const LinkProps = {
263
66
  /**
264
67
  * Anchor target
265
68
  */
266
- target: {
267
- type: String,
268
- validator: (value) => Object.values(AnchorTarget).includes(value)
269
- },
69
+ target: String,
270
70
  /**
271
71
  * Anchor rel
272
72
  */
@@ -279,27 +79,33 @@ const ValidProps = {
279
79
  /**
280
80
  * Valid status
281
81
  */
282
- valid: Boolean,
82
+ valid: { type: Boolean, default: false },
283
83
  /**
284
84
  * Valid label
285
85
  */
286
- validLabel: [String, Array]
86
+ validLabel: { type: [String, Array], default: void 0 }
287
87
  };
288
88
  const InvalidProps = {
289
89
  /**
290
90
  * Invalid status
291
91
  */
292
- invalid: Boolean,
92
+ invalid: {
93
+ type: Boolean,
94
+ default: false
95
+ },
293
96
  /**
294
97
  * Invalid label
295
98
  */
296
- invalidLabel: [String, Array]
99
+ invalidLabel: { type: [String, Array], default: void 0 }
297
100
  };
298
101
  const LoadingProps = {
299
102
  /**
300
103
  * Loading status
301
104
  */
302
- loading: Boolean,
105
+ loading: {
106
+ type: Boolean,
107
+ default: false
108
+ },
303
109
  /**
304
110
  * Loading label
305
111
  */
@@ -312,43 +118,64 @@ const DisabledProps = {
312
118
  /**
313
119
  * Whether the form control is disabled
314
120
  */
315
- disabled: Boolean
121
+ disabled: {
122
+ type: Boolean,
123
+ default: false
124
+ }
316
125
  };
317
126
  const ActiveProps = {
318
127
  /**
319
128
  * Whether the item is active
320
129
  */
321
- active: Boolean
130
+ active: {
131
+ type: Boolean,
132
+ default: false
133
+ }
322
134
  };
323
135
  const CurrentProps = {
324
136
  /**
325
137
  * Whether the item is current
326
138
  */
327
- current: Boolean
139
+ current: {
140
+ type: Boolean,
141
+ default: false
142
+ }
328
143
  };
329
144
  const PressedProps = {
330
145
  /**
331
146
  * Whether the item is pressed
332
147
  */
333
- pressed: Boolean
148
+ pressed: {
149
+ type: Boolean,
150
+ default: false
151
+ }
334
152
  };
335
153
  const LabelProps = {
336
154
  /**
337
155
  * The item label
338
156
  */
339
- label: [String, Number]
157
+ label: {
158
+ type: [String, Number],
159
+ default: void 0
160
+ }
340
161
  };
341
162
  const ReadonlyProps = {
342
163
  /**
343
164
  * The value is not editable
344
165
  */
345
- readonly: Boolean
166
+ readonly: {
167
+ type: Boolean,
168
+ default: false
169
+ }
346
170
  };
347
171
  const ModifiersProps = {
348
172
  /**
349
173
  * Component BEM modifiers
350
174
  */
351
- modifiers: [String, Array]
175
+ modifiers: {
176
+ type: [String, Array],
177
+ default: void 0
178
+ }
352
179
  };
353
180
  const HintProps = {
354
181
  hintLabel: { type: String, default: "" }
@@ -379,7 +206,10 @@ const OptionsProps = {
379
206
  * VvIcon name or props
380
207
  * @see VVIcon
381
208
  */
382
- icon: { type: [String, Object] },
209
+ icon: {
210
+ type: [String, Object],
211
+ default: void 0
212
+ },
383
213
  /**
384
214
  * VvIcon position
385
215
  */
@@ -424,7 +254,8 @@ const IdProps = {
424
254
  * Dropdown show / hide transition name
425
255
  */
426
256
  transitionName: {
427
- type: String
257
+ type: String,
258
+ default: void 0
428
259
  },
429
260
  /**
430
261
  * Offset of the dropdown from the trigger
@@ -492,7 +323,8 @@ const IdProps = {
492
323
  * Set dropdown width to the same as the trigger
493
324
  */
494
325
  triggerWidth: {
495
- type: Boolean
326
+ type: Boolean,
327
+ default: false
496
328
  }
497
329
  });
498
330
  const IdNameProps = {
@@ -519,11 +351,17 @@ const CheckboxRadioProps = {
519
351
  * Input value
520
352
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#value
521
353
  */
522
- value: [String, Number, Boolean],
354
+ value: {
355
+ type: [String, Number, Boolean],
356
+ default: void 0
357
+ },
523
358
  /**
524
359
  * Input value
525
360
  */
526
- modelValue: [Object, Number, Boolean, String]
361
+ modelValue: {
362
+ type: [Object, Number, Boolean, String],
363
+ default: void 0
364
+ }
527
365
  };
528
366
  const CheckboxRadioGroupProps = {
529
367
  ...ValidProps,
@@ -538,7 +376,10 @@ const CheckboxRadioGroupProps = {
538
376
  /**
539
377
  * Input value
540
378
  */
541
- modelValue: [String, Array, Boolean, Number, Symbol],
379
+ modelValue: {
380
+ type: [String, Array, Boolean, Number, Symbol],
381
+ default: void 0
382
+ },
542
383
  /**
543
384
  * Input name
544
385
  */
@@ -546,7 +387,10 @@ const CheckboxRadioGroupProps = {
546
387
  /**
547
388
  * If true, the group will be displayed in a vertical column
548
389
  */
549
- vertical: Boolean
390
+ vertical: {
391
+ type: Boolean,
392
+ default: false
393
+ }
550
394
  };
551
395
  ({
552
396
  ...DisabledProps,
@@ -569,17 +413,216 @@ const CheckboxRadioGroupProps = {
569
413
  ariaLabel: {
570
414
  type: String,
571
415
  default: void 0
416
+ },
417
+ /**
418
+ * Default tag for the action
419
+ */
420
+ defaultTag: {
421
+ type: String,
422
+ default: ActionTag.button
572
423
  }
573
424
  });
574
- function useInjectedGroupState(groupKey) {
425
+ ({
426
+ storageType: {
427
+ type: String,
428
+ default: StorageType.local,
429
+ validator: (value) => Object.values(StorageType).includes(value)
430
+ },
431
+ storageKey: String
432
+ });
433
+ const VvRadioGroupProps = CheckboxRadioGroupProps;
434
+ const VvRadioGroupEvents = ["update:modelValue", "change"];
435
+ function equals(obj1, obj2, field) {
436
+ return deepEquals(obj1, obj2);
437
+ }
438
+ function deepEquals(a, b) {
439
+ if (a === b)
440
+ return true;
441
+ if (a && b && typeof a == "object" && typeof b == "object") {
442
+ const arrA = Array.isArray(a);
443
+ const arrB = Array.isArray(b);
444
+ let i, length, key;
445
+ if (arrA && arrB) {
446
+ length = a.length;
447
+ if (length !== b.length)
448
+ return false;
449
+ for (i = length; i-- !== 0; ) {
450
+ if (!deepEquals(a[i], b[i]))
451
+ return false;
452
+ }
453
+ return true;
454
+ }
455
+ if (arrA !== arrB)
456
+ return false;
457
+ const dateA = a instanceof Date;
458
+ const dateB = b instanceof Date;
459
+ if (dateA !== dateB)
460
+ return false;
461
+ if (dateA && dateB)
462
+ return a.getTime() === b.getTime();
463
+ const regexpA = a instanceof RegExp;
464
+ const regexpB = b instanceof RegExp;
465
+ if (regexpA !== regexpB)
466
+ return false;
467
+ if (regexpA && regexpB)
468
+ return a.toString() === b.toString();
469
+ const keys = Object.keys(a);
470
+ length = keys.length;
471
+ if (length !== Object.keys(b).length)
472
+ return false;
473
+ for (i = length; i-- !== 0; ) {
474
+ if (!Object.prototype.hasOwnProperty.call(b, keys[i]))
475
+ return false;
476
+ }
477
+ for (i = length; i-- !== 0; ) {
478
+ key = keys[i];
479
+ if (!deepEquals(a[key], b[key]))
480
+ return false;
481
+ }
482
+ return true;
483
+ }
484
+ return Number.isNaN(a) && Number.isNaN(b);
485
+ }
486
+ function contains(value, list) {
487
+ if (value != null && list && list.length) {
488
+ for (const val of list) {
489
+ if (equals(value, val)) {
490
+ return true;
491
+ }
492
+ }
493
+ }
494
+ return false;
495
+ }
496
+ function isString(value) {
497
+ return typeof value === "string" || value instanceof String;
498
+ }
499
+ function joinLines(items) {
500
+ if (Array.isArray(items)) {
501
+ return items.filter((item) => isString(item)).join(" ");
502
+ }
503
+ return items;
504
+ }
505
+ function HintSlotFactory(propsOrRef, slots) {
506
+ const props = computed(() => {
507
+ if (isRef(propsOrRef)) {
508
+ return propsOrRef.value;
509
+ }
510
+ return propsOrRef;
511
+ });
512
+ const invalidLabel = computed(() => joinLines(props.value.invalidLabel));
513
+ const validLabel = computed(() => joinLines(props.value.validLabel));
514
+ const loadingLabel = computed(() => props.value.loadingLabel);
515
+ const hintLabel = computed(() => props.value.hintLabel);
516
+ const hasLoadingLabelOrSlot = computed(
517
+ () => Boolean(props.value.loading && (slots.loading || loadingLabel.value))
518
+ );
519
+ const hasInvalidLabelOrSlot = computed(
520
+ () => !hasLoadingLabelOrSlot.value && Boolean(
521
+ props.value.invalid && (slots.invalid || invalidLabel.value)
522
+ )
523
+ );
524
+ const hasValidLabelOrSlot = computed(
525
+ () => !hasLoadingLabelOrSlot.value && !hasInvalidLabelOrSlot.value && Boolean(props.value.valid && (slots.valid || validLabel.value))
526
+ );
527
+ const hasHintLabelOrSlot = computed(
528
+ () => !hasLoadingLabelOrSlot.value && !hasInvalidLabelOrSlot.value && !hasValidLabelOrSlot.value && Boolean(slots.hint || hintLabel.value)
529
+ );
530
+ const isVisible = computed(
531
+ () => hasInvalidLabelOrSlot.value || hasValidLabelOrSlot.value || hasLoadingLabelOrSlot.value || hasHintLabelOrSlot.value
532
+ );
533
+ const hintSlotScope = computed(() => ({
534
+ modelValue: props.value.modelValue,
535
+ valid: props.value.valid,
536
+ invalid: props.value.invalid,
537
+ loading: props.value.loading
538
+ }));
539
+ const HintSlot = defineComponent({
540
+ name: "HintSlot",
541
+ props: {
542
+ tag: {
543
+ type: String,
544
+ default: "small"
545
+ }
546
+ },
547
+ setup() {
548
+ return {
549
+ isVisible,
550
+ invalidLabel,
551
+ validLabel,
552
+ loadingLabel,
553
+ hintLabel,
554
+ hasInvalidLabelOrSlot,
555
+ hasValidLabelOrSlot,
556
+ hasLoadingLabelOrSlot,
557
+ hasHintLabelOrSlot
558
+ };
559
+ },
560
+ render() {
561
+ var _a, _b, _c, _d, _e, _f, _g, _h;
562
+ if (this.isVisible) {
563
+ let role;
564
+ if (this.hasInvalidLabelOrSlot) {
565
+ role = "alert";
566
+ }
567
+ if (this.hasValidLabelOrSlot) {
568
+ role = "status";
569
+ }
570
+ if (this.hasLoadingLabelOrSlot) {
571
+ return h(
572
+ this.tag,
573
+ {
574
+ role
575
+ },
576
+ ((_b = (_a = this.$slots).loading) == null ? void 0 : _b.call(_a)) ?? this.loadingLabel
577
+ );
578
+ }
579
+ if (this.hasInvalidLabelOrSlot) {
580
+ return h(
581
+ this.tag,
582
+ {
583
+ role
584
+ },
585
+ ((_d = (_c = this.$slots).invalid) == null ? void 0 : _d.call(_c)) ?? this.$slots.invalid ?? this.invalidLabel
586
+ );
587
+ }
588
+ if (this.hasValidLabelOrSlot) {
589
+ return h(
590
+ this.tag,
591
+ {
592
+ role
593
+ },
594
+ ((_f = (_e = this.$slots).valid) == null ? void 0 : _f.call(_e)) ?? this.validLabel
595
+ );
596
+ }
597
+ return h(
598
+ this.tag,
599
+ {
600
+ role
601
+ },
602
+ ((_h = (_g = this.$slots).hint) == null ? void 0 : _h.call(_g)) ?? this.$slots.hint ?? this.hintLabel
603
+ );
604
+ }
605
+ return null;
606
+ }
607
+ });
608
+ return {
609
+ hasInvalidLabelOrSlot,
610
+ hasHintLabelOrSlot,
611
+ hasValidLabelOrSlot,
612
+ hasLoadingLabelOrSlot,
613
+ hintSlotScope,
614
+ HintSlot
615
+ };
616
+ }
617
+ function useGroupStateInject(groupKey) {
575
618
  const group = inject(groupKey, void 0);
576
- const isInGroup = computed(() => !isEmpty(group));
619
+ const isInGroup = computed(() => group !== void 0);
577
620
  function getGroupOrLocalRef(propName, props, emit) {
578
- if (group == null ? void 0 : group.value) {
579
- const groupPropValue = unref(group.value)[propName];
621
+ const groupPropValue = group == null ? void 0 : group[propName];
622
+ if (groupPropValue) {
580
623
  return computed({
581
624
  get() {
582
- return groupPropValue == null ? void 0 : groupPropValue.value;
625
+ return groupPropValue.value;
583
626
  },
584
627
  set(value) {
585
628
  groupPropValue.value = value;
@@ -592,8 +635,9 @@ function useInjectedGroupState(groupKey) {
592
635
  return propRef.value;
593
636
  },
594
637
  set(value) {
595
- if (emit)
638
+ if (emit) {
596
639
  emit(`update:${propName}`, value);
640
+ }
597
641
  }
598
642
  });
599
643
  }
@@ -607,21 +651,15 @@ const VvRadioProps = CheckboxRadioProps;
607
651
  const VvRadioEvents = ["click", "update:modelValue", "change", "blur"];
608
652
  function useGroupProps(props, emit) {
609
653
  const { id } = toRefs(props);
610
- const { group, isInGroup, getGroupOrLocalRef } = useInjectedGroupState(INJECTION_KEY_RADIO_GROUP);
654
+ const { group, isInGroup, getGroupOrLocalRef } = useGroupStateInject(INJECTION_KEY_RADIO_GROUP);
611
655
  const modelValue = getGroupOrLocalRef("modelValue", props, emit);
612
656
  const valid = getGroupOrLocalRef("valid", props);
613
657
  const invalid = getGroupOrLocalRef("invalid", props);
614
658
  const readonly = computed(
615
- () => {
616
- var _a;
617
- return Boolean(props.readonly || ((_a = group == null ? void 0 : group.value) == null ? void 0 : _a.readonly.value));
618
- }
659
+ () => Boolean(props.readonly || (group == null ? void 0 : group.readonly.value))
619
660
  );
620
661
  const disabled = computed(
621
- () => {
622
- var _a;
623
- return Boolean(props.disabled || ((_a = group == null ? void 0 : group.value) == null ? void 0 : _a.disabled.value));
624
- }
662
+ () => Boolean(props.disabled || (group == null ? void 0 : group.disabled.value))
625
663
  );
626
664
  return {
627
665
  // local props
@@ -692,7 +730,9 @@ function useDefaults(componentName, propsDefinition, props) {
692
730
  }, {});
693
731
  });
694
732
  }
695
- const useUniqueId = (id) => computed(() => String((id == null ? void 0 : id.value) || uid()));
733
+ function useUniqueId(id) {
734
+ return computed(() => String((id == null ? void 0 : id.value) || useId()));
735
+ }
696
736
  function useModifiers(prefix, modifiers, others) {
697
737
  return computed(() => {
698
738
  const toReturn = {
@@ -725,8 +765,9 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
725
765
  ...__default__$1,
726
766
  props: VvRadioProps,
727
767
  emits: VvRadioEvents,
728
- setup(__props, { emit }) {
768
+ setup(__props, { emit: __emit }) {
729
769
  const props = __props;
770
+ const emit = __emit;
730
771
  const slots = useSlots();
731
772
  const propsDefaults = useDefaults(
732
773
  "VvRadio",
@@ -807,12 +848,19 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
807
848
  [vModelRadio, unref(localModelValue)]
808
849
  ]),
809
850
  renderSlot(_ctx.$slots, "default", { value: unref(modelValue) }, () => [
810
- createTextVNode(toDisplayString(_ctx.label), 1)
851
+ createTextVNode(
852
+ toDisplayString(_ctx.label),
853
+ 1
854
+ /* TEXT */
855
+ )
811
856
  ]),
812
857
  createVNode(unref(HintSlot), {
813
858
  id: unref(hasHintId),
814
859
  class: "vv-radio__hint"
815
- }, createSlots({ _: 2 }, [
860
+ }, createSlots({
861
+ _: 2
862
+ /* DYNAMIC */
863
+ }, [
816
864
  _ctx.$slots.hint ? {
817
865
  name: "hint",
818
866
  fn: withCtx(() => [
@@ -846,41 +894,48 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
846
894
  };
847
895
  }
848
896
  });
849
- const VvRadioGroupProps = CheckboxRadioGroupProps;
850
- const VvRadioGroupEvents = ["update:modelValue", "change"];
851
- function useProvideGroupState(groupState) {
852
- if (Object.keys(groupState).some(
853
- (k) => k !== "key" && !isRef(groupState[k])
854
- ))
855
- throw Error("One or more groupState props aren't ref.");
856
- provide(
857
- groupState.key,
858
- computed(() => groupState)
859
- );
897
+ function useGroupStateProvide(key, groupState) {
898
+ provide(key, groupState);
860
899
  }
861
900
  function useOptions(props) {
862
901
  const { options, labelKey, valueKey, disabledKey } = toRefs(props);
863
902
  const getOptionLabel = (option) => {
864
- if (typeof option !== "object" && option !== null)
903
+ if (typeof option === "string") {
865
904
  return option;
905
+ }
906
+ if (typeof labelKey.value === "function") {
907
+ return labelKey.value(option);
908
+ }
866
909
  return String(
867
- typeof labelKey.value === "function" ? labelKey.value(option) : get(option, labelKey.value)
910
+ labelKey.value ? get(option, labelKey.value) : option
868
911
  );
869
912
  };
870
913
  const getOptionValue = (option) => {
871
- if (typeof option !== "object" && option !== null)
914
+ if (typeof option === "string") {
872
915
  return option;
873
- return typeof valueKey.value === "function" ? valueKey.value(option) : get(option, valueKey.value);
916
+ }
917
+ if (typeof valueKey.value === "function") {
918
+ return valueKey.value(option);
919
+ }
920
+ return valueKey.value ? get(option, valueKey.value) : option;
874
921
  };
875
922
  const isOptionDisabled = (option) => {
876
- if (typeof option !== "object" && option !== null)
923
+ if (typeof option === "string") {
877
924
  return false;
878
- return typeof disabledKey.value === "function" ? disabledKey.value(option) : get(option, disabledKey.value);
925
+ }
926
+ if (typeof disabledKey.value === "function") {
927
+ return disabledKey.value(option);
928
+ }
929
+ return disabledKey.value ? get(option, disabledKey.value) : false;
879
930
  };
880
931
  const getOptionGrouped = (option) => {
881
- if (typeof option !== "object" && option !== null)
932
+ if (typeof option == "string") {
882
933
  return [];
883
- return option.options || [];
934
+ }
935
+ if (typeof option === "object" && option && "options" in option) {
936
+ return option.options;
937
+ }
938
+ return [];
884
939
  };
885
940
  return {
886
941
  options,
@@ -899,8 +954,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
899
954
  ...__default__,
900
955
  props: VvRadioGroupProps,
901
956
  emits: VvRadioGroupEvents,
902
- setup(__props, { emit }) {
957
+ setup(__props, { emit: __emit }) {
903
958
  const props = __props;
959
+ const emit = __emit;
904
960
  const slots = useSlots();
905
961
  const propsDefaults = useDefaults(
906
962
  "VvRadioGroup",
@@ -909,8 +965,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
909
965
  );
910
966
  const modelValue = useVModel(props, "modelValue", emit);
911
967
  const { disabled, readonly, vertical, valid, invalid, modifiers } = toRefs(props);
912
- useProvideGroupState({
913
- key: INJECTION_KEY_RADIO_GROUP,
968
+ useGroupStateProvide(INJECTION_KEY_RADIO_GROUP, {
914
969
  modelValue,
915
970
  disabled,
916
971
  readonly,
@@ -929,59 +984,89 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
929
984
  invalid: invalid.value
930
985
  }))
931
986
  );
932
- const getOptionProps = (option, index) => {
987
+ function getOptionProps(option, index) {
933
988
  return {
934
989
  id: `${props.name}_opt${index}`,
935
990
  name: props.name,
936
991
  label: getOptionLabel(option),
937
992
  value: getOptionValue(option)
938
993
  };
939
- };
994
+ }
940
995
  const { HintSlot, hintSlotScope } = HintSlotFactory(propsDefaults, slots);
941
996
  return (_ctx, _cache) => {
942
- return openBlock(), createElementBlock("fieldset", {
943
- class: normalizeClass(unref(bemCssClasses))
944
- }, [
945
- _ctx.label ? (openBlock(), createElementBlock("legend", {
946
- key: 0,
947
- textContent: toDisplayString(_ctx.label)
948
- }, null, 8, _hoisted_1)) : createCommentVNode("", true),
949
- createElementVNode("div", _hoisted_2, [
950
- _ctx.options.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(_ctx.options, (option, index) => {
951
- return openBlock(), createBlock(_sfc_main$1, mergeProps({ key: index }, getOptionProps(option, index)), null, 16);
952
- }), 128)) : renderSlot(_ctx.$slots, "default", { key: 1 })
953
- ]),
954
- createVNode(unref(HintSlot), { class: "vv-radio-group__hint" }, createSlots({ _: 2 }, [
955
- _ctx.$slots.hint ? {
956
- name: "hint",
957
- fn: withCtx(() => [
958
- renderSlot(_ctx.$slots, "hint", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
959
- ]),
960
- key: "0"
961
- } : void 0,
962
- _ctx.$slots.loading ? {
963
- name: "loading",
964
- fn: withCtx(() => [
965
- renderSlot(_ctx.$slots, "loading", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
966
- ]),
967
- key: "1"
968
- } : void 0,
969
- _ctx.$slots.valid ? {
970
- name: "valid",
971
- fn: withCtx(() => [
972
- renderSlot(_ctx.$slots, "valid", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
973
- ]),
974
- key: "2"
975
- } : void 0,
976
- _ctx.$slots.invalid ? {
977
- name: "invalid",
978
- fn: withCtx(() => [
979
- renderSlot(_ctx.$slots, "invalid", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
997
+ return openBlock(), createElementBlock(
998
+ "fieldset",
999
+ {
1000
+ class: normalizeClass(unref(bemCssClasses))
1001
+ },
1002
+ [
1003
+ _ctx.label ? (openBlock(), createElementBlock("legend", {
1004
+ key: 0,
1005
+ textContent: toDisplayString(_ctx.label)
1006
+ }, null, 8, _hoisted_1)) : createCommentVNode("v-if", true),
1007
+ createElementVNode("div", _hoisted_2, [
1008
+ _ctx.options.length > 0 ? (openBlock(true), createElementBlock(
1009
+ Fragment,
1010
+ { key: 0 },
1011
+ renderList(_ctx.options, (option, index) => {
1012
+ return openBlock(), createBlock(
1013
+ _sfc_main$1,
1014
+ mergeProps({
1015
+ key: index,
1016
+ ref_for: true
1017
+ }, getOptionProps(option, index)),
1018
+ null,
1019
+ 16
1020
+ /* FULL_PROPS */
1021
+ );
1022
+ }),
1023
+ 128
1024
+ /* KEYED_FRAGMENT */
1025
+ )) : renderSlot(_ctx.$slots, "default", { key: 1 })
1026
+ ]),
1027
+ createVNode(
1028
+ unref(HintSlot),
1029
+ { class: "vv-radio-group__hint" },
1030
+ createSlots({
1031
+ _: 2
1032
+ /* DYNAMIC */
1033
+ }, [
1034
+ _ctx.$slots.hint ? {
1035
+ name: "hint",
1036
+ fn: withCtx(() => [
1037
+ renderSlot(_ctx.$slots, "hint", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
1038
+ ]),
1039
+ key: "0"
1040
+ } : void 0,
1041
+ _ctx.$slots.loading ? {
1042
+ name: "loading",
1043
+ fn: withCtx(() => [
1044
+ renderSlot(_ctx.$slots, "loading", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
1045
+ ]),
1046
+ key: "1"
1047
+ } : void 0,
1048
+ _ctx.$slots.valid ? {
1049
+ name: "valid",
1050
+ fn: withCtx(() => [
1051
+ renderSlot(_ctx.$slots, "valid", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
1052
+ ]),
1053
+ key: "2"
1054
+ } : void 0,
1055
+ _ctx.$slots.invalid ? {
1056
+ name: "invalid",
1057
+ fn: withCtx(() => [
1058
+ renderSlot(_ctx.$slots, "invalid", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
1059
+ ]),
1060
+ key: "3"
1061
+ } : void 0
980
1062
  ]),
981
- key: "3"
982
- } : void 0
983
- ]), 1024)
984
- ], 2);
1063
+ 1024
1064
+ /* DYNAMIC_SLOTS */
1065
+ )
1066
+ ],
1067
+ 2
1068
+ /* CLASS */
1069
+ );
985
1070
  };
986
1071
  }
987
1072
  });