quasar 2.19.3 → 2.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (550) 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 +1 -1
  17. package/dist/icon-set/fontawesome-v7.umd.prod.js +1 -1
  18. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  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 +1 -1
  37. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  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 +5 -5
  41. package/dist/icon-set/svg-ionicons-v8.umd.prod.js +1 -1
  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 +1 -1
  48. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +1 -1
  49. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +1 -1
  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 +2621 -2604
  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 +2616 -2599
  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 +2 -2
  136. package/dist/types/icon-set.d.ts +16 -16
  137. package/dist/types/shim-icon-set.d.ts +1 -2
  138. package/dist/types/shim-lang.d.ts +1 -2
  139. package/dist/types/ts-helpers.d.ts +3 -3
  140. package/dist/types/tsconfig.json +1 -1
  141. package/dist/types/utils/scroll.d.ts +1 -1
  142. package/dist/types/utils.d.ts +2 -2
  143. package/dist/web-types/web-types.json +1 -1
  144. package/icon-set/bootstrap-icons.js +1 -1
  145. package/icon-set/eva-icons.js +22 -22
  146. package/icon-set/ionicons-v4.js +16 -16
  147. package/icon-set/svg-bootstrap-icons.js +1 -1
  148. package/icon-set/svg-eva-icons.js +22 -22
  149. package/icon-set/svg-fontawesome-v5.js +1 -1
  150. package/icon-set/svg-ionicons-v4.js +16 -16
  151. package/icon-set/svg-themify.js +7 -7
  152. package/icon-set/themify.js +7 -7
  153. package/lang/ar-TN.js +1 -1
  154. package/lang/ar.js +1 -1
  155. package/lang/az-Latn.js +1 -1
  156. package/lang/bg.js +1 -1
  157. package/lang/bn.js +1 -1
  158. package/lang/bs-BA.js +1 -1
  159. package/lang/ca.js +1 -1
  160. package/lang/cs.js +11 -6
  161. package/lang/da.js +1 -1
  162. package/lang/de-CH.js +1 -1
  163. package/lang/de-DE.js +1 -1
  164. package/lang/de.js +1 -1
  165. package/lang/el.js +1 -1
  166. package/lang/en-GB.js +1 -1
  167. package/lang/en-US.js +1 -1
  168. package/lang/eo.js +1 -1
  169. package/lang/es.js +1 -1
  170. package/lang/et.js +1 -1
  171. package/lang/eu.js +1 -1
  172. package/lang/fa-IR.js +1 -1
  173. package/lang/fa.js +1 -1
  174. package/lang/fi.js +1 -1
  175. package/lang/fr.js +1 -1
  176. package/lang/gn.js +1 -1
  177. package/lang/he.js +1 -1
  178. package/lang/hi.js +1 -1
  179. package/lang/hr.js +1 -1
  180. package/lang/hu.js +1 -1
  181. package/lang/id.js +1 -1
  182. package/lang/is.js +1 -1
  183. package/lang/it.js +1 -1
  184. package/lang/ja.js +1 -1
  185. package/lang/kk.js +1 -1
  186. package/lang/km.js +1 -1
  187. package/lang/kur-CKB.js +1 -1
  188. package/lang/lt.js +2 -2
  189. package/lang/lu.js +1 -1
  190. package/lang/lv.js +1 -1
  191. package/lang/mk.js +1 -1
  192. package/lang/ml.js +1 -1
  193. package/lang/mm.js +1 -1
  194. package/lang/ms-MY.js +1 -1
  195. package/lang/ms.js +1 -1
  196. package/lang/my.js +1 -1
  197. package/lang/nb-NO.js +1 -1
  198. package/lang/nl.js +1 -1
  199. package/lang/pl.js +1 -1
  200. package/lang/pt-BR.js +1 -1
  201. package/lang/pt.js +1 -1
  202. package/lang/ro.js +1 -1
  203. package/lang/ru.js +1 -1
  204. package/lang/sk.js +1 -1
  205. package/lang/sl.js +1 -1
  206. package/lang/sm.js +1 -1
  207. package/lang/sq.js +1 -1
  208. package/lang/sr-CYR.js +1 -1
  209. package/lang/sr.js +1 -1
  210. package/lang/sv.js +1 -1
  211. package/lang/ta.js +1 -1
  212. package/lang/th.js +1 -1
  213. package/lang/tl.js +1 -1
  214. package/lang/tr.js +1 -1
  215. package/lang/ug.js +1 -1
  216. package/lang/uk.js +1 -1
  217. package/lang/ur-PK.js +1 -1
  218. package/lang/uz-Cyrl.js +1 -1
  219. package/lang/uz-Latn.js +1 -1
  220. package/lang/vi.js +1 -1
  221. package/lang/zh-CN.js +1 -1
  222. package/lang/zh-TW.js +1 -1
  223. package/package.json +13 -17
  224. package/src/components/ajax-bar/QAjaxBar.js +22 -25
  225. package/src/components/avatar/QAvatar.js +3 -3
  226. package/src/components/avatar/QAvatar.test.js +2 -2
  227. package/src/components/badge/QBadge.js +9 -10
  228. package/src/components/badge/QBadge.test.js +2 -2
  229. package/src/components/banner/QBanner.js +6 -6
  230. package/src/components/banner/QBanner.test.js +2 -2
  231. package/src/components/bar/QBar.js +3 -3
  232. package/src/components/bar/QBar.test.js +2 -2
  233. package/src/components/breadcrumbs/QBreadcrumbs.js +5 -4
  234. package/src/components/breadcrumbs/QBreadcrumbs.test.js +3 -3
  235. package/src/components/breadcrumbs/QBreadcrumbsEl.js +4 -4
  236. package/src/components/breadcrumbs/QBreadcrumbsEl.test.js +2 -2
  237. package/src/components/btn/QBtn.js +39 -44
  238. package/src/components/btn/QBtn.test.js +2 -2
  239. package/src/components/btn/use-btn.js +34 -47
  240. package/src/components/btn/use-btn.test.js +5 -5
  241. package/src/components/btn-dropdown/QBtnDropdown.js +15 -16
  242. package/src/components/btn-group/QBtnGroup.js +3 -3
  243. package/src/components/btn-toggle/QBtnToggle.js +5 -9
  244. package/src/components/card/QCard.js +5 -5
  245. package/src/components/card/QCardActions.js +2 -2
  246. package/src/components/card/QCardSection.js +2 -2
  247. package/src/components/carousel/QCarousel.js +32 -38
  248. package/src/components/carousel/QCarouselControl.js +1 -1
  249. package/src/components/carousel/QCarouselSlide.js +1 -1
  250. package/src/components/carousel/QCarouselSlide.json +1 -1
  251. package/src/components/chat/QChatMessage.js +13 -14
  252. package/src/components/chat/QChatMessage.json +1 -1
  253. package/src/components/checkbox/QCheckbox.js +5 -5
  254. package/src/components/checkbox/use-checkbox.js +38 -50
  255. package/src/components/chip/QChip.js +26 -34
  256. package/src/components/chip/QChip.test.js +2 -2
  257. package/src/components/circular-progress/QCircularProgress.js +8 -11
  258. package/src/components/circular-progress/circular-progress.test.js +1 -1
  259. package/src/components/color/QColor.js +75 -98
  260. package/src/components/date/QDate.js +128 -140
  261. package/src/components/date/use-datetime.js +3 -6
  262. package/src/components/dialog/QDialog.js +44 -51
  263. package/src/components/dialog/QDialog.test.js +7 -7
  264. package/src/components/drawer/QDrawer.js +110 -152
  265. package/src/components/editor/QEditor.js +44 -37
  266. package/src/components/editor/editor-caret.js +27 -31
  267. package/src/components/editor/editor-utils.js +9 -5
  268. package/src/components/expansion-item/QExpansionItem.js +36 -48
  269. package/src/components/fab/QFab.js +11 -11
  270. package/src/components/fab/QFabAction.js +2 -4
  271. package/src/components/fab/use-fab.js +6 -7
  272. package/src/components/field/QField.js +2 -2
  273. package/src/components/file/QFile.js +26 -33
  274. package/src/components/footer/QFooter.js +40 -53
  275. package/src/components/form/QForm.js +37 -43
  276. package/src/components/form/QFormChildMixin.js +3 -3
  277. package/src/components/header/QHeader.js +35 -47
  278. package/src/components/icon/QIcon.js +19 -19
  279. package/src/components/img/QImg.js +24 -24
  280. package/src/components/img/QImg.json +3 -3
  281. package/src/components/infinite-scroll/QInfiniteScroll.js +38 -52
  282. package/src/components/inner-loading/QInnerLoading.js +3 -3
  283. package/src/components/input/QInput.js +53 -52
  284. package/src/components/input/use-mask.js +56 -54
  285. package/src/components/intersection/QIntersection.js +6 -8
  286. package/src/components/item/QItem.js +20 -30
  287. package/src/components/item/QItemLabel.js +5 -7
  288. package/src/components/item/QItemSection.js +6 -6
  289. package/src/components/item/QList.js +6 -6
  290. package/src/components/item/QList.test.js +2 -2
  291. package/src/components/knob/QKnob.js +39 -44
  292. package/src/components/layout/QLayout.js +30 -34
  293. package/src/components/linear-progress/QLinearProgress.js +14 -23
  294. package/src/components/markup-table/QMarkupTable.js +7 -9
  295. package/src/components/menu/QMenu.js +36 -37
  296. package/src/components/no-ssr/QNoSsr.js +1 -1
  297. package/src/components/option-group/QOptionGroup.js +5 -5
  298. package/src/components/page/QPage.js +16 -18
  299. package/src/components/page/QPageContainer.js +9 -9
  300. package/src/components/page-scroller/QPageScroller.js +11 -13
  301. package/src/components/page-sticky/use-page-sticky.js +18 -18
  302. package/src/components/pagination/QPagination.js +24 -26
  303. package/src/components/parallax/QParallax.js +15 -9
  304. package/src/components/parallax/QParallax.json +1 -1
  305. package/src/components/popup-edit/QPopupEdit.js +10 -13
  306. package/src/components/popup-proxy/QPopupProxy.js +5 -7
  307. package/src/components/pull-to-refresh/QPullToRefresh.js +15 -17
  308. package/src/components/radio/QRadio.js +24 -29
  309. package/src/components/range/QRange.js +33 -37
  310. package/src/components/rating/QRating.js +59 -61
  311. package/src/components/resize-observer/QResizeObserver.js +55 -62
  312. package/src/components/scroll-area/QScrollArea.js +32 -36
  313. package/src/components/scroll-observer/QScrollObserver.js +3 -3
  314. package/src/components/select/QSelect.js +208 -269
  315. package/src/components/separator/QSeparator.js +7 -10
  316. package/src/components/skeleton/QSkeleton.js +4 -4
  317. package/src/components/slide-item/QSlideItem.js +7 -7
  318. package/src/components/slide-transition/QSlideTransition.js +4 -4
  319. package/src/components/slider/QSlider.js +13 -16
  320. package/src/components/slider/use-slider.js +53 -81
  321. package/src/components/slider/use-slider.json +3 -3
  322. package/src/components/space/QSpace.test.js +1 -1
  323. package/src/components/spinner/QSpinner.test.js +2 -2
  324. package/src/components/spinner/QSpinnerAudio.test.js +2 -2
  325. package/src/components/spinner/QSpinnerBall.test.js +2 -2
  326. package/src/components/spinner/QSpinnerBars.test.js +2 -2
  327. package/src/components/spinner/QSpinnerBox.test.js +2 -2
  328. package/src/components/spinner/QSpinnerClock.test.js +2 -2
  329. package/src/components/spinner/QSpinnerComment.test.js +2 -2
  330. package/src/components/spinner/QSpinnerCube.test.js +2 -2
  331. package/src/components/spinner/QSpinnerDots.test.js +2 -2
  332. package/src/components/spinner/QSpinnerFacebook.test.js +2 -2
  333. package/src/components/spinner/QSpinnerGears.test.js +2 -2
  334. package/src/components/spinner/QSpinnerGrid.test.js +2 -2
  335. package/src/components/spinner/QSpinnerHearts.test.js +2 -2
  336. package/src/components/spinner/QSpinnerHourglass.test.js +2 -2
  337. package/src/components/spinner/QSpinnerInfinity.test.js +2 -2
  338. package/src/components/spinner/QSpinnerIos.test.js +2 -2
  339. package/src/components/spinner/QSpinnerOrbit.test.js +2 -2
  340. package/src/components/spinner/QSpinnerOval.test.js +2 -2
  341. package/src/components/spinner/QSpinnerPie.test.js +2 -2
  342. package/src/components/spinner/QSpinnerPuff.test.js +2 -2
  343. package/src/components/spinner/QSpinnerRadio.test.js +2 -2
  344. package/src/components/spinner/QSpinnerRings.test.js +2 -2
  345. package/src/components/spinner/QSpinnerTail.test.js +2 -2
  346. package/src/components/spinner/use-spinner.test.js +1 -1
  347. package/src/components/splitter/QSplitter.js +19 -21
  348. package/src/components/stepper/QStep.js +12 -14
  349. package/src/components/stepper/QStepper.js +13 -14
  350. package/src/components/stepper/StepHeader.js +34 -35
  351. package/src/components/tab-panels/QTabPanels.js +3 -3
  352. package/src/components/table/QTable.js +82 -100
  353. package/src/components/table/QTd.js +3 -3
  354. package/src/components/table/QTh.js +5 -6
  355. package/src/components/table/QTr.js +3 -3
  356. package/src/components/table/table-column-selection.js +4 -6
  357. package/src/components/table/table-filter.js +2 -2
  358. package/src/components/table/table-pagination.js +14 -20
  359. package/src/components/table/table-row-expand.js +3 -3
  360. package/src/components/table/table-row-selection.js +10 -20
  361. package/src/components/table/table-sort.js +7 -7
  362. package/src/components/tabs/QRouteTab.js +1 -1
  363. package/src/components/tabs/QTab.js +1 -1
  364. package/src/components/tabs/QTabs.js +82 -109
  365. package/src/components/tabs/use-tab.js +36 -38
  366. package/src/components/time/QTime.js +109 -132
  367. package/src/components/timeline/QTimeline.js +7 -4
  368. package/src/components/timeline/QTimelineEntry.js +7 -6
  369. package/src/components/timeline/QTimelineEntry.json +1 -1
  370. package/src/components/toggle/QToggle.js +6 -8
  371. package/src/components/toolbar/QToolbar.js +2 -2
  372. package/src/components/toolbar/QToolbar.test.js +2 -2
  373. package/src/components/toolbar/QToolbarTitle.js +2 -4
  374. package/src/components/toolbar/QToolbarTitle.test.js +2 -2
  375. package/src/components/tooltip/QTooltip.js +27 -28
  376. package/src/components/tree/QTree.js +96 -114
  377. package/src/components/tree/QTree.json +1 -1
  378. package/src/components/uploader/QUploaderAddTrigger.js +2 -2
  379. package/src/components/uploader/uploader-core.js +44 -51
  380. package/src/components/uploader/xhr-uploader-plugin.js +13 -17
  381. package/src/components/video/QVideo.js +1 -1
  382. package/src/components/video/QVideo.test.js +2 -2
  383. package/src/components/virtual-scroll/QVirtualScroll.js +9 -10
  384. package/src/components/virtual-scroll/use-virtual-scroll.js +42 -50
  385. package/src/composables/private.use-align/use-align.js +2 -2
  386. package/src/composables/private.use-align/use-align.test.js +1 -1
  387. package/src/composables/private.use-anchor/use-anchor.js +23 -32
  388. package/src/composables/private.use-dark/use-dark.test.js +1 -1
  389. package/src/composables/private.use-field/use-field.js +79 -99
  390. package/src/composables/private.use-file/use-file-dom-props.js +2 -2
  391. package/src/composables/private.use-file/use-file.js +27 -27
  392. package/src/composables/private.use-fullscreen/use-fullscreen.js +15 -20
  393. package/src/composables/private.use-history/use-history.js +2 -2
  394. package/src/composables/private.use-history/use-history.test.js +1 -1
  395. package/src/composables/private.use-key-composition/use-key-composition.js +11 -12
  396. package/src/composables/private.use-model-toggle/use-model-toggle.js +16 -25
  397. package/src/composables/private.use-panel/use-panel.js +25 -27
  398. package/src/composables/private.use-portal/use-portal.js +11 -9
  399. package/src/composables/private.use-prevent-scroll/use-prevent-scroll.js +1 -4
  400. package/src/composables/private.use-ratio/use-ratio.js +6 -5
  401. package/src/composables/private.use-ratio/use-ratio.test.js +1 -1
  402. package/src/composables/private.use-refocus-target/use-refocus-target.js +2 -4
  403. package/src/composables/private.use-router-link/use-router-link.js +44 -55
  404. package/src/composables/private.use-scroll-target/use-scroll-target.js +1 -1
  405. package/src/composables/private.use-size/use-size.test.js +1 -1
  406. package/src/composables/private.use-transition/use-transition.test.js +1 -1
  407. package/src/composables/private.use-validate/use-validate.js +23 -36
  408. package/src/composables/use-dialog-plugin-component/use-dialog-plugin-component.js +1 -1
  409. package/src/composables/use-form/private.use-form.js +1 -1
  410. package/src/composables/use-form/private.use-form.test.js +3 -3
  411. package/src/composables/use-form/use-form-child.js +7 -7
  412. package/src/composables/use-hydration/use-hydration.js +2 -2
  413. package/src/composables/use-hydration/use-hydration.test.js +1 -1
  414. package/src/composables/use-id/use-id.js +4 -8
  415. package/src/composables/use-id/use-id.test.js +1 -1
  416. package/src/composables/use-interval/use-interval.js +2 -2
  417. package/src/composables/use-interval/use-interval.test.js +1 -1
  418. package/src/composables/use-meta/use-meta.js +3 -3
  419. package/src/composables/use-quasar/use-quasar.test.js +1 -1
  420. package/src/composables/use-render-cache/use-render-cache.js +1 -1
  421. package/src/composables/use-render-cache/use-render-cache.test.js +1 -1
  422. package/src/composables/use-split-attrs/use-split-attrs.js +3 -7
  423. package/src/composables/use-split-attrs/use-split-attrs.test.js +1 -1
  424. package/src/composables/use-tick/use-tick.js +3 -3
  425. package/src/composables/use-tick/use-tick.test.js +2 -2
  426. package/src/composables/use-timeout/use-timeout.js +2 -2
  427. package/src/composables/use-timeout/use-timeout.test.js +1 -1
  428. package/src/directives/close-popup/ClosePopup.js +4 -9
  429. package/src/directives/intersection/Intersection.js +5 -8
  430. package/src/directives/morph/Morph.js +12 -18
  431. package/src/directives/ripple/Ripple.js +19 -26
  432. package/src/directives/ripple/Ripple.test.js +2 -2
  433. package/src/directives/scroll/Scroll.js +2 -2
  434. package/src/directives/touch-hold/TouchHold.js +22 -28
  435. package/src/directives/touch-pan/TouchPan.js +68 -84
  436. package/src/directives/touch-repeat/TouchRepeat.js +28 -39
  437. package/src/directives/touch-swipe/TouchSwipe.js +30 -33
  438. package/src/index.ssr.js +2 -0
  439. package/src/index.umd.js +2 -0
  440. package/src/install-quasar.js +9 -9
  441. package/src/plugins/addressbar/AddressbarColor.js +9 -9
  442. package/src/plugins/addressbar/AddressbarColor.test.js +2 -2
  443. package/src/plugins/app-fullscreen/AppFullscreen.js +11 -10
  444. package/src/plugins/app-fullscreen/AppFullscreen.test.js +2 -2
  445. package/src/plugins/app-fullscreen/test/mock-fullscreen.js +2 -2
  446. package/src/plugins/app-visibility/AppVisibility.js +5 -5
  447. package/src/plugins/app-visibility/AppVisibility.test.js +2 -2
  448. package/src/plugins/bottom-sheet/BottomSheet.js +2 -2
  449. package/src/plugins/bottom-sheet/component/BottomSheetComponent.js +4 -4
  450. package/src/plugins/cookies/Cookies.js +50 -62
  451. package/src/plugins/dark/Dark.js +3 -5
  452. package/src/plugins/dark/Dark.test.js +1 -1
  453. package/src/plugins/dialog/Dialog.js +2 -2
  454. package/src/plugins/dialog/component/DialogPluginComponent.js +17 -20
  455. package/src/plugins/icon-set/IconSet.js +2 -4
  456. package/src/plugins/icon-set/IconSet.test.js +1 -1
  457. package/src/plugins/lang/Lang.js +7 -10
  458. package/src/plugins/lang/Lang.json +2 -2
  459. package/src/plugins/lang/Lang.test.js +2 -2
  460. package/src/plugins/loading/Loading.js +10 -12
  461. package/src/plugins/loading-bar/LoadingBar.js +4 -4
  462. package/src/plugins/meta/Meta.js +10 -11
  463. package/src/plugins/notify/Notify.js +67 -72
  464. package/src/plugins/platform/Platform.js +19 -21
  465. package/src/plugins/platform/Platform.test.js +1 -1
  466. package/src/plugins/private.body/Body.js +23 -29
  467. package/src/plugins/private.body/Body.test.js +1 -1
  468. package/src/plugins/private.history/History.js +17 -25
  469. package/src/plugins/private.history/History.test.js +1 -1
  470. package/src/plugins/screen/Screen.js +16 -16
  471. package/src/plugins/screen/Screen.test.js +1 -1
  472. package/src/plugins/storage/LocalStorage.js +3 -4
  473. package/src/plugins/storage/LocalStorage.test.js +2 -2
  474. package/src/plugins/storage/SessionStorage.js +3 -4
  475. package/src/plugins/storage/SessionStorage.test.js +2 -2
  476. package/src/plugins/storage/engine/web-storage.js +30 -23
  477. package/src/plugins/storage/engine/web-storage.test.js +1 -1
  478. package/src/utils/EventBus/EventBus.js +3 -4
  479. package/src/utils/EventBus/EventBus.test.js +1 -1
  480. package/src/utils/clone/clone.test.js +4 -8
  481. package/src/utils/colors/colors.js +38 -29
  482. package/src/utils/colors/colors.test.js +2 -2
  483. package/src/utils/copy-to-clipboard/copy-to-clipboard.js +6 -11
  484. package/src/utils/create-meta-mixin/create-meta-mixin.js +2 -2
  485. package/src/utils/create-uploader-component/create-uploader-component.js +12 -7
  486. package/src/utils/css-var/get-css-var.test.js +2 -2
  487. package/src/utils/css-var/set-css-var.test.js +2 -2
  488. package/src/utils/date/date.js +229 -172
  489. package/src/utils/date/private.persian.js +11 -11
  490. package/src/utils/debounce/debounce.js +3 -7
  491. package/src/utils/debounce/debounce.test.js +1 -1
  492. package/src/utils/dom/dom.js +2 -4
  493. package/src/utils/dom/dom.test.js +4 -4
  494. package/src/utils/event/event.js +21 -23
  495. package/src/utils/export-file/export-file.js +3 -3
  496. package/src/utils/extend/extend.js +15 -14
  497. package/src/utils/extend/extend.test.js +2 -2
  498. package/src/utils/format/format.js +4 -10
  499. package/src/utils/format/format.test.js +1 -1
  500. package/src/utils/frame-debounce/frame-debounce.js +23 -12
  501. package/src/utils/frame-debounce/frame-debounce.test.js +1 -1
  502. package/src/utils/is/is.js +15 -26
  503. package/src/utils/is/is.test.js +8 -7
  504. package/src/utils/morph/morph.js +57 -48
  505. package/src/utils/open-url/open-url.js +7 -7
  506. package/src/utils/patterns/patterns.js +26 -23
  507. package/src/utils/patterns/patterns.test.js +1 -1
  508. package/src/utils/private.click-outside/click-outside.js +5 -5
  509. package/src/utils/private.config/instance-config.js +2 -0
  510. package/src/utils/private.config/instance-config.test.js +4 -4
  511. package/src/utils/private.config/nodes.js +5 -5
  512. package/src/utils/private.config/nodes.test.js +4 -4
  513. package/src/utils/private.create/create.test.js +1 -1
  514. package/src/utils/private.dialog/create-dialog.js +9 -12
  515. package/src/utils/private.focus/focus-manager.js +5 -1
  516. package/src/utils/private.focus/focus-manager.test.js +4 -4
  517. package/src/utils/private.focus/focusout.js +2 -2
  518. package/src/utils/private.focus/focusout.test.js +1 -1
  519. package/src/utils/private.get-emits-object/get-emits-object.test.js +1 -1
  520. package/src/utils/private.inject-obj-prop/inject-obj-prop.test.js +2 -2
  521. package/src/utils/private.keyboard/escape-key.js +5 -5
  522. package/src/utils/private.keyboard/escape-key.test.js +1 -1
  523. package/src/utils/private.keyboard/key-composition.js +4 -6
  524. package/src/utils/private.noop-ssr-directive-transform/noop-ssr-directive-transform.js +3 -1
  525. package/src/utils/private.noop-ssr-directive-transform/noop-ssr-directive-transform.test.js +1 -1
  526. package/src/utils/private.portal/portal.js +5 -5
  527. package/src/utils/private.position-engine/position-engine.js +20 -22
  528. package/src/utils/private.render/render.js +5 -7
  529. package/src/utils/private.render/render.test.js +5 -5
  530. package/src/utils/private.rtl/rtl.js +3 -2
  531. package/src/utils/private.rtl/rtl.test.js +1 -1
  532. package/src/utils/private.selection/selection.js +1 -1
  533. package/src/utils/private.selection/selection.test.js +2 -2
  534. package/src/utils/private.sort/sort.test.js +2 -2
  535. package/src/utils/private.touch/touch.js +10 -14
  536. package/src/utils/private.touch/touch.test.js +1 -1
  537. package/src/utils/private.vm/vm.js +2 -2
  538. package/src/utils/private.vm/vm.test.js +4 -4
  539. package/src/utils/run-sequential-promises/run-sequential-promises.js +44 -54
  540. package/src/utils/run-sequential-promises/run-sequential-promises.test.js +183 -0
  541. package/src/utils/scroll/prevent-scroll.js +9 -9
  542. package/src/utils/scroll/scroll.js +11 -12
  543. package/src/utils/throttle/throttle.js +4 -3
  544. package/src/utils/throttle/throttle.test.js +1 -1
  545. package/src/utils/uid/uid.js +51 -77
  546. package/src/utils/uid/uid.test.js +3 -3
  547. package/wrappers/index.cjs +2 -2
  548. package/wrappers/index.js +2 -2
  549. package/dist/vetur/quasar-attributes.json +0 -1
  550. package/dist/vetur/quasar-tags.json +0 -1
