@vuetify/nightly 3.2.0-dev-20230309.0 → 3.2.0-dev-20230322.0

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 (256) hide show
  1. package/CHANGELOG.md +2 -2
  2. package/dist/json/attributes.json +210 -30
  3. package/dist/json/importMap.json +4 -4
  4. package/dist/json/tags.json +47 -2
  5. package/dist/json/web-types.json +529 -63
  6. package/dist/vuetify-labs.css +1186 -1146
  7. package/dist/vuetify-labs.d.ts +56928 -14280
  8. package/dist/vuetify-labs.esm.js +557 -363
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +557 -363
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +204 -179
  13. package/dist/vuetify.d.ts +55330 -15866
  14. package/dist/vuetify.esm.js +400 -306
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +400 -306
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +668 -667
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/blueprints/index.d.ts +6 -9
  22. package/lib/blueprints/md1.d.ts +6 -9
  23. package/lib/blueprints/md2.d.ts +6 -9
  24. package/lib/blueprints/md3.d.ts +6 -9
  25. package/lib/blueprints/md3.mjs +6 -0
  26. package/lib/blueprints/md3.mjs.map +1 -1
  27. package/lib/components/VAlert/VAlert.mjs +29 -15
  28. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  29. package/lib/components/VAlert/index.d.ts +510 -82
  30. package/lib/components/VApp/VApp.css +1 -0
  31. package/lib/components/VApp/VApp.sass +1 -0
  32. package/lib/components/VApp/index.d.ts +158 -20
  33. package/lib/components/VAppBar/VAppBar.mjs +2 -2
  34. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  35. package/lib/components/VAppBar/index.d.ts +616 -110
  36. package/lib/components/VAutocomplete/VAutocomplete.mjs +13 -7
  37. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  38. package/lib/components/VAutocomplete/index.d.ts +1656 -130
  39. package/lib/components/VAvatar/index.d.ts +205 -29
  40. package/lib/components/VBadge/index.d.ts +284 -42
  41. package/lib/components/VBanner/VBanner.mjs +19 -12
  42. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  43. package/lib/components/VBanner/index.d.ts +478 -84
  44. package/lib/components/VBottomNavigation/index.d.ts +321 -40
  45. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +11 -7
  46. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  47. package/lib/components/VBreadcrumbs/index.d.ts +325 -45
  48. package/lib/components/VBtn/VBtn.css +0 -5
  49. package/lib/components/VBtn/VBtn.mjs +65 -58
  50. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  51. package/lib/components/VBtn/VBtn.sass +0 -7
  52. package/lib/components/VBtn/_variables.scss +0 -2
  53. package/lib/components/VBtn/index.d.ts +452 -69
  54. package/lib/components/VBtnGroup/VBtnGroup.mjs +1 -7
  55. package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
  56. package/lib/components/VBtnGroup/index.d.ts +185 -26
  57. package/lib/components/VBtnToggle/VBtnToggle.mjs +2 -2
  58. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  59. package/lib/components/VBtnToggle/index.d.ts +245 -35
  60. package/lib/components/VCard/VCard.mjs +10 -6
  61. package/lib/components/VCard/VCard.mjs.map +1 -1
  62. package/lib/components/VCard/VCardItem.mjs +27 -23
  63. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  64. package/lib/components/VCard/index.d.ts +938 -172
  65. package/lib/components/VCarousel/index.d.ts +561 -123
  66. package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
  67. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  68. package/lib/components/VCheckbox/VCheckboxBtn.mjs +1 -4
  69. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  70. package/lib/components/VCheckbox/index.d.ts +831 -147
  71. package/lib/components/VChip/VChip.css +110 -90
  72. package/lib/components/VChip/VChip.mjs +70 -48
  73. package/lib/components/VChip/VChip.mjs.map +1 -1
  74. package/lib/components/VChip/_mixins.scss +27 -23
  75. package/lib/components/VChip/index.d.ts +474 -76
  76. package/lib/components/VChipGroup/index.d.ts +227 -32
  77. package/lib/components/VCode/index.d.ts +109 -16
  78. package/lib/components/VColorPicker/index.d.ts +284 -20
  79. package/lib/components/VCombobox/VCombobox.mjs +13 -7
  80. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  81. package/lib/components/VCombobox/index.d.ts +1668 -130
  82. package/lib/components/VCounter/index.d.ts +1894 -87
  83. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +4 -1
  84. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
  85. package/lib/components/VDefaultsProvider/index.d.ts +133 -21
  86. package/lib/components/VDialog/VDialog.css +31 -24
  87. package/lib/components/VDialog/VDialog.mjs +2 -2
  88. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  89. package/lib/components/VDialog/VDialog.sass +19 -12
  90. package/lib/components/VDialog/index.d.ts +2362 -146
  91. package/lib/components/VDivider/index.d.ts +130 -23
  92. package/lib/components/VExpansionPanel/index.d.ts +719 -119
  93. package/lib/components/VField/index.d.ts +163 -21
  94. package/lib/components/VFileInput/index.d.ts +1038 -104
  95. package/lib/components/VFooter/VFooter.css +2 -0
  96. package/lib/components/VFooter/VFooter.sass +2 -0
  97. package/lib/components/VFooter/_variables.scss +2 -0
  98. package/lib/components/VFooter/index.d.ts +203 -28
  99. package/lib/components/VForm/index.d.ts +204 -23
  100. package/lib/components/VGrid/VCol.mjs +6 -5
  101. package/lib/components/VGrid/VCol.mjs.map +1 -1
  102. package/lib/components/VGrid/VRow.mjs +4 -4
  103. package/lib/components/VGrid/VRow.mjs.map +1 -1
  104. package/lib/components/VGrid/index.d.ts +733 -76
  105. package/lib/components/VHover/index.d.ts +182 -35
  106. package/lib/components/VIcon/index.d.ts +494 -50
  107. package/lib/components/VImg/VImg.mjs +2 -2
  108. package/lib/components/VImg/VImg.mjs.map +1 -1
  109. package/lib/components/VImg/index.d.ts +275 -46
  110. package/lib/components/VInput/index.d.ts +315 -53
  111. package/lib/components/VItemGroup/index.d.ts +308 -52
  112. package/lib/components/VKbd/VKbd.css +1 -0
  113. package/lib/components/VKbd/VKbd.sass +1 -0
  114. package/lib/components/VKbd/_variables.scss +1 -0
  115. package/lib/components/VKbd/index.d.ts +109 -16
  116. package/lib/components/VLabel/index.d.ts +113 -20
  117. package/lib/components/VLayout/index.d.ts +296 -41
  118. package/lib/components/VLazy/VLazy.mjs +4 -1
  119. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  120. package/lib/components/VLazy/index.d.ts +219 -30
  121. package/lib/components/VList/VListChildren.mjs +2 -2
  122. package/lib/components/VList/VListChildren.mjs.map +1 -1
  123. package/lib/components/VList/VListGroup.mjs +1 -4
  124. package/lib/components/VList/VListGroup.mjs.map +1 -1
  125. package/lib/components/VList/VListItem.mjs +23 -19
  126. package/lib/components/VList/VListItem.mjs.map +1 -1
  127. package/lib/components/VList/index.d.ts +1461 -223
  128. package/lib/components/VLocaleProvider/index.d.ts +121 -20
  129. package/lib/components/VMain/index.d.ts +118 -17
  130. package/lib/components/VMenu/VMenu.css +4 -4
  131. package/lib/components/VMenu/VMenu.mjs +2 -2
  132. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  133. package/lib/components/VMenu/VMenu.sass +1 -1
  134. package/lib/components/VMenu/index.d.ts +2368 -142
  135. package/lib/components/VMessages/index.d.ts +1921 -98
  136. package/lib/components/VNavigationDrawer/index.d.ts +379 -56
  137. package/lib/components/VOverlay/VOverlay.css +2 -2
  138. package/lib/components/VOverlay/VOverlay.mjs +1 -4
  139. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  140. package/lib/components/VOverlay/VOverlay.sass +1 -1
  141. package/lib/components/VOverlay/_variables.scss +1 -1
  142. package/lib/components/VOverlay/index.d.ts +519 -85
  143. package/lib/components/VPagination/index.d.ts +502 -68
  144. package/lib/components/VParallax/VParallax.mjs +3 -3
  145. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  146. package/lib/components/VParallax/index.d.ts +141 -28
  147. package/lib/components/VProgressCircular/index.d.ts +186 -25
  148. package/lib/components/VProgressLinear/index.d.ts +319 -48
  149. package/lib/components/VRadio/index.d.ts +313 -57
  150. package/lib/components/VRadioGroup/VRadioGroup.mjs +4 -6
  151. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  152. package/lib/components/VRadioGroup/index.d.ts +463 -83
  153. package/lib/components/VRangeSlider/index.d.ts +528 -80
  154. package/lib/components/VRating/VRating.mjs.map +1 -1
  155. package/lib/components/VRating/index.d.ts +305 -43
  156. package/lib/components/VResponsive/index.d.ts +142 -27
  157. package/lib/components/VSelect/VSelect.mjs +13 -7
  158. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  159. package/lib/components/VSelect/index.d.ts +3060 -328
  160. package/lib/components/VSelectionControl/VSelectionControl.mjs +1 -4
  161. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  162. package/lib/components/VSelectionControl/index.d.ts +76 -4
  163. package/lib/components/VSelectionControlGroup/index.d.ts +242 -38
  164. package/lib/components/VSheet/VSheet.mjs +1 -7
  165. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  166. package/lib/components/VSheet/index.d.ts +194 -31
  167. package/lib/components/VSlideGroup/index.d.ts +475 -83
  168. package/lib/components/VSlider/VSliderTrack.mjs +1 -0
  169. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  170. package/lib/components/VSlider/index.d.ts +521 -79
  171. package/lib/components/VSlider/slider.mjs +5 -6
  172. package/lib/components/VSlider/slider.mjs.map +1 -1
  173. package/lib/components/VSnackbar/VSnackbar.css +2 -7
  174. package/lib/components/VSnackbar/VSnackbar.mjs +4 -3
  175. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  176. package/lib/components/VSnackbar/VSnackbar.sass +3 -8
  177. package/lib/components/VSnackbar/index.d.ts +1219 -81
  178. package/lib/components/VSwitch/VSwitch.mjs +2 -2
  179. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  180. package/lib/components/VSwitch/index.d.ts +498 -92
  181. package/lib/components/VSystemBar/index.d.ts +184 -27
  182. package/lib/components/VTable/index.d.ts +190 -35
  183. package/lib/components/VTabs/VTab.mjs +7 -23
  184. package/lib/components/VTabs/VTab.mjs.map +1 -1
  185. package/lib/components/VTabs/index.d.ts +623 -71
  186. package/lib/components/VTextField/VTextField.mjs +8 -5
  187. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  188. package/lib/components/VTextField/index.d.ts +1404 -106
  189. package/lib/components/VTextarea/VTextarea.mjs +7 -1
  190. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  191. package/lib/components/VTextarea/index.d.ts +1014 -102
  192. package/lib/components/VThemeProvider/index.d.ts +124 -19
  193. package/lib/components/VTimeline/VTimelineDivider.mjs +18 -10
  194. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  195. package/lib/components/VTimeline/index.d.ts +441 -71
  196. package/lib/components/VToolbar/VToolbar.mjs +10 -9
  197. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  198. package/lib/components/VToolbar/index.d.ts +542 -93
  199. package/lib/components/VTooltip/VTooltip.css +3 -3
  200. package/lib/components/VTooltip/VTooltip.mjs +2 -2
  201. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  202. package/lib/components/VTooltip/VTooltip.sass +1 -1
  203. package/lib/components/VTooltip/index.d.ts +1276 -82
  204. package/lib/components/VValidation/index.d.ts +201 -30
  205. package/lib/components/VWindow/index.d.ts +527 -95
  206. package/lib/components/index.d.ts +55255 -15788
  207. package/lib/components/transitions/index.d.ts +2097 -308
  208. package/lib/composables/defaults.mjs +2 -0
  209. package/lib/composables/defaults.mjs.map +1 -1
  210. package/lib/composables/display.mjs +2 -0
  211. package/lib/composables/display.mjs.map +1 -1
  212. package/lib/composables/form.mjs.map +1 -1
  213. package/lib/entry-bundler.mjs +1 -1
  214. package/lib/framework.mjs +1 -1
  215. package/lib/index.d.ts +7 -10
  216. package/lib/labs/VDataTable/VDataTable.css +15 -0
  217. package/lib/labs/VDataTable/VDataTable.mjs +41 -17
  218. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  219. package/lib/labs/VDataTable/VDataTable.sass +9 -0
  220. package/lib/labs/VDataTable/VDataTableFooter.mjs +3 -2
  221. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  222. package/lib/labs/VDataTable/VDataTableRow.mjs +8 -2
  223. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  224. package/lib/labs/VDataTable/VDataTableRows.mjs +2 -1
  225. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  226. package/lib/labs/VDataTable/VDataTableServer.mjs +39 -17
  227. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  228. package/lib/labs/VDataTable/VDataTableVirtual.mjs +23 -12
  229. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  230. package/lib/labs/VDataTable/composables/expand.mjs +1 -1
  231. package/lib/labs/VDataTable/composables/expand.mjs.map +1 -1
  232. package/lib/labs/VDataTable/composables/group.mjs +12 -1
  233. package/lib/labs/VDataTable/composables/group.mjs.map +1 -1
  234. package/lib/labs/VDataTable/composables/options.mjs +0 -12
  235. package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
  236. package/lib/labs/VDataTable/composables/paginate.mjs +25 -4
  237. package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
  238. package/lib/labs/VDataTable/composables/select.mjs +1 -1
  239. package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
  240. package/lib/labs/VDataTable/composables/sort.mjs +19 -3
  241. package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
  242. package/lib/labs/VDataTable/index.d.ts +4179 -1017
  243. package/lib/labs/VVirtualScroll/index.d.ts +32 -1
  244. package/lib/labs/components.d.ts +4214 -1026
  245. package/lib/locale/adapters/vue-i18n.d.ts +1 -1
  246. package/lib/locale/adapters/vue-i18n.mjs +1 -1
  247. package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
  248. package/lib/styles/main.css +4 -0
  249. package/lib/styles/settings/_utilities.scss +7 -0
  250. package/lib/util/animation.mjs +8 -1
  251. package/lib/util/animation.mjs.map +1 -1
  252. package/lib/util/defineComponent.mjs +15 -7
  253. package/lib/util/defineComponent.mjs.map +1 -1
  254. package/lib/util/helpers.mjs +4 -0
  255. package/lib/util/helpers.mjs.map +1 -1
  256. package/package.json +5 -10
