quasar 2.18.6 → 2.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (858) 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 -29218
  156. package/dist/quasar.css +24 -30
  157. package/dist/quasar.prod.css +1 -1
  158. package/dist/quasar.rtl.css +25 -30
  159. package/dist/quasar.rtl.prod.css +1 -1
  160. package/dist/quasar.sass +7 -16
  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 -29789
  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 +127 -415
  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/vetur/quasar-attributes.json +1 -1
  185. package/dist/web-types/web-types.json +1 -1
  186. package/icon-set/bootstrap-icons.js +1 -4
  187. package/icon-set/svg-bootstrap-icons.js +1 -4
  188. package/icon-set/svg-fontawesome-v5.js +0 -1
  189. package/icon-set/svg-ionicons-v5.js +2 -2
  190. package/lang/ar-TN.js +10 -8
  191. package/lang/ar.js +10 -8
  192. package/lang/az-Latn.js +13 -9
  193. package/lang/bg.js +10 -8
  194. package/lang/bn.js +14 -9
  195. package/lang/bs-BA.js +13 -9
  196. package/lang/ca.js +18 -14
  197. package/lang/cs.js +9 -7
  198. package/lang/da.js +10 -8
  199. package/lang/de-CH.js +13 -9
  200. package/lang/de-DE.js +13 -9
  201. package/lang/de.js +13 -9
  202. package/lang/el.js +10 -8
  203. package/lang/en-GB.js +10 -8
  204. package/lang/en-US.js +10 -8
  205. package/lang/eo.js +14 -9
  206. package/lang/es.js +10 -8
  207. package/lang/et.js +15 -12
  208. package/lang/eu.js +15 -12
  209. package/lang/fa-IR.js +16 -8
  210. package/lang/fa.js +16 -8
  211. package/lang/fi.js +17 -8
  212. package/lang/fr.js +21 -13
  213. package/lang/gn.js +14 -12
  214. package/lang/he.js +15 -10
  215. package/lang/hi.js +8 -8
  216. package/lang/hr.js +13 -9
  217. package/lang/hu.js +10 -8
  218. package/lang/id.js +11 -9
  219. package/lang/is.js +13 -9
  220. package/lang/it.js +14 -9
  221. package/lang/ja.js +13 -8
  222. package/lang/kk.js +22 -11
  223. package/lang/km.js +9 -8
  224. package/lang/ko-KR.js +9 -10
  225. package/lang/kur-CKB.js +16 -17
  226. package/lang/lt.js +26 -19
  227. package/lang/lu.js +13 -9
  228. package/lang/lv.js +13 -9
  229. package/lang/mk.js +10 -8
  230. package/lang/ml.js +15 -14
  231. package/lang/mm.js +16 -13
  232. package/lang/ms-MY.js +16 -11
  233. package/lang/ms.js +10 -8
  234. package/lang/my.js +15 -8
  235. package/lang/nb-NO.js +10 -8
  236. package/lang/nl.js +13 -9
  237. package/lang/pl.js +13 -9
  238. package/lang/pt-BR.js +17 -10
  239. package/lang/pt.js +17 -10
  240. package/lang/ro.js +10 -8
  241. package/lang/ru.js +25 -12
  242. package/lang/sk.js +18 -9
  243. package/lang/sl.js +12 -8
  244. package/lang/sm.js +51 -47
  245. package/lang/sq.js +13 -9
  246. package/lang/sr-CYR.js +10 -8
  247. package/lang/sr.js +10 -8
  248. package/lang/sv.js +10 -8
  249. package/lang/ta.js +10 -8
  250. package/lang/th.js +12 -11
  251. package/lang/tl.js +10 -8
  252. package/lang/tr.js +8 -5
  253. package/lang/ug.js +16 -8
  254. package/lang/uk.js +22 -11
  255. package/lang/ur-PK.js +13 -11
  256. package/lang/uz-Cyrl.js +5 -5
  257. package/lang/uz-Latn.js +24 -24
  258. package/lang/vi.js +13 -9
  259. package/lang/zh-CN.js +18 -9
  260. package/lang/zh-TW.js +20 -10
  261. package/package.json +52 -66
  262. package/src/api.extends.json +15 -12
  263. package/src/components/ajax-bar/QAjaxBar.js +91 -65
  264. package/src/components/ajax-bar/QAjaxBar.json +2 -2
  265. package/src/components/ajax-bar/index.js +1 -3
  266. package/src/components/avatar/QAvatar.js +36 -28
  267. package/src/components/avatar/QAvatar.json +2 -2
  268. package/src/components/avatar/QAvatar.test.js +29 -78
  269. package/src/components/avatar/index.js +1 -3
  270. package/src/components/badge/QBadge.js +33 -26
  271. package/src/components/badge/QBadge.json +3 -3
  272. package/src/components/badge/QBadge.test.js +40 -95
  273. package/src/components/badge/index.js +1 -3
  274. package/src/components/banner/QBanner.js +46 -25
  275. package/src/components/banner/QBanner.test.js +14 -35
  276. package/src/components/banner/index.js +1 -3
  277. package/src/components/bar/QBar.js +21 -11
  278. package/src/components/bar/QBar.test.js +6 -17
  279. package/src/components/bar/index.js +1 -3
  280. package/src/components/breadcrumbs/QBreadcrumbs.js +44 -32
  281. package/src/components/breadcrumbs/QBreadcrumbs.json +10 -3
  282. package/src/components/breadcrumbs/QBreadcrumbs.test.js +56 -69
  283. package/src/components/breadcrumbs/QBreadcrumbsEl.js +28 -22
  284. package/src/components/breadcrumbs/QBreadcrumbsEl.json +5 -8
  285. package/src/components/breadcrumbs/QBreadcrumbsEl.test.js +60 -134
  286. package/src/components/breadcrumbs/index.js +1 -4
  287. package/src/components/btn/QBtn.js +159 -103
  288. package/src/components/btn/QBtn.json +3 -6
  289. package/src/components/btn/QBtn.test.js +269 -496
  290. package/src/components/btn/index.js +1 -3
  291. package/src/components/btn/use-btn.js +82 -70
  292. package/src/components/btn/use-btn.json +33 -16
  293. package/src/components/btn/use-btn.test.js +30 -47
  294. package/src/components/btn-dropdown/QBtnDropdown.js +143 -104
  295. package/src/components/btn-dropdown/QBtnDropdown.json +42 -17
  296. package/src/components/btn-dropdown/index.js +1 -3
  297. package/src/components/btn-group/QBtnGroup.js +18 -6
  298. package/src/components/btn-group/index.js +1 -3
  299. package/src/components/btn-toggle/QBtnToggle.js +80 -61
  300. package/src/components/btn-toggle/QBtnToggle.json +16 -9
  301. package/src/components/btn-toggle/index.js +1 -3
  302. package/src/components/card/QCard.js +14 -9
  303. package/src/components/card/QCard.json +1 -1
  304. package/src/components/card/QCardActions.js +8 -5
  305. package/src/components/card/QCardActions.json +9 -1
  306. package/src/components/card/QCardSection.js +5 -4
  307. package/src/components/card/QCardSection.json +1 -1
  308. package/src/components/card/index.js +1 -5
  309. package/src/components/carousel/QCarousel.js +194 -125
  310. package/src/components/carousel/QCarousel.json +10 -11
  311. package/src/components/carousel/QCarouselControl.js +26 -13
  312. package/src/components/carousel/QCarouselControl.json +10 -5
  313. package/src/components/carousel/QCarouselSlide.js +13 -10
  314. package/src/components/carousel/QCarouselSlide.json +1 -1
  315. package/src/components/carousel/index.js +1 -5
  316. package/src/components/chat/QChatMessage.js +62 -57
  317. package/src/components/chat/QChatMessage.json +8 -5
  318. package/src/components/chat/index.js +1 -3
  319. package/src/components/checkbox/QCheckbox.js +56 -41
  320. package/src/components/checkbox/QCheckbox.json +1 -1
  321. package/src/components/checkbox/index.js +1 -3
  322. package/src/components/checkbox/use-checkbox.js +112 -83
  323. package/src/components/checkbox/use-checkbox.json +15 -12
  324. package/src/components/chip/QChip.js +101 -73
  325. package/src/components/chip/QChip.json +6 -6
  326. package/src/components/chip/QChip.test.js +72 -180
  327. package/src/components/chip/index.js +1 -3
  328. package/src/components/circular-progress/QCircularProgress.js +92 -57
  329. package/src/components/circular-progress/QCircularProgress.json +2 -2
  330. package/src/components/circular-progress/index.js +1 -3
  331. package/src/components/color/QColor.js +550 -367
  332. package/src/components/color/QColor.json +8 -8
  333. package/src/components/color/index.js +1 -3
  334. package/src/components/date/QDate.js +902 -607
  335. package/src/components/date/QDate.json +32 -23
  336. package/src/components/date/index.js +1 -3
  337. package/src/components/date/use-datetime.js +12 -14
  338. package/src/components/date/use-datetime.json +7 -7
  339. package/src/components/dialog/QDialog.js +178 -139
  340. package/src/components/dialog/QDialog.json +8 -4
  341. package/src/components/dialog/QDialog.test.js +123 -228
  342. package/src/components/dialog/index.js +1 -3
  343. package/src/components/drawer/QDrawer.js +306 -242
  344. package/src/components/drawer/QDrawer.json +4 -4
  345. package/src/components/drawer/index.js +1 -3
  346. package/src/components/editor/QEditor.js +409 -190
  347. package/src/components/editor/QEditor.json +33 -32
  348. package/src/components/editor/editor-caret.js +78 -83
  349. package/src/components/editor/editor-utils.js +176 -130
  350. package/src/components/editor/index.js +1 -3
  351. package/src/components/expansion-item/QExpansionItem.js +149 -103
  352. package/src/components/expansion-item/QExpansionItem.json +21 -24
  353. package/src/components/expansion-item/index.js +1 -3
  354. package/src/components/fab/QFab.js +86 -54
  355. package/src/components/fab/QFab.json +6 -3
  356. package/src/components/fab/QFabAction.js +34 -29
  357. package/src/components/fab/QFabAction.json +4 -7
  358. package/src/components/fab/index.js +1 -4
  359. package/src/components/fab/use-fab.js +20 -20
  360. package/src/components/fab/use-fab.json +10 -13
  361. package/src/components/field/QField.js +7 -5
  362. package/src/components/field/QField.json +6 -6
  363. package/src/components/field/QField.sass +5 -6
  364. package/src/components/field/index.js +1 -3
  365. package/src/components/file/QFile.js +95 -74
  366. package/src/components/file/QFile.json +17 -14
  367. package/src/components/file/index.js +1 -3
  368. package/src/components/footer/QFooter.js +110 -67
  369. package/src/components/footer/QFooter.json +2 -2
  370. package/src/components/footer/index.js +1 -3
  371. package/src/components/form/QForm.js +93 -58
  372. package/src/components/form/QForm.json +2 -2
  373. package/src/components/form/QFormChildMixin.js +10 -11
  374. package/src/components/form/QFormChildMixin.json +2 -2
  375. package/src/components/form/index.js +1 -4
  376. package/src/components/header/QHeader.js +93 -56
  377. package/src/components/header/QHeader.json +2 -2
  378. package/src/components/header/index.js +1 -3
  379. package/src/components/icon/QIcon.js +70 -57
  380. package/src/components/icon/QIcon.json +2 -2
  381. package/src/components/icon/index.js +1 -3
  382. package/src/components/img/QImg.js +104 -98
  383. package/src/components/img/QImg.json +20 -18
  384. package/src/components/img/index.js +1 -3
  385. package/src/components/infinite-scroll/QInfiniteScroll.js +123 -64
  386. package/src/components/infinite-scroll/QInfiniteScroll.json +1 -1
  387. package/src/components/infinite-scroll/index.js +1 -3
  388. package/src/components/inner-loading/QInnerLoading.js +31 -23
  389. package/src/components/inner-loading/QInnerLoading.json +9 -9
  390. package/src/components/inner-loading/index.js +1 -3
  391. package/src/components/input/QInput.js +179 -137
  392. package/src/components/input/QInput.json +25 -15
  393. package/src/components/input/index.js +1 -3
  394. package/src/components/input/use-mask.js +328 -243
  395. package/src/components/input/use-mask.json +16 -8
  396. package/src/components/intersection/QIntersection.js +45 -28
  397. package/src/components/intersection/QIntersection.json +7 -10
  398. package/src/components/intersection/index.js +1 -3
  399. package/src/components/item/QItem.js +60 -52
  400. package/src/components/item/QItem.json +6 -9
  401. package/src/components/item/QItemLabel.js +23 -15
  402. package/src/components/item/QItemLabel.json +1 -1
  403. package/src/components/item/QItemSection.js +11 -8
  404. package/src/components/item/QList.js +21 -13
  405. package/src/components/item/QList.json +1 -1
  406. package/src/components/item/QList.test.js +7 -11
  407. package/src/components/item/index.js +1 -7
  408. package/src/components/knob/QKnob.js +86 -76
  409. package/src/components/knob/QKnob.json +6 -3
  410. package/src/components/knob/index.js +1 -3
  411. package/src/components/layout/QLayout.js +98 -69
  412. package/src/components/layout/QLayout.json +2 -2
  413. package/src/components/layout/index.js +1 -3
  414. package/src/components/linear-progress/QLinearProgress.js +78 -47
  415. package/src/components/linear-progress/QLinearProgress.json +3 -3
  416. package/src/components/linear-progress/index.js +1 -3
  417. package/src/components/markup-table/QMarkupTable.js +25 -17
  418. package/src/components/markup-table/QMarkupTable.json +2 -2
  419. package/src/components/markup-table/index.js +1 -3
  420. package/src/components/menu/QMenu.js +144 -100
  421. package/src/components/menu/QMenu.json +39 -10
  422. package/src/components/menu/index.js +1 -3
  423. package/src/components/no-ssr/QNoSsr.js +5 -5
  424. package/src/components/no-ssr/QNoSsr.json +2 -2
  425. package/src/components/no-ssr/index.js +1 -3
  426. package/src/components/option-group/QOptionGroup.js +84 -66
  427. package/src/components/option-group/QOptionGroup.json +35 -21
  428. package/src/components/option-group/index.js +1 -3
  429. package/src/components/page/QPage.js +35 -22
  430. package/src/components/page/QPage.json +1 -1
  431. package/src/components/page/QPageContainer.js +24 -11
  432. package/src/components/page/index.js +1 -4
  433. package/src/components/page-scroller/QPageScroller.js +49 -32
  434. package/src/components/page-scroller/QPageScroller.json +2 -2
  435. package/src/components/page-scroller/index.js +1 -3
  436. package/src/components/page-sticky/QPageSticky.js +1 -1
  437. package/src/components/page-sticky/QPageSticky.json +9 -4
  438. package/src/components/page-sticky/index.js +1 -3
  439. package/src/components/page-sticky/use-page-sticky.js +47 -36
  440. package/src/components/pagination/QPagination.js +210 -146
  441. package/src/components/pagination/QPagination.json +35 -21
  442. package/src/components/pagination/index.js +1 -3
  443. package/src/components/parallax/QParallax.js +81 -56
  444. package/src/components/parallax/index.js +1 -3
  445. package/src/components/popup-edit/QPopupEdit.js +88 -59
  446. package/src/components/popup-edit/QPopupEdit.json +40 -16
  447. package/src/components/popup-edit/index.js +1 -3
  448. package/src/components/popup-proxy/QPopupProxy.js +30 -19
  449. package/src/components/popup-proxy/QPopupProxy.json +3 -3
  450. package/src/components/popup-proxy/index.js +1 -3
  451. package/src/components/pull-to-refresh/QPullToRefresh.js +71 -49
  452. package/src/components/pull-to-refresh/index.js +1 -3
  453. package/src/components/radio/QRadio.js +133 -95
  454. package/src/components/radio/QRadio.json +11 -8
  455. package/src/components/radio/index.js +1 -3
  456. package/src/components/range/QRange.js +151 -104
  457. package/src/components/range/QRange.json +9 -9
  458. package/src/components/range/index.js +1 -3
  459. package/src/components/rating/QRating.js +171 -112
  460. package/src/components/rating/QRating.json +19 -12
  461. package/src/components/rating/index.js +1 -3
  462. package/src/components/resize-observer/QResizeObserver.js +52 -30
  463. package/src/components/resize-observer/QResizeObserver.json +2 -2
  464. package/src/components/resize-observer/index.js +1 -3
  465. package/src/components/responsive/QResponsive.js +27 -14
  466. package/src/components/responsive/QResponsive.json +1 -1
  467. package/src/components/responsive/index.js +1 -3
  468. package/src/components/scroll-area/QScrollArea.js +279 -192
  469. package/src/components/scroll-area/QScrollArea.json +31 -21
  470. package/src/components/scroll-area/ScrollAreaControls.js +6 -11
  471. package/src/components/scroll-area/index.js +1 -3
  472. package/src/components/scroll-observer/QScrollObserver.js +46 -26
  473. package/src/components/scroll-observer/QScrollObserver.json +4 -4
  474. package/src/components/scroll-observer/index.js +1 -3
  475. package/src/components/select/QSelect.js +710 -519
  476. package/src/components/select/QSelect.json +70 -45
  477. package/src/components/select/index.js +1 -3
  478. package/src/components/separator/QSeparator.js +34 -30
  479. package/src/components/separator/QSeparator.json +4 -4
  480. package/src/components/separator/index.js +1 -3
  481. package/src/components/skeleton/QSkeleton.js +49 -23
  482. package/src/components/skeleton/QSkeleton.json +26 -9
  483. package/src/components/skeleton/index.js +1 -3
  484. package/src/components/slide-item/QSlideItem.js +121 -94
  485. package/src/components/slide-item/QSlideItem.json +2 -2
  486. package/src/components/slide-item/index.js +1 -3
  487. package/src/components/slide-transition/QSlideTransition.js +34 -26
  488. package/src/components/slide-transition/index.js +1 -3
  489. package/src/components/slider/QSlider.js +64 -43
  490. package/src/components/slider/QSlider.json +6 -6
  491. package/src/components/slider/index.js +1 -3
  492. package/src/components/slider/use-slider.js +327 -220
  493. package/src/components/slider/use-slider.json +32 -32
  494. package/src/components/space/QSpace.js +1 -1
  495. package/src/components/space/QSpace.test.js +1 -4
  496. package/src/components/space/index.js +1 -3
  497. package/src/components/spinner/QSpinner.js +23 -18
  498. package/src/components/spinner/QSpinner.json +1 -1
  499. package/src/components/spinner/QSpinner.test.js +11 -27
  500. package/src/components/spinner/QSpinnerAudio.js +13 -11
  501. package/src/components/spinner/QSpinnerAudio.json +1 -1
  502. package/src/components/spinner/QSpinnerAudio.test.js +9 -21
  503. package/src/components/spinner/QSpinnerBall.js +13 -11
  504. package/src/components/spinner/QSpinnerBall.json +1 -1
  505. package/src/components/spinner/QSpinnerBall.test.js +9 -21
  506. package/src/components/spinner/QSpinnerBars.js +13 -11
  507. package/src/components/spinner/QSpinnerBars.json +1 -1
  508. package/src/components/spinner/QSpinnerBars.test.js +9 -21
  509. package/src/components/spinner/QSpinnerBox.js +13 -11
  510. package/src/components/spinner/QSpinnerBox.json +1 -1
  511. package/src/components/spinner/QSpinnerBox.test.js +9 -21
  512. package/src/components/spinner/QSpinnerClock.js +13 -11
  513. package/src/components/spinner/QSpinnerClock.json +1 -1
  514. package/src/components/spinner/QSpinnerClock.test.js +9 -21
  515. package/src/components/spinner/QSpinnerComment.js +13 -11
  516. package/src/components/spinner/QSpinnerComment.json +1 -1
  517. package/src/components/spinner/QSpinnerComment.test.js +9 -21
  518. package/src/components/spinner/QSpinnerCube.js +13 -11
  519. package/src/components/spinner/QSpinnerCube.json +1 -1
  520. package/src/components/spinner/QSpinnerCube.test.js +9 -21
  521. package/src/components/spinner/QSpinnerDots.js +13 -11
  522. package/src/components/spinner/QSpinnerDots.json +1 -1
  523. package/src/components/spinner/QSpinnerDots.test.js +9 -21
  524. package/src/components/spinner/QSpinnerFacebook.js +13 -11
  525. package/src/components/spinner/QSpinnerFacebook.json +1 -1
  526. package/src/components/spinner/QSpinnerFacebook.test.js +9 -21
  527. package/src/components/spinner/QSpinnerGears.js +13 -11
  528. package/src/components/spinner/QSpinnerGears.json +1 -1
  529. package/src/components/spinner/QSpinnerGears.test.js +9 -21
  530. package/src/components/spinner/QSpinnerGrid.js +13 -11
  531. package/src/components/spinner/QSpinnerGrid.json +1 -1
  532. package/src/components/spinner/QSpinnerGrid.test.js +9 -21
  533. package/src/components/spinner/QSpinnerHearts.js +13 -11
  534. package/src/components/spinner/QSpinnerHearts.json +1 -1
  535. package/src/components/spinner/QSpinnerHearts.test.js +9 -21
  536. package/src/components/spinner/QSpinnerHourglass.js +13 -11
  537. package/src/components/spinner/QSpinnerHourglass.json +1 -1
  538. package/src/components/spinner/QSpinnerHourglass.test.js +9 -21
  539. package/src/components/spinner/QSpinnerInfinity.js +12 -10
  540. package/src/components/spinner/QSpinnerInfinity.json +1 -1
  541. package/src/components/spinner/QSpinnerInfinity.test.js +9 -21
  542. package/src/components/spinner/QSpinnerIos.js +13 -11
  543. package/src/components/spinner/QSpinnerIos.json +1 -1
  544. package/src/components/spinner/QSpinnerIos.test.js +9 -21
  545. package/src/components/spinner/QSpinnerOrbit.js +13 -11
  546. package/src/components/spinner/QSpinnerOrbit.json +1 -1
  547. package/src/components/spinner/QSpinnerOrbit.test.js +9 -21
  548. package/src/components/spinner/QSpinnerOval.js +13 -11
  549. package/src/components/spinner/QSpinnerOval.json +1 -1
  550. package/src/components/spinner/QSpinnerOval.test.js +9 -21
  551. package/src/components/spinner/QSpinnerPie.js +13 -11
  552. package/src/components/spinner/QSpinnerPie.json +1 -1
  553. package/src/components/spinner/QSpinnerPie.test.js +9 -21
  554. package/src/components/spinner/QSpinnerPuff.js +13 -11
  555. package/src/components/spinner/QSpinnerPuff.json +1 -1
  556. package/src/components/spinner/QSpinnerPuff.test.js +9 -21
  557. package/src/components/spinner/QSpinnerRadio.js +13 -11
  558. package/src/components/spinner/QSpinnerRadio.json +1 -1
  559. package/src/components/spinner/QSpinnerRadio.test.js +9 -21
  560. package/src/components/spinner/QSpinnerRings.js +13 -11
  561. package/src/components/spinner/QSpinnerRings.json +1 -1
  562. package/src/components/spinner/QSpinnerRings.test.js +9 -21
  563. package/src/components/spinner/QSpinnerTail.js +12 -10
  564. package/src/components/spinner/QSpinnerTail.json +1 -1
  565. package/src/components/spinner/QSpinnerTail.test.js +9 -21
  566. package/src/components/spinner/index.js +0 -1
  567. package/src/components/spinner/spinner.json +2 -2
  568. package/src/components/spinner/use-spinner.js +7 -7
  569. package/src/components/spinner/use-spinner.test.js +1 -1
  570. package/src/components/splitter/QSplitter.js +133 -94
  571. package/src/components/splitter/QSplitter.json +10 -19
  572. package/src/components/splitter/index.js +1 -3
  573. package/src/components/stepper/QStep.js +65 -42
  574. package/src/components/stepper/QStep.json +5 -5
  575. package/src/components/stepper/QStepper.js +62 -39
  576. package/src/components/stepper/QStepper.json +2 -2
  577. package/src/components/stepper/QStepperNavigation.js +1 -1
  578. package/src/components/stepper/StepHeader.js +87 -67
  579. package/src/components/stepper/index.js +1 -5
  580. package/src/components/tab-panels/QTabPanel.js +3 -2
  581. package/src/components/tab-panels/QTabPanel.json +1 -1
  582. package/src/components/tab-panels/QTabPanels.js +12 -6
  583. package/src/components/tab-panels/QTabPanels.json +1 -1
  584. package/src/components/tab-panels/index.js +1 -4
  585. package/src/components/table/QTable.js +544 -426
  586. package/src/components/table/QTable.json +168 -165
  587. package/src/components/table/QTd.js +18 -13
  588. package/src/components/table/QTd.json +1 -1
  589. package/src/components/table/QTh.js +25 -20
  590. package/src/components/table/QTh.json +1 -1
  591. package/src/components/table/QTr.js +17 -9
  592. package/src/components/table/QTr.json +1 -1
  593. package/src/components/table/get-table-middle.js +2 -4
  594. package/src/components/table/index.js +1 -6
  595. package/src/components/table/table-column-selection.js +45 -35
  596. package/src/components/table/table-filter.js +9 -8
  597. package/src/components/table/table-pagination.js +75 -52
  598. package/src/components/table/table-row-expand.js +15 -16
  599. package/src/components/table/table-row-selection.js +31 -31
  600. package/src/components/table/table-sort.js +26 -29
  601. package/src/components/tabs/QRouteTab.js +10 -12
  602. package/src/components/tabs/QRouteTab.json +6 -6
  603. package/src/components/tabs/QTab.js +1 -1
  604. package/src/components/tabs/QTab.json +1 -1
  605. package/src/components/tabs/QTabs.js +283 -205
  606. package/src/components/tabs/QTabs.json +9 -9
  607. package/src/components/tabs/index.js +1 -5
  608. package/src/components/tabs/use-tab.js +127 -103
  609. package/src/components/tabs/use-tab.json +8 -8
  610. package/src/components/time/QTime.js +502 -383
  611. package/src/components/time/QTime.json +19 -15
  612. package/src/components/time/index.js +1 -3
  613. package/src/components/timeline/QTimeline.js +10 -7
  614. package/src/components/timeline/QTimeline.json +2 -2
  615. package/src/components/timeline/QTimelineEntry.js +44 -27
  616. package/src/components/timeline/QTimelineEntry.json +7 -5
  617. package/src/components/timeline/index.js +1 -4
  618. package/src/components/toggle/QToggle.js +29 -19
  619. package/src/components/toggle/QToggle.json +1 -1
  620. package/src/components/toggle/index.js +1 -3
  621. package/src/components/toolbar/QToolbar.js +7 -5
  622. package/src/components/toolbar/QToolbar.test.js +2 -6
  623. package/src/components/toolbar/QToolbarTitle.js +5 -4
  624. package/src/components/toolbar/QToolbarTitle.test.js +2 -6
  625. package/src/components/toolbar/index.js +1 -4
  626. package/src/components/tooltip/QTooltip.js +125 -72
  627. package/src/components/tooltip/QTooltip.json +34 -10
  628. package/src/components/tooltip/index.js +1 -3
  629. package/src/components/tree/QTree.js +417 -297
  630. package/src/components/tree/QTree.json +27 -25
  631. package/src/components/tree/index.js +1 -3
  632. package/src/components/uploader/QUploader.json +9 -6
  633. package/src/components/uploader/QUploaderAddTrigger.js +5 -2
  634. package/src/components/uploader/index.js +1 -4
  635. package/src/components/uploader/uploader-core.js +262 -178
  636. package/src/components/uploader/xhr-uploader-plugin.js +96 -89
  637. package/src/components/uploader/xhr-uploader-plugin.json +29 -29
  638. package/src/components/video/QVideo.js +25 -19
  639. package/src/components/video/QVideo.json +5 -5
  640. package/src/components/video/QVideo.test.js +55 -85
  641. package/src/components/video/index.js +1 -3
  642. package/src/components/virtual-scroll/QVirtualScroll.js +89 -37
  643. package/src/components/virtual-scroll/QVirtualScroll.json +6 -6
  644. package/src/components/virtual-scroll/index.js +1 -3
  645. package/src/components/virtual-scroll/use-virtual-scroll.js +421 -240
  646. package/src/components/virtual-scroll/use-virtual-scroll.json +20 -13
  647. package/src/composables/private.use-align/use-align.js +8 -5
  648. package/src/composables/private.use-align/use-align.test.js +9 -17
  649. package/src/composables/private.use-anchor/use-anchor-static.json +2 -7
  650. package/src/composables/private.use-anchor/use-anchor.js +79 -62
  651. package/src/composables/private.use-anchor/use-anchor.json +1 -1
  652. package/src/composables/private.use-dark/use-dark.js +2 -6
  653. package/src/composables/private.use-dark/use-dark.test.js +7 -21
  654. package/src/composables/private.use-field/use-field.js +384 -251
  655. package/src/composables/private.use-field/use-field.json +10 -10
  656. package/src/composables/private.use-file/use-file-dom-props.js +11 -15
  657. package/src/composables/private.use-file/use-file.js +86 -67
  658. package/src/composables/private.use-file/use-file.json +8 -8
  659. package/src/composables/private.use-fullscreen/use-fullscreen.js +35 -17
  660. package/src/composables/private.use-fullscreen/use-fullscreen.json +1 -1
  661. package/src/composables/private.use-history/use-history.js +4 -4
  662. package/src/composables/private.use-history/use-history.test.js +9 -21
  663. package/src/composables/private.use-key-composition/use-key-composition.js +16 -12
  664. package/src/composables/private.use-model-toggle/use-model-toggle.js +44 -35
  665. package/src/composables/private.use-model-toggle/use-model-toggle.json +2 -2
  666. package/src/composables/private.use-panel/use-panel.child.json +1 -1
  667. package/src/composables/private.use-panel/use-panel.js +131 -91
  668. package/src/composables/private.use-panel/use-panel.json +18 -18
  669. package/src/composables/private.use-portal/use-portal.js +20 -15
  670. package/src/composables/private.use-prevent-scroll/use-prevent-scroll.js +4 -4
  671. package/src/composables/private.use-ratio/use-ratio.js +3 -3
  672. package/src/composables/private.use-ratio/use-ratio.json +2 -7
  673. package/src/composables/private.use-refocus-target/use-refocus-target.js +7 -8
  674. package/src/composables/private.use-router-link/use-router-link.js +111 -110
  675. package/src/composables/private.use-router-link/use-router-link.json +6 -9
  676. package/src/composables/private.use-scroll-target/use-scroll-target.js +14 -11
  677. package/src/composables/private.use-size/use-size.js +6 -4
  678. package/src/composables/private.use-size/use-size.json +1 -1
  679. package/src/composables/private.use-size/use-size.test.js +1 -1
  680. package/src/composables/private.use-transition/use-transition.js +17 -11
  681. package/src/composables/private.use-transition/use-transition.json +1 -1
  682. package/src/composables/private.use-transition/use-transition.test.js +7 -21
  683. package/src/composables/private.use-validate/use-validate.js +78 -67
  684. package/src/composables/private.use-validate/use-validate.json +9 -12
  685. package/src/composables/use-dialog-plugin-component/use-dialog-plugin-component.js +12 -6
  686. package/src/composables/use-form/private.use-form.js +4 -4
  687. package/src/composables/use-form/private.use-form.json +1 -1
  688. package/src/composables/use-form/private.use-form.test.js +17 -15
  689. package/src/composables/use-form/use-form-child.js +25 -14
  690. package/src/composables/use-hydration/use-hydration.js +1 -1
  691. package/src/composables/use-hydration/use-hydration.test.js +2 -4
  692. package/src/composables/use-id/use-id.js +10 -12
  693. package/src/composables/use-id/use-id.test.js +1 -1
  694. package/src/composables/use-interval/use-interval.js +3 -3
  695. package/src/composables/use-interval/use-interval.test.js +6 -9
  696. package/src/composables/use-meta/use-meta.js +13 -10
  697. package/src/composables/use-quasar/use-quasar.js +1 -1
  698. package/src/composables/use-quasar/use-quasar.test.js +4 -10
  699. package/src/composables/use-render-cache/use-render-cache.js +16 -24
  700. package/src/composables/use-split-attrs/use-split-attrs.js +9 -5
  701. package/src/composables/use-split-attrs/use-split-attrs.test.js +17 -15
  702. package/src/composables/use-tick/use-tick.js +10 -5
  703. package/src/composables/use-tick/use-tick.test.js +5 -8
  704. package/src/composables/use-timeout/use-timeout.js +3 -3
  705. package/src/composables/use-timeout/use-timeout.test.js +6 -9
  706. package/src/composables.js +0 -1
  707. package/src/css/core/helpers.sass +4 -9
  708. package/src/directives/close-popup/ClosePopup.js +41 -35
  709. package/src/directives/close-popup/ClosePopup.json +1 -1
  710. package/src/directives/intersection/Intersection.js +25 -28
  711. package/src/directives/intersection/Intersection.json +6 -6
  712. package/src/directives/morph/Morph.js +87 -87
  713. package/src/directives/morph/Morph.json +15 -13
  714. package/src/directives/mutation/Mutation.js +23 -24
  715. package/src/directives/mutation/Mutation.json +11 -11
  716. package/src/directives/ripple/Ripple.js +88 -79
  717. package/src/directives/ripple/Ripple.json +10 -10
  718. package/src/directives/ripple/Ripple.test.js +31 -87
  719. package/src/directives/scroll/Scroll.js +43 -30
  720. package/src/directives/scroll/Scroll.json +4 -2
  721. package/src/directives/scroll-fire/ScrollFire.js +43 -38
  722. package/src/directives/scroll-fire/ScrollFire.json +1 -1
  723. package/src/directives/touch-hold/TouchHold.js +155 -139
  724. package/src/directives/touch-hold/TouchHold.json +2 -2
  725. package/src/directives/touch-pan/TouchPan.js +311 -278
  726. package/src/directives/touch-pan/TouchPan.json +6 -4
  727. package/src/directives/touch-repeat/TouchRepeat.js +222 -188
  728. package/src/directives/touch-repeat/TouchRepeat.json +5 -3
  729. package/src/directives/touch-swipe/TouchSwipe.js +235 -214
  730. package/src/directives/touch-swipe/TouchSwipe.json +5 -3
  731. package/src/flags.dev.js +10 -17
  732. package/src/index.dev.js +2 -0
  733. package/src/index.ssr.js +2 -6
  734. package/src/index.umd.js +4 -2
  735. package/src/install-quasar.js +92 -76
  736. package/src/plugins/addressbar/AddressbarColor.js +28 -25
  737. package/src/plugins/addressbar/AddressbarColor.json +1 -1
  738. package/src/plugins/addressbar/AddressbarColor.test.js +10 -9
  739. package/src/plugins/app-fullscreen/AppFullscreen.js +50 -51
  740. package/src/plugins/app-fullscreen/AppFullscreen.json +6 -10
  741. package/src/plugins/app-fullscreen/AppFullscreen.test.js +11 -26
  742. package/src/plugins/app-fullscreen/test/mock-fullscreen.js +7 -5
  743. package/src/plugins/app-visibility/AppVisibility.js +21 -17
  744. package/src/plugins/app-visibility/AppVisibility.test.js +3 -1
  745. package/src/plugins/bottom-sheet/BottomSheet.js +1 -1
  746. package/src/plugins/bottom-sheet/BottomSheet.json +9 -9
  747. package/src/plugins/bottom-sheet/component/BottomSheetComponent.js +132 -95
  748. package/src/plugins/cookies/Cookies.js +50 -58
  749. package/src/plugins/cookies/Cookies.json +24 -16
  750. package/src/plugins/dark/Dark.js +61 -55
  751. package/src/plugins/dark/Dark.json +6 -6
  752. package/src/plugins/dark/Dark.test.js +26 -44
  753. package/src/plugins/dialog/Dialog.js +1 -1
  754. package/src/plugins/dialog/Dialog.json +29 -21
  755. package/src/plugins/dialog/component/DialogPluginComponent.js +122 -121
  756. package/src/plugins/icon-set/IconSet.js +63 -56
  757. package/src/plugins/icon-set/IconSet.json +421 -419
  758. package/src/plugins/icon-set/IconSet.test.js +8 -7
  759. package/src/plugins/lang/Lang.js +115 -96
  760. package/src/plugins/lang/Lang.json +201 -175
  761. package/src/plugins/lang/Lang.test.js +52 -20
  762. package/src/plugins/loading/Loading.js +175 -143
  763. package/src/plugins/loading/Loading.json +15 -15
  764. package/src/plugins/loading-bar/LoadingBar.js +61 -56
  765. package/src/plugins/loading-bar/LoadingBar.json +2 -2
  766. package/src/plugins/meta/Meta.js +91 -81
  767. package/src/plugins/notify/Notify.js +275 -221
  768. package/src/plugins/notify/Notify.json +79 -71
  769. package/src/plugins/platform/Platform.js +105 -112
  770. package/src/plugins/platform/Platform.json +12 -8
  771. package/src/plugins/platform/Platform.test.js +4 -7
  772. package/src/plugins/private.body/Body.js +19 -23
  773. package/src/plugins/private.body/Body.test.js +4 -6
  774. package/src/plugins/private.history/History.js +27 -30
  775. package/src/plugins/screen/Screen.js +160 -147
  776. package/src/plugins/screen/Screen.json +6 -6
  777. package/src/plugins/screen/Screen.test.js +6 -12
  778. package/src/plugins/storage/LocalStorage.js +5 -4
  779. package/src/plugins/storage/LocalStorage.json +1 -1
  780. package/src/plugins/storage/LocalStorage.test.js +56 -62
  781. package/src/plugins/storage/SessionStorage.js +5 -4
  782. package/src/plugins/storage/SessionStorage.json +1 -1
  783. package/src/plugins/storage/SessionStorage.test.js +56 -62
  784. package/src/plugins/storage/engine/web-storage.js +24 -26
  785. package/src/plugins/storage/engine/web-storage.json +45 -15
  786. package/src/utils/EventBus/EventBus.js +12 -13
  787. package/src/utils/clone/clone.js +27 -28
  788. package/src/utils/clone/clone.test.js +27 -52
  789. package/src/utils/colors/colors.js +69 -63
  790. package/src/utils/colors/colors.test.js +360 -270
  791. package/src/utils/copy-to-clipboard/copy-to-clipboard.js +9 -10
  792. package/src/utils/create-meta-mixin/create-meta-mixin.js +17 -19
  793. package/src/utils/create-uploader-component/create-uploader-component.js +20 -14
  794. package/src/utils/css-var/get-css-var.js +4 -2
  795. package/src/utils/css-var/get-css-var.test.js +4 -11
  796. package/src/utils/css-var/set-css-var.js +2 -2
  797. package/src/utils/css-var/set-css-var.test.js +6 -12
  798. package/src/utils/date/date.js +251 -243
  799. package/src/utils/date/private.persian.js +54 -44
  800. package/src/utils/debounce/debounce.js +5 -5
  801. package/src/utils/debounce/debounce.test.js +3 -10
  802. package/src/utils/dom/dom.js +21 -22
  803. package/src/utils/dom/dom.test.js +19 -39
  804. package/src/utils/event/event.js +53 -49
  805. package/src/utils/export-file/export-file.js +11 -12
  806. package/src/utils/extend/extend.js +30 -26
  807. package/src/utils/extend/extend.test.js +36 -42
  808. package/src/utils/format/format.js +11 -13
  809. package/src/utils/format/format.test.js +50 -61
  810. package/src/utils/frame-debounce/frame-debounce.js +5 -3
  811. package/src/utils/frame-debounce/frame-debounce.test.js +3 -10
  812. package/src/utils/is/is.js +27 -23
  813. package/src/utils/is/is.test.js +100 -84
  814. package/src/utils/morph/morph.js +470 -377
  815. package/src/utils/open-url/open-url.js +18 -21
  816. package/src/utils/patterns/patterns.js +11 -7
  817. package/src/utils/patterns/patterns.test.js +2 -0
  818. package/src/utils/private.click-outside/click-outside.js +28 -26
  819. package/src/utils/private.config/instance-config.js +1 -1
  820. package/src/utils/private.config/instance-config.test.js +11 -7
  821. package/src/utils/private.config/nodes.js +14 -14
  822. package/src/utils/private.config/nodes.test.js +32 -38
  823. package/src/utils/private.create/create.js +10 -4
  824. package/src/utils/private.create/create.test.js +11 -7
  825. package/src/utils/private.dialog/create-dialog.js +70 -59
  826. package/src/utils/private.dialog/create-dialog.json +13 -6
  827. package/src/utils/private.focus/focus-manager.js +7 -8
  828. package/src/utils/private.focus/focus-manager.test.js +13 -18
  829. package/src/utils/private.focus/focusout.js +4 -4
  830. package/src/utils/private.focus/focusout.test.js +10 -22
  831. package/src/utils/private.get-emits-object/get-emits-object.js +2 -2
  832. package/src/utils/private.get-emits-object/get-emits-object.test.js +4 -10
  833. package/src/utils/private.inject-obj-prop/inject-obj-prop.js +3 -3
  834. package/src/utils/private.inject-obj-prop/inject-obj-prop.test.js +20 -49
  835. package/src/utils/private.keyboard/escape-key.js +10 -10
  836. package/src/utils/private.keyboard/escape-key.test.js +10 -22
  837. package/src/utils/private.keyboard/key-composition.js +9 -7
  838. package/src/utils/private.portal/portal.js +7 -10
  839. package/src/utils/private.position-engine/position-engine.js +127 -75
  840. package/src/utils/private.render/render.js +9 -24
  841. package/src/utils/private.render/render.test.js +40 -55
  842. package/src/utils/private.rtl/rtl.js +1 -3
  843. package/src/utils/private.selection/selection.js +6 -6
  844. package/src/utils/private.selection/selection.test.js +7 -13
  845. package/src/utils/private.sort/sort.js +4 -6
  846. package/src/utils/private.symbols/symbols.js +1 -1
  847. package/src/utils/private.touch/touch.js +16 -16
  848. package/src/utils/private.touch/touch.test.js +56 -16
  849. package/src/utils/private.vm/vm.js +6 -7
  850. package/src/utils/private.vm/vm.test.js +32 -32
  851. package/src/utils/run-sequential-promises/run-sequential-promises.js +57 -51
  852. package/src/utils/scroll/prevent-scroll.js +75 -47
  853. package/src/utils/scroll/scroll.js +51 -44
  854. package/src/utils/throttle/throttle.js +7 -4
  855. package/src/utils/throttle/throttle.test.js +2 -7
  856. package/src/utils/uid/uid.js +34 -22
  857. package/wrappers/index.cjs +17 -15
  858. package/wrappers/index.js +15 -15
