@dimailn/vuetify 2.7.2-alpha2 → 2.7.2-alpha21

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 (328) hide show
  1. package/dist/vuetify.css +45 -45
  2. package/dist/vuetify.css.map +1 -1
  3. package/dist/vuetify.js +490 -349
  4. package/dist/vuetify.js.map +1 -1
  5. package/dist/vuetify.min.css +2 -2
  6. package/dist/vuetify.min.js +2 -2
  7. package/es5/components/VAppBar/VAppBar.js +7 -12
  8. package/es5/components/VAppBar/VAppBar.js.map +1 -1
  9. package/es5/components/VAutocomplete/VAutocomplete.js +10 -7
  10. package/es5/components/VAutocomplete/VAutocomplete.js.map +1 -1
  11. package/es5/components/VCheckbox/VSimpleCheckbox.js +66 -35
  12. package/es5/components/VCheckbox/VSimpleCheckbox.js.map +1 -1
  13. package/es5/components/VColorPicker/VColorPicker.js +6 -6
  14. package/es5/components/VColorPicker/VColorPicker.js.map +1 -1
  15. package/es5/components/VData/VData.js +14 -2
  16. package/es5/components/VData/VData.js.map +1 -1
  17. package/es5/components/VDataIterator/VDataIterator.js +4 -3
  18. package/es5/components/VDataIterator/VDataIterator.js.map +1 -1
  19. package/es5/components/VDataTable/VDataTable.js +2 -2
  20. package/es5/components/VDataTable/VDataTable.js.map +1 -1
  21. package/es5/components/VDataTable/VDataTableHeader.js +4 -3
  22. package/es5/components/VDataTable/VDataTableHeader.js.map +1 -1
  23. package/es5/components/VDataTable/VDataTableHeaderDesktop.js +4 -2
  24. package/es5/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
  25. package/es5/components/VDataTable/VVirtualTable.js +1 -1
  26. package/es5/components/VDataTable/VVirtualTable.js.map +1 -1
  27. package/es5/components/VDataTable/mixins/header.js +1 -1
  28. package/es5/components/VDataTable/mixins/header.js.map +1 -1
  29. package/es5/components/VDatePicker/VDatePicker.js +6 -6
  30. package/es5/components/VDatePicker/VDatePicker.js.map +1 -1
  31. package/es5/components/VDialog/VDialog.js +1 -1
  32. package/es5/components/VDialog/VDialog.js.map +1 -1
  33. package/es5/components/VExpansionPanel/VExpansionPanelContent.js +1 -1
  34. package/es5/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
  35. package/es5/components/VExpansionPanel/VExpansionPanelHeader.js +1 -1
  36. package/es5/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
  37. package/es5/components/VForm/VForm.js +8 -8
  38. package/es5/components/VForm/VForm.js.map +1 -1
  39. package/es5/components/VGrid/VCol.js +3 -3
  40. package/es5/components/VGrid/VCol.js.map +1 -1
  41. package/es5/components/VGrid/VContainer.js +3 -1
  42. package/es5/components/VGrid/VContainer.js.map +1 -1
  43. package/es5/components/VImg/VImg.js +1 -1
  44. package/es5/components/VImg/VImg.js.map +1 -1
  45. package/es5/components/VInput/VInput.js +1 -1
  46. package/es5/components/VInput/VInput.js.map +1 -1
  47. package/es5/components/VItemGroup/VItem.js +17 -18
  48. package/es5/components/VItemGroup/VItem.js.map +1 -1
  49. package/es5/components/VItemGroup/VItemGroup.js +1 -1
  50. package/es5/components/VItemGroup/VItemGroup.js.map +1 -1
  51. package/es5/components/VList/VList.js +1 -1
  52. package/es5/components/VList/VList.js.map +1 -1
  53. package/es5/components/VList/VListGroup.js +12 -15
  54. package/es5/components/VList/VListGroup.js.map +1 -1
  55. package/es5/components/VMenu/VMenu.js +1 -1
  56. package/es5/components/VMenu/VMenu.js.map +1 -1
  57. package/es5/components/VOverlay/VOverlay.js +1 -1
  58. package/es5/components/VOverlay/VOverlay.js.map +1 -1
  59. package/es5/components/VRadioGroup/VRadioGroup.js +5 -5
  60. package/es5/components/VRadioGroup/VRadioGroup.js.map +1 -1
  61. package/es5/components/VRangeSlider/VRangeSlider.js +1 -1
  62. package/es5/components/VRangeSlider/VRangeSlider.js.map +1 -1
  63. package/es5/components/VSelect/VSelect.js +3 -5
  64. package/es5/components/VSelect/VSelect.js.map +1 -1
  65. package/es5/components/VSelect/VSelectList.js +7 -5
  66. package/es5/components/VSelect/VSelectList.js.map +1 -1
  67. package/es5/components/VSparkline/VSparkline.js +6 -6
  68. package/es5/components/VSparkline/VSparkline.js.map +1 -1
  69. package/es5/components/VStepper/VStepperContent.js +1 -1
  70. package/es5/components/VStepper/VStepperContent.js.map +1 -1
  71. package/es5/components/VStepper/VStepperStep.js +1 -1
  72. package/es5/components/VStepper/VStepperStep.js.map +1 -1
  73. package/es5/components/VSubheader/VSubheader.js +3 -3
  74. package/es5/components/VSubheader/VSubheader.js.map +1 -1
  75. package/es5/components/VTabs/VTab.js.map +1 -1
  76. package/es5/components/VTabs/VTabs.js +1 -2
  77. package/es5/components/VTabs/VTabs.js.map +1 -1
  78. package/es5/components/VTextField/VTextField.js +5 -2
  79. package/es5/components/VTextField/VTextField.js.map +1 -1
  80. package/es5/components/VToolbar/VToolbar.js +2 -3
  81. package/es5/components/VToolbar/VToolbar.js.map +1 -1
  82. package/es5/components/VTreeview/VTreeviewNode.js +1 -1
  83. package/es5/components/VTreeview/VTreeviewNode.js.map +1 -1
  84. package/es5/components/transitions/createTransition.js +9 -4
  85. package/es5/components/transitions/createTransition.js.map +1 -1
  86. package/es5/components/transitions/expand-transition.js +8 -7
  87. package/es5/components/transitions/expand-transition.js.map +1 -1
  88. package/es5/directives/intersect/index.js +20 -7
  89. package/es5/directives/intersect/index.js.map +1 -1
  90. package/es5/directives/mutate/index.js +13 -13
  91. package/es5/directives/mutate/index.js.map +1 -1
  92. package/es5/directives/resize/index.js +8 -8
  93. package/es5/directives/resize/index.js.map +1 -1
  94. package/es5/directives/scroll/index.js +10 -9
  95. package/es5/directives/scroll/index.js.map +1 -1
  96. package/es5/directives/touch/index.js +4 -4
  97. package/es5/directives/touch/index.js.map +1 -1
  98. package/es5/framework.js +1 -1
  99. package/es5/install.js +10 -33
  100. package/es5/install.js.map +1 -1
  101. package/es5/mixins/activatable/index.js +9 -4
  102. package/es5/mixins/activatable/index.js.map +1 -1
  103. package/es5/mixins/applicationable/index.js +4 -4
  104. package/es5/mixins/applicationable/index.js.map +1 -1
  105. package/es5/mixins/binds-attrs/index.js +1 -1
  106. package/es5/mixins/binds-attrs/index.js.map +1 -1
  107. package/es5/mixins/detachable/index.js +5 -6
  108. package/es5/mixins/detachable/index.js.map +1 -1
  109. package/es5/mixins/groupable/index.js +1 -1
  110. package/es5/mixins/groupable/index.js.map +1 -1
  111. package/es5/mixins/intersectable/index.js +2 -2
  112. package/es5/mixins/intersectable/index.js.map +1 -1
  113. package/es5/mixins/menuable/index.js +1 -1
  114. package/es5/mixins/menuable/index.js.map +1 -1
  115. package/es5/mixins/overlayable/index.js +5 -4
  116. package/es5/mixins/overlayable/index.js.map +1 -1
  117. package/es5/mixins/proxyable/index.js +0 -4
  118. package/es5/mixins/proxyable/index.js.map +1 -1
  119. package/es5/mixins/selectable/index.js +2 -5
  120. package/es5/mixins/selectable/index.js.map +1 -1
  121. package/es5/mixins/translatable/index.js +1 -1
  122. package/es5/mixins/translatable/index.js.map +1 -1
  123. package/es5/mixins/validatable/index.js +2 -2
  124. package/es5/mixins/validatable/index.js.map +1 -1
  125. package/es5/services/breakpoint/index.js +3 -1
  126. package/es5/services/breakpoint/index.js.map +1 -1
  127. package/es5/util/helpers.js +44 -0
  128. package/es5/util/helpers.js.map +1 -1
  129. package/es5/util/legacyEventsMixin.js +48 -0
  130. package/es5/util/legacyEventsMixin.js.map +1 -0
  131. package/lib/components/VAppBar/VAppBar.js +7 -11
  132. package/lib/components/VAppBar/VAppBar.js.map +1 -1
  133. package/lib/components/VAutocomplete/VAutocomplete.js +11 -8
  134. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  135. package/lib/components/VCheckbox/VSimpleCheckbox.js +72 -36
  136. package/lib/components/VCheckbox/VSimpleCheckbox.js.map +1 -1
  137. package/lib/components/VColorPicker/VColorPicker.js +6 -6
  138. package/lib/components/VColorPicker/VColorPicker.js.map +1 -1
  139. package/lib/components/VData/VData.js +15 -2
  140. package/lib/components/VData/VData.js.map +1 -1
  141. package/lib/components/VDataIterator/VDataIterator.js +4 -3
  142. package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
  143. package/lib/components/VDataTable/VDataTable.js +2 -2
  144. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  145. package/lib/components/VDataTable/VDataTableHeader.js +4 -3
  146. package/lib/components/VDataTable/VDataTableHeader.js.map +1 -1
  147. package/lib/components/VDataTable/VDataTableHeaderDesktop.js +3 -1
  148. package/lib/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
  149. package/lib/components/VDataTable/VVirtualTable.js +1 -1
  150. package/lib/components/VDataTable/VVirtualTable.js.map +1 -1
  151. package/lib/components/VDataTable/mixins/header.js +1 -1
  152. package/lib/components/VDataTable/mixins/header.js.map +1 -1
  153. package/lib/components/VDatePicker/VDatePicker.js +6 -6
  154. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  155. package/lib/components/VDialog/VDialog.js +1 -1
  156. package/lib/components/VDialog/VDialog.js.map +1 -1
  157. package/lib/components/VExpansionPanel/VExpansionPanelContent.js +1 -1
  158. package/lib/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
  159. package/lib/components/VExpansionPanel/VExpansionPanelHeader.js +1 -1
  160. package/lib/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
  161. package/lib/components/VForm/VForm.js +8 -8
  162. package/lib/components/VForm/VForm.js.map +1 -1
  163. package/lib/components/VGrid/VCol.js +3 -3
  164. package/lib/components/VGrid/VCol.js.map +1 -1
  165. package/lib/components/VGrid/VContainer.js +3 -1
  166. package/lib/components/VGrid/VContainer.js.map +1 -1
  167. package/lib/components/VImg/VImg.js +1 -1
  168. package/lib/components/VImg/VImg.js.map +1 -1
  169. package/lib/components/VInput/VInput.js +1 -1
  170. package/lib/components/VInput/VInput.js.map +1 -1
  171. package/lib/components/VItemGroup/VItem.js +20 -18
  172. package/lib/components/VItemGroup/VItem.js.map +1 -1
  173. package/lib/components/VItemGroup/VItemGroup.js +1 -1
  174. package/lib/components/VItemGroup/VItemGroup.js.map +1 -1
  175. package/lib/components/VList/VList.js +1 -1
  176. package/lib/components/VList/VList.js.map +1 -1
  177. package/lib/components/VList/VListGroup.js +11 -15
  178. package/lib/components/VList/VListGroup.js.map +1 -1
  179. package/lib/components/VMenu/VMenu.js +1 -1
  180. package/lib/components/VMenu/VMenu.js.map +1 -1
  181. package/lib/components/VOverlay/VOverlay.js +1 -1
  182. package/lib/components/VOverlay/VOverlay.js.map +1 -1
  183. package/lib/components/VRadioGroup/VRadioGroup.js +5 -7
  184. package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
  185. package/lib/components/VRangeSlider/VRangeSlider.js +1 -1
  186. package/lib/components/VRangeSlider/VRangeSlider.js.map +1 -1
  187. package/lib/components/VSelect/VSelect.js +1 -3
  188. package/lib/components/VSelect/VSelect.js.map +1 -1
  189. package/lib/components/VSelect/VSelectList.js +7 -5
  190. package/lib/components/VSelect/VSelectList.js.map +1 -1
  191. package/lib/components/VSparkline/VSparkline.js +6 -6
  192. package/lib/components/VSparkline/VSparkline.js.map +1 -1
  193. package/lib/components/VStepper/VStepperContent.js +1 -1
  194. package/lib/components/VStepper/VStepperContent.js.map +1 -1
  195. package/lib/components/VStepper/VStepperStep.js +1 -1
  196. package/lib/components/VStepper/VStepperStep.js.map +1 -1
  197. package/lib/components/VSubheader/VSubheader.js +2 -3
  198. package/lib/components/VSubheader/VSubheader.js.map +1 -1
  199. package/lib/components/VTabs/VTab.js.map +1 -1
  200. package/lib/components/VTabs/VTabs.js +1 -2
  201. package/lib/components/VTabs/VTabs.js.map +1 -1
  202. package/lib/components/VTextField/VTextField.js +5 -2
  203. package/lib/components/VTextField/VTextField.js.map +1 -1
  204. package/lib/components/VToolbar/VToolbar.js +4 -3
  205. package/lib/components/VToolbar/VToolbar.js.map +1 -1
  206. package/lib/components/VTreeview/VTreeviewNode.js +1 -1
  207. package/lib/components/VTreeview/VTreeviewNode.js.map +1 -1
  208. package/lib/components/transitions/createTransition.js +1 -1
  209. package/lib/components/transitions/createTransition.js.map +1 -1
  210. package/lib/components/transitions/expand-transition.js +8 -7
  211. package/lib/components/transitions/expand-transition.js.map +1 -1
  212. package/lib/directives/intersect/index.js +20 -7
  213. package/lib/directives/intersect/index.js.map +1 -1
  214. package/lib/directives/mutate/index.js +13 -13
  215. package/lib/directives/mutate/index.js.map +1 -1
  216. package/lib/directives/resize/index.js +8 -8
  217. package/lib/directives/resize/index.js.map +1 -1
  218. package/lib/directives/scroll/index.js +10 -9
  219. package/lib/directives/scroll/index.js.map +1 -1
  220. package/lib/directives/touch/index.js +4 -4
  221. package/lib/directives/touch/index.js.map +1 -1
  222. package/lib/framework.js +1 -1
  223. package/lib/install.js +5 -28
  224. package/lib/install.js.map +1 -1
  225. package/lib/mixins/activatable/index.js +10 -5
  226. package/lib/mixins/activatable/index.js.map +1 -1
  227. package/lib/mixins/applicationable/index.js +4 -4
  228. package/lib/mixins/applicationable/index.js.map +1 -1
  229. package/lib/mixins/binds-attrs/index.js +1 -1
  230. package/lib/mixins/binds-attrs/index.js.map +1 -1
  231. package/lib/mixins/detachable/index.js +6 -7
  232. package/lib/mixins/detachable/index.js.map +1 -1
  233. package/lib/mixins/groupable/index.js +1 -1
  234. package/lib/mixins/groupable/index.js.map +1 -1
  235. package/lib/mixins/intersectable/index.js +2 -2
  236. package/lib/mixins/intersectable/index.js.map +1 -1
  237. package/lib/mixins/menuable/index.js +1 -1
  238. package/lib/mixins/menuable/index.js.map +1 -1
  239. package/lib/mixins/overlayable/index.js +5 -4
  240. package/lib/mixins/overlayable/index.js.map +1 -1
  241. package/lib/mixins/proxyable/index.js +0 -4
  242. package/lib/mixins/proxyable/index.js.map +1 -1
  243. package/lib/mixins/selectable/index.js +2 -5
  244. package/lib/mixins/selectable/index.js.map +1 -1
  245. package/lib/mixins/translatable/index.js +1 -1
  246. package/lib/mixins/translatable/index.js.map +1 -1
  247. package/lib/mixins/validatable/index.js +2 -2
  248. package/lib/mixins/validatable/index.js.map +1 -1
  249. package/lib/services/breakpoint/index.js +3 -1
  250. package/lib/services/breakpoint/index.js.map +1 -1
  251. package/lib/util/helpers.js +42 -0
  252. package/lib/util/helpers.js.map +1 -1
  253. package/lib/util/legacyEventsMixin.js +37 -0
  254. package/lib/util/legacyEventsMixin.js.map +1 -0
  255. package/package.json +1 -1
  256. package/src/components/VAppBar/VAppBar.ts +11 -13
  257. package/src/components/VAutocomplete/VAutocomplete.ts +13 -6
  258. package/src/components/VBottomSheet/VBottomSheet.sass +1 -1
  259. package/src/components/VCheckbox/VSimpleCheckbox.ts +84 -42
  260. package/src/components/VCheckbox/__tests__/VSimpleCheckbox.spec.ts +46 -13
  261. package/src/components/VColorPicker/VColorPicker.ts +6 -6
  262. package/src/components/VData/VData.ts +12 -1
  263. package/src/components/VDataIterator/VDataIterator.ts +5 -3
  264. package/src/components/VDataTable/VDataTable.ts +2 -2
  265. package/src/components/VDataTable/VDataTableHeader.ts +5 -4
  266. package/src/components/VDataTable/VDataTableHeaderDesktop.ts +1 -1
  267. package/src/components/VDataTable/VVirtualTable.ts +1 -1
  268. package/src/components/VDataTable/mixins/header.ts +6 -6
  269. package/src/components/VDatePicker/VDatePicker.ts +6 -6
  270. package/src/components/VDialog/VDialog.ts +1 -1
  271. package/src/components/VExpansionPanel/VExpansionPanelContent.ts +1 -1
  272. package/src/components/VExpansionPanel/VExpansionPanelHeader.ts +1 -1
  273. package/src/components/VForm/VForm.ts +8 -8
  274. package/src/components/VGrid/VCol.ts +2 -2
  275. package/src/components/VGrid/VContainer.ts +1 -1
  276. package/src/components/VImg/VImg.ts +1 -1
  277. package/src/components/VInput/VInput.ts +1 -1
  278. package/src/components/VItemGroup/VItem.ts +25 -23
  279. package/src/components/VItemGroup/VItemGroup.ts +3 -3
  280. package/src/components/VList/VList.ts +1 -1
  281. package/src/components/VList/VListGroup.ts +14 -14
  282. package/src/components/VMenu/VMenu.sass +2 -2
  283. package/src/components/VMenu/VMenu.ts +1 -0
  284. package/src/components/VOverlay/VOverlay.ts +1 -1
  285. package/src/components/VRadioGroup/VRadioGroup.ts +8 -9
  286. package/src/components/VRangeSlider/VRangeSlider.ts +1 -1
  287. package/src/components/VSelect/VSelect.ts +6 -5
  288. package/src/components/VSelect/VSelectList.ts +5 -5
  289. package/src/components/VSnackbar/VSnackbar.sass +2 -2
  290. package/src/components/VSparkline/VSparkline.ts +6 -6
  291. package/src/components/VStepper/VStepperContent.ts +1 -1
  292. package/src/components/VStepper/VStepperStep.ts +1 -1
  293. package/src/components/VSubheader/VSubheader.ts +2 -2
  294. package/src/components/VTabs/VTab.ts +1 -1
  295. package/src/components/VTabs/VTabs.ts +1 -2
  296. package/src/components/VTabs/__tests__/VTab.spec.ts +48 -37
  297. package/src/components/VTabs/__tests__/VTabs.spec.ts +134 -79
  298. package/src/components/VTabs/__tests__/VTabsBar.spec.ts +67 -26
  299. package/src/components/VTabs/__tests__/VTabsSlider.spec.ts +7 -6
  300. package/src/components/VTabs/__tests__/__snapshots__/VTabs.spec.ts.snap +1 -3
  301. package/src/components/VTextField/VTextField.ts +4 -3
  302. package/src/components/VToolbar/VToolbar.ts +4 -5
  303. package/src/components/VTreeview/VTreeviewNode.ts +1 -1
  304. package/src/components/transitions/createTransition.ts +1 -2
  305. package/src/components/transitions/expand-transition.ts +9 -7
  306. package/src/directives/intersect/index.ts +81 -42
  307. package/src/directives/mutate/index.ts +58 -49
  308. package/src/directives/resize/index.ts +33 -14
  309. package/src/directives/scroll/index.ts +36 -20
  310. package/src/directives/touch/index.ts +37 -27
  311. package/src/install.ts +10 -32
  312. package/src/mixins/activatable/index.ts +8 -4
  313. package/src/mixins/applicationable/index.ts +4 -4
  314. package/src/mixins/binds-attrs/index.ts +1 -1
  315. package/src/mixins/detachable/index.ts +7 -6
  316. package/src/mixins/groupable/index.ts +1 -1
  317. package/src/mixins/intersectable/index.ts +2 -2
  318. package/src/mixins/menuable/index.ts +1 -1
  319. package/src/mixins/overlayable/index.ts +4 -5
  320. package/src/mixins/proxyable/index.ts +0 -5
  321. package/src/mixins/selectable/index.ts +3 -7
  322. package/src/mixins/translatable/index.ts +1 -1
  323. package/src/mixins/validatable/index.ts +2 -2
  324. package/src/services/breakpoint/index.ts +5 -0
  325. package/src/styles/generic/_transitions.scss +38 -38
  326. package/src/util/__tests__/helpers.spec.ts +62 -1
  327. package/src/util/helpers.ts +42 -1
  328. package/src/util/legacyEventsMixin.ts +34 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/groupable/index.ts"],"names":[],"mappings":";;;;;;;;AACA;;;;AAeM,SAAU,OAAV,CACJ,SADI,EAEJ,KAFI,EAGJ,MAHI,EAGW;AAEf,SAAO;AACL,IAAA,IAAI,EAAE,WADD;AAGL,IAAA,OAAO,EAAE,yBAAwB,SAAxB,EAAmC,KAAnC,EAA0C,MAA1C,CAHJ;AAIL,IAAA,KAAK,EAAE;AACL,MAAA,WAAW,EAAE;AACX,QAAA,IAAI,EAAE;AADK,OADR;AAIL,MAAA,QAAQ,EAAE;AAJL,KAJF;AAWL,IAAA,IAXK,kBAWD;AACF,aAAO;AACL,QAAA,QAAQ,EAAE;AADL,OAAP;AAGD,KAfI;AAiBL,IAAA,QAAQ,EAAE;AACR,MAAA,YADQ,0BACI;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,YARQ,0BAQI;AACV,YAAI,CAAC,KAAK,YAAV,EAAwB,OAAO,EAAP;AAExB,mCACG,KAAK,YADR,EACuB,KAAK,QAD5B;AAGD;AAdO,KAjBL;AAkCL,IAAA,OAlCK,qBAkCE;AACL,WAAK,SAAL,KAAoB,KAAK,SAAL,EAAwB,QAAxB,CAAiC,IAAjC,CAApB;AACD,KApCI;AAsCL,IAAA,aAtCK,2BAsCQ;AACX,WAAK,SAAL,KAAoB,KAAK,SAAL,EAAwB,UAAxB,CAAmC,IAAnC,CAApB;AACD,KAxCI;AA0CL,IAAA,OAAO,EAAE;AACP,MAAA,MADO,kBACC,CADD,EACU;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,IAAM,SAAS,GAAG,OAAO,CAAC,WAAD,CAAzB;eAEe,S","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 beforeDestroy () {\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":";;;;;;;;AACA;;;;AAeM,SAAU,OAAV,CACJ,SADI,EAEJ,KAFI,EAGJ,MAHI,EAGW;AAEf,SAAO;AACL,IAAA,IAAI,EAAE,WADD;AAGL,IAAA,OAAO,EAAE,yBAAwB,SAAxB,EAAmC,KAAnC,EAA0C,MAA1C,CAHJ;AAIL,IAAA,KAAK,EAAE;AACL,MAAA,WAAW,EAAE;AACX,QAAA,IAAI,EAAE;AADK,OADR;AAIL,MAAA,QAAQ,EAAE;AAJL,KAJF;AAWL,IAAA,IAXK,kBAWD;AACF,aAAO;AACL,QAAA,QAAQ,EAAE;AADL,OAAP;AAGD,KAfI;AAiBL,IAAA,QAAQ,EAAE;AACR,MAAA,YADQ,0BACI;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,YARQ,0BAQI;AACV,YAAI,CAAC,KAAK,YAAV,EAAwB,OAAO,EAAP;AAExB,mCACG,KAAK,YADR,EACuB,KAAK,QAD5B;AAGD;AAdO,KAjBL;AAkCL,IAAA,OAlCK,qBAkCE;AACL,WAAK,SAAL,KAAoB,KAAK,SAAL,EAAwB,QAAxB,CAAiC,IAAjC,CAApB;AACD,KApCI;AAsCL,IAAA,aAtCK,2BAsCQ;AACX,WAAK,SAAL,KAAoB,KAAK,SAAL,EAAwB,UAAxB,CAAmC,IAAnC,CAApB;AACD,KAxCI;AA0CL,IAAA,OAAO,EAAE;AACP,MAAA,MADO,kBACC,CADD,EACU;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,IAAM,SAAS,GAAG,OAAO,CAAC,WAAD,CAAzB;eAEe,S","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"}
@@ -33,11 +33,11 @@ function intersectable(options) {
33
33
  value: this.onObserve
34
34
  }, vnode);
