@dimailn/vuetify 2.7.2-alpha31 → 2.7.2-alpha33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/dist/vuetify.js +551 -368
  2. package/dist/vuetify.js.map +1 -1
  3. package/dist/vuetify.min.css +1 -1
  4. package/dist/vuetify.min.js +2 -2
  5. package/es5/components/VCalendar/VCalendarWeekly.js +10 -5
  6. package/es5/components/VCalendar/VCalendarWeekly.js.map +1 -1
  7. package/es5/components/VCheckbox/VCheckbox.js +7 -9
  8. package/es5/components/VCheckbox/VCheckbox.js.map +1 -1
  9. package/es5/components/VContent/VContent.js +24 -5
  10. package/es5/components/VContent/VContent.js.map +1 -1
  11. package/es5/components/VCounter/VCounter.js.map +1 -1
  12. package/es5/components/VDatePicker/VDatePicker.js +15 -7
  13. package/es5/components/VDatePicker/VDatePicker.js.map +1 -1
  14. package/es5/components/VDatePicker/VDatePickerTitle.js +30 -19
  15. package/es5/components/VDatePicker/VDatePickerTitle.js.map +1 -1
  16. package/es5/components/VDatePicker/mixins/date-picker-table.js +1 -1
  17. package/es5/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  18. package/es5/components/VDatePicker/util/eventHelpers.js +27 -17
  19. package/es5/components/VDatePicker/util/eventHelpers.js.map +1 -1
  20. package/es5/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
  21. package/es5/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
  22. package/es5/components/VGrid/VCol.js +3 -1
  23. package/es5/components/VGrid/VCol.js.map +1 -1
  24. package/es5/components/VGrid/VContainer.js +23 -10
  25. package/es5/components/VGrid/VContainer.js.map +1 -1
  26. package/es5/components/VGrid/grid.js +33 -15
  27. package/es5/components/VGrid/grid.js.map +1 -1
  28. package/es5/components/VHover/VHover.js +23 -17
  29. package/es5/components/VHover/VHover.js.map +1 -1
  30. package/es5/components/VIcon/VIcon.js +77 -53
  31. package/es5/components/VIcon/VIcon.js.map +1 -1
  32. package/es5/components/VItemGroup/VItem.js +7 -3
  33. package/es5/components/VItemGroup/VItem.js.map +1 -1
  34. package/es5/components/VLabel/VLabel.js +3 -1
  35. package/es5/components/VLabel/VLabel.js.map +1 -1
  36. package/es5/components/VOtpInput/VOtpInput.js +54 -33
  37. package/es5/components/VOtpInput/VOtpInput.js.map +1 -1
  38. package/es5/components/VOverflowBtn/VOverflowBtn.js +14 -13
  39. package/es5/components/VOverflowBtn/VOverflowBtn.js.map +1 -1
  40. package/es5/components/VProgressLinear/VProgressLinear.js +12 -33
  41. package/es5/components/VProgressLinear/VProgressLinear.js.map +1 -1
  42. package/es5/components/VSelect/VSelect.js +4 -1
  43. package/es5/components/VSelect/VSelect.js.map +1 -1
  44. package/es5/components/VStepper/VStepper.js +1 -1
  45. package/es5/components/VStepper/VStepper.js.map +1 -1
  46. package/es5/components/VStepper/VStepperContent.js +2 -5
  47. package/es5/components/VStepper/VStepperContent.js.map +1 -1
  48. package/es5/components/VSwitch/VSwitch.js +1 -1
  49. package/es5/components/VSwitch/VSwitch.js.map +1 -1
  50. package/es5/components/VTextField/VTextField.js +2 -1
  51. package/es5/components/VTextField/VTextField.js.map +1 -1
  52. package/es5/components/VTooltip/VTooltip.js +0 -7
  53. package/es5/components/VTooltip/VTooltip.js.map +1 -1
  54. package/es5/directives/color/index.js +6 -3
  55. package/es5/directives/color/index.js.map +1 -1
  56. package/es5/directives/ripple/index.js +5 -2
  57. package/es5/directives/ripple/index.js.map +1 -1
  58. package/es5/directives/scroll/index.js +1 -2
  59. package/es5/directives/scroll/index.js.map +1 -1
  60. package/es5/directives/touch/index.js +7 -4
  61. package/es5/directives/touch/index.js.map +1 -1
  62. package/es5/framework.js +1 -1
  63. package/es5/mixins/activatable/index.js +0 -8
  64. package/es5/mixins/activatable/index.js.map +1 -1
  65. package/es5/mixins/groupable/index.js.map +1 -1
  66. package/es5/mixins/positionable/index.js.map +1 -1
  67. package/es5/mixins/proxyable/index.js.map +1 -1
  68. package/es5/mixins/registrable/index.js.map +1 -1
  69. package/es5/mixins/selectable/index.js +4 -2
  70. package/es5/mixins/selectable/index.js.map +1 -1
  71. package/es5/mixins/toggleable/index.js.map +1 -1
  72. package/es5/services/goto/util.js +42 -3
  73. package/es5/services/goto/util.js.map +1 -1
  74. package/es5/services/theme/index.js +20 -71
  75. package/es5/services/theme/index.js.map +1 -1
  76. package/es5/util/mergeData.js +6 -5
  77. package/es5/util/mergeData.js.map +1 -1
  78. package/es5/util/mixins.js +4 -3
  79. package/es5/util/mixins.js.map +1 -1
  80. package/lib/components/VCalendar/VCalendarWeekly.js +11 -6
  81. package/lib/components/VCalendar/VCalendarWeekly.js.map +1 -1
  82. package/lib/components/VCheckbox/VCheckbox.js +5 -8
  83. package/lib/components/VCheckbox/VCheckbox.js.map +1 -1
  84. package/lib/components/VContent/VContent.js +18 -3
  85. package/lib/components/VContent/VContent.js.map +1 -1
  86. package/lib/components/VCounter/VCounter.js.map +1 -1
  87. package/lib/components/VDatePicker/VDatePicker.js +17 -7
  88. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  89. package/lib/components/VDatePicker/VDatePickerTitle.js +25 -14
  90. package/lib/components/VDatePicker/VDatePickerTitle.js.map +1 -1
  91. package/lib/components/VDatePicker/mixins/date-picker-table.js +1 -1
  92. package/lib/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  93. package/lib/components/VDatePicker/util/eventHelpers.js +26 -14
  94. package/lib/components/VDatePicker/util/eventHelpers.js.map +1 -1
  95. package/lib/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
  96. package/lib/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
  97. package/lib/components/VGrid/VCol.js +3 -1
  98. package/lib/components/VGrid/VCol.js.map +1 -1
  99. package/lib/components/VGrid/VContainer.js +11 -10
  100. package/lib/components/VGrid/VContainer.js.map +1 -1
  101. package/lib/components/VGrid/grid.js +15 -14
  102. package/lib/components/VGrid/grid.js.map +1 -1
  103. package/lib/components/VHover/VHover.js +23 -18
  104. package/lib/components/VHover/VHover.js.map +1 -1
  105. package/lib/components/VIcon/VIcon.js +79 -57
  106. package/lib/components/VIcon/VIcon.js.map +1 -1
  107. package/lib/components/VItemGroup/VItem.js +3 -2
  108. package/lib/components/VItemGroup/VItem.js.map +1 -1
  109. package/lib/components/VLabel/VLabel.js +3 -1
  110. package/lib/components/VLabel/VLabel.js.map +1 -1
  111. package/lib/components/VOtpInput/VOtpInput.js +58 -34
  112. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  113. package/lib/components/VOverflowBtn/VOverflowBtn.js +14 -14
  114. package/lib/components/VOverflowBtn/VOverflowBtn.js.map +1 -1
  115. package/lib/components/VProgressLinear/VProgressLinear.js +12 -16
  116. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  117. package/lib/components/VSelect/VSelect.js +4 -1
  118. package/lib/components/VSelect/VSelect.js.map +1 -1
  119. package/lib/components/VStepper/VStepper.js +1 -1
  120. package/lib/components/VStepper/VStepper.js.map +1 -1
  121. package/lib/components/VStepper/VStepperContent.js +3 -6
  122. package/lib/components/VStepper/VStepperContent.js.map +1 -1
  123. package/lib/components/VSwitch/VSwitch.js +1 -1
  124. package/lib/components/VSwitch/VSwitch.js.map +1 -1
  125. package/lib/components/VTextField/VTextField.js +2 -1
  126. package/lib/components/VTextField/VTextField.js.map +1 -1
  127. package/lib/components/VTooltip/VTooltip.js +1 -8
  128. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  129. package/lib/directives/color/index.js +6 -3
  130. package/lib/directives/color/index.js.map +1 -1
  131. package/lib/directives/ripple/index.js +5 -3
  132. package/lib/directives/ripple/index.js.map +1 -1
  133. package/lib/directives/scroll/index.js +1 -2
  134. package/lib/directives/scroll/index.js.map +1 -1
  135. package/lib/directives/touch/index.js +7 -4
  136. package/lib/directives/touch/index.js.map +1 -1
  137. package/lib/framework.js +1 -1
  138. package/lib/mixins/activatable/index.js +1 -8
  139. package/lib/mixins/activatable/index.js.map +1 -1
  140. package/lib/mixins/groupable/index.js.map +1 -1
  141. package/lib/mixins/positionable/index.js.map +1 -1
  142. package/lib/mixins/proxyable/index.js.map +1 -1
  143. package/lib/mixins/registrable/index.js.map +1 -1
  144. package/lib/mixins/selectable/index.js +9 -7
  145. package/lib/mixins/selectable/index.js.map +1 -1
  146. package/lib/mixins/toggleable/index.js.map +1 -1
  147. package/lib/services/goto/util.js +42 -3
  148. package/lib/services/goto/util.js.map +1 -1
  149. package/lib/services/theme/index.js +18 -64
  150. package/lib/services/theme/index.js.map +1 -1
  151. package/lib/util/mergeData.js +6 -5
  152. package/lib/util/mergeData.js.map +1 -1
  153. package/lib/util/mixins.js +3 -2
  154. package/lib/util/mixins.js.map +1 -1
  155. package/package.json +2 -2
  156. package/src/components/VAlert/__tests__/__snapshots__/VAlert.spec.ts.snap +4 -4
  157. package/src/components/VAppBar/__tests__/__snapshots__/VAppBarNavIcon.spec.ts.snap +2 -2
  158. package/src/components/VAutocomplete/__tests__/VAutocomplete.spec.ts +75 -20
  159. package/src/components/VAutocomplete/__tests__/VAutocomplete2.spec.ts +38 -40
  160. package/src/components/VAutocomplete/__tests__/VAutocomplete3.spec.ts +26 -26
  161. package/src/components/VBanner/__tests__/__snapshots__/VBanner.spec.ts.snap +2 -2
  162. package/src/components/VBtn/__tests__/VBtn.spec.ts +8 -4
  163. package/src/components/VCalendar/VCalendarWeekly.ts +12 -5
  164. package/src/components/VCalendar/__tests__/VCalendar.spec.ts +1 -1
  165. package/src/components/VCalendar/__tests__/VCalendarCategory.spec.ts +5 -5
  166. package/src/components/VCalendar/__tests__/__snapshots__/VCalendar.spec.ts.snap +167 -168
  167. package/src/components/VCheckbox/VCheckbox.ts +4 -9
  168. package/src/components/VCheckbox/__tests__/VCheckbox.spec.ts +7 -1
  169. package/src/components/VCheckbox/__tests__/__snapshots__/VCheckbox.spec.ts.snap +54 -50
  170. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPicker.spec.ts.snap +18 -18
  171. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPickerEdit.spec.ts.snap +10 -10
  172. package/src/components/VCombobox/__tests__/VCombobox-multiple.spec.ts +89 -69
  173. package/src/components/VCombobox/__tests__/VCombobox.spec.ts +17 -12
  174. package/src/components/VContent/VContent.ts +10 -2
  175. package/src/components/VCounter/VCounter.ts +1 -1
  176. package/src/components/VCounter/__tests__/VCounter.spec.ts +10 -25
  177. package/src/components/VDataIterator/__tests__/__snapshots__/VDataFooter.spec.ts.snap +42 -42
  178. package/src/components/VDataIterator/__tests__/__snapshots__/VDataIterator.spec.ts.snap +30 -30
  179. package/src/components/VDataTable/__tests__/VDataTable.spec.ts +1 -1
  180. package/src/components/VDataTable/__tests__/VDataTableHeader.spec.ts +6 -10
  181. package/src/components/VDataTable/__tests__/VEditDialog.spec.ts +24 -21
  182. package/src/components/VDataTable/__tests__/__snapshots__/VDataTable.spec.ts.snap +409 -409
  183. package/src/components/VDataTable/__tests__/__snapshots__/VDataTableHeader.spec.ts.snap +70 -70
  184. package/src/components/VDataTable/mixins/__tests__/__snapshots__/header.spec.ts.snap +8 -8
  185. package/src/components/VDataTable/mixins/__tests__/header.spec.ts +3 -3
  186. package/src/components/VDatePicker/VDatePicker.ts +23 -7
  187. package/src/components/VDatePicker/VDatePickerTitle.ts +28 -16
  188. package/src/components/VDatePicker/__tests__/VDatePicker.date.spec.ts +86 -124
  189. package/src/components/VDatePicker/__tests__/VDatePicker.month.spec.ts +85 -63
  190. package/src/components/VDatePicker/__tests__/VDatePickerHeader.spec.ts +12 -27
  191. package/src/components/VDatePicker/__tests__/VDatePickerTitle.spec.ts +9 -5
  192. package/src/components/VDatePicker/__tests__/VDatePickerYears.spec.ts +4 -4
  193. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePicker.date.spec.ts.snap +27 -9
  194. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePicker.month.spec.ts.snap +45 -35
  195. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePickerTitle.spec.ts.snap +15 -5
  196. package/src/components/VDatePicker/mixins/date-picker-table.ts +1 -1
  197. package/src/components/VDatePicker/util/eventHelpers.ts +33 -13
  198. package/src/components/VExpansionPanel/VExpansionPanelContent.ts +5 -8
  199. package/src/components/VExpansionPanel/VExpansionPanelHeader.ts +10 -14
  200. package/src/components/VExpansionPanel/__tests__/VExpansionPanelHeader.spec.ts +6 -4
  201. package/src/components/VExpansionPanel/__tests__/VExpansionPanels.spec.ts +9 -5
  202. package/src/components/VExpansionPanel/__tests__/__snapshots__/VExpansionPanel.spec.ts.snap +4 -4
  203. package/src/components/VFileInput/__tests__/__snapshots__/VFileInput.spec.ts.snap +38 -38
  204. package/src/components/VFooter/__tests__/VFooter.spec.ts +28 -21
  205. package/src/components/VGrid/VCol.ts +1 -1
  206. package/src/components/VGrid/VContainer.ts +12 -10
  207. package/src/components/VGrid/__tests__/VCol.spec.ts +4 -2
  208. package/src/components/VGrid/__tests__/VGrid.spec.ts +2 -3
  209. package/src/components/VGrid/grid.ts +14 -17
  210. package/src/components/VHover/VHover.ts +21 -17
  211. package/src/components/VHover/__tests__/VHover.spec.ts +44 -28
  212. package/src/components/VIcon/VIcon.ts +72 -53
  213. package/src/components/VIcon/__tests__/VIcon.spec.ts +86 -176
  214. package/src/components/VIcon/__tests__/__snapshots__/VIcon.spec.ts.snap +19 -74
  215. package/src/components/VItemGroup/VItem.ts +1 -1
  216. package/src/components/VItemGroup/__tests__/VItem.spec.ts +20 -12
  217. package/src/components/VLabel/VLabel.ts +1 -1
  218. package/src/components/VList/__tests__/VListGroup.spec.ts +1 -1
  219. package/src/components/VList/__tests__/VListItemAction.spec.ts +32 -31
  220. package/src/components/VList/__tests__/__snapshots__/VListGroup.spec.ts.snap +2 -2
  221. package/src/components/VList/__tests__/__snapshots__/VListItemAction.spec.ts.snap +20 -6
  222. package/src/components/VOtpInput/VOtpInput.ts +57 -32
  223. package/src/components/VOtpInput/__tests__/VOtpInput.spec.ts +75 -78
  224. package/src/components/VOverflowBtn/VOverflowBtn.ts +13 -10
  225. package/src/components/VOverflowBtn/__tests__/VOverflowBtn.spec.ts +6 -6
  226. package/src/components/VOverflowBtn/__tests__/__snapshots__/VOverflowBtn.spec.ts.snap +38 -46
  227. package/src/components/VPagination/__tests__/__snapshots__/VPagination.spec.ts.snap +32 -32
  228. package/src/components/VProgressLinear/VProgressLinear.ts +13 -18
  229. package/src/components/VProgressLinear/__tests__/VProgressLinear.spec.ts +20 -12
  230. package/src/components/VRadioGroup/__tests__/VRadio.spec.ts +57 -44
  231. package/src/components/VRadioGroup/__tests__/VRadioGroup.spec.ts +4 -4
  232. package/src/components/VRadioGroup/__tests__/__snapshots__/VRadio.spec.ts.snap +29 -33
  233. package/src/components/VRadioGroup/__tests__/__snapshots__/VRadioGroup.spec.ts.snap +10 -18
  234. package/src/components/VRating/__tests__/VRating.spec.ts +24 -29
  235. package/src/components/VResponsive/__tests__/VResponsive.spec.ts +10 -5
  236. package/src/components/VSelect/VSelect.ts +5 -1
  237. package/src/components/VSelect/__tests__/VSelect2.spec.ts +5 -5
  238. package/src/components/VSelect/__tests__/VSelect3.spec.ts +7 -7
  239. package/src/components/VSelect/__tests__/VSelect4.spec.ts +2 -2
  240. package/src/components/VSelect/__tests__/__snapshots__/VSelect2.spec.ts.snap +4 -4
  241. package/src/components/VSelect/__tests__/__snapshots__/VSelect3.spec.ts.snap +0 -284
  242. package/src/components/VSelect/__tests__/__snapshots__/VSelectList.spec.ts.snap +30 -27
  243. package/src/components/VSlideGroup/__tests__/VSlideGroup.spec.ts +70 -62
  244. package/src/components/VSlideGroup/__tests__/__snapshots__/VSlideGroup.spec.ts.snap +13 -34
  245. package/src/components/VSnackbar/__tests__/VSnackbar.spec.ts +46 -37
  246. package/src/components/VStepper/VStepper.ts +2 -2
  247. package/src/components/VStepper/VStepperContent.ts +7 -12
  248. package/src/components/VStepper/__tests__/VStepper.spec.ts +3 -3
  249. package/src/components/VStepper/__tests__/VStepperContent.spec.ts +25 -6
  250. package/src/components/VStepper/__tests__/__snapshots__/VStepperStep.spec.ts.snap +10 -12
  251. package/src/components/VSwitch/VSwitch.ts +1 -1
  252. package/src/components/VSwitch/__tests__/VSwitch.spec.ts +4 -7
  253. package/src/components/VSwitch/__tests__/__snapshots__/VSwitch.spec.ts.snap +11 -15
  254. package/src/components/VTextField/VTextField.ts +2 -1
  255. package/src/components/VTextField/__tests__/VTextField.spec.ts +24 -27
  256. package/src/components/VTextField/__tests__/__snapshots__/VTextField.spec.ts.snap +49 -73
  257. package/src/components/VTextarea/__tests__/__snapshots__/VTextarea.spec.ts.snap +16 -6
  258. package/src/components/VThemeProvider/__tests__/VThemeProvider.spec.ts +49 -10
  259. package/src/components/VTimePicker/__tests__/VTimePicker.spec.ts +3 -3
  260. package/src/components/VTimePicker/__tests__/VTimePickerTitle.spec.ts +3 -3
  261. package/src/components/VTimeline/__tests__/__snapshots__/VTimelineItem.spec.ts.snap +2 -2
  262. package/src/components/VTooltip/VTooltip.ts +0 -6
  263. package/src/components/VTooltip/__tests__/VTooltip.spec.ts +12 -11
  264. package/src/components/VTreeview/__tests__/__snapshots__/VTreeview.spec.ts.snap +42 -42
  265. package/src/components/VTreeview/__tests__/__snapshots__/VTreeviewNode.spec.ts.snap +2 -2
  266. package/src/directives/click-outside/__tests__/click-outside-shadow-dom.spec.ts +4 -4
  267. package/src/directives/click-outside/__tests__/click-outside.spec.ts +3 -3
  268. package/src/directives/color/__tests__/color.spec.ts +54 -34
  269. package/src/directives/color/index.ts +7 -3
  270. package/src/directives/intersect/__tests__/intersect.spec.ts +7 -7
  271. package/src/directives/mutate/__tests__/mutate.spec.ts +32 -26
  272. package/src/directives/resize/__tests__/resize.spec.ts +5 -5
  273. package/src/directives/ripple/__tests__/ripple.spec.ts +34 -36
  274. package/src/directives/ripple/index.ts +3 -6
  275. package/src/directives/scroll/__tests__/scroll.spec.ts +13 -13
  276. package/src/directives/scroll/index.ts +0 -1
  277. package/src/directives/touch/__tests__/touch.spec.ts +23 -16
  278. package/src/directives/touch/index.ts +6 -4
  279. package/src/globals.d.ts +6 -6
  280. package/src/mixins/activatable/__tests__/activatable.spec.ts +55 -55
  281. package/src/mixins/activatable/index.ts +0 -6
  282. package/src/mixins/dependent/__tests__/dependent.spec.ts +72 -33
  283. package/src/mixins/detachable/__tests__/detachable.spec.ts +45 -31
  284. package/src/mixins/groupable/index.ts +6 -6
  285. package/src/mixins/positionable/index.ts +2 -2
  286. package/src/mixins/proxyable/index.ts +2 -2
  287. package/src/mixins/registrable/index.ts +4 -4
  288. package/src/mixins/selectable/index.ts +10 -7
  289. package/src/mixins/toggleable/index.ts +2 -2
  290. package/src/services/goto/__tests__/goto.spec.ts +146 -1
  291. package/src/services/goto/util.ts +44 -5
  292. package/src/services/theme/__tests__/__snapshots__/theme.spec.ts.snap +0 -1128
  293. package/src/services/theme/__tests__/theme.spec.ts +81 -83
  294. package/src/services/theme/index.ts +22 -60
  295. package/src/util/__tests__/dom.spec.ts +8 -5
  296. package/src/util/__tests__/helpers.spec.ts +1 -1
  297. package/src/util/__tests__/mergeData.spec.ts +8 -8
  298. package/src/util/mergeData.ts +10 -5
  299. package/src/util/mixins.ts +24 -7
  300. package/types/alacarte.d.ts +14 -14
  301. package/types/index.d.ts +8 -8
  302. package/types/lib.d.ts +173 -173
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.default = exports.VIconInternal = void 0;
7
7
 