@@ -2,8 +2,13 @@ import { h, ref, computed, onBeforeUnmount, getCurrentInstance } from 'vue'
2
2
 
3
3
  import TouchPan from '../../directives/touch-pan/TouchPan.js'
4
4
 
5
- import useDark, { useDarkProps } from '../../composables/private.use-dark/use-dark.js'
6
- import { useFormProps, useFormInject } from '../../composables/use-form/private.use-form.js'
5
+ import useDark, {
6
+ useDarkProps
7
+ } from '../../composables/private.use-dark/use-dark.js'
8
+ import {
9
+ useFormProps,
10
+ useFormInject
11
+ } from '../../composables/use-form/private.use-form.js'
7
12
 
8
13
  import { between } from '../../utils/format/format.js'
9
14
  import { position } from '../../utils/event/event.js'
@@ -12,14 +17,19 @@ import { hDir } from '../../utils/private.render/render.js'
12
17
 
13
18
  const markerPrefixClass = 'q-slider__marker-labels'
14
19
  const defaultMarkerConvertFn = v => ({ value: v })
15
- const defaultMarkerLabelRenderFn = ({ marker }) => h('div', {
16
- key: marker.value,
17
- style: marker.style,
18
- class: marker.classes
19
- }, marker.label)
20
+ const defaultMarkerLabelRenderFn = ({ marker }) =>
21
+ h(
22
+ 'div',
23
+ {
24
+ key: marker.value,
25
+ style: marker.style,
26
+ class: marker.classes
27
+ },
28
+ marker.label
29
+ )
20
30
 
