quasar 2.18.7 → 2.19.1

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 (857) hide show
  1. package/README.md +2 -0
  2. package/dist/api/BottomSheet.json +1 -1
  3. package/dist/api/Dialog.json +1 -1
  4. package/dist/api/Intersection.json +1 -1
  5. package/dist/api/Lang.json +1 -1
  6. package/dist/api/LocalStorage.json +1 -1
  7. package/dist/api/Notify.json +1 -1
  8. package/dist/api/QBtnDropdown.json +1 -1
  9. package/dist/api/QBtnToggle.json +1 -1
  10. package/dist/api/QCarousel.json +1 -1
  11. package/dist/api/QCarouselControl.json +1 -1
  12. package/dist/api/QChatMessage.json +1 -1
  13. package/dist/api/QCheckbox.json +1 -1
  14. package/dist/api/QColor.json +1 -1
  15. package/dist/api/QDate.json +1 -1
  16. package/dist/api/QEditor.json +1 -1
  17. package/dist/api/QField.json +1 -1
  18. package/dist/api/QFile.json +1 -1
  19. package/dist/api/QInput.json +1 -1
  20. package/dist/api/QIntersection.json +1 -1
  21. package/dist/api/QMenu.json +1 -1
  22. package/dist/api/QOptionGroup.json +1 -1
  23. package/dist/api/QPageScroller.json +1 -1
  24. package/dist/api/QPageSticky.json +1 -1
  25. package/dist/api/QPopupEdit.json +1 -1
  26. package/dist/api/QRange.json +1 -1
  27. package/dist/api/QRating.json +1 -1
  28. package/dist/api/QScrollArea.json +1 -1
  29. package/dist/api/QSelect.json +1 -1
  30. package/dist/api/QSlider.json +1 -1
  31. package/dist/api/QSplitter.json +1 -1
  32. package/dist/api/QStepper.json +1 -1
  33. package/dist/api/QTabPanels.json +1 -1
  34. package/dist/api/QTable.json +1 -1
  35. package/dist/api/QTime.json +1 -1
  36. package/dist/api/QToggle.json +1 -1
  37. package/dist/api/QTooltip.json +1 -1
  38. package/dist/api/QTree.json +1 -1
  39. package/dist/api/QUploader.json +1 -1
  40. package/dist/api/QVirtualScroll.json +1 -1
  41. package/dist/api/Ripple.json +1 -1
  42. package/dist/api/SessionStorage.json +1 -1
  43. package/dist/icon-set/bootstrap-icons.umd.prod.js +5 -6
  44. package/dist/icon-set/eva-icons.umd.prod.js +5 -6
  45. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +5 -6
  46. package/dist/icon-set/fontawesome-v5.umd.prod.js +5 -6
  47. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +5 -6
  48. package/dist/icon-set/fontawesome-v6.umd.prod.js +5 -6
  49. package/dist/icon-set/ionicons-v4.umd.prod.js +5 -6
  50. package/dist/icon-set/line-awesome.umd.prod.js +5 -6
  51. package/dist/icon-set/material-icons-outlined.umd.prod.js +5 -6
  52. package/dist/icon-set/material-icons-round.umd.prod.js +5 -6
  53. package/dist/icon-set/material-icons-sharp.umd.prod.js +5 -6
  54. package/dist/icon-set/material-icons.umd.prod.js +5 -6
  55. package/dist/icon-set/material-symbols-outlined.umd.prod.js +5 -6
  56. package/dist/icon-set/material-symbols-rounded.umd.prod.js +5 -6
  57. package/dist/icon-set/material-symbols-sharp.umd.prod.js +5 -6
  58. package/dist/icon-set/mdi-v3.umd.prod.js +5 -6
  59. package/dist/icon-set/mdi-v4.umd.prod.js +5 -6
  60. package/dist/icon-set/mdi-v5.umd.prod.js +5 -6
  61. package/dist/icon-set/mdi-v6.umd.prod.js +5 -6
  62. package/dist/icon-set/mdi-v7.umd.prod.js +5 -6
  63. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +5 -6
  64. package/dist/icon-set/svg-eva-icons.umd.prod.js +5 -6
  65. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +5 -6
  66. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +5 -6
  67. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +5 -6
  68. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +5 -6
  69. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +5 -6
  70. package/dist/icon-set/svg-line-awesome.umd.prod.js +5 -6
  71. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +5 -6
  72. package/dist/icon-set/svg-material-icons-round.umd.prod.js +5 -6
  73. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +5 -6
  74. package/dist/icon-set/svg-material-icons.umd.prod.js +5 -6
  75. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +5 -6
  76. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +5 -6
  77. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +5 -6
  78. package/dist/icon-set/svg-mdi-v6.umd.prod.js +5 -6
  79. package/dist/icon-set/svg-mdi-v7.umd.prod.js +5 -6
  80. package/dist/icon-set/svg-themify.umd.prod.js +5 -6
  81. package/dist/icon-set/themify.umd.prod.js +5 -6
  82. package/dist/lang/ar-TN.umd.prod.js +5 -6
  83. package/dist/lang/ar.umd.prod.js +5 -6
  84. package/dist/lang/az-Latn.umd.prod.js +5 -6
  85. package/dist/lang/bg.umd.prod.js +5 -6
  86. package/dist/lang/bn.umd.prod.js +5 -6
  87. package/dist/lang/bs-BA.umd.prod.js +5 -6
  88. package/dist/lang/ca.umd.prod.js +5 -6
  89. package/dist/lang/cs.umd.prod.js +5 -6
  90. package/dist/lang/da.umd.prod.js +5 -6
  91. package/dist/lang/de-CH.umd.prod.js +5 -6
  92. package/dist/lang/de-DE.umd.prod.js +5 -6
  93. package/dist/lang/de.umd.prod.js +5 -6
  94. package/dist/lang/el.umd.prod.js +5 -6
  95. package/dist/lang/en-GB.umd.prod.js +5 -6
  96. package/dist/lang/en-US.umd.prod.js +5 -6
  97. package/dist/lang/eo.umd.prod.js +5 -6
  98. package/dist/lang/es.umd.prod.js +5 -6
  99. package/dist/lang/et.umd.prod.js +5 -6
  100. package/dist/lang/eu.umd.prod.js +5 -6
  101. package/dist/lang/fa-IR.umd.prod.js +5 -6
  102. package/dist/lang/fa.umd.prod.js +5 -6
  103. package/dist/lang/fi.umd.prod.js +5 -6
  104. package/dist/lang/fr.umd.prod.js +5 -6
  105. package/dist/lang/gn.umd.prod.js +5 -6
  106. package/dist/lang/he.umd.prod.js +5 -6
  107. package/dist/lang/hi.umd.prod.js +5 -6
  108. package/dist/lang/hr.umd.prod.js +5 -6
  109. package/dist/lang/hu.umd.prod.js +5 -6
  110. package/dist/lang/id.umd.prod.js +5 -6
  111. package/dist/lang/is.umd.prod.js +5 -6
  112. package/dist/lang/it.umd.prod.js +5 -6
  113. package/dist/lang/ja.umd.prod.js +5 -6
  114. package/dist/lang/kk.umd.prod.js +5 -6
  115. package/dist/lang/km.umd.prod.js +5 -6
  116. package/dist/lang/ko-KR.umd.prod.js +5 -6
  117. package/dist/lang/kur-CKB.umd.prod.js +5 -6
  118. package/dist/lang/lt.umd.prod.js +5 -6
  119. package/dist/lang/lu.umd.prod.js +5 -6
  120. package/dist/lang/lv.umd.prod.js +5 -6
  121. package/dist/lang/mk.umd.prod.js +5 -6
  122. package/dist/lang/ml.umd.prod.js +5 -6
  123. package/dist/lang/mm.umd.prod.js +5 -6
  124. package/dist/lang/ms-MY.umd.prod.js +5 -6
  125. package/dist/lang/ms.umd.prod.js +5 -6
  126. package/dist/lang/my.umd.prod.js +5 -6
  127. package/dist/lang/nb-NO.umd.prod.js +5 -6
  128. package/dist/lang/nl.umd.prod.js +5 -6
  129. package/dist/lang/pl.umd.prod.js +5 -6
  130. package/dist/lang/pt-BR.umd.prod.js +5 -6
  131. package/dist/lang/pt.umd.prod.js +5 -6
  132. package/dist/lang/ro.umd.prod.js +5 -6
  133. package/dist/lang/ru.umd.prod.js +5 -6
  134. package/dist/lang/sk.umd.prod.js +5 -6
  135. package/dist/lang/sl.umd.prod.js +5 -6
  136. package/dist/lang/sm.umd.prod.js +5 -6
  137. package/dist/lang/sq.umd.prod.js +5 -6
  138. package/dist/lang/sr-CYR.umd.prod.js +5 -6
  139. package/dist/lang/sr.umd.prod.js +5 -6
  140. package/dist/lang/sv.umd.prod.js +5 -6
  141. package/dist/lang/ta.umd.prod.js +5 -6
  142. package/dist/lang/th.umd.prod.js +5 -6
  143. package/dist/lang/tl.umd.prod.js +5 -6
  144. package/dist/lang/tr.umd.prod.js +5 -6
  145. package/dist/lang/ug.umd.prod.js +5 -6
  146. package/dist/lang/uk.umd.prod.js +5 -6
  147. package/dist/lang/ur-PK.umd.prod.js +5 -6
  148. package/dist/lang/uz-Cyrl.umd.prod.js +5 -6
  149. package/dist/lang/uz-Latn.umd.prod.js +5 -6
  150. package/dist/lang/vi.umd.prod.js +5 -6
  151. package/dist/lang/zh-CN.umd.prod.js +5 -6
  152. package/dist/lang/zh-TW.umd.prod.js +5 -6
  153. package/dist/quasar.addon.prod.css +1 -1
  154. package/dist/quasar.addon.rtl.prod.css +1 -1
  155. package/dist/quasar.client.js +24830 -29220
  156. package/dist/quasar.css +15 -28
  157. package/dist/quasar.prod.css +1 -1
  158. package/dist/quasar.rtl.css +14 -28
  159. package/dist/quasar.rtl.prod.css +1 -1
  160. package/dist/quasar.sass +4 -25
  161. package/dist/quasar.server.prod.cjs +78 -79
  162. package/dist/quasar.server.prod.js +78 -79
  163. package/dist/quasar.umd.js +25876 -29791
  164. package/dist/quasar.umd.prod.js +78 -79
  165. package/dist/types/api/dialog.d.ts +1 -1
  166. package/dist/types/api/qinput.d.ts +1 -1
  167. package/dist/types/api/qtable.d.ts +1 -1
  168. package/dist/types/api/qtree.d.ts +1 -1
  169. package/dist/types/api/quploader.d.ts +1 -1
  170. package/dist/types/api/slider.d.ts +2 -4
  171. package/dist/types/api/validation.d.ts +1 -1
  172. package/dist/types/api/web-storage.d.ts +6 -6
  173. package/dist/types/feature-flag.d.ts +1 -1
  174. package/dist/types/globals.d.ts +7 -4
  175. package/dist/types/index.d.ts +126 -414
  176. package/dist/types/lang.d.ts +3 -3
  177. package/dist/types/ts-helpers.d.ts +4 -9
  178. package/dist/types/utils/colors.d.ts +1 -1
  179. package/dist/types/utils/date.d.ts +8 -8
  180. package/dist/types/utils/dom.d.ts +1 -1
  181. package/dist/types/utils/run-sequential-promises.d.ts +12 -12
  182. package/dist/types/utils/scroll.d.ts +5 -5
  183. package/dist/types/utils.d.ts +16 -19
  184. package/dist/web-types/web-types.json +1 -1
  185. package/icon-set/bootstrap-icons.js +1 -4
  186. package/icon-set/svg-bootstrap-icons.js +1 -4
  187. package/icon-set/svg-fontawesome-v5.js +0 -1
  188. package/icon-set/svg-ionicons-v5.js +2 -2
  189. package/lang/ar-TN.js +10 -8
  190. package/lang/ar.js +10 -8
  191. package/lang/az-Latn.js +13 -9
  192. package/lang/bg.js +10 -8
  193. package/lang/bn.js +14 -9
  194. package/lang/bs-BA.js +13 -9
  195. package/lang/ca.js +18 -14
  196. package/lang/cs.js +9 -7
  197. package/lang/da.js +10 -8
  198. package/lang/de-CH.js +13 -9
  199. package/lang/de-DE.js +13 -9
  200. package/lang/de.js +13 -9
  201. package/lang/el.js +10 -8
  202. package/lang/en-GB.js +10 -8
  203. package/lang/en-US.js +10 -8
  204. package/lang/eo.js +14 -9
  205. package/lang/es.js +10 -8
  206. package/lang/et.js +15 -12
  207. package/lang/eu.js +15 -12
  208. package/lang/fa-IR.js +16 -8
  209. package/lang/fa.js +16 -8
  210. package/lang/fi.js +17 -8
  211. package/lang/fr.js +21 -13
  212. package/lang/gn.js +14 -12
  213. package/lang/he.js +15 -10
  214. package/lang/hi.js +8 -8
  215. package/lang/hr.js +13 -9
  216. package/lang/hu.js +10 -8
  217. package/lang/id.js +11 -9
  218. package/lang/is.js +13 -9
  219. package/lang/it.js +14 -9
  220. package/lang/ja.js +13 -8
  221. package/lang/kk.js +22 -11
  222. package/lang/km.js +9 -8
  223. package/lang/ko-KR.js +9 -10
  224. package/lang/kur-CKB.js +16 -17
  225. package/lang/lt.js +26 -19
  226. package/lang/lu.js +13 -9
  227. package/lang/lv.js +13 -9
  228. package/lang/mk.js +10 -8
  229. package/lang/ml.js +15 -14
  230. package/lang/mm.js +16 -13
  231. package/lang/ms-MY.js +16 -11
  232. package/lang/ms.js +10 -8
  233. package/lang/my.js +15 -8
  234. package/lang/nb-NO.js +10 -8
  235. package/lang/nl.js +13 -9
  236. package/lang/pl.js +13 -9
  237. package/lang/pt-BR.js +17 -10
  238. package/lang/pt.js +17 -10
  239. package/lang/ro.js +10 -8
  240. package/lang/ru.js +25 -12
  241. package/lang/sk.js +18 -9
  242. package/lang/sl.js +12 -8
  243. package/lang/sm.js +51 -47
  244. package/lang/sq.js +13 -9
  245. package/lang/sr-CYR.js +10 -8
  246. package/lang/sr.js +10 -8
  247. package/lang/sv.js +10 -8
  248. package/lang/ta.js +10 -8
  249. package/lang/th.js +12 -11
  250. package/lang/tl.js +10 -8
  251. package/lang/tr.js +8 -5
  252. package/lang/ug.js +16 -8
  253. package/lang/uk.js +22 -11
  254. package/lang/ur-PK.js +13 -11
  255. package/lang/uz-Cyrl.js +5 -5
  256. package/lang/uz-Latn.js +24 -24
  257. package/lang/vi.js +13 -9
  258. package/lang/zh-CN.js +18 -9
  259. package/lang/zh-TW.js +20 -10
  260. package/package.json +50 -64
  261. package/src/api.extends.json +15 -12
  262. package/src/components/ajax-bar/QAjaxBar.js +91 -65
  263. package/src/components/ajax-bar/QAjaxBar.json +2 -2
  264. package/src/components/ajax-bar/index.js +1 -3
  265. package/src/components/avatar/QAvatar.js +36 -28
  266. package/src/components/avatar/QAvatar.json +2 -2
  267. package/src/components/avatar/QAvatar.test.js +29 -78
  268. package/src/components/avatar/index.js +1 -3
  269. package/src/components/badge/QBadge.js +33 -26
  270. package/src/components/badge/QBadge.json +3 -3
  271. package/src/components/badge/QBadge.test.js +40 -95
  272. package/src/components/badge/index.js +1 -3
  273. package/src/components/banner/QBanner.js +46 -25
  274. package/src/components/banner/QBanner.test.js +14 -35
  275. package/src/components/banner/index.js +1 -3
  276. package/src/components/bar/QBar.js +21 -11
  277. package/src/components/bar/QBar.test.js +6 -17
  278. package/src/components/bar/index.js +1 -3
  279. package/src/components/breadcrumbs/QBreadcrumbs.js +44 -32
  280. package/src/components/breadcrumbs/QBreadcrumbs.json +10 -3
  281. package/src/components/breadcrumbs/QBreadcrumbs.test.js +56 -69
  282. package/src/components/breadcrumbs/QBreadcrumbsEl.js +28 -22
  283. package/src/components/breadcrumbs/QBreadcrumbsEl.json +5 -8
  284. package/src/components/breadcrumbs/QBreadcrumbsEl.test.js +60 -134
  285. package/src/components/breadcrumbs/index.js +1 -4
  286. package/src/components/btn/QBtn.js +159 -103
  287. package/src/components/btn/QBtn.json +3 -6
  288. package/src/components/btn/QBtn.test.js +269 -496
  289. package/src/components/btn/index.js +1 -3
  290. package/src/components/btn/use-btn.js +82 -70
  291. package/src/components/btn/use-btn.json +33 -16
  292. package/src/components/btn/use-btn.test.js +30 -47
  293. package/src/components/btn-dropdown/QBtnDropdown.js +143 -104
  294. package/src/components/btn-dropdown/QBtnDropdown.json +41 -16
  295. package/src/components/btn-dropdown/index.js +1 -3
  296. package/src/components/btn-group/QBtnGroup.js +18 -6
  297. package/src/components/btn-group/index.js +1 -3
  298. package/src/components/btn-toggle/QBtnToggle.js +80 -61
  299. package/src/components/btn-toggle/QBtnToggle.json +16 -9
  300. package/src/components/btn-toggle/index.js +1 -3
  301. package/src/components/card/QCard.js +14 -9
  302. package/src/components/card/QCard.json +1 -1
  303. package/src/components/card/QCardActions.js +8 -5
  304. package/src/components/card/QCardActions.json +9 -1
  305. package/src/components/card/QCardSection.js +5 -4
  306. package/src/components/card/QCardSection.json +1 -1
  307. package/src/components/card/index.js +1 -5
  308. package/src/components/carousel/QCarousel.js +194 -125
  309. package/src/components/carousel/QCarousel.json +10 -11
  310. package/src/components/carousel/QCarouselControl.js +26 -13
  311. package/src/components/carousel/QCarouselControl.json +10 -5
  312. package/src/components/carousel/QCarouselSlide.js +13 -10
  313. package/src/components/carousel/QCarouselSlide.json +1 -1
  314. package/src/components/carousel/index.js +1 -5
  315. package/src/components/chat/QChatMessage.js +62 -57
  316. package/src/components/chat/QChatMessage.json +8 -5
  317. package/src/components/chat/index.js +1 -3
  318. package/src/components/checkbox/QCheckbox.js +56 -41
  319. package/src/components/checkbox/QCheckbox.json +1 -1
  320. package/src/components/checkbox/index.js +1 -3
  321. package/src/components/checkbox/use-checkbox.js +112 -83
  322. package/src/components/checkbox/use-checkbox.json +15 -12
  323. package/src/components/chip/QChip.js +101 -73
  324. package/src/components/chip/QChip.json +6 -6
  325. package/src/components/chip/QChip.test.js +72 -180
  326. package/src/components/chip/index.js +1 -3
  327. package/src/components/circular-progress/QCircularProgress.js +92 -57
  328. package/src/components/circular-progress/QCircularProgress.json +2 -2
  329. package/src/components/circular-progress/index.js +1 -3
  330. package/src/components/color/QColor.js +550 -367
  331. package/src/components/color/QColor.json +8 -8
  332. package/src/components/color/index.js +1 -3
  333. package/src/components/date/QDate.js +902 -607
  334. package/src/components/date/QDate.json +32 -23
  335. package/src/components/date/index.js +1 -3
  336. package/src/components/date/use-datetime.js +12 -14
  337. package/src/components/date/use-datetime.json +7 -7
  338. package/src/components/dialog/QDialog.js +178 -139
  339. package/src/components/dialog/QDialog.json +8 -4
  340. package/src/components/dialog/QDialog.test.js +123 -228
  341. package/src/components/dialog/index.js +1 -3
  342. package/src/components/drawer/QDrawer.js +306 -242
  343. package/src/components/drawer/QDrawer.json +4 -4
  344. package/src/components/drawer/index.js +1 -3
  345. package/src/components/editor/QEditor.js +409 -190
  346. package/src/components/editor/QEditor.json +33 -32
  347. package/src/components/editor/editor-caret.js +78 -83
  348. package/src/components/editor/editor-utils.js +176 -130
  349. package/src/components/editor/index.js +1 -3
  350. package/src/components/expansion-item/QExpansionItem.js +149 -103
  351. package/src/components/expansion-item/QExpansionItem.json +21 -24
  352. package/src/components/expansion-item/index.js +1 -3
  353. package/src/components/fab/QFab.js +86 -54
  354. package/src/components/fab/QFab.json +6 -3
  355. package/src/components/fab/QFabAction.js +34 -29
  356. package/src/components/fab/QFabAction.json +4 -7
  357. package/src/components/fab/index.js +1 -4
  358. package/src/components/fab/use-fab.js +20 -20
  359. package/src/components/fab/use-fab.json +10 -13
  360. package/src/components/field/QField.js +7 -5
  361. package/src/components/field/QField.json +6 -6
  362. package/src/components/field/QField.sass +0 -8
  363. package/src/components/field/index.js +1 -3
  364. package/src/components/file/QFile.js +95 -74
  365. package/src/components/file/QFile.json +17 -14
  366. package/src/components/file/index.js +1 -3
  367. package/src/components/footer/QFooter.js +110 -67
  368. package/src/components/footer/QFooter.json +2 -2
  369. package/src/components/footer/index.js +1 -3
  370. package/src/components/form/QForm.js +93 -58
  371. package/src/components/form/QForm.json +2 -2
  372. package/src/components/form/QFormChildMixin.js +10 -11
  373. package/src/components/form/QFormChildMixin.json +2 -2
  374. package/src/components/form/index.js +1 -4
  375. package/src/components/header/QHeader.js +93 -56
  376. package/src/components/header/QHeader.json +2 -2
  377. package/src/components/header/index.js +1 -3
  378. package/src/components/icon/QIcon.js +70 -57
  379. package/src/components/icon/QIcon.json +2 -2
  380. package/src/components/icon/index.js +1 -3
  381. package/src/components/img/QImg.js +104 -98
  382. package/src/components/img/QImg.json +20 -18
  383. package/src/components/img/index.js +1 -3
  384. package/src/components/infinite-scroll/QInfiniteScroll.js +123 -64
  385. package/src/components/infinite-scroll/QInfiniteScroll.json +1 -1
  386. package/src/components/infinite-scroll/index.js +1 -3
  387. package/src/components/inner-loading/QInnerLoading.js +31 -23
  388. package/src/components/inner-loading/QInnerLoading.json +9 -9
  389. package/src/components/inner-loading/index.js +1 -3
  390. package/src/components/input/QInput.js +179 -137
  391. package/src/components/input/QInput.json +25 -15
  392. package/src/components/input/index.js +1 -3
  393. package/src/components/input/use-mask.js +328 -243
  394. package/src/components/input/use-mask.json +16 -8
  395. package/src/components/intersection/QIntersection.js +45 -28
  396. package/src/components/intersection/QIntersection.json +7 -10
  397. package/src/components/intersection/index.js +1 -3
  398. package/src/components/item/QItem.js +60 -52
  399. package/src/components/item/QItem.json +6 -9
  400. package/src/components/item/QItemLabel.js +23 -15
  401. package/src/components/item/QItemLabel.json +1 -1
  402. package/src/components/item/QItemSection.js +11 -8
  403. package/src/components/item/QList.js +21 -13
  404. package/src/components/item/QList.json +1 -1
  405. package/src/components/item/QList.test.js +7 -11
  406. package/src/components/item/index.js +1 -7
  407. package/src/components/knob/QKnob.js +86 -76
  408. package/src/components/knob/QKnob.json +6 -3
  409. package/src/components/knob/index.js +1 -3
  410. package/src/components/layout/QLayout.js +98 -69
  411. package/src/components/layout/QLayout.json +2 -2
  412. package/src/components/layout/index.js +1 -3
  413. package/src/components/linear-progress/QLinearProgress.js +78 -47
  414. package/src/components/linear-progress/QLinearProgress.json +3 -3
  415. package/src/components/linear-progress/index.js +1 -3
  416. package/src/components/markup-table/QMarkupTable.js +25 -17
  417. package/src/components/markup-table/QMarkupTable.json +2 -2
  418. package/src/components/markup-table/index.js +1 -3
  419. package/src/components/menu/QMenu.js +144 -100
  420. package/src/components/menu/QMenu.json +39 -10
  421. package/src/components/menu/index.js +1 -3
  422. package/src/components/no-ssr/QNoSsr.js +5 -5
  423. package/src/components/no-ssr/QNoSsr.json +2 -2
  424. package/src/components/no-ssr/index.js +1 -3
  425. package/src/components/option-group/QOptionGroup.js +84 -66
  426. package/src/components/option-group/QOptionGroup.json +35 -21
  427. package/src/components/option-group/index.js +1 -3
  428. package/src/components/page/QPage.js +35 -22
  429. package/src/components/page/QPage.json +1 -1
  430. package/src/components/page/QPageContainer.js +24 -11
  431. package/src/components/page/index.js +1 -4
  432. package/src/components/page-scroller/QPageScroller.js +49 -32
  433. package/src/components/page-scroller/QPageScroller.json +2 -2
  434. package/src/components/page-scroller/index.js +1 -3
  435. package/src/components/page-sticky/QPageSticky.js +1 -1
  436. package/src/components/page-sticky/QPageSticky.json +9 -4
  437. package/src/components/page-sticky/index.js +1 -3
  438. package/src/components/page-sticky/use-page-sticky.js +47 -36
  439. package/src/components/pagination/QPagination.js +210 -146
  440. package/src/components/pagination/QPagination.json +35 -21
  441. package/src/components/pagination/index.js +1 -3
  442. package/src/components/parallax/QParallax.js +81 -56
  443. package/src/components/parallax/index.js +1 -3
  444. package/src/components/popup-edit/QPopupEdit.js +88 -59
  445. package/src/components/popup-edit/QPopupEdit.json +40 -16
  446. package/src/components/popup-edit/index.js +1 -3
  447. package/src/components/popup-proxy/QPopupProxy.js +30 -19
  448. package/src/components/popup-proxy/QPopupProxy.json +3 -3
  449. package/src/components/popup-proxy/index.js +1 -3
  450. package/src/components/pull-to-refresh/QPullToRefresh.js +71 -49
  451. package/src/components/pull-to-refresh/index.js +1 -3
  452. package/src/components/radio/QRadio.js +133 -95
  453. package/src/components/radio/QRadio.json +11 -8
  454. package/src/components/radio/index.js +1 -3
  455. package/src/components/range/QRange.js +151 -104
  456. package/src/components/range/QRange.json +9 -9
  457. package/src/components/range/index.js +1 -3
  458. package/src/components/rating/QRating.js +171 -112
  459. package/src/components/rating/QRating.json +19 -12
  460. package/src/components/rating/index.js +1 -3
  461. package/src/components/resize-observer/QResizeObserver.js +52 -30
  462. package/src/components/resize-observer/QResizeObserver.json +2 -2
  463. package/src/components/resize-observer/index.js +1 -3
  464. package/src/components/responsive/QResponsive.js +27 -14
  465. package/src/components/responsive/QResponsive.json +1 -1
  466. package/src/components/responsive/index.js +1 -3
  467. package/src/components/scroll-area/QScrollArea.js +279 -192
  468. package/src/components/scroll-area/QScrollArea.json +31 -21
  469. package/src/components/scroll-area/ScrollAreaControls.js +6 -11
  470. package/src/components/scroll-area/index.js +1 -3
  471. package/src/components/scroll-observer/QScrollObserver.js +46 -26
  472. package/src/components/scroll-observer/QScrollObserver.json +4 -4
  473. package/src/components/scroll-observer/index.js +1 -3
  474. package/src/components/select/QSelect.js +710 -519
  475. package/src/components/select/QSelect.json +70 -45
  476. package/src/components/select/index.js +1 -3
  477. package/src/components/separator/QSeparator.js +34 -30
  478. package/src/components/separator/QSeparator.json +4 -4
  479. package/src/components/separator/index.js +1 -3
  480. package/src/components/skeleton/QSkeleton.js +49 -23
  481. package/src/components/skeleton/QSkeleton.json +26 -9
  482. package/src/components/skeleton/index.js +1 -3
  483. package/src/components/slide-item/QSlideItem.js +121 -94
  484. package/src/components/slide-item/QSlideItem.json +2 -2
  485. package/src/components/slide-item/index.js +1 -3
  486. package/src/components/slide-transition/QSlideTransition.js +34 -26
  487. package/src/components/slide-transition/index.js +1 -3
  488. package/src/components/slider/QSlider.js +64 -43
  489. package/src/components/slider/QSlider.json +6 -6
  490. package/src/components/slider/index.js +1 -3
  491. package/src/components/slider/use-slider.js +327 -220
  492. package/src/components/slider/use-slider.json +32 -32
  493. package/src/components/space/QSpace.js +1 -1
  494. package/src/components/space/QSpace.test.js +1 -4
  495. package/src/components/space/index.js +1 -3
  496. package/src/components/spinner/QSpinner.js +23 -18
  497. package/src/components/spinner/QSpinner.json +1 -1
  498. package/src/components/spinner/QSpinner.test.js +11 -27
  499. package/src/components/spinner/QSpinnerAudio.js +13 -11
  500. package/src/components/spinner/QSpinnerAudio.json +1 -1
  501. package/src/components/spinner/QSpinnerAudio.test.js +9 -21
  502. package/src/components/spinner/QSpinnerBall.js +13 -11
  503. package/src/components/spinner/QSpinnerBall.json +1 -1
  504. package/src/components/spinner/QSpinnerBall.test.js +9 -21
  505. package/src/components/spinner/QSpinnerBars.js +13 -11
  506. package/src/components/spinner/QSpinnerBars.json +1 -1
  507. package/src/components/spinner/QSpinnerBars.test.js +9 -21
  508. package/src/components/spinner/QSpinnerBox.js +13 -11
  509. package/src/components/spinner/QSpinnerBox.json +1 -1
  510. package/src/components/spinner/QSpinnerBox.test.js +9 -21
  511. package/src/components/spinner/QSpinnerClock.js +13 -11
  512. package/src/components/spinner/QSpinnerClock.json +1 -1
  513. package/src/components/spinner/QSpinnerClock.test.js +9 -21
  514. package/src/components/spinner/QSpinnerComment.js +13 -11
  515. package/src/components/spinner/QSpinnerComment.json +1 -1
  516. package/src/components/spinner/QSpinnerComment.test.js +9 -21
  517. package/src/components/spinner/QSpinnerCube.js +13 -11
  518. package/src/components/spinner/QSpinnerCube.json +1 -1
  519. package/src/components/spinner/QSpinnerCube.test.js +9 -21
  520. package/src/components/spinner/QSpinnerDots.js +13 -11
  521. package/src/components/spinner/QSpinnerDots.json +1 -1
  522. package/src/components/spinner/QSpinnerDots.test.js +9 -21
  523. package/src/components/spinner/QSpinnerFacebook.js +13 -11
  524. package/src/components/spinner/QSpinnerFacebook.json +1 -1
  525. package/src/components/spinner/QSpinnerFacebook.test.js +9 -21
  526. package/src/components/spinner/QSpinnerGears.js +13 -11
  527. package/src/components/spinner/QSpinnerGears.json +1 -1
  528. package/src/components/spinner/QSpinnerGears.test.js +9 -21
  529. package/src/components/spinner/QSpinnerGrid.js +13 -11
  530. package/src/components/spinner/QSpinnerGrid.json +1 -1
  531. package/src/components/spinner/QSpinnerGrid.test.js +9 -21
  532. package/src/components/spinner/QSpinnerHearts.js +13 -11
  533. package/src/components/spinner/QSpinnerHearts.json +1 -1
  534. package/src/components/spinner/QSpinnerHearts.test.js +9 -21
  535. package/src/components/spinner/QSpinnerHourglass.js +13 -11
  536. package/src/components/spinner/QSpinnerHourglass.json +1 -1
  537. package/src/components/spinner/QSpinnerHourglass.test.js +9 -21
  538. package/src/components/spinner/QSpinnerInfinity.js +12 -10
  539. package/src/components/spinner/QSpinnerInfinity.json +1 -1
  540. package/src/components/spinner/QSpinnerInfinity.test.js +9 -21
  541. package/src/components/spinner/QSpinnerIos.js +13 -11
  542. package/src/components/spinner/QSpinnerIos.json +1 -1
  543. package/src/components/spinner/QSpinnerIos.test.js +9 -21
  544. package/src/components/spinner/QSpinnerOrbit.js +13 -11
  545. package/src/components/spinner/QSpinnerOrbit.json +1 -1
  546. package/src/components/spinner/QSpinnerOrbit.test.js +9 -21
  547. package/src/components/spinner/QSpinnerOval.js +13 -11
  548. package/src/components/spinner/QSpinnerOval.json +1 -1
  549. package/src/components/spinner/QSpinnerOval.test.js +9 -21
  550. package/src/components/spinner/QSpinnerPie.js +13 -11
  551. package/src/components/spinner/QSpinnerPie.json +1 -1
  552. package/src/components/spinner/QSpinnerPie.test.js +9 -21
  553. package/src/components/spinner/QSpinnerPuff.js +13 -11
  554. package/src/components/spinner/QSpinnerPuff.json +1 -1
  555. package/src/components/spinner/QSpinnerPuff.test.js +9 -21
  556. package/src/components/spinner/QSpinnerRadio.js +13 -11
  557. package/src/components/spinner/QSpinnerRadio.json +1 -1
  558. package/src/components/spinner/QSpinnerRadio.test.js +9 -21
  559. package/src/components/spinner/QSpinnerRings.js +13 -11
  560. package/src/components/spinner/QSpinnerRings.json +1 -1
  561. package/src/components/spinner/QSpinnerRings.test.js +9 -21
  562. package/src/components/spinner/QSpinnerTail.js +12 -10
  563. package/src/components/spinner/QSpinnerTail.json +1 -1
  564. package/src/components/spinner/QSpinnerTail.test.js +9 -21
  565. package/src/components/spinner/index.js +0 -1
  566. package/src/components/spinner/spinner.json +2 -2
  567. package/src/components/spinner/use-spinner.js +7 -7
  568. package/src/components/spinner/use-spinner.test.js +1 -1
  569. package/src/components/splitter/QSplitter.js +133 -94
  570. package/src/components/splitter/QSplitter.json +10 -19
  571. package/src/components/splitter/index.js +1 -3
  572. package/src/components/stepper/QStep.js +65 -42
  573. package/src/components/stepper/QStep.json +5 -5
  574. package/src/components/stepper/QStepper.js +62 -39
  575. package/src/components/stepper/QStepper.json +2 -2
  576. package/src/components/stepper/QStepperNavigation.js +1 -1
  577. package/src/components/stepper/StepHeader.js +87 -67
  578. package/src/components/stepper/index.js +1 -5
  579. package/src/components/tab-panels/QTabPanel.js +3 -2
  580. package/src/components/tab-panels/QTabPanel.json +1 -1
  581. package/src/components/tab-panels/QTabPanels.js +12 -6
  582. package/src/components/tab-panels/QTabPanels.json +1 -1
  583. package/src/components/tab-panels/index.js +1 -4
  584. package/src/components/table/QTable.js +544 -426
  585. package/src/components/table/QTable.json +168 -165
  586. package/src/components/table/QTd.js +18 -13
  587. package/src/components/table/QTd.json +1 -1
  588. package/src/components/table/QTh.js +25 -20
  589. package/src/components/table/QTh.json +1 -1
  590. package/src/components/table/QTr.js +17 -9
  591. package/src/components/table/QTr.json +1 -1
  592. package/src/components/table/get-table-middle.js +2 -4
  593. package/src/components/table/index.js +1 -6
  594. package/src/components/table/table-column-selection.js +45 -35
  595. package/src/components/table/table-filter.js +9 -8
  596. package/src/components/table/table-pagination.js +75 -52
  597. package/src/components/table/table-row-expand.js +15 -16
  598. package/src/components/table/table-row-selection.js +31 -31
  599. package/src/components/table/table-sort.js +26 -29
  600. package/src/components/tabs/QRouteTab.js +10 -12
  601. package/src/components/tabs/QRouteTab.json +6 -6
  602. package/src/components/tabs/QTab.js +1 -1
  603. package/src/components/tabs/QTab.json +1 -1
  604. package/src/components/tabs/QTabs.js +283 -205
  605. package/src/components/tabs/QTabs.json +9 -9
  606. package/src/components/tabs/index.js +1 -5
  607. package/src/components/tabs/use-tab.js +127 -103
  608. package/src/components/tabs/use-tab.json +8 -8
  609. package/src/components/time/QTime.js +502 -383
  610. package/src/components/time/QTime.json +19 -15
  611. package/src/components/time/index.js +1 -3
  612. package/src/components/timeline/QTimeline.js +10 -7
  613. package/src/components/timeline/QTimeline.json +2 -2
  614. package/src/components/timeline/QTimelineEntry.js +44 -27
  615. package/src/components/timeline/QTimelineEntry.json +7 -5
  616. package/src/components/timeline/index.js +1 -4
  617. package/src/components/toggle/QToggle.js +29 -19
  618. package/src/components/toggle/QToggle.json +1 -1
  619. package/src/components/toggle/index.js +1 -3
  620. package/src/components/toolbar/QToolbar.js +7 -5
  621. package/src/components/toolbar/QToolbar.test.js +2 -6
  622. package/src/components/toolbar/QToolbarTitle.js +5 -4
  623. package/src/components/toolbar/QToolbarTitle.test.js +2 -6
  624. package/src/components/toolbar/index.js +1 -4
  625. package/src/components/tooltip/QTooltip.js +125 -72
  626. package/src/components/tooltip/QTooltip.json +34 -10
  627. package/src/components/tooltip/index.js +1 -3
  628. package/src/components/tree/QTree.js +417 -297
  629. package/src/components/tree/QTree.json +27 -25
  630. package/src/components/tree/index.js +1 -3
  631. package/src/components/uploader/QUploader.json +9 -6
  632. package/src/components/uploader/QUploaderAddTrigger.js +5 -2
  633. package/src/components/uploader/index.js +1 -4
  634. package/src/components/uploader/uploader-core.js +262 -178
  635. package/src/components/uploader/xhr-uploader-plugin.js +96 -89
  636. package/src/components/uploader/xhr-uploader-plugin.json +29 -29
  637. package/src/components/video/QVideo.js +25 -19
  638. package/src/components/video/QVideo.json +5 -5
  639. package/src/components/video/QVideo.test.js +55 -85
  640. package/src/components/video/index.js +1 -3
  641. package/src/components/virtual-scroll/QVirtualScroll.js +89 -37
  642. package/src/components/virtual-scroll/QVirtualScroll.json +6 -6
  643. package/src/components/virtual-scroll/index.js +1 -3
  644. package/src/components/virtual-scroll/use-virtual-scroll.js +421 -240
  645. package/src/components/virtual-scroll/use-virtual-scroll.json +20 -13
  646. package/src/composables/private.use-align/use-align.js +8 -5
  647. package/src/composables/private.use-align/use-align.test.js +9 -17
  648. package/src/composables/private.use-anchor/use-anchor-static.json +2 -7
  649. package/src/composables/private.use-anchor/use-anchor.js +79 -62
  650. package/src/composables/private.use-anchor/use-anchor.json +1 -1
  651. package/src/composables/private.use-dark/use-dark.js +2 -6
  652. package/src/composables/private.use-dark/use-dark.test.js +7 -21
  653. package/src/composables/private.use-field/use-field.js +384 -251
  654. package/src/composables/private.use-field/use-field.json +10 -10
  655. package/src/composables/private.use-file/use-file-dom-props.js +11 -15
  656. package/src/composables/private.use-file/use-file.js +86 -67
  657. package/src/composables/private.use-file/use-file.json +8 -8
  658. package/src/composables/private.use-fullscreen/use-fullscreen.js +35 -17
  659. package/src/composables/private.use-fullscreen/use-fullscreen.json +1 -1
  660. package/src/composables/private.use-history/use-history.js +4 -4
  661. package/src/composables/private.use-history/use-history.test.js +9 -21
  662. package/src/composables/private.use-key-composition/use-key-composition.js +16 -12
  663. package/src/composables/private.use-model-toggle/use-model-toggle.js +44 -35
  664. package/src/composables/private.use-model-toggle/use-model-toggle.json +2 -2
  665. package/src/composables/private.use-panel/use-panel.child.json +1 -1
  666. package/src/composables/private.use-panel/use-panel.js +131 -91
  667. package/src/composables/private.use-panel/use-panel.json +18 -18
  668. package/src/composables/private.use-portal/use-portal.js +20 -15
  669. package/src/composables/private.use-prevent-scroll/use-prevent-scroll.js +4 -4
  670. package/src/composables/private.use-ratio/use-ratio.js +3 -3
  671. package/src/composables/private.use-ratio/use-ratio.json +2 -7
  672. package/src/composables/private.use-refocus-target/use-refocus-target.js +7 -8
  673. package/src/composables/private.use-router-link/use-router-link.js +111 -110
  674. package/src/composables/private.use-router-link/use-router-link.json +6 -9
  675. package/src/composables/private.use-scroll-target/use-scroll-target.js +14 -11
  676. package/src/composables/private.use-size/use-size.js +6 -4
  677. package/src/composables/private.use-size/use-size.json +1 -1
  678. package/src/composables/private.use-size/use-size.test.js +1 -1
  679. package/src/composables/private.use-transition/use-transition.js +17 -11
  680. package/src/composables/private.use-transition/use-transition.json +1 -1
  681. package/src/composables/private.use-transition/use-transition.test.js +7 -21
  682. package/src/composables/private.use-validate/use-validate.js +78 -67
  683. package/src/composables/private.use-validate/use-validate.json +9 -12
  684. package/src/composables/use-dialog-plugin-component/use-dialog-plugin-component.js +12 -6
  685. package/src/composables/use-form/private.use-form.js +4 -4
  686. package/src/composables/use-form/private.use-form.json +1 -1
  687. package/src/composables/use-form/private.use-form.test.js +17 -15
  688. package/src/composables/use-form/use-form-child.js +25 -14
  689. package/src/composables/use-hydration/use-hydration.js +1 -1
  690. package/src/composables/use-hydration/use-hydration.test.js +2 -4
  691. package/src/composables/use-id/use-id.js +10 -12
  692. package/src/composables/use-id/use-id.test.js +1 -1
  693. package/src/composables/use-interval/use-interval.js +3 -3
  694. package/src/composables/use-interval/use-interval.test.js +6 -9
  695. package/src/composables/use-meta/use-meta.js +13 -10
  696. package/src/composables/use-quasar/use-quasar.js +1 -1
  697. package/src/composables/use-quasar/use-quasar.test.js +4 -10
  698. package/src/composables/use-render-cache/use-render-cache.js +16 -24
  699. package/src/composables/use-split-attrs/use-split-attrs.js +9 -5
  700. package/src/composables/use-split-attrs/use-split-attrs.test.js +17 -15
  701. package/src/composables/use-tick/use-tick.js +10 -5
  702. package/src/composables/use-tick/use-tick.test.js +5 -8
  703. package/src/composables/use-timeout/use-timeout.js +3 -3
  704. package/src/composables/use-timeout/use-timeout.test.js +6 -9
  705. package/src/composables.js +0 -1
  706. package/src/css/core/helpers.sass +3 -16
  707. package/src/directives/close-popup/ClosePopup.js +41 -35
  708. package/src/directives/close-popup/ClosePopup.json +1 -1
  709. package/src/directives/intersection/Intersection.js +25 -28
  710. package/src/directives/intersection/Intersection.json +6 -6
  711. package/src/directives/morph/Morph.js +87 -87
  712. package/src/directives/morph/Morph.json +15 -13
  713. package/src/directives/mutation/Mutation.js +23 -24
  714. package/src/directives/mutation/Mutation.json +11 -11
  715. package/src/directives/ripple/Ripple.js +88 -79
  716. package/src/directives/ripple/Ripple.json +10 -10
  717. package/src/directives/ripple/Ripple.test.js +31 -87
  718. package/src/directives/scroll/Scroll.js +43 -30
  719. package/src/directives/scroll/Scroll.json +4 -2
  720. package/src/directives/scroll-fire/ScrollFire.js +43 -38
  721. package/src/directives/scroll-fire/ScrollFire.json +1 -1
  722. package/src/directives/touch-hold/TouchHold.js +155 -139
  723. package/src/directives/touch-hold/TouchHold.json +2 -2
  724. package/src/directives/touch-pan/TouchPan.js +311 -278
  725. package/src/directives/touch-pan/TouchPan.json +6 -4
  726. package/src/directives/touch-repeat/TouchRepeat.js +222 -188
  727. package/src/directives/touch-repeat/TouchRepeat.json +5 -3
  728. package/src/directives/touch-swipe/TouchSwipe.js +235 -214
  729. package/src/directives/touch-swipe/TouchSwipe.json +5 -3
  730. package/src/flags.dev.js +10 -17
  731. package/src/index.dev.js +2 -0
  732. package/src/index.ssr.js +2 -6
  733. package/src/index.umd.js +4 -2
  734. package/src/install-quasar.js +92 -76
  735. package/src/plugins/addressbar/AddressbarColor.js +28 -25
  736. package/src/plugins/addressbar/AddressbarColor.json +1 -1
  737. package/src/plugins/addressbar/AddressbarColor.test.js +10 -9
  738. package/src/plugins/app-fullscreen/AppFullscreen.js +50 -51
  739. package/src/plugins/app-fullscreen/AppFullscreen.json +6 -10
  740. package/src/plugins/app-fullscreen/AppFullscreen.test.js +11 -26
  741. package/src/plugins/app-fullscreen/test/mock-fullscreen.js +7 -5
  742. package/src/plugins/app-visibility/AppVisibility.js +21 -17
  743. package/src/plugins/app-visibility/AppVisibility.test.js +3 -1
  744. package/src/plugins/bottom-sheet/BottomSheet.js +1 -1
  745. package/src/plugins/bottom-sheet/BottomSheet.json +9 -9
  746. package/src/plugins/bottom-sheet/component/BottomSheetComponent.js +132 -95
  747. package/src/plugins/cookies/Cookies.js +50 -58
  748. package/src/plugins/cookies/Cookies.json +24 -16
  749. package/src/plugins/dark/Dark.js +61 -55
  750. package/src/plugins/dark/Dark.json +6 -6
  751. package/src/plugins/dark/Dark.test.js +26 -44
  752. package/src/plugins/dialog/Dialog.js +1 -1
  753. package/src/plugins/dialog/Dialog.json +29 -21
  754. package/src/plugins/dialog/component/DialogPluginComponent.js +122 -121
  755. package/src/plugins/icon-set/IconSet.js +63 -56
  756. package/src/plugins/icon-set/IconSet.json +421 -419
  757. package/src/plugins/icon-set/IconSet.test.js +8 -7
  758. package/src/plugins/lang/Lang.js +115 -96
  759. package/src/plugins/lang/Lang.json +201 -175
  760. package/src/plugins/lang/Lang.test.js +52 -20
  761. package/src/plugins/loading/Loading.js +175 -143
  762. package/src/plugins/loading/Loading.json +15 -15
  763. package/src/plugins/loading-bar/LoadingBar.js +61 -56
  764. package/src/plugins/loading-bar/LoadingBar.json +2 -2
  765. package/src/plugins/meta/Meta.js +91 -81
  766. package/src/plugins/notify/Notify.js +275 -221
  767. package/src/plugins/notify/Notify.json +79 -71
  768. package/src/plugins/platform/Platform.js +105 -112
  769. package/src/plugins/platform/Platform.json +12 -8
  770. package/src/plugins/platform/Platform.test.js +4 -7
  771. package/src/plugins/private.body/Body.js +19 -23
  772. package/src/plugins/private.body/Body.test.js +4 -6
  773. package/src/plugins/private.history/History.js +27 -30
  774. package/src/plugins/screen/Screen.js +160 -147
  775. package/src/plugins/screen/Screen.json +6 -6
  776. package/src/plugins/screen/Screen.test.js +6 -12
  777. package/src/plugins/storage/LocalStorage.js +5 -4
  778. package/src/plugins/storage/LocalStorage.json +1 -1
  779. package/src/plugins/storage/LocalStorage.test.js +56 -62
  780. package/src/plugins/storage/SessionStorage.js +5 -4
  781. package/src/plugins/storage/SessionStorage.json +1 -1
  782. package/src/plugins/storage/SessionStorage.test.js +56 -62
  783. package/src/plugins/storage/engine/web-storage.js +24 -26
  784. package/src/plugins/storage/engine/web-storage.json +45 -15
  785. package/src/utils/EventBus/EventBus.js +12 -13
  786. package/src/utils/clone/clone.js +27 -28
  787. package/src/utils/clone/clone.test.js +27 -52
  788. package/src/utils/colors/colors.js +69 -63
  789. package/src/utils/colors/colors.test.js +360 -270
  790. package/src/utils/copy-to-clipboard/copy-to-clipboard.js +9 -10
  791. package/src/utils/create-meta-mixin/create-meta-mixin.js +17 -19
  792. package/src/utils/create-uploader-component/create-uploader-component.js +20 -14
  793. package/src/utils/css-var/get-css-var.js +4 -2
  794. package/src/utils/css-var/get-css-var.test.js +4 -11
  795. package/src/utils/css-var/set-css-var.js +2 -2
  796. package/src/utils/css-var/set-css-var.test.js +6 -12
  797. package/src/utils/date/date.js +251 -243
  798. package/src/utils/date/private.persian.js +54 -44
  799. package/src/utils/debounce/debounce.js +5 -5
  800. package/src/utils/debounce/debounce.test.js +3 -10
  801. package/src/utils/dom/dom.js +21 -22
  802. package/src/utils/dom/dom.test.js +19 -39
  803. package/src/utils/event/event.js +53 -49
  804. package/src/utils/export-file/export-file.js +11 -12
  805. package/src/utils/extend/extend.js +30 -26
  806. package/src/utils/extend/extend.test.js +36 -42
  807. package/src/utils/format/format.js +11 -13
  808. package/src/utils/format/format.test.js +50 -61
  809. package/src/utils/frame-debounce/frame-debounce.js +5 -3
  810. package/src/utils/frame-debounce/frame-debounce.test.js +3 -10
  811. package/src/utils/is/is.js +27 -23
  812. package/src/utils/is/is.test.js +100 -84
  813. package/src/utils/morph/morph.js +470 -377
  814. package/src/utils/open-url/open-url.js +10 -21
  815. package/src/utils/patterns/patterns.js +11 -7
  816. package/src/utils/patterns/patterns.test.js +2 -0
  817. package/src/utils/private.click-outside/click-outside.js +28 -26
  818. package/src/utils/private.config/instance-config.js +1 -1
  819. package/src/utils/private.config/instance-config.test.js +11 -7
  820. package/src/utils/private.config/nodes.js +14 -14
  821. package/src/utils/private.config/nodes.test.js +32 -38
  822. package/src/utils/private.create/create.js +10 -4
  823. package/src/utils/private.create/create.test.js +11 -7
  824. package/src/utils/private.dialog/create-dialog.js +70 -59
  825. package/src/utils/private.dialog/create-dialog.json +13 -6
  826. package/src/utils/private.focus/focus-manager.js +7 -8
  827. package/src/utils/private.focus/focus-manager.test.js +13 -18
  828. package/src/utils/private.focus/focusout.js +4 -4
  829. package/src/utils/private.focus/focusout.test.js +10 -22
  830. package/src/utils/private.get-emits-object/get-emits-object.js +2 -2
  831. package/src/utils/private.get-emits-object/get-emits-object.test.js +4 -10
  832. package/src/utils/private.inject-obj-prop/inject-obj-prop.js +3 -3
  833. package/src/utils/private.inject-obj-prop/inject-obj-prop.test.js +20 -49
  834. package/src/utils/private.keyboard/escape-key.js +10 -10
  835. package/src/utils/private.keyboard/escape-key.test.js +10 -22
  836. package/src/utils/private.keyboard/key-composition.js +9 -7
  837. package/src/utils/private.portal/portal.js +7 -10
  838. package/src/utils/private.position-engine/position-engine.js +127 -75
  839. package/src/utils/private.render/render.js +9 -24
  840. package/src/utils/private.render/render.test.js +40 -55
  841. package/src/utils/private.rtl/rtl.js +1 -3
  842. package/src/utils/private.selection/selection.js +6 -6
  843. package/src/utils/private.selection/selection.test.js +7 -13
  844. package/src/utils/private.sort/sort.js +4 -6
  845. package/src/utils/private.symbols/symbols.js +1 -1
  846. package/src/utils/private.touch/touch.js +16 -16
  847. package/src/utils/private.touch/touch.test.js +56 -16
  848. package/src/utils/private.vm/vm.js +6 -7
  849. package/src/utils/private.vm/vm.test.js +32 -32
  850. package/src/utils/run-sequential-promises/run-sequential-promises.js +56 -50
  851. package/src/utils/scroll/prevent-scroll.js +75 -47
  852. package/src/utils/scroll/scroll.js +51 -44
  853. package/src/utils/throttle/throttle.js +7 -4
  854. package/src/utils/throttle/throttle.test.js +2 -7
  855. package/src/utils/uid/uid.js +34 -22
  856. package/wrappers/index.cjs +17 -15
  857. package/wrappers/index.js +15 -15