@@ -21,7 +21,7 @@ interface LocaleInstance {
21
21
  }
22
22
 
23
23
  type VueI18nAdapterParams = {
24
- i18n: I18n<{}, {}, {}, string, false>;
24
+ i18n: I18n<any, {}, {}, string, false>;
25
25
  useI18n: typeof useI18n;
26
26
  };
27
27
  declare function createVueI18nAdapter({ i18n, useI18n }: VueI18nAdapterParams): LocaleInstance;
@@ -31,7 +31,6 @@ function createProvideFunction(data) {
31
31
  current,
32
32
  fallback,
33
33
  messages,
34
- // @ts-expect-error Type instantiation is excessively deep and possibly infinite
35
34
  t: function (key) {
36
35
  for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
37
36
  params[_key - 1] = arguments[_key];
@@ -61,6 +60,7 @@ export function createVueI18nAdapter(_ref) {
61
60
  current,
62
61
  fallback,
63
62
  messages,
63
+ // @ts-expect-error Type instantiation is excessively deep and possibly infinite
64
64
  t: function (key) {
65
65
  for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
66
66
  params[_key2 - 1] = arguments[_key2];
@@ -1 +1 @@
1
- {"version":3,"file":"vue-i18n.mjs","names":["watch","useProxiedModel","useProvided","props","prop","provided","internal","value","v","createProvideFunction","data","current","fallback","messages","i18n","useI18n","locale","fallbackLocale","useScope","legacy","inheritLocale","name","t","key","params","n","provide","createVueI18nAdapter","global"],"sources":["../../../src/locale/adapters/vue-i18n.ts"],"sourcesContent":["import { watch } from 'vue'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\nimport type { Ref } from 'vue'\nimport type { LocaleInstance, LocaleMessages, LocaleOptions } from '@/composables/locale'\nimport type { I18n, useI18n } from 'vue-i18n'\n\ntype VueI18nAdapterParams = {\n i18n: I18n<{}, {}, {}, string, false>\n useI18n: typeof useI18n\n}\n\nfunction useProvided <T> (props: any, prop: string, provided: Ref<T>) {\n const internal = useProxiedModel(props, prop)\n\n internal.value = props[prop] ?? provided.value\n\n watch(provided, v => {\n if (props[prop] == null) {\n internal.value = v\n }\n })\n\n return internal as Ref<T>\n}\n\nfunction createProvideFunction (data: {\n current: Ref<string>\n fallback: Ref<string>\n messages: Ref<LocaleMessages>\n useI18n: typeof useI18n\n}) {\n return (props: LocaleOptions): LocaleInstance => {\n const current = useProvided(props, 'locale', data.current)\n const fallback = useProvided(props, 'fallback', data.fallback)\n const messages = useProvided(props, 'messages', data.messages)\n\n const i18n = data.useI18n({\n locale: current.value,\n fallbackLocale: fallback.value,\n messages: messages.value as any,\n useScope: 'local',\n legacy: false,\n inheritLocale: false,\n })\n\n watch(current, v => {\n i18n.locale.value = v\n })\n\n return {\n name: 'vue-i18n',\n current,\n fallback,\n messages,\n // @ts-expect-error Type instantiation is excessively deep and possibly infinite\n t: (key: string, ...params: unknown[]) => i18n.t(key, params),\n n: i18n.n,\n provide: createProvideFunction({ current, fallback, messages, useI18n: data.useI18n }),\n }\n }\n}\n\nexport function createVueI18nAdapter ({ i18n, useI18n }: VueI18nAdapterParams): LocaleInstance {\n const current = i18n.global.locale\n const fallback = i18n.global.fallbackLocale as Ref<any>\n const messages = i18n.global.messages\n\n return {\n name: 'vue-i18n',\n current,\n fallback,\n messages,\n t: (key: string, ...params: unknown[]) => i18n.global.t(key, params),\n n: i18n.global.n,\n provide: createProvideFunction({ current, fallback, messages, useI18n }),\n }\n}\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,KAAK;AAAA,SAClBC,eAAe;AAWxB,SAASC,WAAW,CAAMC,KAAU,EAAEC,IAAY,EAAEC,QAAgB,EAAE;EACpE,MAAMC,QAAQ,GAAGL,eAAe,CAACE,KAAK,EAAEC,IAAI,CAAC;EAE7CE,QAAQ,CAACC,KAAK,GAAGJ,KAAK,CAACC,IAAI,CAAC,IAAIC,QAAQ,CAACE,KAAK;EAE9CP,KAAK,CAACK,QAAQ,EAAEG,CAAC,IAAI;IACnB,IAAIL,KAAK,CAACC,IAAI,CAAC,IAAI,IAAI,EAAE;MACvBE,QAAQ,CAACC,KAAK,GAAGC,CAAC;IACpB;EACF,CAAC,CAAC;EAEF,OAAOF,QAAQ;AACjB;AAEA,SAASG,qBAAqB,CAAEC,IAK/B,EAAE;EACD,OAAQP,KAAoB,IAAqB;IAC/C,MAAMQ,OAAO,GAAGT,WAAW,CAACC,KAAK,EAAE,QAAQ,EAAEO,IAAI,CAACC,OAAO,CAAC;IAC1D,MAAMC,QAAQ,GAAGV,WAAW,CAACC,KAAK,EAAE,UAAU,EAAEO,IAAI,CAACE,QAAQ,CAAC;IAC9D,MAAMC,QAAQ,GAAGX,WAAW,CAACC,KAAK,EAAE,UAAU,EAAEO,IAAI,CAACG,QAAQ,CAAC;IAE9D,MAAMC,IAAI,GAAGJ,IAAI,CAACK,OAAO,CAAC;MACxBC,MAAM,EAAEL,OAAO,CAACJ,KAAK;MACrBU,cAAc,EAAEL,QAAQ,CAACL,KAAK;MAC9BM,QAAQ,EAAEA,QAAQ,CAACN,KAAY;MAC/BW,QAAQ,EAAE,OAAO;MACjBC,MAAM,EAAE,KAAK;MACbC,aAAa,EAAE;IACjB,CAAC,CAAC;IAEFpB,KAAK,CAACW,OAAO,EAAEH,CAAC,IAAI;MAClBM,IAAI,CAACE,MAAM,CAACT,KAAK,GAAGC,CAAC;IACvB,CAAC,CAAC;IAEF,OAAO;MACLa,IAAI,EAAE,UAAU;MAChBV,OAAO;MACPC,QAAQ;MACRC,QAAQ;MACR;MACAS,CAAC,EAAE,UAACC,GAAW;QAAA,kCAAKC,MAAM;UAANA,MAAM;QAAA;QAAA,OAAgBV,IAAI,CAACQ,CAAC,CAACC,GAAG,EAAEC,MAAM,CAAC;MAAA;MAC7DC,CAAC,EAAEX,IAAI,CAACW,CAAC;MACTC,OAAO,EAAEjB,qBAAqB,CAAC;QAAEE,OAAO;QAAEC,QAAQ;QAAEC,QAAQ;QAAEE,OAAO,EAAEL,IAAI,CAACK;MAAQ,CAAC;IACvF,CAAC;EACH,CAAC;AACH;AAEA,OAAO,SAASY,oBAAoB,OAA2D;EAAA,IAAzD;IAAEb,IAAI;IAAEC;EAA8B,CAAC;EAC3E,MAAMJ,OAAO,GAAGG,IAAI,CAACc,MAAM,CAACZ,MAAM;EAClC,MAAMJ,QAAQ,GAAGE,IAAI,CAACc,MAAM,CAACX,cAA0B;EACvD,MAAMJ,QAAQ,GAAGC,IAAI,CAACc,MAAM,CAACf,QAAQ;EAErC,OAAO;IACLQ,IAAI,EAAE,UAAU;IAChBV,OAAO;IACPC,QAAQ;IACRC,QAAQ;IACRS,CAAC,EAAE,UAACC,GAAW;MAAA,mCAAKC,MAAM;QAANA,MAAM;MAAA;MAAA,OAAgBV,IAAI,CAACc,MAAM,CAACN,CAAC,CAACC,GAAG,EAAEC,MAAM,CAAC;IAAA;IACpEC,CAAC,EAAEX,IAAI,CAACc,MAAM,CAACH,CAAC;IAChBC,OAAO,EAAEjB,qBAAqB,CAAC;MAAEE,OAAO;MAAEC,QAAQ;MAAEC,QAAQ;MAAEE;IAAQ,CAAC;EACzE,CAAC;AACH"}
1
+ {"version":3,"file":"vue-i18n.mjs","names":["watch","useProxiedModel","useProvided","props","prop","provided","internal","value","v","createProvideFunction","data","current","fallback","messages","i18n","useI18n","locale","fallbackLocale","useScope","legacy","inheritLocale","name","t","key","params","n","provide","createVueI18nAdapter","global"],"sources":["../../../src/locale/adapters/vue-i18n.ts"],"sourcesContent":["import { watch } from 'vue'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\nimport type { Ref } from 'vue'\nimport type { LocaleInstance, LocaleMessages, LocaleOptions } from '@/composables/locale'\nimport type { I18n, useI18n } from 'vue-i18n'\n\ntype VueI18nAdapterParams = {\n i18n: I18n<any, {}, {}, string, false>\n useI18n: typeof useI18n\n}\n\nfunction useProvided <T> (props: any, prop: string, provided: Ref<T>) {\n const internal = useProxiedModel(props, prop)\n\n internal.value = props[prop] ?? provided.value\n\n watch(provided, v => {\n if (props[prop] == null) {\n internal.value = v\n }\n })\n\n return internal as Ref<T>\n}\n\nfunction createProvideFunction (data: {\n current: Ref<string>\n fallback: Ref<string>\n messages: Ref<LocaleMessages>\n useI18n: typeof useI18n\n}) {\n return (props: LocaleOptions): LocaleInstance => {\n const current = useProvided(props, 'locale', data.current)\n const fallback = useProvided(props, 'fallback', data.fallback)\n const messages = useProvided(props, 'messages', data.messages)\n\n const i18n = data.useI18n({\n locale: current.value,\n fallbackLocale: fallback.value,\n messages: messages.value as any,\n useScope: 'local',\n legacy: false,\n inheritLocale: false,\n })\n\n watch(current, v => {\n i18n.locale.value = v\n })\n\n return {\n name: 'vue-i18n',\n current,\n fallback,\n messages,\n t: (key: string, ...params: unknown[]) => i18n.t(key, params),\n n: i18n.n,\n provide: createProvideFunction({ current, fallback, messages, useI18n: data.useI18n }),\n }\n }\n}\n\nexport function createVueI18nAdapter ({ i18n, useI18n }: VueI18nAdapterParams): LocaleInstance {\n const current = i18n.global.locale\n const fallback = i18n.global.fallbackLocale as Ref<any>\n const messages = i18n.global.messages\n\n return {\n name: 'vue-i18n',\n current,\n fallback,\n messages,\n // @ts-expect-error Type instantiation is excessively deep and possibly infinite\n t: (key: string, ...params: unknown[]) => i18n.global.t(key, params),\n n: i18n.global.n,\n provide: createProvideFunction({ current, fallback, messages, useI18n }),\n }\n}\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,KAAK;AAAA,SAClBC,eAAe;AAWxB,SAASC,WAAW,CAAMC,KAAU,EAAEC,IAAY,EAAEC,QAAgB,EAAE;EACpE,MAAMC,QAAQ,GAAGL,eAAe,CAACE,KAAK,EAAEC,IAAI,CAAC;EAE7CE,QAAQ,CAACC,KAAK,GAAGJ,KAAK,CAACC,IAAI,CAAC,IAAIC,QAAQ,CAACE,KAAK;EAE9CP,KAAK,CAACK,QAAQ,EAAEG,CAAC,IAAI;IACnB,IAAIL,KAAK,CAACC,IAAI,CAAC,IAAI,IAAI,EAAE;MACvBE,QAAQ,CAACC,KAAK,GAAGC,CAAC;IACpB;EACF,CAAC,CAAC;EAEF,OAAOF,QAAQ;AACjB;AAEA,SAASG,qBAAqB,CAAEC,IAK/B,EAAE;EACD,OAAQP,KAAoB,IAAqB;IAC/C,MAAMQ,OAAO,GAAGT,WAAW,CAACC,KAAK,EAAE,QAAQ,EAAEO,IAAI,CAACC,OAAO,CAAC;IAC1D,MAAMC,QAAQ,GAAGV,WAAW,CAACC,KAAK,EAAE,UAAU,EAAEO,IAAI,CAACE,QAAQ,CAAC;IAC9D,MAAMC,QAAQ,GAAGX,WAAW,CAACC,KAAK,EAAE,UAAU,EAAEO,IAAI,CAACG,QAAQ,CAAC;IAE9D,MAAMC,IAAI,GAAGJ,IAAI,CAACK,OAAO,CAAC;MACxBC,MAAM,EAAEL,OAAO,CAACJ,KAAK;MACrBU,cAAc,EAAEL,QAAQ,CAACL,KAAK;MAC9BM,QAAQ,EAAEA,QAAQ,CAACN,KAAY;MAC/BW,QAAQ,EAAE,OAAO;MACjBC,MAAM,EAAE,KAAK;MACbC,aAAa,EAAE;IACjB,CAAC,CAAC;IAEFpB,KAAK,CAACW,OAAO,EAAEH,CAAC,IAAI;MAClBM,IAAI,CAACE,MAAM,CAACT,KAAK,GAAGC,CAAC;IACvB,CAAC,CAAC;IAEF,OAAO;MACLa,IAAI,EAAE,UAAU;MAChBV,OAAO;MACPC,QAAQ;MACRC,QAAQ;MACRS,CAAC,EAAE,UAACC,GAAW;QAAA,kCAAKC,MAAM;UAANA,MAAM;QAAA;QAAA,OAAgBV,IAAI,CAACQ,CAAC,CAACC,GAAG,EAAEC,MAAM,CAAC;MAAA;MAC7DC,CAAC,EAAEX,IAAI,CAACW,CAAC;MACTC,OAAO,EAAEjB,qBAAqB,CAAC;QAAEE,OAAO;QAAEC,QAAQ;QAAEC,QAAQ;QAAEE,OAAO,EAAEL,IAAI,CAACK;MAAQ,CAAC;IACvF,CAAC;EACH,CAAC;AACH;AAEA,OAAO,SAASY,oBAAoB,OAA2D;EAAA,IAAzD;IAAEb,IAAI;IAAEC;EAA8B,CAAC;EAC3E,MAAMJ,OAAO,GAAGG,IAAI,CAACc,MAAM,CAACZ,MAAM;EAClC,MAAMJ,QAAQ,GAAGE,IAAI,CAACc,MAAM,CAACX,cAA0B;EACvD,MAAMJ,QAAQ,GAAGC,IAAI,CAACc,MAAM,CAACf,QAAQ;EAErC,OAAO;IACLQ,IAAI,EAAE,UAAU;IAChBV,OAAO;IACPC,QAAQ;IACRC,QAAQ;IACR;IACAS,CAAC,EAAE,UAACC,GAAW;MAAA,mCAAKC,MAAM;QAANA,MAAM;MAAA;MAAA,OAAgBV,IAAI,CAACc,MAAM,CAACN,CAAC,CAACC,GAAG,EAAEC,MAAM,CAAC;IAAA;IACpEC,CAAC,EAAEX,IAAI,CAACc,MAAM,CAACH,CAAC;IAChBC,OAAO,EAAEjB,qBAAqB,CAAC;MAAEE,OAAO;MAAEC,QAAQ;MAAEC,QAAQ;MAAEE;IAAQ,CAAC;EACzE,CAAC;AACH"}
@@ -6639,6 +6639,10 @@ html.overflow-y-hidden {
6639
6639
  height: 100% !important;
6640
6640
  }
6641
6641
 
6642
+ .h-screen {
6643
+ height: 100dvh !important;
6644
+ }
6645
+
6642
6646
  .w-auto {
6643
6647
  width: auto !important;
6644
6648
  }
@@ -522,6 +522,13 @@ $utilities: () !default;
522
522
  100: 100%
523
523
  )
524
524
  ),
525
+ "height-screen": (
526
+ property: height,
527
+ class: h,
528
+ values: (
529
+ screen: 100dvh
530
+ )
531
+ ),
525
532
  "width": (
526
533
  property: width,
527
534
  class: w,
@@ -40,7 +40,14 @@ export function animate(el, keyframes, options) {
40
40
  if (typeof el.animate === 'undefined') return {
41
41
  finished: Promise.resolve()
42
42
  };
43
- const animation = el.animate(keyframes, options);
43
+ let animation;
44
+ try {
45
+ animation = el.animate(keyframes, options);
46
+ } catch (err) {
47
+ return {
48
+ finished: Promise.resolve()
49
+ };
50
+ }
44
51
  if (typeof animation.finished === 'undefined') {
45
52
  animation.finished = new Promise(resolve => {
46
53
  animation.onfinish = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"animation.mjs","names":["Box","nullifyTransforms","el","rect","getBoundingClientRect","style","getComputedStyle","tx","transform","ta","sx","sy","dx","dy","startsWith","slice","split","to","transformOrigin","x","parseFloat","y","indexOf","w","width","offsetWidth","h","height","offsetHeight","animate","keyframes","options","finished","Promise","resolve","animation","onfinish"],"sources":["../../src/util/animation.ts"],"sourcesContent":["import { Box } from '@/util/box'\n\n/** @see https://stackoverflow.com/a/57876601/2074736 */\nexport function nullifyTransforms (el: HTMLElement): Box {\n const rect = el.getBoundingClientRect()\n const style = getComputedStyle(el)\n const tx = style.transform\n\n if (tx) {\n let ta, sx, sy, dx, dy\n if (tx.startsWith('matrix3d(')) {\n ta = tx.slice(9, -1).split(/, /)\n sx = +ta[0]\n sy = +ta[5]\n dx = +ta[12]\n dy = +ta[13]\n } else if (tx.startsWith('matrix(')) {\n ta = tx.slice(7, -1).split(/, /)\n sx = +ta[0]\n sy = +ta[3]\n dx = +ta[4]\n dy = +ta[5]\n } else {\n return new Box(rect)\n }\n\n const to = style.transformOrigin\n const x = rect.x - dx - (1 - sx) * parseFloat(to)\n const y = rect.y - dy - (1 - sy) * parseFloat(to.slice(to.indexOf(' ') + 1))\n const w = sx ? rect.width / sx : el.offsetWidth + 1\n const h = sy ? rect.height / sy : el.offsetHeight + 1\n\n return new Box({ x, y, width: w, height: h })\n } else {\n return new Box(rect)\n }\n}\n\nexport function animate (\n el: Element,\n keyframes: Keyframe[] | PropertyIndexedKeyframes | null,\n options?: number | KeyframeAnimationOptions\n) {\n if (typeof el.animate === 'undefined') return { finished: Promise.resolve() }\n\n const animation = el.animate(keyframes, options)\n if (typeof animation.finished === 'undefined') {\n (animation as any).finished = new Promise(resolve => {\n animation.onfinish = () => {\n resolve(animation)\n }\n })\n }\n\n return animation\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"animation.mjs","names":["Box","nullifyTransforms","el","rect","getBoundingClientRect","style","getComputedStyle","tx","transform","ta","sx","sy","dx","dy","startsWith","slice","split","to","transformOrigin","x","parseFloat","y","indexOf","w","width","offsetWidth","h","height","offsetHeight","animate","keyframes","options","finished","Promise","resolve","animation","err","onfinish"],"sources":["../../src/util/animation.ts"],"sourcesContent":["import { Box } from '@/util/box'\n\n/** @see https://stackoverflow.com/a/57876601/2074736 */\nexport function nullifyTransforms (el: HTMLElement): Box {\n const rect = el.getBoundingClientRect()\n const style = getComputedStyle(el)\n const tx = style.transform\n\n if (tx) {\n let ta, sx, sy, dx, dy\n if (tx.startsWith('matrix3d(')) {\n ta = tx.slice(9, -1).split(/, /)\n sx = +ta[0]\n sy = +ta[5]\n dx = +ta[12]\n dy = +ta[13]\n } else if (tx.startsWith('matrix(')) {\n ta = tx.slice(7, -1).split(/, /)\n sx = +ta[0]\n sy = +ta[3]\n dx = +ta[4]\n dy = +ta[5]\n } else {\n return new Box(rect)\n }\n\n const to = style.transformOrigin\n const x = rect.x - dx - (1 - sx) * parseFloat(to)\n const y = rect.y - dy - (1 - sy) * parseFloat(to.slice(to.indexOf(' ') + 1))\n const w = sx ? rect.width / sx : el.offsetWidth + 1\n const h = sy ? rect.height / sy : el.offsetHeight + 1\n\n return new Box({ x, y, width: w, height: h })\n } else {\n return new Box(rect)\n }\n}\n\nexport function animate (\n el: Element,\n keyframes: Keyframe[] | PropertyIndexedKeyframes | null,\n options?: number | KeyframeAnimationOptions\n) {\n if (typeof el.animate === 'undefined') return { finished: Promise.resolve() }\n\n let animation: Animation\n try {\n animation = el.animate(keyframes, options)\n } catch (err) {\n return { finished: Promise.resolve() }\n }\n\n if (typeof animation.finished === 'undefined') {\n (animation as any).finished = new Promise(resolve => {\n animation.onfinish = () => {\n resolve(animation)\n }\n })\n }\n\n return animation\n}\n"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { defineComponent as _defineComponent,
3
3
  // eslint-disable-line no-restricted-imports
4
4
  computed, getCurrentInstance, shallowRef, watchEffect } from 'vue';
5
5
  import { consoleWarn } from "./console.mjs";
6
- import { mergeDeep, toKebabCase } from "./helpers.mjs";
6
+ import { mergeDeep, pick, toKebabCase } from "./helpers.mjs";
7
7
  import { injectSelf } from "./injectSelf.mjs";
8
8
  import { propsFactory } from "./propsFactory.mjs";
9
9
  import { DefaultsSymbol, provideDefaults, useDefaults } from "../composables/defaults.mjs";
@@ -11,15 +11,22 @@ import { useToggleScope } from "../composables/toggleScope.mjs"; // Types
11
11
  function propIsDefined(vnode, prop) {
12
12
  return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';
13
13
  }
14
- export const defineComponent = function defineComponent(options) {
14
+
15
+ // No props
16
+
17
+ // Implementation
18
+ export function defineComponent(options) {
15
19
  options._setup = options._setup ?? options.setup;
16
20
  if (!options.name) {
17
21
  consoleWarn('The component is missing an explicit name, unable to generate default prop value');
18
22
  return options;
19
23
  }
20
24
  if (options._setup) {
21
- options.props = options.props ?? {};
22
- options.props = propsFactory(options.props, toKebabCase(options.name))();
25
+ options.props = propsFactory(options.props ?? {}, toKebabCase(options.name))();
26
+ const propKeys = Object.keys(options.props);
27
+ options.filterProps = function filterProps(props) {
28
+ return pick(props, propKeys);
29
+ };
23
30
  options.props._as = String;
24
31
  options.setup = function setup(props, ctx) {
25
32
  const defaults = useDefaults();
@@ -30,10 +37,11 @@ export const defineComponent = function defineComponent(options) {
30
37
  const componentDefaults = computed(() => defaults.value[props._as ?? options.name]);
31
38
  const _props = new Proxy(props, {
32
39
  get(target, prop) {
40
+ const propValue = Reflect.get(target, prop);
33
41
  if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
34
- return componentDefaults.value?.[prop] ?? defaults.value.global?.[prop] ?? target[prop];
42
+ return componentDefaults.value?.[prop] ?? defaults.value.global?.[prop] ?? propValue;
35
43
  }
36
- return Reflect.get(target, prop);
44
+ return propValue;
37
45
  }
38
46
  });
39
47
  const _subcomponentDefaults = shallowRef();
@@ -58,7 +66,7 @@ export const defineComponent = function defineComponent(options) {
58
66
  };
59
67
  }
60
68
  return options;
61
- };
69
+ }
62
70
  // Implementation
63
71
  export function genericComponent() {
64
72
  let exposeDefaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
@@ -1 +1 @@
1
- {"version":3,"file":"defineComponent.mjs","names":["defineComponent","_defineComponent","computed","getCurrentInstance","shallowRef","watchEffect","consoleWarn","mergeDeep","toKebabCase","injectSelf","propsFactory","DefaultsSymbol","provideDefaults","useDefaults","useToggleScope","propIsDefined","vnode","prop","props","options","_setup","setup","name","_as","String","ctx","defaults","value","vm","componentDefaults","_props","Proxy","get","target","global","Reflect","_subcomponentDefaults","subComponents","Object","entries","filter","key","startsWith","toUpperCase","length","fromEntries","setupBindings","genericComponent","exposeDefaults","defineFunctionalComponent","render"],"sources":["../../src/util/defineComponent.tsx"],"sourcesContent":["// Utils\nimport {\n defineComponent as _defineComponent, // eslint-disable-line no-restricted-imports\n computed,\n getCurrentInstance,\n shallowRef,\n watchEffect,\n} from 'vue'\nimport { consoleWarn } from '@/util/console'\nimport { mergeDeep, toKebabCase } from '@/util/helpers'\nimport { injectSelf } from '@/util/injectSelf'\nimport { propsFactory } from '@/util/propsFactory'\nimport { DefaultsSymbol, provideDefaults, useDefaults } from '@/composables/defaults'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Types\nimport type {\n AllowedComponentProps,\n ComponentCustomProps,\n ComponentObjectPropsOptions,\n ComponentOptions,\n ComponentOptionsMixin,\n ComponentOptionsWithObjectProps,\n ComponentPropsOptions,\n ComputedOptions,\n DefineComponent,\n EmitsOptions,\n ExtractDefaultPropTypes,\n ExtractPropTypes,\n FunctionalComponent,\n MethodOptions,\n ObjectEmitsOptions,\n VNode,\n VNodeChild,\n VNodeProps,\n} from 'vue'\n\nfunction propIsDefined (vnode: VNode, prop: string) {\n return typeof vnode.props?.[prop] !== 'undefined' ||\n typeof vnode.props?.[toKebabCase(prop)] !== 'undefined'\n}\n\nexport const defineComponent = (function defineComponent (options: ComponentOptions) {\n options._setup = options._setup ?? options.setup\n\n if (!options.name) {\n consoleWarn('The component is missing an explicit name, unable to generate default prop value')\n\n return options\n }\n\n if (options._setup) {\n options.props = options.props ?? {}\n\n options.props = propsFactory(options.props, toKebabCase(options.name))()\n\n options.props._as = String\n options.setup = function setup (props: Record<string, any>, ctx) {\n const defaults = useDefaults()\n\n // Skip props proxy if defaults are not provided\n if (!defaults.value) return options._setup(props, ctx)\n\n const vm = getCurrentInstance()!\n const componentDefaults = computed(() => defaults.value![props._as ?? options.name!])\n const _props = new Proxy(props, {\n get (target, prop) {\n if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {\n return componentDefaults.value?.[prop] ?? defaults.value!.global?.[prop] ?? target[prop]\n }\n return Reflect.get(target, prop)\n },\n })\n\n const _subcomponentDefaults = shallowRef()\n watchEffect(() => {\n if (componentDefaults.value) {\n const subComponents = Object.entries(componentDefaults.value).filter(([key]) => key.startsWith(key[0].toUpperCase()))\n if (subComponents.length) _subcomponentDefaults.value = Object.fromEntries(subComponents)\n }\n })\n\n const setupBindings = options._setup(_props, ctx)\n\n // If subcomponent defaults are provided, override any\n // subcomponents provided by the component's setup function.\n // This uses injectSelf so must be done after the original setup to work.\n useToggleScope(_subcomponentDefaults, () => {\n provideDefaults(mergeDeep(\n injectSelf(DefaultsSymbol)?.value ?? {},\n _subcomponentDefaults.value\n ))\n })\n\n return setupBindings\n }\n }\n\n return options\n}) as unknown as typeof _defineComponent\n\ntype ToListeners<T extends string | number | symbol> = { [K in T]: K extends `on${infer U}` ? Uncapitalize<U> : K }[T]\n\nexport type SlotsToProps<T extends Record<string, any>> = T extends Record<string, Slot> ? ({\n $children?: (\n | VNodeChild\n | (keyof T extends 'default' ? T['default'] : {})\n | { [K in keyof T]?: T[K] }\n )\n $slots?: { [K in keyof T]?: T[K] }\n 'v-slots'?: { [K in keyof T]?: T[K] | false }\n} & {\n [K in keyof T as `v-slot:${K & string}`]?: T[K] | false\n}) : T extends Record<string, any[]> ? SlotsToProps<MakeSlots<T>> : never\n\ntype Slot<T extends any[] = any[]> = (...args: T) => VNodeChild\nexport type MakeSlots<T extends Record<string, any[]>> = {\n [K in keyof T]: Slot<T[K]>\n}\n\nexport type GenericSlot = SlotsToProps<{ default: [] }>\n\ntype DefineComponentWithGenericProps<T extends (new () => {\n $props?: Record<string, any>\n})> = <\n PropsOptions extends Readonly<ComponentPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record<string, any>,\n EE extends string = string,\n I = InstanceType<T>,\n Base = DefineComponent<\n I extends Record<'$props', any>\n ? Omit<PropsOptions, keyof I['$props']>\n : PropsOptions,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E extends any[] ? E : I extends Record<'$props', any> ? Omit<E, ToListeners<keyof I['$props']>> : E,\n EE\n >\n>(\n options: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE>\n) => Base & T\n\ntype DefineComponentWithSlots<Slots extends Record<string, any[]> | Record<string, Slot>> = <\n PropsOptions extends Readonly<ComponentPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record<string, any>,\n EE extends string = string,\n>(\n options: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE>\n) => DefineComponent<\n ExtractPropTypes<PropsOptions> & SlotsToProps<Slots>,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n PublicProps,\n ExtractPropTypes<PropsOptions> & SlotsToProps<Slots> & ({} extends E ? {} : EmitsToProps<E>),\n ExtractDefaultPropTypes<PropsOptions>\n>\n\n// No argument - simple default slot\nexport function genericComponent (exposeDefaults?: boolean): DefineComponentWithSlots<{ default: [] }>\n\n// Generic constructor argument - generic props and slots\nexport function genericComponent<T extends (new () => {\n $props?: Record<string, any>\n})> (exposeDefaults?: boolean): DefineComponentWithGenericProps<T>\n\n// Slots argument - simple slots\nexport function genericComponent<\n Slots extends Record<string, any[]> | Record<string, Slot>\n> (exposeDefaults?: boolean): DefineComponentWithSlots<Slots>\n\n// Implementation\nexport function genericComponent (exposeDefaults = true) {\n return (options: any) => (exposeDefaults ? defineComponent : _defineComponent)(options) as any\n}\n\nexport function defineFunctionalComponent<\n T extends FunctionalComponent<Props>,\n PropsOptions = ComponentObjectPropsOptions,\n Defaults = ExtractDefaultPropTypes<PropsOptions>,\n Props = Readonly<ExtractPropTypes<PropsOptions>>,\n> (props: PropsOptions, render: T): FunctionalComponent<Partial<Defaults> & Omit<Props, keyof Defaults>> {\n render.props = props as any\n return render as any\n}\n\ntype EmitsToProps<T extends EmitsOptions> = T extends string[]\n ? {\n [K in string & `on${Capitalize<T[number]>}`]?: (...args: any[]) => any\n }\n : T extends ObjectEmitsOptions\n ? {\n [K in string &\n `on${Capitalize<string & keyof T>}`]?: K extends `on${infer C}`\n ? T[Uncapitalize<C>] extends null\n ? (...args: any[]) => any\n : (\n ...args: T[Uncapitalize<C>] extends (...args: infer P) => any\n ? P\n : never\n ) => any\n : never\n }\n : {}\n\ntype PublicProps =\n & VNodeProps\n & AllowedComponentProps\n & ComponentCustomProps\n"],"mappings":"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"}
1
+ {"version":3,"file":"defineComponent.mjs","names":["defineComponent","_defineComponent","computed","getCurrentInstance","shallowRef","watchEffect","consoleWarn","mergeDeep","pick","toKebabCase","injectSelf","propsFactory","DefaultsSymbol","provideDefaults","useDefaults","useToggleScope","propIsDefined","vnode","prop","props","options","_setup","setup","name","propKeys","Object","keys","filterProps","_as","String","ctx","defaults","value","vm","componentDefaults","_props","Proxy","get","target","propValue","Reflect","global","_subcomponentDefaults","subComponents","entries","filter","key","startsWith","toUpperCase","length","fromEntries","setupBindings","genericComponent","exposeDefaults","defineFunctionalComponent","render"],"sources":["../../src/util/defineComponent.tsx"],"sourcesContent":["// Utils\nimport {\n defineComponent as _defineComponent, // eslint-disable-line no-restricted-imports\n computed,\n getCurrentInstance,\n shallowRef,\n watchEffect,\n} from 'vue'\nimport { consoleWarn } from '@/util/console'\nimport { mergeDeep, pick, toKebabCase } from '@/util/helpers'\nimport { injectSelf } from '@/util/injectSelf'\nimport { propsFactory } from '@/util/propsFactory'\nimport { DefaultsSymbol, provideDefaults, useDefaults } from '@/composables/defaults'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Types\nimport type {\n AllowedComponentProps,\n ComponentCustomProps,\n ComponentObjectPropsOptions,\n ComponentOptions,\n ComponentOptionsMixin,\n ComponentOptionsWithObjectProps,\n ComponentOptionsWithoutProps,\n ComponentPropsOptions,\n ComputedOptions,\n DefineComponent,\n EmitsOptions,\n ExtractDefaultPropTypes,\n ExtractPropTypes,\n FunctionalComponent,\n MethodOptions,\n ObjectEmitsOptions,\n VNode,\n VNodeChild,\n VNodeProps,\n} from 'vue'\n\nfunction propIsDefined (vnode: VNode, prop: string) {\n return typeof vnode.props?.[prop] !== 'undefined' ||\n typeof vnode.props?.[toKebabCase(prop)] !== 'undefined'\n}\n\n// No props\nexport function defineComponent<\n Props = {},\n RawBindings = {},\n D = {},\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = {},\n EE extends string = string,\n I extends {} = {},\n II extends string = string\n>(\n options: ComponentOptionsWithoutProps<\n Props,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n I,\n II\n >\n): DefineComponent<Props, RawBindings, D, C, M, Mixin, Extends, E, EE>\n\n// Object Props\nexport function defineComponent<\n PropsOptions extends Readonly<ComponentPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = {},\n EE extends string = string,\n I extends {} = {},\n II extends string = string\n>(\n options: ComponentOptionsWithObjectProps<\n PropsOptions,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n I,\n II\n >\n): DefineComponent<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE> & FilterPropsOptions<PropsOptions>\n\n// Implementation\nexport function defineComponent (options: ComponentOptions) {\n options._setup = options._setup ?? options.setup\n\n if (!options.name) {\n consoleWarn('The component is missing an explicit name, unable to generate default prop value')\n\n return options\n }\n\n if (options._setup) {\n options.props = propsFactory(options.props ?? {}, toKebabCase(options.name))()\n const propKeys = Object.keys(options.props)\n options.filterProps = function filterProps (props: Record<string, any>) {\n return pick(props, propKeys)\n }\n\n options.props._as = String\n options.setup = function setup (props: Record<string, any>, ctx) {\n const defaults = useDefaults()\n\n // Skip props proxy if defaults are not provided\n if (!defaults.value) return options._setup(props, ctx)\n\n const vm = getCurrentInstance()!\n const componentDefaults = computed(() => defaults.value![props._as ?? options.name!])\n const _props = new Proxy(props, {\n get (target, prop) {\n const propValue = Reflect.get(target, prop)\n if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {\n return componentDefaults.value?.[prop] ?? defaults.value!.global?.[prop] ?? propValue\n }\n return propValue\n },\n })\n\n const _subcomponentDefaults = shallowRef()\n watchEffect(() => {\n if (componentDefaults.value) {\n const subComponents = Object.entries(componentDefaults.value).filter(([key]) => key.startsWith(key[0].toUpperCase()))\n if (subComponents.length) _subcomponentDefaults.value = Object.fromEntries(subComponents)\n }\n })\n\n const setupBindings = options._setup(_props, ctx)\n\n // If subcomponent defaults are provided, override any\n // subcomponents provided by the component's setup function.\n // This uses injectSelf so must be done after the original setup to work.\n useToggleScope(_subcomponentDefaults, () => {\n provideDefaults(mergeDeep(\n injectSelf(DefaultsSymbol)?.value ?? {},\n _subcomponentDefaults.value\n ))\n })\n\n return setupBindings\n }\n }\n\n return options\n}\n\ntype ToListeners<T extends string | number | symbol> = { [K in T]: K extends `on${infer U}` ? Uncapitalize<U> : K }[T]\n\nexport type SlotsToProps<T extends Record<string, any>> = T extends Record<string, Slot> ? ({\n $children?: (\n | VNodeChild\n | (keyof T extends 'default' ? T['default'] : {})\n | { [K in keyof T]?: T[K] }\n )\n $slots?: { [K in keyof T]?: T[K] }\n 'v-slots'?: { [K in keyof T]?: T[K] | false }\n} & {\n [K in keyof T as `v-slot:${K & string}`]?: T[K] | false\n}) : T extends Record<string, any[]> ? SlotsToProps<MakeSlots<T>> : never\n\ntype Slot<T extends any[] = any[]> = (...args: T) => VNodeChild\nexport type MakeSlots<T extends Record<string, any[]>> = {\n [K in keyof T]: Slot<T[K]>\n}\n\nexport type GenericSlot = SlotsToProps<{ default: [] }>\n\ntype DefineComponentWithGenericProps<T extends (new () => {\n $props?: Record<string, any>\n})> = <\n PropsOptions extends Readonly<ComponentPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record<string, any>,\n EE extends string = string,\n I = InstanceType<T>,\n Base = DefineComponent<\n I extends Record<'$props', any>\n ? Omit<PropsOptions, keyof I['$props']>\n : PropsOptions,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E extends any[] ? E : I extends Record<'$props', any> ? Omit<E, ToListeners<keyof I['$props']>> : E,\n EE\n >\n>(\n options: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE>\n) => Base & T & FilterPropsOptions<PropsOptions>\n\ntype DefineComponentWithSlots<Slots extends Record<string, any[]> | Record<string, Slot>> = <\n PropsOptions extends Readonly<ComponentPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record<string, any>,\n EE extends string = string,\n>(\n options: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE>\n) => DefineComponent<\n ExtractPropTypes<PropsOptions> & SlotsToProps<Slots>,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n PublicProps,\n ExtractPropTypes<PropsOptions> & SlotsToProps<Slots> & ({} extends E ? {} : EmitsToProps<E>),\n ExtractDefaultPropTypes<PropsOptions>\n> & FilterPropsOptions<PropsOptions>\n\n// No argument - simple default slot\nexport function genericComponent (exposeDefaults?: boolean): DefineComponentWithSlots<{ default: [] }>\n\n// Generic constructor argument - generic props and slots\nexport function genericComponent<T extends (new () => {\n $props?: Record<string, any>\n})> (exposeDefaults?: boolean): DefineComponentWithGenericProps<T>\n\n// Slots argument - simple slots\nexport function genericComponent<\n Slots extends Record<string, any[]> | Record<string, Slot>\n> (exposeDefaults?: boolean): DefineComponentWithSlots<Slots>\n\n// Implementation\nexport function genericComponent (exposeDefaults = true) {\n return (options: any) => ((exposeDefaults ? defineComponent : _defineComponent) as any)(options)\n}\n\nexport function defineFunctionalComponent<\n T extends FunctionalComponent<Props>,\n PropsOptions = ComponentObjectPropsOptions,\n Defaults = ExtractDefaultPropTypes<PropsOptions>,\n Props = Readonly<ExtractPropTypes<PropsOptions>>,\n> (props: PropsOptions, render: T): FunctionalComponent<Partial<Defaults> & Omit<Props, keyof Defaults>> {\n render.props = props as any\n return render as any\n}\n\ntype EmitsToProps<T extends EmitsOptions> = T extends string[]\n ? {\n [K in string & `on${Capitalize<T[number]>}`]?: (...args: any[]) => any\n }\n : T extends ObjectEmitsOptions\n ? {\n [K in string &\n `on${Capitalize<string & keyof T>}`]?: K extends `on${infer C}`\n ? T[Uncapitalize<C>] extends null\n ? (...args: any[]) => any\n : (\n ...args: T[Uncapitalize<C>] extends (...args: infer P) => any\n ? P\n : never\n ) => any\n : never\n }\n : {}\n\ntype PublicProps =\n & VNodeProps\n & AllowedComponentProps\n & ComponentCustomProps\n\n// Adds a filterProps method to the component options\nexport interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {\n filterProps<\n T extends Partial<Props>,\n U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>\n > (props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>]\n}\n"],"mappings":"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"}
@@ -236,6 +236,10 @@ export function clamp(value) {
236
236
  let max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
237
237
  return Math.max(min, Math.min(max, value));
238
238
  }
239
+ export function getDecimals(value) {
240
+ const trimmedStr = value.toString().trim();
241
+ return trimmedStr.includes('.') ? trimmedStr.length - trimmedStr.indexOf('.') - 1 : 0;
242
+ }
239
243
  export function padEnd(str, length) {
240
244
  let char = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';
241
245
  return str + char.repeat(Math.max(0, length - str.length));
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.mjs","names":["camelize","capitalize","computed","Fragment","reactive","toRefs","watchEffect","getNestedValue","obj","path","fallback","last","length","undefined","i","deepEqual","a","b","Date","getTime","Object","props","keys","every","p","getObjectValueByPath","replace","split","getPropertyFromItem","item","property","value","Array","isArray","createRange","start","from","v","k","getZIndex","el","nodeType","Node","ELEMENT_NODE","index","window","getComputedStyle","getPropertyValue","parentNode","convertToUnit","str","unit","isNaN","String","isFinite","Number","isObject","isComponentInstance","$el","keyCodes","freeze","enter","tab","delete","esc","space","up","down","left","right","end","home","del","backspace","insert","pageup","pagedown","shift","keyValues","o","pick","paths","found","create","rest","key","some","RegExp","test","omit","exclude","clone","forEach","prop","filterInputAttrs","attrs","arrayDiff","diff","includes","push","groupItems","items","groupBy","groupDesc","groups","current","val","name","wrapInArray","defaultFilter","search","toString","toLocaleLowerCase","indexOf","searchItems","toLowerCase","trim","filter","debounce","fn","delay","timeoutId","args","clearTimeout","setTimeout","throttle","limit","throttling","getPrefixedSlots","prefix","slots","startsWith","reduce","clamp","min","max","Math","padEnd","char","repeat","chunk","size","chunked","substr","humanReadableFileSize","bytes","base","abs","toFixed","camelizeObjectKeys","mergeDeep","source","target","arrayFn","out","sourceProperty","targetProperty","fillArray","fill","flattenFragments","nodes","map","node","type","children","flat","randomHexColor","n","random","slice","toKebabCase","cache","has","get","kebab","set","Map","findChildren","vnode","child","component","subTree","findChildrenWithProvide","getOwnPropertySymbols","provides","CircularBuffer","constructor","values","concat","getEventCoordinates","e","clientX","touches","clientY","destructComputed","getter","refs","flush","arr","onRE","isOn","EventProp","Function","hasEvent","callEvent","handler","h"],"sources":["../../src/util/helpers.ts"],"sourcesContent":["// Utilities\nimport { camelize, capitalize, computed, Fragment, reactive, toRefs, watchEffect } from 'vue'\n\n// Types\nimport type {\n ComponentInternalInstance,\n ComponentPublicInstance,\n ComputedGetter,\n InjectionKey,\n PropType,\n Ref,\n Slots,\n ToRefs,\n VNode,\n VNodeChild,\n} from 'vue'\n\nexport function getNestedValue (obj: any, path: (string | number)[], fallback?: any): any {\n const last = path.length - 1\n\n if (last < 0) return obj === undefined ? fallback : obj\n\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback\n }\n obj = obj[path[i]]\n }\n\n if (obj == null) return fallback\n\n return obj[path[last]] === undefined ? fallback : obj[path[last]]\n}\n\nexport function deepEqual (a: any, b: any): boolean {\n if (a === b) return true\n\n if (\n a instanceof Date &&\n b instanceof Date &&\n a.getTime() !== b.getTime()\n ) {\n // If the values are Date, compare them as timestamps\n return false\n }\n\n if (a !== Object(a) || b !== Object(b)) {\n // If the values aren't objects, they were already checked for equality\n return false\n }\n\n const props = Object.keys(a)\n\n if (props.length !== Object.keys(b).length) {\n // Different number of props, don't bother to check\n return false\n }\n\n return props.every(p => deepEqual(a[p], b[p]))\n}\n\nexport function getObjectValueByPath (obj: any, path: string, fallback?: any): any {\n // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n if (obj == null || !path || typeof path !== 'string') return fallback\n if (obj[path] !== undefined) return obj[path]\n path = path.replace(/\\[(\\w+)\\]/g, '.$1') // convert indexes to properties\n path = path.replace(/^\\./, '') // strip a leading dot\n return getNestedValue(obj, path.split('.'), fallback)\n}\n\nexport type SelectItemKey =\n | boolean // Ignored\n | string // Lookup by key, can use dot notation for nested objects\n | (string | number)[] // Nested lookup by key, each array item is a key in the next level\n | ((item: Record<string, any>, fallback?: any) => any)\n\nexport function getPropertyFromItem (\n item: any,\n property: SelectItemKey,\n fallback?: any\n): any {\n if (property == null) return item === undefined ? fallback : item\n\n if (item !== Object(item)) {\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n }\n\n if (typeof property === 'string') return getObjectValueByPath(item, property, fallback)\n\n if (Array.isArray(property)) return getNestedValue(item, property, fallback)\n\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n}\n\nexport function createRange (length: number, start = 0): number[] {\n return Array.from({ length }, (v, k) => start + k)\n}\n\nexport function getZIndex (el?: Element | null): number {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0\n\n const index = +window.getComputedStyle(el).getPropertyValue('z-index')\n\n if (!index) return getZIndex(el.parentNode as Element)\n return index\n}\n\nexport function convertToUnit (str: number, unit?: string): string\nexport function convertToUnit (str: string | number | null | undefined, unit?: string): string | undefined\nexport function convertToUnit (str: string | number | null | undefined, unit = 'px'): string | undefined {\n if (str == null || str === '') {\n return undefined\n } else if (isNaN(+str!)) {\n return String(str)\n } else if (!isFinite(+str!)) {\n return undefined\n } else {\n return `${Number(str)}${unit}`\n }\n}\n\nexport function isObject (obj: any): obj is object {\n return obj !== null && typeof obj === 'object' && !Array.isArray(obj)\n}\n\nexport function isComponentInstance (obj: any): obj is ComponentPublicInstance {\n return obj?.$el\n}\n\n// KeyboardEvent.keyCode aliases\nexport const keyCodes = Object.freeze({\n enter: 13,\n tab: 9,\n delete: 46,\n esc: 27,\n space: 32,\n up: 38,\n down: 40,\n left: 37,\n right: 39,\n end: 35,\n home: 36,\n del: 46,\n backspace: 8,\n insert: 45,\n pageup: 33,\n pagedown: 34,\n shift: 16,\n})\n\nexport const keyValues: Record<string, string> = Object.freeze({\n enter: 'Enter',\n tab: 'Tab',\n delete: 'Delete',\n esc: 'Escape',\n space: 'Space',\n up: 'ArrowUp',\n down: 'ArrowDown',\n left: 'ArrowLeft',\n right: 'ArrowRight',\n end: 'End',\n home: 'Home',\n del: 'Delete',\n backspace: 'Backspace',\n insert: 'Insert',\n pageup: 'PageUp',\n pagedown: 'PageDown',\n shift: 'Shift',\n})\n\nexport function keys<O extends {}> (o: O) {\n return Object.keys(o) as (keyof O)[]\n}\n\ntype MaybePick<\n T extends object,\n U extends Extract<keyof T, string>\n> = Record<string, unknown> extends T ? Partial<Pick<T, U>> : Pick<T, U>\n\nexport function pick<\n T extends object,\n U extends Extract<keyof T, string>\n> (obj: T, paths: U[]): [yes: MaybePick<T, U>, no: Omit<T, U>]\nexport function pick<\n T extends object,\n U extends Extract<keyof T, string>\n> (obj: T, paths: (U | RegExp)[]): [yes: Partial<T>, no: Partial<T>]\nexport function pick<\n T extends object,\n U extends Extract<keyof T, string>\n> (obj: T, paths: (U | RegExp)[]): [yes: Partial<T>, no: Partial<T>] {\n const found = Object.create(null)\n const rest = Object.create(null)\n\n for (const key in obj) {\n if (\n paths.some(path => path instanceof RegExp\n ? path.test(key)\n : path === key\n )\n ) {\n found[key] = obj[key]\n } else {\n rest[key] = obj[key]\n }\n }\n\n return [found, rest]\n}\n\nexport function omit<\n T extends object,\n U extends Extract<keyof T, string>\n> (obj: T, exclude: U[]): Omit<T, U> {\n const clone = { ...obj }\n\n exclude.forEach(prop => delete clone[prop])\n\n return clone\n}\n\n/**\n * Filter attributes that should be applied to\n * the root element of a an input component. Remaining\n * attributes should be passed to the <input> element inside.\n */\nexport function filterInputAttrs (attrs: Record<string, unknown>) {\n return pick(attrs, ['class', 'style', 'id', /^data-/])\n}\n\n/**\n * Returns the set difference of B and A, i.e. the set of elements in B but not in A\n */\nexport function arrayDiff (a: any[], b: any[]): any[] {\n const diff: any[] = []\n for (let i = 0; i < b.length; i++) {\n if (!a.includes(b[i])) diff.push(b[i])\n }\n return diff\n}\n\ninterface ItemGroup<T> {\n name: string\n items: T[]\n}\n\nexport function groupItems<T extends any = any> (\n items: T[],\n groupBy: string[],\n groupDesc: boolean[]\n): ItemGroup<T>[] {\n const key = groupBy[0]\n const groups: ItemGroup<T>[] = []\n let current\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const val = getObjectValueByPath(item, key, null)\n if (current !== val) {\n current = val\n groups.push({\n name: val ?? '',\n items: [],\n })\n }\n groups[groups.length - 1].items.push(item)\n }\n return groups\n}\n\nexport function wrapInArray<T> (v: T | T[] | null | undefined): T[] {\n return v == null\n ? []\n : Array.isArray(v)\n ? v : [v]\n}\n\nexport function defaultFilter (value: any, search: string | null, item: any) {\n return value != null &&\n search != null &&\n typeof value !== 'boolean' &&\n value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1\n}\n\nexport function searchItems<T extends any = any> (items: T[], search: string): T[] {\n if (!search) return items\n search = search.toString().toLowerCase()\n if (search.trim() === '') return items\n\n return items.filter((item: any) => Object.keys(item).some(key => defaultFilter(getObjectValueByPath(item, key), search, item)))\n}\n\nexport function debounce (fn: Function, delay: number) {\n let timeoutId = 0 as any\n return (...args: any[]) => {\n clearTimeout(timeoutId)\n timeoutId = setTimeout(() => fn(...args), delay)\n }\n}\n\nexport function throttle<T extends (...args: any[]) => any> (fn: T, limit: number) {\n let throttling = false\n return (...args: Parameters<T>): void | ReturnType<T> => {\n if (!throttling) {\n throttling = true\n setTimeout(() => throttling = false, limit)\n return fn(...args)\n }\n }\n}\n\ntype Writable<T> = {\n -readonly [P in keyof T]: T[P]\n}\n\n/**\n * Filters slots to only those starting with `prefix`, removing the prefix\n */\nexport function getPrefixedSlots (prefix: string, slots: Slots): Slots {\n return Object.keys(slots)\n .filter(k => k.startsWith(prefix))\n .reduce<Writable<Slots>>((obj, k) => {\n obj[k.replace(prefix, '')] = slots[k]\n return obj\n }, {})\n}\n\nexport function clamp (value: number, min = 0, max = 1) {\n return Math.max(min, Math.min(max, value))\n}\n\nexport function padEnd (str: string, length: number, char = '0') {\n return str + char.repeat(Math.max(0, length - str.length))\n}\n\nexport function chunk (str: string, size = 1) {\n const chunked: string[] = []\n let index = 0\n while (index < str.length) {\n chunked.push(str.substr(index, size))\n index += size\n }\n return chunked\n}\n\nexport function humanReadableFileSize (bytes: number, base: 1000 | 1024 = 1000): string {\n if (bytes < base) {\n return `${bytes} B`\n }\n\n const prefix = base === 1024 ? ['Ki', 'Mi', 'Gi'] : ['k', 'M', 'G']\n let unit = -1\n while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n bytes /= base\n ++unit\n }\n return `${bytes.toFixed(1)} ${prefix[unit]}B`\n}\n\nexport function camelizeObjectKeys (obj: Record<string, any> | null | undefined) {\n if (!obj) return {}\n\n return Object.keys(obj).reduce((o: any, key: string) => {\n o[camelize(key)] = obj[key]\n return o\n }, {})\n}\n\nexport function mergeDeep (\n source: Record<string, any> = {},\n target: Record<string, any> = {},\n arrayFn?: (a: unknown[], b: unknown[]) => unknown[],\n) {\n const out: Record<string, any> = {}\n\n for (const key in source) {\n out[key] = source[key]\n }\n\n for (const key in target) {\n const sourceProperty = source[key]\n const targetProperty = target[key]\n\n // Only continue deep merging if\n // both properties are objects\n if (\n isObject(sourceProperty) &&\n isObject(targetProperty)\n ) {\n out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn)\n\n continue\n }\n\n if (Array.isArray(sourceProperty) && Array.isArray(targetProperty) && arrayFn) {\n out[key] = arrayFn(sourceProperty, targetProperty)\n\n continue\n }\n\n out[key] = targetProperty\n }\n\n return out\n}\n\nexport function fillArray<T> (length: number, obj: T) {\n return Array(length).fill(obj)\n}\n\nexport function flattenFragments (nodes: VNode[]): VNode[] {\n return nodes.map(node => {\n if (node.type === Fragment) {\n return flattenFragments(node.children as VNode[])\n } else {\n return node\n }\n }).flat()\n}\n\nexport const randomHexColor = () => {\n const n = (Math.random() * 0xfffff * 1000000).toString(16)\n return '#' + n.slice(0, 6)\n}\n\nexport function toKebabCase (str = '') {\n if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str)!\n const kebab = str\n .replace(/[^a-z]/gi, '-')\n .replace(/\\B([A-Z])/g, '-$1')\n .toLowerCase()\n toKebabCase.cache.set(str, kebab)\n return kebab\n}\ntoKebabCase.cache = new Map<string, string>()\n\nexport type MaybeRef<T> = T | Ref<T>\n\nexport function findChildren (vnode?: VNodeChild): ComponentInternalInstance[] {\n if (!vnode || typeof vnode !== 'object') {\n return []\n }\n\n if (Array.isArray(vnode)) {\n return vnode\n .map(child => findChildren(child))\n .filter(v => v)\n .flat(1)\n } else if (Array.isArray(vnode.children)) {\n return vnode.children\n .map(child => findChildren(child))\n .filter(v => v)\n .flat(1)\n } else if (vnode.component) {\n return [vnode.component, ...findChildren(vnode.component?.subTree)]\n .filter(v => v)\n .flat(1)\n }\n\n return []\n}\n\nexport function findChildrenWithProvide (\n key: InjectionKey<any> | symbol,\n vnode?: VNodeChild,\n): ComponentInternalInstance[] {\n if (!vnode || typeof vnode !== 'object') return []\n\n if (Array.isArray(vnode)) {\n return vnode.map(child => findChildrenWithProvide(key, child)).flat(1)\n } else if (Array.isArray(vnode.children)) {\n return vnode.children.map(child => findChildrenWithProvide(key, child)).flat(1)\n } else if (vnode.component) {\n if (Object.getOwnPropertySymbols(vnode.component.provides).includes(key as symbol)) {\n return [vnode.component]\n } else if (vnode.component.subTree) {\n return findChildrenWithProvide(key, vnode.component.subTree).flat(1)\n }\n }\n\n return []\n}\n\nexport class CircularBuffer<T = never> {\n readonly #arr: Array<T> = []\n #pointer = 0\n\n constructor (public readonly size: number) {}\n\n push (val: T) {\n this.#arr[this.#pointer] = val\n this.#pointer = (this.#pointer + 1) % this.size\n }\n\n values (): T[] {\n return this.#arr.slice(this.#pointer).concat(this.#arr.slice(0, this.#pointer))\n }\n}\n\nexport type UnionToIntersection<U> =\n (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never\n\nexport function getEventCoordinates (e: MouseEvent | TouchEvent) {\n if ('touches' in e) {\n return { clientX: e.touches[0].clientX, clientY: e.touches[0].clientY }\n }\n\n return { clientX: e.clientX, clientY: e.clientY }\n}\n\n// Only allow a single return type\ntype NotAUnion<T> = [T] extends [infer U] ? _NotAUnion<U, U> : never\ntype _NotAUnion<T, U> = U extends any ? [T] extends [U] ? unknown : never : never\n\n/**\n * Convert a computed ref to a record of refs.\n * The getter function must always return an object with the same keys.\n */\nexport function destructComputed<T extends object> (getter: ComputedGetter<T & NotAUnion<T>>): ToRefs<T>\nexport function destructComputed<T extends object> (getter: ComputedGetter<T>) {\n const refs = reactive({}) as T\n const base = computed(getter)\n watchEffect(() => {\n for (const key in base.value) {\n refs[key] = base.value[key]\n }\n }, { flush: 'sync' })\n return toRefs(refs)\n}\n\n/** Array.includes but value can be any type */\nexport function includes (arr: readonly any[], val: any) {\n return arr.includes(val)\n}\n\nconst onRE = /^on[^a-z]/\nexport const isOn = (key: string) => onRE.test(key)\n\nexport type EventProp<T = (...args: any[]) => any> = T | T[]\nexport const EventProp = [Function, Array] as PropType<EventProp>\n\nexport function hasEvent (props: Record<string, any>, name: string) {\n name = 'on' + capitalize(name)\n return !!(props[name] || props[`${name}Once`] || props[`${name}Capture`] || props[`${name}OnceCapture`] || props[`${name}CaptureOnce`])\n}\n\nexport function callEvent (handler: EventProp | undefined, ...args: any[]) {\n if (Array.isArray(handler)) {\n for (const h of handler) {\n h(...args)\n }\n } else if (typeof handler === 'function') {\n handler(...args)\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.mjs","names":["camelize","capitalize","computed","Fragment","reactive","toRefs","watchEffect","getNestedValue","obj","path","fallback","last","length","undefined","i","deepEqual","a","b","Date","getTime","Object","props","keys","every","p","getObjectValueByPath","replace","split","getPropertyFromItem","item","property","value","Array","isArray","createRange","start","from","v","k","getZIndex","el","nodeType","Node","ELEMENT_NODE","index","window","getComputedStyle","getPropertyValue","parentNode","convertToUnit","str","unit","isNaN","String","isFinite","Number","isObject","isComponentInstance","$el","keyCodes","freeze","enter","tab","delete","esc","space","up","down","left","right","end","home","del","backspace","insert","pageup","pagedown","shift","keyValues","o","pick","paths","found","create","rest","key","some","RegExp","test","omit","exclude","clone","forEach","prop","filterInputAttrs","attrs","arrayDiff","diff","includes","push","groupItems","items","groupBy","groupDesc","groups","current","val","name","wrapInArray","defaultFilter","search","toString","toLocaleLowerCase","indexOf","searchItems","toLowerCase","trim","filter","debounce","fn","delay","timeoutId","args","clearTimeout","setTimeout","throttle","limit","throttling","getPrefixedSlots","prefix","slots","startsWith","reduce","clamp","min","max","Math","getDecimals","trimmedStr","padEnd","char","repeat","chunk","size","chunked","substr","humanReadableFileSize","bytes","base","abs","toFixed","camelizeObjectKeys","mergeDeep","source","target","arrayFn","out","sourceProperty","targetProperty","fillArray","fill","flattenFragments","nodes","map","node","type","children","flat","randomHexColor","n","random","slice","toKebabCase","cache","has","get","kebab","set","Map","findChildren","vnode","child","component","subTree","findChildrenWithProvide","getOwnPropertySymbols","provides","CircularBuffer","constructor","values","concat","getEventCoordinates","e","clientX","touches","clientY","destructComputed","getter","refs","flush","arr","onRE","isOn","EventProp","Function","hasEvent","callEvent","handler","h"],"sources":["../../src/util/helpers.ts"],"sourcesContent":["// Utilities\nimport { camelize, capitalize, computed, Fragment, reactive, toRefs, watchEffect } from 'vue'\n\n// Types\nimport type {\n ComponentInternalInstance,\n ComponentPublicInstance,\n ComputedGetter,\n InjectionKey,\n PropType,\n Ref,\n Slots,\n ToRefs,\n VNode,\n VNodeChild,\n} from 'vue'\n\nexport function getNestedValue (obj: any, path: (string | number)[], fallback?: any): any {\n const last = path.length - 1\n\n if (last < 0) return obj === undefined ? fallback : obj\n\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback\n }\n obj = obj[path[i]]\n }\n\n if (obj == null) return fallback\n\n return obj[path[last]] === undefined ? fallback : obj[path[last]]\n}\n\nexport function deepEqual (a: any, b: any): boolean {\n if (a === b) return true\n\n if (\n a instanceof Date &&\n b instanceof Date &&\n a.getTime() !== b.getTime()\n ) {\n // If the values are Date, compare them as timestamps\n return false\n }\n\n if (a !== Object(a) || b !== Object(b)) {\n // If the values aren't objects, they were already checked for equality\n return false\n }\n\n const props = Object.keys(a)\n\n if (props.length !== Object.keys(b).length) {\n // Different number of props, don't bother to check\n return false\n }\n\n return props.every(p => deepEqual(a[p], b[p]))\n}\n\nexport function getObjectValueByPath (obj: any, path: string, fallback?: any): any {\n // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n if (obj == null || !path || typeof path !== 'string') return fallback\n if (obj[path] !== undefined) return obj[path]\n path = path.replace(/\\[(\\w+)\\]/g, '.$1') // convert indexes to properties\n path = path.replace(/^\\./, '') // strip a leading dot\n return getNestedValue(obj, path.split('.'), fallback)\n}\n\nexport type SelectItemKey =\n | boolean // Ignored\n | string // Lookup by key, can use dot notation for nested objects\n | (string | number)[] // Nested lookup by key, each array item is a key in the next level\n | ((item: Record<string, any>, fallback?: any) => any)\n\nexport function getPropertyFromItem (\n item: any,\n property: SelectItemKey,\n fallback?: any\n): any {\n if (property == null) return item === undefined ? fallback : item\n\n if (item !== Object(item)) {\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n }\n\n if (typeof property === 'string') return getObjectValueByPath(item, property, fallback)\n\n if (Array.isArray(property)) return getNestedValue(item, property, fallback)\n\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n}\n\nexport function createRange (length: number, start = 0): number[] {\n return Array.from({ length }, (v, k) => start + k)\n}\n\nexport function getZIndex (el?: Element | null): number {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0\n\n const index = +window.getComputedStyle(el).getPropertyValue('z-index')\n\n if (!index) return getZIndex(el.parentNode as Element)\n return index\n}\n\nexport function convertToUnit (str: number, unit?: string): string\nexport function convertToUnit (str: string | number | null | undefined, unit?: string): string | undefined\nexport function convertToUnit (str: string | number | null | undefined, unit = 'px'): string | undefined {\n if (str == null || str === '') {\n return undefined\n } else if (isNaN(+str!)) {\n return String(str)\n } else if (!isFinite(+str!)) {\n return undefined\n } else {\n return `${Number(str)}${unit}`\n }\n}\n\nexport function isObject (obj: any): obj is object {\n return obj !== null && typeof obj === 'object' && !Array.isArray(obj)\n}\n\nexport function isComponentInstance (obj: any): obj is ComponentPublicInstance {\n return obj?.$el\n}\n\n// KeyboardEvent.keyCode aliases\nexport const keyCodes = Object.freeze({\n enter: 13,\n tab: 9,\n delete: 46,\n esc: 27,\n space: 32,\n up: 38,\n down: 40,\n left: 37,\n right: 39,\n end: 35,\n home: 36,\n del: 46,\n backspace: 8,\n insert: 45,\n pageup: 33,\n pagedown: 34,\n shift: 16,\n})\n\nexport const keyValues: Record<string, string> = Object.freeze({\n enter: 'Enter',\n tab: 'Tab',\n delete: 'Delete',\n esc: 'Escape',\n space: 'Space',\n up: 'ArrowUp',\n down: 'ArrowDown',\n left: 'ArrowLeft',\n right: 'ArrowRight',\n end: 'End',\n home: 'Home',\n del: 'Delete',\n backspace: 'Backspace',\n insert: 'Insert',\n pageup: 'PageUp',\n pagedown: 'PageDown',\n shift: 'Shift',\n})\n\nexport function keys<O extends {}> (o: O) {\n return Object.keys(o) as (keyof O)[]\n}\n\ntype MaybePick<\n T extends object,\n U extends Extract<keyof T, string>\n> = Record<string, unknown> extends T ? Partial<Pick<T, U>> : Pick<T, U>\n\n// Array of keys\nexport function pick<\n T extends object,\n U extends Extract<keyof T, string>\n> (obj: T, paths: U[]): [yes: MaybePick<T, U>, no: Omit<T, U>]\n// Array of keys or RegExp to test keys against\nexport function pick<\n T extends object,\n U extends Extract<keyof T, string>\n> (obj: T, paths: (U | RegExp)[]): [yes: Partial<T>, no: Partial<T>]\nexport function pick<\n T extends object,\n U extends Extract<keyof T, string>\n> (obj: T, paths: (U | RegExp)[]): [yes: Partial<T>, no: Partial<T>] {\n const found = Object.create(null)\n const rest = Object.create(null)\n\n for (const key in obj) {\n if (\n paths.some(path => path instanceof RegExp\n ? path.test(key)\n : path === key\n )\n ) {\n found[key] = obj[key]\n } else {\n rest[key] = obj[key]\n }\n }\n\n return [found, rest]\n}\n\nexport function omit<\n T extends object,\n U extends Extract<keyof T, string>\n> (obj: T, exclude: U[]): Omit<T, U> {\n const clone = { ...obj }\n\n exclude.forEach(prop => delete clone[prop])\n\n return clone\n}\n\n/**\n * Filter attributes that should be applied to\n * the root element of a an input component. Remaining\n * attributes should be passed to the <input> element inside.\n */\nexport function filterInputAttrs (attrs: Record<string, unknown>) {\n return pick(attrs, ['class', 'style', 'id', /^data-/])\n}\n\n/**\n * Returns the set difference of B and A, i.e. the set of elements in B but not in A\n */\nexport function arrayDiff (a: any[], b: any[]): any[] {\n const diff: any[] = []\n for (let i = 0; i < b.length; i++) {\n if (!a.includes(b[i])) diff.push(b[i])\n }\n return diff\n}\n\ninterface ItemGroup<T> {\n name: string\n items: T[]\n}\n\nexport function groupItems<T extends any = any> (\n items: T[],\n groupBy: string[],\n groupDesc: boolean[]\n): ItemGroup<T>[] {\n const key = groupBy[0]\n const groups: ItemGroup<T>[] = []\n let current\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const val = getObjectValueByPath(item, key, null)\n if (current !== val) {\n current = val\n groups.push({\n name: val ?? '',\n items: [],\n })\n }\n groups[groups.length - 1].items.push(item)\n }\n return groups\n}\n\nexport function wrapInArray<T> (v: T | T[] | null | undefined): T[] {\n return v == null\n ? []\n : Array.isArray(v)\n ? v : [v]\n}\n\nexport function defaultFilter (value: any, search: string | null, item: any) {\n return value != null &&\n search != null &&\n typeof value !== 'boolean' &&\n value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1\n}\n\nexport function searchItems<T extends any = any> (items: T[], search: string): T[] {\n if (!search) return items\n search = search.toString().toLowerCase()\n if (search.trim() === '') return items\n\n return items.filter((item: any) => Object.keys(item).some(key => defaultFilter(getObjectValueByPath(item, key), search, item)))\n}\n\nexport function debounce (fn: Function, delay: number) {\n let timeoutId = 0 as any\n return (...args: any[]) => {\n clearTimeout(timeoutId)\n timeoutId = setTimeout(() => fn(...args), delay)\n }\n}\n\nexport function throttle<T extends (...args: any[]) => any> (fn: T, limit: number) {\n let throttling = false\n return (...args: Parameters<T>): void | ReturnType<T> => {\n if (!throttling) {\n throttling = true\n setTimeout(() => throttling = false, limit)\n return fn(...args)\n }\n }\n}\n\ntype Writable<T> = {\n -readonly [P in keyof T]: T[P]\n}\n\n/**\n * Filters slots to only those starting with `prefix`, removing the prefix\n */\nexport function getPrefixedSlots (prefix: string, slots: Slots): Slots {\n return Object.keys(slots)\n .filter(k => k.startsWith(prefix))\n .reduce<Writable<Slots>>((obj, k) => {\n obj[k.replace(prefix, '')] = slots[k]\n return obj\n }, {})\n}\n\nexport function clamp (value: number, min = 0, max = 1) {\n return Math.max(min, Math.min(max, value))\n}\n\nexport function getDecimals (value: number) {\n const trimmedStr = value.toString().trim()\n return trimmedStr.includes('.')\n ? (trimmedStr.length - trimmedStr.indexOf('.') - 1)\n : 0\n}\n\nexport function padEnd (str: string, length: number, char = '0') {\n return str + char.repeat(Math.max(0, length - str.length))\n}\n\nexport function chunk (str: string, size = 1) {\n const chunked: string[] = []\n let index = 0\n while (index < str.length) {\n chunked.push(str.substr(index, size))\n index += size\n }\n return chunked\n}\n\nexport function humanReadableFileSize (bytes: number, base: 1000 | 1024 = 1000): string {\n if (bytes < base) {\n return `${bytes} B`\n }\n\n const prefix = base === 1024 ? ['Ki', 'Mi', 'Gi'] : ['k', 'M', 'G']\n let unit = -1\n while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n bytes /= base\n ++unit\n }\n return `${bytes.toFixed(1)} ${prefix[unit]}B`\n}\n\nexport function camelizeObjectKeys (obj: Record<string, any> | null | undefined) {\n if (!obj) return {}\n\n return Object.keys(obj).reduce((o: any, key: string) => {\n o[camelize(key)] = obj[key]\n return o\n }, {})\n}\n\nexport function mergeDeep (\n source: Record<string, any> = {},\n target: Record<string, any> = {},\n arrayFn?: (a: unknown[], b: unknown[]) => unknown[],\n) {\n const out: Record<string, any> = {}\n\n for (const key in source) {\n out[key] = source[key]\n }\n\n for (const key in target) {\n const sourceProperty = source[key]\n const targetProperty = target[key]\n\n // Only continue deep merging if\n // both properties are objects\n if (\n isObject(sourceProperty) &&\n isObject(targetProperty)\n ) {\n out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn)\n\n continue\n }\n\n if (Array.isArray(sourceProperty) && Array.isArray(targetProperty) && arrayFn) {\n out[key] = arrayFn(sourceProperty, targetProperty)\n\n continue\n }\n\n out[key] = targetProperty\n }\n\n return out\n}\n\nexport function fillArray<T> (length: number, obj: T) {\n return Array(length).fill(obj)\n}\n\nexport function flattenFragments (nodes: VNode[]): VNode[] {\n return nodes.map(node => {\n if (node.type === Fragment) {\n return flattenFragments(node.children as VNode[])\n } else {\n return node\n }\n }).flat()\n}\n\nexport const randomHexColor = () => {\n const n = (Math.random() * 0xfffff * 1000000).toString(16)\n return '#' + n.slice(0, 6)\n}\n\nexport function toKebabCase (str = '') {\n if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str)!\n const kebab = str\n .replace(/[^a-z]/gi, '-')\n .replace(/\\B([A-Z])/g, '-$1')\n .toLowerCase()\n toKebabCase.cache.set(str, kebab)\n return kebab\n}\ntoKebabCase.cache = new Map<string, string>()\n\nexport type MaybeRef<T> = T | Ref<T>\n\nexport function findChildren (vnode?: VNodeChild): ComponentInternalInstance[] {\n if (!vnode || typeof vnode !== 'object') {\n return []\n }\n\n if (Array.isArray(vnode)) {\n return vnode\n .map(child => findChildren(child))\n .filter(v => v)\n .flat(1)\n } else if (Array.isArray(vnode.children)) {\n return vnode.children\n .map(child => findChildren(child))\n .filter(v => v)\n .flat(1)\n } else if (vnode.component) {\n return [vnode.component, ...findChildren(vnode.component?.subTree)]\n .filter(v => v)\n .flat(1)\n }\n\n return []\n}\n\nexport function findChildrenWithProvide (\n key: InjectionKey<any> | symbol,\n vnode?: VNodeChild,\n): ComponentInternalInstance[] {\n if (!vnode || typeof vnode !== 'object') return []\n\n if (Array.isArray(vnode)) {\n return vnode.map(child => findChildrenWithProvide(key, child)).flat(1)\n } else if (Array.isArray(vnode.children)) {\n return vnode.children.map(child => findChildrenWithProvide(key, child)).flat(1)\n } else if (vnode.component) {\n if (Object.getOwnPropertySymbols(vnode.component.provides).includes(key as symbol)) {\n return [vnode.component]\n } else if (vnode.component.subTree) {\n return findChildrenWithProvide(key, vnode.component.subTree).flat(1)\n }\n }\n\n return []\n}\n\nexport class CircularBuffer<T = never> {\n readonly #arr: Array<T> = []\n #pointer = 0\n\n constructor (public readonly size: number) {}\n\n push (val: T) {\n this.#arr[this.#pointer] = val\n this.#pointer = (this.#pointer + 1) % this.size\n }\n\n values (): T[] {\n return this.#arr.slice(this.#pointer).concat(this.#arr.slice(0, this.#pointer))\n }\n}\n\nexport type UnionToIntersection<U> =\n (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never\n\nexport function getEventCoordinates (e: MouseEvent | TouchEvent) {\n if ('touches' in e) {\n return { clientX: e.touches[0].clientX, clientY: e.touches[0].clientY }\n }\n\n return { clientX: e.clientX, clientY: e.clientY }\n}\n\n// Only allow a single return type\ntype NotAUnion<T> = [T] extends [infer U] ? _NotAUnion<U, U> : never\ntype _NotAUnion<T, U> = U extends any ? [T] extends [U] ? unknown : never : never\n\n/**\n * Convert a computed ref to a record of refs.\n * The getter function must always return an object with the same keys.\n */\nexport function destructComputed<T extends object> (getter: ComputedGetter<T & NotAUnion<T>>): ToRefs<T>\nexport function destructComputed<T extends object> (getter: ComputedGetter<T>) {\n const refs = reactive({}) as T\n const base = computed(getter)\n watchEffect(() => {\n for (const key in base.value) {\n refs[key] = base.value[key]\n }\n }, { flush: 'sync' })\n return toRefs(refs)\n}\n\n/** Array.includes but value can be any type */\nexport function includes (arr: readonly any[], val: any) {\n return arr.includes(val)\n}\n\nconst onRE = /^on[^a-z]/\nexport const isOn = (key: string) => onRE.test(key)\n\nexport type EventProp<T = (...args: any[]) => any> = T | T[]\nexport const EventProp = [Function, Array] as PropType<EventProp>\n\nexport function hasEvent (props: Record<string, any>, name: string) {\n name = 'on' + capitalize(name)\n return !!(props[name] || props[`${name}Once`] || props[`${name}Capture`] || props[`${name}OnceCapture`] || props[`${name}CaptureOnce`])\n}\n\nexport function callEvent (handler: EventProp | undefined, ...args: any[]) {\n if (Array.isArray(handler)) {\n for (const h of handler) {\n h(...args)\n }\n } else if (typeof handler === 'function') {\n handler(...args)\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vuetify/nightly",
3
3
  "description": "Vue Material Component Framework",
4
- "version": "3.2.0-dev-20230309.0",
4
+ "version": "3.2.0-dev-20230322.0",
5
5
  "author": {
6
6
  "name": "John Leider",
7
7
  "email": "john@vuetifyjs.com"
@@ -61,12 +61,6 @@
61
61
  "default": "./lib/styles/main.css"
62
62
  },
63
63
  "./styles/*": "./lib/styles/*",
64
- "./settings": {
65
- "sass": "./_settings.scss"
66
- },
67
- "./tools": {
68
- "sass": "./_tools.scss"
69
- },
70
64
  "./framework": "./lib/framework.mjs",
71
65
  "./blueprints": "./lib/blueprints/index.mjs",
72
66
  "./blueprints/*": "./lib/blueprints/*.mjs",
@@ -106,6 +100,7 @@
106
100
  "dev": "cross-env NODE_ENV=development vite",
107
101
  "dev:ssr": "cross-env NODE_ENV=development VITE_SSR=true vite-ssr",
108
102
  "dev:prod": "concurrently \"cross-env NODE_ENV=production vite build -w\" \"vite preview\"",
103
+ "dev:typecheck": "vue-tsc --noEmit --skipLibCheck --project ./tsconfig.dev.json",
109
104
  "build": "rimraf lib dist && concurrently \"yarn build:dist\" \"yarn build:lib\" -n \"dist,lib\" --kill-others-on-fail -r && yarn build:types",
110
105
  "build:dist": "rollup --config build/rollup.config.js",
111
106
  "build:lib": "cross-env NODE_ENV=lib babel src --out-dir lib --source-maps --extensions \".ts\",\".tsx\",\".snap\" --copy-files --no-copy-ignored --out-file-extension .mjs",
@@ -126,7 +121,7 @@
126
121
  "@fortawesome/fontawesome-svg-core": "^1.2.36",
127
122
  "@fortawesome/free-solid-svg-icons": "^5.15.4",
128
123
  "@fortawesome/vue-fontawesome": "^3.0.3",
129
- "@percy/cli": "^1.18.0",
124
+ "@percy/cli": "^1.20.3",
130
125
  "@percy/cypress": "^3.1.2",
131
126
  "@rollup/plugin-alias": "^3.1.9",
132
127
  "@rollup/plugin-babel": "^5.3.1",
@@ -148,9 +143,9 @@
148
143
  "concurrently": "^4.1.1",
149
144
  "cssnano": "^5.1.14",
150
145
  "cy-mobile-commands": "^0.3.0",
151
- "cypress": "^12.6.0",
146
+ "cypress": "^12.7.0",
152
147
  "cypress-file-upload": "^5.0.8",
153
- "cypress-real-events": "^1.7.0",
148
+ "cypress-real-events": "^1.7.6",
154
149
  "dotenv": "^8.6.0",
155
150
  "eslint-plugin-cypress": "^2.12.1",
156
151
  "eslint-plugin-jest": "^25.7.0",