quasar 2.19.2 → 2.20.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 (562) hide show
  1. package/dist/api/Lang.json +1 -1
  2. package/dist/api/QCarouselSlide.json +1 -1
  3. package/dist/api/QChatMessage.json +1 -1
  4. package/dist/api/QImg.json +1 -1
  5. package/dist/api/QParallax.json +1 -1
  6. package/dist/api/QRange.json +1 -1
  7. package/dist/api/QSlider.json +1 -1
  8. package/dist/api/QTimelineEntry.json +1 -1
  9. package/dist/api/QTree.json +1 -1
  10. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  11. package/dist/icon-set/eva-icons.umd.prod.js +2 -2
  12. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +5 -5
  13. package/dist/icon-set/fontawesome-v5.umd.prod.js +5 -5
  14. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +5 -5
  15. package/dist/icon-set/fontawesome-v6.umd.prod.js +5 -5
  16. package/dist/icon-set/fontawesome-v7-pro.umd.prod.js +6 -0
  17. package/dist/icon-set/fontawesome-v7.umd.prod.js +6 -0
  18. package/dist/icon-set/ionicons-v4.umd.prod.js +2 -2
  19. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  20. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  21. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  22. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  23. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  24. package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
  25. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  26. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  27. package/dist/icon-set/mdi-v3.umd.prod.js +5 -5
  28. package/dist/icon-set/mdi-v4.umd.prod.js +5 -5
  29. package/dist/icon-set/mdi-v5.umd.prod.js +5 -5
  30. package/dist/icon-set/mdi-v6.umd.prod.js +5 -5
  31. package/dist/icon-set/mdi-v7.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-eva-icons.umd.prod.js +2 -2
  34. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +5 -5
  35. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +5 -5
  36. package/dist/icon-set/svg-fontawesome-v7.umd.prod.js +6 -0
  37. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +2 -2
  38. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +5 -5
  39. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +5 -5
  40. package/dist/icon-set/svg-ionicons-v7.umd.prod.js +6 -0
  41. package/dist/icon-set/svg-ionicons-v8.umd.prod.js +6 -0
  42. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  43. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  44. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  45. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  46. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  47. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +2 -2
  48. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +2 -2
  49. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +2 -2
  50. package/dist/icon-set/svg-mdi-v6.umd.prod.js +5 -5
  51. package/dist/icon-set/svg-mdi-v7.umd.prod.js +1 -1
  52. package/dist/icon-set/svg-themify.umd.prod.js +2 -2
  53. package/dist/icon-set/themify.umd.prod.js +2 -2
  54. package/dist/lang/ar-TN.umd.prod.js +2 -2
  55. package/dist/lang/ar.umd.prod.js +2 -2
  56. package/dist/lang/az-Latn.umd.prod.js +2 -2
  57. package/dist/lang/bg.umd.prod.js +2 -2
  58. package/dist/lang/bn.umd.prod.js +2 -2
  59. package/dist/lang/bs-BA.umd.prod.js +2 -2
  60. package/dist/lang/ca.umd.prod.js +2 -2
  61. package/dist/lang/cs.umd.prod.js +2 -2
  62. package/dist/lang/da.umd.prod.js +2 -2
  63. package/dist/lang/de-CH.umd.prod.js +2 -2
  64. package/dist/lang/de-DE.umd.prod.js +2 -2
  65. package/dist/lang/de.umd.prod.js +2 -2
  66. package/dist/lang/el.umd.prod.js +2 -2
  67. package/dist/lang/en-GB.umd.prod.js +2 -2
  68. package/dist/lang/en-US.umd.prod.js +2 -2
  69. package/dist/lang/eo.umd.prod.js +2 -2
  70. package/dist/lang/es.umd.prod.js +2 -2
  71. package/dist/lang/et.umd.prod.js +2 -2
  72. package/dist/lang/eu.umd.prod.js +2 -2
  73. package/dist/lang/fa-IR.umd.prod.js +2 -2
  74. package/dist/lang/fa.umd.prod.js +2 -2
  75. package/dist/lang/fi.umd.prod.js +2 -2
  76. package/dist/lang/fr.umd.prod.js +2 -2
  77. package/dist/lang/gn.umd.prod.js +2 -2
  78. package/dist/lang/he.umd.prod.js +2 -2
  79. package/dist/lang/hi.umd.prod.js +2 -2
  80. package/dist/lang/hr.umd.prod.js +2 -2
  81. package/dist/lang/hu.umd.prod.js +2 -2
  82. package/dist/lang/id.umd.prod.js +2 -2
  83. package/dist/lang/is.umd.prod.js +2 -2
  84. package/dist/lang/it.umd.prod.js +2 -2
  85. package/dist/lang/ja.umd.prod.js +2 -2
  86. package/dist/lang/kk.umd.prod.js +2 -2
  87. package/dist/lang/km.umd.prod.js +2 -2
  88. package/dist/lang/ko-KR.umd.prod.js +1 -1
  89. package/dist/lang/kur-CKB.umd.prod.js +2 -2
  90. package/dist/lang/lt.umd.prod.js +2 -2
  91. package/dist/lang/lu.umd.prod.js +2 -2
  92. package/dist/lang/lv.umd.prod.js +2 -2
  93. package/dist/lang/mk.umd.prod.js +2 -2
  94. package/dist/lang/ml.umd.prod.js +2 -2
  95. package/dist/lang/mm.umd.prod.js +2 -2
  96. package/dist/lang/ms-MY.umd.prod.js +2 -2
  97. package/dist/lang/ms.umd.prod.js +2 -2
  98. package/dist/lang/my.umd.prod.js +2 -2
  99. package/dist/lang/nb-NO.umd.prod.js +2 -2
  100. package/dist/lang/nl.umd.prod.js +2 -2
  101. package/dist/lang/pl.umd.prod.js +2 -2
  102. package/dist/lang/pt-BR.umd.prod.js +2 -2
  103. package/dist/lang/pt.umd.prod.js +2 -2
  104. package/dist/lang/ro.umd.prod.js +2 -2
  105. package/dist/lang/ru.umd.prod.js +2 -2
  106. package/dist/lang/sk.umd.prod.js +2 -2
  107. package/dist/lang/sl.umd.prod.js +2 -2
  108. package/dist/lang/sm.umd.prod.js +2 -2
  109. package/dist/lang/sq.umd.prod.js +2 -2
  110. package/dist/lang/sr-CYR.umd.prod.js +2 -2
  111. package/dist/lang/sr.umd.prod.js +2 -2
  112. package/dist/lang/sv.umd.prod.js +2 -2
  113. package/dist/lang/ta.umd.prod.js +2 -2
  114. package/dist/lang/th.umd.prod.js +2 -2
  115. package/dist/lang/tl.umd.prod.js +2 -2
  116. package/dist/lang/tr.umd.prod.js +2 -2
  117. package/dist/lang/ug.umd.prod.js +2 -2
  118. package/dist/lang/uk.umd.prod.js +2 -2
  119. package/dist/lang/ur-PK.umd.prod.js +2 -2
  120. package/dist/lang/uz-Cyrl.umd.prod.js +2 -2
  121. package/dist/lang/uz-Latn.umd.prod.js +2 -2
  122. package/dist/lang/vi.umd.prod.js +2 -2
  123. package/dist/lang/zh-CN.umd.prod.js +2 -2
  124. package/dist/lang/zh-TW.umd.prod.js +2 -2
  125. package/dist/quasar.client.js +2615 -2603
  126. package/dist/quasar.sass +1 -1
  127. package/dist/quasar.server.prod.cjs +11 -11
  128. package/dist/quasar.server.prod.js +25 -25
  129. package/dist/quasar.umd.js +2610 -2598
  130. package/dist/quasar.umd.prod.js +23 -23
  131. package/dist/types/api/dialog.d.ts +1 -1
  132. package/dist/types/api/qnotify.d.ts +1 -1
  133. package/dist/types/api/qpopupproxy.d.ts +1 -1
  134. package/dist/types/feature-flag.d.ts +2 -2
  135. package/dist/types/globals.d.ts +3 -3
  136. package/dist/types/{extras/icon-set.d.ts → icon-set.d.ts} +21 -16
  137. package/dist/types/index.d.ts +1 -1
  138. package/dist/types/plugin.d.ts +1 -1
  139. package/dist/types/shim-icon-set.d.ts +1 -2
  140. package/dist/types/shim-lang.d.ts +1 -2
  141. package/dist/types/ts-helpers.d.ts +3 -3
  142. package/dist/types/tsconfig.json +1 -1
  143. package/dist/types/utils/scroll.d.ts +1 -1
  144. package/dist/types/utils.d.ts +2 -2
  145. package/dist/web-types/web-types.json +1 -1
  146. package/icon-set/bootstrap-icons.js +1 -1
  147. package/icon-set/eva-icons.js +23 -23
  148. package/icon-set/fontawesome-v7-pro.js +128 -0
  149. package/icon-set/fontawesome-v7.js +128 -0
  150. package/icon-set/ionicons-v4.js +17 -17
  151. package/icon-set/svg-bootstrap-icons.js +1 -1
  152. package/icon-set/svg-eva-icons.js +23 -23
  153. package/icon-set/svg-fontawesome-v5.js +1 -1
  154. package/icon-set/svg-fontawesome-v7.js +197 -0
  155. package/icon-set/svg-ionicons-v4.js +17 -17
  156. package/icon-set/svg-ionicons-v5.js +1 -1
  157. package/icon-set/svg-ionicons-v6.js +1 -1
  158. package/icon-set/svg-ionicons-v7.js +224 -0
  159. package/icon-set/svg-ionicons-v8.js +224 -0
  160. package/icon-set/svg-themify.js +7 -7
  161. package/icon-set/themify.js +7 -7
  162. package/lang/ar-TN.js +1 -1
  163. package/lang/ar.js +1 -1
  164. package/lang/az-Latn.js +1 -1
  165. package/lang/bg.js +1 -1
  166. package/lang/bn.js +1 -1
  167. package/lang/bs-BA.js +1 -1
  168. package/lang/ca.js +1 -1
  169. package/lang/cs.js +11 -6
  170. package/lang/da.js +1 -1
  171. package/lang/de-CH.js +1 -1
  172. package/lang/de-DE.js +1 -1
  173. package/lang/de.js +1 -1
  174. package/lang/el.js +1 -1
  175. package/lang/en-GB.js +1 -1
  176. package/lang/en-US.js +1 -1
  177. package/lang/eo.js +1 -1
  178. package/lang/es.js +1 -1
  179. package/lang/et.js +1 -1
  180. package/lang/eu.js +1 -1
  181. package/lang/fa-IR.js +1 -1
  182. package/lang/fa.js +1 -1
  183. package/lang/fi.js +1 -1
  184. package/lang/fr.js +1 -1
  185. package/lang/gn.js +1 -1
  186. package/lang/he.js +1 -1
  187. package/lang/hi.js +1 -1
  188. package/lang/hr.js +1 -1
  189. package/lang/hu.js +1 -1
  190. package/lang/id.js +1 -1
  191. package/lang/is.js +1 -1
  192. package/lang/it.js +9 -9
  193. package/lang/ja.js +1 -1
  194. package/lang/kk.js +1 -1
  195. package/lang/km.js +1 -1
  196. package/lang/kur-CKB.js +1 -1
  197. package/lang/lt.js +2 -2
  198. package/lang/lu.js +1 -1
  199. package/lang/lv.js +1 -1
  200. package/lang/mk.js +1 -1
  201. package/lang/ml.js +1 -1
  202. package/lang/mm.js +1 -1
  203. package/lang/ms-MY.js +1 -1
  204. package/lang/ms.js +1 -1
  205. package/lang/my.js +1 -1
  206. package/lang/nb-NO.js +1 -1
  207. package/lang/nl.js +1 -1
  208. package/lang/pl.js +1 -1
  209. package/lang/pt-BR.js +1 -1
  210. package/lang/pt.js +1 -1
  211. package/lang/ro.js +1 -1
  212. package/lang/ru.js +1 -1
  213. package/lang/sk.js +1 -1
  214. package/lang/sl.js +1 -1
  215. package/lang/sm.js +1 -1
  216. package/lang/sq.js +1 -1
  217. package/lang/sr-CYR.js +1 -1
  218. package/lang/sr.js +1 -1
  219. package/lang/sv.js +1 -1
  220. package/lang/ta.js +1 -1
  221. package/lang/th.js +1 -1
  222. package/lang/tl.js +1 -1
  223. package/lang/tr.js +1 -1
  224. package/lang/ug.js +1 -1
  225. package/lang/uk.js +1 -1
  226. package/lang/ur-PK.js +1 -1
  227. package/lang/uz-Cyrl.js +1 -1
  228. package/lang/uz-Latn.js +1 -1
  229. package/lang/vi.js +1 -1
  230. package/lang/zh-CN.js +1 -1
  231. package/lang/zh-TW.js +1 -1
  232. package/package.json +13 -17
  233. package/src/components/ajax-bar/QAjaxBar.js +22 -25
  234. package/src/components/avatar/QAvatar.js +3 -3
  235. package/src/components/avatar/QAvatar.test.js +2 -2
  236. package/src/components/badge/QBadge.js +9 -10
  237. package/src/components/badge/QBadge.test.js +2 -2
  238. package/src/components/banner/QBanner.js +6 -6
  239. package/src/components/banner/QBanner.test.js +2 -2
  240. package/src/components/bar/QBar.js +3 -3
  241. package/src/components/bar/QBar.test.js +2 -2
  242. package/src/components/breadcrumbs/QBreadcrumbs.js +5 -4
  243. package/src/components/breadcrumbs/QBreadcrumbs.test.js +3 -3
  244. package/src/components/breadcrumbs/QBreadcrumbsEl.js +4 -4
  245. package/src/components/breadcrumbs/QBreadcrumbsEl.test.js +2 -2
  246. package/src/components/btn/QBtn.js +39 -44
  247. package/src/components/btn/QBtn.test.js +2 -2
  248. package/src/components/btn/use-btn.js +34 -47
  249. package/src/components/btn/use-btn.test.js +5 -5
  250. package/src/components/btn-dropdown/QBtnDropdown.js +15 -16
  251. package/src/components/btn-group/QBtnGroup.js +3 -3
  252. package/src/components/btn-toggle/QBtnToggle.js +5 -9
  253. package/src/components/card/QCard.js +5 -5
  254. package/src/components/card/QCardActions.js +2 -2
  255. package/src/components/card/QCardSection.js +2 -2
  256. package/src/components/carousel/QCarousel.js +32 -38
  257. package/src/components/carousel/QCarouselControl.js +1 -1
  258. package/src/components/carousel/QCarouselSlide.js +1 -1
  259. package/src/components/carousel/QCarouselSlide.json +1 -1
  260. package/src/components/chat/QChatMessage.js +13 -14
  261. package/src/components/chat/QChatMessage.json +1 -1
  262. package/src/components/checkbox/QCheckbox.js +5 -5
  263. package/src/components/checkbox/use-checkbox.js +38 -50
  264. package/src/components/chip/QChip.js +26 -34
  265. package/src/components/chip/QChip.test.js +2 -2
  266. package/src/components/circular-progress/QCircularProgress.js +8 -11
  267. package/src/components/circular-progress/circular-progress.test.js +1 -1
  268. package/src/components/color/QColor.js +75 -98
  269. package/src/components/date/QDate.js +128 -140
  270. package/src/components/date/use-datetime.js +3 -6
  271. package/src/components/dialog/QDialog.js +44 -50
  272. package/src/components/dialog/QDialog.test.js +7 -7
  273. package/src/components/drawer/QDrawer.js +110 -152
  274. package/src/components/editor/QEditor.js +44 -37
  275. package/src/components/editor/editor-caret.js +27 -31
  276. package/src/components/editor/editor-utils.js +9 -5
  277. package/src/components/expansion-item/QExpansionItem.js +36 -48
  278. package/src/components/fab/QFab.js +11 -11
  279. package/src/components/fab/QFabAction.js +2 -4
  280. package/src/components/fab/use-fab.js +6 -7
  281. package/src/components/field/QField.js +2 -2
  282. package/src/components/file/QFile.js +26 -33
  283. package/src/components/footer/QFooter.js +40 -53
  284. package/src/components/form/QForm.js +37 -43
  285. package/src/components/form/QFormChildMixin.js +3 -3
  286. package/src/components/header/QHeader.js +35 -47
  287. package/src/components/icon/QIcon.js +19 -19
  288. package/src/components/img/QImg.js +24 -24
  289. package/src/components/img/QImg.json +3 -3
  290. package/src/components/infinite-scroll/QInfiniteScroll.js +38 -52
  291. package/src/components/inner-loading/QInnerLoading.js +3 -3
  292. package/src/components/input/QInput.js +52 -52
  293. package/src/components/input/use-mask.js +56 -54
  294. package/src/components/intersection/QIntersection.js +6 -8
  295. package/src/components/item/QItem.js +20 -30
  296. package/src/components/item/QItemLabel.js +5 -7
  297. package/src/components/item/QItemSection.js +6 -6
  298. package/src/components/item/QList.js +6 -6
  299. package/src/components/item/QList.test.js +2 -2
  300. package/src/components/knob/QKnob.js +39 -44
  301. package/src/components/layout/QLayout.js +30 -34
  302. package/src/components/linear-progress/QLinearProgress.js +14 -23
  303. package/src/components/markup-table/QMarkupTable.js +7 -9
  304. package/src/components/menu/QMenu.js +36 -37
  305. package/src/components/no-ssr/QNoSsr.js +1 -1
  306. package/src/components/option-group/QOptionGroup.js +5 -5
  307. package/src/components/page/QPage.js +16 -18
  308. package/src/components/page/QPageContainer.js +9 -9
  309. package/src/components/page-scroller/QPageScroller.js +11 -13
  310. package/src/components/page-sticky/use-page-sticky.js +18 -18
  311. package/src/components/pagination/QPagination.js +24 -26
  312. package/src/components/parallax/QParallax.js +15 -9
  313. package/src/components/parallax/QParallax.json +1 -1
  314. package/src/components/popup-edit/QPopupEdit.js +10 -13
  315. package/src/components/popup-proxy/QPopupProxy.js +5 -7
  316. package/src/components/pull-to-refresh/QPullToRefresh.js +15 -17
  317. package/src/components/radio/QRadio.js +24 -29
  318. package/src/components/range/QRange.js +33 -37
  319. package/src/components/rating/QRating.js +59 -61
  320. package/src/components/resize-observer/QResizeObserver.js +55 -62
  321. package/src/components/scroll-area/QScrollArea.js +32 -36
  322. package/src/components/scroll-observer/QScrollObserver.js +3 -3
  323. package/src/components/select/QSelect.js +208 -269
  324. package/src/components/separator/QSeparator.js +7 -10
  325. package/src/components/skeleton/QSkeleton.js +4 -4
  326. package/src/components/slide-item/QSlideItem.js +7 -7
  327. package/src/components/slide-transition/QSlideTransition.js +4 -4
  328. package/src/components/slider/QSlider.js +13 -16
  329. package/src/components/slider/use-slider.js +53 -81
  330. package/src/components/slider/use-slider.json +3 -3
  331. package/src/components/space/QSpace.test.js +1 -1
  332. package/src/components/spinner/QSpinner.test.js +2 -2
  333. package/src/components/spinner/QSpinnerAudio.test.js +2 -2
  334. package/src/components/spinner/QSpinnerBall.test.js +2 -2
  335. package/src/components/spinner/QSpinnerBars.test.js +2 -2
  336. package/src/components/spinner/QSpinnerBox.test.js +2 -2
  337. package/src/components/spinner/QSpinnerClock.test.js +2 -2
  338. package/src/components/spinner/QSpinnerComment.test.js +2 -2
  339. package/src/components/spinner/QSpinnerCube.test.js +2 -2
  340. package/src/components/spinner/QSpinnerDots.test.js +2 -2
  341. package/src/components/spinner/QSpinnerFacebook.test.js +2 -2
  342. package/src/components/spinner/QSpinnerGears.test.js +2 -2
  343. package/src/components/spinner/QSpinnerGrid.test.js +2 -2
  344. package/src/components/spinner/QSpinnerHearts.test.js +2 -2
  345. package/src/components/spinner/QSpinnerHourglass.test.js +2 -2
  346. package/src/components/spinner/QSpinnerInfinity.test.js +2 -2
  347. package/src/components/spinner/QSpinnerIos.test.js +2 -2
  348. package/src/components/spinner/QSpinnerOrbit.test.js +2 -2
  349. package/src/components/spinner/QSpinnerOval.test.js +2 -2
  350. package/src/components/spinner/QSpinnerPie.test.js +2 -2
  351. package/src/components/spinner/QSpinnerPuff.test.js +2 -2
  352. package/src/components/spinner/QSpinnerRadio.test.js +2 -2
  353. package/src/components/spinner/QSpinnerRings.test.js +2 -2
  354. package/src/components/spinner/QSpinnerTail.test.js +2 -2
  355. package/src/components/spinner/use-spinner.test.js +1 -1
  356. package/src/components/splitter/QSplitter.js +19 -21
  357. package/src/components/stepper/QStep.js +12 -14
  358. package/src/components/stepper/QStepper.js +13 -14
  359. package/src/components/stepper/StepHeader.js +34 -35
  360. package/src/components/tab-panels/QTabPanels.js +3 -3
  361. package/src/components/table/QTable.js +82 -100
  362. package/src/components/table/QTd.js +3 -3
  363. package/src/components/table/QTh.js +5 -6
  364. package/src/components/table/QTr.js +3 -3
  365. package/src/components/table/table-column-selection.js +4 -6
  366. package/src/components/table/table-filter.js +2 -2
  367. package/src/components/table/table-pagination.js +14 -20
  368. package/src/components/table/table-row-expand.js +3 -3
  369. package/src/components/table/table-row-selection.js +10 -20
  370. package/src/components/table/table-sort.js +7 -7
  371. package/src/components/tabs/QRouteTab.js +1 -1
  372. package/src/components/tabs/QTab.js +1 -1
  373. package/src/components/tabs/QTabs.js +82 -109
  374. package/src/components/tabs/use-tab.js +36 -38
  375. package/src/components/time/QTime.js +109 -132
  376. package/src/components/timeline/QTimeline.js +7 -4
  377. package/src/components/timeline/QTimelineEntry.js +7 -6
  378. package/src/components/timeline/QTimelineEntry.json +1 -1
  379. package/src/components/toggle/QToggle.js +6 -8
  380. package/src/components/toolbar/QToolbar.js +2 -2
  381. package/src/components/toolbar/QToolbar.test.js +2 -2
  382. package/src/components/toolbar/QToolbarTitle.js +2 -4
  383. package/src/components/toolbar/QToolbarTitle.test.js +2 -2
  384. package/src/components/tooltip/QTooltip.js +27 -28
  385. package/src/components/tree/QTree.js +96 -114
  386. package/src/components/tree/QTree.json +1 -1
  387. package/src/components/uploader/QUploaderAddTrigger.js +2 -2
  388. package/src/components/uploader/uploader-core.js +44 -51
  389. package/src/components/uploader/xhr-uploader-plugin.js +13 -17
  390. package/src/components/video/QVideo.js +1 -1
  391. package/src/components/video/QVideo.test.js +2 -2
  392. package/src/components/virtual-scroll/QVirtualScroll.js +9 -10
  393. package/src/components/virtual-scroll/use-virtual-scroll.js +42 -50
  394. package/src/composables/private.use-align/use-align.js +2 -2
  395. package/src/composables/private.use-align/use-align.test.js +1 -1
  396. package/src/composables/private.use-anchor/use-anchor.js +23 -32
  397. package/src/composables/private.use-dark/use-dark.test.js +1 -1
  398. package/src/composables/private.use-field/use-field.js +79 -99
  399. package/src/composables/private.use-file/use-file-dom-props.js +2 -2
  400. package/src/composables/private.use-file/use-file.js +27 -27
  401. package/src/composables/private.use-fullscreen/use-fullscreen.js +15 -20
  402. package/src/composables/private.use-history/use-history.js +2 -2
  403. package/src/composables/private.use-history/use-history.test.js +1 -1
  404. package/src/composables/private.use-key-composition/use-key-composition.js +11 -12
  405. package/src/composables/private.use-model-toggle/use-model-toggle.js +16 -25
  406. package/src/composables/private.use-panel/use-panel.js +25 -27
  407. package/src/composables/private.use-portal/use-portal.js +11 -9
  408. package/src/composables/private.use-prevent-scroll/use-prevent-scroll.js +1 -4
  409. package/src/composables/private.use-ratio/use-ratio.js +6 -5
  410. package/src/composables/private.use-ratio/use-ratio.test.js +1 -1
  411. package/src/composables/private.use-refocus-target/use-refocus-target.js +2 -4
  412. package/src/composables/private.use-router-link/use-router-link.js +44 -55
  413. package/src/composables/private.use-scroll-target/use-scroll-target.js +1 -1
  414. package/src/composables/private.use-size/use-size.test.js +1 -1
  415. package/src/composables/private.use-transition/use-transition.test.js +1 -1
  416. package/src/composables/private.use-validate/use-validate.js +23 -36
  417. package/src/composables/use-dialog-plugin-component/use-dialog-plugin-component.js +1 -1
  418. package/src/composables/use-form/private.use-form.js +1 -1
  419. package/src/composables/use-form/private.use-form.test.js +3 -3
  420. package/src/composables/use-form/use-form-child.js +7 -7
  421. package/src/composables/use-hydration/use-hydration.js +2 -2
  422. package/src/composables/use-hydration/use-hydration.test.js +1 -1
  423. package/src/composables/use-id/use-id.js +4 -8
  424. package/src/composables/use-id/use-id.test.js +1 -1
  425. package/src/composables/use-interval/use-interval.js +3 -3
  426. package/src/composables/use-interval/use-interval.test.js +1 -1
  427. package/src/composables/use-meta/use-meta.js +3 -3
  428. package/src/composables/use-quasar/use-quasar.test.js +1 -1
  429. package/src/composables/use-render-cache/use-render-cache.js +1 -1
  430. package/src/composables/use-render-cache/use-render-cache.test.js +1 -1
  431. package/src/composables/use-split-attrs/use-split-attrs.js +3 -7
  432. package/src/composables/use-split-attrs/use-split-attrs.test.js +1 -1
  433. package/src/composables/use-tick/use-tick.js +3 -3
  434. package/src/composables/use-tick/use-tick.test.js +2 -2
  435. package/src/composables/use-timeout/use-timeout.js +2 -2
  436. package/src/composables/use-timeout/use-timeout.test.js +1 -1
  437. package/src/directives/close-popup/ClosePopup.js +4 -9
  438. package/src/directives/intersection/Intersection.js +5 -8
  439. package/src/directives/morph/Morph.js +12 -18
  440. package/src/directives/ripple/Ripple.js +19 -26
  441. package/src/directives/ripple/Ripple.test.js +2 -2
  442. package/src/directives/scroll/Scroll.js +2 -2
  443. package/src/directives/touch-hold/TouchHold.js +22 -28
  444. package/src/directives/touch-pan/TouchPan.js +68 -84
  445. package/src/directives/touch-repeat/TouchRepeat.js +28 -39
  446. package/src/directives/touch-swipe/TouchSwipe.js +30 -33
  447. package/src/index.ssr.js +2 -0
  448. package/src/index.umd.js +2 -0
  449. package/src/install-quasar.js +9 -9
  450. package/src/plugins/addressbar/AddressbarColor.js +9 -9
  451. package/src/plugins/addressbar/AddressbarColor.test.js +2 -2
  452. package/src/plugins/app-fullscreen/AppFullscreen.js +11 -10
  453. package/src/plugins/app-fullscreen/AppFullscreen.test.js +2 -2
  454. package/src/plugins/app-fullscreen/test/mock-fullscreen.js +2 -2
  455. package/src/plugins/app-visibility/AppVisibility.js +5 -5
  456. package/src/plugins/app-visibility/AppVisibility.test.js +2 -2
  457. package/src/plugins/bottom-sheet/BottomSheet.js +2 -2
  458. package/src/plugins/bottom-sheet/component/BottomSheetComponent.js +4 -4
  459. package/src/plugins/cookies/Cookies.js +50 -62
  460. package/src/plugins/dark/Dark.js +3 -5
  461. package/src/plugins/dark/Dark.test.js +1 -1
  462. package/src/plugins/dialog/Dialog.js +2 -2
  463. package/src/plugins/dialog/component/DialogPluginComponent.js +17 -20
  464. package/src/plugins/icon-set/IconSet.js +2 -4
  465. package/src/plugins/icon-set/IconSet.test.js +1 -1
  466. package/src/plugins/lang/Lang.js +7 -10
  467. package/src/plugins/lang/Lang.json +2 -2
  468. package/src/plugins/lang/Lang.test.js +2 -2
  469. package/src/plugins/loading/Loading.js +10 -12
  470. package/src/plugins/loading-bar/LoadingBar.js +4 -4
  471. package/src/plugins/meta/Meta.js +10 -11
  472. package/src/plugins/notify/Notify.js +67 -72
  473. package/src/plugins/platform/Platform.js +19 -21
  474. package/src/plugins/platform/Platform.test.js +1 -1
  475. package/src/plugins/private.body/Body.js +23 -29
  476. package/src/plugins/private.body/Body.test.js +1 -1
  477. package/src/plugins/private.history/History.js +17 -25
  478. package/src/plugins/private.history/History.test.js +1 -1
  479. package/src/plugins/screen/Screen.js +16 -16
  480. package/src/plugins/screen/Screen.test.js +1 -1
  481. package/src/plugins/storage/LocalStorage.js +3 -4
  482. package/src/plugins/storage/LocalStorage.test.js +2 -2
  483. package/src/plugins/storage/SessionStorage.js +3 -4
  484. package/src/plugins/storage/SessionStorage.test.js +2 -2
  485. package/src/plugins/storage/engine/web-storage.js +30 -23
  486. package/src/plugins/storage/engine/web-storage.test.js +1 -1
  487. package/src/utils/EventBus/EventBus.js +3 -4
  488. package/src/utils/EventBus/EventBus.test.js +1 -1
  489. package/src/utils/clone/clone.test.js +4 -8
  490. package/src/utils/colors/colors.js +38 -29
  491. package/src/utils/colors/colors.test.js +2 -2
  492. package/src/utils/copy-to-clipboard/copy-to-clipboard.js +6 -11
  493. package/src/utils/create-meta-mixin/create-meta-mixin.js +2 -2
  494. package/src/utils/create-uploader-component/create-uploader-component.js +12 -7
  495. package/src/utils/css-var/get-css-var.test.js +2 -2
  496. package/src/utils/css-var/set-css-var.test.js +2 -2
  497. package/src/utils/date/date.js +229 -172
  498. package/src/utils/date/private.persian.js +11 -11
  499. package/src/utils/debounce/debounce.js +3 -7
  500. package/src/utils/debounce/debounce.test.js +1 -1
  501. package/src/utils/dom/dom.js +2 -4
  502. package/src/utils/dom/dom.test.js +4 -4
  503. package/src/utils/event/event.js +21 -23
  504. package/src/utils/export-file/export-file.js +3 -3
  505. package/src/utils/extend/extend.js +15 -14
  506. package/src/utils/extend/extend.test.js +2 -2
  507. package/src/utils/format/format.js +4 -10
  508. package/src/utils/format/format.test.js +1 -1
  509. package/src/utils/frame-debounce/frame-debounce.js +23 -12
  510. package/src/utils/frame-debounce/frame-debounce.test.js +1 -1
  511. package/src/utils/is/is.js +15 -26
  512. package/src/utils/is/is.test.js +8 -7
  513. package/src/utils/morph/morph.js +57 -48
  514. package/src/utils/open-url/open-url.js +7 -7
  515. package/src/utils/patterns/patterns.js +26 -23
  516. package/src/utils/patterns/patterns.test.js +1 -1
  517. package/src/utils/private.click-outside/click-outside.js +5 -5
  518. package/src/utils/private.config/instance-config.js +2 -0
  519. package/src/utils/private.config/instance-config.test.js +4 -4
  520. package/src/utils/private.config/nodes.js +5 -5
  521. package/src/utils/private.config/nodes.test.js +4 -4
  522. package/src/utils/private.create/create.test.js +1 -1
  523. package/src/utils/private.dialog/create-dialog.js +9 -12
  524. package/src/utils/private.focus/focus-manager.js +1 -1
  525. package/src/utils/private.focus/focus-manager.test.js +4 -4
  526. package/src/utils/private.focus/focusout.js +2 -2
  527. package/src/utils/private.focus/focusout.test.js +1 -1
  528. package/src/utils/private.get-emits-object/get-emits-object.test.js +1 -1
  529. package/src/utils/private.inject-obj-prop/inject-obj-prop.test.js +2 -2
  530. package/src/utils/private.keyboard/escape-key.js +5 -5
  531. package/src/utils/private.keyboard/escape-key.test.js +1 -1
  532. package/src/utils/private.keyboard/key-composition.js +4 -6
  533. package/src/utils/private.noop-ssr-directive-transform/noop-ssr-directive-transform.js +3 -1
  534. package/src/utils/private.noop-ssr-directive-transform/noop-ssr-directive-transform.test.js +1 -1
  535. package/src/utils/private.portal/portal.js +5 -5
  536. package/src/utils/private.position-engine/position-engine.js +20 -22
  537. package/src/utils/private.render/render.js +5 -7
  538. package/src/utils/private.render/render.test.js +5 -5
  539. package/src/utils/private.rtl/rtl.js +3 -2
  540. package/src/utils/private.rtl/rtl.test.js +1 -1
  541. package/src/utils/private.selection/selection.js +1 -1
  542. package/src/utils/private.selection/selection.test.js +2 -2
  543. package/src/utils/private.sort/sort.test.js +2 -2
  544. package/src/utils/private.touch/touch.js +10 -14
  545. package/src/utils/private.touch/touch.test.js +1 -1
  546. package/src/utils/private.vm/vm.js +2 -2
  547. package/src/utils/private.vm/vm.test.js +4 -4
  548. package/src/utils/run-sequential-promises/run-sequential-promises.js +44 -54
  549. package/src/utils/run-sequential-promises/run-sequential-promises.test.js +183 -0
  550. package/src/utils/scroll/prevent-scroll.js +9 -9
  551. package/src/utils/scroll/scroll.js +11 -12
  552. package/src/utils/throttle/throttle.js +4 -3
  553. package/src/utils/throttle/throttle.test.js +1 -1
  554. package/src/utils/uid/uid.js +51 -77
  555. package/src/utils/uid/uid.test.js +3 -3
  556. package/wrappers/index.cjs +2 -2
  557. package/wrappers/index.js +2 -2
  558. package/dist/types/extras/animations.d.ts +0 -106
  559. package/dist/types/extras/fonts.d.ts +0 -1
  560. package/dist/types/extras.d.ts +0 -3
  561. package/dist/vetur/quasar-attributes.json +0 -1
  562. package/dist/vetur/quasar-tags.json +0 -1