@@ -24,25 +24,18 @@ export function useTableRowSelection(props, emit, computedRows, getRowKey) {
24
24
  })
25
25
 
26
26
  const hasSelectionMode = computed(() => props.selection !== 'none')
27
-
28
27
  const singleSelection = computed(() => props.selection === 'single')
29
-
30
28
  const multipleSelection = computed(() => props.selection === 'multiple')
31
-
32
29
  const allRowsSelected = computed(
33
30
  () =>
34
31
  computedRows.value.length !== 0 &&
35
- computedRows.value.every(
36
- row => selectedKeys.value[getRowKey.value(row)] === true
37
- )
32
+ computedRows.value.every(row => selectedKeys.value[getRowKey.value(row)])
38
33
  )
39
34
 
40
35
  const someRowsSelected = computed(
41
36
  () =>
42
- allRowsSelected.value !== true &&
43
- computedRows.value.some(
44
- row => selectedKeys.value[getRowKey.value(row)] === true
45
- )
37
+ !allRowsSelected.value &&
38
+ computedRows.value.some(row => selectedKeys.value[getRowKey.value(row)])
46
39
  )
47
40
 
48
41
  const rowsSelectedNumber = computed(() => props.selected.length)
@@ -58,16 +51,13 @@ export function useTableRowSelection(props, emit, computedRows, getRowKey) {
58
51
  function updateSelection(keys, rows, added, evt) {
59
52
  emit('selection', { rows, added, keys, evt })
60
53
 
61
- const payload =
62
- singleSelection.value === true
63
- ? added === true
64
- ? rows
65
- : []
66
- : added === true
67
- ? props.selected.concat(rows)
68
- : props.selected.filter(
69
- row => keys.includes(getRowKey.value(row)) === false
70
- )
54
+ const payload = singleSelection.value
55
+ ? added
56
+ ? rows
57
+ : []
58
+ : added
59
+ ? [...props.selected, ...rows]
60
+ : props.selected.filter(row => !keys.includes(getRowKey.value(row)))
71
61
 
72
62
  emit('update:selected', payload)
73
63
  }
@@ -1,7 +1,7 @@
1
1
  import { computed } from 'vue'
2
2
 
3
3
  import { sortDate } from '../../utils/private.sort/sort.js'
4
- import { isNumber, isDate, isObject } from '../../utils/is/is.js'
4
+ import { isDate, isNumber, isObject } from '../../utils/is/is.js'
5
5
 
6
6
  export const useTableSortProps = {
7
7
  sortMethod: Function,
@@ -36,7 +36,7 @@ export function useTableSort(
36
36
  return data
37
37
  }
38
38
 
39
- const dir = descending === true ? -1 : 1,
39
+ const dir = descending ? -1 : 1,
40
40
  val =
41
41
  typeof col.field === 'function'
42
42
  ? v => col.field(v)
@@ -60,10 +60,10 @@ export function useTableSort(
60
60
  // due to the above two statements
61
61
  return col.sort(A, B, a, b) * dir
62
62
  }
63
- if (isNumber(A) === true && isNumber(B) === true) {
63
+ if (isNumber(A) && isNumber(B)) {
64
64
  return (A - B) * dir
65
65
  }
66
- if (isDate(A) === true && isDate(B) === true) {
66
+ if (isDate(A) && isDate(B)) {
67
67
  return sortDate(A, B) * dir
68
68
  }
69
69
  if (typeof A === 'boolean' && typeof B === 'boolean') {
@@ -80,7 +80,7 @@ export function useTableSort(
80
80
  function sort(col /* String(col name) or Object(col definition) */) {
81
81
  let sortOrder = props.columnSortOrder
82
82
 
83
- if (isObject(col) === true) {
83
+ if (isObject(col)) {
84
84
  if (col.sortOrder) {
85
85
  sortOrder = col.sortOrder
86
86
  }
@@ -98,9 +98,9 @@ export function useTableSort(
98
98
  if (sortBy !== col) {
99
99
  sortBy = col
100
100
  descending = sortOrder === 'da'
101
- } else if (props.binaryStateSort === true) {
101
+ } else if (props.binaryStateSort) {
102
102
  descending = !descending
103
- } else if (descending === true) {
103
+ } else if (descending) {
104
104
  if (sortOrder === 'ad') {
105
105
  sortBy = null
106
106
  } else {
@@ -3,7 +3,7 @@ import { computed, watch } from 'vue'
3
3
  import useRouterLink, {
4
4
  useRouterLinkProps
5
5
  } from '../../composables/private.use-router-link/use-router-link.js'
6
- import useTab, { useTabProps, useTabEmits } from './use-tab.js'
6
+ import useTab, { useTabEmits, useTabProps } from './use-tab.js'
7
7
 
8
8
  import { createComponent } from '../../utils/private.create/create.js'
9
9
 
@@ -1,4 +1,4 @@
1
- import useTab, { useTabProps, useTabEmits } from './use-tab.js'
1
+ import useTab, { useTabEmits, useTabProps } from './use-tab.js'
2
2
 
3
3
  import { createComponent } from '../../utils/private.create/create.js'
4
4
 
@@ -1,13 +1,13 @@
1
1
  import {
2
- h,
3
- ref,
4
2
  computed,
5
- watch,
6
- onBeforeUnmount,
3
+ getCurrentInstance,
4
+ h,
7
5
  onActivated,
6
+ onBeforeUnmount,
8
7
  onDeactivated,
9
- getCurrentInstance,
10
- provide
8
+ provide,
9
+ ref,
10
+ watch
11
11
  } from 'vue'
12
12
 
13
13
  import QIcon from '../icon/QIcon.js'
@@ -22,9 +22,19 @@ import { tabsKey } from '../../utils/private.symbols/symbols.js'
22
22
  import { rtlHasScrollBug } from '../../utils/private.rtl/rtl.js'
23
23
 
24
24
  function getIndicatorClass(color, top, vertical) {
25
- const pos = vertical === true ? ['left', 'right'] : ['top', 'bottom']
25
+ const pos = vertical ? ['left', 'right'] : ['top', 'bottom']
26
26
 
27
- return `absolute-${top === true ? pos[0] : pos[1]}${color ? ` text-${color}` : ''}`
27
+ return `absolute-${top ? pos[0] : pos[1]}${color ? ` text-${color}` : ''}`
28
+ }
29
+
30
+ function hasQueryIncluded(targetQuery, matchingQuery) {
31
+ for (const key in targetQuery) {
32
+ if (targetQuery[key] !== matchingQuery[key]) {
33
+ return false
34
+ }
35
+ }
36
+
37
+ return true
28
38
  }
29
39
 
30
40
  const alignValues = ['left', 'center', 'right', 'justify']
@@ -125,21 +135,18 @@ export default createComponent({
125
135
  const val = currentModel.value
126
136
 
127
137
  for (let i = 0; i < len; i++) {
128
- if (tabDataList[i].name.value === val) {
129
- return true
130
- }
138
+ if (tabDataList[i].name.value === val) return true
131
139
  }
132
140
 
133
141
  return false
134
142
  })
135
143
 
136
144
  const alignClass = computed(() => {
137
- const align =
138
- scrollable.value === true
139
- ? 'left'
140
- : justify.value === true
141
- ? 'justify'
142
- : props.align
145
+ const align = scrollable.value
146
+ ? 'left'
147
+ : justify.value
148
+ ? 'justify'
149
+ : props.align
143
150
 
144
151
  return `q-tabs__content--align-${align}`
145
152
  })
@@ -147,13 +154,13 @@ export default createComponent({
147
154
  const classes = computed(
148
155
  () =>
149
156
  'q-tabs row no-wrap items-center' +
150
- ` q-tabs--${scrollable.value === true ? '' : 'not-'}scrollable` +
151
- ` q-tabs--${props.vertical === true ? 'vertical' : 'horizontal'}` +
152
- ` q-tabs__arrows--${props.outsideArrows === true ? 'outside' : 'inside'}` +
153
- ` q-tabs--mobile-with${props.mobileArrows === true ? '' : 'out'}-arrows` +
154
- (props.dense === true ? ' q-tabs--dense' : '') +
155
- (props.shrink === true ? ' col-shrink' : '') +
156
- (props.stretch === true ? ' self-stretch' : '')
157
+ ` q-tabs--${scrollable.value ? '' : 'not-'}scrollable` +
158
+ ` q-tabs--${props.vertical ? 'vertical' : 'horizontal'}` +
159
+ ` q-tabs__arrows--${props.outsideArrows ? 'outside' : 'inside'}` +
160
+ ` q-tabs--mobile-with${props.mobileArrows ? '' : 'out'}-arrows` +
161
+ (props.dense ? ' q-tabs--dense' : '') +
162
+ (props.shrink ? ' col-shrink' : '') +
163
+ (props.stretch ? ' self-stretch' : '')
157
164
  )
158
165
 
159
166
  const innerClass = computed(
@@ -164,7 +171,7 @@ export default createComponent({
164
171
  )
165
172
 
166
173
  const domProps = computed(() =>
167
- props.vertical === true
174
+ props.vertical
168
175
  ? {
169
176
  container: 'height',
170
177
  content: 'offsetHeight',
@@ -173,12 +180,8 @@ export default createComponent({
173
180
  : { container: 'width', content: 'offsetWidth', scroll: 'scrollWidth' }
174
181
  )
175
182
 
176
- const isRTL = computed(
177
- () => props.vertical !== true && $q.lang.rtl === true
178
- )
179
- const rtlPosCorrection = computed(
180
- () => rtlHasScrollBug === false && isRTL.value === true
181
- )
183
+ const isRTL = computed(() => !props.vertical && $q.lang.rtl === true)
184
+ const rtlPosCorrection = computed(() => !rtlHasScrollBug && isRTL.value)
182
185
 
183
186
  watch(isRTL, updateArrows)
184
187
 
@@ -194,11 +197,11 @@ export default createComponent({
194
197
  function updateModel({ name, setCurrent, skipEmit }) {
195
198
  if (currentModel.value === name) return
196
199
 
197
- if (skipEmit !== true && props['onUpdate:modelValue'] !== void 0) {
200
+ if (!skipEmit && props['onUpdate:modelValue'] !== void 0) {
198
201
  emit('update:modelValue', name)
199
202
  }
200
203
 
201
- if (setCurrent === true || props['onUpdate:modelValue'] === void 0) {
204
+ if (setCurrent || props['onUpdate:modelValue'] === void 0) {
202
205
  animate(currentModel.value, name)
203
206
  currentModel.value = name
204
207
  }
@@ -235,9 +238,9 @@ export default createComponent({
235
238
  scrollable.value = scroll
236
239
 
237
240
  // Arrows need to be updated even if the scroll status was already true
238
- if (scroll === true) registerUpdateArrowsTick(updateArrows)
241
+ if (scroll) registerUpdateArrowsTick(updateArrows)
239
242
 
240
- justify.value = size < parseInt(props.breakpoint, 10)
243
+ justify.value = size < Number.parseInt(props.breakpoint, 10)
241
244
  }
242
245
 
243
246
  function animate(oldName, newName) {
@@ -250,7 +253,7 @@ export default createComponent({
250
253
  ? tabDataList.find(tab => tab.name.value === newName)
251
254
  : null
252
255
 
253
- if (hadActivated === true) {
256
+ if (hadActivated) {
254
257
  // After the component has been re-activated
255
258
  // we should not animate the transition.
256
259
  // Consider it as if the component has just been mounted.
@@ -272,10 +275,9 @@ export default createComponent({
272
275
  const oldPos = oldEl.getBoundingClientRect(),
273
276
  newPos = newEl.getBoundingClientRect()
274
277
 
275
- newEl.style.transform =
276
- props.vertical === true
277
- ? `translate3d(0,${oldPos.top - newPos.top}px,0) scale3d(1,${newPos.height ? oldPos.height / newPos.height : 1},1)`
278
- : `translate3d(${oldPos.left - newPos.left}px,0,0) scale3d(${newPos.width ? oldPos.width / newPos.width : 1},1,1)`
278
+ newEl.style.transform = props.vertical
279
+ ? `translate3d(0,${oldPos.top - newPos.top}px,0) scale3d(1,${newPos.height ? oldPos.height / newPos.height : 1},1)`
280
+ : `translate3d(${oldPos.left - newPos.left}px,0,0) scale3d(${newPos.width ? oldPos.width / newPos.width : 1},1,1)`
279
281
 
280
282
  // allow scope updates to kick in (QRouteTab needs more time)
281
283
  registerAnimateTick(() => {
@@ -287,7 +289,7 @@ export default createComponent({
287
289
  })
288
290
  }
289
291
 
290
- if (newTab && scrollable.value === true) {
292
+ if (newTab && scrollable.value) {
291
293
  scrollToTabEl(newTab.rootRef.value)
292
294
  }
293
295
  }
@@ -297,23 +299,19 @@ export default createComponent({
297
299
  contentRef.value.getBoundingClientRect(),
298
300
  newPos = el.getBoundingClientRect()
299
301
 
300
- let offset =
301
- props.vertical === true ? newPos.top - top : newPos.left - left
302
+ let offset = props.vertical ? newPos.top - top : newPos.left - left
302
303
 
303
304
  if (offset < 0) {
304
- contentRef.value[
305
- props.vertical === true ? 'scrollTop' : 'scrollLeft'
306
- ] += Math.floor(offset)
305
+ contentRef.value[props.vertical ? 'scrollTop' : 'scrollLeft'] +=
306
+ Math.floor(offset)
307
307
  updateArrows()
308
308
  return
309
309
  }
310
310
 
311
- offset +=
312
- props.vertical === true ? newPos.height - height : newPos.width - width
311
+ offset += props.vertical ? newPos.height - height : newPos.width - width
313
312
  if (offset > 0) {
314
- contentRef.value[
315
- props.vertical === true ? 'scrollTop' : 'scrollLeft'
316
- ] += Math.ceil(offset)
313
+ contentRef.value[props.vertical ? 'scrollTop' : 'scrollLeft'] +=
314
+ Math.ceil(offset)
317
315
  updateArrows()
318
316
  }
319
317
  }
@@ -323,42 +321,32 @@ export default createComponent({
323
321
  if (content === null) return
324
322
 
325
323
  const rect = content.getBoundingClientRect(),
326
- pos =
327
- props.vertical === true
328
- ? content.scrollTop
329
- : Math.abs(content.scrollLeft)
324
+ pos = props.vertical ? content.scrollTop : Math.abs(content.scrollLeft)
330
325
 
331
- if (isRTL.value === true) {
326
+ if (isRTL.value) {
332
327
  leftArrow.value = Math.ceil(pos + rect.width) < content.scrollWidth - 1
333
328
  rightArrow.value = pos > 0
334
329
  } else {
335
330
  leftArrow.value = pos > 0
336
- rightArrow.value =
337
- props.vertical === true
338
- ? Math.ceil(pos + rect.height) < content.scrollHeight
339
- : Math.ceil(pos + rect.width) < content.scrollWidth
331
+ rightArrow.value = props.vertical
332
+ ? Math.ceil(pos + rect.height) < content.scrollHeight
333
+ : Math.ceil(pos + rect.width) < content.scrollWidth
340
334
  }
341
335
  }
342
336
 
343
337
  function animScrollTo(value) {
344
338
  if (scrollTimer !== null) clearInterval(scrollTimer)
345
339
  scrollTimer = setInterval(() => {
346
- if (scrollTowards(value) === true) {
347
- stopAnimScroll()
348
- }
340
+ if (scrollTowards(value)) stopAnimScroll()
349
341
  }, 5)
350
342
  }
351
343
 
352
344
  function scrollToStart() {
353
- animScrollTo(
354
- rtlPosCorrection.value === true ? Number.MAX_SAFE_INTEGER : 0
355
- )
345
+ animScrollTo(rtlPosCorrection.value ? Number.MAX_SAFE_INTEGER : 0)
356
346
  }
357
347
 
358
348
  function scrollToEnd() {
359
- animScrollTo(
360
- rtlPosCorrection.value === true ? 0 : Number.MAX_SAFE_INTEGER
361
- )
349
+ animScrollTo(rtlPosCorrection.value ? 0 : Number.MAX_SAFE_INTEGER)
362
350
  }
363
351
 
364
352
  function stopAnimScroll() {
@@ -371,9 +359,7 @@ export default createComponent({
371
359
  function onKbdNavigate(keyCode, fromEl) {
372
360
  const tabs = Array.prototype.filter.call(
373
361
  contentRef.value.children,
374
- el =>
375
- el === fromEl ||
376
- (el.matches && el.matches('.q-tab.q-focusable') === true)
362
+ el => el === fromEl || el.matches?.('.q-tab.q-focusable')
377
363
  )
378
364
 
379
365
  const len = tabs.length
@@ -393,16 +379,14 @@ export default createComponent({
393
379
  }
394
380
 
395
381
  const dirPrev =
396
- keyCode ===
397
- (props.vertical === true ? 38 /* ArrowUp */ : 37) /* ArrowLeft */
382
+ keyCode === (props.vertical ? 38 /* ArrowUp */ : 37) /* ArrowLeft */
398
383
  const dirNext =
399
- keyCode ===
400
- (props.vertical === true ? 40 /* ArrowDown */ : 39) /* ArrowRight */
384
+ keyCode === (props.vertical ? 40 /* ArrowDown */ : 39) /* ArrowRight */
401
385
 
402
- const dir = dirPrev === true ? -1 : dirNext === true ? 1 : void 0
386
+ const dir = dirPrev ? -1 : dirNext ? 1 : void 0
403
387
 
404
388
  if (dir !== void 0) {
405
- const rtlDir = isRTL.value === true ? -1 : 1
389
+ const rtlDir = isRTL.value ? -1 : 1
406
390
  const index = tabs.indexOf(fromEl) + dir * rtlDir
407
391
 
408
392
  if (index >= 0 && index < len) {
@@ -418,14 +402,14 @@ export default createComponent({
418
402
  // with a computed variable by directly applying the minimal
419
403
  // number of instructions on get/set functions
420
404
  const posFn = computed(() =>
421
- rtlPosCorrection.value === true
405
+ rtlPosCorrection.value
422
406
  ? {
423
407
  get: content => Math.abs(content.scrollLeft),
424
408
  set: (content, pos) => {
425
409
  content.scrollLeft = -pos
426
410
  }
427
411
  }
428
- : props.vertical === true
412
+ : props.vertical
429
413
  ? {
430
414
  get: content => content.scrollTop,
431
415
  set: (content, pos) => {
@@ -468,16 +452,6 @@ export default createComponent({
468
452
  return done
469
453
  }
470
454
 
471
- function hasQueryIncluded(targetQuery, matchingQuery) {
472
- for (const key in targetQuery) {
473
- if (targetQuery[key] !== matchingQuery[key]) {
474
- return false
475
- }
476
- }
477
-
478
- return true
479
- }
480
-
481
455
  // 1. Do not use directly; use verifyRouteModel() instead
482
456
  // 2. Should set hadActivated to false upon exit
483
457
  function updateActiveRoute() {
@@ -497,8 +471,7 @@ export default createComponent({
497
471
  const exact = tab.routeData.exact.value === true
498
472
 
499
473
  if (
500
- tab.routeData[exact === true ? 'linkIsExactActive' : 'linkIsActive']
501
- .value !== true
474
+ !tab.routeData[exact ? 'linkIsExactActive' : 'linkIsActive'].value
502
475
  ) {
503
476
  // it cannot match anything as it's not active nor exact-active
504
477
  continue
@@ -507,7 +480,7 @@ export default createComponent({
507
480
  const { hash, query, matched, href } = tab.routeData.resolvedLink.value
508
481
  const queryLen = Object.keys(query).length
509
482
 
510
- if (exact === true) {
483
+ if (exact) {
511
484
  if (hash !== currentHash) {
512
485
  // it's set to exact but it doesn't matches the hash
513
486
  continue
@@ -515,7 +488,7 @@ export default createComponent({
515
488
 
516
489
  if (
517
490
  queryLen !== currentQueryLen ||
518
- hasQueryIncluded(currentQuery, query) === false
491
+ !hasQueryIncluded(currentQuery, query)
519
492
  ) {
520
493
  // it's set to exact but it doesn't matches the query
521
494
  continue
@@ -531,7 +504,7 @@ export default createComponent({
531
504
  continue
532
505
  }
533
506
 
534
- if (queryLen !== 0 && hasQueryIncluded(query, currentQuery) === false) {
507
+ if (queryLen !== 0 && !hasQueryIncluded(query, currentQuery)) {
535
508
  // it has query and it doesn't includes the current one
536
509
  continue
537
510
  }
@@ -573,7 +546,7 @@ export default createComponent({
573
546
  tabDataList.some(
574
547
  tab =>
575
548
  tab.routeData === void 0 && tab.name.value === currentModel.value
576
- ) === true
549
+ )
577
550
  ) {
578
551
  // we shouldn't interfere if non-route tab is active
579
552
  hadActivated = false
@@ -587,7 +560,7 @@ export default createComponent({
587
560
  removeFocusTimeout()
588
561
 
589
562
  if (
590
- hasFocus.value !== true &&
563
+ !hasFocus.value &&
591
564
  rootRef.value !== null &&
592
565
  e.target &&
593
566
  typeof e.target.closest === 'function'
@@ -596,9 +569,9 @@ export default createComponent({
596
569
 
597
570
  // if the target is contained by a QTab/QRouteTab
598
571
  // (it might be other elements focused, like additional QBtn)
599
- if (tab && rootRef.value.contains(tab) === true) {
572
+ if (tab && rootRef.value.contains(tab)) {
600
573
  hasFocus.value = true
601
- if (scrollable.value === true) scrollToTabEl(tab)
574
+ if (scrollable.value) scrollToTabEl(tab)
602
575
  }
603
576
  }
604
577
  }
@@ -637,7 +610,7 @@ export default createComponent({
637
610
  if (tabData.routeData === void 0 || proxy.$route === void 0) {
638
611
  // we should position to the currently active tab (if any)
639
612
  registerScrollToTabTimeout(() => {
640
- if (scrollable.value === true) {
613
+ if (scrollable.value) {
641
614
  const value = currentModel.value
642
615
  const newTab =
643
616
  value !== void 0 && value !== null && value !== ''
@@ -653,7 +626,7 @@ export default createComponent({
653
626
  // start watching route
654
627
  watchRoute()
655
628
 
656
- if (tabData.routeData.hasRouterLink.value === true) {
629
+ if (tabData.routeData.hasRouterLink.value) {
657
630
  verifyRouteModel()
658
631
  }
659
632
  }
@@ -667,7 +640,7 @@ export default createComponent({
667
640
 
668
641
  if (unwatchRoute !== void 0 && tabData.routeData !== void 0) {
669
642
  // unwatch route if we don't have any QRouteTabs left
670
- if (tabDataList.every(tab => tab.routeData === void 0) === true) {
643
+ if (tabDataList.every(tab => tab.routeData === void 0)) {
671
644
  unwatchRoute()
672
645
  }
673
646
 
@@ -700,7 +673,8 @@ export default createComponent({
700
673
  unwatchRoute?.()
701
674
  }
702
675
 
703
- let hadRouteWatcher, hadActivated
676
+ let hadRouteWatcher = false,
677
+ hadActivated = false
704
678
 
705
679
  onBeforeUnmount(cleanup)
706
680
 
@@ -710,7 +684,7 @@ export default createComponent({
710
684
  })
711
685
 
712
686
  onActivated(() => {
713
- if (hadRouteWatcher === true) {
687
+ if (hadRouteWatcher) {
714
688
  watchRoute()
715
689
  hadActivated = true
716
690
  verifyRouteModel()
@@ -745,10 +719,9 @@ export default createComponent({
745
719
  h(QIcon, {
746
720
  class:
747
721
  'q-tabs__arrow q-tabs__arrow--left absolute q-tab__icon' +
748
- (leftArrow.value === true ? '' : ' q-tabs__arrow--faded'),
722
+ (leftArrow.value ? '' : ' q-tabs__arrow--faded'),
749
723
  name:
750
- props.leftIcon ||
751
- $q.iconSet.tabs[props.vertical === true ? 'up' : 'left'],
724
+ props.leftIcon || $q.iconSet.tabs[props.vertical ? 'up' : 'left'],
752
725
  onMousedownPassive: scrollToStart,
753
726
  onTouchstartPassive: scrollToStart,
754
727
  onMouseupPassive: stopAnimScroll,
@@ -759,10 +732,10 @@ export default createComponent({
759
732
  h(QIcon, {
760
733
  class:
761
734
  'q-tabs__arrow q-tabs__arrow--right absolute q-tab__icon' +
762
- (rightArrow.value === true ? '' : ' q-tabs__arrow--faded'),
735
+ (rightArrow.value ? '' : ' q-tabs__arrow--faded'),
763
736
  name:
764
737
  props.rightIcon ||
765
- $q.iconSet.tabs[props.vertical === true ? 'down' : 'right'],
738
+ $q.iconSet.tabs[props.vertical ? 'down' : 'right'],
766
739
  onMousedownPassive: scrollToEnd,
767
740
  onTouchstartPassive: scrollToEnd,
768
741
  onMouseupPassive: stopAnimScroll,