@@ -12,26 +12,43 @@ const NAMED_MASKS = {
12
12
  card: '#### #### #### ####'
13
13
  }
14
14
 
15
- const { tokenMap: DEFAULT_TOKEN_MAP, tokenKeys: DEFAULT_TOKEN_MAP_KEYS } = getTokenMap({
16
- '#': { pattern: '[\\d]', negate: '[^\\d]' },
15
+ const { tokenMap: DEFAULT_TOKEN_MAP, tokenKeys: DEFAULT_TOKEN_MAP_KEYS } =
16
+ getTokenMap({
17
+ '#': { pattern: '[\\d]', negate: '[^\\d]' },
17
18
 
18
- S: { pattern: '[a-zA-Z]', negate: '[^a-zA-Z]' },
19
- N: { pattern: '[0-9a-zA-Z]', negate: '[^0-9a-zA-Z]' },
19
+ S: { pattern: '[a-zA-Z]', negate: '[^a-zA-Z]' },
20
+ N: { pattern: '[0-9a-zA-Z]', negate: '[^0-9a-zA-Z]' },
20
21
 
21
- A: { pattern: '[a-zA-Z]', negate: '[^a-zA-Z]', transform: v => v.toLocaleUpperCase() },
22
- a: { pattern: '[a-zA-Z]', negate: '[^a-zA-Z]', transform: v => v.toLocaleLowerCase() },
22
+ A: {
23
+ pattern: '[a-zA-Z]',
24
+ negate: '[^a-zA-Z]',
25
+ transform: v => v.toLocaleUpperCase()
26
+ },
27
+ a: {
28
+ pattern: '[a-zA-Z]',
29
+ negate: '[^a-zA-Z]',
30
+ transform: v => v.toLocaleLowerCase()
31
+ },
23
32
 
24
- X: { pattern: '[0-9a-zA-Z]', negate: '[^0-9a-zA-Z]', transform: v => v.toLocaleUpperCase() },
25
- x: { pattern: '[0-9a-zA-Z]', negate: '[^0-9a-zA-Z]', transform: v => v.toLocaleLowerCase() }
26
- })
33
+ X: {
34
+ pattern: '[0-9a-zA-Z]',
35
+ negate: '[^0-9a-zA-Z]',
36
+ transform: v => v.toLocaleUpperCase()
37
+ },
38
+ x: {
39
+ pattern: '[0-9a-zA-Z]',
40
+ negate: '[^0-9a-zA-Z]',
41
+ transform: v => v.toLocaleLowerCase()
42
+ }
43
+ })
27
44
 
