@dimailn/vuetify 2.7.2-alpha32 → 2.7.2-alpha33

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 (297) hide show
  1. package/dist/vuetify.js +531 -366
  2. package/dist/vuetify.js.map +1 -1
  3. package/dist/vuetify.min.css +1 -1
  4. package/dist/vuetify.min.js +2 -2
  5. package/es5/components/VCalendar/VCalendarWeekly.js +10 -5
  6. package/es5/components/VCalendar/VCalendarWeekly.js.map +1 -1
  7. package/es5/components/VCheckbox/VCheckbox.js +7 -9
  8. package/es5/components/VCheckbox/VCheckbox.js.map +1 -1
  9. package/es5/components/VContent/VContent.js +24 -5
  10. package/es5/components/VContent/VContent.js.map +1 -1
  11. package/es5/components/VCounter/VCounter.js.map +1 -1
  12. package/es5/components/VDatePicker/VDatePicker.js +15 -7
  13. package/es5/components/VDatePicker/VDatePicker.js.map +1 -1
  14. package/es5/components/VDatePicker/VDatePickerTitle.js +30 -19
  15. package/es5/components/VDatePicker/VDatePickerTitle.js.map +1 -1
  16. package/es5/components/VDatePicker/mixins/date-picker-table.js +1 -1
  17. package/es5/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  18. package/es5/components/VDatePicker/util/eventHelpers.js +27 -17
  19. package/es5/components/VDatePicker/util/eventHelpers.js.map +1 -1
  20. package/es5/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
  21. package/es5/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
  22. package/es5/components/VGrid/VCol.js +3 -1
  23. package/es5/components/VGrid/VCol.js.map +1 -1
  24. package/es5/components/VGrid/VContainer.js +23 -10
  25. package/es5/components/VGrid/VContainer.js.map +1 -1
  26. package/es5/components/VGrid/grid.js +33 -15
  27. package/es5/components/VGrid/grid.js.map +1 -1
  28. package/es5/components/VHover/VHover.js +23 -17
  29. package/es5/components/VHover/VHover.js.map +1 -1
  30. package/es5/components/VIcon/VIcon.js +77 -53
  31. package/es5/components/VIcon/VIcon.js.map +1 -1
  32. package/es5/components/VLabel/VLabel.js +3 -1
  33. package/es5/components/VLabel/VLabel.js.map +1 -1
  34. package/es5/components/VOtpInput/VOtpInput.js +54 -33
  35. package/es5/components/VOtpInput/VOtpInput.js.map +1 -1
  36. package/es5/components/VOverflowBtn/VOverflowBtn.js +14 -13
  37. package/es5/components/VOverflowBtn/VOverflowBtn.js.map +1 -1
  38. package/es5/components/VProgressLinear/VProgressLinear.js +12 -33
  39. package/es5/components/VProgressLinear/VProgressLinear.js.map +1 -1
  40. package/es5/components/VSelect/VSelect.js +4 -1
  41. package/es5/components/VSelect/VSelect.js.map +1 -1
  42. package/es5/components/VStepper/VStepper.js +1 -1
  43. package/es5/components/VStepper/VStepper.js.map +1 -1
  44. package/es5/components/VStepper/VStepperContent.js +2 -5
  45. package/es5/components/VStepper/VStepperContent.js.map +1 -1
  46. package/es5/components/VSwitch/VSwitch.js +1 -1
  47. package/es5/components/VSwitch/VSwitch.js.map +1 -1
  48. package/es5/components/VTextField/VTextField.js +2 -1
  49. package/es5/components/VTextField/VTextField.js.map +1 -1
  50. package/es5/components/VTooltip/VTooltip.js +0 -7
  51. package/es5/components/VTooltip/VTooltip.js.map +1 -1
  52. package/es5/directives/color/index.js +6 -3
  53. package/es5/directives/color/index.js.map +1 -1
  54. package/es5/directives/ripple/index.js +5 -2
  55. package/es5/directives/ripple/index.js.map +1 -1
  56. package/es5/directives/scroll/index.js +1 -2
  57. package/es5/directives/scroll/index.js.map +1 -1
  58. package/es5/directives/touch/index.js +7 -4
  59. package/es5/directives/touch/index.js.map +1 -1
  60. package/es5/framework.js +1 -1
  61. package/es5/mixins/activatable/index.js +0 -8
  62. package/es5/mixins/activatable/index.js.map +1 -1
  63. package/es5/mixins/groupable/index.js.map +1 -1
  64. package/es5/mixins/positionable/index.js.map +1 -1
  65. package/es5/mixins/proxyable/index.js.map +1 -1
  66. package/es5/mixins/registrable/index.js.map +1 -1
  67. package/es5/mixins/selectable/index.js +4 -2
  68. package/es5/mixins/selectable/index.js.map +1 -1
  69. package/es5/mixins/toggleable/index.js.map +1 -1
  70. package/es5/services/goto/util.js +42 -3
  71. package/es5/services/goto/util.js.map +1 -1
  72. package/es5/services/theme/index.js +20 -71
  73. package/es5/services/theme/index.js.map +1 -1
  74. package/es5/util/mergeData.js +6 -5
  75. package/es5/util/mergeData.js.map +1 -1
  76. package/es5/util/mixins.js +4 -3
  77. package/es5/util/mixins.js.map +1 -1
  78. package/lib/components/VCalendar/VCalendarWeekly.js +11 -6
  79. package/lib/components/VCalendar/VCalendarWeekly.js.map +1 -1
  80. package/lib/components/VCheckbox/VCheckbox.js +5 -8
  81. package/lib/components/VCheckbox/VCheckbox.js.map +1 -1
  82. package/lib/components/VContent/VContent.js +18 -3
  83. package/lib/components/VContent/VContent.js.map +1 -1
  84. package/lib/components/VCounter/VCounter.js.map +1 -1
  85. package/lib/components/VDatePicker/VDatePicker.js +17 -7
  86. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  87. package/lib/components/VDatePicker/VDatePickerTitle.js +25 -14
  88. package/lib/components/VDatePicker/VDatePickerTitle.js.map +1 -1
  89. package/lib/components/VDatePicker/mixins/date-picker-table.js +1 -1
  90. package/lib/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  91. package/lib/components/VDatePicker/util/eventHelpers.js +26 -14
  92. package/lib/components/VDatePicker/util/eventHelpers.js.map +1 -1
  93. package/lib/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
  94. package/lib/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
  95. package/lib/components/VGrid/VCol.js +3 -1
  96. package/lib/components/VGrid/VCol.js.map +1 -1
  97. package/lib/components/VGrid/VContainer.js +11 -10
  98. package/lib/components/VGrid/VContainer.js.map +1 -1
  99. package/lib/components/VGrid/grid.js +15 -14
  100. package/lib/components/VGrid/grid.js.map +1 -1
  101. package/lib/components/VHover/VHover.js +23 -18
  102. package/lib/components/VHover/VHover.js.map +1 -1
  103. package/lib/components/VIcon/VIcon.js +79 -57
  104. package/lib/components/VIcon/VIcon.js.map +1 -1
  105. package/lib/components/VLabel/VLabel.js +3 -1
  106. package/lib/components/VLabel/VLabel.js.map +1 -1
  107. package/lib/components/VOtpInput/VOtpInput.js +58 -34
  108. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  109. package/lib/components/VOverflowBtn/VOverflowBtn.js +14 -14
  110. package/lib/components/VOverflowBtn/VOverflowBtn.js.map +1 -1
  111. package/lib/components/VProgressLinear/VProgressLinear.js +12 -16
  112. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  113. package/lib/components/VSelect/VSelect.js +4 -1
  114. package/lib/components/VSelect/VSelect.js.map +1 -1
  115. package/lib/components/VStepper/VStepper.js +1 -1
  116. package/lib/components/VStepper/VStepper.js.map +1 -1
  117. package/lib/components/VStepper/VStepperContent.js +3 -6
  118. package/lib/components/VStepper/VStepperContent.js.map +1 -1
  119. package/lib/components/VSwitch/VSwitch.js +1 -1
  120. package/lib/components/VSwitch/VSwitch.js.map +1 -1
  121. package/lib/components/VTextField/VTextField.js +2 -1
  122. package/lib/components/VTextField/VTextField.js.map +1 -1
  123. package/lib/components/VTooltip/VTooltip.js +1 -8
  124. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  125. package/lib/directives/color/index.js +6 -3
  126. package/lib/directives/color/index.js.map +1 -1
  127. package/lib/directives/ripple/index.js +5 -3
  128. package/lib/directives/ripple/index.js.map +1 -1
  129. package/lib/directives/scroll/index.js +1 -2
  130. package/lib/directives/scroll/index.js.map +1 -1
  131. package/lib/directives/touch/index.js +7 -4
  132. package/lib/directives/touch/index.js.map +1 -1
  133. package/lib/framework.js +1 -1
  134. package/lib/mixins/activatable/index.js +1 -8
  135. package/lib/mixins/activatable/index.js.map +1 -1
  136. package/lib/mixins/groupable/index.js.map +1 -1
  137. package/lib/mixins/positionable/index.js.map +1 -1
  138. package/lib/mixins/proxyable/index.js.map +1 -1
  139. package/lib/mixins/registrable/index.js.map +1 -1
  140. package/lib/mixins/selectable/index.js +9 -7
  141. package/lib/mixins/selectable/index.js.map +1 -1
  142. package/lib/mixins/toggleable/index.js.map +1 -1
  143. package/lib/services/goto/util.js +42 -3
  144. package/lib/services/goto/util.js.map +1 -1
  145. package/lib/services/theme/index.js +18 -64
  146. package/lib/services/theme/index.js.map +1 -1
  147. package/lib/util/mergeData.js +6 -5
  148. package/lib/util/mergeData.js.map +1 -1
  149. package/lib/util/mixins.js +3 -2
  150. package/lib/util/mixins.js.map +1 -1
  151. package/package.json +2 -2
  152. package/src/components/VAlert/__tests__/__snapshots__/VAlert.spec.ts.snap +4 -4
  153. package/src/components/VAppBar/__tests__/__snapshots__/VAppBarNavIcon.spec.ts.snap +2 -2
  154. package/src/components/VAutocomplete/__tests__/VAutocomplete.spec.ts +75 -20
  155. package/src/components/VAutocomplete/__tests__/VAutocomplete2.spec.ts +38 -40
  156. package/src/components/VAutocomplete/__tests__/VAutocomplete3.spec.ts +26 -26
  157. package/src/components/VBanner/__tests__/__snapshots__/VBanner.spec.ts.snap +2 -2
  158. package/src/components/VBtn/__tests__/VBtn.spec.ts +8 -4
  159. package/src/components/VCalendar/VCalendarWeekly.ts +12 -5
  160. package/src/components/VCalendar/__tests__/VCalendar.spec.ts +1 -1
  161. package/src/components/VCalendar/__tests__/VCalendarCategory.spec.ts +5 -5
  162. package/src/components/VCalendar/__tests__/__snapshots__/VCalendar.spec.ts.snap +167 -168
  163. package/src/components/VCheckbox/VCheckbox.ts +4 -9
  164. package/src/components/VCheckbox/__tests__/VCheckbox.spec.ts +7 -1
  165. package/src/components/VCheckbox/__tests__/__snapshots__/VCheckbox.spec.ts.snap +54 -50
  166. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPicker.spec.ts.snap +18 -18
  167. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPickerEdit.spec.ts.snap +10 -10
  168. package/src/components/VCombobox/__tests__/VCombobox-multiple.spec.ts +89 -69
  169. package/src/components/VCombobox/__tests__/VCombobox.spec.ts +17 -12
  170. package/src/components/VContent/VContent.ts +10 -2
  171. package/src/components/VCounter/VCounter.ts +1 -1
  172. package/src/components/VCounter/__tests__/VCounter.spec.ts +10 -25
  173. package/src/components/VDataIterator/__tests__/__snapshots__/VDataFooter.spec.ts.snap +42 -42
  174. package/src/components/VDataIterator/__tests__/__snapshots__/VDataIterator.spec.ts.snap +30 -30
  175. package/src/components/VDataTable/__tests__/VDataTable.spec.ts +1 -1
  176. package/src/components/VDataTable/__tests__/VDataTableHeader.spec.ts +6 -10
  177. package/src/components/VDataTable/__tests__/VEditDialog.spec.ts +24 -21
  178. package/src/components/VDataTable/__tests__/__snapshots__/VDataTable.spec.ts.snap +409 -409
  179. package/src/components/VDataTable/__tests__/__snapshots__/VDataTableHeader.spec.ts.snap +70 -70
  180. package/src/components/VDataTable/mixins/__tests__/__snapshots__/header.spec.ts.snap +8 -8
  181. package/src/components/VDataTable/mixins/__tests__/header.spec.ts +3 -3
  182. package/src/components/VDatePicker/VDatePicker.ts +23 -7
  183. package/src/components/VDatePicker/VDatePickerTitle.ts +28 -16
  184. package/src/components/VDatePicker/__tests__/VDatePicker.date.spec.ts +86 -124
  185. package/src/components/VDatePicker/__tests__/VDatePicker.month.spec.ts +85 -63
  186. package/src/components/VDatePicker/__tests__/VDatePickerHeader.spec.ts +12 -27
  187. package/src/components/VDatePicker/__tests__/VDatePickerTitle.spec.ts +9 -5
  188. package/src/components/VDatePicker/__tests__/VDatePickerYears.spec.ts +4 -4
  189. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePicker.date.spec.ts.snap +27 -9
  190. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePicker.month.spec.ts.snap +45 -35
  191. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePickerTitle.spec.ts.snap +15 -5
  192. package/src/components/VDatePicker/mixins/date-picker-table.ts +1 -1
  193. package/src/components/VDatePicker/util/eventHelpers.ts +33 -13
  194. package/src/components/VExpansionPanel/VExpansionPanelContent.ts +5 -8
  195. package/src/components/VExpansionPanel/VExpansionPanelHeader.ts +10 -14
  196. package/src/components/VExpansionPanel/__tests__/VExpansionPanelHeader.spec.ts +6 -4
  197. package/src/components/VExpansionPanel/__tests__/VExpansionPanels.spec.ts +9 -5
  198. package/src/components/VExpansionPanel/__tests__/__snapshots__/VExpansionPanel.spec.ts.snap +4 -4
  199. package/src/components/VFileInput/__tests__/__snapshots__/VFileInput.spec.ts.snap +38 -38
  200. package/src/components/VFooter/__tests__/VFooter.spec.ts +28 -21
  201. package/src/components/VGrid/VCol.ts +1 -1
  202. package/src/components/VGrid/VContainer.ts +12 -10
  203. package/src/components/VGrid/__tests__/VCol.spec.ts +4 -2
  204. package/src/components/VGrid/__tests__/VGrid.spec.ts +2 -3
  205. package/src/components/VGrid/grid.ts +14 -17
  206. package/src/components/VHover/VHover.ts +21 -17
  207. package/src/components/VHover/__tests__/VHover.spec.ts +44 -28
  208. package/src/components/VIcon/VIcon.ts +72 -53
  209. package/src/components/VIcon/__tests__/VIcon.spec.ts +86 -176
  210. package/src/components/VIcon/__tests__/__snapshots__/VIcon.spec.ts.snap +19 -74
  211. package/src/components/VItemGroup/__tests__/VItem.spec.ts +20 -12
  212. package/src/components/VLabel/VLabel.ts +1 -1
  213. package/src/components/VList/__tests__/VListGroup.spec.ts +1 -1
  214. package/src/components/VList/__tests__/VListItemAction.spec.ts +32 -31
  215. package/src/components/VList/__tests__/__snapshots__/VListGroup.spec.ts.snap +2 -2
  216. package/src/components/VList/__tests__/__snapshots__/VListItemAction.spec.ts.snap +20 -6
  217. package/src/components/VOtpInput/VOtpInput.ts +57 -32
  218. package/src/components/VOtpInput/__tests__/VOtpInput.spec.ts +75 -78
  219. package/src/components/VOverflowBtn/VOverflowBtn.ts +13 -10
  220. package/src/components/VOverflowBtn/__tests__/VOverflowBtn.spec.ts +6 -6
  221. package/src/components/VOverflowBtn/__tests__/__snapshots__/VOverflowBtn.spec.ts.snap +38 -46
  222. package/src/components/VPagination/__tests__/__snapshots__/VPagination.spec.ts.snap +32 -32
  223. package/src/components/VProgressLinear/VProgressLinear.ts +13 -18
  224. package/src/components/VProgressLinear/__tests__/VProgressLinear.spec.ts +20 -12
  225. package/src/components/VRadioGroup/__tests__/VRadio.spec.ts +57 -44
  226. package/src/components/VRadioGroup/__tests__/VRadioGroup.spec.ts +4 -4
  227. package/src/components/VRadioGroup/__tests__/__snapshots__/VRadio.spec.ts.snap +29 -33
  228. package/src/components/VRadioGroup/__tests__/__snapshots__/VRadioGroup.spec.ts.snap +10 -18
  229. package/src/components/VRating/__tests__/VRating.spec.ts +24 -29
  230. package/src/components/VResponsive/__tests__/VResponsive.spec.ts +10 -5
  231. package/src/components/VSelect/VSelect.ts +5 -1
  232. package/src/components/VSelect/__tests__/VSelect2.spec.ts +5 -5
  233. package/src/components/VSelect/__tests__/VSelect3.spec.ts +7 -7
  234. package/src/components/VSelect/__tests__/VSelect4.spec.ts +2 -2
  235. package/src/components/VSelect/__tests__/__snapshots__/VSelect2.spec.ts.snap +4 -4
  236. package/src/components/VSelect/__tests__/__snapshots__/VSelect3.spec.ts.snap +0 -284
  237. package/src/components/VSelect/__tests__/__snapshots__/VSelectList.spec.ts.snap +30 -27
  238. package/src/components/VSlideGroup/__tests__/VSlideGroup.spec.ts +70 -62
  239. package/src/components/VSlideGroup/__tests__/__snapshots__/VSlideGroup.spec.ts.snap +13 -34
  240. package/src/components/VSnackbar/__tests__/VSnackbar.spec.ts +46 -37
  241. package/src/components/VStepper/VStepper.ts +2 -2
  242. package/src/components/VStepper/VStepperContent.ts +7 -12
  243. package/src/components/VStepper/__tests__/VStepper.spec.ts +3 -3
  244. package/src/components/VStepper/__tests__/VStepperContent.spec.ts +25 -6
  245. package/src/components/VStepper/__tests__/__snapshots__/VStepperStep.spec.ts.snap +10 -12
  246. package/src/components/VSwitch/VSwitch.ts +1 -1
  247. package/src/components/VSwitch/__tests__/VSwitch.spec.ts +4 -7
  248. package/src/components/VSwitch/__tests__/__snapshots__/VSwitch.spec.ts.snap +11 -15
  249. package/src/components/VTextField/VTextField.ts +2 -1
  250. package/src/components/VTextField/__tests__/VTextField.spec.ts +24 -27
  251. package/src/components/VTextField/__tests__/__snapshots__/VTextField.spec.ts.snap +49 -73
  252. package/src/components/VTextarea/__tests__/__snapshots__/VTextarea.spec.ts.snap +16 -6
  253. package/src/components/VThemeProvider/__tests__/VThemeProvider.spec.ts +49 -10
  254. package/src/components/VTimePicker/__tests__/VTimePicker.spec.ts +3 -3
  255. package/src/components/VTimePicker/__tests__/VTimePickerTitle.spec.ts +3 -3
  256. package/src/components/VTimeline/__tests__/__snapshots__/VTimelineItem.spec.ts.snap +2 -2
  257. package/src/components/VTooltip/VTooltip.ts +0 -6
  258. package/src/components/VTooltip/__tests__/VTooltip.spec.ts +12 -11
  259. package/src/components/VTreeview/__tests__/__snapshots__/VTreeview.spec.ts.snap +42 -42
  260. package/src/components/VTreeview/__tests__/__snapshots__/VTreeviewNode.spec.ts.snap +2 -2
  261. package/src/directives/click-outside/__tests__/click-outside-shadow-dom.spec.ts +4 -4
  262. package/src/directives/click-outside/__tests__/click-outside.spec.ts +3 -3
  263. package/src/directives/color/__tests__/color.spec.ts +54 -34
  264. package/src/directives/color/index.ts +7 -3
  265. package/src/directives/intersect/__tests__/intersect.spec.ts +7 -7
  266. package/src/directives/mutate/__tests__/mutate.spec.ts +32 -26
  267. package/src/directives/resize/__tests__/resize.spec.ts +5 -5
  268. package/src/directives/ripple/__tests__/ripple.spec.ts +34 -36
  269. package/src/directives/ripple/index.ts +3 -6
  270. package/src/directives/scroll/__tests__/scroll.spec.ts +13 -13
  271. package/src/directives/scroll/index.ts +0 -1
  272. package/src/directives/touch/__tests__/touch.spec.ts +23 -16
  273. package/src/directives/touch/index.ts +6 -4
  274. package/src/globals.d.ts +6 -6
  275. package/src/mixins/activatable/__tests__/activatable.spec.ts +55 -55
  276. package/src/mixins/activatable/index.ts +0 -6
  277. package/src/mixins/dependent/__tests__/dependent.spec.ts +72 -33
  278. package/src/mixins/detachable/__tests__/detachable.spec.ts +45 -31
  279. package/src/mixins/groupable/index.ts +6 -6
  280. package/src/mixins/positionable/index.ts +2 -2
  281. package/src/mixins/proxyable/index.ts +2 -2
  282. package/src/mixins/registrable/index.ts +4 -4
  283. package/src/mixins/selectable/index.ts +10 -7
  284. package/src/mixins/toggleable/index.ts +2 -2
  285. package/src/services/goto/__tests__/goto.spec.ts +146 -1
  286. package/src/services/goto/util.ts +44 -5
  287. package/src/services/theme/__tests__/__snapshots__/theme.spec.ts.snap +0 -1128
  288. package/src/services/theme/__tests__/theme.spec.ts +81 -83
  289. package/src/services/theme/index.ts +22 -60
  290. package/src/util/__tests__/dom.spec.ts +8 -5
  291. package/src/util/__tests__/helpers.spec.ts +1 -1
  292. package/src/util/__tests__/mergeData.spec.ts +8 -8
  293. package/src/util/mergeData.ts +10 -5
  294. package/src/util/mixins.ts +24 -7
  295. package/types/alacarte.d.ts +14 -14
  296. package/types/index.d.ts +8 -8
  297. package/types/lib.d.ts +173 -173
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/directives/touch/index.ts"],"names":[],"mappings":"AACA,SAAS,IAAT,QAAqB,oBAArB;AAEA,OAAO,wBAAP,MAAqC,uCAArC;;AAQA,MAAM,aAAa,GAAI,OAAD,IAA0B;AAC9C,QAAM;AAAE,IAAA,WAAF;AAAe,IAAA,SAAf;AAA0B,IAAA,WAA1B;AAAuC,IAAA;AAAvC,MAAqD,OAA3D;AACA,QAAM,QAAQ,GAAG,GAAjB;AACA,QAAM,WAAW,GAAG,EAApB;AACA,EAAA,OAAO,CAAC,OAAR,GAAkB,SAAS,GAAG,WAA9B;AACA,EAAA,OAAO,CAAC,OAAR,GAAkB,SAAS,GAAG,WAA9B;;AAEA,MAAI,IAAI,CAAC,GAAL,CAAS,OAAO,CAAC,OAAjB,IAA4B,QAAQ,GAAG,IAAI,CAAC,GAAL,CAAS,OAAO,CAAC,OAAjB,CAA3C,EAAsE;AACpE,IAAA,OAAO,CAAC,IAAR,IACE,SAAS,GAAG,WAAW,GAAG,WAD5B,IAEE,OAAO,CAAC,IAAR,CAAa,OAAb,CAFF;AAGA,IAAA,OAAO,CAAC,KAAR,IACE,SAAS,GAAG,WAAW,GAAG,WAD5B,IAEE,OAAO,CAAC,KAAR,CAAc,OAAd,CAFF;AAGD;;AAED,MAAI,IAAI,CAAC,GAAL,CAAS,OAAO,CAAC,OAAjB,IAA4B,QAAQ,GAAG,IAAI,CAAC,GAAL,CAAS,OAAO,CAAC,OAAjB,CAA3C,EAAsE;AACpE,IAAA,OAAO,CAAC,EAAR,IAAc,SAAS,GAAG,WAAW,GAAG,WAAxC,IAAuD,OAAO,CAAC,EAAR,CAAW,OAAX,CAAvD;AACA,IAAA,OAAO,CAAC,IAAR,IACE,SAAS,GAAG,WAAW,GAAG,WAD5B,IAEE,OAAO,CAAC,IAAR,CAAa,OAAb,CAFF;AAGD;AACF,CAtBD;;AAwBA,SAAS,UAAT,CAAqB,KAArB,EAAwC,OAAxC,EAA6D;AAC3D,QAAM,KAAK,GAAG,KAAK,CAAC,cAAN,CAAqB,CAArB,CAAd;AACA,EAAA,OAAO,CAAC,WAAR,GAAsB,KAAK,CAAC,OAA5B;AACA,EAAA,OAAO,CAAC,WAAR,GAAsB,KAAK,CAAC,OAA5B;AAEA,EAAA,OAAO,CAAC,KAAR,IAAiB,OAAO,CAAC,KAAR,CAAc,MAAM,CAAC,MAAP,CAAc,KAAd,EAAqB,OAArB,CAAd,CAAjB;AACD;;AAED,SAAS,QAAT,CAAmB,KAAnB,EAAsC,OAAtC,EAA2D;AACzD,QAAM,KAAK,GAAG,KAAK,CAAC,cAAN,CAAqB,CAArB,CAAd;AACA,EAAA,OAAO,CAAC,SAAR,GAAoB,KAAK,CAAC,OAA1B;AACA,EAAA,OAAO,CAAC,SAAR,GAAoB,KAAK,CAAC,OAA1B;AAEA,EAAA,OAAO,CAAC,GAAR,IAAe,OAAO,CAAC,GAAR,CAAY,MAAM,CAAC,MAAP,CAAc,KAAd,EAAqB,OAArB,CAAZ,CAAf;AAEA,EAAA,aAAa,CAAC,OAAD,CAAb;AACD;;AAED,SAAS,SAAT,CAAoB,KAApB,EAAuC,OAAvC,EAA4D;AAC1D,QAAM,KAAK,GAAG,KAAK,CAAC,cAAN,CAAqB,CAArB,CAAd;AACA,EAAA,OAAO,CAAC,UAAR,GAAqB,KAAK,CAAC,OAA3B;AACA,EAAA,OAAO,CAAC,UAAR,GAAqB,KAAK,CAAC,OAA3B;AAEA,EAAA,OAAO,CAAC,IAAR,IAAgB,OAAO,CAAC,IAAR,CAAa,MAAM,CAAC,MAAP,CAAc,KAAd,EAAqB,OAArB,CAAb,CAAhB;AACD;;AAED,SAAS,cAAT,CAAyB,KAAzB,EAA6C;AAC3C,QAAM,OAAO,GAAG;AACd,IAAA,WAAW,EAAE,CADC;AAEd,IAAA,WAAW,EAAE,CAFC;AAGd,IAAA,SAAS,EAAE,CAHG;AAId,IAAA,SAAS,EAAE,CAJG;AAKd,IAAA,UAAU,EAAE,CALE;AAMd,IAAA,UAAU,EAAE,CANE;AAOd,IAAA,OAAO,EAAE,CAPK;AAQd,IAAA,OAAO,EAAE,CARK;AASd,IAAA,IAAI,EAAE,KAAK,CAAC,IATE;AAUd,IAAA,KAAK,EAAE,KAAK,CAAC,KAVC;AAWd,IAAA,EAAE,EAAE,KAAK,CAAC,EAXI;AAYd,IAAA,IAAI,EAAE,KAAK,CAAC,IAZE;AAad,IAAA,KAAK,EAAE,KAAK,CAAC,KAbC;AAcd,IAAA,IAAI,EAAE,KAAK,CAAC,IAdE;AAed,IAAA,GAAG,EAAE,KAAK,CAAC;AAfG,GAAhB;AAkBA,SAAO;AACL,IAAA,UAAU,EAAG,CAAD,IAAmB,UAAU,CAAC,CAAD,EAAI,OAAJ,CADpC;AAEL,IAAA,QAAQ,EAAG,CAAD,IAAmB,QAAQ,CAAC,CAAD,EAAI,OAAJ,CAFhC;AAGL,IAAA,SAAS,EAAG,CAAD,IAAmB,SAAS,CAAC,CAAD,EAAI,OAAJ;AAHlC,GAAP;AAKD;;AAED,SAAS,OAAT,CACE,EADF,EAEE,OAFF,EAGE,KAHF,EAGc;AAEZ,QAAM,KAAK,GAAG,OAAO,CAAC,KAAtB;AACA,QAAM,MAAM,GAAG,KAAK,CAAC,MAAN,GAAe,EAAE,CAAC,aAAlB,GAAkC,EAAjD;AACA,QAAM,OAAO,GAAG,KAAK,CAAC,OAAN,IAAiB;AAAE,IAAA,OAAO,EAAE;AAAX,GAAjC,CAJY,CAMZ;;AACA,MAAI,CAAC,MAAL,EAAa;AAEb,QAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,KAAT,CAA/B;AACA,EAAA,MAAM,CAAC,cAAP,GAAwB,MAAM,CAAC,MAAM,CAAC,cAAR,CAA9B;AACA,EAAA,MAAM,CAAC,cAAP,CAAuB,KAAK,CAAC,GAAN,CAAW,GAAlC,IAAyC,QAAzC;AAEA,EAAA,IAAI,CAAC,QAAD,CAAJ,CAAe,OAAf,CAAuB,SAAS,IAAG;AACjC,IAAA,MAAM,CAAC,gBAAP,CACE,SADF,EAEE,QAAQ,CAAC,SAAD,CAFV,EAGE,OAHF;AAKD,GAND;AAOD;;AAED,SAAS,SAAT,CACE,EADF,EAEE,OAFF,EAGE,KAHF,EAGc;AAEZ,QAAM,MAAM,GAAG,OAAO,CAAC,KAAR,CAAc,MAAd,GAAuB,EAAE,CAAC,aAA1B,GAA0C,EAAzD;AACA,MAAI,CAAC,MAAD,IAAW,CAAC,MAAM,CAAC,cAAvB,EAAuC;AAEvC,QAAM,QAAQ,GAAG,MAAM,CAAC,cAAP,CAAsB,KAAK,CAAC,GAAN,CAAW,GAAjC,CAAjB;AACA,EAAA,IAAI,CAAC,QAAD,CAAJ,CAAe,OAAf,CAAuB,SAAS,IAAG;AACjC,IAAA,MAAM,CAAC,mBAAP,CAA2B,SAA3B,EAAsC,QAAQ,CAAC,SAAD,CAA9C;AACD,GAFD;AAGA,SAAO,MAAM,CAAC,cAAP,CAAsB,KAAK,CAAC,GAAN,CAAW,GAAjC,CAAP;AACD;;AAED,OAAO,MAAM,KAAK,GAA6C;AAC7D,EAAA,OAD6D;AAE7D,EAAA;AAF6D,CAAxD;AAKP,eAAe,wBAAwB,CAAC,KAAD,CAAvC","sourcesContent":["import { DirectiveBinding, VNode, ObjectDirective } from 'vue'\nimport { keys } from '../../util/helpers'\nimport { TouchHandlers, TouchValue, TouchWrapper } from 'vuetify/types'\nimport makeDirectiveActivatable from '../../util/make-directive-activatable'\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left &&\n touchendX < touchstartX - minDistance &&\n wrapper.left(wrapper)\n wrapper.right &&\n touchendX > touchstartX + minDistance &&\n wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && touchendY < touchstartY - minDistance && wrapper.up(wrapper)\n wrapper.down &&\n touchendY > touchstartY + minDistance &&\n wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start && wrapper.start(Object.assign(event, wrapper))\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end && wrapper.end(Object.assign(event, wrapper))\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move && wrapper.move(Object.assign(event, wrapper))\n}\n\nfunction createHandlers (value: TouchHandlers): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction mounted (\n el: HTMLElement,\n binding: DirectiveBinding<TouchValue>,\n vnode: VNode\n) {\n const value = binding.value\n const target = value.parent ? el.parentElement : el\n const options = value.options || { passive: true }\n\n // Needed to pass unit tests\n if (!target) return\n\n const handlers = createHandlers(binding.value)\n target._touchHandlers = Object(target._touchHandlers)\n target._touchHandlers![vnode.ctx!.uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(\n eventName,\n handlers[eventName] as EventListener,\n options\n )\n })\n}\n\nfunction unmounted (\n el: HTMLElement,\n binding: DirectiveBinding<TouchValue>,\n vnode: VNode\n) {\n const target = binding.value.parent ? el.parentElement : el\n if (!target || !target._touchHandlers) return\n\n const handlers = target._touchHandlers[vnode.ctx!.uid]\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n delete target._touchHandlers[vnode.ctx!.uid]\n}\n\nexport const Touch: ObjectDirective<HTMLElement, TouchValue> = {\n mounted,\n unmounted,\n}\n\nexport default makeDirectiveActivatable(Touch)\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/directives/touch/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { DirectiveBinding, VNode, ObjectDirective } from 'vue'\nimport { keys } from '../../util/helpers'\nimport { TouchHandlers, TouchValue, TouchWrapper } from 'vuetify/types'\nimport makeDirectiveActivatable from '../../util/make-directive-activatable'\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left &&\n touchendX < touchstartX - minDistance &&\n wrapper.left(wrapper)\n wrapper.right &&\n touchendX > touchstartX + minDistance &&\n wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && touchendY < touchstartY - minDistance && wrapper.up(wrapper)\n wrapper.down &&\n touchendY > touchstartY + minDistance &&\n wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start && wrapper.start(Object.assign(event, wrapper))\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end && wrapper.end(Object.assign(event, wrapper))\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move && wrapper.move(Object.assign(event, wrapper))\n}\n\nfunction createHandlers (value: TouchHandlers): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction mounted (\n el: HTMLElement,\n binding: DirectiveBinding<TouchValue>,\n vnode: VNode\n) {\n const value = binding.value\n const target = value.parent ? el.parentElement : el\n const options = value.options || { passive: true }\n\n // Needed to pass unit tests\n if (!target) return\n\n const handlers = createHandlers(binding.value)\n target._touchHandlers = Object(target._touchHandlers)\n target._touchHandlers![vnode.ctx!.uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(\n eventName,\n handlers[eventName] as EventListener,\n options\n )\n })\n}\n\nfunction unmounted (\n el: HTMLElement,\n binding: DirectiveBinding<TouchValue>,\n vnode: VNode\n) {\n const target = binding.value.parent ? el.parentElement : el\n if (!target || !target._touchHandlers) return\n\n const handlers = target._touchHandlers[vnode.ctx!.uid]\n if (handlers) {\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n delete target._touchHandlers[vnode.ctx!.uid]\n }\n}\n\nexport const Touch: ObjectDirective<HTMLElement, TouchValue> = {\n mounted,\n unmounted,\n}\n\nexport default makeDirectiveActivatable(Touch)\n"],"sourceRoot":"","file":"index.js"}
package/lib/framework.js CHANGED
@@ -46,7 +46,7 @@ export default class Vuetify {
46
46
  }
47
47
  Vuetify.install = install;
48
48
  Vuetify.installed = false;
49
- Vuetify.version = "2.7.2-alpha32";
49
+ Vuetify.version = "2.7.2-alpha33";
50
50
  Vuetify.config = {
51
51
  silent: false
52
52
  };
@@ -3,8 +3,7 @@ import Delayable from '../delayable';
3
3
  import Toggleable from '../toggleable'; // Utilities
4
4
 
5
5
  import mixins from '../../util/mixins';
6
- import { getSlot, getSlotType } from '../../util/helpers';
7
- import { consoleError } from '../../util/console';
6
+ import { getSlot } from '../../util/helpers';
8
7
  const baseMixins = mixins(Delayable, Toggleable);
9
8
  /* @vue/component */
10
9
 
@@ -40,12 +39,6 @@ export default baseMixins.extend({
40
39
  },
41
40
 
42
41
  mounted() {
43
- const slotType = getSlotType(this, 'activator', true);
44
-
45
- if (slotType && ['v-slot', 'normal'].includes(slotType)) {
46
- consoleError(`The activator slot must be bound, try '<template v-slot:activator="{ on }"><v-btn v-on="on">'`, this);
47
- }
48
-
49
42
  this.addActivatorEvents();
50
43
  },
51
44
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/activatable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Mixins\nimport Delayable from '../delayable'\nimport Toggleable from '../toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot, getSlotType } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\ntype Listeners = Dictionary<(e: MouseEvent & KeyboardEvent & FocusEvent) => void>\n\nconst baseMixins = mixins(\n Delayable,\n Toggleable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'activatable',\n\n props: {\n activator: {\n default: null as unknown as PropType<string | HTMLElement | VNode | Element | null>,\n validator: (val: string | object) => {\n return ['string', 'object'].includes(typeof val)\n },\n },\n disabled: Boolean,\n internalActivator: Boolean,\n openOnClick: {\n type: Boolean,\n default: true,\n },\n openOnHover: Boolean,\n openOnFocus: Boolean,\n },\n\n data: () => ({\n // Do not use this directly, call getActivator() instead\n activatorElement: null as HTMLElement | null,\n activatorNode: [] as VNode[],\n events: ['click', 'mouseenter', 'mouseleave', 'focus'],\n listeners: {} as Listeners,\n }),\n\n watch: {\n activator: 'resetActivator',\n openOnFocus: 'resetActivator',\n openOnHover: 'resetActivator',\n },\n\n mounted () {\n const slotType = getSlotType(this, 'activator', true)\n\n if (slotType && ['v-slot', 'normal'].includes(slotType)) {\n consoleError(`The activator slot must be bound, try '<template v-slot:activator=\"{ on }\"><v-btn v-on=\"on\">'`, this)\n }\n\n this.addActivatorEvents()\n },\n\n beforeUnmount () {\n this.removeActivatorEvents()\n },\n\n computed: {\n isActivatable() {\n return true\n }\n },\n\n methods: {\n addActivatorEvents () {\n if (\n !this.activator ||\n this.disabled ||\n !this.getActivator()\n ) return\n\n this.listeners = this.genActivatorListeners()\n const keys = Object.keys(this.listeners)\n\n for (const key of keys) {\n this.getActivator()!.addEventListener(key, this.listeners[key] as any)\n }\n },\n genActivator () {\n let node = getSlot(this, 'activator', Object.assign(this.getValueProxy(), {\n attrs: {\n ...this.genActivatorListeners(),\n ...this.genActivatorAttributes(),\n },\n on: this.genActivatorListeners()\n })) || []\n\n node = Array.isArray(node) ? node : [node]\n\n this.activatorNode = node.flatMap(node => {\n return node.type === Symbol.for('v-fgt') ? node.children : node\n })\n\n return node\n },\n genActivatorAttributes () {\n return {\n role: (this.openOnClick && !this.openOnHover) ? 'button' : undefined,\n 'aria-haspopup': true,\n 'aria-expanded': String(this.isActive),\n }\n },\n genActivatorListeners () {\n if (this.disabled) return {}\n\n const listeners: Listeners = {}\n\n if (this.openOnHover) {\n listeners.onMouseenter = (e: MouseEvent) => {\n this.getActivator(e)\n this.runDelay('open')\n }\n listeners.onMouseleave = (e: MouseEvent) => {\n this.getActivator(e)\n this.runDelay('close')\n }\n } else if (this.openOnClick) {\n listeners.onClick = (e: MouseEvent) => {\n const activator = this.getActivator(e)\n if (activator) activator.focus()\n\n e.stopPropagation()\n\n this.isActive = !this.isActive\n }\n }\n\n if (this.openOnFocus) {\n listeners.onFocus = (e: FocusEvent) => {\n this.getActivator(e)\n\n e.stopPropagation()\n\n this.isActive = !this.isActive\n }\n }\n\n return listeners\n },\n getActivator (e?: Event): HTMLElement | null {\n // If we've already fetched the activator, re-use\n if (this.activatorElement) return this.activatorElement\n\n let activator = null\n\n if (this.activator) {\n const target = this.internalActivator ? this.$el : document\n\n if (typeof this.activator === 'string') {\n // Selector\n activator = target.querySelector(this.activator)\n } else if ((this.activator as any).$el) {\n // Component (ref)\n activator = (this.activator as any).$el\n } else {\n // HTMLElement | Element\n activator = this.activator\n }\n } else if (this.activatorNode.length === 1 || (this.activatorNode.length && !e)) {\n\n // Use the contents of the activator slot\n // There's either only one element in it or we\n // don't have a click event to use as a last resort\n const vm = this.activatorNode[0].component?.ctx\n if (\n vm &&\n (vm.isActivatable !== undefined || vm.isMenuable !== undefined)\n ) {\n // Activator is actually another activatible component, use its activator (#8846)\n activator = (vm as any).getActivator()\n } else {\n activator = this.activatorNode[0].el as HTMLElement\n }\n } else if (e) {\n // Activated by a click or focus event\n activator = (e.currentTarget || e.target) as HTMLElement\n }\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n this.activatorElement = activator?.nodeType === Node.ELEMENT_NODE ? activator : null\n\n return this.activatorElement\n },\n getContentSlot () {\n return getSlot(this, 'default', this.getValueProxy(), true)\n },\n getValueProxy (): object {\n const self = this\n return {\n get value () {\n return self.isActive\n },\n set value (isActive: boolean) {\n self.isActive = isActive\n },\n }\n },\n removeActivatorEvents () {\n if (\n !this.activator ||\n !this.activatorElement\n ) return\n\n const keys = Object.keys(this.listeners)\n\n for (const key of keys) {\n (this.activatorElement as any).removeEventListener(key, this.listeners[key])\n }\n\n this.listeners = {}\n },\n resetActivator () {\n this.removeActivatorEvents()\n this.activatorElement = null\n this.getActivator()\n this.addActivatorEvents()\n }\n },\n})\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/activatable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Mixins\nimport Delayable from '../delayable'\nimport Toggleable from '../toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot, getSlotType } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\ntype Listeners = Dictionary<(e: MouseEvent & KeyboardEvent & FocusEvent) => void>\n\nconst baseMixins = mixins(\n Delayable,\n Toggleable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'activatable',\n\n props: {\n activator: {\n default: null as unknown as PropType<string | HTMLElement | VNode | Element | null>,\n validator: (val: string | object) => {\n return ['string', 'object'].includes(typeof val)\n },\n },\n disabled: Boolean,\n internalActivator: Boolean,\n openOnClick: {\n type: Boolean,\n default: true,\n },\n openOnHover: Boolean,\n openOnFocus: Boolean,\n },\n\n data: () => ({\n // Do not use this directly, call getActivator() instead\n activatorElement: null as HTMLElement | null,\n activatorNode: [] as VNode[],\n events: ['click', 'mouseenter', 'mouseleave', 'focus'],\n listeners: {} as Listeners,\n }),\n\n watch: {\n activator: 'resetActivator',\n openOnFocus: 'resetActivator',\n openOnHover: 'resetActivator',\n },\n\n mounted () {\n this.addActivatorEvents()\n },\n\n beforeUnmount () {\n this.removeActivatorEvents()\n },\n\n computed: {\n isActivatable() {\n return true\n }\n },\n\n methods: {\n addActivatorEvents () {\n if (\n !this.activator ||\n this.disabled ||\n !this.getActivator()\n ) return\n\n this.listeners = this.genActivatorListeners()\n const keys = Object.keys(this.listeners)\n\n for (const key of keys) {\n this.getActivator()!.addEventListener(key, this.listeners[key] as any)\n }\n },\n genActivator () {\n let node = getSlot(this, 'activator', Object.assign(this.getValueProxy(), {\n attrs: {\n ...this.genActivatorListeners(),\n ...this.genActivatorAttributes(),\n },\n on: this.genActivatorListeners()\n })) || []\n\n node = Array.isArray(node) ? node : [node]\n\n this.activatorNode = node.flatMap(node => {\n return node.type === Symbol.for('v-fgt') ? node.children : node\n })\n\n return node\n },\n genActivatorAttributes () {\n return {\n role: (this.openOnClick && !this.openOnHover) ? 'button' : undefined,\n 'aria-haspopup': true,\n 'aria-expanded': String(this.isActive),\n }\n },\n genActivatorListeners () {\n if (this.disabled) return {}\n\n const listeners: Listeners = {}\n\n if (this.openOnHover) {\n listeners.onMouseenter = (e: MouseEvent) => {\n this.getActivator(e)\n this.runDelay('open')\n }\n listeners.onMouseleave = (e: MouseEvent) => {\n this.getActivator(e)\n this.runDelay('close')\n }\n } else if (this.openOnClick) {\n listeners.onClick = (e: MouseEvent) => {\n const activator = this.getActivator(e)\n if (activator) activator.focus()\n\n e.stopPropagation()\n\n this.isActive = !this.isActive\n }\n }\n\n if (this.openOnFocus) {\n listeners.onFocus = (e: FocusEvent) => {\n this.getActivator(e)\n\n e.stopPropagation()\n\n this.isActive = !this.isActive\n }\n }\n\n return listeners\n },\n getActivator (e?: Event): HTMLElement | null {\n // If we've already fetched the activator, re-use\n if (this.activatorElement) return this.activatorElement\n\n let activator = null\n\n if (this.activator) {\n const target = this.internalActivator ? this.$el : document\n\n if (typeof this.activator === 'string') {\n // Selector\n activator = target.querySelector(this.activator)\n } else if ((this.activator as any).$el) {\n // Component (ref)\n activator = (this.activator as any).$el\n } else {\n // HTMLElement | Element\n activator = this.activator\n }\n } else if (this.activatorNode.length === 1 || (this.activatorNode.length && !e)) {\n\n // Use the contents of the activator slot\n // There's either only one element in it or we\n // don't have a click event to use as a last resort\n const vm = this.activatorNode[0].component?.ctx\n if (\n vm &&\n (vm.isActivatable !== undefined || vm.isMenuable !== undefined)\n ) {\n // Activator is actually another activatible component, use its activator (#8846)\n activator = (vm as any).getActivator()\n } else {\n activator = this.activatorNode[0].el as HTMLElement\n }\n } else if (e) {\n // Activated by a click or focus event\n activator = (e.currentTarget || e.target) as HTMLElement\n }\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n this.activatorElement = activator?.nodeType === Node.ELEMENT_NODE ? activator : null\n\n return this.activatorElement\n },\n getContentSlot () {\n return getSlot(this, 'default', this.getValueProxy(), true)\n },\n getValueProxy (): object {\n const self = this\n return {\n get value () {\n return self.isActive\n },\n set value (isActive: boolean) {\n self.isActive = isActive\n },\n }\n },\n removeActivatorEvents () {\n if (\n !this.activator ||\n !this.activatorElement\n ) return\n\n const keys = Object.keys(this.listeners)\n\n for (const key of keys) {\n (this.activatorElement as any).removeEventListener(key, this.listeners[key])\n }\n\n this.listeners = {}\n },\n resetActivator () {\n this.removeActivatorEvents()\n this.activatorElement = null\n this.getActivator()\n this.addActivatorEvents()\n }\n },\n})\n"],"sourceRoot":"","file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/groupable/index.ts"],"names":[],"mappings":"AAAA;AACA,SAAsB,MAAM,IAAI,iBAAhC,QAAyD,gBAAzD;AAeA,OAAM,SAAU,OAAV,CACJ,SADI,EAEJ,KAFI,EAGJ,MAHI,EAGW;AAEf,SAAO;AACL,IAAA,IAAI,EAAE,WADD;AAGL,IAAA,OAAO,EAAE,iBAAiB,CAAO,SAAP,EAAkB,KAAlB,EAAyB,MAAzB,CAHrB;AAIL,IAAA,KAAK,EAAE;AACL,MAAA,WAAW,EAAE;AACX,QAAA,IAAI,EAAE;AADK,OADR;AAIL,MAAA,QAAQ,EAAE;AAJL,KAJF;;AAWL,IAAA,IAAI,GAAA;AACF,aAAO;AACL,QAAA,QAAQ,EAAE;AADL,OAAP;AAGD,KAfI;;AAiBL,IAAA,QAAQ,EAAE;AACR,MAAA,YAAY,GAAA;AACV,YAAG,KAAK,WAAR,EAAqB,OAAO,KAAK,WAAZ;AAErB,YAAI,CAAC,KAAK,SAAL,CAAL,EAAsB,OAAO,SAAP;AAEtB,eAAO,KAAK,SAAL,EAAgB,WAAvB;AACD,OAPO;;AAQR,MAAA,YAAY,GAAA;AACV,YAAI,CAAC,KAAK,YAAV,EAAwB,OAAO,EAAP;AAExB,eAAO;AACL,WAAC,KAAK,YAAN,GAAqB,KAAK;AADrB,SAAP;AAGD;;AAdO,KAjBL;;AAkCL,IAAA,OAAO,GAAA;AACL,WAAK,SAAL,KAAoB,KAAK,SAAL,EAAwB,QAAxB,CAAiC,IAAjC,CAApB;AACD,KApCI;;AAsCL,IAAA,aAAa,GAAA;AACX,WAAK,SAAL,KAAoB,KAAK,SAAL,EAAwB,UAAxB,CAAmC,IAAnC,CAApB;AACD,KAxCI;;AA0CL,IAAA,OAAO,EAAE;AACP,MAAA,MAAM,CAAE,CAAF,EAAW;AACf,YAAI,KAAK,QAAL,IAAiB,CAArB,EAAwB;AACtB;AACA;AACA;AACA,UAAA,CAAC,CAAC,cAAF;AACA;AACD;;AACD,aAAK,KAAL,CAAW,QAAX;AACA,aAAK,WAAL,CAAiB,QAAjB;AACD;;AAXM;AA1CJ,GAAP;AAwDD;AAED;;AACA,MAAM,SAAS,GAAG,OAAO,CAAC,WAAD,CAAzB;AAEA,eAAe,SAAf","sourcesContent":["// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable<T extends string, C extends VueConstructor | null = null> = VueConstructor<ExtractVue<Registrable<T, C>> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (e?: Event): void\n}>\n\nexport function factory<T extends string, C extends VueConstructor | null = null> (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable<T, C> {\n return {\n name: 'groupable',\n\n extends: RegistrableInject<T, C>(namespace, child, parent),\n props: {\n activeClass: {\n type: String,\n } as any as PropValidator<string>,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n $activeClass() {\n if(this.activeClass) return this.activeClass\n\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n groupClasses (): object {\n if (!this.$activeClass) return {}\n\n return {\n [this.$activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeUnmount () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle (e?: Event) {\n if (this.disabled && e) {\n // Prevent keyboard actions\n // from children elements\n // within disabled tabs\n e.preventDefault()\n return\n }\n this.$emit('change')\n this.$emitLegacy('change')\n },\n },\n }\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/groupable/index.ts"],"names":[],"mappings":"AAAA;AACA,SAAsB,MAAM,IAAI,iBAAhC,QAAyD,gBAAzD;AAeA,OAAM,SAAU,OAAV,CACJ,SADI,EAEJ,KAFI,EAGJ,MAHI,EAGW;AAEf,SAAO;AACL,IAAA,IAAI,EAAE,WADD;AAGL,IAAA,OAAO,EAAE,iBAAiB,CAAO,SAAP,EAAkB,KAAlB,EAAyB,MAAzB,CAHrB;AAIL,IAAA,KAAK,EAAE;AACL,MAAA,WAAW,EAAE;AACX,QAAA,IAAI,EAAE;AADK,OADR;AAIL,MAAA,QAAQ,EAAE;AAJL,KAJF;;AAWL,IAAA,IAAI,GAAA;AACF,aAAO;AACL,QAAA,QAAQ,EAAE;AADL,OAAP;AAGD,KAfI;;AAiBL,IAAA,QAAQ,EAAE;AACR,MAAA,YAAY,GAAA;AACV,YAAI,KAAK,WAAT,EAAsB,OAAO,KAAK,WAAZ;AAEtB,YAAI,CAAC,KAAK,SAAL,CAAL,EAAsB,OAAO,SAAP;AAEtB,eAAO,KAAK,SAAL,EAAgB,WAAvB;AACD,OAPO;;AAQR,MAAA,YAAY,GAAA;AACV,YAAI,CAAC,KAAK,YAAV,EAAwB,OAAO,EAAP;AAExB,eAAO;AACL,WAAC,KAAK,YAAN,GAAqB,KAAK;AADrB,SAAP;AAGD;;AAdO,KAjBL;;AAkCL,IAAA,OAAO,GAAA;AACL,WAAK,SAAL,KAAoB,KAAK,SAAL,EAAwB,QAAxB,CAAiC,IAAjC,CAApB;AACD,KApCI;;AAsCL,IAAA,aAAa,GAAA;AACX,WAAK,SAAL,KAAoB,KAAK,SAAL,EAAwB,UAAxB,CAAmC,IAAnC,CAApB;AACD,KAxCI;;AA0CL,IAAA,OAAO,EAAE;AACP,MAAA,MAAM,CAAE,CAAF,EAAW;AACf,YAAI,KAAK,QAAL,IAAiB,CAArB,EAAwB;AACtB;AACA;AACA;AACA,UAAA,CAAC,CAAC,cAAF;AACA;AACD;;AACD,aAAK,KAAL,CAAW,QAAX;AACA,aAAK,WAAL,CAAiB,QAAjB;AACD;;AAXM;AA1CJ,GAAP;AAwDD;AAED;;AACA,MAAM,SAAS,GAAG,OAAO,CAAC,WAAD,CAAzB;AAEA,eAAe,SAAf","sourcesContent":["// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\n// import { ExtractVue } from '../../util/mixins'\nimport { Component } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable<T extends string, C extends Component | null = null> = Component<Registrable<T, C> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (e?: Event): void\n}>\n\nexport function factory<T extends string, C extends Component | null = null> (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable<T, C> {\n return {\n name: 'groupable',\n\n extends: RegistrableInject<T, C>(namespace, child, parent),\n props: {\n activeClass: {\n type: String,\n } as any as PropValidator<string>,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n $activeClass () {\n if (this.activeClass) return this.activeClass\n\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n groupClasses (): object {\n if (!this.$activeClass) return {}\n\n return {\n [this.$activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeUnmount () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle (e?: Event) {\n if (this.disabled && e) {\n // Prevent keyboard actions\n // from children elements\n // within disabled tabs\n e.preventDefault()\n return\n }\n this.$emit('change')\n this.$emitLegacy('change')\n },\n },\n }\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n"],"sourceRoot":"","file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/positionable/index.ts"],"names":[],"mappings":"AAAA,SAAQ,eAAR,QAA8B,KAA9B;AACA,SAAS,kBAAT,QAAmC,oBAAnC;AAGA,MAAM,cAAc,GAAG;AACrB,EAAA,QAAQ,EAAE,OADW;AAErB,EAAA,MAAM,EAAE,OAFa;AAGrB,EAAA,KAAK,EAAE,OAHc;AAIrB,EAAA,IAAI,EAAE,OAJe;AAKrB,EAAA,KAAK,EAAE,OALc;AAMrB,EAAA,GAAG,EAAE;AANgB,CAAvB;AAcA,OAAM,SAAU,OAAV,CAAmB,QAAA,GAAkB,EAArC,EAAuC;AAC3C,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,cADe;AAErB,IAAA,KAAK,EAAE,QAAQ,CAAC,MAAT,GAAkB,kBAAkB,CAAC,cAAD,EAAiB,QAAjB,CAApC,GAAiE;AAFnD,GAAD,CAAtB;AAID;AAED,eAAe,OAAO,EAAtB,C,CAEA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBI","sourcesContent":["import {defineComponent} from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record<keyof typeof availableProps, boolean>\n\nexport type Positionable<S extends keyof props> = VueConstructor<Vue & { [P in S]: boolean }, { [P in S]: BooleanConstructor }>\n\nexport function factory <S extends keyof props> (selected?: S[]): Positionable<S>\nexport function factory (selected: undefined): OptionsVue<Vue, {}, {}, {}, props, typeof availableProps>\nexport function factory (selected: any[] = []): any {\n return defineComponent({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/positionable/index.ts"],"names":[],"mappings":"AAAA,SAAQ,eAAR,QAA8B,KAA9B;AACA,SAAS,kBAAT,QAAmC,oBAAnC;AAGA,MAAM,cAAc,GAAG;AACrB,EAAA,QAAQ,EAAE,OADW;AAErB,EAAA,MAAM,EAAE,OAFa;AAGrB,EAAA,KAAK,EAAE,OAHc;AAIrB,EAAA,IAAI,EAAE,OAJe;AAKrB,EAAA,KAAK,EAAE,OALc;AAMrB,EAAA,GAAG,EAAE;AANgB,CAAvB;AAcA,OAAM,SAAU,OAAV,CAAmB,QAAA,GAAkB,EAArC,EAAuC;AAC3C,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,cADe;AAErB,IAAA,KAAK,EAAE,QAAQ,CAAC,MAAT,GAAkB,kBAAkB,CAAC,cAAD,EAAiB,QAAjB,CAApC,GAAiE;AAFnD,GAAD,CAAtB;AAID;AAED,eAAe,OAAO,EAAtB,C,CAEA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBI","sourcesContent":["import {defineComponent} from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, Component } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record<keyof typeof availableProps, boolean>\n\nexport type Positionable<S extends keyof props> = Component<Vue & { [P in S]: boolean }, { [P in S]: BooleanConstructor }>\n\nexport function factory <S extends keyof props> (selected?: S[]): Positionable<S>\nexport function factory (selected: undefined): OptionsVue<Vue, {}, {}, {}, props, typeof availableProps>\nexport function factory (selected: any[] = []): any {\n return defineComponent({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n"],"sourceRoot":"","file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/proxyable/index.ts"],"names":[],"mappings":"AAAA,SAAS,eAAT,QAAqD,KAArD;AAQA,OAAM,SAAU,OAAV,CACJ,IAAI,GAAG,YADH,EAEJ,KAAK,GAAG,mBAFJ,EAEuB;AAE3B,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,WADe;AAGrB,IAAA,KAAK,EAAE;AACL,OAAC,IAAD,GAAQ;AACN,QAAA,QAAQ,EAAE;AADJ;AADH,KAHc;;AASrB,IAAA,IAAI,GAAA;AACF,aAAO;AACL,QAAA,iBAAiB,EAAE,KAAK,IAAL;AADd,OAAP;AAGD,KAboB;;AAerB,IAAA,QAAQ,EAAE;AACR,MAAA,aAAa,EAAE;AACb,QAAA,GAAG,GAAA;AACD,iBAAO,KAAK,iBAAZ;AACD,SAHY;;AAIb,QAAA,GAAG,CAAE,GAAF,EAAU;AACX,cAAI,GAAG,KAAK,KAAK,iBAAjB,EAAoC;AAEpC,eAAK,iBAAL,GAAyB,GAAzB;AAEA,eAAK,KAAL,CAAW,KAAX,EAAkB,GAAlB;AACD;;AAVY;AADP,KAfW;AA8BrB,IAAA,KAAK,EAAE;AACL,OAAC,IAAD,EAAQ,GAAR,EAAW;AACT,aAAK,iBAAL,GAAyB,GAAzB;AACD;;AAHI;AA9Bc,GAAD,CAAtB;AAoCD;AAED;;AACA,MAAM,SAAS,GAAG,OAAO,EAAzB;AAEA,eAAe,SAAf","sourcesContent":["import { defineComponent, VueConstructor, App } from 'vue'\n\nexport type Proxyable<T extends string = 'value'> = VueConstructor<App & {\n internalLazyValue: unknown\n internalValue: unknown\n} & Record<T, any>>\n\nexport function factory<T extends string = 'value'> (prop?: T, event?: string): Proxyable<T>\nexport function factory (\n prop = 'modelValue',\n event = 'update:modelValue'\n) {\n return defineComponent({\n name: 'proxyable',\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/proxyable/index.ts"],"names":[],"mappings":"AAAA,SAAS,eAAT,QAAgD,KAAhD;AAQA,OAAM,SAAU,OAAV,CACJ,IAAI,GAAG,YADH,EAEJ,KAAK,GAAG,mBAFJ,EAEuB;AAE3B,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,WADe;AAGrB,IAAA,KAAK,EAAE;AACL,OAAC,IAAD,GAAQ;AACN,QAAA,QAAQ,EAAE;AADJ;AADH,KAHc;;AASrB,IAAA,IAAI,GAAA;AACF,aAAO;AACL,QAAA,iBAAiB,EAAE,KAAK,IAAL;AADd,OAAP;AAGD,KAboB;;AAerB,IAAA,QAAQ,EAAE;AACR,MAAA,aAAa,EAAE;AACb,QAAA,GAAG,GAAA;AACD,iBAAO,KAAK,iBAAZ;AACD,SAHY;;AAIb,QAAA,GAAG,CAAE,GAAF,EAAU;AACX,cAAI,GAAG,KAAK,KAAK,iBAAjB,EAAoC;AAEpC,eAAK,iBAAL,GAAyB,GAAzB;AAEA,eAAK,KAAL,CAAW,KAAX,EAAkB,GAAlB;AACD;;AAVY;AADP,KAfW;AA8BrB,IAAA,KAAK,EAAE;AACL,OAAC,IAAD,EAAQ,GAAR,EAAW;AACT,aAAK,iBAAL,GAAyB,GAAzB;AACD;;AAHI;AA9Bc,GAAD,CAAtB;AAoCD;AAED;;AACA,MAAM,SAAS,GAAG,OAAO,EAAzB;AAEA,eAAe,SAAf","sourcesContent":["import { defineComponent, Component, App } from 'vue'\n\nexport type Proxyable<T extends string = 'value'> = Component<App & {\n internalLazyValue: unknown\n internalValue: unknown\n} & Record<T, any>>\n\nexport function factory<T extends string = 'value'> (prop?: T, event?: string): Proxyable<T>\nexport function factory (\n prop = 'modelValue',\n event = 'update:modelValue'\n) {\n return defineComponent({\n name: 'proxyable',\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n"],"sourceRoot":"","file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/registrable/index.ts"],"names":[],"mappings":"AAAA,SAAQ,eAAR,QAA8B,KAA9B;AAEA,SAAS,WAAT,QAA4B,oBAA5B;;AAEA,SAAS,eAAT,CAA0B,KAA1B,EAAyC,MAAzC,EAAuD;AACrD,SAAO,MAAM,WAAW,CAAC,OAAO,KAAK,oCAAoC,MAAM,EAAvD,CAAxB;AACD;;AASD,OAAM,SAAU,MAAV,CAEH,SAFG,EAEW,KAFX,EAE2B,MAF3B,EAE0C;AAC9C,QAAM,WAAW,GAAG,KAAK,IAAI,MAAT,GAAkB;AACpC,IAAA,QAAQ,EAAE,eAAe,CAAC,KAAD,EAAQ,MAAR,CADW;AAEpC,IAAA,UAAU,EAAE,eAAe,CAAC,KAAD,EAAQ,MAAR;AAFS,GAAlB,GAGhB,IAHJ;AAKA,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,oBADe;AAGrB,IAAA,MAAM,EAAE;AACN,OAAC,SAAD,GAAa;AACX,QAAA,OAAO,EAAE;AADE;AADP;AAHa,GAAD,CAAtB;AASD;AAED,OAAM,SAAU,OAAV,CAAmB,SAAnB,EAAsC,IAAI,GAAG,KAA7C,EAAkD;AACtD,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,qBADe;;AAGrB,IAAA,OAAO,GAAA;AACL,aAAO;AACL,SAAC,SAAD,GAAa,IAAI,GAAG,IAAH,GAAU;AACzB,UAAA,QAAQ,EAAG,KAAa,QADC;AAEzB,UAAA,UAAU,EAAG,KAAa;AAFD;AADtB,OAAP;AAMD;;AAVoB,GAAD,CAAtB;AAYD","sourcesContent":["import {defineComponent} from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable<T extends string, C extends VueConstructor | null = null> = VueConstructor<Vue & {\n [K in T]: C extends VueConstructor ? InstanceType<C> : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable<T, C> {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return defineComponent({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return defineComponent({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/registrable/index.ts"],"names":[],"mappings":"AAAA,SAAQ,eAAR,QAA8B,KAA9B;AAEA,SAAS,WAAT,QAA4B,oBAA5B;;AAEA,SAAS,eAAT,CAA0B,KAA1B,EAAyC,MAAzC,EAAuD;AACrD,SAAO,MAAM,WAAW,CAAC,OAAO,KAAK,oCAAoC,MAAM,EAAvD,CAAxB;AACD;;AASD,OAAM,SAAU,MAAV,CAEH,SAFG,EAEW,KAFX,EAE2B,MAF3B,EAE0C;AAC9C,QAAM,WAAW,GAAG,KAAK,IAAI,MAAT,GAAkB;AACpC,IAAA,QAAQ,EAAE,eAAe,CAAC,KAAD,EAAQ,MAAR,CADW;AAEpC,IAAA,UAAU,EAAE,eAAe,CAAC,KAAD,EAAQ,MAAR;AAFS,GAAlB,GAGhB,IAHJ;AAKA,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,oBADe;AAGrB,IAAA,MAAM,EAAE;AACN,OAAC,SAAD,GAAa;AACX,QAAA,OAAO,EAAE;AADE;AADP;AAHa,GAAD,CAAtB;AASD;AAED,OAAM,SAAU,OAAV,CAAmB,SAAnB,EAAsC,IAAI,GAAG,KAA7C,EAAkD;AACtD,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,qBADe;;AAGrB,IAAA,OAAO,GAAA;AACL,aAAO;AACL,SAAC,SAAD,GAAa,IAAI,GAAG,IAAH,GAAU;AACzB,UAAA,QAAQ,EAAG,KAAa,QADC;AAEzB,UAAA,UAAU,EAAG,KAAa;AAFD;AADtB,OAAP;AAMD;;AAVoB,GAAD,CAAtB;AAYD","sourcesContent":["import {defineComponent} from 'vue'\nimport { Component } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable<T extends string, C extends Component | null = null> = Component<Vue & {\n [K in T]: C extends Component ? InstanceType<C> : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends Component | null = null\n> (namespace: T, child?: string, parent?: string): Registrable<T, C> {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return defineComponent({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return defineComponent({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n"],"sourceRoot":"","file":"index.js"}
@@ -90,13 +90,15 @@ export default mixins(VInput, Rippleable, Comparable).extend({
90
90
  },
91
91
 
92
92
  genInput(type, attrs) {
93
- return h('input', { ...Object.assign({
94
- 'aria-checked': this.isActive.toString(),
95
- disabled: this.isDisabled,
96
- id: this.computedId,
97
- role: type,
98
- type
99
- }, attrs),
93
+ // Allow components to override aria-checked by providing it in attrs
94
+ const defaultAttrs = {
95
+ 'aria-checked': this.isActive.toString(),
96
+ disabled: this.isDisabled,
97
+ id: this.computedId,
98
+ role: type,
99
+ type
100
+ };
101
+ return h('input', { ...Object.assign(defaultAttrs, attrs),
100
102
  value: this.value,
101
103
  checked: this.isActive,
102
104
  onBlur: this.onBlur,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/selectable/index.ts"],"names":[],"mappings":"AAAA;AACA,OAAO,MAAP,MAAmB,yBAAnB,C,CAEA;;AACA,OAAO,UAAP,MAAuB,eAAvB;AACA,OAAO,UAAP,MAAuB,eAAvB,C,CAEA;;AACA,OAAO,MAAP,MAAmB,mBAAnB;AACA,SAAS,CAAT,QAAkB,KAAlB;AAEA,OAAM,SAAU,OAAV,CAAmB,CAAnB,EAA2B;AAC/B,EAAA,CAAC,CAAC,cAAF;AACD;AAED;;AACA,eAAe,MAAM,CACnB,MADmB,EAEnB,UAFmB,EAGnB,UAHmB,CAAN,CAIb,MAJa,CAIN;AACP,EAAA,IAAI,EAAE,YADC;AAGP,EAAA,KAAK,EAAE;AACL,IAAA,EAAE,EAAE,MADC;AAEL,IAAA,KAAK,EAAE,IAFF;AAGL,IAAA,UAAU,EAAE,IAHP;AAIL,IAAA,SAAS,EAAE,IAJN;AAKL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,OADE;AAER,MAAA,OAAO,EAAE;AAFD,KALL;AASL,IAAA,KAAK,EAAE;AATF,GAHA;;AAeP,EAAA,IAAI,GAAA;AACF,WAAO;AACL,MAAA,QAAQ,EAAE,KAAK,UADV;AAEL,MAAA,SAAS,EAAE,KAAK;AAFX,KAAP;AAID,GApBM;;AAsBP,EAAA,OAAO,GAAA;AACL,SAAK,iBAAL,GAAyB,IAAzB;AACD,GAxBM;;AA0BP,EAAA,QAAQ,EAAE;AACR,IAAA,aAAa,GAAA;AACX,UAAI,CAAC,KAAK,QAAV,EAAoB,OAAO,SAAP;AACpB,UAAI,KAAK,KAAT,EAAgB,OAAO,KAAK,KAAZ;AAChB,UAAI,KAAK,MAAL,IAAe,CAAC,KAAK,SAAzB,EAAoC,OAAO,OAAP;AACpC,aAAO,SAAP;AACD,KANO;;AAOR,IAAA,UAAU,GAAA;AACR,aAAO,KAAK,QAAL,KAAkB,IAAlB,IAA2B,KAAK,QAAL,KAAkB,IAAlB,IAA0B,KAAK,CAAC,OAAN,CAAc,KAAK,aAAnB,CAA5D;AACD,KATO;;AAUR,IAAA,QAAQ,GAAA;AACN,YAAM,KAAK,GAAG,KAAK,KAAnB;AACA,YAAM,KAAK,GAAG,KAAK,aAAnB;;AAEA,UAAI,KAAK,UAAT,EAAqB;AACnB,YAAI,CAAC,KAAK,CAAC,OAAN,CAAc,KAAd,CAAL,EAA2B,OAAO,KAAP;AAE3B,eAAO,KAAK,CAAC,IAAN,CAAW,IAAI,IAAI,KAAK,eAAL,CAAqB,IAArB,EAA2B,KAA3B,CAAnB,CAAP;AACD;;AAED,UAAI,KAAK,SAAL,KAAmB,SAAnB,IAAgC,KAAK,UAAL,KAAoB,SAAxD,EAAmE;AACjE,eAAO,KAAK,GACR,KAAK,eAAL,CAAqB,KAArB,EAA4B,KAA5B,CADQ,GAER,OAAO,CAAC,KAAD,CAFX;AAGD;;AAED,aAAO,KAAK,eAAL,CAAqB,KAArB,EAA4B,KAAK,SAAjC,CAAP;AACD,KA3BO;;AA4BR,IAAA,OAAO,GAAA;AACL,aAAO,KAAK,QAAZ;AACD,KA9BO;;AA+BR,IAAA,WAAW,GAAA;AACT,aAAO,CAAC,KAAK,UAAN,IAAoB,CAAC,KAAK,eAA1B,GACH,SADG,GAEH,KAAK,eAFT;AAGD;;AAnCO,GA1BH;AAgEP,EAAA,KAAK,EAAE;AACL,IAAA,UAAU,CAAE,GAAF,EAAK;AACb,WAAK,SAAL,GAAiB,GAAjB;AACA,WAAK,QAAL,GAAgB,GAAhB;AACD;;AAJI,GAhEA;AAuEP,EAAA,OAAO,EAAE;AACP,IAAA,QAAQ,GAAA;AACN,YAAM,KAAK,GAAG,MAAM,CAAC,OAAP,CAAe,QAAf,CAAwB,IAAxB,CAA6B,IAA7B,CAAd;AAEA,UAAI,CAAC,KAAL,EAAY,OAAO,KAAP,CAHN,CAKN;;AACA,MAAA,KAAM,CAAC,OAAP,GAAiB,KAAK,OAAtB;AAEA,aAAO,KAAP;AACD,KAVM;;AAWP,IAAA,QAAQ,CAAE,IAAF,EAAgB,KAAhB,EAA6B;AACnC,aAAO,CAAC,CAAC,OAAD,EAAU,EAChB,GAAG,MAAM,CAAC,MAAP,CAAc;AACf,0BAAgB,KAAK,QAAL,CAAc,QAAd,EADD;AAEf,UAAA,QAAQ,EAAE,KAAK,UAFA;AAGf,UAAA,EAAE,EAAE,KAAK,UAHM;AAIf,UAAA,IAAI,EAAE,IAJS;AAKf,UAAA;AALe,SAAd,EAMA,KANA,CADa;AAQhB,QAAA,KAAK,EAAE,KAAK,KARI;AAShB,QAAA,OAAO,EAAE,KAAK,QATE;AAUhB,QAAA,MAAM,EAAE,KAAK,MAVG;AAWhB,QAAA,QAAQ,EAAE,KAAK,QAXC;AAYhB,QAAA,OAAO,EAAE,KAAK,OAZE;AAahB,QAAA,SAAS,EAAE,KAAK,SAbA;AAchB,QAAA,OAAO,EAAE,OAdO;AAehB,QAAA,GAAG,EAAE;AAfW,OAAV,CAAR;AAiBD,KA7BM;;AA8BP,IAAA,OAAO,CAAE,CAAF,EAAU;AACf,MAAA,CAAC,CAAC,cAAF;AACA,WAAK,QAAL;AACA,WAAK,KAAL,CAAW,OAAX,EAAoB,CAApB;AACD,KAlCM;;AAmCP,IAAA,QAAQ,GAAA;AACN,UAAI,CAAC,KAAK,aAAV,EAAyB;AAEzB,YAAM,KAAK,GAAG,KAAK,KAAnB;AACA,UAAI,KAAK,GAAG,KAAK,aAAjB;;AAEA,UAAI,KAAK,UAAT,EAAqB;AACnB,YAAI,CAAC,KAAK,CAAC,OAAN,CAAc,KAAd,CAAL,EAA2B;AACzB,UAAA,KAAK,GAAG,EAAR;AACD;;AAED,cAAM,MAAM,GAAG,KAAK,CAAC,MAArB;AAEA,QAAA,KAAK,GAAG,KAAK,CAAC,MAAN,CAAc,IAAD,IAAe,CAAC,KAAK,eAAL,CAAqB,IAArB,EAA2B,KAA3B,CAA7B,CAAR;;AAEA,YAAI,KAAK,CAAC,MAAN,KAAiB,MAArB,EAA6B;AAC3B,UAAA,KAAK,CAAC,IAAN,CAAW,KAAX;AACD;AACF,OAZD,MAYO,IAAI,KAAK,SAAL,KAAmB,SAAnB,IAAgC,KAAK,UAAL,KAAoB,SAAxD,EAAmE;AACxE,QAAA,KAAK,GAAG,KAAK,eAAL,CAAqB,KAArB,EAA4B,KAAK,SAAjC,IAA8C,KAAK,UAAnD,GAAgE,KAAK,SAA7E;AACD,OAFM,MAEA,IAAI,KAAJ,EAAW;AAChB,QAAA,KAAK,GAAG,KAAK,eAAL,CAAqB,KAArB,EAA4B,KAA5B,IAAqC,IAArC,GAA4C,KAApD;AACD,OAFM,MAEA;AACL,QAAA,KAAK,GAAG,CAAC,KAAT;AACD;;AAED,WAAK,QAAL,CAAc,IAAd,EAAoB,KAApB;AACA,WAAK,aAAL,GAAqB,KAArB;AACA,WAAK,QAAL,GAAgB,KAAhB;AACD,KAhEM;;AAiEP,IAAA,OAAO,CAAE,CAAF,EAAe;AACpB,WAAK,SAAL,GAAiB,IAAjB;AACA,WAAK,KAAL,CAAW,OAAX,EAAoB,CAApB;AACD,KApEM;;AAqEP,IAAA,MAAM,CAAE,CAAF,EAAe;AACnB,WAAK,SAAL,GAAiB,KAAjB;AACA,WAAK,KAAL,CAAW,MAAX,EAAmB,CAAnB;AACD,KAxEM;;AAyEP;AACA,IAAA,SAAS,CAAE,CAAF,EAAU,CAAI;;AA1EhB;AAvEF,CAJM,CAAf","sourcesContent":["// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { h } from 'vue'\n\nexport function prevent (e: Event) {\n e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n VInput,\n Rippleable,\n Comparable\n).extend({\n name: 'selectable',\n\n props: {\n id: String,\n value: null as any,\n falseValue: null as any,\n trueValue: null as any,\n multiple: {\n type: Boolean,\n default: null,\n },\n label: String,\n },\n\n data () {\n return {\n hasColor: this.modelValue,\n lazyValue: this.modelValue,\n }\n },\n\n created() {\n this.$_emitChangeEvent = true\n },\n\n computed: {\n computedColor (): string | undefined {\n if (!this.isActive) return undefined\n if (this.color) return this.color\n if (this.isDark && !this.appIsDark) return 'white'\n return 'primary'\n },\n isMultiple (): boolean {\n return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n },\n isActive (): boolean {\n const value = this.value\n const input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false\n\n return input.some(item => this.valueComparator(item, value))\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value\n ? this.valueComparator(value, input)\n : Boolean(input)\n }\n\n return this.valueComparator(input, this.trueValue)\n },\n isDirty (): boolean {\n return this.isActive\n },\n rippleState (): string | undefined {\n return !this.isDisabled && !this.validationState\n ? undefined\n : this.validationState\n },\n },\n\n watch: {\n modelValue (val) {\n this.lazyValue = val\n this.hasColor = val\n },\n },\n\n methods: {\n genLabel () {\n const label = VInput.methods.genLabel.call(this)\n\n if (!label) return label\n\n // Label shouldn't cause the input to focus\n label!.onClick = this.onClick\n\n return label\n },\n genInput (type: string, attrs: object) {\n return h('input', {\n ...Object.assign({\n 'aria-checked': this.isActive.toString(),\n disabled: this.isDisabled,\n id: this.computedId,\n role: type,\n type,\n }, attrs),\n value: this.value,\n checked: this.isActive,\n onBlur: this.onBlur,\n onChange: this.onChange,\n onFocus: this.onFocus,\n onKeydown: this.onKeydown,\n onClick: prevent,\n ref: 'input'\n })\n },\n onClick (e: Event) {\n e.preventDefault()\n this.onChange()\n this.$emit('click', e)\n },\n onChange () {\n if (!this.isInteractive) return\n\n const value = this.value\n let input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) {\n input = []\n }\n\n const length = input.length\n\n input = input.filter((item: any) => !this.valueComparator(item, value))\n\n if (input.length === length) {\n input.push(value)\n }\n } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n } else if (value) {\n input = this.valueComparator(input, value) ? null : value\n } else {\n input = !input\n }\n\n this.validate(true, input)\n this.internalValue = input\n this.hasColor = input\n },\n onFocus (e: FocusEvent) {\n this.isFocused = true\n this.$emit('focus', e)\n },\n onBlur (e: FocusEvent) {\n this.isFocused = false\n this.$emit('blur', e)\n },\n /** @abstract */\n onKeydown (e: Event) {},\n },\n})\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/selectable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { h } from 'vue'\n\nexport function prevent (e: Event) {\n e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n VInput,\n Rippleable,\n Comparable\n).extend({\n name: 'selectable',\n\n props: {\n id: String,\n value: null as any,\n falseValue: null as any,\n trueValue: null as any,\n multiple: {\n type: Boolean,\n default: null,\n },\n label: String,\n },\n\n data () {\n return {\n hasColor: this.modelValue,\n lazyValue: this.modelValue,\n }\n },\n\n created() {\n this.$_emitChangeEvent = true\n },\n\n computed: {\n computedColor (): string | undefined {\n if (!this.isActive) return undefined\n if (this.color) return this.color\n if (this.isDark && !this.appIsDark) return 'white'\n return 'primary'\n },\n isMultiple (): boolean {\n return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n },\n isActive (): boolean {\n const value = this.value\n const input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false\n\n return input.some(item => this.valueComparator(item, value))\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value\n ? this.valueComparator(value, input)\n : Boolean(input)\n }\n\n return this.valueComparator(input, this.trueValue)\n },\n isDirty (): boolean {\n return this.isActive\n },\n rippleState (): string | undefined {\n return !this.isDisabled && !this.validationState\n ? undefined\n : this.validationState\n },\n },\n\n watch: {\n modelValue (val) {\n this.lazyValue = val\n this.hasColor = val\n },\n },\n\n methods: {\n genLabel () {\n const label = VInput.methods.genLabel.call(this)\n\n if (!label) return label\n\n // Label shouldn't cause the input to focus\n label!.onClick = this.onClick\n\n return label\n },\n genInput (type: string, attrs: object) {\n // Allow components to override aria-checked by providing it in attrs\n const defaultAttrs = {\n 'aria-checked': this.isActive.toString(),\n disabled: this.isDisabled,\n id: this.computedId,\n role: type,\n type,\n }\n\n return h('input', {\n ...Object.assign(defaultAttrs, attrs),\n value: this.value,\n checked: this.isActive,\n onBlur: this.onBlur,\n onChange: this.onChange,\n onFocus: this.onFocus,\n onKeydown: this.onKeydown,\n onClick: prevent,\n ref: 'input'\n })\n },\n onClick (e: Event) {\n e.preventDefault()\n this.onChange()\n this.$emit('click', e)\n },\n onChange () {\n if (!this.isInteractive) return\n\n const value = this.value\n let input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) {\n input = []\n }\n\n const length = input.length\n\n input = input.filter((item: any) => !this.valueComparator(item, value))\n\n if (input.length === length) {\n input.push(value)\n }\n } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n } else if (value) {\n input = this.valueComparator(input, value) ? null : value\n } else {\n input = !input\n }\n\n this.validate(true, input)\n this.internalValue = input\n this.hasColor = input\n },\n onFocus (e: FocusEvent) {\n this.isFocused = true\n this.$emit('focus', e)\n },\n onBlur (e: FocusEvent) {\n this.isFocused = false\n this.$emit('blur', e)\n },\n /** @abstract */\n onKeydown (e: Event) {},\n },\n})\n"],"sourceRoot":"","file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/toggleable/index.ts"],"names":[],"mappings":"AAAA,SAAS,eAAT,QAAgD,KAAhD;AAKA,OAAM,SAAU,OAAV,CAAmB,IAAI,GAAG,YAA1B,EAAwC,KAAK,GAAG,mBAAhD,EAAmE;AACvE,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,YADe;AAErB,IAAA,KAAK,EAAE;AACL,OAAC,IAAD,GAAQ;AAAE,QAAA,QAAQ,EAAE;AAAZ;AADH,KAFc;;AAMrB,IAAA,IAAI,GAAA;AACF,aAAO;AACL,QAAA,QAAQ,EAAE,CAAC,CAAC,KAAK,IAAL;AADP,OAAP;AAGD,KAVoB;;AAYrB,IAAA,KAAK,EAAE;AACL,OAAC,IAAD,EAAQ,GAAR,EAAW;AACT,aAAK,QAAL,GAAgB,CAAC,CAAC,GAAlB;AACD,OAHI;;AAIL,MAAA,QAAQ,CAAE,GAAF,EAAK;AACX,SAAC,CAAC,GAAF,KAAU,KAAK,IAAL,CAAV,IAAwB,KAAK,KAAL,CAAW,KAAX,EAAkB,GAAlB,CAAxB;AACD;;AANI;AAZc,GAAD,CAAtB;AAqBD;AAED;;AACA,MAAM,UAAU,GAAG,OAAO,EAA1B;AAEA,eAAe,UAAf","sourcesContent":["import { defineComponent, VueConstructor } from 'vue'\n\nexport type Toggleable<T extends string = 'value'> = VueConstructor<Vue & { isActive: boolean } & Record<T, any>>\n\nexport function factory<T extends string = 'value'> (prop?: T, event?: string): Toggleable<T>\nexport function factory (prop = 'modelValue', event = 'update:modelValue') {\n return defineComponent({\n name: 'toggleable',\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/toggleable/index.ts"],"names":[],"mappings":"AAAA,SAAS,eAAT,QAA2C,KAA3C;AAKA,OAAM,SAAU,OAAV,CAAmB,IAAI,GAAG,YAA1B,EAAwC,KAAK,GAAG,mBAAhD,EAAmE;AACvE,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,YADe;AAErB,IAAA,KAAK,EAAE;AACL,OAAC,IAAD,GAAQ;AAAE,QAAA,QAAQ,EAAE;AAAZ;AADH,KAFc;;AAMrB,IAAA,IAAI,GAAA;AACF,aAAO;AACL,QAAA,QAAQ,EAAE,CAAC,CAAC,KAAK,IAAL;AADP,OAAP;AAGD,KAVoB;;AAYrB,IAAA,KAAK,EAAE;AACL,OAAC,IAAD,EAAQ,GAAR,EAAW;AACT,aAAK,QAAL,GAAgB,CAAC,CAAC,GAAlB;AACD,OAHI;;AAIL,MAAA,QAAQ,CAAE,GAAF,EAAK;AACX,SAAC,CAAC,GAAF,KAAU,KAAK,IAAL,CAAV,IAAwB,KAAK,KAAL,CAAW,KAAX,EAAkB,GAAlB,CAAxB;AACD;;AANI;AAZc,GAAD,CAAtB;AAqBD;AAED;;AACA,MAAM,UAAU,GAAG,OAAO,EAA1B;AAEA,eAAe,UAAf","sourcesContent":["import { defineComponent, Component } from 'vue'\n\nexport type Toggleable<T extends string = 'value'> = Component<Vue & { isActive: boolean } & Record<T, any>>\n\nexport function factory<T extends string = 'value'> (prop?: T, event?: string): Toggleable<T>\nexport function factory (prop = 'modelValue', event = 'update:modelValue') {\n return defineComponent({\n name: 'toggleable',\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n"],"sourceRoot":"","file":"index.js"}
@@ -26,18 +26,57 @@ export function getContainer(container) {
26
26
  }
27
27
 
28
28
  function type(el) {
29
- return el == null ? el : el.constructor.name;
29
+ var _a;
30
+
31
+ if (el == null) return el; // Vue 3 component detection
32
+
33
+ if (isVue3Component(el)) return 'VueComponent';
34
+ return ((_a = el.constructor) === null || _a === void 0 ? void 0 : _a.name) || 'Unknown';
35
+ } // Helper function to detect Vue 3 component instances
36
+
37
+
38
+ function isVue3Component(el) {
39
+ // Check for Vue 3 component instance properties
40
+ return !!(el && ( // Direct component instance with $el
41
+ el.$el || // Component instance with appContext (Vue 3 runtime)
42
+ el.appContext || // Component proxy with type property (from Vue Test Utils)
43
+ el.type && (el.type.name || el.type.__name) || // Component with setupState (Composition API)
44
+ el.setupState || // Component with ctx property (internal Vue 3)
45
+ el.ctx && el.ctx.type));
30
46
  }
31
47
 
32
48
  function $(el) {
33
49
  if (typeof el === 'string') {
34
50
  return document.querySelector(el);
35
- } else if (el && el._isVue) {
36
- return el.$el;
37
51
  } else if (el instanceof HTMLElement) {
38
52
  return el;
53
+ } else if (isVue3Component(el)) {
54
+ return extractElementFromVue3Component(el);
39
55
  } else {
40
56
  return null;
41
57
  }
58
+ } // Helper function to extract HTMLElement from Vue 3 component
59
+
60
+
61
+ function extractElementFromVue3Component(component) {
62
+ var _a, _b, _c;
63
+
64
+ if (component.$el instanceof HTMLElement) {
65
+ return component.$el;
66
+ }
67
+
68
+ if (component.element instanceof HTMLElement) {
69
+ return component.element;
70
+ }
71
+
72
+ if (((_b = (_a = component.ctx) === null || _a === void 0 ? void 0 : _a.vnode) === null || _b === void 0 ? void 0 : _b.el) instanceof HTMLElement) {
73
+ return component.ctx.vnode.el;
74
+ }
75
+
76
+ if (((_c = component.vnode) === null || _c === void 0 ? void 0 : _c.el) instanceof HTMLElement) {
77
+ return component.vnode.el;
78
+ }
79
+
80
+ return null;
42
81
  }
43
82
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/goto/util.ts"],"names":[],"mappings":"AAEA;AACA,OAAM,SAAU,SAAV,CAAqB,MAArB,EAAgC;AACpC,MAAI,OAAO,MAAP,KAAkB,QAAtB,EAAgC;AAC9B,WAAO,MAAP;AACD;;AAED,MAAI,EAAE,GAAG,CAAC,CAAC,MAAD,CAAV;;AAEA,MAAI,CAAC,EAAL,EAAS;AACP,UAAM,OAAO,MAAP,KAAkB,QAAlB,GACF,IAAI,KAAJ,CAAU,mBAAmB,MAAM,cAAnC,CADE,GAEF,IAAI,SAAJ,CAAc,uEAAuE,IAAI,CAAC,MAAD,CAAQ,WAAjG,CAFJ;AAGD;;AAED,MAAI,WAAW,GAAG,CAAlB;;AACA,SAAO,EAAP,EAAW;AACT,IAAA,WAAW,IAAI,EAAE,CAAC,SAAlB;AACA,IAAA,EAAE,GAAG,EAAE,CAAC,YAAR;AACD;;AAED,SAAO,WAAP;AACD;AAED,OAAM,SAAU,YAAV,CAAwB,SAAxB,EAAsC;AAC1C,QAAM,EAAE,GAAG,CAAC,CAAC,SAAD,CAAZ;AAEA,MAAI,EAAJ,EAAQ,OAAO,EAAP;AAER,QAAM,OAAO,SAAP,KAAqB,QAArB,GACF,IAAI,KAAJ,CAAU,sBAAsB,SAAS,cAAzC,CADE,GAEF,IAAI,SAAJ,CAAc,mEAAmE,IAAI,CAAC,SAAD,CAAW,WAAhG,CAFJ;AAGD;;AAED,SAAS,IAAT,CAAe,EAAf,EAAsB;AACpB,SAAO,EAAE,IAAI,IAAN,GAAa,EAAb,GAAkB,EAAE,CAAC,WAAH,CAAe,IAAxC;AACD;;AAED,SAAS,CAAT,CAAY,EAAZ,EAAmB;AACjB,MAAI,OAAO,EAAP,KAAc,QAAlB,EAA4B;AAC1B,WAAO,QAAQ,CAAC,aAAT,CAAoC,EAApC,CAAP;AACD,GAFD,MAEO,IAAI,EAAE,IAAI,EAAE,CAAC,MAAb,EAAqB;AAC1B,WAAQ,EAAU,CAAC,GAAnB;AACD,GAFM,MAEA,IAAI,EAAE,YAAY,WAAlB,EAA+B;AACpC,WAAO,EAAP;AACD,GAFM,MAEA;AACL,WAAO,IAAP;AACD;AACF","sourcesContent":["import Vue from 'vue'\n\n// Return target's cumulative offset from the top\nexport function getOffset (target: any): number {\n if (typeof target === 'number') {\n return target\n }\n\n let el = $(target)\n\n if (!el) {\n throw typeof target === 'string'\n ? new Error(`Target element \"${target}\" not found.`)\n : new TypeError(`Target must be a Number/Selector/HTMLElement/VueComponent, received ${type(target)} instead.`)\n }\n\n let totalOffset = 0\n while (el) {\n totalOffset += el.offsetTop\n el = el.offsetParent as HTMLElement\n }\n\n return totalOffset\n}\n\nexport function getContainer (container: any): HTMLElement {\n const el = $(container)\n\n if (el) return el\n\n throw typeof container === 'string'\n ? new Error(`Container element \"${container}\" not found.`)\n : new TypeError(`Container must be a Selector/HTMLElement/VueComponent, received ${type(container)} instead.`)\n}\n\nfunction type (el: any) {\n return el == null ? el : el.constructor.name\n}\n\nfunction $ (el: any): HTMLElement | null {\n if (typeof el === 'string') {\n return document.querySelector<HTMLElement>(el)\n } else if (el && el._isVue) {\n return (el as Vue).$el as HTMLElement\n } else if (el instanceof HTMLElement) {\n return el\n } else {\n return null\n }\n}\n"],"sourceRoot":"","file":"util.js"}
1
+ {"version":3,"sources":["../../../src/services/goto/util.ts"],"names":[],"mappings":"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","sourcesContent":["// Return target's cumulative offset from the top\nexport function getOffset (target: any): number {\n if (typeof target === 'number') {\n return target\n }\n\n let el = $(target)\n\n if (!el) {\n throw typeof target === 'string'\n ? new Error(`Target element \"${target}\" not found.`)\n : new TypeError(`Target must be a Number/Selector/HTMLElement/VueComponent, received ${type(target)} instead.`)\n }\n\n let totalOffset = 0\n while (el) {\n totalOffset += el.offsetTop\n el = el.offsetParent as HTMLElement\n }\n\n return totalOffset\n}\n\nexport function getContainer (container: any): HTMLElement {\n const el = $(container)\n\n if (el) return el\n\n throw typeof container === 'string'\n ? new Error(`Container element \"${container}\" not found.`)\n : new TypeError(`Container must be a Selector/HTMLElement/VueComponent, received ${type(container)} instead.`)\n}\n\nfunction type (el: any) {\n if (el == null) return el\n // Vue 3 component detection\n if (isVue3Component(el)) return 'VueComponent'\n return el.constructor?.name || 'Unknown'\n}\n\n// Helper function to detect Vue 3 component instances\nfunction isVue3Component (el: any): boolean {\n // Check for Vue 3 component instance properties\n return !!(el && (\n // Direct component instance with $el\n el.$el ||\n // Component instance with appContext (Vue 3 runtime)\n el.appContext ||\n // Component proxy with type property (from Vue Test Utils)\n (el.type && (el.type.name || el.type.__name)) ||\n // Component with setupState (Composition API)\n el.setupState ||\n // Component with ctx property (internal Vue 3)\n (el.ctx && el.ctx.type)\n ))\n}\n\nfunction $ (el: any): HTMLElement | null {\n if (typeof el === 'string') {\n return document.querySelector<HTMLElement>(el)\n } else if (el instanceof HTMLElement) {\n return el\n } else if (isVue3Component(el)) {\n return extractElementFromVue3Component(el)\n } else {\n return null\n }\n}\n\n// Helper function to extract HTMLElement from Vue 3 component\nfunction extractElementFromVue3Component (component: any): HTMLElement | null {\n if (component.$el instanceof HTMLElement) {\n return component.$el\n }\n\n if (component.element instanceof HTMLElement) {\n return component.element\n }\n\n if (component.ctx?.vnode?.el instanceof HTMLElement) {\n return component.ctx.vnode.el\n }\n\n if (component.vnode?.el instanceof HTMLElement) {\n return component.vnode.el\n }\n\n return null\n}\n"],"sourceRoot":"","file":"util.js"}
@@ -10,7 +10,7 @@ export class Theme extends Service {
10
10
  this.disabled = false;
11
11
  this.isDark = null;
12
12
  this.unwatch = null;
13
- this.vueMeta = null;
13
+ this.metaManager = null;
14
14
  const {
15
15
  dark,
16
16
  disable,
@@ -36,11 +36,8 @@ export class Theme extends Service {
36
36
 
37
37
 
38
38
  set css(val) {
39
- if (this.vueMeta) {
40
- if (this.isVueMeta23) {
41
- this.applyVueMeta23();
42
- }
43
-
39
+ if (this.metaManager) {
40
+ this.applyVueMeta3(val);
44
41
  return;
45
42
  }
46
43
 
@@ -74,21 +71,19 @@ export class Theme extends Service {
74
71
 
75
72
 
76
73
  init(root, ssrContext) {
77
- if (this.disabled) return;
78
- /* istanbul ignore else */
74
+ if (this.disabled) return; // Инициализируем vue-meta 3
75
+
76
+ this.initVueMeta3(root);
79
77
 
80
- if (root.$meta) {
81
- this.initVueMeta(root);
82
- } else if (ssrContext) {
78
+ if (ssrContext) {
83
79
  this.initSSR(ssrContext);
80
+ } else {
81
+ this.initTheme(root);
84
82
  }
85
-
86
- this.initTheme(root);
87
83
  } // Allows for you to set target theme
88
84
 
89
85
 
90
86
  setTheme(theme, value) {
91
- console.log('setTheme');
92
87
  this.themes[theme] = Object.assign(this.themes[theme], value);
93
88
  this.applyTheme();
94
89
  } // Reset theme defaults
@@ -134,52 +129,17 @@ export class Theme extends Service {
134
129
  document.head.appendChild(this.styleEl);
135
130
  }
136
131
 
137
- initVueMeta(root) {
138
- console.log('init vue meta');
139
- this.vueMeta = root.$meta();
140
-
141
- if (this.isVueMeta23) {
142
- // vue-meta needs to apply after mounted()
143
- root.$nextTick(() => {
144
- this.applyVueMeta23();
145
- });
146
- return;
147
- }
148
-
149
- const metaKeyName = typeof this.vueMeta.getOptions === 'function' ? this.vueMeta.getOptions().keyName : 'metaInfo';
150
- const metaInfo = root.$options[metaKeyName] || {};
151
-
152
- root.$options[metaKeyName] = () => {
153
- metaInfo.style = metaInfo.style || [];
154
- const vuetifyStylesheet = metaInfo.style.find(s => s.id === 'vuetify-theme-stylesheet');
155
-
156
- if (!vuetifyStylesheet) {
157
- metaInfo.style.push({
158
- cssText: this.generatedStyles,
159
- type: 'text/css',
160
- id: 'vuetify-theme-stylesheet',
161
- nonce: (this.options || {}).cspNonce
162
- });
163
- } else {
164
- vuetifyStylesheet.cssText = this.generatedStyles;
165
- }
166
-
167
- return metaInfo;
168
- };
132
+ initVueMeta3(root) {
133
+ // Vue Meta 3 теперь работает через плагин, а не через отдельный manager
134
+ // Стили будут добавляться напрямую через useMeta API в компонентах
135
+ // или через обычный DOM API
136
+ this.metaManager = null;
169
137
  }
170
138
 
171
- applyVueMeta23() {
172
- const {
173
- set
174
- } = this.vueMeta.addApp('vuetify');
175
- set({
176
- style: [{
177
- cssText: this.generatedStyles,
178
- type: 'text/css',
179
- id: 'vuetify-theme-stylesheet',
180
- nonce: this.options.cspNonce
181
- }]
182
- });
139
+ applyVueMeta3(css) {
140
+ // Vue Meta 3 больше не использует manager.addMeta API
141
+ // Используем обычный DOM API для обновления стилей
142
+ this.checkOrCreateStyleElement() && (this.styleEl.innerHTML = css);
183
143
  }
184
144
 
185
145
  initSSR(ssrContext) {
@@ -242,12 +202,6 @@ export class Theme extends Service {
242
202
 
243
203
  get parsedTheme() {
244
204
  return ThemeUtils.parse(this.currentTheme || {}, undefined, getNestedValue(this.options, ['variations'], true));
245
- } // Is using v2.3 of vue-meta
246
- // https://github.com/nuxt/vue-meta/releases/tag/v2.3.0
247
-
248
-
249
- get isVueMeta23() {
250
- return typeof this.vueMeta.addApp === 'function';
251
205
  }
252
206
 
253
207
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/theme/index.ts"],"names":[],"mappings":"AAAA;AACA;AACA,SAAS,OAAT,QAAwB,YAAxB,C,CAEA;;AACA,OAAO,KAAK,UAAZ,MAA4B,SAA5B;AACA,SAAS,cAAT,QAA+B,oBAA/B;AAYA,OAAM,MAAO,KAAP,SAAqB,OAArB,CAA4B;AAmBhC,EAAA,WAAA,CAAa,MAAb,EAAkC;AAChC;AAjBK,SAAA,QAAA,GAAW,KAAX;AAUC,SAAA,MAAA,GAAS,IAAT;AAEA,SAAA,OAAA,GAAU,IAAV;AAEA,SAAA,OAAA,GAAU,IAAV;AAKN,UAAM;AACJ,MAAA,IADI;AAEJ,MAAA,OAFI;AAGJ,MAAA,OAHI;AAIJ,MAAA;AAJI,QAKF,MAAM,CAAC,KAAK,CAAC,QAAP,CALV;AAOA,SAAK,IAAL,GAAY,OAAO,CAAC,IAAD,CAAnB;AACA,SAAK,QAAL,GAAgB,KAAK,MAAL,GAAc,MAA9B;AACA,SAAK,OAAL,GAAe,OAAf;;AAEA,QAAI,OAAJ,EAAa;AACX,WAAK,QAAL,GAAgB,IAAhB;AAEA;AACD;;AAED,SAAK,MAAL,GAAc;AACZ,MAAA,IAAI,EAAE,KAAK,WAAL,CAAiB,MAAM,CAAC,IAAxB,EAA8B,IAA9B,CADM;AAEZ,MAAA,KAAK,EAAE,KAAK,WAAL,CAAiB,MAAM,CAAC,KAAxB,EAA+B,KAA/B;AAFK,KAAd;AAID,GA3C+B,CA6ChC;;AACA;;;AACO,MAAH,GAAG,CAAE,GAAF,EAAa;AAClB,QAAI,KAAK,OAAT,EAAkB;AAChB,UAAI,KAAK,WAAT,EAAsB;AACpB,aAAK,cAAL;AACD;;AACD;AACD;;AACD,SAAK,yBAAL,OAAqC,KAAK,OAAL,CAAc,SAAd,GAA0B,GAA/D;AACD;;AAEO,MAAJ,IAAI,CAAE,GAAF,EAAc;AACpB,UAAM,OAAO,GAAG,KAAK,MAArB;AAEA,SAAK,MAAL,GAAc,GAAd,CAHoB,CAIpB;AACA;;AACA,IAAA,OAAO,IAAI,IAAX,IAAmB,KAAK,UAAL,EAAnB;AACD;;AAEO,MAAJ,IAAI,GAAA;AACN,WAAO,OAAO,CAAC,KAAK,MAAN,CAAd;AACD,GApE+B,CAsEhC;AACA;;;AACO,EAAA,UAAU,GAAA;AACf,QAAI,KAAK,QAAT,EAAmB,OAAO,KAAK,QAAL,EAAP;AAEnB,SAAK,GAAL,GAAW,KAAK,eAAhB;AACD;;AAEM,EAAA,QAAQ,GAAA;AACb,SAAK,GAAL,GAAW,EAAX;AACD,GAhF+B,CAkFhC;AACA;AACA;;;AACO,EAAA,IAAI,CAAE,IAAF,EAAa,UAAb,EAA6B;AACtC,QAAI,KAAK,QAAT,EAAmB;AAEnB;;AACA,QAAK,IAAY,CAAC,KAAlB,EAAyB;AACvB,WAAK,WAAL,CAAiB,IAAjB;AACD,KAFD,MAEO,IAAI,UAAJ,EAAgB;AACrB,WAAK,OAAL,CAAa,UAAb;AACD;;AAED,SAAK,SAAL,CAAe,IAAf;AACD,GAhG+B,CAkGhC;;;AACO,EAAA,QAAQ,CAAE,KAAF,EAA2B,KAA3B,EAAwC;AACrD,IAAA,OAAO,CAAC,GAAR,CAAY,UAAZ;AACA,SAAK,MAAL,CAAY,KAAZ,IAAqB,MAAM,CAAC,MAAP,CAAc,KAAK,MAAL,CAAY,KAAZ,CAAd,EAAkC,KAAlC,CAArB;AACA,SAAK,UAAL;AACD,GAvG+B,CAyGhC;;;AACO,EAAA,WAAW,GAAA;AAChB,SAAK,MAAL,CAAY,KAAZ,GAAoB,MAAM,CAAC,MAAP,CAAc,EAAd,EAAkB,KAAK,QAAL,CAAc,KAAhC,CAApB;AACA,SAAK,MAAL,CAAY,IAAZ,GAAmB,MAAM,CAAC,MAAP,CAAc,EAAd,EAAkB,KAAK,QAAL,CAAc,IAAhC,CAAnB;AACA,SAAK,UAAL;AACD,GA9G+B,CAgHhC;;;AACQ,EAAA,yBAAyB,GAAA;AAC/B,SAAK,OAAL,GAAe,QAAQ,CAAC,cAAT,CAAwB,0BAAxB,CAAf;AAEA;;AACA,QAAI,KAAK,OAAT,EAAkB,OAAO,IAAP;AAElB,SAAK,eAAL,GAN+B,CAMR;;AAEvB,WAAO,OAAO,CAAC,KAAK,OAAN,CAAd;AACD;;AAEO,EAAA,WAAW,CACjB,KAAA,GAAsC,EADrB,EAEjB,IAFiB,EAEJ;AAEb,UAAM,YAAY,GAAG,KAAK,MAAL,CAAY,IAAI,GAAG,MAAH,GAAY,OAA5B,CAArB;AAEA,WAAO,MAAM,CAAC,MAAP,CAAc,EAAd,EACL,YADK,EAEL,KAFK,CAAP;AAID,GAtI+B,CAwIhC;AACA;;;AACQ,EAAA,eAAe,GAAA;AACrB;AACA,QAAI,OAAO,QAAP,KAAoB,WAAxB,EAAqC;AAErC;;AACA,SAAK,OAAL,GAAe,QAAQ,CAAC,aAAT,CAAuB,OAAvB,CAAf;AACA,SAAK,OAAL,CAAa,IAAb,GAAoB,UAApB;AACA,SAAK,OAAL,CAAa,EAAb,GAAkB,0BAAlB;;AAEA,QAAI,KAAK,OAAL,CAAa,QAAjB,EAA2B;AACzB,WAAK,OAAL,CAAa,YAAb,CAA0B,OAA1B,EAAmC,KAAK,OAAL,CAAa,QAAhD;AACD;;AAED,IAAA,QAAQ,CAAC,IAAT,CAAc,WAAd,CAA0B,KAAK,OAA/B;AACD;;AAEO,EAAA,WAAW,CAAE,IAAF,EAAW;AAC5B,IAAA,OAAO,CAAC,GAAR,CAAY,eAAZ;AACA,SAAK,OAAL,GAAe,IAAI,CAAC,KAAL,EAAf;;AACA,QAAI,KAAK,WAAT,EAAsB;AACpB;AACA,MAAA,IAAI,CAAC,SAAL,CAAe,MAAK;AAClB,aAAK,cAAL;AACD,OAFD;AAGA;AACD;;AAED,UAAM,WAAW,GAAG,OAAO,KAAK,OAAL,CAAa,UAApB,KAAmC,UAAnC,GAAgD,KAAK,OAAL,CAAa,UAAb,GAA0B,OAA1E,GAAoF,UAAxG;AACA,UAAM,QAAQ,GAAG,IAAI,CAAC,QAAL,CAAc,WAAd,KAA8B,EAA/C;;AAEA,IAAA,IAAI,CAAC,QAAL,CAAc,WAAd,IAA6B,MAAK;AAChC,MAAA,QAAQ,CAAC,KAAT,GAAiB,QAAQ,CAAC,KAAT,IAAkB,EAAnC;AAEA,YAAM,iBAAiB,GAAG,QAAQ,CAAC,KAAT,CAAe,IAAf,CAAqB,CAAD,IAAY,CAAC,CAAC,EAAF,KAAS,0BAAzC,CAA1B;;AAEA,UAAI,CAAC,iBAAL,EAAwB;AACtB,QAAA,QAAQ,CAAC,KAAT,CAAe,IAAf,CAAoB;AAClB,UAAA,OAAO,EAAE,KAAK,eADI;AAElB,UAAA,IAAI,EAAE,UAFY;AAGlB,UAAA,EAAE,EAAE,0BAHc;AAIlB,UAAA,KAAK,EAAE,CAAC,KAAK,OAAL,IAAgB,EAAjB,EAAqB;AAJV,SAApB;AAMD,OAPD,MAOO;AACL,QAAA,iBAAiB,CAAC,OAAlB,GAA4B,KAAK,eAAjC;AACD;;AAED,aAAO,QAAP;AACD,KAjBD;AAkBD;;AAEO,EAAA,cAAc,GAAA;AACpB,UAAM;AAAE,MAAA;AAAF,QAAU,KAAK,OAAL,CAAa,MAAb,CAAoB,SAApB,CAAhB;AAEA,IAAA,GAAG,CAAC;AACF,MAAA,KAAK,EAAE,CAAC;AACN,QAAA,OAAO,EAAE,KAAK,eADR;AAEN,QAAA,IAAI,EAAE,UAFA;AAGN,QAAA,EAAE,EAAE,0BAHE;AAIN,QAAA,KAAK,EAAE,KAAK,OAAL,CAAa;AAJd,OAAD;AADL,KAAD,CAAH;AAQD;;AAEO,EAAA,OAAO,CAAE,UAAF,EAAkB;AAC/B;AACA,UAAM,KAAK,GAAG,KAAK,OAAL,CAAa,QAAb,GAAwB,WAAW,KAAK,OAAL,CAAa,QAAQ,GAAxD,GAA8D,EAA5E;AACA,IAAA,UAAU,CAAC,IAAX,GAAkB,UAAU,CAAC,IAAX,IAAmB,EAArC;AACA,IAAA,UAAU,CAAC,IAAX,IAAmB,uDAAuD,KAAK,IAAI,KAAK,eAAe,UAAvG;AACD;;AAEO,EAAA,SAAS,CAAE,IAAF,EAAW;AAC1B;AACA,QAAI,OAAO,QAAP,KAAoB,WAAxB,EAAqC,OAFX,CAI1B;AACA;;AACA,QAAI,KAAK,OAAT,EAAkB;AAChB,WAAK,OAAL;AACA,WAAK,OAAL,GAAe,IAAf;AACD,KATyB,CAW1B;AACA;AAEA;AACA;AACA;AACA;;;AAGA,SAAK,UAAL;AACD;;AAEe,MAAZ,YAAY,GAAA;AACd,UAAM,MAAM,GAAG,KAAK,IAAL,GAAY,MAAZ,GAAqB,OAApC;AAEA,WAAO,KAAK,MAAL,CAAY,MAAZ,CAAP;AACD;;AAEkB,MAAf,eAAe,GAAA;AACjB,UAAM,KAAK,GAAG,KAAK,WAAnB;AACA;;AACA,UAAM,OAAO,GAAG,KAAK,OAAL,IAAgB,EAAhC;AACA,QAAI,GAAJ;;AAEA,QAAI,OAAO,CAAC,UAAR,IAAsB,IAA1B,EAAgC;AAC9B,MAAA,GAAG,GAAG,OAAO,CAAC,UAAR,CAAmB,GAAnB,CAAuB,KAAvB,CAAN;AACA;;AACA,UAAI,GAAG,IAAI,IAAX,EAAiB,OAAO,GAAP;AAClB;;AAED,IAAA,GAAG,GAAG,UAAU,CAAC,SAAX,CAAqB,KAArB,EAA4B,OAAO,CAAC,gBAApC,CAAN;;AAEA,QAAI,OAAO,CAAC,WAAR,IAAuB,IAA3B,EAAiC;AAC/B,MAAA,GAAG,GAAG,OAAO,CAAC,WAAR,CAAoB,GAApB,CAAN;AACD;;AAED,QAAI,OAAO,CAAC,UAAR,IAAsB,IAA1B,EAAgC;AAC9B,MAAA,OAAO,CAAC,UAAR,CAAmB,GAAnB,CAAuB,KAAvB,EAA8B,GAA9B;AACD;;AAED,WAAO,GAAP;AACD;;AAEc,MAAX,WAAW,GAAA;AACb,WAAO,UAAU,CAAC,KAAX,CACL,KAAK,YAAL,IAAqB,EADhB,EAEL,SAFK,EAGL,cAAc,CAAC,KAAK,OAAN,EAAe,CAAC,YAAD,CAAf,EAA+B,IAA/B,CAHT,CAAP;AAKD,GA5Q+B,CA8QhC;AACA;;;AACuB,MAAX,WAAW,GAAA;AACrB,WAAO,OAAO,KAAK,OAAL,CAAa,MAApB,KAA+B,UAAtC;AACD;;AAlR+B;AACzB,KAAA,CAAA,QAAA,GAAoB,OAApB","sourcesContent":["/* eslint-disable no-multi-spaces */\n// Extensions\nimport { Service } from '../service'\n\n// Utilities\nimport * as ThemeUtils from './utils'\nimport { getNestedValue } from '../../util/helpers'\n\n// Types\nimport {App, reactive} from 'vue'\nimport { VuetifyPreset } from 'vuetify/types/services/presets'\nimport {\n VuetifyParsedTheme,\n VuetifyThemes,\n VuetifyThemeVariant,\n Theme as ITheme,\n} from 'vuetify/types/services/theme'\n\nexport class Theme extends Service {\n static property: 'theme' = 'theme'\n\n public disabled = false\n\n public options: ITheme['options']\n\n public styleEl?: HTMLStyleElement\n\n public themes: VuetifyThemes\n\n public defaults: VuetifyThemes\n\n private isDark = null as boolean | null\n\n private unwatch = null as (() => void) | null\n\n private vueMeta = null as any | null\n\n constructor (preset: VuetifyPreset) {\n super()\n\n const {\n dark,\n disable,\n options,\n themes,\n } = preset[Theme.property]\n\n this.dark = Boolean(dark)\n this.defaults = this.themes = themes\n this.options = options\n\n if (disable) {\n this.disabled = true\n\n return\n }\n\n this.themes = {\n dark: this.fillVariant(themes.dark, true),\n light: this.fillVariant(themes.light, false),\n }\n }\n\n // When setting css, check for element and apply new values\n /* eslint-disable-next-line accessor-pairs */\n set css (val: string) {\n if (this.vueMeta) {\n if (this.isVueMeta23) {\n this.applyVueMeta23()\n }\n return\n }\n this.checkOrCreateStyleElement() && (this.styleEl!.innerHTML = val)\n }\n\n set dark (val: boolean) {\n const oldDark = this.isDark\n\n this.isDark = val\n // Only apply theme after dark\n // has already been set before\n oldDark != null && this.applyTheme()\n }\n\n get dark () {\n return Boolean(this.isDark)\n }\n\n // Apply current theme default\n // only called on client side\n public applyTheme (): void {\n if (this.disabled) return this.clearCss()\n\n this.css = this.generatedStyles\n }\n\n public clearCss (): void {\n this.css = ''\n }\n\n // Initialize theme for SSR and SPA\n // Attach to ssrContext head or\n // apply new theme to document\n public init (root: App, ssrContext?: any): void {\n if (this.disabled) return\n\n /* istanbul ignore else */\n if ((root as any).$meta) {\n this.initVueMeta(root)\n } else if (ssrContext) {\n this.initSSR(ssrContext)\n }\n\n this.initTheme(root)\n }\n\n // Allows for you to set target theme\n public setTheme (theme: 'light' | 'dark', value: object) {\n console.log('setTheme')\n this.themes[theme] = Object.assign(this.themes[theme], value)\n this.applyTheme()\n }\n\n // Reset theme defaults\n public resetThemes () {\n this.themes.light = Object.assign({}, this.defaults.light)\n this.themes.dark = Object.assign({}, this.defaults.dark)\n this.applyTheme()\n }\n\n // Check for existence of style element\n private checkOrCreateStyleElement (): boolean {\n this.styleEl = document.getElementById('vuetify-theme-stylesheet') as HTMLStyleElement\n\n /* istanbul ignore next */\n if (this.styleEl) return true\n\n this.genStyleElement() // If doesn't have it, create it\n\n return Boolean(this.styleEl)\n }\n\n private fillVariant (\n theme: Partial<VuetifyThemeVariant> = {},\n dark: boolean\n ): VuetifyThemeVariant {\n const defaultTheme = this.themes[dark ? 'dark' : 'light']\n\n return Object.assign({},\n defaultTheme,\n theme\n )\n }\n\n // Generate the style element\n // if applicable\n private genStyleElement (): void {\n /* istanbul ignore if */\n if (typeof document === 'undefined') return\n\n /* istanbul ignore next */\n this.styleEl = document.createElement('style')\n this.styleEl.type = 'text/css'\n this.styleEl.id = 'vuetify-theme-stylesheet'\n\n if (this.options.cspNonce) {\n this.styleEl.setAttribute('nonce', this.options.cspNonce)\n }\n\n document.head.appendChild(this.styleEl)\n }\n\n private initVueMeta (root: any) {\n console.log('init vue meta')\n this.vueMeta = root.$meta()\n if (this.isVueMeta23) {\n // vue-meta needs to apply after mounted()\n root.$nextTick(() => {\n this.applyVueMeta23()\n })\n return\n }\n\n const metaKeyName = typeof this.vueMeta.getOptions === 'function' ? this.vueMeta.getOptions().keyName : 'metaInfo'\n const metaInfo = root.$options[metaKeyName] || {}\n\n root.$options[metaKeyName] = () => {\n metaInfo.style = metaInfo.style || []\n\n const vuetifyStylesheet = metaInfo.style.find((s: any) => s.id === 'vuetify-theme-stylesheet')\n\n if (!vuetifyStylesheet) {\n metaInfo.style.push({\n cssText: this.generatedStyles,\n type: 'text/css',\n id: 'vuetify-theme-stylesheet',\n nonce: (this.options || {}).cspNonce,\n })\n } else {\n vuetifyStylesheet.cssText = this.generatedStyles\n }\n\n return metaInfo\n }\n }\n\n private applyVueMeta23 () {\n const { set } = this.vueMeta.addApp('vuetify')\n\n set({\n style: [{\n cssText: this.generatedStyles,\n type: 'text/css',\n id: 'vuetify-theme-stylesheet',\n nonce: this.options.cspNonce,\n }],\n })\n }\n\n private initSSR (ssrContext?: any) {\n // SSR\n const nonce = this.options.cspNonce ? ` nonce=\"${this.options.cspNonce}\"` : ''\n ssrContext.head = ssrContext.head || ''\n ssrContext.head += `<style type=\"text/css\" id=\"vuetify-theme-stylesheet\"${nonce}>${this.generatedStyles}</style>`\n }\n\n private initTheme (root: App) {\n // Only watch for reactivity on client side\n if (typeof document === 'undefined') return\n\n // If we get here somehow, ensure\n // existing instance is removed\n if (this.unwatch) {\n this.unwatch()\n this.unwatch = null\n }\n\n // TODO: Update to use RFC if merged\n // https://github.com/vuejs/rfcs/blob/advanced-reactivity-api/active-rfcs/0000-advanced-reactivity-api.md\n\n // root.$once('hook:created', () => {\n // const obs = reactive({ themes: this.themes })\n // this.unwatch = root.$watch(() => obs.themes, () => this.applyTheme(), { deep: true })\n // })\n\n\n this.applyTheme()\n }\n\n get currentTheme () {\n const target = this.dark ? 'dark' : 'light'\n\n return this.themes[target]\n }\n\n get generatedStyles (): string {\n const theme = this.parsedTheme\n /* istanbul ignore next */\n const options = this.options || {}\n let css\n\n if (options.themeCache != null) {\n css = options.themeCache.get(theme)\n /* istanbul ignore if */\n if (css != null) return css\n }\n\n css = ThemeUtils.genStyles(theme, options.customProperties)\n\n if (options.minifyTheme != null) {\n css = options.minifyTheme(css)\n }\n\n if (options.themeCache != null) {\n options.themeCache.set(theme, css)\n }\n\n return css\n }\n\n get parsedTheme (): VuetifyParsedTheme {\n return ThemeUtils.parse(\n this.currentTheme || {},\n undefined,\n getNestedValue(this.options, ['variations'], true)\n )\n }\n\n // Is using v2.3 of vue-meta\n // https://github.com/nuxt/vue-meta/releases/tag/v2.3.0\n private get isVueMeta23 (): boolean {\n return typeof this.vueMeta.addApp === 'function'\n }\n}\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/services/theme/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-multi-spaces */\n// Extensions\nimport { Service } from '../service'\n\n// Utilities\nimport * as ThemeUtils from './utils'\nimport { getNestedValue } from '../../util/helpers'\n\n// Types\nimport {App, reactive} from 'vue'\nimport { VuetifyPreset } from 'vuetify/types/services/presets'\nimport {\n VuetifyParsedTheme,\n VuetifyThemes,\n VuetifyThemeVariant,\n Theme as ITheme,\n} from 'vuetify/types/services/theme'\n\n// Vue Meta 3\nimport { createMetaManager, useMeta } from 'vue-meta'\n\nexport class Theme extends Service {\n static property: 'theme' = 'theme'\n\n public disabled = false\n\n public options: ITheme['options']\n\n public styleEl?: HTMLStyleElement\n\n public themes: VuetifyThemes\n\n public defaults: VuetifyThemes\n\n private isDark = null as boolean | null\n\n private unwatch = null as (() => void) | null\n\n private metaManager: any = null\n\n constructor (preset: VuetifyPreset) {\n super()\n\n const {\n dark,\n disable,\n options,\n themes,\n } = preset[Theme.property]\n\n this.dark = Boolean(dark)\n this.defaults = this.themes = themes\n this.options = options\n\n if (disable) {\n this.disabled = true\n\n return\n }\n\n this.themes = {\n dark: this.fillVariant(themes.dark, true),\n light: this.fillVariant(themes.light, false),\n }\n }\n\n // When setting css, check for element and apply new values\n /* eslint-disable-next-line accessor-pairs */\n set css (val: string) {\n if (this.metaManager) {\n this.applyVueMeta3(val)\n return\n }\n this.checkOrCreateStyleElement() && (this.styleEl!.innerHTML = val)\n }\n\n set dark (val: boolean) {\n const oldDark = this.isDark\n\n this.isDark = val\n // Only apply theme after dark\n // has already been set before\n oldDark != null && this.applyTheme()\n }\n\n get dark () {\n return Boolean(this.isDark)\n }\n\n // Apply current theme default\n // only called on client side\n public applyTheme (): void {\n if (this.disabled) return this.clearCss()\n\n this.css = this.generatedStyles\n }\n\n public clearCss (): void {\n this.css = ''\n }\n\n // Initialize theme for SSR and SPA\n // Attach to ssrContext head or\n // apply new theme to document\n public init (root: App, ssrContext?: any): void {\n if (this.disabled) return\n\n // Инициализируем vue-meta 3\n this.initVueMeta3(root)\n\n if (ssrContext) {\n this.initSSR(ssrContext)\n } else {\n this.initTheme(root)\n }\n }\n\n // Allows for you to set target theme\n public setTheme (theme: 'light' | 'dark', value: object) {\n this.themes[theme] = Object.assign(this.themes[theme], value)\n this.applyTheme()\n }\n\n // Reset theme defaults\n public resetThemes () {\n this.themes.light = Object.assign({}, this.defaults.light)\n this.themes.dark = Object.assign({}, this.defaults.dark)\n this.applyTheme()\n }\n\n // Check for existence of style element\n private checkOrCreateStyleElement (): boolean {\n this.styleEl = document.getElementById('vuetify-theme-stylesheet') as HTMLStyleElement\n\n /* istanbul ignore next */\n if (this.styleEl) return true\n\n this.genStyleElement() // If doesn't have it, create it\n\n return Boolean(this.styleEl)\n }\n\n private fillVariant (\n theme: Partial<VuetifyThemeVariant> = {},\n dark: boolean\n ): VuetifyThemeVariant {\n const defaultTheme = this.themes[dark ? 'dark' : 'light']\n\n return Object.assign({},\n defaultTheme,\n theme\n )\n }\n\n // Generate the style element\n // if applicable\n private genStyleElement (): void {\n /* istanbul ignore if */\n if (typeof document === 'undefined') return\n\n /* istanbul ignore next */\n this.styleEl = document.createElement('style')\n this.styleEl.type = 'text/css'\n this.styleEl.id = 'vuetify-theme-stylesheet'\n\n if (this.options.cspNonce) {\n this.styleEl.setAttribute('nonce', this.options.cspNonce)\n }\n\n document.head.appendChild(this.styleEl)\n }\n\n private initVueMeta3 (root: App) {\n // Vue Meta 3 теперь работает через плагин, а не через отдельный manager\n // Стили будут добавляться напрямую через useMeta API в компонентах\n // или через обычный DOM API\n this.metaManager = null\n }\n\n private applyVueMeta3 (css: string) {\n // Vue Meta 3 больше не использует manager.addMeta API\n // Используем обычный DOM API для обновления стилей\n this.checkOrCreateStyleElement() && (this.styleEl!.innerHTML = css)\n }\n\n private initSSR (ssrContext?: any) {\n // SSR\n const nonce = this.options.cspNonce ? ` nonce=\"${this.options.cspNonce}\"` : ''\n ssrContext.head = ssrContext.head || ''\n ssrContext.head += `<style type=\"text/css\" id=\"vuetify-theme-stylesheet\"${nonce}>${this.generatedStyles}</style>`\n }\n\n private initTheme (root: App) {\n // Only watch for reactivity on client side\n if (typeof document === 'undefined') return\n\n // If we get here somehow, ensure\n // existing instance is removed\n if (this.unwatch) {\n this.unwatch()\n this.unwatch = null\n }\n\n // TODO: Update to use RFC if merged\n // https://github.com/vuejs/rfcs/blob/advanced-reactivity-api/active-rfcs/0000-advanced-reactivity-api.md\n\n // root.$once('hook:created', () => {\n // const obs = reactive({ themes: this.themes })\n // this.unwatch = root.$watch(() => obs.themes, () => this.applyTheme(), { deep: true })\n // })\n\n\n this.applyTheme()\n }\n\n get currentTheme () {\n const target = this.dark ? 'dark' : 'light'\n\n return this.themes[target]\n }\n\n get generatedStyles (): string {\n const theme = this.parsedTheme\n /* istanbul ignore next */\n const options = this.options || {}\n let css\n\n if (options.themeCache != null) {\n css = options.themeCache.get(theme)\n /* istanbul ignore if */\n if (css != null) return css\n }\n\n css = ThemeUtils.genStyles(theme, options.customProperties)\n\n if (options.minifyTheme != null) {\n css = options.minifyTheme(css)\n }\n\n if (options.themeCache != null) {\n options.themeCache.set(theme, css)\n }\n\n return css\n }\n\n get parsedTheme (): VuetifyParsedTheme {\n return ThemeUtils.parse(\n this.currentTheme || {},\n undefined,\n getNestedValue(this.options, ['variations'], true)\n )\n }\n\n // Vue Meta 3 больше не нужен isVueMeta23 метод\n}\n"],"sourceRoot":"","file":"index.js"}
@@ -129,23 +129,24 @@ export function mergeClasses(target, source) {
129
129
  return target ? wrapInArray(target).concat(source) : source;
130
130
  }
131
131
  export function mergeListeners(...args) {
132
- if (!args[0]) return args[1];
133
- if (!args[1]) return args[0];
132
+ if (!args[0] && !args[1]) return undefined;
134
133
  const dest = {};
135
134
 
136
135
  for (let i = 2; i--;) {
137
136
  const arg = args[i];
137
+ if (!arg) continue;
138
138
 
139
139
  for (const event in arg) {
140
140
  if (!arg[event]) continue;
141
+ const vueEventName = event.startsWith('on') && event.length > 2 && event.charAt(2) === event.charAt(2).toUpperCase() ? event : `on${event.charAt(0).toUpperCase() + event.slice(1)}`;
141
142
 
142
- if (dest[event]) {
143
+ if (dest[vueEventName]) {
143
144
  // Merge current listeners before (because we are iterating backwards).
144
145
  // Note that neither "target" or "source" must be altered.
145
- dest[event] = [].concat(arg[event], dest[event]);
146
+ dest[vueEventName] = [].concat(arg[event], dest[vueEventName]);
146
147
  } else {
147
148
  // Straight assign.
148
- dest[event] = arg[event];
149
+ dest[vueEventName] = arg[event];
149
150
  }
150
151
  }
151
152
  }