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,4 +1,4 @@
1
- import { h, ref, computed, getCurrentInstance } from 'vue'
1
+ import { computed, getCurrentInstance, h, ref } from 'vue'
2
2
 
3
3
  import { client } from '../../plugins/platform/Platform.js'
4
4
  import { stop, stopAndPrevent } from '../../utils/event/event.js'
@@ -7,7 +7,7 @@ function filterFiles(files, rejectedFiles, failedPropValidation, filterFn) {
7
7
  const acceptedFiles = []
8
8
 
9
9
  files.forEach(file => {
10
- if (filterFn(file) === true) {
10
+ if (filterFn(file)) {
11
11
  acceptedFiles.push(file)
12
12
  } else {
13
13
  rejectedFiles.push({ failedPropValidation, file })
@@ -56,15 +56,17 @@ export default function useFile({
56
56
  return '*/'
57
57
  } else if (ext.endsWith('/*')) {
58
58
  // support "image/*" or "*/*"
59
- ext = ext.slice(0, ext.length - 1)
59
+ ext = ext.slice(0, -1)
60
60
  }
61
61
  return ext.toUpperCase()
62
62
  })
63
63
  : null
64
64
  )
65
65
 
66
- const maxFilesNumber = computed(() => parseInt(props.maxFiles, 10))
67
- const maxTotalSizeNumber = computed(() => parseInt(props.maxTotalSize, 10))
66
+ const maxFilesNumber = computed(() => Number.parseInt(props.maxFiles, 10))
67
+ const maxTotalSizeNumber = computed(() =>
68
+ Number.parseInt(props.maxTotalSize, 10)
69
+ )
68
70
 
69
71
  function pickFiles(e) {
70
72
  if (editable.value) {
@@ -89,7 +91,7 @@ export default function useFile({
89
91
  }
90
92
 
91
93
  function processFiles(e, filesToProcess, currentFileList, append) {
92
- let files = Array.from(filesToProcess || e.target.files)
94
+ let files = [...(filesToProcess || e.target.files)]
93
95
  const rejectedFiles = []
94
96
 
95
97
  const done = () => {
@@ -99,7 +101,7 @@ export default function useFile({
99
101
  }
100
102
 
101
103
  // filter file types
102
- if (props.accept !== void 0 && extensions.value.indexOf('*/') === -1) {
104
+ if (props.accept !== void 0 && !extensions.value.includes('*/')) {
103
105
  files = filterFiles(files, rejectedFiles, 'accept', file =>
104
106
  extensions.value.some(
105
107
  ext =>
@@ -108,14 +110,12 @@ export default function useFile({
108
110
  )
109
111
  )
110
112
 
111
- if (files.length === 0) {
112
- return done()
113
- }
113
+ if (files.length === 0) return done()
114
114
  }
115
115
 
116
116
  // filter max file size
117
117
  if (props.maxFileSize !== void 0) {
118
- const maxFileSize = parseInt(props.maxFileSize, 10)
118
+ const maxFileSize = Number.parseInt(props.maxFileSize, 10)
119
119
  files = filterFiles(
120
120
  files,
121
121
  rejectedFiles,
@@ -131,7 +131,7 @@ export default function useFile({
131
131
  // Cordova/iOS allows selecting multiple files even when the
132
132
  // multiple attribute is not specified. We also normalize drag'n'dropped
133
133
  // files here:
134
- if (props.multiple !== true && files.length !== 0) {
134
+ if (!props.multiple && files.length !== 0) {
135
135
  files = [files[0]]
136
136
  }
137
137
 
@@ -141,14 +141,14 @@ export default function useFile({
141
141
  file.webkitRelativePath + file.lastModified + file.name + file.size
142
142
  })
143
143
 
144
- if (append === true) {
144
+ if (append) {
145
145
  // Avoid duplicate files
146
146
  const filenameMap = currentFileList.map(entry => entry.__key)
147
147
  files = filterFiles(
148
148
  files,
149
149
  rejectedFiles,
150
150
  'duplicate',
151
- file => filenameMap.includes(file.__key) === false
151
+ file => !filenameMap.includes(file.__key)
152
152
  )
153
153
  }
154
154
 
@@ -157,10 +157,9 @@ export default function useFile({
157
157
  }
158
158
 
159
159
  if (props.maxTotalSize !== void 0) {
160
- let size =
161
- append === true
162
- ? currentFileList.reduce((total, file) => total + file.size, 0)
163
- : 0
160
+ let size = append
161
+ ? currentFileList.reduce((total, file) => total + file.size, 0)
162
+ : 0
164
163
 
165
164
  files = filterFiles(files, rejectedFiles, 'max-total-size', file => {
166
165
  size += file.size
@@ -181,7 +180,7 @@ export default function useFile({
181
180
  }
182
181
 
183
182
  if (props.maxFiles !== void 0) {
184
- let filesNumber = append === true ? currentFileList.length : 0
183
+ let filesNumber = append ? currentFileList.length : 0
185
184
 
186
185
  files = filterFiles(files, rejectedFiles, 'max-files', () => {
187
186
  filesNumber++
@@ -202,7 +201,7 @@ export default function useFile({
202
201
 
203
202
  function onDragover(e) {
204
203
  stopAndPreventDrag(e)
205
- if (dnd.value !== true) dnd.value = true
204
+ if (!dnd.value) dnd.value = true
206
205
  }
207
206
 
208
207
  function onDragleave(e) {
@@ -210,14 +209,15 @@ export default function useFile({
210
209
 
211
210
  // Safari bug: relatedTarget is null for over 10 years
212
211
  // https://bugs.webkit.org/show_bug.cgi?id=66547
213
- const gone =
214
- e.relatedTarget !== null || client.is.safari !== true
212
+ if (
213
+ e.relatedTarget !== null || !client.is.safari
215
214
  ? e.relatedTarget !== dndRef.value
216
- : document
215
+ : !document
217
216
  .elementsFromPoint(e.clientX, e.clientY)
218
- .includes(dndRef.value) === false
219
-
220
- if (gone === true) dnd.value = false
217
+ .includes(dndRef.value)
218
+ ) {
219
+ dnd.value = false
220
+ }
221
221
  }
222
222
 
223
223
  function onDrop(e) {
@@ -232,7 +232,7 @@ export default function useFile({
232
232
  }
233
233
 
234
234
  function getDndNode(type) {
235
- if (dnd.value === true) {
235
+ if (dnd.value) {
236
236
  return h('div', {
237
237
  ref: dndRef,
238
238
  class: `q-${type}__dnd absolute-full`,
@@ -1,10 +1,10 @@
1
1
  import {
2
- ref,
3
- watch,
2
+ getCurrentInstance,
4
3
  onBeforeMount,
5
- onMounted,
6
4
  onBeforeUnmount,
7
- getCurrentInstance
5
+ onMounted,
6
+ ref,
7
+ watch
8
8
  } from 'vue'
9
9
 
10
10
  import History from '../../plugins/private.history/History.js'
@@ -23,16 +23,14 @@ export default function useFullscreen() {
23
23
  const vm = getCurrentInstance()
24
24
  const { props, emit, proxy } = vm
25
25
 
26
- let historyEntry, fullscreenFillerNode, container
26
+ let historyEntry, fullscreenFillerNode
27
27
  const inFullscreen = ref(false)
28
28
 
29
- if (vmHasRouter(vm) === true) {
29
+ if (vmHasRouter(vm)) {
30
30
  watch(
31
31
  () => proxy.$route.fullPath,
32
32
  () => {
33
- if (props.noRouteFullscreenExit !== true) {
34
- exitFullscreen()
35
- }
33
+ if (!props.noRouteFullscreenExit) exitFullscreen()
36
34
  }
37
35
  )
38
36
  }
@@ -40,9 +38,7 @@ export default function useFullscreen() {
40
38
  watch(
41
39
  () => props.fullscreen,
42
40
  v => {
43
- if (inFullscreen.value !== v) {
44
- toggleFullscreen()
45
- }
41
+ if (inFullscreen.value !== v) toggleFullscreen()
46
42
  }
47
43
  )
48
44
 
@@ -52,7 +48,7 @@ export default function useFullscreen() {
52
48
  })
53
49
 
54
50
  function toggleFullscreen() {
55
- if (inFullscreen.value === true) {
51
+ if (inFullscreen.value) {
56
52
  exitFullscreen()
57
53
  } else {
58
54
  setFullscreen()
@@ -60,12 +56,11 @@ export default function useFullscreen() {
60
56
  }
61
57
 
62
58
  function setFullscreen() {
63
- if (inFullscreen.value === true) return
59
+ if (inFullscreen.value) return
64
60
 
65
61
  inFullscreen.value = true
66
- container = proxy.$el.parentNode
67
- container.replaceChild(fullscreenFillerNode, proxy.$el)
68
- document.body.appendChild(proxy.$el)
62
+ proxy.$el.replaceWith(fullscreenFillerNode)
63
+ document.body.append(proxy.$el)
69
64
 
70
65
  counter++
71
66
  if (counter === 1) {
@@ -79,14 +74,14 @@ export default function useFullscreen() {
79
74
  }
80
75
 
81
76
  function exitFullscreen() {
82
- if (inFullscreen.value !== true) return
77
+ if (!inFullscreen.value) return
83
78
 
84
79
  if (historyEntry !== void 0) {
85
80
  History.remove(historyEntry)
86
81
  historyEntry = void 0
87
82
  }
88
83
 
89
- container.replaceChild(proxy.$el, fullscreenFillerNode)
84
+ fullscreenFillerNode.replaceWith(proxy.$el)
90
85
  inFullscreen.value = false
91
86
 
92
87
  counter = Math.max(0, counter - 1)
@@ -107,7 +102,7 @@ export default function useFullscreen() {
107
102
  })
108
103
 
109
104
  onMounted(() => {
110
- if (props.fullscreen === true) setFullscreen()
105
+ if (props.fullscreen) setFullscreen()
111
106
  })
112
107
 
113
108
  onBeforeUnmount(exitFullscreen)
@@ -13,7 +13,7 @@ export default function useHistory(showing, hide, hideOnRouteChange) {
13
13
  }
14
14
 
15
15
  onBeforeUnmount(() => {
16
- if (showing.value === true) removeFromHistory()
16
+ if (showing.value) removeFromHistory()
17
17
  })
18
18
 
19
19
  return {
@@ -21,7 +21,7 @@ export default function useHistory(showing, hide, hideOnRouteChange) {
21
21
 
22
22
  addToHistory() {
23
23
  historyEntry = {
24
- condition: () => hideOnRouteChange.value === true,
24
+ condition: () => hideOnRouteChange.value,
25
25
  handler: hide
26
26
  }
27
27
 
@@ -1,5 +1,5 @@
1
1
  import { mount } from '@vue/test-utils'
2
- import { describe, test, expect } from 'vitest'
2
+ import { describe, expect, test } from 'vitest'
3
3
  import { computed, defineComponent } from 'vue'
4
4
 
5
5
  import useHistory from './use-history.js'
@@ -1,31 +1,30 @@
1
1
  import { client } from '../../plugins/platform/Platform.js'
2
2
 
3
3
  const isJapanese =
4
- /[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]/
4
+ /[\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\uFF00-\uFF9F\u4E00-\u9FAF\u3400-\u4DBF]/
5
5
  const isChinese =
6
- /[\u4e00-\u9fff\u3400-\u4dbf\u{20000}-\u{2a6df}\u{2a700}-\u{2b73f}\u{2b740}-\u{2b81f}\u{2b820}-\u{2ceaf}\uf900-\ufaff\u3300-\u33ff\ufe30-\ufe4f\uf900-\ufaff\u{2f800}-\u{2fa1f}]/u
7
- const isKorean = /[\u3131-\u314e\u314f-\u3163\uac00-\ud7a3]/
6
+ /[\u4E00-\u9FFF\u3400-\u4DBF\u{20000}-\u{2A6DF}\u{2A700}-\u{2B73F}\u{2B740}-\u{2B81F}\u{2B820}-\u{2CEAF}\uF900-\uFAFF\u3300-\u33FF\uFE30-\uFE4F\uF900-\uFAFF\u{2F800}-\u{2FA1F}]/u
7
+ const isKorean = /[\u3131-\u314E\u314F-\u3163\uAC00-\uD7A3]/
8
8
  const isPlainText = /[a-z0-9_ -]$/i
9
9
 
10
10
  export default function useKeyComposition(onInput) {
11
11
  return function onComposition(e) {
12
12
  if (e.type === 'compositionend' || e.type === 'change') {
13
- if (e.target.qComposing !== true) return
13
+ if (!e.target.qComposing) return
14
14
  e.target.qComposing = false
15
15
  onInput(e)
16
16
  } else if (
17
17
  e.type === 'compositionupdate' &&
18
- e.target.qComposing !== true &&
18
+ !e.target.qComposing &&
19
19
  typeof e.data === 'string'
20
20
  ) {
21
- const isComposing =
22
- client.is.firefox === true
23
- ? isPlainText.test(e.data) === false
24
- : isJapanese.test(e.data) === true ||
25
- isChinese.test(e.data) === true ||
26
- isKorean.test(e.data) === true
21
+ const isComposing = client.is.firefox
22
+ ? !isPlainText.test(e.data)
23
+ : isJapanese.test(e.data) ||
24
+ isChinese.test(e.data) ||
25
+ isKorean.test(e.data)
27
26
 
28
- if (isComposing === true) {
27
+ if (isComposing) {
29
28
  e.target.qComposing = true
30
29
  }
31
30
  }
@@ -1,4 +1,4 @@
1
- import { watch, nextTick, onMounted, getCurrentInstance } from 'vue'
1
+ import { getCurrentInstance, nextTick, onMounted, watch } from 'vue'
2
2
 
3
3
  import { vmHasRouter } from '../../utils/private.vm/vm.js'
4
4
 
@@ -29,7 +29,7 @@ export default function useModelToggle({
29
29
  let payload
30
30
 
31
31
  function toggle(evt) {
32
- if (showing.value === true) {
32
+ if (showing.value) {
33
33
  hide(evt)
34
34
  } else {
35
35
  show(evt)
@@ -38,16 +38,16 @@ export default function useModelToggle({
38
38
 
39
39
  function show(evt) {
40
40
  if (
41
- props.disable === true ||
41
+ props.disable ||
42
42
  evt?.qAnchorHandled === true ||
43
- (canShow !== void 0 && canShow(evt) !== true)
43
+ (canShow !== void 0 && !canShow(evt))
44
44
  ) {
45
45
  return
46
46
  }
47
47
 
48
48
  const listener = props['onUpdate:modelValue'] !== void 0
49
49
 
50
- if (listener === true && __QUASAR_SSR_SERVER__ !== true) {
50
+ if (listener && !__QUASAR_SSR_SERVER__) {
51
51
  emit('update:modelValue', true)
52
52
  payload = evt
53
53
  nextTick(() => {
@@ -57,20 +57,15 @@ export default function useModelToggle({
57
57
  })
58
58
  }
59
59
 
60
- if (
61
- props.modelValue === null ||
62
- listener === false ||
63
- __QUASAR_SSR_SERVER__
64
- ) {
60
+ if (__QUASAR_SSR_SERVER__ || props.modelValue === null || !listener) {
65
61
  processShow(evt)
66
62
  }
67
63
  }
68
64
 
69
65
  function processShow(evt) {
70
- if (showing.value === true) return
66
+ if (showing.value) return
71
67
 
72
68
  showing.value = true
73
-
74
69
  emit('beforeShow', evt)
75
70
 
76
71
  if (handleShow !== void 0) {
@@ -81,11 +76,11 @@ export default function useModelToggle({
81
76
  }
82
77
 
83
78
  function hide(evt) {
84
- if (__QUASAR_SSR_SERVER__ || props.disable === true) return
79
+ if (__QUASAR_SSR_SERVER__ || props.disable) return
85
80
 
86
81
  const listener = props['onUpdate:modelValue'] !== void 0
87
82
 
88
- if (listener === true && __QUASAR_SSR_SERVER__ !== true) {
83
+ if (listener && !__QUASAR_SSR_SERVER__) {
89
84
  emit('update:modelValue', false)
90
85
  payload = evt
91
86
  nextTick(() => {
@@ -95,17 +90,13 @@ export default function useModelToggle({
95
90
  })
96
91
  }
97
92
 
98
- if (
99
- props.modelValue === null ||
100
- listener === false ||
101
- __QUASAR_SSR_SERVER__
102
- ) {
93
+ if (__QUASAR_SSR_SERVER__ || props.modelValue === null || !listener) {
103
94
  processHide(evt)
104
95
  }
105
96
  }
106
97
 
107
98
  function processHide(evt) {
108
- if (showing.value === false) return
99
+ if (!showing.value) return
109
100
 
110
101
  showing.value = false
111
102
 
@@ -119,30 +110,30 @@ export default function useModelToggle({
119
110
  }
120
111
 
121
112
  function processModelChange(val) {
122
- if (props.disable === true && val === true) {
113
+ if (props.disable && val) {
123
114
  if (props['onUpdate:modelValue'] !== void 0) {
124
115
  emit('update:modelValue', false)
125
116
  }
126
117
  } else if ((val === true) !== showing.value) {
127
- const fn = val === true ? processShow : processHide
118
+ const fn = val ? processShow : processHide
128
119
  fn(payload)
129
120
  }
130
121
  }
131
122
 
132
123
  watch(() => props.modelValue, processModelChange)
133
124
 
134
- if (hideOnRouteChange !== void 0 && vmHasRouter(vm) === true) {
125
+ if (hideOnRouteChange !== void 0 && vmHasRouter(vm)) {
135
126
  watch(
136
127
  () => proxy.$route.fullPath,
137
128
  () => {
138
- if (hideOnRouteChange.value === true && showing.value === true) {
129
+ if (hideOnRouteChange.value && showing.value) {
139
130
  hide()
140
131
  }
141
132
  }
142
133
  )
143
134
  }
144
135
 
145
- if (processOnMount === true) {
136
+ if (processOnMount) {
146
137
  onMounted(() => {
147
138
  processModelChange(props.modelValue)
148
139
  })
@@ -1,11 +1,11 @@
1
1
  import {
2
- h,
3
- ref,
2
+ KeepAlive,
3
+ Transition,
4
4
  computed,
5
- watch,
6
5
  getCurrentInstance,
7
- Transition,
8
- KeepAlive
6
+ h,
7
+ ref,
8
+ watch
9
9
  } from 'vue'
10
10
 
11
11
  import TouchSwipe from '../../directives/touch-swipe/TouchSwipe.js'
@@ -64,6 +64,10 @@ export const usePanelEmits = [
64
64
  'transition'
65
65
  ]
66
66
 
67
+ function isValidPanelName(name) {
68
+ return name !== void 0 && name !== null && name !== ''
69
+ }
70
+
67
71
  export default function usePanel() {
68
72
  const { props, emit, proxy } = getCurrentInstance()
69
73
  const { getCache } = useRenderCache()
@@ -84,9 +88,9 @@ export default function usePanel() {
84
88
  const panelIndex = { value: null }
85
89
 
86
90
  function onSwipe(evt) {
87
- const dir = props.vertical === true ? 'up' : 'left'
91
+ const dir = props.vertical ? 'up' : 'left'
88
92
  goToPanelByOffset(
89
- (proxy.$q.lang.rtl === true ? -1 : 1) * (evt.direction === dir ? 1 : -1)
93
+ (proxy.$q.lang.rtl ? -1 : 1) * (evt.direction === dir ? 1 : -1)
90
94
  )
91
95
  }
92
96
 
@@ -96,7 +100,7 @@ export default function usePanel() {
96
100
  onSwipe,
97
101
  void 0,
98
102
  {
99
- horizontal: props.vertical !== true,
103
+ horizontal: !props.vertical,
100
104
  vertical: props.vertical,
101
105
  mouse: true
102
106
  }
@@ -104,14 +108,11 @@ export default function usePanel() {
104
108
  ])
105
109
 
106
110
  const transitionPrev = computed(
107
- () =>
108
- props.transitionPrev ||
109
- `slide-${props.vertical === true ? 'down' : 'right'}`
111
+ () => props.transitionPrev || `slide-${props.vertical ? 'down' : 'right'}`
110
112
  )
111
113
 
112
114
  const transitionNext = computed(
113
- () =>
114
- props.transitionNext || `slide-${props.vertical === true ? 'up' : 'left'}`
115
+ () => props.transitionNext || `slide-${props.vertical ? 'up' : 'left'}`
115
116
  )
116
117
 
117
118
  const transitionStyle = computed(
@@ -137,10 +138,9 @@ export default function usePanel() {
137
138
  watch(
138
139
  () => props.modelValue,
139
140
  (newVal, oldVal) => {
140
- const index =
141
- isValidPanelName(newVal) === true ? getPanelIndex(newVal) : -1
141
+ const index = isValidPanelName(newVal) ? getPanelIndex(newVal) : -1
142
142
 
143
- if (forcedPanelTransition !== true) {
143
+ if (!forcedPanelTransition) {
144
144
  updatePanelTransition(
145
145
  index === -1 ? 0 : index < getPanelIndex(oldVal) ? -1 : 1
146
146
  )
@@ -167,10 +167,6 @@ export default function usePanel() {
167
167
  emit('update:modelValue', name)
168
168
  }
169
169
 
170
- function isValidPanelName(name) {
171
- return name !== void 0 && name !== null && name !== ''
172
- }
173
-
174
170
  function getPanelIndex(name) {
175
171
  return panels.findIndex(
176
172
  panel =>
@@ -188,7 +184,7 @@ export default function usePanel() {
188
184
 
189
185
  function updatePanelTransition(direction) {
190
186
  const val =
191
- direction !== 0 && props.animated === true && panelIndex.value !== -1
187
+ direction !== 0 && props.animated && panelIndex.value !== -1
192
188
  ? 'q-transition--' +
193
189
  (direction === -1 ? transitionPrev.value : transitionNext.value)
194
190
  : null
@@ -212,6 +208,8 @@ export default function usePanel() {
212
208
  updatePanelTransition(direction)
213
209
  forcedPanelTransition = true
214
210
  emit('update:modelValue', opt.props.name)
211
+
212
+ // oxlint-disable-next-line no-loop-func
215
213
  setTimeout(() => {
216
214
  forcedPanelTransition = false
217
215
  })
@@ -223,7 +221,7 @@ export default function usePanel() {
223
221
  }
224
222
 
225
223
  if (
226
- props.infinite === true &&
224
+ props.infinite &&
227
225
  panels.length !== 0 &&
228
226
  startIndex !== -1 &&
229
227
  startIndex !== panels.length
@@ -244,15 +242,15 @@ export default function usePanel() {
244
242
 
245
243
  function getPanelContentChild() {
246
244
  const panel =
247
- isValidPanelName(props.modelValue) === true &&
245
+ isValidPanelName(props.modelValue) &&
248
246
  updatePanelIndex() &&
249
247
  panels[panelIndex.value]
250
248
 
251
- return props.keepAlive === true
249
+ return props.keepAlive
252
250
  ? [
253
251
  h(KeepAlive, keepAliveProps.value, [
254
252
  h(
255
- needsUniqueKeepAliveWrapper.value === true
253
+ needsUniqueKeepAliveWrapper.value
256
254
  ? getCache(contentKey.value, () => ({
257
255
  ...PanelWrapper,
258
256
  name: contentKey.value
@@ -280,7 +278,7 @@ export default function usePanel() {
280
278
  function getPanelContent() {
281
279
  if (panels.length === 0) return
282
280
 
283
- return props.animated === true
281
+ return props.animated
284
282
  ? [h(Transition, { name: panelTransition.value }, getPanelContentChild)]
285
283
  : getPanelContentChild()
286
284
  }
@@ -290,7 +288,7 @@ export default function usePanel() {
290
288
  panel =>
291
289
  panel.props !== null &&
292
290
  panel.props.slot === void 0 &&
293
- isValidPanelName(panel.props.name) === true
291
+ isValidPanelName(panel.props.name)
294
292
  )
295
293
 
296
294
  return panels.length
@@ -1,17 +1,19 @@
1
- import { h, ref, onUnmounted, Teleport } from 'vue'
1
+ import { Teleport, h, onUnmounted, ref } from 'vue'
2
2
 
3
3
  import { createComponent } from '../../utils/private.create/create.js'
4
4
  import { noop } from '../../utils/event/event.js'
5
+ import { portalProxyList } from '../../utils/private.portal/portal.js'
6
+ import { injectProp } from '../../utils/private.inject-obj-prop/inject-obj-prop.js'
7
+
5
8
  import {
6
9
  addFocusWaitFlag,
7
10
  removeFocusWaitFlag
8
11
  } from '../../utils/private.focus/focus-manager.js'
12
+
9
13
  import {
10
14
  createGlobalNode,
11
15
  removeGlobalNode
12
16
  } from '../../utils/private.config/nodes.js'
13
- import { portalProxyList } from '../../utils/private.portal/portal.js'
14
- import { injectProp } from '../../utils/private.inject-obj-prop/inject-obj-prop.js'
15
17
 
16
18
  /**
17
19
  * Noop internal component to ease testing
@@ -70,7 +72,7 @@ export default function usePortal(vm, innerRef, renderPortalContent, type) {
70
72
  const onGlobalDialog = type === 'dialog' && isOnGlobalDialog(vm)
71
73
 
72
74
  function showPortal(isReady) {
73
- if (isReady === true) {
75
+ if (isReady) {
74
76
  removeFocusWaitFlag(focusObj)
75
77
  portalIsAccessible.value = true
76
78
  return
@@ -78,8 +80,8 @@ export default function usePortal(vm, innerRef, renderPortalContent, type) {
78
80
 
79
81
  portalIsAccessible.value = false
80
82
 
81
- if (portalIsActive.value === false) {
82
- if (onGlobalDialog === false && portalEl === null) {
83
+ if (!portalIsActive.value) {
84
+ if (!onGlobalDialog && portalEl === null) {
83
85
  portalEl = createGlobalNode(false, type)
84
86
  }
85
87
 
@@ -95,7 +97,7 @@ export default function usePortal(vm, innerRef, renderPortalContent, type) {
95
97
  function hidePortal(isReady) {
96
98
  portalIsAccessible.value = false
97
99
 
98
- if (isReady !== true) return
100
+ if (!isReady) return
99
101
 
100
102
  removeFocusWaitFlag(focusObj)
101
103
  portalIsActive.value = false
@@ -130,9 +132,9 @@ export default function usePortal(vm, innerRef, renderPortalContent, type) {
130
132
  portalIsAccessible,
131
133
 
132
134
  renderPortal: () =>
133
- onGlobalDialog === true
135
+ onGlobalDialog
134
136
  ? renderPortalContent()
135
- : portalIsActive.value === true
137
+ : portalIsActive.value
136
138
  ? [h(Teleport, { to: portalEl }, h(QPortal, renderPortalContent))]
137
139
  : void 0
138
140
  }
@@ -5,10 +5,7 @@ export default function usePreventScroll() {
5
5
 
6
6
  return {
7
7
  preventBodyScroll(state) {
8
- if (
9
- state !== currentState &&
10
- (currentState !== void 0 || state === true)
11
- ) {
8
+ if (state !== currentState && (currentState !== void 0 || state)) {
12
9
  currentState = state
13
10
  preventScroll(state)
14
11
  }