@@ -1,12 +1,12 @@
1
1
  import {
2
+ computed,
3
+ getCurrentInstance,
2
4
  h,
3
- ref,
4
5
  isRef,
5
- computed,
6
- watch,
7
- provide,
8
6
  onBeforeUnmount,
9
- getCurrentInstance
7
+ provide,
8
+ ref,
9
+ watch
10
10
  } from 'vue'
11
11
 
12
12
  import QBtn from '../btn/QBtn.js'
@@ -18,16 +18,16 @@ import useDark, {
18
18
  useDarkProps
19
19
  } from '../../composables/private.use-dark/use-dark.js'
20
20
  import useFile, {
21
- useFileProps,
22
- useFileEmits
21
+ useFileEmits,
22
+ useFileProps
23
23
  } from '../../composables/private.use-file/use-file.js'
24
24
 
25
25
  import { stop } from '../../utils/event/event.js'
26
26
  import { humanStorageSize } from '../../utils/format/format.js'
27
27
  import { uploaderKey } from '../../utils/private.symbols/symbols.js'
28
28
  import {
29
- injectProp,
30
- injectMultipleProps
29
+ injectMultipleProps,
30
+ injectProp
31
31
  } from '../../utils/private.inject-obj-prop/inject-obj-prop.js'
32
32
  import { vmIsDestroyed } from '../../utils/private.vm/vm.js'
