quasar 2.18.7 → 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 (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 +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 -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 +5 -6
  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 +4 -9
  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
@@ -1,4 +1,15 @@
1
- import { h, ref, computed, watch, onActivated, onDeactivated, onBeforeMount, onBeforeUnmount, nextTick, getCurrentInstance } from 'vue'
1
+ import {
2
+ h,
3
+ ref,
4
+ computed,
5
+ watch,
6
+ onActivated,
7
+ onDeactivated,
8
+ onBeforeMount,
9
+ onBeforeUnmount,
10
+ nextTick,
11
+ getCurrentInstance
12
+ } from 'vue'
2
13
 
3
14
  import debounce from '../../utils/debounce/debounce.js'
4
15
  import { noop } from '../../utils/event/event.js'
@@ -17,40 +28,42 @@ const scrollToEdges = [
17
28
 
18
29
  const filterProto = Array.prototype.filter
19
30
 
20
- const setOverflowAnchor = __QUASAR_SSR__ || window.getComputedStyle(document.body).overflowAnchor === void 0
21
- ? noop
22
- : function (contentEl, index) {
23
- if (contentEl === null) return
31
+ const setOverflowAnchor =
32
+ __QUASAR_SSR__ ||
33
+ window.getComputedStyle(document.body).overflowAnchor === void 0
34
+ ? noop
35
+ : function setOverflowAnchor(contentEl, index) {
36
+ if (contentEl === null) return
24
37
 
25
- if (contentEl._qOverflowAnimationFrame !== void 0) {
26
- cancelAnimationFrame(contentEl._qOverflowAnimationFrame)
27
- }
38
+ if (contentEl._qOverflowAnimationFrame !== void 0) {
39
+ cancelAnimationFrame(contentEl._qOverflowAnimationFrame)
40
+ }
28
41
 
29
- contentEl._qOverflowAnimationFrame = requestAnimationFrame(() => {
30
- if (contentEl === null) return
42
+ contentEl._qOverflowAnimationFrame = requestAnimationFrame(() => {
43
+ if (contentEl === null) return
31
44
 
32
- contentEl._qOverflowAnimationFrame = void 0
33
- const children = contentEl.children || []
45
+ contentEl._qOverflowAnimationFrame = void 0
46
+ const children = contentEl.children || []
34
47
 
35
- filterProto
36
- .call(children, el => el.dataset && el.dataset.qVsAnchor !== void 0)
37
- .forEach(el => {
38
- delete el.dataset.qVsAnchor
39
- })
48
+ filterProto
49
+ .call(children, el => el.dataset && el.dataset.qVsAnchor !== void 0)
50
+ .forEach(el => {
51
+ delete el.dataset.qVsAnchor
52
+ })
40
53
 
41
- const el = children[ index ]
54
+ const el = children[index]
42
55
 
43
- if (el?.dataset) {
44
- el.dataset.qVsAnchor = ''
56
+ if (el?.dataset) {
57
+ el.dataset.qVsAnchor = ''
58
+ }
59
+ })
45
60
  }
46
- })
47
- }
48
61
 
49
- function sumFn (acc, h) {
50
- return acc + h
62
+ function sumFn(acc, item) {
63
+ return acc + item
51
64
  }
52
65
 
53
- function getScrollDetails (
66
+ function getScrollDetails(
54
67
  parent,
55
68
  child,
56
69
  beforeRef,
@@ -60,8 +73,10 @@ function getScrollDetails (
60
73
  stickyStart,
61
74
  stickyEnd
62
75
  ) {
63
- const
64
- parentCalc = parent === window ? document.scrollingElement || document.documentElement : parent,
76
+ const parentCalc =
77
+ parent === window
78
+ ? document.scrollingElement || document.documentElement
79
+ : parent,
65
80
  propElSize = horizontal === true ? 'offsetWidth' : 'offsetHeight',
66
81
  details = {
67
82
  scrollStart: 0,
@@ -73,25 +88,27 @@ function getScrollDetails (
73
88
 
74
89
  if (horizontal === true) {
75
90
  if (parent === window) {
76
- details.scrollStart = window.pageXOffset || window.scrollX || document.body.scrollLeft || 0
91
+ details.scrollStart =
92
+ window.pageXOffset || window.scrollX || document.body.scrollLeft || 0
77
93
  details.scrollViewSize += document.documentElement.clientWidth
78
- }
79
- else {
94
+ } else {
80
95
  details.scrollStart = parentCalc.scrollLeft
81
96
  details.scrollViewSize += parentCalc.clientWidth
82
97
  }
83
98
  details.scrollMaxSize = parentCalc.scrollWidth
84
99
 
85
100
  if (rtl === true) {
86
- details.scrollStart = (rtlHasScrollBug === true ? details.scrollMaxSize - details.scrollViewSize : 0) - details.scrollStart
101
+ details.scrollStart =
102
+ (rtlHasScrollBug === true
103
+ ? details.scrollMaxSize - details.scrollViewSize
104
+ : 0) - details.scrollStart
87
105
  }
88
- }
89
- else {
106
+ } else {
90
107
  if (parent === window) {
91
- details.scrollStart = window.pageYOffset || window.scrollY || document.body.scrollTop || 0
108
+ details.scrollStart =
109
+ window.pageYOffset || window.scrollY || document.body.scrollTop || 0
92
110
  details.scrollViewSize += document.documentElement.clientHeight
93
- }
94
- else {
111
+ } else {
95
112
  details.scrollStart = parentCalc.scrollTop
96
113
  details.scrollViewSize += parentCalc.clientHeight
97
114
  }
@@ -99,31 +116,37 @@ function getScrollDetails (
99
116
  }
100
117
 
101
118
  if (beforeRef !== null) {
102
- for (let el = beforeRef.previousElementSibling; el !== null; el = el.previousElementSibling) {
119
+ for (
120
+ let el = beforeRef.previousElementSibling;
121
+ el !== null;
122
+ el = el.previousElementSibling
123
+ ) {
103
124
  if (el.classList.contains('q-virtual-scroll--skip') === false) {
104
- details.offsetStart += el[ propElSize ]
125
+ details.offsetStart += el[propElSize]
105
126
  }
106
127
  }
107
128
  }
108
129
 
109
130
  if (afterRef !== null) {
110
- for (let el = afterRef.nextElementSibling; el !== null; el = el.nextElementSibling) {
131
+ for (
132
+ let el = afterRef.nextElementSibling;
133
+ el !== null;
134
+ el = el.nextElementSibling
135
+ ) {
111
136
  if (el.classList.contains('q-virtual-scroll--skip') === false) {
112
- details.offsetEnd += el[ propElSize ]
137
+ details.offsetEnd += el[propElSize]
113
138
  }
114
139
  }
115
140
  }
116
141
 
117
142
  if (child !== parent) {
118
- const
119
- parentRect = parentCalc.getBoundingClientRect(),
143
+ const parentRect = parentCalc.getBoundingClientRect(),
120
144
  childRect = child.getBoundingClientRect()
121
145
 
122
146
  if (horizontal === true) {
123
147
  details.offsetStart += childRect.left - parentRect.left
124
148
  details.offsetEnd -= childRect.width
125
- }
126
- else {
149
+ } else {
127
150
  details.offsetStart += childRect.top - parentRect.top
128
151
  details.offsetEnd -= childRect.height
129
152
  }
@@ -137,7 +160,7 @@ function getScrollDetails (
137
160
  return details
138
161
  }
139
162
 
140
- function setScroll (parent, scroll, horizontal, rtl) {
163
+ function setScroll(parent, scroll, horizontal, rtl) {
141
164
  if (scroll === 'end') {
142
165
  scroll = (parent === window ? document.body : parent)[
143
166
  horizontal === true ? 'scrollWidth' : 'scrollHeight'
@@ -147,30 +170,40 @@ function setScroll (parent, scroll, horizontal, rtl) {
147
170
  if (parent === window) {
148
171
  if (horizontal === true) {
149
172
  if (rtl === true) {
150
- scroll = (rtlHasScrollBug === true ? document.body.scrollWidth - document.documentElement.clientWidth : 0) - scroll
173
+ scroll =
174
+ (rtlHasScrollBug === true
175
+ ? document.body.scrollWidth - document.documentElement.clientWidth
176
+ : 0) - scroll
151
177
  }
152
- window.scrollTo(scroll, window.pageYOffset || window.scrollY || document.body.scrollTop || 0)
153
- }
154
- else {
155
- window.scrollTo(window.pageXOffset || window.scrollX || document.body.scrollLeft || 0, scroll)
178
+ window.scrollTo(
179
+ scroll,
180
+ window.pageYOffset || window.scrollY || document.body.scrollTop || 0
181
+ )
182
+ } else {
183
+ window.scrollTo(
184
+ window.pageXOffset || window.scrollX || document.body.scrollLeft || 0,
185
+ scroll
186
+ )
156
187
  }
157
- }
158
- else if (horizontal === true) {
188
+ } else if (horizontal === true) {
159
189
  if (rtl === true) {
160
- scroll = (rtlHasScrollBug === true ? parent.scrollWidth - parent.offsetWidth : 0) - scroll
190
+ scroll =
191
+ (rtlHasScrollBug === true
192
+ ? parent.scrollWidth - parent.offsetWidth
193
+ : 0) - scroll
161
194
  }
162
195
  parent.scrollLeft = scroll
163
- }
164
- else {
196
+ } else {
165
197
  parent.scrollTop = scroll
166
198
  }
167
199
  }
168
200
 
169
- function sumSize (sizeAgg, size, from, to) {
170
- if (from >= to) { return 0 }
201
+ function sumSize(sizeAgg, size, from, to) {
202
+ if (from >= to) {
203
+ return 0
204
+ }
171
205
 
172
- const
173
- lastTo = size.length,
206
+ const lastTo = size.length,
174
207
  fromAgg = Math.floor(from / aggBucketSize),
175
208
  toAgg = Math.floor((to - 1) / aggBucketSize) + 1
176
209
 
@@ -188,36 +221,36 @@ function sumSize (sizeAgg, size, from, to) {
188
221
 
189
222
  const commonVirtScrollProps = {
190
223
  virtualScrollSliceSize: {
191
- type: [ Number, String ],
224
+ type: [Number, String],
192
225
  default: 10
193
226
  },
194
227
 
195
228
  virtualScrollSliceRatioBefore: {
196
- type: [ Number, String ],
229
+ type: [Number, String],
197
230
  default: 1
198
231
  },
199
232
 
200
233
  virtualScrollSliceRatioAfter: {
201
- type: [ Number, String ],
234
+ type: [Number, String],
202
235
  default: 1
203
236
  },
204
237
 
205
238
  virtualScrollItemSize: {
206
- type: [ Number, String ],
239
+ type: [Number, String],
207
240
  default: 24
208
241
  },
209
242
 
210
243
  virtualScrollStickySizeStart: {
211
- type: [ Number, String ],
244
+ type: [Number, String],
212
245
  default: 0
213
246
  },
214
247
 
215
248
  virtualScrollStickySizeEnd: {
216
- type: [ Number, String ],
249
+ type: [Number, String],
217
250
  default: 0
218
251
  },
219
252
 
220
- tableColspan: [ Number, String ]
253
+ tableColspan: [Number, String]
221
254
  }
222
255
 
223
256
  export const commonVirtScrollPropsList = Object.keys(commonVirtScrollProps)
@@ -228,8 +261,10 @@ export const useVirtualScrollProps = {
228
261
  ...commonVirtScrollProps
229
262
  }
230
263
 
231
- export function useVirtualScroll ({
232
- virtualScrollLength, getVirtualScrollTarget, getVirtualScrollEl,
264
+ export function useVirtualScroll({
265
+ virtualScrollLength,
266
+ getVirtualScrollTarget,
267
+ getVirtualScrollEl,
233
268
  virtualScrollItemSizeComputed // optional
234
269
  }) {
235
270
  const vm = getCurrentInstance()
@@ -237,7 +272,11 @@ export function useVirtualScroll ({
237
272
  const { props, emit, proxy } = vm
238
273
  const { $q } = proxy
239
274
 
240
- let prevScrollStart, prevToIndex, localScrollViewSize, virtualScrollSizesAgg = [], virtualScrollSizes
275
+ let prevScrollStart,
276
+ prevToIndex,
277
+ localScrollViewSize,
278
+ virtualScrollSizesAgg = [],
279
+ virtualScrollSizes
241
280
 
242
281
  const virtualScrollPaddingBefore = ref(0)
243
282
  const virtualScrollPaddingAfter = ref(0)
@@ -249,37 +288,47 @@ export function useVirtualScroll ({
249
288
 
250
289
  const virtualScrollSliceRange = ref({ from: 0, to: 0 })
251
290
 
252
- const colspanAttr = computed(() => (props.tableColspan !== void 0 ? props.tableColspan : 100))
291
+ const colspanAttr = computed(() =>
292
+ props.tableColspan !== void 0 ? props.tableColspan : 100
293
+ )
253
294
 
254
295
  if (virtualScrollItemSizeComputed === void 0) {
255
296
  virtualScrollItemSizeComputed = computed(() => props.virtualScrollItemSize)
256
297
  }
257
298
 
258
- const needsReset = computed(() => virtualScrollItemSizeComputed.value + ';' + props.virtualScrollHorizontal)
299
+ const needsReset = computed(
300
+ () =>
301
+ virtualScrollItemSizeComputed.value + ';' + props.virtualScrollHorizontal
302
+ )
259
303
 
260
- const needsSliceRecalc = computed(() =>
261
- needsReset.value + ';' + props.virtualScrollSliceRatioBefore + ';' + props.virtualScrollSliceRatioAfter
304
+ const needsSliceRecalc = computed(
305
+ () =>
306
+ needsReset.value +
307
+ ';' +
308
+ props.virtualScrollSliceRatioBefore +
309
+ ';' +
310
+ props.virtualScrollSliceRatioAfter
262
311
  )
263
312
 
264
- watch(needsSliceRecalc, () => { setVirtualScrollSize() })
313
+ watch(needsSliceRecalc, () => {
314
+ setVirtualScrollSize()
315
+ })
265
316
  watch(needsReset, reset)
266
317
 
267
- function reset () {
318
+ function reset() {
268
319
  localResetVirtualScroll(prevToIndex, true)
269
320
  }
270
321
 
271
- function refresh (toIndex) {
322
+ function refresh(toIndex) {
272
323
  localResetVirtualScroll(toIndex === void 0 ? prevToIndex : toIndex)
273
324
  }
274
325
 
275
- function scrollTo (toIndex, edge) {
326
+ function scrollTo(toIndex, edge) {
276
327
  const scrollEl = getVirtualScrollTarget()
277
328
 
278
- if (
279
- scrollEl === void 0
280
- || scrollEl === null
281
- || scrollEl.nodeType === 8
282
- ) return
329
+ if (scrollEl === void 0 || scrollEl === null || scrollEl.nodeType === 8) {
330
+ return
331
+ }
283
332
 
284
333
  const scrollDetails = getScrollDetails(
285
334
  scrollEl,
@@ -292,28 +341,34 @@ export function useVirtualScroll ({
292
341
  props.virtualScrollStickySizeEnd
293
342
  )
294
343
 
295
- localScrollViewSize !== scrollDetails.scrollViewSize && setVirtualScrollSize(scrollDetails.scrollViewSize)
344
+ if (localScrollViewSize !== scrollDetails.scrollViewSize) {
345
+ setVirtualScrollSize(scrollDetails.scrollViewSize)
346
+ }
296
347
 
297
348
  setVirtualScrollSliceRange(
298
349
  scrollEl,
299
350
  scrollDetails,
300
- Math.min(virtualScrollLength.value - 1, Math.max(0, parseInt(toIndex, 10) || 0)),
351
+ Math.min(
352
+ virtualScrollLength.value - 1,
353
+ Math.max(0, parseInt(toIndex, 10) || 0)
354
+ ),
301
355
  0,
302
- scrollToEdges.indexOf(edge) !== -1 ? edge : (prevToIndex !== -1 && toIndex > prevToIndex ? 'end' : 'start')
356
+ scrollToEdges.indexOf(edge) !== -1
357
+ ? edge
358
+ : prevToIndex !== -1 && toIndex > prevToIndex
359
+ ? 'end'
360
+ : 'start'
303
361
  )
304
362
  }
305
363
 
306
- function localOnVirtualScrollEvt () {
364
+ function localOnVirtualScrollEvt() {
307
365
  const scrollEl = getVirtualScrollTarget()
308
366
 
309
- if (
310
- scrollEl === void 0
311
- || scrollEl === null
312
- || scrollEl.nodeType === 8
313
- ) return
367
+ if (scrollEl === void 0 || scrollEl === null || scrollEl.nodeType === 8) {
368
+ return
369
+ }
314
370
 
315
- const
316
- scrollDetails = getScrollDetails(
371
+ const scrollDetails = getScrollDetails(
317
372
  scrollEl,
318
373
  getVirtualScrollEl(),
319
374
  beforeRef.value,
@@ -324,7 +379,11 @@ export function useVirtualScroll ({
324
379
  props.virtualScrollStickySizeEnd
325
380
  ),
326
381
  listLastIndex = virtualScrollLength.value - 1,
327
- listEndOffset = scrollDetails.scrollMaxSize - scrollDetails.offsetStart - scrollDetails.offsetEnd - virtualScrollPaddingAfter.value
382
+ listEndOffset =
383
+ scrollDetails.scrollMaxSize -
384
+ scrollDetails.offsetStart -
385
+ scrollDetails.offsetEnd -
386
+ virtualScrollPaddingAfter.value
328
387
 
329
388
  if (prevScrollStart === scrollDetails.scrollStart) return
330
389
 
@@ -333,68 +392,89 @@ export function useVirtualScroll ({
333
392
  return
334
393
  }
335
394
 
336
- localScrollViewSize !== scrollDetails.scrollViewSize && setVirtualScrollSize(scrollDetails.scrollViewSize)
395
+ if (localScrollViewSize !== scrollDetails.scrollViewSize) {
396
+ setVirtualScrollSize(scrollDetails.scrollViewSize)
397
+ }
337
398
 
338
399
  updateVirtualScrollSizes(virtualScrollSliceRange.value.from)
339
400
 
340
- const scrollMaxStart = Math.floor(scrollDetails.scrollMaxSize
341
- - Math.max(scrollDetails.scrollViewSize, scrollDetails.offsetEnd)
342
- - Math.min(virtualScrollSizes[ listLastIndex ], scrollDetails.scrollViewSize / 2))
401
+ const scrollMaxStart = Math.floor(
402
+ scrollDetails.scrollMaxSize -
403
+ Math.max(scrollDetails.scrollViewSize, scrollDetails.offsetEnd) -
404
+ Math.min(
405
+ virtualScrollSizes[listLastIndex],
406
+ scrollDetails.scrollViewSize / 2
407
+ )
408
+ )
343
409
 
344
- if (scrollMaxStart > 0 && Math.ceil(scrollDetails.scrollStart) >= scrollMaxStart) {
410
+ if (
411
+ scrollMaxStart > 0 &&
412
+ Math.ceil(scrollDetails.scrollStart) >= scrollMaxStart
413
+ ) {
345
414
  setVirtualScrollSliceRange(
346
415
  scrollEl,
347
416
  scrollDetails,
348
417
  listLastIndex,
349
- scrollDetails.scrollMaxSize - scrollDetails.offsetEnd - virtualScrollSizesAgg.reduce(sumFn, 0)
418
+ scrollDetails.scrollMaxSize -
419
+ scrollDetails.offsetEnd -
420
+ virtualScrollSizesAgg.reduce(sumFn, 0)
350
421
  )
351
422
 
352
423
  return
353
424
  }
354
425
 
355
- let
356
- toIndex = 0,
426
+ let toIndex = 0,
357
427
  listOffset = scrollDetails.scrollStart - scrollDetails.offsetStart,
358
428
  offset = listOffset
359
429
 
360
- if (listOffset <= listEndOffset && listOffset + scrollDetails.scrollViewSize >= virtualScrollPaddingBefore.value) {
430
+ if (
431
+ listOffset <= listEndOffset &&
432
+ listOffset + scrollDetails.scrollViewSize >=
433
+ virtualScrollPaddingBefore.value
434
+ ) {
361
435
  listOffset -= virtualScrollPaddingBefore.value
362
436
  toIndex = virtualScrollSliceRange.value.from
363
437
  offset = listOffset
364
- }
365
- else {
366
- for (let j = 0; listOffset >= virtualScrollSizesAgg[ j ] && toIndex < listLastIndex; j++) {
367
- listOffset -= virtualScrollSizesAgg[ j ]
438
+ } else {
439
+ for (
440
+ let j = 0;
441
+ listOffset >= virtualScrollSizesAgg[j] && toIndex < listLastIndex;
442
+ j++
443
+ ) {
444
+ listOffset -= virtualScrollSizesAgg[j]
368
445
  toIndex += aggBucketSize
369
446
  }
370
447
  }
371
448
 
372
449
  while (listOffset > 0 && toIndex < listLastIndex) {
373
- listOffset -= virtualScrollSizes[ toIndex ]
450
+ listOffset -= virtualScrollSizes[toIndex]
374
451
  if (listOffset > -scrollDetails.scrollViewSize) {
375
452
  toIndex++
376
453
  offset = listOffset
377
- }
378
- else {
379
- offset = virtualScrollSizes[ toIndex ] + listOffset
454
+ } else {
455
+ offset = virtualScrollSizes[toIndex] + listOffset
380
456
  }
381
457
  }
382
458
 
383
- setVirtualScrollSliceRange(
384
- scrollEl,
385
- scrollDetails,
386
- toIndex,
387
- offset
388
- )
459
+ setVirtualScrollSliceRange(scrollEl, scrollDetails, toIndex, offset)
389
460
  }
390
461
 
391
- function setVirtualScrollSliceRange (scrollEl, scrollDetails, toIndex, offset, align) {
392
- const alignForce = typeof align === 'string' && align.indexOf('-force') !== -1
462
+ function setVirtualScrollSliceRange(
463
+ scrollEl,
464
+ scrollDetails,
465
+ toIndex,
466
+ offset,
467
+ align
468
+ ) {
469
+ const alignForce =
470
+ typeof align === 'string' && align.indexOf('-force') !== -1
393
471
  const alignEnd = alignForce === true ? align.replace('-force', '') : align
394
472
  const alignRange = alignEnd !== void 0 ? alignEnd : 'start'
395
473
 
396
- let
397
- from = Math.max(0, toIndex - virtualScrollSliceSizeComputed.value[ alignRange ]),
474
+ let from = Math.max(
475
+ 0,
476
+ toIndex - virtualScrollSliceSizeComputed.value[alignRange]
477
+ ),
398
478
  to = from + virtualScrollSliceSizeComputed.value.total
399
479
 
400
480
  if (to > virtualScrollLength.value) {
@@ -404,7 +484,9 @@ export function useVirtualScroll ({
404
484
 
405
485
  prevScrollStart = scrollDetails.scrollStart
406
486
 
407
- const rangeChanged = from !== virtualScrollSliceRange.value.from || to !== virtualScrollSliceRange.value.to
487
+ const rangeChanged =
488
+ from !== virtualScrollSliceRange.value.from ||
489
+ to !== virtualScrollSliceRange.value.to
408
490
 
409
491
  if (rangeChanged === false && alignEnd === void 0) {
410
492
  emitScroll(toIndex)
@@ -414,10 +496,10 @@ export function useVirtualScroll ({
414
496
  const { activeElement } = document
415
497
  const contentEl = contentRef.value
416
498
  if (
417
- rangeChanged === true
418
- && contentEl !== null
419
- && contentEl !== activeElement
420
- && contentEl.contains(activeElement) === true
499
+ rangeChanged === true &&
500
+ contentEl !== null &&
501
+ contentEl !== activeElement &&
502
+ contentEl.contains(activeElement) === true
421
503
  ) {
422
504
  contentEl.addEventListener('focusout', onBlurRefocusFn)
423
505
 
@@ -428,25 +510,51 @@ export function useVirtualScroll ({
428
510
 
429
511
  setOverflowAnchor(contentEl, toIndex - from)
430
512
 
431
- const sizeBefore = alignEnd !== void 0 ? virtualScrollSizes.slice(from, toIndex).reduce(sumFn, 0) : 0
513
+ const sizeBefore =
514
+ alignEnd !== void 0
515
+ ? virtualScrollSizes.slice(from, toIndex).reduce(sumFn, 0)
516
+ : 0
432
517
 
433
518
  if (rangeChanged === true) {
434
519
  // vue key matching algorithm works only if
435
520
  // the array of VNodes changes on only one of the ends
436
521
  // so we first change one end and then the other
437
522
 
438
- const tempTo = to >= virtualScrollSliceRange.value.from && from <= virtualScrollSliceRange.value.to
439
- ? virtualScrollSliceRange.value.to
440
- : to
523
+ const tempTo =
524
+ to >= virtualScrollSliceRange.value.from &&
525
+ from <= virtualScrollSliceRange.value.to
526
+ ? virtualScrollSliceRange.value.to
527
+ : to
441
528
 
442
529
  virtualScrollSliceRange.value = { from, to: tempTo }
443
- virtualScrollPaddingBefore.value = sumSize(virtualScrollSizesAgg, virtualScrollSizes, 0, from)
444
- virtualScrollPaddingAfter.value = sumSize(virtualScrollSizesAgg, virtualScrollSizes, to, virtualScrollLength.value)
530
+ virtualScrollPaddingBefore.value = sumSize(
531
+ virtualScrollSizesAgg,
532
+ virtualScrollSizes,
533
+ 0,
534
+ from
535
+ )
536
+ virtualScrollPaddingAfter.value = sumSize(
537
+ virtualScrollSizesAgg,
538
+ virtualScrollSizes,
539
+ to,
540
+ virtualScrollLength.value
541
+ )
445
542
 
446
543
  requestAnimationFrame(() => {
447
- if (virtualScrollSliceRange.value.to !== to && prevScrollStart === scrollDetails.scrollStart) {
448
- virtualScrollSliceRange.value = { from: virtualScrollSliceRange.value.from, to }
449
- virtualScrollPaddingAfter.value = sumSize(virtualScrollSizesAgg, virtualScrollSizes, to, virtualScrollLength.value)
544
+ if (
545
+ virtualScrollSliceRange.value.to !== to &&
546
+ prevScrollStart === scrollDetails.scrollStart
547
+ ) {
548
+ virtualScrollSliceRange.value = {
549
+ from: virtualScrollSliceRange.value.from,
550
+ to
551
+ }
552
+ virtualScrollPaddingAfter.value = sumSize(
553
+ virtualScrollSizesAgg,
554
+ virtualScrollSizes,
555
+ to,
556
+ virtualScrollLength.value
557
+ )
450
558
  }
451
559
  })
452
560
  }
@@ -460,10 +568,14 @@ export function useVirtualScroll ({
460
568
  updateVirtualScrollSizes(from)
461
569
  }
462
570
 
463
- const
464
- sizeAfter = virtualScrollSizes.slice(from, toIndex).reduce(sumFn, 0),
465
- posStart = sizeAfter + scrollDetails.offsetStart + virtualScrollPaddingBefore.value,
466
- posEnd = posStart + virtualScrollSizes[ toIndex ]
571
+ const sizeAfter = virtualScrollSizes
572
+ .slice(from, toIndex)
573
+ .reduce(sumFn, 0),
574
+ posStart =
575
+ sizeAfter +
576
+ scrollDetails.offsetStart +
577
+ virtualScrollPaddingBefore.value,
578
+ posEnd = posStart + virtualScrollSizes[toIndex]
467
579
 
468
580
  let scrollPosition = posStart + offset
469
581
 
@@ -471,13 +583,21 @@ export function useVirtualScroll ({
471
583
  const sizeDiff = sizeAfter - sizeBefore
472
584
  const scrollStart = scrollDetails.scrollStart + sizeDiff
473
585
 
474
- scrollPosition = alignForce !== true && scrollStart < posStart && posEnd < scrollStart + scrollDetails.scrollViewSize
475
- ? scrollStart
476
- : (
477
- alignEnd === 'end'
478
- ? posEnd - scrollDetails.scrollViewSize
479
- : posStart - (alignEnd === 'start' ? 0 : Math.round((scrollDetails.scrollViewSize - virtualScrollSizes[ toIndex ]) / 2))
480
- )
586
+ scrollPosition =
587
+ alignForce !== true &&
588
+ scrollStart < posStart &&
589
+ posEnd < scrollStart + scrollDetails.scrollViewSize
590
+ ? scrollStart
591
+ : alignEnd === 'end'
592
+ ? posEnd - scrollDetails.scrollViewSize
593
+ : posStart -
594
+ (alignEnd === 'start'
595
+ ? 0
596
+ : Math.round(
597
+ (scrollDetails.scrollViewSize -
598
+ virtualScrollSizes[toIndex]) /
599
+ 2
600
+ ))
481
601
  }
482
602
 
483
603
  prevScrollStart = scrollPosition
@@ -493,38 +613,43 @@ export function useVirtualScroll ({
493
613
  })
494
614
  }
495
615
 
496
- function updateVirtualScrollSizes (from) {
616
+ function updateVirtualScrollSizes(from) {
497
617
  const contentEl = contentRef.value
498
618
 
499
619
  if (contentEl) {
500
- const
501
- children = filterProto.call(
620
+ const children = filterProto.call(
502
621
  contentEl.children,
503
- el => el.classList && el.classList.contains('q-virtual-scroll--skip') === false
622
+ el =>
623
+ el.classList &&
624
+ el.classList.contains('q-virtual-scroll--skip') === false
504
625
  ),
505
626
  childrenLength = children.length,
506
- sizeFn = props.virtualScrollHorizontal === true
507
- ? el => el.getBoundingClientRect().width
508
- : el => el.offsetHeight
627
+ sizeFn =
628
+ props.virtualScrollHorizontal === true
629
+ ? el => el.getBoundingClientRect().width
630
+ : el => el.offsetHeight
509
631
 
510
- let
511
- index = from,
512
- size, diff
632
+ let index = from,
633
+ size,
634
+ diff
513
635
 
514
- for (let i = 0; i < childrenLength;) {
515
- size = sizeFn(children[ i ])
636
+ for (let i = 0; i < childrenLength; ) {
637
+ size = sizeFn(children[i])
516
638
  i++
517
639
 
518
- while (i < childrenLength && children[ i ].classList.contains('q-virtual-scroll--with-prev') === true) {
519
- size += sizeFn(children[ i ])
640
+ while (
641
+ i < childrenLength &&
642
+ children[i].classList.contains('q-virtual-scroll--with-prev') === true
643
+ ) {
644
+ size += sizeFn(children[i])
520
645
  i++
521
646
  }
522
647
 
523
- diff = size - virtualScrollSizes[ index ]
648
+ diff = size - virtualScrollSizes[index]
524
649
 
525
650
  if (diff !== 0) {
526
- virtualScrollSizes[ index ] += diff
527
- virtualScrollSizesAgg[ Math.floor(index / aggBucketSize) ] += diff
651
+ virtualScrollSizes[index] += diff
652
+ virtualScrollSizesAgg[Math.floor(index / aggBucketSize)] += diff
528
653
  }
529
654
 
530
655
  index++
@@ -532,12 +657,12 @@ export function useVirtualScroll ({
532
657
  }
533
658
  }
534
659
 
535
- function onBlurRefocusFn () {
660
+ function onBlurRefocusFn() {
536
661
  contentRef.value?.focus()
537
662
  }
538
663
 
539
- function localResetVirtualScroll (toIndex, fullReset) {
540
- const defaultSize = 1 * virtualScrollItemSizeComputed.value
664
+ function localResetVirtualScroll(toIndex, fullReset) {
665
+ const defaultSize = Number(virtualScrollItemSizeComputed.value)
541
666
 
542
667
  if (fullReset === true || Array.isArray(virtualScrollSizes) === false) {
543
668
  virtualScrollSizes = []
@@ -547,8 +672,12 @@ export function useVirtualScroll ({
547
672
 
548
673
  virtualScrollSizes.length = virtualScrollLength.value
549
674
 
550
- for (let i = virtualScrollLength.value - 1; i >= oldVirtualScrollSizesLength; i--) {
551
- virtualScrollSizes[ i ] = defaultSize
675
+ for (
676
+ let i = virtualScrollLength.value - 1;
677
+ i >= oldVirtualScrollSizesLength;
678
+ i--
679
+ ) {
680
+ virtualScrollSizes[i] = defaultSize
552
681
  }
553
682
 
554
683
  const jMax = Math.floor((virtualScrollLength.value - 1) / aggBucketSize)
@@ -557,7 +686,7 @@ export function useVirtualScroll ({
557
686
  let size = 0
558
687
  const iMax = Math.min((j + 1) * aggBucketSize, virtualScrollLength.value)
559
688
  for (let i = j * aggBucketSize; i < iMax; i++) {
560
- size += virtualScrollSizes[ i ]
689
+ size += virtualScrollSizes[i]
561
690
  }
562
691
  virtualScrollSizesAgg.push(size)
563
692
  }
@@ -565,19 +694,30 @@ export function useVirtualScroll ({
565
694
  prevToIndex = -1
566
695
  prevScrollStart = void 0
567
696
 
568
- virtualScrollPaddingBefore.value = sumSize(virtualScrollSizesAgg, virtualScrollSizes, 0, virtualScrollSliceRange.value.from)
569
- virtualScrollPaddingAfter.value = sumSize(virtualScrollSizesAgg, virtualScrollSizes, virtualScrollSliceRange.value.to, virtualScrollLength.value)
697
+ virtualScrollPaddingBefore.value = sumSize(
698
+ virtualScrollSizesAgg,
699
+ virtualScrollSizes,
700
+ 0,
701
+ virtualScrollSliceRange.value.from
702
+ )
703
+ virtualScrollPaddingAfter.value = sumSize(
704
+ virtualScrollSizesAgg,
705
+ virtualScrollSizes,
706
+ virtualScrollSliceRange.value.to,
707
+ virtualScrollLength.value
708
+ )
570
709
 
571
710
  if (toIndex >= 0) {
572
711
  updateVirtualScrollSizes(virtualScrollSliceRange.value.from)
573
- nextTick(() => { scrollTo(toIndex) })
574
- }
575
- else {
712
+ nextTick(() => {
713
+ scrollTo(toIndex)
714
+ })
715
+ } else {
576
716
  onVirtualScrollEvt()
577
717
  }
578
718
  }
579
719
 
580
- function setVirtualScrollSize (scrollViewSize) {
720
+ function setVirtualScrollSize(scrollViewSize) {
581
721
  if (scrollViewSize === void 0 && typeof window !== 'undefined') {
582
722
  const scrollEl = getVirtualScrollTarget()
583
723
 
@@ -597,17 +737,24 @@ export function useVirtualScroll ({
597
737
 
598
738
  localScrollViewSize = scrollViewSize
599
739
 
600
- const virtualScrollSliceRatioBefore = parseFloat(props.virtualScrollSliceRatioBefore) || 0
601
- const virtualScrollSliceRatioAfter = parseFloat(props.virtualScrollSliceRatioAfter) || 0
602
- const multiplier = 1 + virtualScrollSliceRatioBefore + virtualScrollSliceRatioAfter
603
- const view = scrollViewSize === void 0 || scrollViewSize <= 0
604
- ? 1
605
- : Math.ceil(scrollViewSize / virtualScrollItemSizeComputed.value)
740
+ const virtualScrollSliceRatioBefore =
741
+ parseFloat(props.virtualScrollSliceRatioBefore) || 0
742
+ const virtualScrollSliceRatioAfter =
743
+ parseFloat(props.virtualScrollSliceRatioAfter) || 0
744
+ const multiplier =
745
+ 1 + virtualScrollSliceRatioBefore + virtualScrollSliceRatioAfter
746
+ const view =
747
+ scrollViewSize === void 0 || scrollViewSize <= 0
748
+ ? 1
749
+ : Math.ceil(scrollViewSize / virtualScrollItemSizeComputed.value)
606
750
 
607
751
  const baseSize = Math.max(
608
752
  1,
609
753
  view,
610
- Math.ceil((props.virtualScrollSliceSize > 0 ? props.virtualScrollSliceSize : 10) / multiplier)
754
+ Math.ceil(
755
+ (props.virtualScrollSliceSize > 0 ? props.virtualScrollSliceSize : 10) /
756
+ multiplier
757
+ )
611
758
  )
612
759
 
613
760
  virtualScrollSliceSizeComputed.value = {
@@ -619,71 +766,99 @@ export function useVirtualScroll ({
619
766
  }
620
767
  }
621
768
 
622
- function padVirtualScroll (tag, content) {
623
- const paddingSize = props.virtualScrollHorizontal === true ? 'width' : 'height'
769
+ function padVirtualScroll(tag, content) {
770
+ const paddingSize =
771
+ props.virtualScrollHorizontal === true ? 'width' : 'height'
624
772
  const style = {
625
- [ '--q-virtual-scroll-item-' + paddingSize ]: virtualScrollItemSizeComputed.value + 'px'
773
+ ['--q-virtual-scroll-item-' + paddingSize]:
774
+ virtualScrollItemSizeComputed.value + 'px'
626
775
  }
627
776
 
628
777
  return [
629
778
  tag === 'tbody'
630
- ? h(tag, {
631
- class: 'q-virtual-scroll__padding',
632
- key: 'before',
633
- ref: beforeRef
634
- }, [
635
- h('tr', [
636
- h('td', {
637
- style: { [ paddingSize ]: `${ virtualScrollPaddingBefore.value }px`, ...style },
638
- colspan: colspanAttr.value
639
- })
640
- ])
641
- ])
779
+ ? h(
780
+ tag,
781
+ {
782
+ class: 'q-virtual-scroll__padding',
783
+ key: 'before',
784
+ ref: beforeRef
785
+ },
786
+ [
787
+ h('tr', [
788
+ h('td', {
789
+ style: {
790
+ [paddingSize]: `${virtualScrollPaddingBefore.value}px`,
791
+ ...style
792
+ },
793
+ colspan: colspanAttr.value
794
+ })
795
+ ])
796
+ ]
797
+ )
642
798
  : h(tag, {
643
- class: 'q-virtual-scroll__padding',
644
- key: 'before',
645
- ref: beforeRef,
646
- style: { [ paddingSize ]: `${ virtualScrollPaddingBefore.value }px`, ...style }
647
- }),
648
-
649
- h(tag, {
650
- class: 'q-virtual-scroll__content',
651
- key: 'content',
652
- ref: contentRef,
653
- tabindex: -1
654
- }, content.flat()),
799
+ class: 'q-virtual-scroll__padding',
800
+ key: 'before',
801
+ ref: beforeRef,
802
+ style: {
803
+ [paddingSize]: `${virtualScrollPaddingBefore.value}px`,
804
+ ...style
805
+ }
806
+ }),
807
+
808
+ h(
809
+ tag,
810
+ {
811
+ class: 'q-virtual-scroll__content',
812
+ key: 'content',
813
+ ref: contentRef,
814
+ tabindex: -1
815
+ },
816
+ content.flat()
817
+ ),
655
818
 
656
819
  tag === 'tbody'
657
- ? h(tag, {
658
- class: 'q-virtual-scroll__padding',
659
- key: 'after',
660
- ref: afterRef
661
- }, [
662
- h('tr', [
663
- h('td', {
664
- style: { [ paddingSize ]: `${ virtualScrollPaddingAfter.value }px`, ...style },
665
- colspan: colspanAttr.value
666
- })
667
- ])
668
- ])
820
+ ? h(
821
+ tag,
822
+ {
823
+ class: 'q-virtual-scroll__padding',
824
+ key: 'after',
825
+ ref: afterRef
826
+ },
827
+ [
828
+ h('tr', [
829
+ h('td', {
830
+ style: {
831
+ [paddingSize]: `${virtualScrollPaddingAfter.value}px`,
832
+ ...style
833
+ },
834
+ colspan: colspanAttr.value
835
+ })
836
+ ])
837
+ ]
838
+ )
669
839
  : h(tag, {
670
- class: 'q-virtual-scroll__padding',
671
- key: 'after',
672
- ref: afterRef,
673
- style: { [ paddingSize ]: `${ virtualScrollPaddingAfter.value }px`, ...style }
674
- })
840
+ class: 'q-virtual-scroll__padding',
841
+ key: 'after',
842
+ ref: afterRef,
843
+ style: {
844
+ [paddingSize]: `${virtualScrollPaddingAfter.value}px`,
845
+ ...style
846
+ }
847
+ })
675
848
  ]
676
849
  }
677
850
 
678
- function emitScroll (index) {
851
+ function emitScroll(index) {
679
852
  if (prevToIndex !== index) {
680
- props.onVirtualScroll !== void 0 && emit('virtualScroll', {
681
- index,
682
- from: virtualScrollSliceRange.value.from,
683
- to: virtualScrollSliceRange.value.to - 1,
684
- direction: index < prevToIndex ? 'decrease' : 'increase',
685
- ref: proxy
686
- })
853
+ if (props.onVirtualScroll !== void 0) {
854
+ emit('virtualScroll', {
855
+ index,
856
+ from: virtualScrollSliceRange.value.from,
857
+ to: virtualScrollSliceRange.value.to - 1,
858
+ direction: index < prevToIndex ? 'decrease' : 'increase',
859
+ ref: proxy
860
+ })
861
+ }
687
862
 
688
863
  prevToIndex = index
689
864
  }
@@ -710,22 +885,28 @@ export function useVirtualScroll ({
710
885
 
711
886
  const scrollEl = getVirtualScrollTarget()
712
887
 
713
- if (prevScrollStart !== void 0 && scrollEl !== void 0 && scrollEl !== null && scrollEl.nodeType !== 8) {
888
+ if (
889
+ prevScrollStart !== void 0 &&
890
+ scrollEl !== void 0 &&
891
+ scrollEl !== null &&
892
+ scrollEl.nodeType !== 8
893
+ ) {
714
894
  setScroll(
715
895
  scrollEl,
716
896
  prevScrollStart,
717
897
  props.virtualScrollHorizontal,
718
898
  $q.lang.rtl
719
899
  )
720
- }
721
- else {
900
+ } else {
722
901
  scrollTo(prevToIndex)
723
902
  }
724
903
  })
725
904
 
726
- __QUASAR_SSR__ || onBeforeUnmount(() => {
727
- onVirtualScrollEvt.cancel()
728
- })
905
+ if (!__QUASAR_SSR__) {
906
+ onBeforeUnmount(() => {
907
+ onVirtualScrollEvt.cancel()
908
+ })
909
+ }
729
910
 
730
911
  // expose public methods
731
912
  Object.assign(proxy, { scrollTo, reset, refresh })