8
8
  require("../../../src/components/VIcon/VIcon.sass");
9
9
 
@@ -50,7 +50,13 @@ function isSvgPath(icon) {
50
50
  return /^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\dz]$/i.test(icon) && icon.length > 4;
51
51
  }
52
52
 
53
- var VIcon = (0, _mixins.default)(_bindsAttrs.default, _colorable.default, _sizeable.default, _themeable.default
53
+ function classesToString(classObj) {
54
+ return Object.keys(classObj).filter(function (key) {
55
+ return classObj[key];
56
+ }).join(' ');
57
+ }
58
+
59
+ var VIconInternal = (0, _mixins.default)(_bindsAttrs.default, _colorable.default, _sizeable.default, _themeable.default
54
60
  /* @vue/component */
55
61
  ).extend({
56
62
  name: 'v-icon',
@@ -79,8 +85,15 @@ var VIcon = (0, _mixins.default)(_bindsAttrs.default, _colorable.default, _sizea
79
85
  var iconName = '';
80
86
 
81
87
  if (this.$slots.default) {
82
- var children = this.$slots.default()[0].children;
83
- if (typeof children === 'string') iconName = this.$slots.default()[0].children.trim();
88
+ var slotChildren = this.$slots.default();
89
+
90
+ if (slotChildren && slotChildren[0]) {
91
+ var children = slotChildren[0].children;
92
+
93
+ if (typeof children === 'string') {
94
+ iconName = children.trim();
95
+ }
96
+ }
84
97
  }
85
98
 
86
99
  return (0, _helpers.remapInternalIcon)(this, iconName);
@@ -120,27 +133,35 @@ var VIcon = (0, _mixins.default)(_bindsAttrs.default, _colorable.default, _sizea
120
133
 
121
134
  return data;
122
135
  },
136
+ applyColors: function applyColors(data) {
137
+ this.setTextColor(this.color, data);
138
+ },
123
139
  getSvgWrapperData: function getSvgWrapperData() {
124
140
  var fontSize = this.getSize();
141
+ var defaultData = this.getDefaultData();
142
+ var normalizedClasses = (0, _helpers.normalizeClasses)([defaultData.class, this.themeClasses]);
125
143
 
126
- var wrapperData = _objectSpread(_objectSpread({}, this.getDefaultData()), {}, {
144
+ var wrapperData = _objectSpread({
145
+ class: classesToString(normalizedClasses),
146
+ 'aria-hidden': defaultData['aria-hidden'],
147
+ type: defaultData.type,
127
148
  style: fontSize ? {
128
149
  fontSize: fontSize,
129
150
  height: fontSize,
130
151
  width: fontSize
131
152
  } : undefined
132
- });
153
+ }, this.listeners$);
154
+
155
+ if (this.hasClickListener && this.disabled) {
156
+ wrapperData.disabled = true;
157
+ }
133
158
 
134
159
  this.applyColors(wrapperData);
135
160
  return wrapperData;
136
161
  },
137
- applyColors: function applyColors(data) {
138
- data.class = _objectSpread(_objectSpread({}, data.class), this.themeClasses);
139
- this.setTextColor(this.color, data);
140
- },
141
162
  renderFontIcon: function renderFontIcon(icon) {
142
163
  var newChildren = [];
143
- var data = this.getDefaultData();
164
+ var defaultData = this.getDefaultData();
144
165
  var iconType = 'material-icons'; // Material Icon delimiter is _
145
166
  // https://material.io/icons/
146
167
 
@@ -153,77 +174,79 @@ var VIcon = (0, _mixins.default)(_bindsAttrs.default, _colorable.default, _sizea
153
174
  } else {
154
175
  iconType = icon.slice(0, delimiterIndex);
155
176
  if (isFontAwesome5(iconType)) iconType = '';
156
- }
177
+ } // Создаем объект классов для иконки
178
+
157
179
 
158
- if (typeof data.class === 'string') {
159
- data.class = data.class.split(' ').reduce(function (classes, className) {
160
- classes[className] = true;
161
- return classes;
162
- }, {});
180
+ var iconClasses = _defineProperty({}, iconType, true);
181
+
182
+ if (!isMaterialIcon) {
183
+ iconClasses[icon] = true;
163
184
  }
164
185
 
165
- data.class[iconType] = true;
166
- data.class[icon] = !isMaterialIcon;
186
+ var allClasses = (0, _helpers.normalizeClasses)([defaultData.class, this.themeClasses, iconClasses]);
167
187
  var fontSize = this.getSize();
168
- if (fontSize) data.style = {
169
- fontSize: fontSize
170
- };
171
- this.applyColors(data);
172
- return (0, _vue.h)(this.hasClickListener ? 'button' : this.tag, (0, _helpers.normalizeAttrs)(data), {
188
+
189
+ var fontData = _objectSpread({
190
+ class: classesToString(allClasses),
191
+ 'aria-hidden': defaultData['aria-hidden'],
192
+ type: defaultData.type,
193
+ style: fontSize ? {
194
+ fontSize: fontSize
195
+ } : undefined
196
+ }, this.listeners$);
197
+
198
+ if (this.hasClickListener && this.disabled) {
199
+ fontData.disabled = true;
200
+ }
201
+
202
+ this.applyColors(fontData);
203
+ return (0, _vue.h)(this.hasClickListener ? 'button' : this.tag, fontData, {
173
204
  default: function _default() {
174
205
  return newChildren;
175
206
  }
176
207
  });
177
208
  },
178
209
  renderSvgIcon: function renderSvgIcon(icon) {
179
- var svgData = {
210
+ var size = this.getSize();
211
+ var svgProps = {
180
212
  class: 'v-icon__svg',
181
- attrs: {
182
- xmlns: 'http://www.w3.org/2000/svg',
183
- viewBox: '0 0 24 24',
184
- role: 'img',
185
- 'aria-hidden': true
186
- }
213
+ xmlns: 'http://www.w3.org/2000/svg',
214
+ viewBox: '0 0 24 24',
215
+ role: 'img',
216
+ 'aria-hidden': true
187
217
  };
188
- var size = this.getSize();
189
218
 
190
219
  if (size) {
191
- svgData.style = {
220
+ svgProps.style = {
192
221
  fontSize: size,
193
222
  height: size,
194
223
  width: size
195
224
  };
196
225
  }
197
226
 
198
- return (0, _vue.h)(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [(0, _vue.h)('svg', svgData, [(0, _vue.h)('path', {
199
- attrs: {
200
- d: icon
201
- }
227
+ return (0, _vue.h)(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [(0, _vue.h)('svg', svgProps, [(0, _vue.h)('path', {
228
+ d: icon
202
229
  })])]);
203
230
  },
204
231
  renderSvgIconComponent: function renderSvgIconComponent(icon) {
205
- var data = {
206
- class: {
207
- 'v-icon__component': true
208
- }
209
- };
210
232
  var size = this.getSize();
233
+ var componentClasses = (0, _helpers.normalizeClasses)([{
234
+ 'v-icon__component': true
235
+ }, this.themeClasses]);
211
236
 
212
- if (size) {
213
- data.style = {
237
+ var componentData = _objectSpread({
238
+ class: classesToString(componentClasses),
239
+ style: size ? {
214
240
  fontSize: size,
215
241
  height: size,
216
242
  width: size
217
- };
218
- }
243
+ } : undefined
244
+ }, icon.props);
219
245
 
220
- this.applyColors(data);
221
- var component = icon.component;
222
- data.props = icon.props;
223
- data.nativeOn = data.on;
246
+ this.applyColors(componentData);
224
247
  return (0, _vue.h)(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), {
225
248
  default: function _default() {
226
- return [(0, _vue.h)(component, data)];
249
+ return [(0, _vue.h)(icon.component, componentData)];
227
250
  }
228
251
  });
229
252
  }
@@ -242,10 +265,11 @@ var VIcon = (0, _mixins.default)(_bindsAttrs.default, _colorable.default, _sizea
242
265
  return this.renderSvgIconComponent(icon);
243
266
  }
244
267
  });
268
+ exports.VIconInternal = VIconInternal;
245
269
 
246
270
  var _default2 = (0, _vue.defineComponent)({
247
271
  name: 'v-icon',
248
- $_wrapperFor: VIcon,
272
+ $_wrapperFor: VIconInternal,
249
273
  functional: true,
250
274
  mounted: function mounted() {
251
275
  this.$el.innerHTML = '';
@@ -256,7 +280,7 @@ var _default2 = (0, _vue.defineComponent)({
256
280
  var data = _objectSpread({}, this.$attrs); // console.log(children && children[0]?.children)
257
281
 
258
282
 
259
- return (0, _vue.h)(VIcon, data, {
283
+ return (0, _vue.h)(VIconInternal, data, {
260
284
  default: function _default() {
261
285
  var _a, _b, _c, _d;
262
286
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VIcon/VIcon.ts"],"names":[],"mappings":"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","sourcesContent":["import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport { defineComponent, CreateElement, VNode, VNodeChildren, VNodeData, h } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\nimport { normalizeAttrs } from '../../util/helpers'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.onClick\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) {\n const children = this.$slots.default()[0].children\n if(typeof children === 'string')\n iconName = this.$slots.default()[0].children!.trim()\n\n }\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n const data = {\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n 'v-icon': true,\n 'notranslate': true\n },\n 'aria-hidden': !this.hasClickListener,\n type: this.hasClickListener ? 'button' : undefined,\n // ...this.attrs$,\n ...this.listeners$,\n }\n\n if(this.hasClickListener && this.disabled) {\n data.disabled = true\n }\n return data\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string): VNode {\n const newChildren: VNodeChildren = []\n let data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n if(typeof data.class === 'string') {\n data.class = data.class.split(' ').reduce((classes, className) => {\n classes[className] = true\n return classes\n }, {})\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, normalizeAttrs(data), {default: () => newChildren})\n },\n renderSvgIcon (icon: string): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), {default: () =>[\n h(component, data),\n ]})\n },\n },\n\n render (): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon)\n }\n return this.renderFontIcon(icon)\n }\n\n return this.renderSvgIconComponent(icon)\n },\n})\n\nexport default defineComponent({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n mounted() {\n this.$el.innerHTML = ''\n },\n\n render (): VNode {\n const data = { ...this.$attrs }\n\n\n // console.log(children && children[0]?.children)\n return h(VIcon, data, {\n default: () => {\n let iconName = ''\n\n // Support usage of v-text and v-html\n // if (data.domProps) {\n if(this.$.vnode.props?.textContent) {\n iconName = this.$.vnode.props.textContent ||\n this.$.vnode.props.innerHTML ||\n iconName\n }\n\n const children = this.$slots.default?.()\n\n return iconName ? [iconName] : children && children[0]?.children\n }\n })\n }\n})\n"],"sourceRoot":"","file":"VIcon.js"}
1
+ {"version":3,"sources":["../../../src/components/VIcon/VIcon.ts"],"names":[],"mappings":"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","sourcesContent":["import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport { defineComponent, CreateElement, VNode, VNodeChildren, VNodeData, h } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\nimport { normalizeAttrs, normalizeClasses } from '../../util/helpers'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nfunction classesToString (classObj: Record<string, boolean>): string {\n return Object.keys(classObj).filter(key => classObj[key]).join(' ')\n}\n\n\nexport const VIconInternal = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.onClick\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) {\n const slotChildren = this.$slots.default()\n if (slotChildren && slotChildren[0]) {\n const children = slotChildren[0].children\n if(typeof children === 'string') {\n iconName = children.trim()\n }\n }\n }\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n const data = {\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n 'v-icon': true,\n 'notranslate': true\n },\n 'aria-hidden': !this.hasClickListener,\n type: this.hasClickListener ? 'button' : undefined,\n // ...this.attrs$,\n ...this.listeners$,\n }\n\n if(this.hasClickListener && this.disabled) {\n data.disabled = true\n }\n return data\n },\n applyColors (data: any): void {\n this.setTextColor(this.color, data)\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n\n const defaultData = this.getDefaultData()\n const normalizedClasses = normalizeClasses([defaultData.class, this.themeClasses])\n\n const wrapperData: any = {\n class: classesToString(normalizedClasses),\n 'aria-hidden': defaultData['aria-hidden'],\n type: defaultData.type,\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n ...this.listeners$,\n }\n\n if(this.hasClickListener && this.disabled) {\n wrapperData.disabled = true\n }\n\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n renderFontIcon (icon: string): VNode {\n const newChildren: VNodeChildren = []\n const defaultData = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n // Создаем объект классов для иконки\n const iconClasses = { [iconType]: true }\n if (!isMaterialIcon) {\n iconClasses[icon] = true\n }\n\n const allClasses = normalizeClasses([defaultData.class, this.themeClasses, iconClasses])\n\n const fontSize = this.getSize()\n const fontData: any = {\n class: classesToString(allClasses),\n 'aria-hidden': defaultData['aria-hidden'],\n type: defaultData.type,\n style: fontSize ? { fontSize } : undefined,\n ...this.listeners$,\n }\n\n if(this.hasClickListener && this.disabled) {\n fontData.disabled = true\n }\n\n this.applyColors(fontData)\n\n return h(this.hasClickListener ? 'button' : this.tag, fontData, {default: () => newChildren})\n },\n renderSvgIcon (icon: string): VNode {\n const size = this.getSize()\n const svgProps: any = {\n class: 'v-icon__svg',\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n }\n\n if (size) {\n svgProps.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgProps, [\n h('path', {\n d: icon,\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent\n ): VNode {\n const size = this.getSize()\n const componentClasses = normalizeClasses([\n { 'v-icon__component': true },\n this.themeClasses\n ])\n\n const componentData: any = {\n class: classesToString(componentClasses),\n style: size ? {\n fontSize: size,\n height: size,\n width: size,\n } : undefined,\n ...icon.props,\n }\n\n this.applyColors(componentData)\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), {default: () =>[\n h(icon.component, componentData),\n ]})\n },\n },\n\n render (): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon)\n }\n return this.renderFontIcon(icon)\n }\n\n return this.renderSvgIconComponent(icon)\n },\n})\n\nexport default defineComponent({\n name: 'v-icon',\n\n $_wrapperFor: VIconInternal,\n\n functional: true,\n\n mounted() {\n this.$el.innerHTML = ''\n },\n\n render (): VNode {\n const data = { ...this.$attrs }\n\n\n // console.log(children && children[0]?.children)\n return h(VIconInternal, data, {\n default: () => {\n let iconName = ''\n\n // Support usage of v-text and v-html\n // if (data.domProps) {\n if(this.$.vnode.props?.textContent) {\n iconName = this.$.vnode.props.textContent ||\n this.$.vnode.props.innerHTML ||\n iconName\n }\n\n const children = this.$slots.default?.()\n\n return iconName ? [iconName] : children && children[0]?.children\n }\n })\n }\n})\n"],"sourceRoot":"","file":"VIcon.js"}
@@ -17,6 +17,10 @@ var _vue = require("vue");
17
17
 
18
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
19
 
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
21
+
22
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
23
+
20
24
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
21
25
 
22
26
  /* @vue/component */
@@ -39,8 +43,6 @@ var BaseItem = (0, _vue.defineComponent)({
39
43
  }
40
44
  },
41
45
  render: function render() {
42
- var _class;
43
-
44
46
  if (!this.$slots.default) {
45
47
  (0, _console.consoleWarn)('v-item is missing a default scopedSlot', this);
46
48
  return null;
@@ -69,7 +71,9 @@ var BaseItem = (0, _vue.defineComponent)({
69
71
  }
70
72
 
71
73
  element.props = (0, _vue.mergeProps)(element.props || {}, {
72
- class: (_class = {}, _defineProperty(_class, this.activeClass, this.isActive), _defineProperty(_class, "v-item--disabled", this.disabled), _class)
74
+ class: _objectSpread(_objectSpread({}, this.$activeClass && _defineProperty({}, this.$activeClass, this.isActive)), {}, {
75
+ "v-item--disabled": this.disabled
76
+ })
73
77
  });
74
78
 
75
79
  if (this.disabled) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VItemGroup/VItem.ts"],"names":[],"mappings":";;;;;;;AACA;;AAGA;;AAGA;;AACA;;AACA;;;;;;AAIA;AACO,IAAM,QAAQ,GAAG,0BAAgB;AACtC,EAAA,KAAK,EAAE;AACL,IAAA,WAAW,EAAE,MADR;AAEL,IAAA,KAAK,EAAE;AACL,MAAA,QAAQ,EAAE;AADL,KAFF;AAKL,IAAA,QAAQ,EAAE;AALL,GAD+B;AAStC,EAAA,IAAI,EAAE;AAAA,WAAO;AACX,MAAA,QAAQ,EAAE;AADC,KAAP;AAAA,GATgC;AAatC,EAAA,OAAO,EAAE;AACP,IAAA,MADO,oBACD;AACJ,WAAK,QAAL,GAAgB,CAAC,KAAK,QAAtB;AACD;AAHM,GAb6B;AAmBtC,EAAA,MAnBsC,oBAmBhC;AAAA;;AACJ,QAAI,CAAC,KAAK,MAAL,CAAY,OAAjB,EAA0B;AACxB,gCAAY,wCAAZ,EAAsD,IAAtD;AACA,aAAO,IAAP;AACD;;AAED,QAAM,WAAW,GAAG,KAAK,MAAL,CAAY,OAAZ,CAAoB;AACtC,MAAA,MAAM,EAAE,KAAK,QADyB;AAEtC,MAAA,MAAM,EAAE,KAAK;AAFyB,KAApB,CAApB;;AAKA,QAAI,CAAC,WAAD,IAAgB,WAAW,CAAC,MAAZ,KAAuB,CAA3C,EAA8C;AAC5C,gCAAY,oCAAZ,EAAkD,IAAlD;AACA,aAAO,IAAP;AACD;;AAED,QAAI,OAAO,GAAG,WAAW,CAAC,CAAD,CAAzB;;AAEA,QAAI,CAAC,OAAL,EAAc;AACZ,gCAAY,4CAAZ,EAA0D,IAA1D;AACA,aAAO,IAAP;AACD;;AAED,QAAI,CAAC,OAAO,CAAC,IAAb,EAAmB;AACjB,gCAAY,iDAAZ,EAA+D,IAA/D;AACA,aAAO,OAAP;AACD;;AAED,IAAA,OAAO,CAAC,KAAR,GAAgB,qBAAW,OAAO,CAAC,KAAR,IAAiB,EAA5B,EAAgC;AAC9C,MAAA,KAAK,wCACF,KAAK,WADH,EACiB,KAAK,QADtB,2BAEH,kBAFG,EAEiB,KAAK,QAFtB;AADyC,KAAhC,CAAhB;;AAOA,QAAI,KAAK,QAAT,EAAmB;AACjB,MAAA,OAAO,CAAC,KAAR,GAAgB,qBAAW,OAAO,CAAC,KAAR,IAAiB,EAA5B,EAAgC;AAC9C,QAAA,QAAQ,EAAE,CAAC;AADmC,OAAhC,CAAhB;AAGD;;AAED,WAAO,OAAP;AACD;AA7DqC,CAAhB,CAAjB;;;eAgEQ,qBACb,QADa,EAEb,wBAAiB,WAAjB,EAA8B,QAA9B,EAAwC,cAAxC,CAFa,EAGb,MAHa,CAGN;AACP,EAAA,IAAI,EAAE,QADC;AAGP,EAAA,KAAK,EAAE,CACL,QADK;AAHA,CAHM,C","sourcesContent":["// Styles\nimport './VItem.sass'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\nimport { defineComponent, mergeProps } from \"vue\"\n\nimport type { VNode } from 'vue'\n\n/* @vue/component */\nexport const BaseItem = defineComponent({\n props: {\n activeClass: String,\n value: {\n required: false,\n },\n disabled: Boolean,\n },\n\n data: () => ({\n isActive: false,\n }),\n\n methods: {\n toggle () {\n this.isActive = !this.isActive\n },\n },\n\n render (): VNode | null {\n if (!this.$slots.default) {\n consoleWarn('v-item is missing a default scopedSlot', this)\n return null\n }\n\n const slotContent = this.$slots.default({\n active: this.isActive,\n toggle: this.toggle,\n })\n\n if (!slotContent || slotContent.length === 0) {\n consoleWarn('v-item slot returned empty content', this)\n return null\n }\n\n let element = slotContent[0]\n\n if (!element) {\n consoleWarn('v-item should contain at least one element', this)\n return null\n }\n\n if (!element.type) {\n consoleWarn('v-item should only contain valid VNode elements', this)\n return element\n }\n\n element.props = mergeProps(element.props || {}, {\n class: {\n [this.activeClass]: this.isActive,\n \"v-item--disabled\": this.disabled\n }\n })\n\n if (this.disabled) {\n element.props = mergeProps(element.props || {}, {\n tabindex: -1\n })\n }\n\n return element\n },\n})\n\nexport default mixins(\n BaseItem,\n GroupableFactory('itemGroup', 'v-item', 'v-item-group')\n).extend({\n name: 'v-item',\n\n emits: [\n 'change',\n ],\n})\n"],"sourceRoot":"","file":"VItem.js"}
1
+ {"version":3,"sources":["../../../src/components/VItemGroup/VItem.ts"],"names":[],"mappings":";;;;;;;AACA;;AAGA;;AAGA;;AACA;;AACA;;;;;;;;;;AAIA;AACO,IAAM,QAAQ,GAAG,0BAAgB;AACtC,EAAA,KAAK,EAAE;AACL,IAAA,WAAW,EAAE,MADR;AAEL,IAAA,KAAK,EAAE;AACL,MAAA,QAAQ,EAAE;AADL,KAFF;AAKL,IAAA,QAAQ,EAAE;AALL,GAD+B;AAStC,EAAA,IAAI,EAAE;AAAA,WAAO;AACX,MAAA,QAAQ,EAAE;AADC,KAAP;AAAA,GATgC;AAatC,EAAA,OAAO,EAAE;AACP,IAAA,MADO,oBACD;AACJ,WAAK,QAAL,GAAgB,CAAC,KAAK,QAAtB;AACD;AAHM,GAb6B;AAmBtC,EAAA,MAnBsC,oBAmBhC;AACJ,QAAI,CAAC,KAAK,MAAL,CAAY,OAAjB,EAA0B;AACxB,gCAAY,wCAAZ,EAAsD,IAAtD;AACA,aAAO,IAAP;AACD;;AAED,QAAM,WAAW,GAAG,KAAK,MAAL,CAAY,OAAZ,CAAoB;AACtC,MAAA,MAAM,EAAE,KAAK,QADyB;AAEtC,MAAA,MAAM,EAAE,KAAK;AAFyB,KAApB,CAApB;;AAKA,QAAI,CAAC,WAAD,IAAgB,WAAW,CAAC,MAAZ,KAAuB,CAA3C,EAA8C;AAC5C,gCAAY,oCAAZ,EAAkD,IAAlD;AACA,aAAO,IAAP;AACD;;AAED,QAAI,OAAO,GAAG,WAAW,CAAC,CAAD,CAAzB;;AAEA,QAAI,CAAC,OAAL,EAAc;AACZ,gCAAY,4CAAZ,EAA0D,IAA1D;AACA,aAAO,IAAP;AACD;;AAED,QAAI,CAAC,OAAO,CAAC,IAAb,EAAmB;AACjB,gCAAY,iDAAZ,EAA+D,IAA/D;AACA,aAAO,OAAP;AACD;;AAED,IAAA,OAAO,CAAC,KAAR,GAAgB,qBAAW,OAAO,CAAC,KAAR,IAAiB,EAA5B,EAAgC;AAC9C,MAAA,KAAK,kCACC,KAAK,YAAL,wBAAwB,KAAK,YAA7B,EAA4C,KAAK,QAAjD,CADD;AAEH,4BAAoB,KAAK;AAFtB;AADyC,KAAhC,CAAhB;;AAOA,QAAI,KAAK,QAAT,EAAmB;AACjB,MAAA,OAAO,CAAC,KAAR,GAAgB,qBAAW,OAAO,CAAC,KAAR,IAAiB,EAA5B,EAAgC;AAC9C,QAAA,QAAQ,EAAE,CAAC;AADmC,OAAhC,CAAhB;AAGD;;AAED,WAAO,OAAP;AACD;AA7DqC,CAAhB,CAAjB;;;eAgEQ,qBACb,QADa,EAEb,wBAAiB,WAAjB,EAA8B,QAA9B,EAAwC,cAAxC,CAFa,EAGb,MAHa,CAGN;AACP,EAAA,IAAI,EAAE,QADC;AAGP,EAAA,KAAK,EAAE,CACL,QADK;AAHA,CAHM,C","sourcesContent":["// Styles\nimport './VItem.sass'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\nimport { defineComponent, mergeProps } from \"vue\"\n\nimport type { VNode } from 'vue'\n\n/* @vue/component */\nexport const BaseItem = defineComponent({\n props: {\n activeClass: String,\n value: {\n required: false,\n },\n disabled: Boolean,\n },\n\n data: () => ({\n isActive: false,\n }),\n\n methods: {\n toggle () {\n this.isActive = !this.isActive\n },\n },\n\n render (): VNode | null {\n if (!this.$slots.default) {\n consoleWarn('v-item is missing a default scopedSlot', this)\n return null\n }\n\n const slotContent = this.$slots.default({\n active: this.isActive,\n toggle: this.toggle,\n })\n\n if (!slotContent || slotContent.length === 0) {\n consoleWarn('v-item slot returned empty content', this)\n return null\n }\n\n let element = slotContent[0]\n\n if (!element) {\n consoleWarn('v-item should contain at least one element', this)\n return null\n }\n\n if (!element.type) {\n consoleWarn('v-item should only contain valid VNode elements', this)\n return element\n }\n\n element.props = mergeProps(element.props || {}, {\n class: {\n ...(this.$activeClass && { [this.$activeClass]: this.isActive }),\n \"v-item--disabled\": this.disabled\n }\n })\n\n if (this.disabled) {\n element.props = mergeProps(element.props || {}, {\n tabindex: -1\n })\n }\n\n return element\n },\n})\n\nexport default mixins(\n BaseItem,\n GroupableFactory('itemGroup', 'v-item', 'v-item-group')\n).extend({\n name: 'v-item',\n\n emits: [\n 'change',\n ],\n})\n"],"sourceRoot":"","file":"VItem.js"}
@@ -57,6 +57,8 @@ var _default = (0, _mixins.default)(_themeable.default).extend({
57
57
  value: Boolean
58
58
  },
59
59
  render: function render() {
60
+ var _a, _b;
61
+
60
62
  var data = this.$attrs;
61
63
  var props = this.$props;
62
64
  var newData = (0, _mergeData.default)({
@@ -74,7 +76,7 @@ var _default = (0, _mixins.default)(_themeable.default).extend({
74
76
  },
75
77
  ref: 'label'
76
78
  }, data);
77
- return (0, _vue.h)('label', _colorable.default.methods.setTextColor(props.focused && props.color, newData), this.$slots.default());
79
+ return (0, _vue.h)('label', _colorable.default.methods.setTextColor(props.focused && props.color, newData), (_b = (_a = this.$slots).default) === null || _b === void 0 ? void 0 : _b.call(_a));
78
80
  }
79
81
  });
80
82
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VLabel/VLabel.ts"],"names":[],"mappings":";;;;;;;;;AACA;;AAGA;;AACA;;AAGA;;AACA;;AAGA;;AACA;;;;;;;;;;;;;;AAEA;eACe,qBAAO,kBAAP,EAAkB,MAAlB,CAAyB;AACtC,EAAA,IAAI,EAAE,SADgC;AAGtC,EAAA,UAAU,EAAE,IAH0B;AAKtC,EAAA,KAAK,EAAE;AACL,IAAA,QAAQ,EAAE,OADL;AAEL,IAAA,KAAK,EAAE;AACL,MAAA,IAAI,EAAE,MADD;AAEL,MAAA,OAAO,EAAE;AAFJ,KAFF;AAML,IAAA,QAAQ,EAAE,OANL;AAOL,IAAA,OAAO,EAAE,OAPJ;AAQL,IAAA,GAAG,EAAE,MARA;AASL,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADF;AAEJ,MAAA,OAAO,EAAE;AAFL,KATD;AAaL,IAAA,KAAK,EAAE;AACL,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADD;AAEL,MAAA,OAAO,EAAE;AAFJ,KAbF;AAiBL,IAAA,KAAK,EAAE;AAjBF,GAL+B;AAyBtC,EAAA,MAzBsC,oBAyBhC;AACJ,QAAM,IAAI,GAAG,KAAK,MAAlB;AACA,QAAM,KAAK,GAAG,KAAK,MAAnB;AAEA,QAAM,OAAO,GAAG,wBAAU;AACxB,MAAA,KAAK;AACH,mBAAW,IADR;AAEH,2BAAmB,KAAK,KAFrB;AAGH,gCAAwB,KAAK;AAH1B,SAIA,uCAAuB,IAAvB,CAJA,CADmB;AAOxB,MAAA,GAAG,EAAE,KAAK,CAAC,GAPa;AAQxB,qBAAe,CAAC,KAAK,CAAC,GARE;AASxB,MAAA,KAAK,EAAE;AACL,QAAA,IAAI,EAAE,4BAAc,KAAK,CAAC,IAApB,CADD;AAEL,QAAA,KAAK,EAAE,4BAAc,KAAK,CAAC,KAApB,CAFF;AAGL,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAN,GAAiB,UAAjB,GAA8B;AAHnC,OATiB;AAcxB,MAAA,GAAG,EAAE;AAdmB,KAAV,EAeb,IAfa,CAAhB;AAiBA,WAAO,YAAE,OAAF,EAAW,mBAAU,OAAV,CAAkB,YAAlB,CAA+B,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,KAAtD,EAA6D,OAA7D,CAAX,EAAkF,KAAK,MAAL,CAAY,OAAZ,EAAlF,CAAP;AACD;AA/CqC,CAAzB,C","sourcesContent":["// Styles\nimport './VLabel.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode, h } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-label',\n\n functional: true,\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n focused: Boolean,\n for: String,\n left: {\n type: [Number, String],\n default: 0,\n },\n right: {\n type: [Number, String],\n default: 'auto',\n },\n value: Boolean,\n },\n\n render (): VNode {\n const data = this.$attrs\n const props = this.$props\n\n const newData = mergeData({\n class: {\n 'v-label': true,\n 'v-label--active': this.value,\n 'v-label--is-disabled': this.disabled,\n ...functionalThemeClasses(this),\n },\n for: props.for,\n 'aria-hidden': !props.for,\n style: {\n left: convertToUnit(props.left),\n right: convertToUnit(props.right),\n position: props.absolute ? 'absolute' : 'relative',\n },\n ref: 'label',\n }, data)\n\n return h('label', Colorable.methods.setTextColor(props.focused && props.color, newData), this.$slots.default())\n },\n})\n"],"sourceRoot":"","file":"VLabel.js"}
1
+ {"version":3,"sources":["../../../src/components/VLabel/VLabel.ts"],"names":[],"mappings":";;;;;;;;;AACA;;AAGA;;AACA;;AAGA;;AACA;;AAGA;;AACA;;;;;;;;;;;;;;AAEA;eACe,qBAAO,kBAAP,EAAkB,MAAlB,CAAyB;AACtC,EAAA,IAAI,EAAE,SADgC;AAGtC,EAAA,UAAU,EAAE,IAH0B;AAKtC,EAAA,KAAK,EAAE;AACL,IAAA,QAAQ,EAAE,OADL;AAEL,IAAA,KAAK,EAAE;AACL,MAAA,IAAI,EAAE,MADD;AAEL,MAAA,OAAO,EAAE;AAFJ,KAFF;AAML,IAAA,QAAQ,EAAE,OANL;AAOL,IAAA,OAAO,EAAE,OAPJ;AAQL,IAAA,GAAG,EAAE,MARA;AASL,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADF;AAEJ,MAAA,OAAO,EAAE;AAFL,KATD;AAaL,IAAA,KAAK,EAAE;AACL,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADD;AAEL,MAAA,OAAO,EAAE;AAFJ,KAbF;AAiBL,IAAA,KAAK,EAAE;AAjBF,GAL+B;AAyBtC,EAAA,MAzBsC,oBAyBhC;;;AACJ,QAAM,IAAI,GAAG,KAAK,MAAlB;AACA,QAAM,KAAK,GAAG,KAAK,MAAnB;AAEA,QAAM,OAAO,GAAG,wBAAU;AACxB,MAAA,KAAK;AACH,mBAAW,IADR;AAEH,2BAAmB,KAAK,KAFrB;AAGH,gCAAwB,KAAK;AAH1B,SAIA,uCAAuB,IAAvB,CAJA,CADmB;AAOxB,MAAA,GAAG,EAAE,KAAK,CAAC,GAPa;AAQxB,qBAAe,CAAC,KAAK,CAAC,GARE;AASxB,MAAA,KAAK,EAAE;AACL,QAAA,IAAI,EAAE,4BAAc,KAAK,CAAC,IAApB,CADD;AAEL,QAAA,KAAK,EAAE,4BAAc,KAAK,CAAC,KAApB,CAFF;AAGL,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAN,GAAiB,UAAjB,GAA8B;AAHnC,OATiB;AAcxB,MAAA,GAAG,EAAE;AAdmB,KAAV,EAeb,IAfa,CAAhB;AAiBA,WAAO,YAAE,OAAF,EAAW,mBAAU,OAAV,CAAkB,YAAlB,CAA+B,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,KAAtD,EAA6D,OAA7D,CAAX,EAAkF,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAK,MAAL,EAAY,OAAZ,MAAmB,IAAnB,IAAmB,EAAA,KAAA,KAAA,CAAnB,GAAmB,KAAA,CAAnB,GAAmB,EAAA,CAAA,IAAA,CAAA,EAAA,CAArG,CAAP;AACD;AA/CqC,CAAzB,C","sourcesContent":["// Styles\nimport './VLabel.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode, h } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-label',\n\n functional: true,\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n focused: Boolean,\n for: String,\n left: {\n type: [Number, String],\n default: 0,\n },\n right: {\n type: [Number, String],\n default: 'auto',\n },\n value: Boolean,\n },\n\n render (): VNode {\n const data = this.$attrs\n const props = this.$props\n\n const newData = mergeData({\n class: {\n 'v-label': true,\n 'v-label--active': this.value,\n 'v-label--is-disabled': this.disabled,\n ...functionalThemeClasses(this),\n },\n for: props.for,\n 'aria-hidden': !props.for,\n style: {\n left: convertToUnit(props.left),\n right: convertToUnit(props.right),\n position: props.absolute ? 'absolute' : 'relative',\n },\n ref: 'label',\n }, data)\n\n return h('label', Colorable.methods.setTextColor(props.focused && props.color, newData), this.$slots.default?.())\n },\n})\n"],"sourceRoot":"","file":"VLabel.js"}
@@ -56,14 +56,20 @@ var _default = baseMixins.extend({
56
56
  type: String,
57
57
  default: 'text'
58
58
  },
59
- plain: Boolean
59
+ plain: Boolean,
60
+ modelValue: {
61
+ type: String,
62
+ default: ''
63
+ }
60
64
  },
61
- emits: ['blur', 'focus', 'change', 'keydown', 'finish'],
65
+ emits: ['blur', 'focus', 'change', 'keydown', 'finish', 'update:modelValue'],
62
66
  data: function data() {
63
67
  return {
64
68
  initialValue: null,
65
69
  isBooted: false,
66
- otp: []
70
+ otp: [],
71
+ lazyValue: '',
72
+ inputRefs: []
67
73
  };
68
74
  },
69
75
  computed: {
@@ -91,9 +97,6 @@ var _default = baseMixins.extend({
91
97
  filled: function filled() {
92
98
  return false;
93
99
  },
94
- isEnclosed: function isEnclosed() {
95
- return this.outlined;
96
- },
97
100
  reverse: function reverse() {
98
101
  return false;
99
102
  },
@@ -106,10 +109,22 @@ var _default = baseMixins.extend({
106
109
  shaped: function shaped() {
107
110
  return false;
108
111
  },
112
+ internalValue: {
113
+ get: function get() {
114
+ return this.lazyValue;
115
+ },
116
+ set: function set(val) {
117
+ this.lazyValue = val;
118
+ this.$emit('update:modelValue', val);
119
+ }
120
+ },
109
121
  classes: function classes() {
110
122
  return _objectSpread(_objectSpread(_objectSpread({}, _VInput.default.computed.classes.call(this)), _VTextField2.default.computed.classes.call(this)), {}, {
111
123
  'v-otp-input--plain': this.plain
112
124
  });
125
+ },
126
+ isEnclosed: function isEnclosed() {
127
+ return false;
113
128
  }
114
129
  },
115
130
  watch: {
@@ -128,7 +143,8 @@ var _default = baseMixins.extend({
128
143
  (0, _console.breaking)('browser-autocomplete', 'autocomplete', this);
129
144
  }
130
145
 
131
- this.otp = ((_a = this.internalValue) === null || _a === void 0 ? void 0 : _a.split('')) || [];
146
+ this.lazyValue = this.modelValue;
147
+ this.otp = ((_a = this.modelValue) === null || _a === void 0 ? void 0 : _a.split('')) || [];
132
148
  },
133
149
  mounted: function mounted() {
134
150
  var _this = this;
@@ -182,16 +198,12 @@ var _default = baseMixins.extend({
182
198
  },
183
199
  genFieldset: function genFieldset() {
184
200
  return (0, _vue.h)('fieldset', {
185
- attrs: {
186
- 'aria-hidden': true
187
- }
201
+ 'aria-hidden': 'true'
188
202
  }, [this.genLegend()]);
189
203
  },
190
204
  genLegend: function genLegend() {
191
205
  var span = (0, _vue.h)('span', {
192
- domProps: {
193
- innerHTML: '&#8203;'
194
- }
206
+ innerHTML: '&#8203;'
195
207
  });
196
208
  return (0, _vue.h)('legend', {
197
209
  style: {
@@ -202,14 +214,13 @@ var _default = baseMixins.extend({
202
214
  genInput: function genInput(otpIdx) {
203
215
  var _this4 = this;
204
216
 
205
- var listeners = Object.assign({}, this.listeners$);
206
- delete listeners.change; // Change should not be bound externally
217
+ var listeners = Object.assign({}, this.$attrs);
218
+ delete listeners.onChange; // Change should not be bound externally
207
219
 
208
- return (0, _vue.h)('input', _objectSpread(_objectSpread(_objectSpread({
220
+ var inputProps = _objectSpread(_objectSpread(_objectSpread({
209
221
  style: {},
210
- value: this.otp[otpIdx],
211
- min: this.type === 'number' ? 0 : null
212
- }, this.attrs$), {}, {
222
+ value: this.otp[otpIdx]
223
+ }, this.$attrs), {}, {
213
224
  autocomplete: 'one-time-code',
214
225
  disabled: this.isDisabled,
215
226
  readonly: this.isReadonly,
@@ -229,9 +240,18 @@ var _default = baseMixins.extend({
229
240
  return _this4.onKeyUp(e, otpIdx);
230
241
  }
231
242
  })), {}, {
232
- ref: 'input',
233
- refInFor: true
234
- }));
243
+ ref: function ref(el) {
244
+ if (el) {
245
+ _this4.inputRefs[otpIdx] = el;
246
+ }
247
+ }
248
+ });
249
+
250
+ if (this.type === 'number') {
251
+ inputProps.min = 0;
252
+ }
253
+
254
+ return (0, _vue.h)('input', inputProps);
235
255
  },
236
256
  genTextFieldSlot: function genTextFieldSlot(otpIdx) {
237
257
  return (0, _vue.h)('div', {
@@ -247,18 +267,18 @@ var _default = baseMixins.extend({
247
267
  });
248
268
  },
249
269
  onClick: function onClick(otpIdx) {
250
- if (this.isFocused || this.isDisabled || !this.$refs.input[otpIdx]) return;
270
+ if (this.isFocused || this.isDisabled || !this.inputRefs[otpIdx]) return;
251
271
  this.onFocus(undefined, otpIdx);
252
272
  },
253
273
  onFocus: function onFocus(e, otpIdx) {
254
274
  e === null || e === void 0 ? void 0 : e.preventDefault();
255
275
  e === null || e === void 0 ? void 0 : e.stopPropagation();
256
- var elements = this.$refs.input;
257
- var ref = this.$refs.input && elements[otpIdx || 0];
276
+ var ref = this.inputRefs[otpIdx || 0];
258
277
  if (!ref) return;
259
278
 
260
279
  if (document.activeElement !== ref) {
261
280
  ref.focus();
281
+ this.isFocused = true;
262
282
  return ref.select();
263
283
  }
264
284
 
@@ -297,19 +317,20 @@ var _default = baseMixins.extend({
297
317
  }
298
318
  },
299
319
  clearFocus: function clearFocus(index) {
300
- var input = this.$refs.input[index];
301
- input.blur();
320
+ var input = this.inputRefs[index];
321
+ input === null || input === void 0 ? void 0 : input.blur();
302
322
  },
303
323
  onKeyDown: function onKeyDown(e) {
304
- if (e.keyCode === _helpers.keyCodes.enter) {
324
+ if (e.key === 'Enter') {
305
325
  this.$emit('change', this.internalValue);
306
326
  }
307
327
 
308
328
  this.$emit('keydown', e);
309
329
  },
310
330
  onMouseDown: function onMouseDown(e, otpIdx) {
311
- // Prevent input from being blurred
312
- if (e.target !== this.$refs.input[otpIdx]) {
331
+ var inputRef = this.inputRefs[otpIdx]; // Prevent input from being blurred
332
+
333
+ if (e.target !== inputRef) {
313
334
  e.preventDefault();
314
335
  e.stopPropagation();
315
336
  }
@@ -329,9 +350,9 @@ var _default = baseMixins.extend({
329
350
  this.hasColor = val;
330
351
 
331
352
  if (val) {
332
- this.initialValue = this.lazyValue;
333
- } else if (this.initialValue !== this.lazyValue) {
334
- this.$emit('change', this.lazyValue);
353
+ this.initialValue = this.internalValue;
354
+ } else if (this.initialValue !== this.internalValue) {
355
+ this.$emit('change', this.internalValue);
335
356
  }
336
357
  },
337
358
  onKeyUp: function onKeyUp(event, index) {