33
33
 
@@ -99,9 +99,7 @@ export function getRenderer(getPlugin, expose) {
99
99
  proxy.$forceUpdate()
100
100
  }
101
101
 
102
- const editable = computed(
103
- () => props.disable !== true && props.readonly !== true
104
- )
102
+ const editable = computed(() => !props.disable && !props.readonly)
105
103
  const dnd = ref(false)
106
104
 
107
105
  const rootRef = ref(null)
@@ -114,7 +112,7 @@ export function getRenderer(getPlugin, expose) {
114
112
  uploadedSize: ref(0),
115
113
 
116
114
  updateFileStatus,
117
- isAlive: () => vmIsDestroyed(vm) === false
115
+ isAlive: () => !vmIsDestroyed(vm)
118
116
  }
119
117
 
120
118
  const {
@@ -156,10 +154,10 @@ export function getRenderer(getPlugin, expose) {
156
154
 
157
155
  const canAddFiles = computed(
158
156
  () =>
159
- editable.value === true &&
160
- state.isUploading.value !== true &&
157
+ editable.value &&
158
+ !state.isUploading.value &&
161
159
  // if single selection and no files are queued:
162
- (props.multiple === true || state.queuedFiles.value.length === 0) &&
160
+ (props.multiple || state.queuedFiles.value.length === 0) &&
163
161
  // if max-files is set and current number of files does not exceeds it:
164
162
  (props.maxFiles === void 0 ||
165
163
  state.files.value.length < maxFilesNumber.value) &&
@@ -170,9 +168,9 @@ export function getRenderer(getPlugin, expose) {
170
168
 
171
169
  const canUpload = computed(
172
170
  () =>
173
- editable.value === true &&
174
- state.isBusy.value !== true &&
175
- state.isUploading.value !== true &&
171
+ editable.value &&
172
+ !state.isBusy.value &&
173
+ !state.isUploading.value &&
176
174
  state.queuedFiles.value.length !== 0
177
175
  )
178
176
 
@@ -181,12 +179,12 @@ export function getRenderer(getPlugin, expose) {
181
179
  const classes = computed(
182
180
  () =>
183
181
  'q-uploader column no-wrap' +
184
- (isDark.value === true ? ' q-uploader--dark q-dark' : '') +
185
- (props.bordered === true ? ' q-uploader--bordered' : '') +
186
- (props.square === true ? ' q-uploader--square no-border-radius' : '') +
187
- (props.flat === true ? ' q-uploader--flat no-shadow' : '') +
188
- (props.disable === true ? ' disabled q-uploader--disable' : '') +
189
- (dnd.value === true ? ' q-uploader--dnd' : '')
182
+ (isDark.value ? ' q-uploader--dark q-dark' : '') +
183
+ (props.bordered ? ' q-uploader--bordered' : '') +
184
+ (props.square ? ' q-uploader--square no-border-radius' : '') +
185
+ (props.flat ? ' q-uploader--flat no-shadow' : '') +
186
+ (props.disable ? ' disabled q-uploader--disable' : '') +
187
+ (dnd.value ? ' q-uploader--dnd' : '')
190
188
  )
191
189
 
192
190
  const colorClass = computed(
@@ -197,15 +195,15 @@ export function getRenderer(getPlugin, expose) {
197
195
  )
198
196
 
199
197
  watch(state.isUploading, (newVal, oldVal) => {
200
- if (oldVal === false && newVal === true) {
198
+ if (!oldVal && newVal) {
201
199
  emit('start')
202
- } else if (oldVal === true && newVal === false) {
200
+ } else if (oldVal && !newVal) {
203
201
  emit('finish')
204
202
  }
205
203
  })
206
204
 
207
205
  function reset() {
208
- if (props.disable === false) {
206
+ if (!props.disable) {
209
207
  state.abort()
210
208
  state.uploadedSize.value = 0
211
209
  uploadSize.value = 0
@@ -217,7 +215,7 @@ export function getRenderer(getPlugin, expose) {
217
215
  }
218
216
 
219
217
  function removeUploadedFiles() {
220
- if (props.disable === false) {
218
+ if (!props.disable) {
221
219
  batchRemoveFiles(['uploaded'], () => {
222
220
  state.uploadedFiles.value = []
223
221
  })
@@ -232,7 +230,7 @@ export function getRenderer(getPlugin, expose) {
232
230
  }
233
231
 
234
232
  function batchRemoveFiles(statusList, cb) {
235
- if (props.disable === true) return
233
+ if (props.disable) return
236
234
 
237
235
  const removed = {
238
236
  files: [],
@@ -240,9 +238,7 @@ export function getRenderer(getPlugin, expose) {
240
238
  }
241
239
 
242
240
  const localFiles = state.files.value.filter(f => {
243
- if (statusList.indexOf(f.__status) === -1) {
244
- return true
245
- }
241
+ if (!statusList.includes(f.__status)) return true
246
242
 
247
243
  removed.size += f.size
248
244
  removed.files.push(f)
@@ -315,28 +311,25 @@ export function getRenderer(getPlugin, expose) {
315
311
  state.updateFileStatus(file, 'idle')
316
312
  uploadSize.value += file.size
317
313
 
318
- if (
319
- props.noThumbnails !== true &&
320
- file.type.toUpperCase().startsWith('IMAGE')
321
- ) {
314
+ if (!props.noThumbnails && file.type.toUpperCase().startsWith('IMAGE')) {
322
315
  const img = new Image()
323
316
  img.src = window.URL.createObjectURL(file)
324
317
  file.__img = img
325
318
  }
326
319
  })
327
320
 
328
- state.files.value = state.files.value.concat(localFiles)
329
- state.queuedFiles.value = state.queuedFiles.value.concat(localFiles)
321
+ state.files.value.push(...localFiles)
322
+ state.queuedFiles.value.push(...localFiles)
330
323
  emit('added', localFiles)
331
- if (props.autoUpload === true) state.upload()
324
+ if (props.autoUpload) state.upload()
332
325
  }
333
326
 
334
327
  function upload() {
335
- if (canUpload.value === true) state.upload()
328
+ if (canUpload.value) state.upload()
336
329
  }
337
330
 
338
331
  function getBtn(show, icon, fn) {
339
- if (show === true) {
332
+ if (show) {
340
333
  const data = {
341
334
  type: 'a',
342
335
  key: icon,
@@ -366,7 +359,7 @@ export function getRenderer(getPlugin, expose) {
366
359
  type: 'file',
367
360
  title: '', // try to remove default tooltip
368
361
  accept: props.accept,
369
- multiple: props.multiple === true ? 'multiple' : void 0,
362
+ multiple: props.multiple ? 'multiple' : void 0,
370
363
  capture: props.capture,
371
364
  onMousedown: stop, // need to stop refocus from QBtn
372
365
  onClick: pickFiles,
@@ -403,7 +396,7 @@ export function getRenderer(getPlugin, expose) {
403
396
  removeUploadedFiles
404
397
  ),
405
398
 
406
- state.isUploading.value === true
399
+ state.isUploading.value
407
400
  ? h(QSpinner, { class: 'q-uploader__spinner' })
408
401
  : null,
409
402
 
@@ -419,7 +412,7 @@ export function getRenderer(getPlugin, expose) {
419
412
 
420
413
  getBtn(canAddFiles.value, 'add'),
421
414
  getBtn(
422
- props.hideUploadBtn === false && canUpload.value === true,
415
+ !props.hideUploadBtn && canUpload.value,
423
416
  'upload',
424
417
  state.upload
425
418
  ),
@@ -443,7 +436,7 @@ export function getRenderer(getPlugin, expose) {
443
436
  key: file.__key,
444
437
  class:
445
438
  'q-uploader__file relative-position' +
446
- (props.noThumbnails !== true && file.__img !== void 0
439
+ (!props.noThumbnails && file.__img !== void 0
447
440
  ? ' q-uploader__file--img'
448
441
  : '') +
449
442
  (file.__status === 'failed'
@@ -452,7 +445,7 @@ export function getRenderer(getPlugin, expose) {
452
445
  ? ' q-uploader__file--uploaded'
453
446
  : ''),
454
447
  style:
455
- props.noThumbnails !== true && file.__img !== void 0
448
+ !props.noThumbnails && file.__img !== void 0
456
449
  ? {
457
450
  backgroundImage: 'url("' + file.__img.src + '")',
458
451
  backgroundSize: props.thumbnailFit
@@ -511,14 +504,14 @@ export function getRenderer(getPlugin, expose) {
511
504
  }
512
505
 
513
506
  onBeforeUnmount(() => {
514
- if (state.isUploading.value === true) state.abort()
507
+ if (state.isUploading.value) state.abort()
515
508
  if (state.files.value.length !== 0) revokeImgURLs()
516
509
  })
517
510
 
518
511
  const publicApi = {}
519
512
 
520
513
  for (const key in state) {
521
- if (isRef(state[key]) === true) {
514
+ if (isRef(state[key])) {
522
515
  injectProp(publicApi, key, () => state[key].value)
523
516
  } else {
524
517
  // method or non-computed prop
@@ -570,7 +563,7 @@ export function getRenderer(getPlugin, expose) {
570
563
  getDndNode('uploader')
571
564
  ]
572
565
 
573
- if (state.isBusy.value === true) {
566
+ if (state.isBusy.value) {
574
567
  children.push(
575
568
  h(
576
569
  'div',
@@ -584,7 +577,7 @@ export function getRenderer(getPlugin, expose) {
584
577
 
585
578
  const data = { ref: rootRef, class: classes.value }
586
579
 
587
- if (canAddFiles.value === true) {
580
+ if (canAddFiles.value) {
588
581
  Object.assign(data, { onDragover, onDragleave })
589
582
  }
590
583
 
@@ -1,4 +1,4 @@
1
- import { ref, computed } from 'vue'
1
+ import { computed, ref } from 'vue'
2
2
 
3
3
  function getFn(prop) {
4
4
  return typeof prop === 'function' ? prop : () => prop
@@ -53,13 +53,11 @@ function injectPlugin({ props, emit, helpers }) {
53
53
  x.abort()
54
54
  })
55
55
 
56
- if (promises.value.length !== 0) {
57
- abortPromises = true
58
- }
56
+ if (promises.value.length !== 0) abortPromises = true
59
57
  }
60
58
 
61
59
  function upload() {
62
- const queue = helpers.queuedFiles.value.slice(0)
60
+ const queue = [...helpers.queuedFiles.value]
63
61
  helpers.queuedFiles.value = []
64
62
 
65
63
  if (xhrProps.value.batch(queue)) {
@@ -95,14 +93,12 @@ function injectPlugin({ props, emit, helpers }) {
95
93
  promises.value.push(res)
96
94
 
97
95
  const failed = err => {
98
- if (helpers.isAlive() === true) {
96
+ if (helpers.isAlive()) {
99
97
  promises.value = promises.value.filter(p => p !== res)
100
98
 
101
- if (promises.value.length === 0) {
102
- abortPromises = false
103
- }
99
+ if (promises.value.length === 0) abortPromises = false
104
100
 
105
- helpers.queuedFiles.value = helpers.queuedFiles.value.concat(files)
101
+ helpers.queuedFiles.value.push(...files)
106
102
  files.forEach(f => {
107
103
  helpers.updateFileStatus(f, 'failed')
108
104
  })
@@ -114,9 +110,9 @@ function injectPlugin({ props, emit, helpers }) {
114
110
 
115
111
  res
116
112
  .then(factory => {
117
- if (abortPromises === true) {
113
+ if (abortPromises) {
118
114
  failed(new Error('Aborted'))
119
- } else if (helpers.isAlive() === true) {
115
+ } else if (helpers.isAlive()) {
120
116
  promises.value = promises.value.filter(p => p !== res)
121
117
  performUpload(files, factory)
122
118
  }
@@ -160,7 +156,7 @@ function injectPlugin({ props, emit, helpers }) {
160
156
  xhr.upload.addEventListener(
161
157
  'progress',
162
158
  e => {
163
- if (aborted === true) return
159
+ if (aborted) return
164
160
 
165
161
  const loaded = Math.min(maxUploadSize, e.loaded)
166
162
 
@@ -186,11 +182,11 @@ function injectPlugin({ props, emit, helpers }) {
186
182
  false
187
183
  )
188
184
 
189
- xhr.onreadystatechange = () => {
185
+ xhr.addEventListener('readystatechange', () => {
190
186
  if (xhr.readyState < 4) return
191
187
 
192
188
  if (xhr.status && xhr.status < 400) {
193
- helpers.uploadedFiles.value = helpers.uploadedFiles.value.concat(files)
189
+ helpers.uploadedFiles.value.push(...files)
194
190
  files.forEach(f => {
195
191
  helpers.updateFileStatus(f, 'uploaded')
196
192
  })
@@ -198,7 +194,7 @@ function injectPlugin({ props, emit, helpers }) {
198
194
  } else {
199
195
  aborted = true
200
196
  helpers.uploadedSize.value -= localUploadedSize
201
- helpers.queuedFiles.value = helpers.queuedFiles.value.concat(files)
197
+ helpers.queuedFiles.value.push(...files)
202
198
  files.forEach(f => {
203
199
  helpers.updateFileStatus(f, 'failed')
204
200
  })
@@ -207,7 +203,7 @@ function injectPlugin({ props, emit, helpers }) {
207
203
 
208
204
  workingThreads.value--
209
205
  xhrs.value = xhrs.value.filter(x => x !== xhr)
210
- }
206
+ })
211
207
 
212
208
  xhr.open(getProp('method', files), url)
213
209
 
@@ -1,4 +1,4 @@
1
- import { h, computed } from 'vue'
1
+ import { computed, h } from 'vue'
2
2
 
3
3
  import useRatio, {
4
4
  useRatioProps
@@ -1,5 +1,5 @@
1
- import { mount, flushPromises } from '@vue/test-utils'
2
- import { describe, test, expect } from 'vitest'
1
+ import { flushPromises, mount } from '@vue/test-utils'
2
+ import { describe, expect, test } from 'vitest'
3
3
 
4
4
  import QVideo from './QVideo.js'
5
5
 
@@ -1,13 +1,13 @@
1
1
  import {
2
- h,
3
- ref,
4
2
  computed,
5
- watch,
3
+ h,
4
+ onActivated,
6
5
  onBeforeMount,
7
- onMounted,
8
6
  onBeforeUnmount,
9
- onActivated,
10
- onDeactivated
7
+ onDeactivated,
8
+ onMounted,
9
+ ref,
10
+ watch
11
11
  } from 'vue'
12
12
 
13
13
  import QList from '../item/QList.js'
@@ -60,7 +60,7 @@ export default createComponent({
60
60
 
61
61
  const virtualScrollLength = computed(() =>
62
62
  props.itemsSize >= 0 && props.itemsFn !== void 0
63
- ? parseInt(props.itemsSize, 10)
63
+ ? Number.parseInt(props.itemsSize, 10)
64
64
  : Array.isArray(props.items)
65
65
  ? props.items.length
66
66
  : 0
@@ -106,9 +106,7 @@ export default createComponent({
106
106
  const classes = computed(
107
107
  () =>
108
108
  'q-virtual-scroll q-virtual-scroll' +
109
- (props.virtualScrollHorizontal === true
110
- ? '--horizontal'
111
- : '--vertical') +
109
+ (props.virtualScrollHorizontal ? '--horizontal' : '--vertical') +
112
110
  (props.scrollTarget !== void 0 ? '' : ' scroll')
113
111
  )
114
112
 
@@ -166,6 +164,7 @@ export default createComponent({
166
164
  )
167
165
 
168
166
  if (slots.before !== void 0) {
167
+ // oxlint-disable-next-line unicorn/prefer-spread
169
168
  child = slots.before().concat(child)
170
169
  }
171
170
 
@@ -1,14 +1,14 @@
1
1
  import {
2
- h,
3
- ref,
4
2
  computed,
5
- watch,
3
+ getCurrentInstance,
4
+ h,
5
+ nextTick,
6
6
  onActivated,
7
- onDeactivated,
8
7
  onBeforeMount,
9
8
  onBeforeUnmount,
10
- nextTick,
11
- getCurrentInstance
9
+ onDeactivated,
10
+ ref,
11
+ watch
12
12
  } from 'vue'
13
13
 
14
14
  import debounce from '../../utils/debounce/debounce.js'
@@ -77,7 +77,7 @@ function getScrollDetails(
77
77
  parent === window
78
78
  ? document.scrollingElement || document.documentElement
79
79
  : parent,
80
- propElSize = horizontal === true ? 'offsetWidth' : 'offsetHeight',
80
+ propElSize = horizontal ? 'offsetWidth' : 'offsetHeight',
81
81
  details = {
82
82
  scrollStart: 0,
83
83
  scrollViewSize: -stickyStart - stickyEnd,
@@ -86,7 +86,7 @@ function getScrollDetails(
86
86
  offsetEnd: -stickyEnd
87
87
  }
88
88
 
89
- if (horizontal === true) {
89
+ if (horizontal) {
90
90
  if (parent === window) {
91
91
  details.scrollStart =
92
92
  window.pageXOffset || window.scrollX || document.body.scrollLeft || 0
@@ -97,11 +97,10 @@ function getScrollDetails(
97
97
  }
98
98
  details.scrollMaxSize = parentCalc.scrollWidth
99
99
 
100
- if (rtl === true) {
100
+ if (rtl) {
101
101
  details.scrollStart =
102
- (rtlHasScrollBug === true
103
- ? details.scrollMaxSize - details.scrollViewSize
104
- : 0) - details.scrollStart
102
+ (rtlHasScrollBug ? details.scrollMaxSize - details.scrollViewSize : 0) -
103
+ details.scrollStart
105
104
  }
106
105
  } else {
107
106
  if (parent === window) {
@@ -121,7 +120,7 @@ function getScrollDetails(
121
120
  el !== null;
122
121
  el = el.previousElementSibling
123
122
  ) {
124
- if (el.classList.contains('q-virtual-scroll--skip') === false) {
123
+ if (!el.classList.contains('q-virtual-scroll--skip')) {
125
124
  details.offsetStart += el[propElSize]
126
125
  }
127
126
  }
@@ -133,7 +132,7 @@ function getScrollDetails(
133
132
  el !== null;
134
133
  el = el.nextElementSibling
135
134
  ) {
136
- if (el.classList.contains('q-virtual-scroll--skip') === false) {
135
+ if (!el.classList.contains('q-virtual-scroll--skip')) {
137
136
  details.offsetEnd += el[propElSize]
138
137
  }
139
138
  }
@@ -143,7 +142,7 @@ function getScrollDetails(
143
142
  const parentRect = parentCalc.getBoundingClientRect(),
144
143
  childRect = child.getBoundingClientRect()
145
144
 
146
- if (horizontal === true) {
145
+ if (horizontal) {
147
146
  details.offsetStart += childRect.left - parentRect.left
148
147
  details.offsetEnd -= childRect.width
149
148
  } else {
@@ -163,15 +162,15 @@ function getScrollDetails(
163
162
  function setScroll(parent, scroll, horizontal, rtl) {
164
163
  if (scroll === 'end') {
165
164
  scroll = (parent === window ? document.body : parent)[
166
- horizontal === true ? 'scrollWidth' : 'scrollHeight'
165
+ horizontal ? 'scrollWidth' : 'scrollHeight'
167
166
  ]
168
167
  }
169
168
 
170
169
  if (parent === window) {
171
- if (horizontal === true) {
172
- if (rtl === true) {
170
+ if (horizontal) {
171
+ if (rtl) {
173
172
  scroll =
174
- (rtlHasScrollBug === true
173
+ (rtlHasScrollBug
175
174
  ? document.body.scrollWidth - document.documentElement.clientWidth
176
175
  : 0) - scroll
177
176
  }
@@ -185,12 +184,10 @@ function setScroll(parent, scroll, horizontal, rtl) {
185
184
  scroll
186
185
  )
187
186
  }
188
- } else if (horizontal === true) {
189
- if (rtl === true) {
187
+ } else if (horizontal) {
188
+ if (rtl) {
190
189
  scroll =
191
- (rtlHasScrollBug === true
192
- ? parent.scrollWidth - parent.offsetWidth
193
- : 0) - scroll
190
+ (rtlHasScrollBug ? parent.scrollWidth - parent.offsetWidth : 0) - scroll
194
191
  }
195
192
  parent.scrollLeft = scroll
196
193
  } else {
@@ -350,10 +347,10 @@ export function useVirtualScroll({
350
347
  scrollDetails,
351
348
  Math.min(
352
349
  virtualScrollLength.value - 1,
353
- Math.max(0, parseInt(toIndex, 10) || 0)
350
+ Math.max(0, Number.parseInt(toIndex, 10) || 0)
354
351
  ),
355
352
  0,
356
- scrollToEdges.indexOf(edge) !== -1
353
+ scrollToEdges.includes(edge)
357
354
  ? edge
358
355
  : prevToIndex !== -1 && toIndex > prevToIndex
359
356
  ? 'end'
@@ -466,9 +463,8 @@ export function useVirtualScroll({
466
463
  offset,
467
464
  align
468
465
  ) {
469
- const alignForce =
470
- typeof align === 'string' && align.indexOf('-force') !== -1
471
- const alignEnd = alignForce === true ? align.replace('-force', '') : align
466
+ const alignForce = typeof align === 'string' && align.includes('-force')
467
+ const alignEnd = alignForce ? align.replace('-force', '') : align
472
468
  const alignRange = alignEnd !== void 0 ? alignEnd : 'start'
473
469
 
474
470
  let from = Math.max(
@@ -488,7 +484,7 @@ export function useVirtualScroll({
488
484
  from !== virtualScrollSliceRange.value.from ||
489
485
  to !== virtualScrollSliceRange.value.to
490
486
 
491
- if (rangeChanged === false && alignEnd === void 0) {
487
+ if (!rangeChanged && alignEnd === void 0) {
492
488
  emitScroll(toIndex)
493
489
  return
494
490
  }
@@ -496,10 +492,10 @@ export function useVirtualScroll({
496
492
  const { activeElement } = document
497
493
  const contentEl = contentRef.value
498
494
  if (
499
- rangeChanged === true &&
495
+ rangeChanged &&
500
496
  contentEl !== null &&
501
497
  contentEl !== activeElement &&
502
- contentEl.contains(activeElement) === true
498
+ contentEl.contains(activeElement)
503
499
  ) {
504
500
  contentEl.addEventListener('focusout', onBlurRefocusFn)
505
501
 
@@ -515,7 +511,7 @@ export function useVirtualScroll({
515
511
  ? virtualScrollSizes.slice(from, toIndex).reduce(sumFn, 0)
516
512
  : 0
517
513
 
518
- if (rangeChanged === true) {
514
+ if (rangeChanged) {
519
515
  // vue key matching algorithm works only if
520
516
  // the array of VNodes changes on only one of the ends
521
517
  // so we first change one end and then the other
@@ -564,7 +560,7 @@ export function useVirtualScroll({
564
560
  // (another call to setVirtualScrollSliceRange before animation frame)
565
561
  if (prevScrollStart !== scrollDetails.scrollStart) return
566
562
 
567
- if (rangeChanged === true) {
563
+ if (rangeChanged) {
568
564
  updateVirtualScrollSizes(from)
569
565
  }
570
566
 
@@ -584,7 +580,7 @@ export function useVirtualScroll({
584
580
  const scrollStart = scrollDetails.scrollStart + sizeDiff
585
581
 
586
582
  scrollPosition =
587
- alignForce !== true &&
583
+ !alignForce &&
588
584
  scrollStart < posStart &&
589
585
  posEnd < scrollStart + scrollDetails.scrollViewSize
590
586
  ? scrollStart
@@ -619,15 +615,12 @@ export function useVirtualScroll({
619
615
  if (contentEl) {
620
616
  const children = filterProto.call(
621
617
  contentEl.children,
622
- el =>
623
- el.classList &&
624
- el.classList.contains('q-virtual-scroll--skip') === false
618
+ el => el.classList && !el.classList.contains('q-virtual-scroll--skip')
625
619
  ),
626
620
  childrenLength = children.length,
627
- sizeFn =
628
- props.virtualScrollHorizontal === true
629
- ? el => el.getBoundingClientRect().width
630
- : el => el.offsetHeight
621
+ sizeFn = props.virtualScrollHorizontal
622
+ ? el => el.getBoundingClientRect().width
623
+ : el => el.offsetHeight
631
624
 
632
625
  let index = from,
633
626
  size,
@@ -639,7 +632,7 @@ export function useVirtualScroll({
639
632
 
640
633
  while (
641
634
  i < childrenLength &&
642
- children[i].classList.contains('q-virtual-scroll--with-prev') === true
635
+ children[i].classList.contains('q-virtual-scroll--with-prev')
643
636
  ) {
644
637
  size += sizeFn(children[i])
645
638
  i++
@@ -664,7 +657,7 @@ export function useVirtualScroll({
664
657
  function localResetVirtualScroll(toIndex, fullReset) {
665
658
  const defaultSize = Number(virtualScrollItemSizeComputed.value)
666
659
 
667
- if (fullReset === true || Array.isArray(virtualScrollSizes) === false) {
660
+ if (fullReset || !Array.isArray(virtualScrollSizes)) {
668
661
  virtualScrollSizes = []
669
662
  }
670
663
 
@@ -738,9 +731,9 @@ export function useVirtualScroll({
738
731
  localScrollViewSize = scrollViewSize
739
732
 
740
733
  const virtualScrollSliceRatioBefore =
741
- parseFloat(props.virtualScrollSliceRatioBefore) || 0
734
+ Number.parseFloat(props.virtualScrollSliceRatioBefore) || 0
742
735
  const virtualScrollSliceRatioAfter =
743
- parseFloat(props.virtualScrollSliceRatioAfter) || 0
736
+ Number.parseFloat(props.virtualScrollSliceRatioAfter) || 0
744
737
  const multiplier =
745
738
  1 + virtualScrollSliceRatioBefore + virtualScrollSliceRatioAfter
746
739
  const view =
@@ -767,8 +760,7 @@ export function useVirtualScroll({
767
760
  }
768
761
 
769
762
  function padVirtualScroll(tag, content) {
770
- const paddingSize =
771
- props.virtualScrollHorizontal === true ? 'width' : 'height'
763
+ const paddingSize = props.virtualScrollHorizontal ? 'width' : 'height'
772
764
  const style = {
773
765
  ['--q-virtual-scroll-item-' + paddingSize]:
774
766
  virtualScrollItemSizeComputed.value + 'px'
@@ -867,7 +859,7 @@ export function useVirtualScroll({
867
859
  setVirtualScrollSize()
868
860
  const onVirtualScrollEvt = debounce(
869
861
  localOnVirtualScrollEvt,
870
- $q.platform.is.ios === true ? 120 : 35
862
+ $q.platform.is.ios ? 120 : 35
871
863
  )
872
864
 
873
865
  onBeforeMount(() => {
@@ -881,7 +873,7 @@ export function useVirtualScroll({
881
873
  })
882
874
 
883
875
  onActivated(() => {
884
- if (shouldActivate !== true) return
876
+ if (!shouldActivate) return
885
877
 
886
878
  const scrollEl = getVirtualScrollTarget()
887
879