28
- function getTokenMap (tokens) {
45
+ function getTokenMap(tokens) {
29
46
  const tokenKeys = Object.keys(tokens)
30
47
  const tokenMap = {}
31
48
 
32
49
  tokenKeys.forEach(key => {
33
- const entry = tokens[ key ]
34
- tokenMap[ key ] = {
50
+ const entry = tokens[key]
51
+ tokenMap[key] = {
35
52
  ...entry,
36
53
  regex: new RegExp(entry.pattern)
37
54
  }
@@ -40,8 +57,13 @@ function getTokenMap (tokens) {
40
57
  return { tokenMap, tokenKeys }
41
58
  }
42
59
 
43
- function getTokenRegexMask (keys) {
44
- return new RegExp('\\\\([^.*+?^${}()|([\\]])|([.*+?^${}()|[\\]])|([' + keys.join('') + '])|(.)', 'g')
60
+ function getTokenRegexMask(keys) {
61
+ return new RegExp(
62
+ '\\\\([^.*+?^${}()|([\\]])|([.*+?^${}()|[\\]])|([' +
63
+ keys.join('') +
64
+ '])|(.)',
65
+ 'g'
66
+ )
45
67
  }
46
68
 
47
69
  const escRegex = /[.*+?^${}()|[\]\\]/g
@@ -51,13 +73,18 @@ const MARKER = String.fromCharCode(1)
51
73
  export const useMaskProps = {
52
74
  mask: String,
53
75
  reverseFillMask: Boolean,
54
- fillMask: [ Boolean, String ],
76
+ fillMask: [Boolean, String],
55
77
  unmaskedValue: Boolean,
56
78
  maskTokens: Object
57
79
  }
58
80
 
59
- export default function (props, emit, emitValue, inputRef) {
60
- let maskMarked, maskReplaced, computedMask, computedUnmask, pastedTextStart, selectionAnchor
81
+ export default function useMask(props, emit, emitValue, inputRef) {
82
+ let maskMarked,
83
+ maskReplaced,
84
+ computedMask,
85
+ computedUnmask,
86
+ pastedTextStart,
87
+ selectionAnchor
61
88
 
62
89
  const tokens = computed(() => {
63
90
  if (props.maskTokens === void 0 || props.maskTokens === null) {
@@ -82,52 +109,63 @@ export default function (props, emit, emitValue, inputRef) {
82
109
  const hasMask = ref(null)
83
110
  const innerValue = ref(getInitialMaskedValue())
84
111
 
85
- function getIsTypeText () {
86
- return props.autogrow === true
87
- || [ 'textarea', 'text', 'search', 'url', 'tel', 'password' ].includes(props.type)
112
+ function getIsTypeText() {
113
+ return (
114
+ props.autogrow === true ||
115
+ ['textarea', 'text', 'search', 'url', 'tel', 'password'].includes(
116
+ props.type
117
+ )
118
+ )
88
119
  }
89
120
 
90
121
  watch(() => props.type + props.autogrow, updateMaskInternals)
91
122
 
92
- watch(() => props.mask, v => {
93
- if (v !== void 0) {
94
- updateMaskValue(innerValue.value, true)
95
- }
96
- else {
97
- const val = unmaskValue(innerValue.value)
98
- updateMaskInternals()
99
- props.modelValue !== val && emit('update:modelValue', val)
123
+ watch(
124
+ () => props.mask,
125
+ v => {
126
+ if (v !== void 0) {
127
+ updateMaskValue(innerValue.value, true)
128
+ } else {
129
+ const val = unmaskValue(innerValue.value)
130
+ updateMaskInternals()
131
+ if (props.modelValue !== val) emit('update:modelValue', val)
132
+ }
100
133
  }
101
- })
134
+ )
102
135
 
103
- watch(() => props.fillMask + props.reverseFillMask, () => {
104
- hasMask.value === true && updateMaskValue(innerValue.value, true)
105
- })
136
+ watch(
137
+ () => props.fillMask + props.reverseFillMask,
138
+ () => {
139
+ if (hasMask.value === true) updateMaskValue(innerValue.value, true)
140
+ }
141
+ )
106
142
 
107
- watch(() => props.unmaskedValue, () => {
108
- hasMask.value === true && updateMaskValue(innerValue.value)
109
- })
143
+ watch(
144
+ () => props.unmaskedValue,
145
+ () => {
146
+ if (hasMask.value === true) updateMaskValue(innerValue.value)
147
+ }
148
+ )
110
149
 
111
- function getInitialMaskedValue () {
150
+ function getInitialMaskedValue() {
112
151
  updateMaskInternals()
113
152
 
114
153
  if (hasMask.value === true) {
115
154
  const masked = maskValue(unmaskValue(props.modelValue))
116
155
 
117
- return props.fillMask !== false
118
- ? fillWithMask(masked)
119
- : masked
156
+ return props.fillMask !== false ? fillWithMask(masked) : masked
120
157
  }
121
158
 
122
159
  return props.modelValue
123
160
  }
124
161
 
125
- function getPaddedMaskMarked (size) {
162
+ function getPaddedMaskMarked(size) {
126
163
  if (size < maskMarked.length) {
127
164
  return maskMarked.slice(-size)
128
165
  }
129
166
 
130
- let pad = '', localMaskMarked = maskMarked
167
+ let pad = '',
168
+ localMaskMarked = maskMarked
131
169
  const padPos = localMaskMarked.indexOf(MARKER)
132
170
 
133
171
  if (padPos !== -1) {
@@ -135,16 +173,16 @@ export default function (props, emit, emitValue, inputRef) {
135
173
  pad += MARKER
136
174
  }
137
175
 
138
- localMaskMarked = localMaskMarked.slice(0, padPos) + pad + localMaskMarked.slice(padPos)
176
+ localMaskMarked =
177
+ localMaskMarked.slice(0, padPos) + pad + localMaskMarked.slice(padPos)
139
178
  }
140
179
 
141
180
  return localMaskMarked
142
181
  }
143
182
 
144
- function updateMaskInternals () {
145
- hasMask.value = props.mask !== void 0
146
- && props.mask.length !== 0
147
- && getIsTypeText()
183
+ function updateMaskInternals() {
184
+ hasMask.value =
185
+ props.mask !== void 0 && props.mask.length !== 0 && getIsTypeText()
148
186
 
149
187
  if (hasMask.value === false) {
150
188
  computedUnmask = void 0
@@ -153,64 +191,79 @@ export default function (props, emit, emitValue, inputRef) {
153
191
  return
154
192
  }
155
193
 
156
- const
157
- localComputedMask = NAMED_MASKS[ props.mask ] === void 0
158
- ? props.mask
159
- : NAMED_MASKS[ props.mask ],
160
- fillChar = typeof props.fillMask === 'string' && props.fillMask.length !== 0
161
- ? props.fillMask.slice(0, 1)
162
- : '_',
194
+ const localComputedMask =
195
+ NAMED_MASKS[props.mask] === void 0
196
+ ? props.mask
197
+ : NAMED_MASKS[props.mask],
198
+ fillChar =
199
+ typeof props.fillMask === 'string' && props.fillMask.length !== 0
200
+ ? props.fillMask.slice(0, 1)
201
+ : '_',
163
202
  fillCharEscaped = fillChar.replace(escRegex, '\\$&'),
164
203
  unmask = [],
165
204
  extract = [],
166
205
  mask = []
167
206
 
168
- let
169
- firstMatch = props.reverseFillMask === true,
207
+ let firstMatch = props.reverseFillMask === true,
170
208
  unmaskChar = '',
171
209
  negateChar = ''
172
210
 
173
- localComputedMask.replace(tokens.value.tokenRegexMask, (_, char1, esc, token, char2) => {
174
- if (token !== void 0) {
175
- const c = tokens.value.tokenMap[ token ]
176
- mask.push(c)
177
- negateChar = c.negate
178
- if (firstMatch === true) {
179
- extract.push('(?:' + negateChar + '+)?(' + c.pattern + '+)?(?:' + negateChar + '+)?(' + c.pattern + '+)?')
180
- firstMatch = false
211
+ localComputedMask.replace(
212
+ tokens.value.tokenRegexMask,
213
+ (_, char1, esc, token, char2) => {
214
+ if (token !== void 0) {
215
+ const c = tokens.value.tokenMap[token]
216
+ mask.push(c)
217
+ negateChar = c.negate
218
+ if (firstMatch === true) {
219
+ extract.push(
220
+ '(?:' +
221
+ negateChar +
222
+ '+)?(' +
223
+ c.pattern +
224
+ '+)?(?:' +
225
+ negateChar +
226
+ '+)?(' +
227
+ c.pattern +
228
+ '+)?'
229
+ )
230
+ firstMatch = false
231
+ }
232
+ extract.push('(?:' + negateChar + '+)?(' + c.pattern + ')?')
233
+ } else if (esc !== void 0) {
234
+ unmaskChar = '\\' + (esc === '\\' ? '' : esc)
235
+ mask.push(esc)
236
+ unmask.push('([^' + unmaskChar + ']+)?' + unmaskChar + '?')
237
+ } else {
238
+ const c = char1 !== void 0 ? char1 : char2
239
+ unmaskChar = c === '\\' ? '\\\\\\\\' : c.replace(escRegex, '\\\\$&')
240
+ mask.push(c)
241
+ unmask.push('([^' + unmaskChar + ']+)?' + unmaskChar + '?')
181
242
  }
182
- extract.push('(?:' + negateChar + '+)?(' + c.pattern + ')?')
183
- }
184
- else if (esc !== void 0) {
185
- unmaskChar = '\\' + (esc === '\\' ? '' : esc)
186
- mask.push(esc)
187
- unmask.push('([^' + unmaskChar + ']+)?' + unmaskChar + '?')
188
243
  }
189
- else {
190
- const c = char1 !== void 0 ? char1 : char2
191
- unmaskChar = c === '\\' ? '\\\\\\\\' : c.replace(escRegex, '\\\\$&')
192
- mask.push(c)
193
- unmask.push('([^' + unmaskChar + ']+)?' + unmaskChar + '?')
194
- }
195
- })
196
-
197
- const
198
- unmaskMatcher = new RegExp(
199
- '^'
200
- + unmask.join('')
201
- + '(' + (unmaskChar === '' ? '.' : '[^' + unmaskChar + ']') + '+)?'
202
- + (unmaskChar === '' ? '' : '[' + unmaskChar + ']*') + '$'
244
+ )
245
+
246
+ const unmaskMatcher = new RegExp(
247
+ '^' +
248
+ unmask.join('') +
249
+ '(' +
250
+ (unmaskChar === '' ? '.' : '[^' + unmaskChar + ']') +
251
+ '+)?' +
252
+ (unmaskChar === '' ? '' : '[' + unmaskChar + ']*') +
253
+ '$'
203
254
  ),
204
255
  extractLast = extract.length - 1,
205
256
  extractMatcher = extract.map((re, index) => {
206
257
  if (index === 0 && props.reverseFillMask === true) {
207
258
  return new RegExp('^' + fillCharEscaped + '*' + re)
208
- }
209
- else if (index === extractLast) {
259
+ } else if (index === extractLast) {
210
260
  return new RegExp(
211
- '^' + re
212
- + '(' + (negateChar === '' ? '.' : negateChar) + '+)?'
213
- + (props.reverseFillMask === true ? '$' : fillCharEscaped + '*')
261
+ '^' +
262
+ re +
263
+ '(' +
264
+ (negateChar === '' ? '.' : negateChar) +
265
+ '+)?' +
266
+ (props.reverseFillMask === true ? '$' : fillCharEscaped + '*')
214
267
  )
215
268
  }
216
269
 
@@ -219,17 +272,18 @@ export default function (props, emit, emitValue, inputRef) {
219
272
 
220
273
  computedMask = mask
221
274
  computedUnmask = val => {
222
- const unmaskMatch = unmaskMatcher.exec(props.reverseFillMask === true ? val : val.slice(0, mask.length + 1))
275
+ const unmaskMatch = unmaskMatcher.exec(
276
+ props.reverseFillMask === true ? val : val.slice(0, mask.length + 1)
277
+ )
223
278
  if (unmaskMatch !== null) {
224
279
  val = unmaskMatch.slice(1).join('')
225
280
  }
226
281
 
227
- const
228
- extractMatch = [],
282
+ const extractMatch = [],
229
283
  extractMatcherLength = extractMatcher.length
230
284
 
231
285
  for (let i = 0, str = val; i < extractMatcherLength; i++) {
232
- const m = extractMatcher[ i ].exec(str)
286
+ const m = extractMatcher[i].exec(str)
233
287
 
234
288
  if (m === null) {
235
289
  break
@@ -248,153 +302,168 @@ export default function (props, emit, emitValue, inputRef) {
248
302
  maskReplaced = maskMarked.split(MARKER).join(fillChar)
249
303
  }
250
304
 
251
- function updateMaskValue (rawVal, updateMaskInternalsFlag, inputType) {
252
- const
253
- inp = inputRef.value,
305
+ function updateMaskValue(rawVal, updateMaskInternalsFlag, inputType) {
306
+ const inp = inputRef.value,
254
307
  end = inp.selectionEnd,
255
308
  endReverse = inp.value.length - end,
256
309
  unmasked = unmaskValue(rawVal)
257
310
 
258
311
  // Update here so unmask uses the original fillChar
259
- updateMaskInternalsFlag === true && updateMaskInternals()
312
+ if (updateMaskInternalsFlag === true) updateMaskInternals()
260
313
 
261
- const
262
- preMasked = maskValue(unmasked, updateMaskInternalsFlag),
263
- masked = props.fillMask !== false
264
- ? fillWithMask(preMasked)
265
- : preMasked,
314
+ const preMasked = maskValue(unmasked, updateMaskInternalsFlag),
315
+ masked = props.fillMask !== false ? fillWithMask(preMasked) : preMasked,
266
316
  changed = innerValue.value !== masked
267
317
 
268
318
  // We want to avoid "flickering" so we set value immediately
269
- inp.value !== masked && (inp.value = masked)
319
+ if (inp.value !== masked) inp.value = masked
270
320
 
271
- changed === true && (innerValue.value = masked)
321
+ if (changed === true) innerValue.value = masked
272
322
 
273
- document.activeElement === inp && nextTick(() => {
274
- if (masked === maskReplaced) {
275
- const cursor = props.reverseFillMask === true ? maskReplaced.length : 0
276
- inp.setSelectionRange(cursor, cursor, 'forward')
277
- return
278
- }
323
+ if (document.activeElement === inp) {
324
+ nextTick(() => {
325
+ if (masked === maskReplaced) {
326
+ const cursor =
327
+ props.reverseFillMask === true ? maskReplaced.length : 0
328
+ inp.setSelectionRange(cursor, cursor, 'forward')
329
+ return
330
+ }
279
331
 
280
- if (inputType === 'insertFromPaste' && props.reverseFillMask !== true) {
281
- const maxEnd = inp.selectionEnd
282
- let cursor = end - 1
283
- // each non-marker char means we move once to right
284
- for (let i = pastedTextStart; i <= cursor && i < maxEnd; i++) {
285
- if (maskMarked[ i ] !== MARKER) {
286
- cursor++
332
+ if (inputType === 'insertFromPaste' && props.reverseFillMask !== true) {
333
+ const maxEnd = inp.selectionEnd
334
+ let cursor = end - 1
335
+ // each non-marker char means we move once to right
336
+ for (let i = pastedTextStart; i <= cursor && i < maxEnd; i++) {
337
+ if (maskMarked[i] !== MARKER) {
338
+ cursor++
339
+ }
287
340
  }
341
+
342
+ moveCursor.right(inp, cursor)
343
+ return
288
344
  }
289
345
 
290
- moveCursor.right(inp, cursor)
291
- return
292
- }
346
+ if (
347
+ ['deleteContentBackward', 'deleteContentForward'].indexOf(
348
+ inputType
349
+ ) !== -1
350
+ ) {
351
+ const cursor =
352
+ props.reverseFillMask === true
353
+ ? end === 0
354
+ ? masked.length > preMasked.length
355
+ ? 1
356
+ : 0
357
+ : Math.max(
358
+ 0,
359
+ masked.length -
360
+ (masked === maskReplaced
361
+ ? 0
362
+ : Math.min(preMasked.length, endReverse) + 1)
363
+ ) + 1
364
+ : end
365
+
366
+ inp.setSelectionRange(cursor, cursor, 'forward')
367
+ return
368
+ }
293
369
 
294
- if ([ 'deleteContentBackward', 'deleteContentForward' ].indexOf(inputType) !== -1) {
295
- const cursor = props.reverseFillMask === true
296
- ? (
297
- end === 0
298
- ? (masked.length > preMasked.length ? 1 : 0)
299
- : Math.max(0, masked.length - (masked === maskReplaced ? 0 : Math.min(preMasked.length, endReverse) + 1)) + 1
370
+ if (props.reverseFillMask === true) {
371
+ if (changed === true) {
372
+ const cursor = Math.max(
373
+ 0,
374
+ masked.length -
375
+ (masked === maskReplaced
376
+ ? 0
377
+ : Math.min(preMasked.length, endReverse + 1))
300
378
  )
301
- : end
302
-
303
- inp.setSelectionRange(cursor, cursor, 'forward')
304
- return
305
- }
306
-
307
- if (props.reverseFillMask === true) {
308
- if (changed === true) {
309
- const cursor = Math.max(0, masked.length - (masked === maskReplaced ? 0 : Math.min(preMasked.length, endReverse + 1)))
310
379
 
311
- if (cursor === 1 && end === 1) {
312
- inp.setSelectionRange(cursor, cursor, 'forward')
313
- }
314
- else {
315
- moveCursor.rightReverse(inp, cursor)
380
+ if (cursor === 1 && end === 1) {
381
+ inp.setSelectionRange(cursor, cursor, 'forward')
382
+ } else {
383
+ moveCursor.rightReverse(inp, cursor)
384
+ }
385
+ } else {
386
+ const cursor = masked.length - endReverse
387
+ inp.setSelectionRange(cursor, cursor, 'backward')
316
388
  }
317
- }
318
- else {
319
- const cursor = masked.length - endReverse
320
- inp.setSelectionRange(cursor, cursor, 'backward')
321
- }
322
- }
323
- else {
324
- if (changed === true) {
325
- const cursor = Math.max(0, maskMarked.indexOf(MARKER), Math.min(preMasked.length, end) - 1)
389
+ } else if (changed === true) {
390
+ const cursor = Math.max(
391
+ 0,
392
+ maskMarked.indexOf(MARKER),
393
+ Math.min(preMasked.length, end) - 1
394
+ )
326
395
  moveCursor.right(inp, cursor)
327
- }
328
- else {
396
+ } else {
329
397
  const cursor = end - 1
330
398
  moveCursor.right(inp, cursor)
331
399
  }
332
- }
333
- })
400
+ })
401
+ }
334
402
 
335
- const val = props.unmaskedValue === true
336
- ? unmaskValue(masked)
337
- : masked
403
+ const val = props.unmaskedValue === true ? unmaskValue(masked) : masked
338
404
 
339
405
  if (
340
- String(props.modelValue) !== val
341
- && (props.modelValue !== null || val !== '')
406
+ String(props.modelValue) !== val &&
407
+ (props.modelValue !== null || val !== '')
342
408
  ) {
343
409
  emitValue(val, true)
344
410
  }
345
411
  }
346
412
 
347
- function moveCursorForPaste (inp, start, end) {
413
+ function moveCursorForPaste(inp, start, end) {
348
414
  const preMasked = maskValue(unmaskValue(inp.value))
349
415
 
350
- start = Math.max(0, maskMarked.indexOf(MARKER), Math.min(preMasked.length, start))
416
+ start = Math.max(
417
+ 0,
418
+ maskMarked.indexOf(MARKER),
419
+ Math.min(preMasked.length, start)
420
+ )
351
421
  pastedTextStart = start
352
422
 
353
423
  inp.setSelectionRange(start, end, 'forward')
354
424
  }
355
425
 
356
426
  const moveCursor = {
357
- left (inp, cursor) {
427
+ left(inp, cursor) {
358
428
  const noMarkBefore = maskMarked.slice(cursor - 1).indexOf(MARKER) === -1
359
429
  let i = Math.max(0, cursor - 1)
360
430
 
361
431
  for (; i >= 0; i--) {
362
- if (maskMarked[ i ] === MARKER) {
432
+ if (maskMarked[i] === MARKER) {
363
433
  cursor = i
364
- noMarkBefore === true && cursor++
434
+ if (noMarkBefore === true) cursor++
365
435
  break
366
436
  }
367
437
  }
368
438
 
369
439
  if (
370
- i < 0
371
- && maskMarked[ cursor ] !== void 0
372
- && maskMarked[ cursor ] !== MARKER
440
+ i < 0 &&
441
+ maskMarked[cursor] !== void 0 &&
442
+ maskMarked[cursor] !== MARKER
373
443
  ) {
374
444
  return moveCursor.right(inp, 0)
375
445
  }
376
446
 
377
- cursor >= 0 && inp.setSelectionRange(cursor, cursor, 'backward')
447
+ if (cursor >= 0) inp.setSelectionRange(cursor, cursor, 'backward')
378
448
  },
379
449
 
380
- right (inp, cursor) {
450
+ right(inp, cursor) {
381
451
  const limit = inp.value.length
382
452
  let i = Math.min(limit, cursor + 1)
383
453
 
384
454
  for (; i <= limit; i++) {
385
- if (maskMarked[ i ] === MARKER) {
455
+ if (maskMarked[i] === MARKER) {
386
456
  cursor = i
387
457
  break
388
- }
389
- else if (maskMarked[ i - 1 ] === MARKER) {
458
+ } else if (maskMarked[i - 1] === MARKER) {
390
459
  cursor = i
391
460
  }
392
461
  }
393
462
 
394
463
  if (
395
- i > limit
396
- && maskMarked[ cursor - 1 ] !== void 0
397
- && maskMarked[ cursor - 1 ] !== MARKER
464
+ i > limit &&
465
+ maskMarked[cursor - 1] !== void 0 &&
466
+ maskMarked[cursor - 1] !== MARKER
398
467
  ) {
399
468
  return moveCursor.left(inp, limit)
400
469
  }
@@ -402,17 +471,15 @@ export default function (props, emit, emitValue, inputRef) {
402
471
  inp.setSelectionRange(cursor, cursor, 'forward')
403
472
  },
404
473
 
405
- leftReverse (inp, cursor) {
406
- const
407
- localMaskMarked = getPaddedMaskMarked(inp.value.length)
474
+ leftReverse(inp, cursor) {
475
+ const localMaskMarked = getPaddedMaskMarked(inp.value.length)
408
476
  let i = Math.max(0, cursor - 1)
409
477
 
410
478
  for (; i >= 0; i--) {
411
- if (localMaskMarked[ i - 1 ] === MARKER) {
479
+ if (localMaskMarked[i - 1] === MARKER) {
412
480
  cursor = i
413
481
  break
414
- }
415
- else if (localMaskMarked[ i ] === MARKER) {
482
+ } else if (localMaskMarked[i] === MARKER) {
416
483
  cursor = i
417
484
  if (i === 0) {
418
485
  break
@@ -421,35 +488,35 @@ export default function (props, emit, emitValue, inputRef) {
421
488
  }
422
489
 
423
490
  if (
424
- i < 0
425
- && localMaskMarked[ cursor ] !== void 0
426
- && localMaskMarked[ cursor ] !== MARKER
491
+ i < 0 &&
492
+ localMaskMarked[cursor] !== void 0 &&
493
+ localMaskMarked[cursor] !== MARKER
427
494
  ) {
428
495
  return moveCursor.rightReverse(inp, 0)
429
496
  }
430
497
 
431
- cursor >= 0 && inp.setSelectionRange(cursor, cursor, 'backward')
498
+ if (cursor >= 0) inp.setSelectionRange(cursor, cursor, 'backward')
432
499
  },
433
500
 
434
- rightReverse (inp, cursor) {
435
- const
436
- limit = inp.value.length,
501
+ rightReverse(inp, cursor) {
502
+ const limit = inp.value.length,
437
503
  localMaskMarked = getPaddedMaskMarked(limit),
438
- noMarkBefore = localMaskMarked.slice(0, cursor + 1).indexOf(MARKER) === -1
504
+ noMarkBefore =
505
+ localMaskMarked.slice(0, cursor + 1).indexOf(MARKER) === -1
439
506
  let i = Math.min(limit, cursor + 1)
440
507
 
441
508
  for (; i <= limit; i++) {
442
- if (localMaskMarked[ i - 1 ] === MARKER) {
509
+ if (localMaskMarked[i - 1] === MARKER) {
443
510
  cursor = i
444
- cursor > 0 && noMarkBefore === true && cursor--
511
+ if (cursor > 0 && noMarkBefore === true) cursor--
445
512
  break
446
513
  }
447
514
  }
448
515
 
449
516
  if (
450
- i > limit
451
- && localMaskMarked[ cursor - 1 ] !== void 0
452
- && localMaskMarked[ cursor - 1 ] !== MARKER
517
+ i > limit &&
518
+ localMaskMarked[cursor - 1] !== void 0 &&
519
+ localMaskMarked[cursor - 1] !== MARKER
453
520
  ) {
454
521
  return moveCursor.leftReverse(inp, limit)
455
522
  }
@@ -458,22 +525,23 @@ export default function (props, emit, emitValue, inputRef) {
458
525
  }
459
526
  }
460
527
 
461
- function onMaskedClick (e) {
528
+ function onMaskedClick(e) {
462
529
  emit('click', e)
463
530
 
464
531
  selectionAnchor = void 0
465
532
  }
466
533
 
467
- function onMaskedKeydown (e) {
534
+ function onMaskedKeydown(e) {
468
535
  emit('keydown', e)
469
536
 
470
537
  if (
471
- shouldIgnoreKey(e) === true
472
- || e.altKey === true // let browser handle these
473
- ) return
538
+ shouldIgnoreKey(e) === true ||
539
+ e.altKey === true // let browser handle these
540
+ ) {
541
+ return
542
+ }
474
543
 
475
- const
476
- inp = inputRef.value,
544
+ const inp = inputRef.value,
477
545
  start = inp.selectionStart,
478
546
  end = inp.selectionEnd
479
547
 
@@ -481,41 +549,50 @@ export default function (props, emit, emitValue, inputRef) {
481
549
  selectionAnchor = void 0
482
550
  }
483
551
 
484
- if (e.keyCode === 37 || e.keyCode === 39) { // Left / Right
552
+ if (e.keyCode === 37 || e.keyCode === 39) {
553
+ // Left / Right
485
554
  if (e.shiftKey && selectionAnchor === void 0) {
486
555
  selectionAnchor = inp.selectionDirection === 'forward' ? start : end
487
556
  }
488
557
 
489
- const fn = moveCursor[ (e.keyCode === 39 ? 'right' : 'left') + (props.reverseFillMask === true ? 'Reverse' : '') ]
558
+ const fn =
559
+ moveCursor[
560
+ (e.keyCode === 39 ? 'right' : 'left') +
561
+ (props.reverseFillMask === true ? 'Reverse' : '')
562
+ ]
490
563
 
491
564
  e.preventDefault()
492
565
  fn(inp, selectionAnchor === start ? end : start)
493
566
 
494
567
  if (e.shiftKey) {
495
568
  const cursor = inp.selectionStart
496
- inp.setSelectionRange(Math.min(selectionAnchor, cursor), Math.max(selectionAnchor, cursor), 'forward')
569
+ inp.setSelectionRange(
570
+ Math.min(selectionAnchor, cursor),
571
+ Math.max(selectionAnchor, cursor),
572
+ 'forward'
573
+ )
497
574
  }
498
- }
499
- else if (
500
- e.keyCode === 8 // Backspace
501
- && props.reverseFillMask !== true
502
- && start === end
575
+ } else if (
576
+ e.keyCode === 8 && // Backspace
577
+ props.reverseFillMask !== true &&
578
+ start === end
503
579
  ) {
504
580
  moveCursor.left(inp, start)
505
581
  inp.setSelectionRange(inp.selectionStart, end, 'backward')
506
- }
507
- else if (
508
- e.keyCode === 46 // Delete
509
- && props.reverseFillMask === true
510
- && start === end
582
+ } else if (
583
+ e.keyCode === 46 && // Delete
584
+ props.reverseFillMask === true &&
585
+ start === end
511
586
  ) {
512
587
  moveCursor.rightReverse(inp, end)
513
588
  inp.setSelectionRange(start, inp.selectionEnd, 'forward')
514
589
  }
515
590
  }
516
591
 
517
- function maskValue (val, updateMaskInternalsFlag) {
518
- if (val === void 0 || val === null || val === '') { return '' }
592
+ function maskValue(val, updateMaskInternalsFlag) {
593
+ if (val === void 0 || val === null || val === '') {
594
+ return ''
595
+ }
519
596
 
520
597
  if (props.reverseFillMask === true) {
521
598
  return maskValueReverse(val, updateMaskInternalsFlag)
@@ -523,12 +600,12 @@ export default function (props, emit, emitValue, inputRef) {
523
600
 
524
601
  const mask = computedMask
525
602
 
526
- let valIndex = 0, output = ''
603
+ let valIndex = 0,
604
+ output = ''
527
605
 
528
606
  for (let maskIndex = 0; maskIndex < mask.length; maskIndex++) {
529
- const
530
- valChar = val[ valIndex ],
531
- maskDef = mask[ maskIndex ]
607
+ const valChar = val[valIndex],
608
+ maskDef = mask[maskIndex]
532
609
 
533
610
  if (typeof maskDef === 'string') {
534
611
  output += maskDef
@@ -536,14 +613,11 @@ export default function (props, emit, emitValue, inputRef) {
536
613
  if (updateMaskInternalsFlag === true && valChar === maskDef) {
537
614
  valIndex++
538
615
  }
539
- }
540
- else if (valChar !== void 0 && maskDef.regex.test(valChar)) {
541
- output += maskDef.transform !== void 0
542
- ? maskDef.transform(valChar)
543
- : valChar
616
+ } else if (valChar !== void 0 && maskDef.regex.test(valChar)) {
617
+ output +=
618
+ maskDef.transform !== void 0 ? maskDef.transform(valChar) : valChar
544
619
  valIndex++
545
- }
546
- else {
620
+ } else {
547
621
  return output
548
622
  }
549
623
  }
@@ -551,17 +625,21 @@ export default function (props, emit, emitValue, inputRef) {
551
625
  return output
552
626
  }
553
627
 
554
- function maskValueReverse (val, updateMaskInternalsFlag) {
555
- const
556
- mask = computedMask,
628
+ function maskValueReverse(val, updateMaskInternalsFlag) {
629
+ const mask = computedMask,
557
630
  firstTokenIndex = maskMarked.indexOf(MARKER)
558
631
 
559
- let valIndex = val.length - 1, output = ''
632
+ let valIndex = val.length - 1,
633
+ output = ''
560
634
 
561
- for (let maskIndex = mask.length - 1; maskIndex >= 0 && valIndex !== -1; maskIndex--) {
562
- const maskDef = mask[ maskIndex ]
635
+ for (
636
+ let maskIndex = mask.length - 1;
637
+ maskIndex >= 0 && valIndex !== -1;
638
+ maskIndex--
639
+ ) {
640
+ const maskDef = mask[maskIndex]
563
641
 
564
- let valChar = val[ valIndex ]
642
+ let valChar = val[valIndex]
565
643
 
566
644
  if (typeof maskDef === 'string') {
567
645
  output = maskDef + output
@@ -569,16 +647,21 @@ export default function (props, emit, emitValue, inputRef) {
569
647
  if (updateMaskInternalsFlag === true && valChar === maskDef) {
570
648
  valIndex--
571
649
  }
572
- }
573
- else if (valChar !== void 0 && maskDef.regex.test(valChar)) {
650
+ } else if (valChar !== void 0 && maskDef.regex.test(valChar)) {
574
651
  do {
575
- output = (maskDef.transform !== void 0 ? maskDef.transform(valChar) : valChar) + output
652
+ output =
653
+ (maskDef.transform !== void 0
654
+ ? maskDef.transform(valChar)
655
+ : valChar) + output
576
656
  valIndex--
577
- valChar = val[ valIndex ]
578
- // eslint-disable-next-line no-unmodified-loop-condition
579
- } while (firstTokenIndex === maskIndex && valChar !== void 0 && maskDef.regex.test(valChar))
580
- }
581
- else {
657
+ valChar = val[valIndex]
658
+ } while (
659
+ // oxlint-disable-next-line no-unmodified-loop-condition
660
+ firstTokenIndex === maskIndex &&
661
+ valChar !== void 0 &&
662
+ maskDef.regex.test(valChar)
663
+ )
664
+ } else {
582
665
  return output
583
666
  }
584
667
  }
@@ -586,13 +669,15 @@ export default function (props, emit, emitValue, inputRef) {
586
669
  return output
587
670
  }
588
671
 
589
- function unmaskValue (val) {
672
+ function unmaskValue(val) {
590
673
  return typeof val !== 'string' || computedUnmask === void 0
591
- ? (typeof val === 'number' ? computedUnmask('' + val) : val)
674
+ ? typeof val === 'number'
675
+ ? computedUnmask(String(val))
676
+ : val
592
677
  : computedUnmask(val)
593
678
  }
594
679
 
595
- function fillWithMask (val) {
680
+ function fillWithMask(val) {
596
681
  if (maskReplaced.length - val.length <= 0) {
597
682
  return val
598
683
  }