35
35
  },
36
- destroyed: function destroyed() {
36
+ unmounted: function unmounted() {
37
37
  var _getCurrentInstance2 = (0, _vue.getCurrentInstance)(),
38
38
  vnode = _getCurrentInstance2.vnode;
39
39
 
40
- _intersect.default.unbind(this.$el, {
40
+ _intersect.default.unmounted(this.$el, {
41
41
  name: 'intersect',
42
42
  value: this.onObserve
43
43
  }, vnode);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/intersectable/index.ts"],"names":[],"mappings":";;;;;;;AACA;;AAGA;;AAGA;;;;AAPA;AAGA;AAGA;AAGc,SAAU,aAAV,CAAyB,OAAzB,EAAyD;AACrE,SAAO,0BAAgB;AACrB,IAAA,IAAI,EAAE,eADe;AAGrB,IAAA,IAAI,EAAE;AAAA,aAAO;AACX,QAAA,cAAc,EAAE;AADL,OAAP;AAAA,KAHe;AAOrB,IAAA,OAPqB,qBAOd;AAAA,gCACW,8BADX;AAAA,UACE,KADF,uBACE,KADF;;AAEL,yBAAU,OAAV,CAAkB,KAAK,GAAvB,EAA2C;AACzC,QAAA,IAAI,EAAE,WADmC;AAEzC,QAAA,KAAK,EAAE,KAAK;AAF6B,OAA3C,EAGG,KAHH;AAID,KAboB;AAerB,IAAA,SAfqB,uBAeZ;AAAA,iCACS,8BADT;AAAA,UACA,KADA,wBACA,KADA;;AAGP,yBAAU,MAAV,CAAiB,KAAK,GAAtB,EAA0C;AACxC,QAAA,IAAI,EAAE,WADkC;AAExC,QAAA,KAAK,EAAE,KAAK;AAF4B,OAA1C,EAGG,KAHH;AAID,KAtBoB;AAwBrB,IAAA,OAAO,EAAE;AACP,MAAA,SADO,qBACI,OADJ,EAC0C,QAD1C,EAC0E,cAD1E,EACiG;AACtG,aAAK,cAAL,GAAsB,cAAtB;AAEA,YAAI,CAAC,cAAL,EAAqB;;AAErB,aAAK,IAAI,CAAC,GAAG,CAAR,EAAW,MAAM,GAAG,OAAO,CAAC,SAAR,CAAkB,MAA3C,EAAmD,CAAC,GAAG,MAAvD,EAA+D,CAAC,EAAhE,EAAoE;AAClE,cAAM,QAAQ,GAAI,KAAa,OAAO,CAAC,SAAR,CAAkB,CAAlB,CAAb,CAAlB;;AAEA,cAAI,OAAO,QAAP,KAAoB,UAAxB,EAAoC;AAClC,YAAA,QAAQ;AACR;AACD;;AAED,oCAAY,OAAO,CAAC,SAAR,CAAkB,CAAlB,IAAuB,wFAAnC;AACD;AACF;AAhBM;AAxBY,GAAhB,CAAP;AA2CD","sourcesContent":["// Directives\nimport Intersect from '../../directives/intersect'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport {defineComponent, getCurrentInstance} from 'vue'\n\nexport default function intersectable (options: { onVisible: string[] }) {\n return defineComponent({\n name: 'intersectable',\n\n data: () => ({\n isIntersecting: false,\n }),\n\n mounted () {\n const {vnode} = getCurrentInstance()\n Intersect.mounted(this.$el as HTMLElement, {\n name: 'intersect',\n value: this.onObserve,\n }, vnode)\n },\n\n destroyed () {\n const {vnode} = getCurrentInstance()\n\n Intersect.unbind(this.$el as HTMLElement, {\n name: 'intersect',\n value: this.onObserve,\n }, vnode)\n },\n\n methods: {\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isIntersecting = isIntersecting\n\n if (!isIntersecting) return\n\n for (let i = 0, length = options.onVisible.length; i < length; i++) {\n const callback = (this as any)[options.onVisible[i]]\n\n if (typeof callback === 'function') {\n callback()\n continue\n }\n\n consoleWarn(options.onVisible[i] + ' method is not available on the instance but referenced in intersectable mixin options')\n }\n },\n },\n })\n}\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/intersectable/index.ts"],"names":[],"mappings":";;;;;;;AACA;;AAGA;;AAGA;;;;AAPA;AAGA;AAGA;AAGc,SAAU,aAAV,CAAyB,OAAzB,EAAyD;AACrE,SAAO,0BAAgB;AACrB,IAAA,IAAI,EAAE,eADe;AAGrB,IAAA,IAAI,EAAE;AAAA,aAAO;AACX,QAAA,cAAc,EAAE;AADL,OAAP;AAAA,KAHe;AAOrB,IAAA,OAPqB,qBAOd;AAAA,gCACW,8BADX;AAAA,UACE,KADF,uBACE,KADF;;AAEL,yBAAU,OAAV,CAAkB,KAAK,GAAvB,EAA2C;AACzC,QAAA,IAAI,EAAE,WADmC;AAEzC,QAAA,KAAK,EAAE,KAAK;AAF6B,OAA3C,EAGG,KAHH;AAID,KAboB;AAerB,IAAA,SAfqB,uBAeZ;AAAA,iCACS,8BADT;AAAA,UACA,KADA,wBACA,KADA;;AAGP,yBAAU,SAAV,CAAoB,KAAK,GAAzB,EAA6C;AAC3C,QAAA,IAAI,EAAE,WADqC;AAE3C,QAAA,KAAK,EAAE,KAAK;AAF+B,OAA7C,EAGG,KAHH;AAID,KAtBoB;AAwBrB,IAAA,OAAO,EAAE;AACP,MAAA,SADO,qBACI,OADJ,EAC0C,QAD1C,EAC0E,cAD1E,EACiG;AACtG,aAAK,cAAL,GAAsB,cAAtB;AAEA,YAAI,CAAC,cAAL,EAAqB;;AAErB,aAAK,IAAI,CAAC,GAAG,CAAR,EAAW,MAAM,GAAG,OAAO,CAAC,SAAR,CAAkB,MAA3C,EAAmD,CAAC,GAAG,MAAvD,EAA+D,CAAC,EAAhE,EAAoE;AAClE,cAAM,QAAQ,GAAI,KAAa,OAAO,CAAC,SAAR,CAAkB,CAAlB,CAAb,CAAlB;;AAEA,cAAI,OAAO,QAAP,KAAoB,UAAxB,EAAoC;AAClC,YAAA,QAAQ;AACR;AACD;;AAED,oCAAY,OAAO,CAAC,SAAR,CAAkB,CAAlB,IAAuB,wFAAnC;AACD;AACF;AAhBM;AAxBY,GAAhB,CAAP;AA2CD","sourcesContent":["// Directives\nimport Intersect from '../../directives/intersect'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport {defineComponent, getCurrentInstance} from 'vue'\n\nexport default function intersectable (options: { onVisible: string[] }) {\n return defineComponent({\n name: 'intersectable',\n\n data: () => ({\n isIntersecting: false,\n }),\n\n mounted () {\n const {vnode} = getCurrentInstance()\n Intersect.mounted(this.$el as HTMLElement, {\n name: 'intersect',\n value: this.onObserve,\n }, vnode)\n },\n\n unmounted () {\n const {vnode} = getCurrentInstance()\n\n Intersect.unmounted(this.$el as HTMLElement, {\n name: 'intersect',\n value: this.onObserve,\n }, vnode)\n },\n\n methods: {\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isIntersecting = isIntersecting\n\n if (!isIntersecting) return\n\n for (let i = 0, length = options.onVisible.length; i < length; i++) {\n const callback = (this as any)[options.onVisible[i]]\n\n if (typeof callback === 'function') {\n callback()\n continue\n }\n\n consoleWarn(options.onVisible[i] + ' method is not available on the instance but referenced in intersectable mixin options')\n }\n },\n },\n })\n}\n"],"sourceRoot":"","file":"index.js"}
@@ -172,7 +172,7 @@ var _default = baseMixins.extend({
172
172
  window.addEventListener('resize', this.updateDimensions, false);
173
173
  }
174
174
  },
175
- beforeDestroy: function beforeDestroy() {
175
+ beforeUnmount: function beforeUnmount() {
176
176
  if (this.hasWindow) {
177
177
  window.removeEventListener('resize', this.updateDimensions, false);
178
178
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/menuable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Mixins\nimport Stackable from '../stackable'\nimport { factory as positionableFactory } from '../positionable'\nimport Activatable from '../activatable'\nimport Detachable from '../detachable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Stackable,\n positionableFactory(['top', 'right', 'bottom', 'left', 'absolute']),\n Activatable,\n Detachable,\n)\n\ninterface dimensions {\n top: number\n left: number\n bottom: number\n right: number\n width: number\n height: number\n offsetTop: number\n scrollHeight: number\n offsetLeft: number\n}\n\ninterface options extends ExtractVue<typeof baseMixins> {\n attach: boolean | string | Element\n offsetY: boolean\n offsetX: boolean\n dimensions: {\n activator: dimensions\n content: dimensions\n }\n $refs: {\n content: HTMLElement\n activator: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'menuable',\n\n props: {\n allowOverflow: Boolean,\n light: Boolean,\n dark: Boolean,\n maxWidth: {\n type: [Number, String],\n default: 'auto',\n },\n minWidth: [Number, String],\n nudgeBottom: {\n type: [Number, String],\n default: 0,\n },\n nudgeLeft: {\n type: [Number, String],\n default: 0,\n },\n nudgeRight: {\n type: [Number, String],\n default: 0,\n },\n nudgeTop: {\n type: [Number, String],\n default: 0,\n },\n nudgeWidth: {\n type: [Number, String],\n default: 0,\n },\n offsetOverflow: Boolean,\n positionX: {\n type: Number,\n default: null,\n },\n positionY: {\n type: Number,\n default: null,\n },\n zIndex: {\n type: [Number, String],\n default: null,\n },\n },\n\n data: () => ({\n activatorNode: [] as VNode[],\n absoluteX: 0,\n absoluteY: 0,\n activatedBy: null as EventTarget | null,\n activatorFixed: false,\n dimensions: {\n activator: {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: 0,\n height: 0,\n offsetTop: 0,\n scrollHeight: 0,\n offsetLeft: 0,\n },\n content: {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: 0,\n height: 0,\n offsetTop: 0,\n scrollHeight: 0,\n },\n },\n relativeYOffset: 0,\n hasJustFocused: false,\n hasWindow: false,\n inputActivator: false,\n isContentActive: false,\n pageWidth: 0,\n pageYOffset: 0,\n stackClass: 'v-menu__content--active',\n stackMinZIndex: 6,\n }),\n\n computed: {\n isMenuable() {\n return true\n },\n computedLeft () {\n const a = this.dimensions.activator\n const c = this.dimensions.content\n const activatorLeft = (this.attach !== false ? a.offsetLeft : a.left) || 0\n const minWidth = Math.max(a.width, c.width)\n let left = 0\n left += activatorLeft\n if (this.left || (this.$vuetify.rtl && !this.right)) left -= (minWidth - a.width)\n if (this.offsetX) {\n const maxWidth = isNaN(Number(this.maxWidth))\n ? a.width\n : Math.min(a.width, Number(this.maxWidth))\n\n left += this.left ? -maxWidth : a.width\n }\n if (this.nudgeLeft) left -= parseInt(this.nudgeLeft)\n if (this.nudgeRight) left += parseInt(this.nudgeRight)\n\n return left\n },\n computedTop () {\n const a = this.dimensions.activator\n const c = this.dimensions.content\n let top = 0\n\n if (this.top) top += a.height - c.height\n if (this.attach !== false) top += a.offsetTop\n else top += a.top + this.pageYOffset\n if (this.offsetY) top += this.top ? -a.height : a.height\n if (this.nudgeTop) top -= parseInt(this.nudgeTop)\n if (this.nudgeBottom) top += parseInt(this.nudgeBottom)\n\n return top\n },\n hasActivator (): boolean {\n return !!this.$slots.activator || !!this.$slots.activator || !!this.activator || !!this.inputActivator\n },\n absoluteYOffset (): number {\n return this.pageYOffset - this.relativeYOffset\n },\n },\n\n watch: {\n disabled (val) {\n val && this.callDeactivate()\n },\n isActive (val) {\n if (this.disabled) return\n\n val ? this.callActivate() : this.callDeactivate()\n },\n positionX: 'updateDimensions',\n positionY: 'updateDimensions',\n },\n\n beforeMount () {\n this.hasWindow = typeof window !== 'undefined'\n\n if (this.hasWindow) {\n window.addEventListener('resize', this.updateDimensions, false)\n }\n },\n\n beforeDestroy () {\n if (this.hasWindow) {\n window.removeEventListener('resize', this.updateDimensions, false)\n }\n },\n\n methods: {\n absolutePosition () {\n return {\n offsetTop: this.positionY || this.absoluteY,\n offsetLeft: this.positionX || this.absoluteX,\n scrollHeight: 0,\n top: this.positionY || this.absoluteY,\n bottom: this.positionY || this.absoluteY,\n left: this.positionX || this.absoluteX,\n right: this.positionX || this.absoluteX,\n height: 0,\n width: 0,\n }\n },\n activate () {},\n calcLeft (menuWidth: number) {\n return convertToUnit(this.attach !== false\n ? this.computedLeft\n : this.calcXOverflow(this.computedLeft, menuWidth))\n },\n calcTop () {\n return convertToUnit(this.attach !== false\n ? this.computedTop\n : this.calcYOverflow(this.computedTop))\n },\n calcXOverflow (left: number, menuWidth: number) {\n const xOverflow = left + menuWidth - this.pageWidth + 12\n\n if ((!this.left || this.right) && xOverflow > 0) {\n left = Math.max(left - xOverflow, 0)\n } else {\n left = Math.max(left, 12)\n }\n\n return left + this.getOffsetLeft()\n },\n calcYOverflow (top: number) {\n const documentHeight = this.getInnerHeight()\n const toTop = this.absoluteYOffset + documentHeight\n const activator = this.dimensions.activator\n const contentHeight = this.dimensions.content.height\n const totalHeight = top + contentHeight\n const isOverflowing = toTop < totalHeight\n\n // If overflowing bottom and offset\n // TODO: set 'bottom' position instead of 'top'\n if (isOverflowing &&\n this.offsetOverflow &&\n // If we don't have enough room to offset\n // the overflow, don't offset\n activator.top > contentHeight\n ) {\n top = this.pageYOffset + (activator.top - contentHeight)\n // If overflowing bottom\n } else if (isOverflowing && !this.allowOverflow) {\n top = toTop - contentHeight - 12\n // If overflowing top\n } else if (top < this.absoluteYOffset && !this.allowOverflow) {\n top = this.absoluteYOffset + 12\n }\n\n return top < 12 ? 12 : top\n },\n callActivate () {\n if (!this.hasWindow) return\n\n this.activate()\n },\n callDeactivate () {\n this.isContentActive = false\n\n this.deactivate()\n },\n checkForPageYOffset () {\n if (this.hasWindow) {\n this.pageYOffset = this.activatorFixed ? 0 : this.getOffsetTop()\n }\n },\n checkActivatorFixed () {\n if (this.attach !== false) {\n this.activatorFixed = false\n return\n }\n let el = this.getActivator()\n while (el) {\n if (window.getComputedStyle(el).position === 'fixed') {\n this.activatorFixed = true\n return\n }\n el = el.offsetParent as HTMLElement\n }\n this.activatorFixed = false\n },\n deactivate () {},\n genActivatorListeners () {\n const listeners = Activatable.methods.genActivatorListeners.call(this)\n\n const onClick = listeners.onClick\n\n if (onClick) {\n listeners.onClick = (e: MouseEvent & KeyboardEvent & FocusEvent) => {\n if (this.openOnClick) {\n onClick && onClick(e)\n }\n\n this.absoluteX = e.clientX\n this.absoluteY = e.clientY\n }\n }\n\n return listeners\n },\n getInnerHeight () {\n if (!this.hasWindow) return 0\n\n return window.innerHeight ||\n document.documentElement.clientHeight\n },\n getOffsetLeft () {\n if (!this.hasWindow) return 0\n\n return window.pageXOffset ||\n document.documentElement.scrollLeft\n },\n getOffsetTop () {\n if (!this.hasWindow) return 0\n\n return window.pageYOffset ||\n document.documentElement.scrollTop\n },\n getRoundedBoundedClientRect (el: Element) {\n const rect = el.getBoundingClientRect()\n return {\n top: Math.round(rect.top),\n left: Math.round(rect.left),\n bottom: Math.round(rect.bottom),\n right: Math.round(rect.right),\n width: Math.round(rect.width),\n height: Math.round(rect.height),\n }\n },\n measure (el: HTMLElement) {\n if (!el || !this.hasWindow) return null\n\n const rect = this.getRoundedBoundedClientRect(el)\n\n // Account for activator margin\n if (this.attach !== false) {\n const style = window.getComputedStyle(el)\n\n rect.left = parseInt(style.marginLeft!)\n rect.top = parseInt(style.marginTop!)\n }\n\n return rect\n },\n sneakPeek (cb: () => void) {\n requestAnimationFrame(() => {\n const el = this.$refs.content\n\n if (!el || el.style.display !== 'none') {\n cb()\n return\n }\n\n el.style.display = 'inline-block'\n cb()\n el.style.display = 'none'\n })\n },\n startTransition () {\n return new Promise<void>(resolve => requestAnimationFrame(() => {\n this.isContentActive = this.hasJustFocused = this.isActive\n resolve()\n }))\n },\n updateDimensions () {\n this.hasWindow = typeof window !== 'undefined'\n this.checkActivatorFixed()\n this.checkForPageYOffset()\n this.pageWidth = document.documentElement.clientWidth\n\n const dimensions: any = {\n activator: { ...this.dimensions.activator },\n content: { ...this.dimensions.content },\n }\n\n // Activator should already be shown\n if (!this.hasActivator || this.absolute) {\n dimensions.activator = this.absolutePosition()\n } else {\n const activator = this.getActivator()\n if (!activator) return\n\n dimensions.activator = this.measure(activator)\n dimensions.activator.offsetLeft = activator.offsetLeft\n if (this.attach !== false) {\n // account for css padding causing things to not line up\n // this is mostly for v-autocomplete, hopefully it won't break anything\n dimensions.activator.offsetTop = activator.offsetTop\n } else {\n dimensions.activator.offsetTop = 0\n }\n }\n\n // Display and hide to get dimensions\n this.sneakPeek(() => {\n if (this.$refs.content) {\n if (this.$refs.content.offsetParent) {\n const offsetRect = this.getRoundedBoundedClientRect(this.$refs.content.offsetParent)\n\n this.relativeYOffset = window.pageYOffset + offsetRect.top\n dimensions.activator.top -= this.relativeYOffset\n dimensions.activator.left -= window.pageXOffset + offsetRect.left\n }\n\n dimensions.content = this.measure(this.$refs.content)\n }\n\n this.dimensions = dimensions\n })\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/menuable/index.ts"],"names":[],"mappings":";;;;;;;AACA;;AACA;;AACA;;AACA;;AAGA;;AACA;;;;;;;;;;AAKA,IAAM,UAAU,GAAG,qBACjB,kBADiB,EAEjB,2BAAoB,CAAC,KAAD,EAAQ,OAAR,EAAiB,QAAjB,EAA2B,MAA3B,EAAmC,UAAnC,CAApB,CAFiB,EAGjB,oBAHiB,EAIjB,mBAJiB,CAAnB;AAiCA;;eACe,UAAU,CAAC,MAAX,CAAkB;AAC/B,EAAA,IAAI,EAAE,UADyB;AAG/B,EAAA,KAAK,EAAE;AACL,IAAA,aAAa,EAAE,OADV;AAEL,IAAA,KAAK,EAAE,OAFF;AAGL,IAAA,IAAI,EAAE,OAHD;AAIL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADE;AAER,MAAA,OAAO,EAAE;AAFD,KAJL;AAQL,IAAA,QAAQ,EAAE,CAAC,MAAD,EAAS,MAAT,CARL;AASL,IAAA,WAAW,EAAE;AACX,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADK;AAEX,MAAA,OAAO,EAAE;AAFE,KATR;AAaL,IAAA,SAAS,EAAE;AACT,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADG;AAET,MAAA,OAAO,EAAE;AAFA,KAbN;AAiBL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADI;AAEV,MAAA,OAAO,EAAE;AAFC,KAjBP;AAqBL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADE;AAER,MAAA,OAAO,EAAE;AAFD,KArBL;AAyBL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADI;AAEV,MAAA,OAAO,EAAE;AAFC,KAzBP;AA6BL,IAAA,cAAc,EAAE,OA7BX;AA8BL,IAAA,SAAS,EAAE;AACT,MAAA,IAAI,EAAE,MADG;AAET,MAAA,OAAO,EAAE;AAFA,KA9BN;AAkCL,IAAA,SAAS,EAAE;AACT,MAAA,IAAI,EAAE,MADG;AAET,MAAA,OAAO,EAAE;AAFA,KAlCN;AAsCL,IAAA,MAAM,EAAE;AACN,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADA;AAEN,MAAA,OAAO,EAAE;AAFH;AAtCH,GAHwB;AA+C/B,EAAA,IAAI,EAAE;AAAA,WAAO;AACX,MAAA,aAAa,EAAE,EADJ;AAEX,MAAA,SAAS,EAAE,CAFA;AAGX,MAAA,SAAS,EAAE,CAHA;AAIX,MAAA,WAAW,EAAE,IAJF;AAKX,MAAA,cAAc,EAAE,KALL;AAMX,MAAA,UAAU,EAAE;AACV,QAAA,SAAS,EAAE;AACT,UAAA,GAAG,EAAE,CADI;AAET,UAAA,IAAI,EAAE,CAFG;AAGT,UAAA,MAAM,EAAE,CAHC;AAIT,UAAA,KAAK,EAAE,CAJE;AAKT,UAAA,KAAK,EAAE,CALE;AAMT,UAAA,MAAM,EAAE,CANC;AAOT,UAAA,SAAS,EAAE,CAPF;AAQT,UAAA,YAAY,EAAE,CARL;AAST,UAAA,UAAU,EAAE;AATH,SADD;AAYV,QAAA,OAAO,EAAE;AACP,UAAA,GAAG,EAAE,CADE;AAEP,UAAA,IAAI,EAAE,CAFC;AAGP,UAAA,MAAM,EAAE,CAHD;AAIP,UAAA,KAAK,EAAE,CAJA;AAKP,UAAA,KAAK,EAAE,CALA;AAMP,UAAA,MAAM,EAAE,CAND;AAOP,UAAA,SAAS,EAAE,CAPJ;AAQP,UAAA,YAAY,EAAE;AARP;AAZC,OAND;AA6BX,MAAA,eAAe,EAAE,CA7BN;AA8BX,MAAA,cAAc,EAAE,KA9BL;AA+BX,MAAA,SAAS,EAAE,KA/BA;AAgCX,MAAA,cAAc,EAAE,KAhCL;AAiCX,MAAA,eAAe,EAAE,KAjCN;AAkCX,MAAA,SAAS,EAAE,CAlCA;AAmCX,MAAA,WAAW,EAAE,CAnCF;AAoCX,MAAA,UAAU,EAAE,yBApCD;AAqCX,MAAA,cAAc,EAAE;AArCL,KAAP;AAAA,GA/CyB;AAuF/B,EAAA,QAAQ,EAAE;AACR,IAAA,UADQ,wBACE;AACR,aAAO,IAAP;AACD,KAHO;AAIR,IAAA,YAJQ,0BAII;AACV,UAAM,CAAC,GAAG,KAAK,UAAL,CAAgB,SAA1B;AACA,UAAM,CAAC,GAAG,KAAK,UAAL,CAAgB,OAA1B;AACA,UAAM,aAAa,GAAG,CAAC,KAAK,MAAL,KAAgB,KAAhB,GAAwB,CAAC,CAAC,UAA1B,GAAuC,CAAC,CAAC,IAA1C,KAAmD,CAAzE;AACA,UAAM,QAAQ,GAAG,IAAI,CAAC,GAAL,CAAS,CAAC,CAAC,KAAX,EAAkB,CAAC,CAAC,KAApB,CAAjB;AACA,UAAI,IAAI,GAAG,CAAX;AACA,MAAA,IAAI,IAAI,aAAR;AACA,UAAI,KAAK,IAAL,IAAc,KAAK,QAAL,CAAc,GAAd,IAAqB,CAAC,KAAK,KAA7C,EAAqD,IAAI,IAAK,QAAQ,GAAG,CAAC,CAAC,KAAtB;;AACrD,UAAI,KAAK,OAAT,EAAkB;AAChB,YAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,QAAN,CAAP,CAAL,GACb,CAAC,CAAC,KADW,GAEb,IAAI,CAAC,GAAL,CAAS,CAAC,CAAC,KAAX,EAAkB,MAAM,CAAC,KAAK,QAAN,CAAxB,CAFJ;AAIA,QAAA,IAAI,IAAI,KAAK,IAAL,GAAY,CAAC,QAAb,GAAwB,CAAC,CAAC,KAAlC;AACD;;AACD,UAAI,KAAK,SAAT,EAAoB,IAAI,IAAI,QAAQ,CAAC,KAAK,SAAN,CAAhB;AACpB,UAAI,KAAK,UAAT,EAAqB,IAAI,IAAI,QAAQ,CAAC,KAAK,UAAN,CAAhB;AAErB,aAAO,IAAP;AACD,KAvBO;AAwBR,IAAA,WAxBQ,yBAwBG;AACT,UAAM,CAAC,GAAG,KAAK,UAAL,CAAgB,SAA1B;AACA,UAAM,CAAC,GAAG,KAAK,UAAL,CAAgB,OAA1B;AACA,UAAI,GAAG,GAAG,CAAV;AAEA,UAAI,KAAK,GAAT,EAAc,GAAG,IAAI,CAAC,CAAC,MAAF,GAAW,CAAC,CAAC,MAApB;AACd,UAAI,KAAK,MAAL,KAAgB,KAApB,EAA2B,GAAG,IAAI,CAAC,CAAC,SAAT,CAA3B,KACK,GAAG,IAAI,CAAC,CAAC,GAAF,GAAQ,KAAK,WAApB;AACL,UAAI,KAAK,OAAT,EAAkB,GAAG,IAAI,KAAK,GAAL,GAAW,CAAC,CAAC,CAAC,MAAd,GAAuB,CAAC,CAAC,MAAhC;AAClB,UAAI,KAAK,QAAT,EAAmB,GAAG,IAAI,QAAQ,CAAC,KAAK,QAAN,CAAf;AACnB,UAAI,KAAK,WAAT,EAAsB,GAAG,IAAI,QAAQ,CAAC,KAAK,WAAN,CAAf;AAEtB,aAAO,GAAP;AACD,KArCO;AAsCR,IAAA,YAtCQ,0BAsCI;AACV,aAAO,CAAC,CAAC,KAAK,MAAL,CAAY,SAAd,IAA2B,CAAC,CAAC,KAAK,MAAL,CAAY,SAAzC,IAAsD,CAAC,CAAC,KAAK,SAA7D,IAA0E,CAAC,CAAC,KAAK,cAAxF;AACD,KAxCO;AAyCR,IAAA,eAzCQ,6BAyCO;AACb,aAAO,KAAK,WAAL,GAAmB,KAAK,eAA/B;AACD;AA3CO,GAvFqB;AAqI/B,EAAA,KAAK,EAAE;AACL,IAAA,QADK,oBACK,GADL,EACQ;AACX,MAAA,GAAG,IAAI,KAAK,cAAL,EAAP;AACD,KAHI;AAIL,IAAA,QAJK,oBAIK,GAJL,EAIQ;AACX,UAAI,KAAK,QAAT,EAAmB;AAEnB,MAAA,GAAG,GAAG,KAAK,YAAL,EAAH,GAAyB,KAAK,cAAL,EAA5B;AACD,KARI;AASL,IAAA,SAAS,EAAE,kBATN;AAUL,IAAA,SAAS,EAAE;AAVN,GArIwB;AAkJ/B,EAAA,WAlJ+B,yBAkJpB;AACT,SAAK,SAAL,GAAiB,OAAO,MAAP,KAAkB,WAAnC;;AAEA,QAAI,KAAK,SAAT,EAAoB;AAClB,MAAA,MAAM,CAAC,gBAAP,CAAwB,QAAxB,EAAkC,KAAK,gBAAvC,EAAyD,KAAzD;AACD;AACF,GAxJ8B;AA0J/B,EAAA,aA1J+B,2BA0JlB;AACX,QAAI,KAAK,SAAT,EAAoB;AAClB,MAAA,MAAM,CAAC,mBAAP,CAA2B,QAA3B,EAAqC,KAAK,gBAA1C,EAA4D,KAA5D;AACD;AACF,GA9J8B;AAgK/B,EAAA,OAAO,EAAE;AACP,IAAA,gBADO,8BACS;AACd,aAAO;AACL,QAAA,SAAS,EAAE,KAAK,SAAL,IAAkB,KAAK,SAD7B;AAEL,QAAA,UAAU,EAAE,KAAK,SAAL,IAAkB,KAAK,SAF9B;AAGL,QAAA,YAAY,EAAE,CAHT;AAIL,QAAA,GAAG,EAAE,KAAK,SAAL,IAAkB,KAAK,SAJvB;AAKL,QAAA,MAAM,EAAE,KAAK,SAAL,IAAkB,KAAK,SAL1B;AAML,QAAA,IAAI,EAAE,KAAK,SAAL,IAAkB,KAAK,SANxB;AAOL,QAAA,KAAK,EAAE,KAAK,SAAL,IAAkB,KAAK,SAPzB;AAQL,QAAA,MAAM,EAAE,CARH;AASL,QAAA,KAAK,EAAE;AATF,OAAP;AAWD,KAbM;AAcP,IAAA,QAdO,sBAcC,CAAM,CAdP;AAeP,IAAA,QAfO,oBAeG,SAfH,EAeoB;AACzB,aAAO,4BAAc,KAAK,MAAL,KAAgB,KAAhB,GACjB,KAAK,YADY,GAEjB,KAAK,aAAL,CAAmB,KAAK,YAAxB,EAAsC,SAAtC,CAFG,CAAP;AAGD,KAnBM;AAoBP,IAAA,OApBO,qBAoBA;AACL,aAAO,4BAAc,KAAK,MAAL,KAAgB,KAAhB,GACjB,KAAK,WADY,GAEjB,KAAK,aAAL,CAAmB,KAAK,WAAxB,CAFG,CAAP;AAGD,KAxBM;AAyBP,IAAA,aAzBO,yBAyBQ,IAzBR,EAyBsB,SAzBtB,EAyBuC;AAC5C,UAAM,SAAS,GAAG,IAAI,GAAG,SAAP,GAAmB,KAAK,SAAxB,GAAoC,EAAtD;;AAEA,UAAI,CAAC,CAAC,KAAK,IAAN,IAAc,KAAK,KAApB,KAA8B,SAAS,GAAG,CAA9C,EAAiD;AAC/C,QAAA,IAAI,GAAG,IAAI,CAAC,GAAL,CAAS,IAAI,GAAG,SAAhB,EAA2B,CAA3B,CAAP;AACD,OAFD,MAEO;AACL,QAAA,IAAI,GAAG,IAAI,CAAC,GAAL,CAAS,IAAT,EAAe,EAAf,CAAP;AACD;;AAED,aAAO,IAAI,GAAG,KAAK,aAAL,EAAd;AACD,KAnCM;AAoCP,IAAA,aApCO,yBAoCQ,GApCR,EAoCmB;AACxB,UAAM,cAAc,GAAG,KAAK,cAAL,EAAvB;AACA,UAAM,KAAK,GAAG,KAAK,eAAL,GAAuB,cAArC;AACA,UAAM,SAAS,GAAG,KAAK,UAAL,CAAgB,SAAlC;AACA,UAAM,aAAa,GAAG,KAAK,UAAL,CAAgB,OAAhB,CAAwB,MAA9C;AACA,UAAM,WAAW,GAAG,GAAG,GAAG,aAA1B;AACA,UAAM,aAAa,GAAG,KAAK,GAAG,WAA9B,CANwB,CAQxB;AACA;;AACA,UAAI,aAAa,IACf,KAAK,cADH,IAEF;AACA;AACA,MAAA,SAAS,CAAC,GAAV,GAAgB,aAJlB,EAKE;AACA,QAAA,GAAG,GAAG,KAAK,WAAL,IAAoB,SAAS,CAAC,GAAV,GAAgB,aAApC,CAAN,CADA,CAEF;AACC,OARD,MAQO,IAAI,aAAa,IAAI,CAAC,KAAK,aAA3B,EAA0C;AAC/C,QAAA,GAAG,GAAG,KAAK,GAAG,aAAR,GAAwB,EAA9B,CAD+C,CAEjD;AACC,OAHM,MAGA,IAAI,GAAG,GAAG,KAAK,eAAX,IAA8B,CAAC,KAAK,aAAxC,EAAuD;AAC5D,QAAA,GAAG,GAAG,KAAK,eAAL,GAAuB,EAA7B;AACD;;AAED,aAAO,GAAG,GAAG,EAAN,GAAW,EAAX,GAAgB,GAAvB;AACD,KA9DM;AA+DP,IAAA,YA/DO,0BA+DK;AACV,UAAI,CAAC,KAAK,SAAV,EAAqB;AAErB,WAAK,QAAL;AACD,KAnEM;AAoEP,IAAA,cApEO,4BAoEO;AACZ,WAAK,eAAL,GAAuB,KAAvB;AAEA,WAAK,UAAL;AACD,KAxEM;AAyEP,IAAA,mBAzEO,iCAyEY;AACjB,UAAI,KAAK,SAAT,EAAoB;AAClB,aAAK,WAAL,GAAmB,KAAK,cAAL,GAAsB,CAAtB,GAA0B,KAAK,YAAL,EAA7C;AACD;AACF,KA7EM;AA8EP,IAAA,mBA9EO,iCA8EY;AACjB,UAAI,KAAK,MAAL,KAAgB,KAApB,EAA2B;AACzB,aAAK,cAAL,GAAsB,KAAtB;AACA;AACD;;AACD,UAAI,EAAE,GAAG,KAAK,YAAL,EAAT;;AACA,aAAO,EAAP,EAAW;AACT,YAAI,MAAM,CAAC,gBAAP,CAAwB,EAAxB,EAA4B,QAA5B,KAAyC,OAA7C,EAAsD;AACpD,eAAK,cAAL,GAAsB,IAAtB;AACA;AACD;;AACD,QAAA,EAAE,GAAG,EAAE,CAAC,YAAR;AACD;;AACD,WAAK,cAAL,GAAsB,KAAtB;AACD,KA5FM;AA6FP,IAAA,UA7FO,wBA6FG,CAAM,CA7FT;AA8FP,IAAA,qBA9FO,mCA8Fc;AAAA;;AACnB,UAAM,SAAS,GAAG,qBAAY,OAAZ,CAAoB,qBAApB,CAA0C,IAA1C,CAA+C,IAA/C,CAAlB;;AAEA,UAAM,OAAO,GAAG,SAAS,CAAC,OAA1B;;AAEA,UAAI,OAAJ,EAAa;AACX,QAAA,SAAS,CAAC,OAAV,GAAoB,UAAC,CAAD,EAA+C;AACjE,cAAI,KAAI,CAAC,WAAT,EAAsB;AACpB,YAAA,OAAO,IAAI,OAAO,CAAC,CAAD,CAAlB;AACD;;AAED,UAAA,KAAI,CAAC,SAAL,GAAiB,CAAC,CAAC,OAAnB;AACA,UAAA,KAAI,CAAC,SAAL,GAAiB,CAAC,CAAC,OAAnB;AACD,SAPD;AAQD;;AAED,aAAO,SAAP;AACD,KA/GM;AAgHP,IAAA,cAhHO,4BAgHO;AACZ,UAAI,CAAC,KAAK,SAAV,EAAqB,OAAO,CAAP;AAErB,aAAO,MAAM,CAAC,WAAP,IACL,QAAQ,CAAC,eAAT,CAAyB,YAD3B;AAED,KArHM;AAsHP,IAAA,aAtHO,2BAsHM;AACX,UAAI,CAAC,KAAK,SAAV,EAAqB,OAAO,CAAP;AAErB,aAAO,MAAM,CAAC,WAAP,IACL,QAAQ,CAAC,eAAT,CAAyB,UAD3B;AAED,KA3HM;AA4HP,IAAA,YA5HO,0BA4HK;AACV,UAAI,CAAC,KAAK,SAAV,EAAqB,OAAO,CAAP;AAErB,aAAO,MAAM,CAAC,WAAP,IACL,QAAQ,CAAC,eAAT,CAAyB,SAD3B;AAED,KAjIM;AAkIP,IAAA,2BAlIO,uCAkIsB,EAlItB,EAkIiC;AACtC,UAAM,IAAI,GAAG,EAAE,CAAC,qBAAH,EAAb;AACA,aAAO;AACL,QAAA,GAAG,EAAE,IAAI,CAAC,KAAL,CAAW,IAAI,CAAC,GAAhB,CADA;AAEL,QAAA,IAAI,EAAE,IAAI,CAAC,KAAL,CAAW,IAAI,CAAC,IAAhB,CAFD;AAGL,QAAA,MAAM,EAAE,IAAI,CAAC,KAAL,CAAW,IAAI,CAAC,MAAhB,CAHH;AAIL,QAAA,KAAK,EAAE,IAAI,CAAC,KAAL,CAAW,IAAI,CAAC,KAAhB,CAJF;AAKL,QAAA,KAAK,EAAE,IAAI,CAAC,KAAL,CAAW,IAAI,CAAC,KAAhB,CALF;AAML,QAAA,MAAM,EAAE,IAAI,CAAC,KAAL,CAAW,IAAI,CAAC,MAAhB;AANH,OAAP;AAQD,KA5IM;AA6IP,IAAA,OA7IO,mBA6IE,EA7IF,EA6IiB;AACtB,UAAI,CAAC,EAAD,IAAO,CAAC,KAAK,SAAjB,EAA4B,OAAO,IAAP;AAE5B,UAAM,IAAI,GAAG,KAAK,2BAAL,CAAiC,EAAjC,CAAb,CAHsB,CAKtB;;AACA,UAAI,KAAK,MAAL,KAAgB,KAApB,EAA2B;AACzB,YAAM,KAAK,GAAG,MAAM,CAAC,gBAAP,CAAwB,EAAxB,CAAd;AAEA,QAAA,IAAI,CAAC,IAAL,GAAY,QAAQ,CAAC,KAAK,CAAC,UAAP,CAApB;AACA,QAAA,IAAI,CAAC,GAAL,GAAW,QAAQ,CAAC,KAAK,CAAC,SAAP,CAAnB;AACD;;AAED,aAAO,IAAP;AACD,KA3JM;AA4JP,IAAA,SA5JO,qBA4JI,EA5JJ,EA4JkB;AAAA;;AACvB,MAAA,qBAAqB,CAAC,YAAK;AACzB,YAAM,EAAE,GAAG,MAAI,CAAC,KAAL,CAAW,OAAtB;;AAEA,YAAI,CAAC,EAAD,IAAO,EAAE,CAAC,KAAH,CAAS,OAAT,KAAqB,MAAhC,EAAwC;AACtC,UAAA,EAAE;AACF;AACD;;AAED,QAAA,EAAE,CAAC,KAAH,CAAS,OAAT,GAAmB,cAAnB;AACA,QAAA,EAAE;AACF,QAAA,EAAE,CAAC,KAAH,CAAS,OAAT,GAAmB,MAAnB;AACD,OAXoB,CAArB;AAYD,KAzKM;AA0KP,IAAA,eA1KO,6BA0KQ;AAAA;;AACb,aAAO,IAAI,OAAJ,CAAkB,UAAA,OAAO;AAAA,eAAI,qBAAqB,CAAC,YAAK;AAC7D,UAAA,MAAI,CAAC,eAAL,GAAuB,MAAI,CAAC,cAAL,GAAsB,MAAI,CAAC,QAAlD;AACA,UAAA,OAAO;AACR,SAHwD,CAAzB;AAAA,OAAzB,CAAP;AAID,KA/KM;AAgLP,IAAA,gBAhLO,8BAgLS;AAAA;;AACd,WAAK,SAAL,GAAiB,OAAO,MAAP,KAAkB,WAAnC;AACA,WAAK,mBAAL;AACA,WAAK,mBAAL;AACA,WAAK,SAAL,GAAiB,QAAQ,CAAC,eAAT,CAAyB,WAA1C;AAEA,UAAM,UAAU,GAAQ;AACtB,QAAA,SAAS,oBAAO,KAAK,UAAL,CAAgB,SAAvB,CADa;AAEtB,QAAA,OAAO,oBAAO,KAAK,UAAL,CAAgB,OAAvB;AAFe,OAAxB,CANc,CAWd;;AACA,UAAI,CAAC,KAAK,YAAN,IAAsB,KAAK,QAA/B,EAAyC;AACvC,QAAA,UAAU,CAAC,SAAX,GAAuB,KAAK,gBAAL,EAAvB;AACD,OAFD,MAEO;AACL,YAAM,SAAS,GAAG,KAAK,YAAL,EAAlB;AACA,YAAI,CAAC,SAAL,EAAgB;AAEhB,QAAA,UAAU,CAAC,SAAX,GAAuB,KAAK,OAAL,CAAa,SAAb,CAAvB;AACA,QAAA,UAAU,CAAC,SAAX,CAAqB,UAArB,GAAkC,SAAS,CAAC,UAA5C;;AACA,YAAI,KAAK,MAAL,KAAgB,KAApB,EAA2B;AACzB;AACA;AACA,UAAA,UAAU,CAAC,SAAX,CAAqB,SAArB,GAAiC,SAAS,CAAC,SAA3C;AACD,SAJD,MAIO;AACL,UAAA,UAAU,CAAC,SAAX,CAAqB,SAArB,GAAiC,CAAjC;AACD;AACF,OA3Ba,CA6Bd;;;AACA,WAAK,SAAL,CAAe,YAAK;AAClB,YAAI,MAAI,CAAC,KAAL,CAAW,OAAf,EAAwB;AACtB,cAAI,MAAI,CAAC,KAAL,CAAW,OAAX,CAAmB,YAAvB,EAAqC;AACnC,gBAAM,UAAU,GAAG,MAAI,CAAC,2BAAL,CAAiC,MAAI,CAAC,KAAL,CAAW,OAAX,CAAmB,YAApD,CAAnB;;AAEA,YAAA,MAAI,CAAC,eAAL,GAAuB,MAAM,CAAC,WAAP,GAAqB,UAAU,CAAC,GAAvD;AACA,YAAA,UAAU,CAAC,SAAX,CAAqB,GAArB,IAA4B,MAAI,CAAC,eAAjC;AACA,YAAA,UAAU,CAAC,SAAX,CAAqB,IAArB,IAA6B,MAAM,CAAC,WAAP,GAAqB,UAAU,CAAC,IAA7D;AACD;;AAED,UAAA,UAAU,CAAC,OAAX,GAAqB,MAAI,CAAC,OAAL,CAAa,MAAI,CAAC,KAAL,CAAW,OAAxB,CAArB;AACD;;AAED,QAAA,MAAI,CAAC,UAAL,GAAkB,UAAlB;AACD,OAdD;AAeD;AA7NM;AAhKsB,CAAlB,C","sourcesContent":["// Mixins\nimport Stackable from '../stackable'\nimport { factory as positionableFactory } from '../positionable'\nimport Activatable from '../activatable'\nimport Detachable from '../detachable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Stackable,\n positionableFactory(['top', 'right', 'bottom', 'left', 'absolute']),\n Activatable,\n Detachable,\n)\n\ninterface dimensions {\n top: number\n left: number\n bottom: number\n right: number\n width: number\n height: number\n offsetTop: number\n scrollHeight: number\n offsetLeft: number\n}\n\ninterface options extends ExtractVue<typeof baseMixins> {\n attach: boolean | string | Element\n offsetY: boolean\n offsetX: boolean\n dimensions: {\n activator: dimensions\n content: dimensions\n }\n $refs: {\n content: HTMLElement\n activator: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'menuable',\n\n props: {\n allowOverflow: Boolean,\n light: Boolean,\n dark: Boolean,\n maxWidth: {\n type: [Number, String],\n default: 'auto',\n },\n minWidth: [Number, String],\n nudgeBottom: {\n type: [Number, String],\n default: 0,\n },\n nudgeLeft: {\n type: [Number, String],\n default: 0,\n },\n nudgeRight: {\n type: [Number, String],\n default: 0,\n },\n nudgeTop: {\n type: [Number, String],\n default: 0,\n },\n nudgeWidth: {\n type: [Number, String],\n default: 0,\n },\n offsetOverflow: Boolean,\n positionX: {\n type: Number,\n default: null,\n },\n positionY: {\n type: Number,\n default: null,\n },\n zIndex: {\n type: [Number, String],\n default: null,\n },\n },\n\n data: () => ({\n activatorNode: [] as VNode[],\n absoluteX: 0,\n absoluteY: 0,\n activatedBy: null as EventTarget | null,\n activatorFixed: false,\n dimensions: {\n activator: {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: 0,\n height: 0,\n offsetTop: 0,\n scrollHeight: 0,\n offsetLeft: 0,\n },\n content: {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: 0,\n height: 0,\n offsetTop: 0,\n scrollHeight: 0,\n },\n },\n relativeYOffset: 0,\n hasJustFocused: false,\n hasWindow: false,\n inputActivator: false,\n isContentActive: false,\n pageWidth: 0,\n pageYOffset: 0,\n stackClass: 'v-menu__content--active',\n stackMinZIndex: 6,\n }),\n\n computed: {\n isMenuable() {\n return true\n },\n computedLeft () {\n const a = this.dimensions.activator\n const c = this.dimensions.content\n const activatorLeft = (this.attach !== false ? a.offsetLeft : a.left) || 0\n const minWidth = Math.max(a.width, c.width)\n let left = 0\n left += activatorLeft\n if (this.left || (this.$vuetify.rtl && !this.right)) left -= (minWidth - a.width)\n if (this.offsetX) {\n const maxWidth = isNaN(Number(this.maxWidth))\n ? a.width\n : Math.min(a.width, Number(this.maxWidth))\n\n left += this.left ? -maxWidth : a.width\n }\n if (this.nudgeLeft) left -= parseInt(this.nudgeLeft)\n if (this.nudgeRight) left += parseInt(this.nudgeRight)\n\n return left\n },\n computedTop () {\n const a = this.dimensions.activator\n const c = this.dimensions.content\n let top = 0\n\n if (this.top) top += a.height - c.height\n if (this.attach !== false) top += a.offsetTop\n else top += a.top + this.pageYOffset\n if (this.offsetY) top += this.top ? -a.height : a.height\n if (this.nudgeTop) top -= parseInt(this.nudgeTop)\n if (this.nudgeBottom) top += parseInt(this.nudgeBottom)\n\n return top\n },\n hasActivator (): boolean {\n return !!this.$slots.activator || !!this.$slots.activator || !!this.activator || !!this.inputActivator\n },\n absoluteYOffset (): number {\n return this.pageYOffset - this.relativeYOffset\n },\n },\n\n watch: {\n disabled (val) {\n val && this.callDeactivate()\n },\n isActive (val) {\n if (this.disabled) return\n\n val ? this.callActivate() : this.callDeactivate()\n },\n positionX: 'updateDimensions',\n positionY: 'updateDimensions',\n },\n\n beforeMount () {\n this.hasWindow = typeof window !== 'undefined'\n\n if (this.hasWindow) {\n window.addEventListener('resize', this.updateDimensions, false)\n }\n },\n\n beforeUnmount () {\n if (this.hasWindow) {\n window.removeEventListener('resize', this.updateDimensions, false)\n }\n },\n\n methods: {\n absolutePosition () {\n return {\n offsetTop: this.positionY || this.absoluteY,\n offsetLeft: this.positionX || this.absoluteX,\n scrollHeight: 0,\n top: this.positionY || this.absoluteY,\n bottom: this.positionY || this.absoluteY,\n left: this.positionX || this.absoluteX,\n right: this.positionX || this.absoluteX,\n height: 0,\n width: 0,\n }\n },\n activate () {},\n calcLeft (menuWidth: number) {\n return convertToUnit(this.attach !== false\n ? this.computedLeft\n : this.calcXOverflow(this.computedLeft, menuWidth))\n },\n calcTop () {\n return convertToUnit(this.attach !== false\n ? this.computedTop\n : this.calcYOverflow(this.computedTop))\n },\n calcXOverflow (left: number, menuWidth: number) {\n const xOverflow = left + menuWidth - this.pageWidth + 12\n\n if ((!this.left || this.right) && xOverflow > 0) {\n left = Math.max(left - xOverflow, 0)\n } else {\n left = Math.max(left, 12)\n }\n\n return left + this.getOffsetLeft()\n },\n calcYOverflow (top: number) {\n const documentHeight = this.getInnerHeight()\n const toTop = this.absoluteYOffset + documentHeight\n const activator = this.dimensions.activator\n const contentHeight = this.dimensions.content.height\n const totalHeight = top + contentHeight\n const isOverflowing = toTop < totalHeight\n\n // If overflowing bottom and offset\n // TODO: set 'bottom' position instead of 'top'\n if (isOverflowing &&\n this.offsetOverflow &&\n // If we don't have enough room to offset\n // the overflow, don't offset\n activator.top > contentHeight\n ) {\n top = this.pageYOffset + (activator.top - contentHeight)\n // If overflowing bottom\n } else if (isOverflowing && !this.allowOverflow) {\n top = toTop - contentHeight - 12\n // If overflowing top\n } else if (top < this.absoluteYOffset && !this.allowOverflow) {\n top = this.absoluteYOffset + 12\n }\n\n return top < 12 ? 12 : top\n },\n callActivate () {\n if (!this.hasWindow) return\n\n this.activate()\n },\n callDeactivate () {\n this.isContentActive = false\n\n this.deactivate()\n },\n checkForPageYOffset () {\n if (this.hasWindow) {\n this.pageYOffset = this.activatorFixed ? 0 : this.getOffsetTop()\n }\n },\n checkActivatorFixed () {\n if (this.attach !== false) {\n this.activatorFixed = false\n return\n }\n let el = this.getActivator()\n while (el) {\n if (window.getComputedStyle(el).position === 'fixed') {\n this.activatorFixed = true\n return\n }\n el = el.offsetParent as HTMLElement\n }\n this.activatorFixed = false\n },\n deactivate () {},\n genActivatorListeners () {\n const listeners = Activatable.methods.genActivatorListeners.call(this)\n\n const onClick = listeners.onClick\n\n if (onClick) {\n listeners.onClick = (e: MouseEvent & KeyboardEvent & FocusEvent) => {\n if (this.openOnClick) {\n onClick && onClick(e)\n }\n\n this.absoluteX = e.clientX\n this.absoluteY = e.clientY\n }\n }\n\n return listeners\n },\n getInnerHeight () {\n if (!this.hasWindow) return 0\n\n return window.innerHeight ||\n document.documentElement.clientHeight\n },\n getOffsetLeft () {\n if (!this.hasWindow) return 0\n\n return window.pageXOffset ||\n document.documentElement.scrollLeft\n },\n getOffsetTop () {\n if (!this.hasWindow) return 0\n\n return window.pageYOffset ||\n document.documentElement.scrollTop\n },\n getRoundedBoundedClientRect (el: Element) {\n const rect = el.getBoundingClientRect()\n return {\n top: Math.round(rect.top),\n left: Math.round(rect.left),\n bottom: Math.round(rect.bottom),\n right: Math.round(rect.right),\n width: Math.round(rect.width),\n height: Math.round(rect.height),\n }\n },\n measure (el: HTMLElement) {\n if (!el || !this.hasWindow) return null\n\n const rect = this.getRoundedBoundedClientRect(el)\n\n // Account for activator margin\n if (this.attach !== false) {\n const style = window.getComputedStyle(el)\n\n rect.left = parseInt(style.marginLeft!)\n rect.top = parseInt(style.marginTop!)\n }\n\n return rect\n },\n sneakPeek (cb: () => void) {\n requestAnimationFrame(() => {\n const el = this.$refs.content\n\n if (!el || el.style.display !== 'none') {\n cb()\n return\n }\n\n el.style.display = 'inline-block'\n cb()\n el.style.display = 'none'\n })\n },\n startTransition () {\n return new Promise<void>(resolve => requestAnimationFrame(() => {\n this.isContentActive = this.hasJustFocused = this.isActive\n resolve()\n }))\n },\n updateDimensions () {\n this.hasWindow = typeof window !== 'undefined'\n this.checkActivatorFixed()\n this.checkForPageYOffset()\n this.pageWidth = document.documentElement.clientWidth\n\n const dimensions: any = {\n activator: { ...this.dimensions.activator },\n content: { ...this.dimensions.content },\n }\n\n // Activator should already be shown\n if (!this.hasActivator || this.absolute) {\n dimensions.activator = this.absolutePosition()\n } else {\n const activator = this.getActivator()\n if (!activator) return\n\n dimensions.activator = this.measure(activator)\n dimensions.activator.offsetLeft = activator.offsetLeft\n if (this.attach !== false) {\n // account for css padding causing things to not line up\n // this is mostly for v-autocomplete, hopefully it won't break anything\n dimensions.activator.offsetTop = activator.offsetTop\n } else {\n dimensions.activator.offsetTop = 0\n }\n }\n\n // Display and hide to get dimensions\n this.sneakPeek(() => {\n if (this.$refs.content) {\n if (this.$refs.content.offsetParent) {\n const offsetRect = this.getRoundedBoundedClientRect(this.$refs.content.offsetParent)\n\n this.relativeYOffset = window.pageYOffset + offsetRect.top\n dimensions.activator.top -= this.relativeYOffset\n dimensions.activator.left -= window.pageXOffset + offsetRect.left\n }\n\n dimensions.content = this.measure(this.$refs.content)\n }\n\n this.dimensions = dimensions\n })\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
@@ -39,7 +39,7 @@ var _default = (0, _vue.defineComponent)({
39
39
  if (value) this.removeOverlay();else this.genOverlay();
40
40
  }
41
41
  },
42
- beforeDestroy: function beforeDestroy() {
42
+ beforeUnmount: function beforeUnmount() {
43
43
  this.removeOverlay();
44
44
  },
45
45
  methods: {
@@ -54,12 +54,14 @@ var _default = (0, _vue.defineComponent)({
54
54
  var wrapper = {
55
55
  data: function data() {
56
56
  return {
57
- value: false
57
+ value: false,
58
+ zIndex: undefined
58
59
  };
59
60
  },
60
61
  render: function render() {
61
62
  return (0, _vue.h)(_VOverlay.default, _objectSpread({
62
- value: this.value
63
+ modelValue: this.value,
64
+ zIndex: this.zIndex
63
65
  }, props));
64
66
  }
65
67
  }; // // Create the overlay app
@@ -119,7 +121,6 @@ var _default = (0, _vue.defineComponent)({
119
121
 
120
122
  _this2.overlayApp = null;
121
123
  _this2.overlay = null;
122
- console.log('destroyed');
123
124
  }); // Cancel animation frame in case
124
125
  // overlay is removed before it
125
126
  // has finished its animation
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/overlayable/index.ts"],"names":[],"mappings":";;;;;;;AACA;;AAGA;;AASA;;;;;;;;;;AAkBA;eACe,0BAAgB;AAC7B,EAAA,IAAI,EAAE,aADuB;AAG7B,EAAA,KAAK,EAAE;AACL,IAAA,WAAW,EAAE,OADR;AAEL,IAAA,YAAY,EAAE,MAFT;AAGL,IAAA,cAAc,EAAE,CAAC,MAAD,EAAS,MAAT;AAHX,GAHsB;AAS7B,EAAA,IAT6B,kBASzB;AACF,WAAO;AACL,MAAA,cAAc,EAAE,CADX;AAEL,MAAA,OAAO,EAAE;AAFJ,KAAP;AAID,GAd4B;AAgB7B,EAAA,KAAK,EAAE;AACL,IAAA,WADK,uBACQ,KADR,EACa;AAChB,UAAI,CAAC,KAAK,QAAV,EAAoB;AAEpB,UAAI,KAAJ,EAAW,KAAK,aAAL,GAAX,KACK,KAAK,UAAL;AACN;AANI,GAhBsB;AAyB7B,EAAA,aAzB6B,2BAyBhB;AACX,SAAK,aAAL;AACD,GA3B4B;AA6B7B,EAAA,OAAO,EAAE;AACP,IAAA,aADO,2BACM;AACX;AACA,UAAM,SAAS,GAAG,QAAQ,CAAC,aAAT,CAAuB,KAAvB,CAAlB;AAEA,UAAM,KAAK,GAAG;AACZ,QAAA,QAAQ,EAAE,KAAK,QADH;AAEZ,QAAA,KAAK,EAAE,KAAK,YAFA;AAGZ,QAAA,OAAO,EAAE,KAAK;AAHF,OAAd;AAKA,UAAM,OAAO,GAAG;AACd,QAAA,IADc,kBACV;AACF,iBAAO;AAAE,YAAA,KAAK,EAAE;AAAT,WAAP;AACD,SAHa;AAId,QAAA,MAJc,oBAIR;AACJ,iBAAO,YAAE,iBAAF;AACL,YAAA,KAAK,EAAE,KAAK;AADP,aAEF,KAFE,EAAP;AAID;AATa,OAAhB,CATW,CAoBX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAM,UAAU,GAAG,oBAAU,OAAV,CAAnB,CA5BW,CA8BX;;AACA,UAAM,eAAe,GAAG,UAAU,CAAC,KAAX,CAAiB,SAAjB,CAAxB,CA/BW,CAiCX;;AACA,UAAM,MAAM,GAAG,KAAK,QAAL,GACX,KAAK,GAAL,CAAS,UADE,GAEX,QAAQ,CAAC,aAAT,CAAuB,YAAvB,CAFJ;;AAIA,UAAI,MAAJ,EAAY;AACV,QAAA,MAAM,CAAC,YAAP,CAAoB,SAApB,EAA+B,MAAM,CAAC,UAAtC;AACD;;AAED,WAAK,OAAL,GAAe,eAAf;AACA,WAAK,UAAL,GAAkB,UAAlB;AACD,KA7CM;AA8CP,IAAA,UA9CO,wBA8CG;AAAA;;AACR,WAAK,UAAL;AAEA,UAAI,KAAK,WAAT,EAAsB;AAEtB,UAAI,CAAC,KAAK,OAAV,EAAmB,KAAK,aAAL;AAEnB,WAAK,cAAL,GAAsB,qBAAqB,CAAC,YAAK;AAC/C,YAAI,CAAC,KAAI,CAAC,OAAV,EAAmB;;AAEnB,YAAI,KAAI,CAAC,YAAL,KAAsB,SAA1B,EAAqC;AACnC,UAAA,KAAI,CAAC,OAAL,CAAa,MAAb,GAAsB,MAAM,CAAC,KAAI,CAAC,YAAL,GAAoB,CAArB,CAA5B;AACD,SAFD,MAEO,IAAI,KAAI,CAAC,GAAT,EAAc;AACnB,UAAA,KAAI,CAAC,OAAL,CAAa,MAAb,GAAsB,wBAAU,KAAI,CAAC,GAAf,CAAtB;AACD;;AAED,QAAA,KAAI,CAAC,OAAL,CAAa,KAAb,GAAqB,IAArB;AACD,OAV0C,CAA3C;AAYA,aAAO,IAAP;AACD,KAlEM;;AAmEP;AACA,IAAA,aApEO,2BAoEyB;AAAA;;AAAA,UAAjB,UAAiB,uEAAJ,IAAI;;AAC9B,UAAI,KAAK,OAAT,EAAkB;AAChB,2CAAqB,KAAK,OAAL,CAAa,GAAlC,EAAuC,eAAvC,EAAwD,YAAK;AAC3D,cACE,CAAC,MAAI,CAAC,OAAN,IACA,CAAC,MAAI,CAAC,OAAL,CAAa,GADd,IAEA,CAAC,MAAI,CAAC,OAAL,CAAa,GAAb,CAAiB,UAFlB,IAGA,MAAI,CAAC,OAAL,CAAa,KAHb,IAIA,MAAI,CAAC,QALP,EAME;;AAEF,UAAA,MAAI,CAAC,OAAL,CAAa,GAAb,CAAiB,UAAjB,CAA4B,WAA5B,CAAwC,MAAI,CAAC,OAAL,CAAa,GAArD;;AACA,UAAA,MAAI,CAAC,UAAL,CAAgB,OAAhB;;AACA,UAAA,MAAI,CAAC,UAAL,GAAkB,IAAlB;AACA,UAAA,MAAI,CAAC,OAAL,GAAe,IAAf;AACA,UAAA,OAAO,CAAC,GAAR,CAAY,WAAZ;AAED,SAfD,EADgB,CAkBhB;AACA;AACA;;AACA,QAAA,oBAAoB,CAAC,KAAK,cAAN,CAApB;AAEA,aAAK,OAAL,CAAa,KAAb,GAAqB,KAArB;AACD;;AAED,MAAA,UAAU,IAAI,KAAK,UAAL,EAAd;AACD,KAhGM;AAiGP,IAAA,cAjGO,0BAiGS,CAjGT,EAiGsC;AAC3C,UAAI,SAAS,CAAb,EAAgB;AACd,YACE,CAAC,OAAD,EAAU,UAAV,EAAsB,QAAtB,EAAgC,QAAhC,CAA0C,CAAC,CAAC,MAAF,CAAqB,OAA/D,KACA;AACC,QAAA,CAAC,CAAC,MAAF,CAAyB,iBAH5B,EAIE;AAEF,YAAM,EAAE,GAAG,CAAC,kBAAS,EAAV,EAAc,kBAAS,MAAvB,CAAX;AACA,YAAM,IAAI,GAAG,CAAC,kBAAS,IAAV,EAAgB,kBAAS,QAAzB,CAAb;;AAEA,YAAI,EAAE,CAAC,QAAH,CAAY,CAAC,CAAC,OAAd,CAAJ,EAA4B;AACzB,UAAA,CAAS,CAAC,MAAV,GAAmB,CAAC,CAApB;AACF,SAFD,MAEO,IAAI,IAAI,CAAC,QAAL,CAAc,CAAC,CAAC,OAAhB,CAAJ,EAA8B;AAClC,UAAA,CAAS,CAAC,MAAV,GAAmB,CAAnB;AACF,SAFM,MAEA;AACL;AACD;AACF;;AAED,UAAI,CAAC,CAAC,MAAF,KAAa,KAAK,OAAlB,IACD,CAAC,CAAC,IAAF,KAAW,SAAX,IAAwB,CAAC,CAAC,MAAF,KAAa,QAAQ,CAAC,IAD7C,IAEF,KAAK,SAAL,CAAe,CAAf,CAFF,EAEmC,CAAC,CAAC,cAAF;AACpC,KAxHM;AAyHP,IAAA,YAzHO,wBAyHO,EAzHP,EAyHmB;AACxB,UAAI,CAAC,EAAD,IAAO,EAAE,CAAC,QAAH,KAAgB,IAAI,CAAC,YAAhC,EAA8C,OAAO,KAAP;AAE9C,UAAM,KAAK,GAAG,MAAM,CAAC,gBAAP,CAAwB,EAAxB,CAAd;AACA,aAAQ,CAAC,CAAC,MAAD,EAAS,QAAT,EAAmB,QAAnB,CAA4B,KAAK,CAAC,SAAlC,KAAiD,EAAE,CAAC,OAAH,KAAe,QAAjE,KAA8E,EAAE,CAAC,YAAH,GAAkB,EAAE,CAAC,YAApG,IACL,CAAC,MAAD,EAAS,QAAT,EAAmB,QAAnB,CAA4B,KAAK,CAAC,SAAlC,CAAD,IAAmD,EAAE,CAAC,WAAH,GAAiB,EAAE,CAAC,WADxE;AAED,KA/HM;AAgIP,IAAA,YAhIO,wBAgIO,EAhIP,EAgIoB,CAhIpB,EAgIiC;AACtC,UAAI,EAAE,CAAC,YAAH,CAAgB,UAAhB,CAAJ,EAAiC,OAAO,KAAP;AAEjC,UAAM,GAAG,GAAG,CAAC,CAAC,QAAF,IAAc,CAAC,CAAC,MAAhB,GAAyB,GAAzB,GAA+B,GAA3C;AACA,UAAM,KAAK,GAAG,GAAG,KAAK,GAAR,GAAc,CAAC,CAAC,MAAhB,GAAyB,CAAC,CAAC,MAAF,IAAY,CAAC,CAAC,MAArD;AAEA,UAAI,cAAJ;AACA,UAAI,YAAJ;;AACA,UAAI,GAAG,KAAK,GAAZ,EAAiB;AACf,QAAA,cAAc,GAAG,EAAE,CAAC,SAAH,KAAiB,CAAlC;AACA,QAAA,YAAY,GAAG,EAAE,CAAC,SAAH,GAAe,EAAE,CAAC,YAAlB,KAAmC,EAAE,CAAC,YAArD;AACD,OAHD,MAGO;AACL,QAAA,cAAc,GAAG,EAAE,CAAC,UAAH,KAAkB,CAAnC;AACA,QAAA,YAAY,GAAG,EAAE,CAAC,UAAH,GAAgB,EAAE,CAAC,WAAnB,KAAmC,EAAE,CAAC,WAArD;AACD;;AAED,UAAM,WAAW,GAAG,KAAK,GAAG,CAA5B;AACA,UAAM,aAAa,GAAG,KAAK,GAAG,CAA9B;AAEA,UAAI,CAAC,cAAD,IAAmB,WAAvB,EAAoC,OAAO,IAAP;AACpC,UAAI,CAAC,YAAD,IAAiB,aAArB,EAAoC,OAAO,IAAP;;AACpC,UAAI,CAAC,cAAc,IAAI,YAAnB,KAAoC,EAAE,CAAC,UAA3C,EAAuD;AACrD,eAAO,KAAK,YAAL,CAAkB,EAAE,CAAC,UAArB,EAA4C,CAA5C,CAAP;AACD;;AAED,aAAO,KAAP;AACD,KA1JM;AA2JP,IAAA,QA3JO,oBA2JG,EA3JH,EA2JgB,MA3JhB,EA2J+B;AACpC,UAAI,EAAE,KAAK,MAAX,EAAmB;AACjB,eAAO,IAAP;AACD,OAFD,MAEO,IAAI,EAAE,KAAK,IAAP,IAAe,EAAE,KAAK,QAAQ,CAAC,IAAnC,EAAyC;AAC9C,eAAO,KAAP;AACD,OAFM,MAEA;AACL,eAAO,KAAK,QAAL,CAAc,EAAE,CAAC,UAAjB,EAAwC,MAAxC,CAAP;AACD;AACF,KAnKM;AAoKP,IAAA,SApKO,qBAoKI,CApKJ,EAoKiB;AACtB,UAAM,IAAI,GAAG,2BAAa,CAAb,CAAb;;AAEA,UAAI,CAAC,CAAC,IAAF,KAAW,SAAX,IAAwB,IAAI,CAAC,CAAD,CAAJ,KAAY,QAAQ,CAAC,IAAjD,EAAuD;AACrD,YAAM,MAAM,GAAG,KAAK,KAAL,CAAW,MAA1B,CADqD,CAErD;;AACA,YAAM,QAAQ,GAAG,MAAM,CAAC,YAAP,GAAuB,UAAxC;;AACA,YAAI,MAAM,IAAI,KAAK,YAAL,CAAkB,MAAlB,CAAV,IAAuC,KAAK,QAAL,CAAc,QAAd,EAAwB,MAAxB,CAA3C,EAA4E;AAC1E,iBAAO,CAAC,KAAK,YAAL,CAAkB,MAAlB,EAA0B,CAA1B,CAAR;AACD;;AACD,eAAO,IAAP;AACD;;AAED,WAAK,IAAI,KAAK,GAAG,CAAjB,EAAoB,KAAK,GAAG,IAAI,CAAC,MAAjC,EAAyC,KAAK,EAA9C,EAAkD;AAChD,YAAM,EAAE,GAAG,IAAI,CAAC,KAAD,CAAf;AAEA,YAAI,EAAE,KAAK,QAAX,EAAqB,OAAO,IAAP;AACrB,YAAI,EAAE,KAAK,QAAQ,CAAC,eAApB,EAAqC,OAAO,IAAP;AACrC,YAAI,EAAE,KAAK,KAAK,KAAL,CAAW,OAAtB,EAA+B,OAAO,IAAP;AAE/B,YAAI,KAAK,YAAL,CAAkB,EAAlB,CAAJ,EAAsC,OAAO,CAAC,KAAK,YAAL,CAAkB,EAAlB,EAAiC,CAAjC,CAAR;AACvC;;AAED,aAAO,IAAP;AACD,KA5LM;AA6LP,IAAA,UA7LO,wBA6LG;AACR,UAAI,KAAK,QAAL,CAAc,UAAd,CAAyB,SAA7B,EAAwC;AACtC,QAAA,QAAQ,CAAC,eAAT,CAA0B,SAA1B,CAAoC,GAApC,CAAwC,mBAAxC;AACD,OAFD,MAEO;AACL,8CAAwB,MAAxB,EAAgC,OAAhC,EAAyC,KAAK,cAA9C,EAA8D;AAAE,UAAA,OAAO,EAAE;AAAX,SAA9D;AACA,QAAA,MAAM,CAAC,gBAAP,CAAwB,SAAxB,EAAmC,KAAK,cAAxC;AACD;AACF,KApMM;AAqMP,IAAA,UArMO,wBAqMG;AACR,MAAA,QAAQ,CAAC,eAAT,CAA0B,SAA1B,CAAoC,MAApC,CAA2C,mBAA3C;AACA,MAAA,MAAM,CAAC,mBAAP,CAA2B,OAA3B,EAAoC,KAAK,cAAzC;AACA,MAAA,MAAM,CAAC,mBAAP,CAA2B,SAA3B,EAAsC,KAAK,cAA3C;AACD;AAzMM;AA7BoB,CAAhB,C","sourcesContent":["// Components\nimport VOverlay from '../../components/VOverlay'\n\n// Utilities\nimport {\n keyCodes,\n addOnceEventListener,\n addPassiveEventListener,\n getZIndex,\n composedPath,\n} from '../../util/helpers'\n\n// Types\nimport {defineComponent, App, createApp, h} from 'vue'\n\ninterface Toggleable extends App {\n isActive?: boolean\n}\n\ninterface Stackable extends App {\n activeZIndex: number\n}\n\ninterface options {\n absolute?: boolean\n $refs: {\n dialog?: HTMLElement\n content?: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default defineComponent({\n name: 'overlayable',\n\n props: {\n hideOverlay: Boolean,\n overlayColor: String,\n overlayOpacity: [Number, String],\n },\n\n data () {\n return {\n animationFrame: 0,\n overlay: null as InstanceType<typeof VOverlay> | null,\n }\n },\n\n watch: {\n hideOverlay (value) {\n if (!this.isActive) return\n\n if (value) this.removeOverlay()\n else this.genOverlay()\n },\n },\n\n beforeDestroy () {\n this.removeOverlay()\n },\n\n methods: {\n createOverlay () {\n // Create a container element\n const container = document.createElement('div');\n\n const props = {\n absolute: this.absolute,\n color: this.overlayColor,\n opacity: this.overlayOpacity\n }\n const wrapper = {\n data() {\n return { value: false }\n },\n render() {\n return h(VOverlay, {\n value: this.value,\n ...props\n })\n }\n }\n // // Create the overlay app\n // const overlayApp = createApp(VOverlay, {\n // absolute: this.absolute,\n // value: false,\n // color: this.overlayColor,\n // opacity: this.overlayOpacity,\n // });\n\n const overlayApp = createApp(wrapper)\n\n // Mount the app to the container\n const overlayInstance = overlayApp.mount(container);\n\n // Determine the parent element\n const parent = this.absolute\n ? this.$el.parentNode\n : document.querySelector('[data-app]');\n\n if (parent) {\n parent.insertBefore(container, parent.firstChild);\n }\n\n this.overlay = overlayInstance;\n this.overlayApp = overlayApp\n },\n genOverlay () {\n this.hideScroll()\n\n if (this.hideOverlay) return\n\n if (!this.overlay) this.createOverlay()\n\n this.animationFrame = requestAnimationFrame(() => {\n if (!this.overlay) return\n\n if (this.activeZIndex !== undefined) {\n this.overlay.zIndex = String(this.activeZIndex - 1)\n } else if (this.$el) {\n this.overlay.zIndex = getZIndex(this.$el)\n }\n\n this.overlay.value = true\n })\n\n return true\n },\n /** removeOverlay(false) will not restore the scollbar afterwards */\n removeOverlay (showScroll = true) {\n if (this.overlay) {\n addOnceEventListener(this.overlay.$el, 'transitionend', () => {\n if (\n !this.overlay ||\n !this.overlay.$el ||\n !this.overlay.$el.parentNode ||\n this.overlay.value ||\n this.isActive\n ) return\n\n this.overlay.$el.parentNode.removeChild(this.overlay.$el)\n this.overlayApp.unmount()\n this.overlayApp = null\n this.overlay = null\n console.log('destroyed')\n\n })\n\n // Cancel animation frame in case\n // overlay is removed before it\n // has finished its animation\n cancelAnimationFrame(this.animationFrame)\n\n this.overlay.value = false\n }\n\n showScroll && this.showScroll()\n },\n scrollListener (e: WheelEvent | KeyboardEvent) {\n if ('key' in e) {\n if (\n ['INPUT', 'TEXTAREA', 'SELECT'].includes((e.target as Element).tagName) ||\n // https://github.com/vuetifyjs/vuetify/issues/4715\n (e.target as HTMLElement).isContentEditable\n ) return\n\n const up = [keyCodes.up, keyCodes.pageup]\n const down = [keyCodes.down, keyCodes.pagedown]\n\n if (up.includes(e.keyCode)) {\n (e as any).deltaY = -1\n } else if (down.includes(e.keyCode)) {\n (e as any).deltaY = 1\n } else {\n return\n }\n }\n\n if (e.target === this.overlay ||\n (e.type !== 'keydown' && e.target === document.body) ||\n this.checkPath(e as WheelEvent)) e.preventDefault()\n },\n hasScrollbar (el?: Element) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return ((['auto', 'scroll'].includes(style.overflowY!) || el.tagName === 'SELECT') && el.scrollHeight > el.clientHeight) ||\n ((['auto', 'scroll'].includes(style.overflowX!)) && el.scrollWidth > el.clientWidth)\n },\n shouldScroll (el: Element, e: WheelEvent): boolean {\n if (el.hasAttribute('data-app')) return false\n\n const dir = e.shiftKey || e.deltaX ? 'x' : 'y'\n const delta = dir === 'y' ? e.deltaY : e.deltaX || e.deltaY\n\n let alreadyAtStart: boolean\n let alreadyAtEnd: boolean\n if (dir === 'y') {\n alreadyAtStart = el.scrollTop === 0\n alreadyAtEnd = el.scrollTop + el.clientHeight === el.scrollHeight\n } else {\n alreadyAtStart = el.scrollLeft === 0\n alreadyAtEnd = el.scrollLeft + el.clientWidth === el.scrollWidth\n }\n\n const scrollingUp = delta < 0\n const scrollingDown = delta > 0\n\n if (!alreadyAtStart && scrollingUp) return true\n if (!alreadyAtEnd && scrollingDown) return true\n if ((alreadyAtStart || alreadyAtEnd) && el.parentNode) {\n return this.shouldScroll(el.parentNode as Element, e)\n }\n\n return false\n },\n isInside (el: Element, parent: Element): boolean {\n if (el === parent) {\n return true\n } else if (el === null || el === document.body) {\n return false\n } else {\n return this.isInside(el.parentNode as Element, parent)\n }\n },\n checkPath (e: WheelEvent) {\n const path = composedPath(e)\n\n if (e.type === 'keydown' && path[0] === document.body) {\n const dialog = this.$refs.dialog\n // getSelection returns null in firefox in some edge cases, can be ignored\n const selected = window.getSelection()!.anchorNode as Element\n if (dialog && this.hasScrollbar(dialog) && this.isInside(selected, dialog)) {\n return !this.shouldScroll(dialog, e)\n }\n return true\n }\n\n for (let index = 0; index < path.length; index++) {\n const el = path[index]\n\n if (el === document) return true\n if (el === document.documentElement) return true\n if (el === this.$refs.content) return true\n\n if (this.hasScrollbar(el as Element)) return !this.shouldScroll(el as Element, e)\n }\n\n return true\n },\n hideScroll () {\n if (this.$vuetify.breakpoint.smAndDown) {\n document.documentElement!.classList.add('overflow-y-hidden')\n } else {\n addPassiveEventListener(window, 'wheel', this.scrollListener, { passive: false })\n window.addEventListener('keydown', this.scrollListener)\n }\n },\n showScroll () {\n document.documentElement!.classList.remove('overflow-y-hidden')\n window.removeEventListener('wheel', this.scrollListener)\n window.removeEventListener('keydown', this.scrollListener)\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/overlayable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport VOverlay from '../../components/VOverlay'\n\n// Utilities\nimport {\n keyCodes,\n addOnceEventListener,\n addPassiveEventListener,\n getZIndex,\n composedPath,\n} from '../../util/helpers'\n\n// Types\nimport {defineComponent, App, createApp, h} from 'vue'\n\ninterface Toggleable extends App {\n isActive?: boolean\n}\n\ninterface Stackable extends App {\n activeZIndex: number\n}\n\ninterface options {\n absolute?: boolean\n $refs: {\n dialog?: HTMLElement\n content?: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default defineComponent({\n name: 'overlayable',\n\n props: {\n hideOverlay: Boolean,\n overlayColor: String,\n overlayOpacity: [Number, String],\n },\n\n data () {\n return {\n animationFrame: 0,\n overlay: null as InstanceType<typeof VOverlay> | null,\n }\n },\n\n watch: {\n hideOverlay (value) {\n if (!this.isActive) return\n\n if (value) this.removeOverlay()\n else this.genOverlay()\n },\n },\n\n beforeUnmount () {\n this.removeOverlay()\n },\n\n methods: {\n createOverlay () {\n // Create a container element\n const container = document.createElement('div');\n\n const props = {\n absolute: this.absolute,\n color: this.overlayColor,\n opacity: this.overlayOpacity\n }\n const wrapper = {\n data() {\n return { value: false, zIndex: undefined }\n },\n render() {\n return h(VOverlay, {\n modelValue: this.value,\n zIndex: this.zIndex,\n ...props\n })\n }\n }\n // // Create the overlay app\n // const overlayApp = createApp(VOverlay, {\n // absolute: this.absolute,\n // value: false,\n // color: this.overlayColor,\n // opacity: this.overlayOpacity,\n // });\n\n const overlayApp = createApp(wrapper)\n\n // Mount the app to the container\n const overlayInstance = overlayApp.mount(container);\n\n // Determine the parent element\n const parent = this.absolute\n ? this.$el.parentNode\n : document.querySelector('[data-app]');\n\n if (parent) {\n parent.insertBefore(container, parent.firstChild);\n }\n\n this.overlay = overlayInstance;\n this.overlayApp = overlayApp\n },\n genOverlay () {\n this.hideScroll()\n\n if (this.hideOverlay) return\n\n if (!this.overlay) this.createOverlay()\n\n this.animationFrame = requestAnimationFrame(() => {\n if (!this.overlay) return\n\n if (this.activeZIndex !== undefined) {\n this.overlay.zIndex = String(this.activeZIndex - 1)\n } else if (this.$el) {\n this.overlay.zIndex = getZIndex(this.$el)\n }\n\n this.overlay.value = true\n })\n\n return true\n },\n /** removeOverlay(false) will not restore the scollbar afterwards */\n removeOverlay (showScroll = true) {\n if (this.overlay) {\n addOnceEventListener(this.overlay.$el, 'transitionend', () => {\n if (\n !this.overlay ||\n !this.overlay.$el ||\n !this.overlay.$el.parentNode ||\n this.overlay.value ||\n this.isActive\n ) return\n\n this.overlay.$el.parentNode.removeChild(this.overlay.$el)\n this.overlayApp.unmount()\n this.overlayApp = null\n this.overlay = null\n })\n\n // Cancel animation frame in case\n // overlay is removed before it\n // has finished its animation\n cancelAnimationFrame(this.animationFrame)\n\n this.overlay.value = false\n }\n\n showScroll && this.showScroll()\n },\n scrollListener (e: WheelEvent | KeyboardEvent) {\n if ('key' in e) {\n if (\n ['INPUT', 'TEXTAREA', 'SELECT'].includes((e.target as Element).tagName) ||\n // https://github.com/vuetifyjs/vuetify/issues/4715\n (e.target as HTMLElement).isContentEditable\n ) return\n\n const up = [keyCodes.up, keyCodes.pageup]\n const down = [keyCodes.down, keyCodes.pagedown]\n\n if (up.includes(e.keyCode)) {\n (e as any).deltaY = -1\n } else if (down.includes(e.keyCode)) {\n (e as any).deltaY = 1\n } else {\n return\n }\n }\n\n if (e.target === this.overlay ||\n (e.type !== 'keydown' && e.target === document.body) ||\n this.checkPath(e as WheelEvent)) e.preventDefault()\n },\n hasScrollbar (el?: Element) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return ((['auto', 'scroll'].includes(style.overflowY!) || el.tagName === 'SELECT') && el.scrollHeight > el.clientHeight) ||\n ((['auto', 'scroll'].includes(style.overflowX!)) && el.scrollWidth > el.clientWidth)\n },\n shouldScroll (el: Element, e: WheelEvent): boolean {\n if (el.hasAttribute('data-app')) return false\n\n const dir = e.shiftKey || e.deltaX ? 'x' : 'y'\n const delta = dir === 'y' ? e.deltaY : e.deltaX || e.deltaY\n\n let alreadyAtStart: boolean\n let alreadyAtEnd: boolean\n if (dir === 'y') {\n alreadyAtStart = el.scrollTop === 0\n alreadyAtEnd = el.scrollTop + el.clientHeight === el.scrollHeight\n } else {\n alreadyAtStart = el.scrollLeft === 0\n alreadyAtEnd = el.scrollLeft + el.clientWidth === el.scrollWidth\n }\n\n const scrollingUp = delta < 0\n const scrollingDown = delta > 0\n\n if (!alreadyAtStart && scrollingUp) return true\n if (!alreadyAtEnd && scrollingDown) return true\n if ((alreadyAtStart || alreadyAtEnd) && el.parentNode) {\n return this.shouldScroll(el.parentNode as Element, e)\n }\n\n return false\n },\n isInside (el: Element, parent: Element): boolean {\n if (el === parent) {\n return true\n } else if (el === null || el === document.body) {\n return false\n } else {\n return this.isInside(el.parentNode as Element, parent)\n }\n },\n checkPath (e: WheelEvent) {\n const path = composedPath(e)\n\n if (e.type === 'keydown' && path[0] === document.body) {\n const dialog = this.$refs.dialog\n // getSelection returns null in firefox in some edge cases, can be ignored\n const selected = window.getSelection()!.anchorNode as Element\n if (dialog && this.hasScrollbar(dialog) && this.isInside(selected, dialog)) {\n return !this.shouldScroll(dialog, e)\n }\n return true\n }\n\n for (let index = 0; index < path.length; index++) {\n const el = path[index]\n\n if (el === document) return true\n if (el === document.documentElement) return true\n if (el === this.$refs.content) return true\n\n if (this.hasScrollbar(el as Element)) return !this.shouldScroll(el as Element, e)\n }\n\n return true\n },\n hideScroll () {\n if (this.$vuetify.breakpoint.smAndDown) {\n document.documentElement!.classList.add('overflow-y-hidden')\n } else {\n addPassiveEventListener(window, 'wheel', this.scrollListener, { passive: false })\n window.addEventListener('keydown', this.scrollListener)\n }\n },\n showScroll () {\n document.documentElement!.classList.remove('overflow-y-hidden')\n window.removeEventListener('wheel', this.scrollListener)\n window.removeEventListener('keydown', this.scrollListener)\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
@@ -15,10 +15,6 @@ function factory() {
15
15
  var event = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'update:modelValue';
16
16
  return (0, _vue.defineComponent)({
17
17
  name: 'proxyable',
18
- model: {
19
- prop: prop,
20
- event: event
21
- },
22
18
  props: _defineProperty({}, prop, {
23
19
  required: false
24
20
  }),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/proxyable/index.ts"],"names":[],"mappings":";;;;;;;;AAAA;;;;AAQM,SAAU,OAAV,GAEuB;AAAA,MAD3B,IAC2B,uEADpB,YACoB;AAAA,MAA3B,KAA2B,uEAAnB,mBAAmB;AAE3B,SAAO,0BAAgB;AACrB,IAAA,IAAI,EAAE,WADe;AAGrB,IAAA,KAAK,EAAE;AACL,MAAA,IAAI,EAAJ,IADK;AAEL,MAAA,KAAK,EAAL;AAFK,KAHc;AAQrB,IAAA,KAAK,sBACF,IADE,EACK;AACN,MAAA,QAAQ,EAAE;AADJ,KADL,CARgB;AAcrB,IAAA,IAdqB,kBAcjB;AACF,aAAO;AACL,QAAA,iBAAiB,EAAE,KAAK,IAAL;AADd,OAAP;AAGD,KAlBoB;AAoBrB,IAAA,QAAQ,EAAE;AACR,MAAA,aAAa,EAAE;AACb,QAAA,GADa,iBACV;AACD,iBAAO,KAAK,iBAAZ;AACD,SAHY;AAIb,QAAA,GAJa,eAIR,GAJQ,EAIA;AACX,cAAI,GAAG,KAAK,KAAK,iBAAjB,EAAoC;AAEpC,eAAK,iBAAL,GAAyB,GAAzB;AAEA,eAAK,KAAL,CAAW,KAAX,EAAkB,GAAlB;AACD;AAVY;AADP,KApBW;AAmCrB,IAAA,KAAK,sBACF,IADE,YACK,GADL,EACQ;AACT,WAAK,iBAAL,GAAyB,GAAzB;AACD,KAHE;AAnCgB,GAAhB,CAAP;AAyCD;AAED;;;AACA,IAAM,SAAS,GAAG,OAAO,EAAzB;eAEe,S","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 model: {\n prop,\n event,\n },\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;;;;AAQM,SAAU,OAAV,GAEuB;AAAA,MAD3B,IAC2B,uEADpB,YACoB;AAAA,MAA3B,KAA2B,uEAAnB,mBAAmB;AAE3B,SAAO,0BAAgB;AACrB,IAAA,IAAI,EAAE,WADe;AAGrB,IAAA,KAAK,sBACF,IADE,EACK;AACN,MAAA,QAAQ,EAAE;AADJ,KADL,CAHgB;AASrB,IAAA,IATqB,kBASjB;AACF,aAAO;AACL,QAAA,iBAAiB,EAAE,KAAK,IAAL;AADd,OAAP;AAGD,KAboB;AAerB,IAAA,QAAQ,EAAE;AACR,MAAA,aAAa,EAAE;AACb,QAAA,GADa,iBACV;AACD,iBAAO,KAAK,iBAAZ;AACD,SAHY;AAIb,QAAA,GAJa,eAIR,GAJQ,EAIA;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,sBACF,IADE,YACK,GADL,EACQ;AACT,WAAK,iBAAL,GAAyB,GAAzB;AACD,KAHE;AA9BgB,GAAhB,CAAP;AAoCD;AAED;;;AACA,IAAM,SAAS,GAAG,OAAO,EAAzB;eAEe,S","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"}
@@ -32,10 +32,6 @@ function prevent(e) {
32
32
 
33
33
  var _default = (0, _mixins.default)(_VInput.default, _rippleable.default, _comparable.default).extend({
34
34
  name: 'selectable',
35
- model: {
36
- prop: 'inputValue',
37
- event: 'change'
38
- },
39
35
  props: {
40
36
  id: String,
41
37
  value: null,
@@ -101,7 +97,7 @@ var _default = (0, _mixins.default)(_VInput.default, _rippleable.default, _compa
101
97
 
102
98
  if (!label) return label; // Label shouldn't cause the input to focus
103
99
 
104
- label.onClick = prevent;
100
+ label.onClick = this.onClick;
105
101
  return label;
106
102
  },
107
103
  genInput: function genInput(type, attrs) {
@@ -123,6 +119,7 @@ var _default = (0, _mixins.default)(_VInput.default, _rippleable.default, _compa
123
119
  }));
124
120
  },
125
121
  onClick: function onClick(e) {
122
+ e.preventDefault();
126
123
  this.onChange();
127
124
  this.$emit('click', e);
128
125
  },
@@ -1 +1 @@
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 model: {\n prop: 'inputValue',\n event: 'change',\n },\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 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 = prevent\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 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 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"}
@@ -28,7 +28,7 @@ var _default = (0, _vue.defineComponent)({
28
28
  return this.objHeight();
29
29
  }
30
30
  },
31
- beforeDestroy: function beforeDestroy() {
31
+ beforeUnmount: function beforeUnmount() {
32
32
  window.removeEventListener('scroll', this.translate, false);
33
33
  window.removeEventListener('resize', this.translate, false);
34
34
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/translatable/index.ts"],"names":[],"mappings":";;;;;;;AAAA;;eAEe,0BAAgB;AAC7B,EAAA,IAAI,EAAE,cADuB;AAG7B,EAAA,KAAK,EAAE;AACL,IAAA,MAAM,EAAE;AADH,GAHsB;AAO7B,EAAA,IAAI,EAAE;AAAA,WAAO;AACX,MAAA,WAAW,EAAE,CADF;AAEX,MAAA,QAAQ,EAAE,CAFC;AAGX,MAAA,YAAY,EAAE,CAHH;AAIX,MAAA,eAAe,EAAE,CAJN;AAKX,MAAA,SAAS,EAAE,CALA;AAMX,MAAA,YAAY,EAAE,CANH;AAOX,MAAA,YAAY,EAAE;AAPH,KAAP;AAAA,GAPuB;AAiB7B,EAAA,QAAQ,EAAE;AACR,IAAA,SADQ,uBACC;AACP,aAAO,KAAK,SAAL,EAAP;AACD;AAHO,GAjBmB;AAuB7B,EAAA,aAvB6B,2BAuBhB;AACX,IAAA,MAAM,CAAC,mBAAP,CAA2B,QAA3B,EAAqC,KAAK,SAA1C,EAAqD,KAArD;AACA,IAAA,MAAM,CAAC,mBAAP,CAA2B,QAA3B,EAAqC,KAAK,SAA1C,EAAqD,KAArD;AACD,GA1B4B;AA4B7B,EAAA,OAAO,EAAE;AACP,IAAA,cADO,4BACO;AACZ,UAAM,MAAM,GAAG,KAAK,GAAL,CAAS,qBAAT,EAAf;AAEA,WAAK,SAAL,GAAiB,MAAM,CAAC,WAAxB;AACA,WAAK,YAAL,GAAoB,KAAK,SAAL,GAAiB,KAAK,MAA1C;AACA,WAAK,WAAL,GAAmB,MAAM,CAAC,GAAP,GAAa,KAAK,SAArC;AACA,WAAK,YAAL,GAAoB,MAAM,CAAC,WAA3B;AACA,WAAK,YAAL,GAAoB,KAAK,SAAL,GAAiB,KAAK,YAA1C;AACD,KATM;AAUP,IAAA,SAVO,uBAUE;AACP,MAAA,MAAM,CAAC,gBAAP,CAAwB,QAAxB,EAAkC,KAAK,SAAvC,EAAkD,KAAlD;AACA,MAAA,MAAM,CAAC,gBAAP,CAAwB,QAAxB,EAAkC,KAAK,SAAvC,EAAkD,KAAlD;AACD,KAbM;;AAcP;AACA,IAAA,SAfO,uBAeE;AACP,YAAM,IAAI,KAAJ,CAAU,mBAAV,CAAN;AACD,KAjBM;AAkBP,IAAA,SAlBO,uBAkBE;AACP,WAAK,cAAL;AAEA,WAAK,eAAL,GACE,CAAC,KAAK,YAAL,GAAoB,KAAK,WAA1B,KACC,QAAQ,CAAC,KAAK,MAAN,CAAR,GAAwB,KAAK,YAD9B,CADF;AAKA,WAAK,QAAL,GAAgB,IAAI,CAAC,KAAL,CAAW,KAAK,YAAL,GAAoB,KAAK,eAApC,CAAhB;AACD;AA3BM;AA5BoB,CAAhB,C","sourcesContent":["import {defineComponent} from 'vue'\n\nexport default defineComponent({\n name: 'translatable',\n\n props: {\n height: Number,\n },\n\n data: () => ({\n elOffsetTop: 0,\n parallax: 0,\n parallaxDist: 0,\n percentScrolled: 0,\n scrollTop: 0,\n windowHeight: 0,\n windowBottom: 0,\n }),\n\n computed: {\n imgHeight (): number {\n return this.objHeight()\n },\n },\n\n beforeDestroy () {\n window.removeEventListener('scroll', this.translate, false)\n window.removeEventListener('resize', this.translate, false)\n },\n\n methods: {\n calcDimensions () {\n const offset = this.$el.getBoundingClientRect()\n\n this.scrollTop = window.pageYOffset\n this.parallaxDist = this.imgHeight - this.height\n this.elOffsetTop = offset.top + this.scrollTop\n this.windowHeight = window.innerHeight\n this.windowBottom = this.scrollTop + this.windowHeight\n },\n listeners () {\n window.addEventListener('scroll', this.translate, false)\n window.addEventListener('resize', this.translate, false)\n },\n /** @abstract **/\n objHeight (): number {\n throw new Error('Not implemented !')\n },\n translate () {\n this.calcDimensions()\n\n this.percentScrolled = (\n (this.windowBottom - this.elOffsetTop) /\n (parseInt(this.height) + this.windowHeight)\n )\n\n this.parallax = Math.round(this.parallaxDist * this.percentScrolled)\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/translatable/index.ts"],"names":[],"mappings":";;;;;;;AAAA;;eAEe,0BAAgB;AAC7B,EAAA,IAAI,EAAE,cADuB;AAG7B,EAAA,KAAK,EAAE;AACL,IAAA,MAAM,EAAE;AADH,GAHsB;AAO7B,EAAA,IAAI,EAAE;AAAA,WAAO;AACX,MAAA,WAAW,EAAE,CADF;AAEX,MAAA,QAAQ,EAAE,CAFC;AAGX,MAAA,YAAY,EAAE,CAHH;AAIX,MAAA,eAAe,EAAE,CAJN;AAKX,MAAA,SAAS,EAAE,CALA;AAMX,MAAA,YAAY,EAAE,CANH;AAOX,MAAA,YAAY,EAAE;AAPH,KAAP;AAAA,GAPuB;AAiB7B,EAAA,QAAQ,EAAE;AACR,IAAA,SADQ,uBACC;AACP,aAAO,KAAK,SAAL,EAAP;AACD;AAHO,GAjBmB;AAuB7B,EAAA,aAvB6B,2BAuBhB;AACX,IAAA,MAAM,CAAC,mBAAP,CAA2B,QAA3B,EAAqC,KAAK,SAA1C,EAAqD,KAArD;AACA,IAAA,MAAM,CAAC,mBAAP,CAA2B,QAA3B,EAAqC,KAAK,SAA1C,EAAqD,KAArD;AACD,GA1B4B;AA4B7B,EAAA,OAAO,EAAE;AACP,IAAA,cADO,4BACO;AACZ,UAAM,MAAM,GAAG,KAAK,GAAL,CAAS,qBAAT,EAAf;AAEA,WAAK,SAAL,GAAiB,MAAM,CAAC,WAAxB;AACA,WAAK,YAAL,GAAoB,KAAK,SAAL,GAAiB,KAAK,MAA1C;AACA,WAAK,WAAL,GAAmB,MAAM,CAAC,GAAP,GAAa,KAAK,SAArC;AACA,WAAK,YAAL,GAAoB,MAAM,CAAC,WAA3B;AACA,WAAK,YAAL,GAAoB,KAAK,SAAL,GAAiB,KAAK,YAA1C;AACD,KATM;AAUP,IAAA,SAVO,uBAUE;AACP,MAAA,MAAM,CAAC,gBAAP,CAAwB,QAAxB,EAAkC,KAAK,SAAvC,EAAkD,KAAlD;AACA,MAAA,MAAM,CAAC,gBAAP,CAAwB,QAAxB,EAAkC,KAAK,SAAvC,EAAkD,KAAlD;AACD,KAbM;;AAcP;AACA,IAAA,SAfO,uBAeE;AACP,YAAM,IAAI,KAAJ,CAAU,mBAAV,CAAN;AACD,KAjBM;AAkBP,IAAA,SAlBO,uBAkBE;AACP,WAAK,cAAL;AAEA,WAAK,eAAL,GACE,CAAC,KAAK,YAAL,GAAoB,KAAK,WAA1B,KACC,QAAQ,CAAC,KAAK,MAAN,CAAR,GAAwB,KAAK,YAD9B,CADF;AAKA,WAAK,QAAL,GAAgB,IAAI,CAAC,KAAL,CAAW,KAAK,YAAL,GAAoB,KAAK,eAApC,CAAhB;AACD;AA3BM;AA5BoB,CAAhB,C","sourcesContent":["import {defineComponent} from 'vue'\n\nexport default defineComponent({\n name: 'translatable',\n\n props: {\n height: Number,\n },\n\n data: () => ({\n elOffsetTop: 0,\n parallax: 0,\n parallaxDist: 0,\n percentScrolled: 0,\n scrollTop: 0,\n windowHeight: 0,\n windowBottom: 0,\n }),\n\n computed: {\n imgHeight (): number {\n return this.objHeight()\n },\n },\n\n beforeUnmount () {\n window.removeEventListener('scroll', this.translate, false)\n window.removeEventListener('resize', this.translate, false)\n },\n\n methods: {\n calcDimensions () {\n const offset = this.$el.getBoundingClientRect()\n\n this.scrollTop = window.pageYOffset\n this.parallaxDist = this.imgHeight - this.height\n this.elOffsetTop = offset.top + this.scrollTop\n this.windowHeight = window.innerHeight\n this.windowBottom = this.scrollTop + this.windowHeight\n },\n listeners () {\n window.addEventListener('scroll', this.translate, false)\n window.addEventListener('resize', this.translate, false)\n },\n /** @abstract **/\n objHeight (): number {\n throw new Error('Not implemented !')\n },\n translate () {\n this.calcDimensions()\n\n this.percentScrolled = (\n (this.windowBottom - this.elOffsetTop) /\n (parseInt(this.height) + this.windowHeight)\n )\n\n this.parallax = Math.round(this.parallaxDist * this.percentScrolled)\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
@@ -207,7 +207,7 @@ var _default2 = baseMixins.extend({
207
207
  this.$emit('update:error', val);
208
208
  }
209
209
  },
210
- value: function value(val) {
210
+ modelValue: function modelValue(val) {
211
211
  this.lazyValue = val;
212
212
  }
213
213
  },
@@ -217,7 +217,7 @@ var _default2 = baseMixins.extend({
217
217
  created: function created() {
218
218
  this.form && this.form.register(this);
219
219
  },
220
- beforeDestroy: function beforeDestroy() {
220
+ beforeUnmount: function beforeUnmount() {
221
221
  this.form && this.form.unregister(this);
222
222
  },
223
223
  methods: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/validatable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Mixins\nimport Colorable from '../colorable'\nimport Themeable from '../themeable'\nimport { inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { deepEqual } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\nimport { InputMessage, InputValidationRules } from 'vuetify/types'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'form', any>('form'),\n Themeable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'validatable',\n\n props: {\n disabled: {\n type: Boolean,\n default: null,\n },\n error: Boolean,\n errorCount: {\n type: [Number, String],\n default: 1,\n },\n errorMessages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator<InputMessage | null>,\n messages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator<InputMessage | null>,\n readonly: {\n type: Boolean,\n default: null,\n },\n rules: {\n type: Array,\n default: () => [],\n } as PropValidator<InputValidationRules>,\n success: Boolean,\n successMessages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator<InputMessage | null>,\n validateOnBlur: Boolean,\n modelValue: { required: false },\n },\n\n data () {\n return {\n errorBucket: [] as string[],\n hasColor: false,\n hasFocused: false,\n hasInput: false,\n isFocused: false,\n isResetting: false,\n lazyValue: this.value,\n valid: false,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.color) return this.color\n // It's assumed that if the input is on a\n // dark background, the user will want to\n // have a white color. If the entire app\n // is setup to be dark, then they will\n // like want to use their primary color\n if (this.isDark && !this.appIsDark) return 'white'\n else return 'primary'\n },\n hasError (): boolean {\n return (\n this.internalErrorMessages.length > 0 ||\n this.errorBucket.length > 0 ||\n this.error\n )\n },\n // TODO: Add logic that allows the user to enable based\n // upon a good validation\n hasSuccess (): boolean {\n return (\n this.internalSuccessMessages.length > 0 ||\n this.success\n )\n },\n externalError (): boolean {\n return this.internalErrorMessages.length > 0 || this.error\n },\n hasMessages (): boolean {\n return this.validationTarget.length > 0\n },\n hasState (): boolean {\n if (this.isDisabled) return false\n\n return (\n this.hasSuccess ||\n (this.shouldValidate && this.hasError)\n )\n },\n internalErrorMessages (): InputValidationRules {\n return this.genInternalMessages(this.errorMessages)\n },\n internalMessages (): InputValidationRules {\n return this.genInternalMessages(this.messages)\n },\n internalSuccessMessages (): InputValidationRules {\n return this.genInternalMessages(this.successMessages)\n },\n internalValue: {\n get (): unknown {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n\n this.$emit('input', val)\n },\n },\n isDisabled (): boolean {\n return this.disabled ?? (\n !!this.form &&\n this.form.disabled\n )\n },\n isInteractive (): boolean {\n return !this.isDisabled && !this.isReadonly\n },\n isReadonly (): boolean {\n return this.readonly ?? (\n !!this.form &&\n this.form.readonly\n )\n },\n shouldValidate (): boolean {\n if (this.externalError) return true\n if (this.isResetting) return false\n\n return this.validateOnBlur\n ? this.hasFocused && !this.isFocused\n : (this.hasInput || this.hasFocused)\n },\n validations (): InputValidationRules {\n return this.validationTarget.slice(0, Number(this.errorCount))\n },\n validationState (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor) return this.computedColor\n return undefined\n },\n validationTarget (): InputValidationRules {\n if (this.internalErrorMessages.length > 0) {\n return this.internalErrorMessages\n } else if (this.successMessages && this.successMessages.length > 0) {\n return this.internalSuccessMessages\n } else if (this.messages && this.messages.length > 0) {\n return this.internalMessages\n } else if (this.shouldValidate) {\n return this.errorBucket\n } else return []\n },\n },\n\n watch: {\n rules: {\n handler (newVal, oldVal) {\n if (deepEqual(newVal, oldVal)) return\n this.validate()\n },\n deep: true,\n },\n internalValue () {\n // If it's the first time we're setting input,\n // mark it with hasInput\n this.hasInput = true\n this.validateOnBlur || this.$nextTick(this.validate)\n },\n isFocused (val) {\n // Should not check validation\n // if disabled\n if (\n !val &&\n !this.isDisabled\n ) {\n this.hasFocused = true\n this.validateOnBlur && this.$nextTick(this.validate)\n }\n },\n isResetting () {\n setTimeout(() => {\n this.hasInput = false\n this.hasFocused = false\n this.isResetting = false\n this.validate()\n }, 0)\n },\n hasError (val) {\n if (this.shouldValidate) {\n this.$emit('update:error', val)\n }\n },\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeMount () {\n this.validate()\n },\n\n created () {\n this.form && this.form.register(this)\n },\n\n beforeDestroy () {\n this.form && this.form.unregister(this)\n },\n\n methods: {\n genInternalMessages (messages: InputMessage | null): InputValidationRules {\n if (!messages) return []\n else if (Array.isArray(messages)) return messages\n else return [messages]\n },\n /** @public */\n reset () {\n this.isResetting = true\n this.internalValue = Array.isArray(this.internalValue)\n ? []\n : null\n },\n /** @public */\n resetValidation () {\n this.isResetting = true\n },\n /** @public */\n validate (force = false, value?: any): boolean {\n const errorBucket = []\n value = value || this.internalValue\n\n if (force) this.hasInput = this.hasFocused = true\n\n for (let index = 0; index < this.rules.length; index++) {\n const rule = this.rules[index]\n const valid = typeof rule === 'function' ? rule(value) : rule\n\n if (valid === false || typeof valid === 'string') {\n errorBucket.push(valid || '')\n } else if (typeof valid !== 'boolean') {\n consoleError(`Rules should return a string or boolean, received '${typeof valid}' instead`, this)\n }\n }\n\n this.errorBucket = errorBucket\n this.valid = errorBucket.length === 0\n\n return this.valid\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/validatable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Mixins\nimport Colorable from '../colorable'\nimport Themeable from '../themeable'\nimport { inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { deepEqual } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\nimport { InputMessage, InputValidationRules } from 'vuetify/types'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'form', any>('form'),\n Themeable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'validatable',\n\n props: {\n disabled: {\n type: Boolean,\n default: null,\n },\n error: Boolean,\n errorCount: {\n type: [Number, String],\n default: 1,\n },\n errorMessages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator<InputMessage | null>,\n messages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator<InputMessage | null>,\n readonly: {\n type: Boolean,\n default: null,\n },\n rules: {\n type: Array,\n default: () => [],\n } as PropValidator<InputValidationRules>,\n success: Boolean,\n successMessages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator<InputMessage | null>,\n validateOnBlur: Boolean,\n modelValue: { required: false },\n },\n\n data () {\n return {\n errorBucket: [] as string[],\n hasColor: false,\n hasFocused: false,\n hasInput: false,\n isFocused: false,\n isResetting: false,\n lazyValue: this.value,\n valid: false,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.color) return this.color\n // It's assumed that if the input is on a\n // dark background, the user will want to\n // have a white color. If the entire app\n // is setup to be dark, then they will\n // like want to use their primary color\n if (this.isDark && !this.appIsDark) return 'white'\n else return 'primary'\n },\n hasError (): boolean {\n return (\n this.internalErrorMessages.length > 0 ||\n this.errorBucket.length > 0 ||\n this.error\n )\n },\n // TODO: Add logic that allows the user to enable based\n // upon a good validation\n hasSuccess (): boolean {\n return (\n this.internalSuccessMessages.length > 0 ||\n this.success\n )\n },\n externalError (): boolean {\n return this.internalErrorMessages.length > 0 || this.error\n },\n hasMessages (): boolean {\n return this.validationTarget.length > 0\n },\n hasState (): boolean {\n if (this.isDisabled) return false\n\n return (\n this.hasSuccess ||\n (this.shouldValidate && this.hasError)\n )\n },\n internalErrorMessages (): InputValidationRules {\n return this.genInternalMessages(this.errorMessages)\n },\n internalMessages (): InputValidationRules {\n return this.genInternalMessages(this.messages)\n },\n internalSuccessMessages (): InputValidationRules {\n return this.genInternalMessages(this.successMessages)\n },\n internalValue: {\n get (): unknown {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n\n this.$emit('input', val)\n },\n },\n isDisabled (): boolean {\n return this.disabled ?? (\n !!this.form &&\n this.form.disabled\n )\n },\n isInteractive (): boolean {\n return !this.isDisabled && !this.isReadonly\n },\n isReadonly (): boolean {\n return this.readonly ?? (\n !!this.form &&\n this.form.readonly\n )\n },\n shouldValidate (): boolean {\n if (this.externalError) return true\n if (this.isResetting) return false\n\n return this.validateOnBlur\n ? this.hasFocused && !this.isFocused\n : (this.hasInput || this.hasFocused)\n },\n validations (): InputValidationRules {\n return this.validationTarget.slice(0, Number(this.errorCount))\n },\n validationState (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor) return this.computedColor\n return undefined\n },\n validationTarget (): InputValidationRules {\n if (this.internalErrorMessages.length > 0) {\n return this.internalErrorMessages\n } else if (this.successMessages && this.successMessages.length > 0) {\n return this.internalSuccessMessages\n } else if (this.messages && this.messages.length > 0) {\n return this.internalMessages\n } else if (this.shouldValidate) {\n return this.errorBucket\n } else return []\n },\n },\n\n watch: {\n rules: {\n handler (newVal, oldVal) {\n if (deepEqual(newVal, oldVal)) return\n this.validate()\n },\n deep: true,\n },\n internalValue () {\n // If it's the first time we're setting input,\n // mark it with hasInput\n this.hasInput = true\n this.validateOnBlur || this.$nextTick(this.validate)\n },\n isFocused (val) {\n // Should not check validation\n // if disabled\n if (\n !val &&\n !this.isDisabled\n ) {\n this.hasFocused = true\n this.validateOnBlur && this.$nextTick(this.validate)\n }\n },\n isResetting () {\n setTimeout(() => {\n this.hasInput = false\n this.hasFocused = false\n this.isResetting = false\n this.validate()\n }, 0)\n },\n hasError (val) {\n if (this.shouldValidate) {\n this.$emit('update:error', val)\n }\n },\n modelValue (val) {\n this.lazyValue = val\n },\n },\n\n beforeMount () {\n this.validate()\n },\n\n created () {\n this.form && this.form.register(this)\n },\n\n beforeUnmount () {\n this.form && this.form.unregister(this)\n },\n\n methods: {\n genInternalMessages (messages: InputMessage | null): InputValidationRules {\n if (!messages) return []\n else if (Array.isArray(messages)) return messages\n else return [messages]\n },\n /** @public */\n reset () {\n this.isResetting = true\n this.internalValue = Array.isArray(this.internalValue)\n ? []\n : null\n },\n /** @public */\n resetValidation () {\n this.isResetting = true\n },\n /** @public */\n validate (force = false, value?: any): boolean {\n const errorBucket = []\n value = value || this.internalValue\n\n if (force) this.hasInput = this.hasFocused = true\n\n for (let index = 0; index < this.rules.length; index++) {\n const rule = this.rules[index]\n const valid = typeof rule === 'function' ? rule(value) : rule\n\n if (valid === false || typeof valid === 'string') {\n errorBucket.push(valid || '')\n } else if (typeof valid !== 'boolean') {\n consoleError(`Rules should return a string or boolean, received '${typeof valid}' instead`, this)\n }\n }\n\n this.errorBucket = errorBucket\n this.valid = errorBucket.length === 0\n\n return this.valid\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.Breakpoint = void 0;
9
9
 
10
+ var _vue = require("vue");
11
+
10
12
  var _service = require("../service");
11
13
 
12
14
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -72,7 +74,7 @@ var Breakpoint = /*#__PURE__*/function (_Service) {
72
74
  _this.mobileBreakpoint = mobileBreakpoint;
73
75
  _this.scrollBarWidth = scrollBarWidth;
74
76
  _this.thresholds = thresholds;
75
- return _this;
77
+ return _possibleConstructorReturn(_this, (0, _vue.reactive)(_assertThisInitialized(_this)));
76
78
  }
77
79
 
78
80
  _createClass(Breakpoint, [{
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/breakpoint/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Extensions\nimport { Service } from '../service'\n\n// Types\nimport { VuetifyPreset } from 'vuetify/types/services/presets'\nimport { Breakpoint as IBreakpoint } from 'vuetify/types/services/breakpoint'\n\nexport class Breakpoint extends Service implements IBreakpoint {\n public static property: 'breakpoint' = 'breakpoint'\n\n // Public\n public xs = false\n\n public sm = false\n\n public md = false\n\n public lg = false\n\n public xl = false\n\n public xsOnly = false\n\n public smOnly = false\n\n public smAndDown = false\n\n public smAndUp = false\n\n public mdOnly = false\n\n public mdAndDown = false\n\n public mdAndUp = false\n\n public lgOnly = false\n\n public lgAndDown = false\n\n public lgAndUp = false\n\n public xlOnly = false\n\n // Value is xs to match v2.x functionality\n public name: IBreakpoint['name'] = 'xs'\n\n public height = 0\n\n public width = 0\n\n // TODO: Add functionality to detect this dynamically in v3\n // Value is true to match v2.x functionality\n public mobile = true\n\n public mobileBreakpoint: IBreakpoint['mobileBreakpoint']\n\n public thresholds: IBreakpoint['thresholds']\n\n public scrollBarWidth: IBreakpoint['scrollBarWidth']\n\n private resizeTimeout = 0\n\n constructor (preset: VuetifyPreset) {\n super()\n\n const {\n mobileBreakpoint,\n scrollBarWidth,\n thresholds,\n } = preset[Breakpoint.property]\n\n this.mobileBreakpoint = mobileBreakpoint\n this.scrollBarWidth = scrollBarWidth\n this.thresholds = thresholds\n }\n\n public init () {\n this.update()\n\n /* istanbul ignore if */\n if (typeof window === 'undefined') return\n\n window.addEventListener(\n 'resize',\n this.onResize.bind(this),\n { passive: true }\n )\n }\n\n /* eslint-disable-next-line max-statements */\n public update (ssr = false) {\n const height = ssr ? 0 : this.getClientHeight()\n const width = ssr ? 0 : this.getClientWidth()\n\n const xs = width < this.thresholds.xs\n const sm = width < this.thresholds.sm && !xs\n const md = width < (this.thresholds.md - this.scrollBarWidth) && !(sm || xs)\n const lg = width < (this.thresholds.lg - this.scrollBarWidth) && !(md || sm || xs)\n const xl = width >= (this.thresholds.lg - this.scrollBarWidth)\n\n this.height = height\n this.width = width\n\n this.xs = xs\n this.sm = sm\n this.md = md\n this.lg = lg\n this.xl = xl\n\n this.xsOnly = xs\n this.smOnly = sm\n this.smAndDown = (xs || sm) && !(md || lg || xl)\n this.smAndUp = !xs && (sm || md || lg || xl)\n this.mdOnly = md\n this.mdAndDown = (xs || sm || md) && !(lg || xl)\n this.mdAndUp = !(xs || sm) && (md || lg || xl)\n this.lgOnly = lg\n this.lgAndDown = (xs || sm || md || lg) && !xl\n this.lgAndUp = !(xs || sm || md) && (lg || xl)\n this.xlOnly = xl\n\n switch (true) {\n case (xs):\n this.name = 'xs'\n break\n case (sm):\n this.name = 'sm'\n break\n case (md):\n this.name = 'md'\n break\n case (lg):\n this.name = 'lg'\n break\n default:\n this.name = 'xl'\n break\n }\n\n if (typeof this.mobileBreakpoint === 'number') {\n this.mobile = width < parseInt(this.mobileBreakpoint, 10)\n\n return\n }\n\n const breakpoints = {\n xs: 0,\n sm: 1,\n md: 2,\n lg: 3,\n xl: 4,\n } as const\n\n const current = breakpoints[this.name]\n const max = breakpoints[this.mobileBreakpoint]\n\n this.mobile = current <= max\n }\n\n private onResize () {\n clearTimeout(this.resizeTimeout)\n\n // Added debounce to match what\n // v-resize used to do but was\n // removed due to a memory leak\n // https://github.com/vuetifyjs/vuetify/pull/2997\n this.resizeTimeout = window.setTimeout(this.update.bind(this), 200)\n }\n\n // Cross-browser support as described in:\n // https://stackoverflow.com/questions/1248081\n private getClientWidth () {\n /* istanbul ignore if */\n if (typeof document === 'undefined') return 0 // SSR\n return Math.max(\n document.documentElement!.clientWidth,\n window.innerWidth || 0\n )\n }\n\n private getClientHeight () {\n /* istanbul ignore if */\n if (typeof document === 'undefined') return 0 // SSR\n return Math.max(\n document.documentElement!.clientHeight,\n window.innerHeight || 0\n )\n }\n}\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/services/breakpoint/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { reactive } from 'vue'\n\n\n// Extensions\nimport { Service } from '../service'\n\n// Types\nimport { VuetifyPreset } from 'vuetify/types/services/presets'\nimport { Breakpoint as IBreakpoint } from 'vuetify/types/services/breakpoint'\n\nexport class Breakpoint extends Service implements IBreakpoint {\n public static property: 'breakpoint' = 'breakpoint'\n\n // Public\n public xs = false\n\n public sm = false\n\n public md = false\n\n public lg = false\n\n public xl = false\n\n public xsOnly = false\n\n public smOnly = false\n\n public smAndDown = false\n\n public smAndUp = false\n\n public mdOnly = false\n\n public mdAndDown = false\n\n public mdAndUp = false\n\n public lgOnly = false\n\n public lgAndDown = false\n\n public lgAndUp = false\n\n public xlOnly = false\n\n // Value is xs to match v2.x functionality\n public name: IBreakpoint['name'] = 'xs'\n\n public height = 0\n\n public width = 0\n\n // TODO: Add functionality to detect this dynamically in v3\n // Value is true to match v2.x functionality\n public mobile = true\n\n public mobileBreakpoint: IBreakpoint['mobileBreakpoint']\n\n public thresholds: IBreakpoint['thresholds']\n\n public scrollBarWidth: IBreakpoint['scrollBarWidth']\n\n private resizeTimeout = 0\n\n constructor (preset: VuetifyPreset) {\n super()\n\n const {\n mobileBreakpoint,\n scrollBarWidth,\n thresholds,\n } = preset[Breakpoint.property]\n\n this.mobileBreakpoint = mobileBreakpoint\n this.scrollBarWidth = scrollBarWidth\n this.thresholds = thresholds\n\n return reactive(this)\n }\n\n public init () {\n this.update()\n\n /* istanbul ignore if */\n if (typeof window === 'undefined') return\n\n window.addEventListener(\n 'resize',\n this.onResize.bind(this),\n { passive: true }\n )\n }\n\n /* eslint-disable-next-line max-statements */\n public update (ssr = false) {\n const height = ssr ? 0 : this.getClientHeight()\n const width = ssr ? 0 : this.getClientWidth()\n\n const xs = width < this.thresholds.xs\n const sm = width < this.thresholds.sm && !xs\n const md = width < (this.thresholds.md - this.scrollBarWidth) && !(sm || xs)\n const lg = width < (this.thresholds.lg - this.scrollBarWidth) && !(md || sm || xs)\n const xl = width >= (this.thresholds.lg - this.scrollBarWidth)\n\n this.height = height\n this.width = width\n\n this.xs = xs\n this.sm = sm\n this.md = md\n this.lg = lg\n this.xl = xl\n\n this.xsOnly = xs\n this.smOnly = sm\n this.smAndDown = (xs || sm) && !(md || lg || xl)\n this.smAndUp = !xs && (sm || md || lg || xl)\n this.mdOnly = md\n this.mdAndDown = (xs || sm || md) && !(lg || xl)\n this.mdAndUp = !(xs || sm) && (md || lg || xl)\n this.lgOnly = lg\n this.lgAndDown = (xs || sm || md || lg) && !xl\n this.lgAndUp = !(xs || sm || md) && (lg || xl)\n this.xlOnly = xl\n\n switch (true) {\n case (xs):\n this.name = 'xs'\n break\n case (sm):\n this.name = 'sm'\n break\n case (md):\n this.name = 'md'\n break\n case (lg):\n this.name = 'lg'\n break\n default:\n this.name = 'xl'\n break\n }\n\n if (typeof this.mobileBreakpoint === 'number') {\n this.mobile = width < parseInt(this.mobileBreakpoint, 10)\n\n return\n }\n\n const breakpoints = {\n xs: 0,\n sm: 1,\n md: 2,\n lg: 3,\n xl: 4,\n } as const\n\n const current = breakpoints[this.name]\n const max = breakpoints[this.mobileBreakpoint]\n\n this.mobile = current <= max\n }\n\n private onResize () {\n clearTimeout(this.resizeTimeout)\n\n // Added debounce to match what\n // v-resize used to do but was\n // removed due to a memory leak\n // https://github.com/vuetifyjs/vuetify/pull/2997\n this.resizeTimeout = window.setTimeout(this.update.bind(this), 200)\n }\n\n // Cross-browser support as described in:\n // https://stackoverflow.com/questions/1248081\n private getClientWidth () {\n /* istanbul ignore if */\n if (typeof document === 'undefined') return 0 // SSR\n return Math.max(\n document.documentElement!.clientWidth,\n window.innerWidth || 0\n )\n }\n\n private getClientHeight () {\n /* istanbul ignore if */\n if (typeof document === 'undefined') return 0 // SSR\n return Math.max(\n document.documentElement!.clientHeight,\n window.innerHeight || 0\n )\n }\n}\n"],"sourceRoot":"","file":"index.js"}