21
31
  // PGDOWN, LEFT, DOWN, PGUP, RIGHT, UP
22
- export const keyCodes = [ 34, 37, 40, 33, 39, 38 ]
32
+ export const keyCodes = [34, 37, 40, 33, 39, 38]
23
33
 
24
34
  export const useSliderProps = {
25
35
  ...useDarkProps,
@@ -56,8 +66,8 @@ export const useSliderProps = {
56
66
  labelAlways: Boolean,
57
67
  switchLabelSide: Boolean,
58
68
 
59
- markers: [ Boolean, Number ],
60
- markerLabels: [ Boolean, Array, Object, Function ],
69
+ markers: [Boolean, Number],
70
+ markerLabels: [Boolean, Array, Object, Function],
61
71
  switchMarkerLabelsSide: Boolean,
62
72
 
63
73
  trackImg: String,
@@ -80,7 +90,7 @@ export const useSliderProps = {
80
90
  readonly: Boolean,
81
91
  dense: Boolean,
82
92
 
83
- tabindex: [ String, Number ],
93
+ tabindex: [String, Number],
84
94
 
85
95
  thumbColor: String,
86
96
  thumbPath: {
@@ -89,10 +99,20 @@ export const useSliderProps = {
89
99
  }
90
100
  }
91
101
 
92
- export const useSliderEmits = [ 'pan', 'update:modelValue', 'change' ]
93
-
94
- export default function ({ updateValue, updatePosition, getDragging, formAttrs }) {
95
- const { props, emit, slots, proxy: { $q } } = getCurrentInstance()
102
+ export const useSliderEmits = ['pan', 'update:modelValue', 'change']
103
+
104
+ export default function useSlider({
105
+ updateValue,
106
+ updatePosition,
107
+ getDragging,
108
+ formAttrs
109
+ }) {
110
+ const {
111
+ props,
112
+ emit,
113
+ slots,
114
+ proxy: { $q }
115
+ } = getCurrentInstance()
96
116
  const isDark = useDark(props, $q)
97
117
 
98
118
  const injectFormInput = useFormInject(formAttrs)
@@ -103,41 +123,47 @@ export default function ({ updateValue, updatePosition, getDragging, formAttrs }
103
123
  const dragging = ref(false)
104
124
 
105
125
  const axis = computed(() => (props.vertical === true ? '--v' : '--h'))
106
- const labelSide = computed(() => '-' + (props.switchLabelSide === true ? 'switched' : 'standard'))
126
+ const labelSide = computed(
127
+ () => '-' + (props.switchLabelSide === true ? 'switched' : 'standard')
128
+ )
107
129
 
108
- const isReversed = computed(() => (
130
+ const isReversed = computed(() =>
109
131
  props.vertical === true
110
132
  ? props.reverse === true
111
133
  : props.reverse !== ($q.lang.rtl === true)
112
- ))
134
+ )
113
135
 
114
- const innerMin = computed(() => (
136
+ const innerMin = computed(() =>
115
137
  isNaN(props.innerMin) === true || props.innerMin < props.min
116
138
  ? props.min
117
139
  : props.innerMin
118
- ))
119
- const innerMax = computed(() => (
140
+ )
141
+ const innerMax = computed(() =>
120
142
  isNaN(props.innerMax) === true || props.innerMax > props.max
121
143
  ? props.max
122
144
  : props.innerMax
123
- ))
145
+ )
124
146
 
125
- const editable = computed(() => (
126
- props.disable !== true && props.readonly !== true
127
- && innerMin.value < innerMax.value
128
- ))
147
+ const editable = computed(
148
+ () =>
149
+ props.disable !== true &&
150
+ props.readonly !== true &&
151
+ innerMin.value < innerMax.value
152
+ )
129
153
 
130
154
  const roundValueFn = computed(() => {
131
155
  if (props.step === 0) {
132
156
  return v => v
133
157
  }
134
158
 
135
- const decimals = (String(props.step).trim().split('.')[ 1 ] || '').length
159
+ const decimals = (String(props.step).trim().split('.')[1] || '').length
136
160
  return v => parseFloat(v.toFixed(decimals))
137
161
  })
138
162
 
139
163
  const keyStep = computed(() => (props.step === 0 ? 1 : props.step))
140
- const tabindex = computed(() => (editable.value === true ? props.tabindex || 0 : -1))
164
+ const tabindex = computed(() =>
165
+ editable.value === true ? props.tabindex || 0 : -1
166
+ )
141
167
 
142
168
  const trackLen = computed(() => props.max - props.min)
143
169
  const innerBarLen = computed(() => innerMax.value - innerMin.value)
@@ -145,15 +171,25 @@ export default function ({ updateValue, updatePosition, getDragging, formAttrs }
145
171
  const innerMinRatio = computed(() => convertModelToRatio(innerMin.value))
146
172
  const innerMaxRatio = computed(() => convertModelToRatio(innerMax.value))
147
173
 
148
- const positionProp = computed(() => (
174
+ const positionProp = computed(() =>
149
175
  props.vertical === true
150
- ? (isReversed.value === true ? 'bottom' : 'top')
151
- : (isReversed.value === true ? 'right' : 'left')
152
- ))
176
+ ? isReversed.value === true
177
+ ? 'bottom'
178
+ : 'top'
179
+ : isReversed.value === true
180
+ ? 'right'
181
+ : 'left'
182
+ )
153
183
 
154
- const sizeProp = computed(() => (props.vertical === true ? 'height' : 'width'))
155
- const thicknessProp = computed(() => (props.vertical === true ? 'width' : 'height'))
156
- const orientation = computed(() => (props.vertical === true ? 'vertical' : 'horizontal'))
184
+ const sizeProp = computed(() =>
185
+ props.vertical === true ? 'height' : 'width'
186
+ )
187
+ const thicknessProp = computed(() =>
188
+ props.vertical === true ? 'width' : 'height'
189
+ )
190
+ const orientation = computed(() =>
191
+ props.vertical === true ? 'vertical' : 'horizontal'
192
+ )
157
193
 
158
194
  const attributes = computed(() => {
159
195
  const acc = {
@@ -165,87 +201,99 @@ export default function ({ updateValue, updatePosition, getDragging, formAttrs }
165
201
  }
166
202
 
167
203
  if (props.disable === true) {
168
- acc[ 'aria-disabled' ] = 'true'
169
- }
170
- else if (props.readonly === true) {
171
- acc[ 'aria-readonly' ] = 'true'
204
+ acc['aria-disabled'] = 'true'
205
+ } else if (props.readonly === true) {
206
+ acc['aria-readonly'] = 'true'
172
207
  }
173
208
 
174
209
  return acc
175
210
  })
176
211
 
177
- const classes = computed(() =>
178
- `q-slider q-slider${ axis.value } q-slider--${ active.value === true ? '' : 'in' }active inline no-wrap `
179
- + (props.vertical === true ? 'row' : 'column')
180
- + (props.disable === true ? ' disabled' : ' q-slider--enabled' + (editable.value === true ? ' q-slider--editable' : ''))
181
- + (focus.value === 'both' ? ' q-slider--focus' : '')
182
- + (props.label || props.labelAlways === true ? ' q-slider--label' : '')
183
- + (props.labelAlways === true ? ' q-slider--label-always' : '')
184
- + (isDark.value === true ? ' q-slider--dark' : '')
185
- + (props.dense === true ? ' q-slider--dense q-slider--dense' + axis.value : '')
212
+ const classes = computed(
213
+ () =>
214
+ `q-slider q-slider${axis.value} q-slider--${active.value === true ? '' : 'in'}active inline no-wrap ` +
215
+ (props.vertical === true ? 'row' : 'column') +
216
+ (props.disable === true
217
+ ? ' disabled'
218
+ : ' q-slider--enabled' +
219
+ (editable.value === true ? ' q-slider--editable' : '')) +
220
+ (focus.value === 'both' ? ' q-slider--focus' : '') +
221
+ (props.label || props.labelAlways === true ? ' q-slider--label' : '') +
222
+ (props.labelAlways === true ? ' q-slider--label-always' : '') +
223
+ (isDark.value === true ? ' q-slider--dark' : '') +
224
+ (props.dense === true
225
+ ? ' q-slider--dense q-slider--dense' + axis.value
226
+ : '')
186
227
  )
187
228
 
188
- function getPositionClass (name) {
229
+ function getPositionClass(name) {
189
230
  const cls = 'q-slider__' + name
190
- return `${ cls } ${ cls }${ axis.value } ${ cls }${ axis.value }${ labelSide.value }`
231
+ return `${cls} ${cls}${axis.value} ${cls}${axis.value}${labelSide.value}`
191
232
  }
192
- function getAxisClass (name) {
233
+ function getAxisClass(name) {
193
234
  const cls = 'q-slider__' + name
194
- return `${ cls } ${ cls }${ axis.value }`
235
+ return `${cls} ${cls}${axis.value}`
195
236
  }
196
237
 
197
238
  const selectionBarClass = computed(() => {
198
239
  const color = props.selectionColor || props.color
199
- return 'q-slider__selection absolute'
200
- + (color !== void 0 ? ` text-${ color }` : '')
240
+ return (
241
+ 'q-slider__selection absolute' +
242
+ (color !== void 0 ? ` text-${color}` : '')
243
+ )
201
244
  })
202
- const markerClass = computed(() => getAxisClass('markers') + ' absolute overflow-hidden')
245
+ const markerClass = computed(
246
+ () => getAxisClass('markers') + ' absolute overflow-hidden'
247
+ )
203
248
  const trackContainerClass = computed(() => getAxisClass('track-container'))
204
249
  const pinClass = computed(() => getPositionClass('pin'))
205
250
  const labelClass = computed(() => getPositionClass('label'))
206
251
  const textContainerClass = computed(() => getPositionClass('text-container'))
207
- const markerLabelsContainerClass = computed(() =>
208
- getPositionClass('marker-labels-container')
209
- + (props.markerLabelsClass !== void 0 ? ` ${ props.markerLabelsClass }` : '')
252
+ const markerLabelsContainerClass = computed(
253
+ () =>
254
+ getPositionClass('marker-labels-container') +
255
+ (props.markerLabelsClass !== void 0 ? ` ${props.markerLabelsClass}` : '')
210
256
  )
211
257
 
212
- const trackClass = computed(() =>
213
- 'q-slider__track relative-position no-outline'
214
- + (props.trackColor !== void 0 ? ` bg-${ props.trackColor }` : '')
258
+ const trackClass = computed(
259
+ () =>
260
+ 'q-slider__track relative-position no-outline' +
261
+ (props.trackColor !== void 0 ? ` bg-${props.trackColor}` : '')
215
262
  )
216
263
  const trackStyle = computed(() => {
217
- const acc = { [ thicknessProp.value ]: props.trackSize }
264
+ const acc = { [thicknessProp.value]: props.trackSize }
218
265
  if (props.trackImg !== void 0) {
219
- acc.backgroundImage = `url(${ props.trackImg }) !important`
266
+ acc.backgroundImage = `url(${props.trackImg}) !important`
220
267
  }
221
268
  return acc
222
269
  })
223
270
 
224
- const innerBarClass = computed(() =>
225
- 'q-slider__inner absolute'
226
- + (props.innerTrackColor !== void 0 ? ` bg-${ props.innerTrackColor }` : '')
271
+ const innerBarClass = computed(
272
+ () =>
273
+ 'q-slider__inner absolute' +
274
+ (props.innerTrackColor !== void 0 ? ` bg-${props.innerTrackColor}` : '')
227
275
  )
228
276
  const innerBarStyle = computed(() => {
229
277
  const innerDiff = innerMaxRatio.value - innerMinRatio.value
230
278
  const acc = {
231
- [ positionProp.value ]: `${ 100 * innerMinRatio.value }%`,
232
- [ sizeProp.value ]: innerDiff === 0
233
- ? '2px'
234
- : `${ 100 * innerDiff }%`
279
+ [positionProp.value]: `${100 * innerMinRatio.value}%`,
280
+ [sizeProp.value]: innerDiff === 0 ? '2px' : `${100 * innerDiff}%`
235
281
  }
236
282
  if (props.innerTrackImg !== void 0) {
237
- acc.backgroundImage = `url(${ props.innerTrackImg }) !important`
283
+ acc.backgroundImage = `url(${props.innerTrackImg}) !important`
238
284
  }
239
285
  return acc
240
286
  })
241
287
 
242
- function convertRatioToModel (ratio) {
288
+ function convertRatioToModel(ratio) {
243
289
  const { min, max, step } = props
244
290
  let model = min + ratio * (max - min)
245
291
 
246
292
  if (step > 0) {
247
293
  const modulo = (model - innerMin.value) % step
248
- model += (Math.abs(modulo) >= step / 2 ? (modulo < 0 ? -1 : 1) * step : 0) - modulo
294
+ model +=
295
+ (Math.abs(modulo) >= step / 2 ? (modulo < 0 ? -1 : 1) * step : 0) -
296
+ modulo
249
297
  }
250
298
 
251
299
  model = roundValueFn.value(model)
@@ -253,18 +301,16 @@ export default function ({ updateValue, updatePosition, getDragging, formAttrs }
253
301
  return between(model, innerMin.value, innerMax.value)
254
302
  }
255
303
 
256
- function convertModelToRatio (model) {
257
- return trackLen.value === 0
258
- ? 0
259
- : (model - props.min) / trackLen.value
304
+ function convertModelToRatio(model) {
305
+ return trackLen.value === 0 ? 0 : (model - props.min) / trackLen.value
260
306
  }
261
307
 
262
- function getDraggingRatio (evt, dragging) {
263
- const
264
- pos = position(evt),
265
- val = props.vertical === true
266
- ? between((pos.top - dragging.top) / dragging.height, 0, 1)
267
- : between((pos.left - dragging.left) / dragging.width, 0, 1)
308
+ function getDraggingRatio(evt, draggingInfo) {
309
+ const pos = position(evt),
310
+ val =
311
+ props.vertical === true
312
+ ? between((pos.top - draggingInfo.top) / draggingInfo.height, 0, 1)
313
+ : between((pos.left - draggingInfo.left) / draggingInfo.width, 0, 1)
268
314
 
269
315
  return between(
270
316
  isReversed.value === true ? 1.0 - val : val,
@@ -273,8 +319,8 @@ export default function ({ updateValue, updatePosition, getDragging, formAttrs }
273
319
  )
274
320
  }
275
321
 
276
- const markerStep = computed(() => (
277
- isNumber(props.markers) === true ? props.markers : keyStep.value)
322
+ const markerStep = computed(() =>
323
+ isNumber(props.markers) === true ? props.markers : keyStep.value
278
324
  )
279
325
 
280
326
  const markerTicks = computed(() => {
@@ -293,21 +339,26 @@ export default function ({ updateValue, updatePosition, getDragging, formAttrs }
293
339
  })
294
340
 
295
341
  const markerLabelClass = computed(() => {
296
- const prefix = ` ${ markerPrefixClass }${ axis.value }-`
297
- return markerPrefixClass
298
- + `${ prefix }${ props.switchMarkerLabelsSide === true ? 'switched' : 'standard' }`
299
- + `${ prefix }${ isReversed.value === true ? 'rtl' : 'ltr' }`
342
+ const prefix = ` ${markerPrefixClass}${axis.value}-`
343
+ return (
344
+ markerPrefixClass +
345
+ `${prefix}${props.switchMarkerLabelsSide === true ? 'switched' : 'standard'}` +
346
+ `${prefix}${isReversed.value === true ? 'rtl' : 'ltr'}`
347
+ )
300
348
  })
301
349
 
302
350
  const markerLabelsList = computed(() => {
303
- if (props.markerLabels === false) { return null }
351
+ if (props.markerLabels === false) {
352
+ return null
353
+ }
304
354
 
305
355
  return getMarkerList(props.markerLabels).map((entry, index) => ({
306
356
  index,
307
357
  value: entry.value,
308
358
  label: entry.label || entry.value,
309
- classes: markerLabelClass.value
310
- + (entry.classes !== void 0 ? ' ' + entry.classes : ''),
359
+ classes:
360
+ markerLabelClass.value +
361
+ (entry.classes !== void 0 ? ' ' + entry.classes : ''),
311
362
  style: {
312
363
  ...getMarkerLabelStyle(entry.value),
313
364
  ...(entry.style || {})
@@ -323,20 +374,21 @@ export default function ({ updateValue, updatePosition, getDragging, formAttrs }
323
374
  }))
324
375
 
325
376
  const markerStyle = computed(() => {
326
- const size = innerBarLen.value === 0
327
- ? '2px'
328
- : 100 * markerStep.value / innerBarLen.value
377
+ const size =
378
+ innerBarLen.value === 0
379
+ ? '2px'
380
+ : (100 * markerStep.value) / innerBarLen.value
329
381
 
330
382
  return {
331
383
  ...innerBarStyle.value,
332
- backgroundSize: props.vertical === true
333
- ? `2px ${ size }%`
334
- : `${ size }% 2px`
384
+ backgroundSize: props.vertical === true ? `2px ${size}%` : `${size}% 2px`
335
385
  }
336
386
  })
337
387
 
338
- function getMarkerList (def) {
339
- if (def === false) { return null }
388
+ function getMarkerList(def) {
389
+ if (def === false) {
390
+ return null
391
+ }
340
392
 
341
393
  if (def === true) {
342
394
  return markerTicks.value.map(defaultMarkerConvertFn)
@@ -345,7 +397,9 @@ export default function ({ updateValue, updatePosition, getDragging, formAttrs }
345
397
  if (typeof def === 'function') {
346
398
  return markerTicks.value.map(value => {
347
399
  const item = def(value)
348
- return isObject(item) === true ? { ...item, value } : { value, label: item }
400
+ return isObject(item) === true
401
+ ? { ...item, value }
402
+ : { value, label: item }
349
403
  })
350
404
  }
351
405
 
@@ -357,85 +411,92 @@ export default function ({ updateValue, updatePosition, getDragging, formAttrs }
357
411
  .filter(filterFn)
358
412
  }
359
413
 
360
- return Object.keys(def).map(key => {
361
- const item = def[ key ]
362
- const value = Number(key)
363
- return isObject(item) === true ? { ...item, value } : { value, label: item }
364
- }).filter(filterFn)
414
+ return Object.keys(def)
415
+ .map(key => {
416
+ const item = def[key]
417
+ const value = Number(key)
418
+ return isObject(item) === true
419
+ ? { ...item, value }
420
+ : { value, label: item }
421
+ })
422
+ .filter(filterFn)
365
423
  }
366
424
 
367
- function getMarkerLabelStyle (val) {
368
- return { [ positionProp.value ]: `${ 100 * (val - props.min) / trackLen.value }%` }
425
+ function getMarkerLabelStyle(val) {
426
+ return {
427
+ [positionProp.value]: `${(100 * (val - props.min)) / trackLen.value}%`
428
+ }
369
429
  }
370
430
 
371
431
  const markerLabelsMap = computed(() => {
372
- if (props.markerLabels === false) { return null }
432
+ if (props.markerLabels === false) {
433
+ return null
434
+ }
373
435
 
374
436
  const acc = {}
375
437
  markerLabelsList.value.forEach(entry => {
376
- acc[ entry.value ] = entry
438
+ acc[entry.value] = entry
377
439
  })
378
440
  return acc
379
441
  })
380
442
 
381
- function getMarkerLabelsContent () {
382
- if (slots[ 'marker-label-group' ] !== void 0) {
383
- return slots[ 'marker-label-group' ](markerScope.value)
443
+ function getMarkerLabelsContent() {
444
+ if (slots['marker-label-group'] !== void 0) {
445
+ return slots['marker-label-group'](markerScope.value)
384
446
  }
385
447
 
386
- const fn = slots[ 'marker-label' ] || defaultMarkerLabelRenderFn
387
- return markerLabelsList.value.map(marker => fn({
388
- marker,
389
- ...markerScope.value
390
- }))
448
+ const fn = slots['marker-label'] || defaultMarkerLabelRenderFn
449
+ return markerLabelsList.value.map(marker =>
450
+ fn({
451
+ marker,
452
+ ...markerScope.value
453
+ })
454
+ )
391
455
  }
392
456
 
393
- const panDirective = computed(() => {
394
- // if editable.value === true
395
- return [ [
457
+ const panDirective = computed(() => [
458
+ [
396
459
  TouchPan,
397
460
  onPan,
398
461
  void 0,
399
462
  {
400
- [ orientation.value ]: true,
463
+ [orientation.value]: true,
401
464
  prevent: true,
402
465
  stop: true,
403
466
  mouse: true,
404
467
  mouseAllDir: true
405
468
  }
406
- ] ]
407
- })
469
+ ]
470
+ ])
408
471
 
409
- function onPan (event) {
472
+ function onPan(event) {
410
473
  if (event.isFinal === true) {
411
474
  if (dragging.value !== void 0) {
412
475
  updatePosition(event.evt)
413
476
  // only if touch, because we also have mousedown/up:
414
- event.touch === true && updateValue(true)
477
+ if (event.touch === true) updateValue(true)
415
478
  dragging.value = void 0
416
479
  emit('pan', 'end')
417
480
  }
418
481
  active.value = false
419
482
  focus.value = false
420
- }
421
- else if (event.isFirst === true) {
483
+ } else if (event.isFirst === true) {
422
484
  dragging.value = getDragging(event.evt)
423
485
  updatePosition(event.evt)
424
486
  updateValue()
425
487
  active.value = true
426
488
  emit('pan', 'start')
427
- }
428
- else {
489
+ } else {
429
490
  updatePosition(event.evt)
430
491
  updateValue()
431
492
  }
432
493
  }
433
494
 
434
- function onBlur () {
495
+ function onBlur() {
435
496
  focus.value = false
436
497
  }
437
498
 
438
- function onActivate (evt) {
499
+ function onActivate(evt) {
439
500
  updatePosition(evt, getDragging(evt))
440
501
  updateValue()
441
502
 
@@ -445,7 +506,7 @@ export default function ({ updateValue, updatePosition, getDragging, formAttrs }
445
506
  document.addEventListener('mouseup', onDeactivate, true)
446
507
  }
447
508
 
448
- function onDeactivate () {
509
+ function onDeactivate() {
449
510
  preventFocus.value = false
450
511
  active.value = false
451
512
 
@@ -455,89 +516,113 @@ export default function ({ updateValue, updatePosition, getDragging, formAttrs }
455
516
  document.removeEventListener('mouseup', onDeactivate, true)
456
517
  }
457
518
 
458
- function onMobileClick (evt) {
519
+ function onMobileClick(evt) {
459
520
  updatePosition(evt, getDragging(evt))
460
521
  updateValue(true)
461
522
  }
462
523
 
463
- function onKeyup (evt) {
524
+ function onKeyup(evt) {
464
525
  if (keyCodes.includes(evt.keyCode)) {
465
526
  updateValue(true)
466
527
  }
467
528
  }
468
529
 
469
- function getTextContainerStyle (ratio) {
470
- if (props.vertical === true) { return null }
530
+ function getTextContainerStyle(ratio) {
531
+ if (props.vertical === true) {
532
+ return null
533
+ }
471
534
 
472
535
  const p = $q.lang.rtl !== props.reverse ? 1 - ratio : ratio
473
536
  return {
474
- transform: `translateX(calc(${ 2 * p - 1 } * ${ props.thumbSize } / 2 + ${ 50 - 100 * p }%))`
537
+ transform: `translateX(calc(${2 * p - 1} * ${props.thumbSize} / 2 + ${50 - 100 * p}%))`
475
538
  }
476
539
  }
477
540
 
478
- function getThumbRenderFn (thumb) {
479
- const focusClass = computed(() => (
480
- preventFocus.value === false && (focus.value === thumb.focusValue || focus.value === 'both')
541
+ function getThumbRenderFn(thumb) {
542
+ const focusClass = computed(() =>
543
+ preventFocus.value === false &&
544
+ (focus.value === thumb.focusValue || focus.value === 'both')
481
545
  ? ' q-slider--focus'
482
546
  : ''
483
- ))
547
+ )
484
548
 
485
- const classes = computed(() =>
486
- `q-slider__thumb q-slider__thumb${ axis.value } q-slider__thumb${ axis.value }-${ isReversed.value === true ? 'rtl' : 'ltr' } absolute non-selectable`
487
- + focusClass.value
488
- + (thumb.thumbColor.value !== void 0 ? ` text-${ thumb.thumbColor.value }` : '')
549
+ const thumbClasses = computed(
550
+ () =>
551
+ `q-slider__thumb q-slider__thumb${axis.value} q-slider__thumb${axis.value}-${isReversed.value === true ? 'rtl' : 'ltr'} absolute non-selectable` +
552
+ focusClass.value +
553
+ (thumb.thumbColor.value !== void 0
554
+ ? ` text-${thumb.thumbColor.value}`
555
+ : '')
489
556
  )
490
557
 
491
558
  const style = computed(() => ({
492
559
  width: props.thumbSize,
493
560
  height: props.thumbSize,
494
- [ positionProp.value ]: `${ 100 * thumb.ratio.value }%`,
561
+ [positionProp.value]: `${100 * thumb.ratio.value}%`,
495
562
  zIndex: focus.value === thumb.focusValue ? 2 : void 0
496
563
  }))
497
564
 
498
- const pinColor = computed(() => (
499
- thumb.labelColor.value !== void 0
500
- ? ` text-${ thumb.labelColor.value }`
501
- : ''
502
- ))
565
+ const pinColor = computed(() =>
566
+ thumb.labelColor.value !== void 0 ? ` text-${thumb.labelColor.value}` : ''
567
+ )
503
568
 
504
- const textContainerStyle = computed(() => getTextContainerStyle(thumb.ratio.value))
569
+ const textContainerStyle = computed(() =>
570
+ getTextContainerStyle(thumb.ratio.value)
571
+ )
505
572
 
506
- const textClass = computed(() => (
507
- 'q-slider__text'
508
- + (thumb.labelTextColor.value !== void 0 ? ` text-${ thumb.labelTextColor.value }` : '')
509
- ))
573
+ const textClass = computed(
574
+ () =>
575
+ 'q-slider__text' +
576
+ (thumb.labelTextColor.value !== void 0
577
+ ? ` text-${thumb.labelTextColor.value}`
578
+ : '')
579
+ )
510
580
 
511
581
  return () => {
512
582
  const thumbContent = [
513
- h('svg', {
514
- class: 'q-slider__thumb-shape absolute-full',
515
- viewBox: '0 0 20 20',
516
- 'aria-hidden': 'true'
517
- }, [
518
- h('path', { d: props.thumbPath })
519
- ]),
583
+ h(
584
+ 'svg',
585
+ {
586
+ class: 'q-slider__thumb-shape absolute-full',
587
+ viewBox: '0 0 20 20',
588
+ 'aria-hidden': 'true'
589
+ },
590
+ [h('path', { d: props.thumbPath })]
591
+ ),
520
592
 
521
593
  h('div', { class: 'q-slider__focus-ring fit' })
522
594
  ]
523
595
 
524
596
  if (props.label === true || props.labelAlways === true) {
525
597
  thumbContent.push(
526
- h('div', {
527
- class: pinClass.value + ' absolute fit no-pointer-events' + pinColor.value
528
- }, [
529
- h('div', {
530
- class: labelClass.value,
531
- style: { minWidth: props.thumbSize }
532
- }, [
533
- h('div', {
534
- class: textContainerClass.value,
535
- style: textContainerStyle.value
536
- }, [
537
- h('span', { class: textClass.value }, thumb.label.value)
538
- ])
539
- ])
540
- ])
598
+ h(
599
+ 'div',
600
+ {
601
+ class:
602
+ pinClass.value +
603
+ ' absolute fit no-pointer-events' +
604
+ pinColor.value
605
+ },
606
+ [
607
+ h(
608
+ 'div',
609
+ {
610
+ class: labelClass.value,
611
+ style: { minWidth: props.thumbSize }
612
+ },
613
+ [
614
+ h(
615
+ 'div',
616
+ {
617
+ class: textContainerClass.value,
618
+ style: textContainerStyle.value
619
+ },
620
+ [h('span', { class: textClass.value }, thumb.label.value)]
621
+ )
622
+ ]
623
+ )
624
+ ]
625
+ )
541
626
  )
542
627
 
543
628
  if (props.name !== void 0 && props.disable !== true) {
@@ -545,40 +630,55 @@ export default function ({ updateValue, updatePosition, getDragging, formAttrs }
545
630
  }
546
631
  }
547
632
 
548
- return h('div', {
549
- class: classes.value,
550
- style: style.value,
551
- ...thumb.getNodeData()
552
- }, thumbContent)
633
+ return h(
634
+ 'div',
635
+ {
636
+ class: thumbClasses.value,
637
+ style: style.value,
638
+ ...thumb.getNodeData()
639
+ },
640
+ thumbContent
641
+ )
553
642
  }
554
643
  }
555
644
 
556
- function getContent (selectionBarStyle, trackContainerTabindex, trackContainerEvents, injectThumb) {
645
+ function getContent(
646
+ selectionBarStyle,
647
+ trackContainerTabindex,
648
+ trackContainerEvents,
649
+ injectThumb
650
+ ) {
557
651
  const trackContent = []
558
652
 
559
- props.innerTrackColor !== 'transparent' && trackContent.push(
560
- h('div', {
561
- key: 'inner',
562
- class: innerBarClass.value,
563
- style: innerBarStyle.value
564
- })
565
- )
653
+ if (props.innerTrackColor !== 'transparent') {
654
+ trackContent.push(
655
+ h('div', {
656
+ key: 'inner',
657
+ class: innerBarClass.value,
658
+ style: innerBarStyle.value
659
+ })
660
+ )
661
+ }
566
662
 
567
- props.selectionColor !== 'transparent' && trackContent.push(
568
- h('div', {
569
- key: 'selection',
570
- class: selectionBarClass.value,
571
- style: selectionBarStyle.value
572
- })
573
- )
663
+ if (props.selectionColor !== 'transparent') {
664
+ trackContent.push(
665
+ h('div', {
666
+ key: 'selection',
667
+ class: selectionBarClass.value,
668
+ style: selectionBarStyle.value
669
+ })
670
+ )
671
+ }
574
672
 
575
- props.markers !== false && trackContent.push(
576
- h('div', {
577
- key: 'marker',
578
- class: markerClass.value,
579
- style: markerStyle.value
580
- })
581
- )
673
+ if (props.markers !== false) {
674
+ trackContent.push(
675
+ h('div', {
676
+ key: 'marker',
677
+ class: markerClass.value,
678
+ style: markerStyle.value
679
+ })
680
+ )
681
+ }
582
682
 
583
683
  injectThumb(trackContent)
584
684
 
@@ -592,26 +692,33 @@ export default function ({ updateValue, updatePosition, getDragging, formAttrs }
592
692
  ...trackContainerEvents.value
593
693
  },
594
694
  [
595
- h('div', {
596
- class: trackClass.value,
597
- style: trackStyle.value
598
- }, trackContent)
695
+ h(
696
+ 'div',
697
+ {
698
+ class: trackClass.value,
699
+ style: trackStyle.value
700
+ },
701
+ trackContent
702
+ )
599
703
  ],
600
704
  'slide',
601
- editable.value, () => panDirective.value
705
+ editable.value,
706
+ () => panDirective.value
602
707
  )
603
708
  ]
604
709
 
605
710
  if (props.markerLabels !== false) {
606
- const action = props.switchMarkerLabelsSide === true
607
- ? 'unshift'
608
- : 'push'
609
-
610
- content[ action ](
611
- h('div', {
612
- key: 'markerL',
613
- class: markerLabelsContainerClass.value
614
- }, getMarkerLabelsContent())
711
+ const action = props.switchMarkerLabelsSide === true ? 'unshift' : 'push'
712
+
713
+ content[action](
714
+ h(
715
+ 'div',
716
+ {
717
+ key: 'markerL',
718
+ class: markerLabelsContainerClass.value
719
+ },
720
+ getMarkerLabelsContent()
721
+ )
615
722
  )
616
723
  }
617
724