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
@@ -1,13 +1,7 @@
1
- function encode(string) {
2
- return encodeURIComponent(string)
3
- }
4
-
5
- function decode(string) {
6
- return decodeURIComponent(string)
7
- }
8
-
9
1
  function stringifyCookieValue(value) {
10
- return encode(value === Object(value) ? JSON.stringify(value) : String(value))
2
+ return encodeURIComponent(
3
+ value === Object(value) ? JSON.stringify(value) : String(value)
4
+ )
11
5
  }
12
6
 
13
7
  function read(string) {
@@ -17,18 +11,21 @@ function read(string) {
17
11
 
18
12
  if (string.indexOf('"') === 0) {
19
13
  // This is a quoted cookie as according to RFC2068, unescape...
20
- string = string.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\')
14
+ string = string
15
+ .slice(1, -1)
16
+ .replaceAll(String.raw`\"`, '"')
17
+ .replaceAll(String.raw`\\`, '\\')
21
18
  }
22
19
 
23
20
  // Replace server-side written pluses with spaces.
24
21
  // If we can't decode the cookie, ignore it, it's unusable.
25
22
  // If we can't parse the cookie, ignore it, it's unusable.
26
- string = decode(string.replace(/\+/g, ' '))
23
+ string = decodeURIComponent(string.replaceAll('+', ' '))
27
24
 
28
25
  try {
29
26
  const parsed = JSON.parse(string)
30
27
 
31
- if (parsed === Object(parsed) || Array.isArray(parsed) === true) {
28
+ if (parsed === Object(parsed) || Array.isArray(parsed)) {
32
29
  string = parsed
33
30
  }
34
31
  } catch {}
@@ -36,71 +33,63 @@ function read(string) {
36
33
  return string
37
34
  }
38
35
 
39
- function getString(msOffset) {
40
- const time = new Date()
41
- time.setMilliseconds(time.getMilliseconds() + msOffset)
42
- return time.toUTCString()
36
+ const numberUnitRE = /(\d+)([dhms])/g
37
+ const numberUnitMultiplierMap = {
38
+ d: 86_400,
39
+ h: 3600,
40
+ m: 60,
41
+ s: 1
43
42
  }
44
43
 
45
- function parseExpireString(str) {
46
- let timestamp = 0
44
+ function parseExpireToSeconds(str) {
45
+ let totalSeconds = 0
46
+ let hasMatch = false
47
47
 
48
- const days = str.match(/(\d+)d/)
49
- const hours = str.match(/(\d+)h/)
50
- const minutes = str.match(/(\d+)m/)
51
- const seconds = str.match(/(\d+)s/)
48
+ // "1d", "15m"
49
+ const matches = str.matchAll(numberUnitRE)
52
50
 
53
- if (days) {
54
- timestamp += days[1] * 864e5
55
- }
56
- if (hours) {
57
- timestamp += hours[1] * 36e5
58
- }
59
- if (minutes) {
60
- timestamp += minutes[1] * 6e4
61
- }
62
- if (seconds) {
63
- timestamp += seconds[1] * 1000
51
+ for (const match of matches) {
52
+ hasMatch = true
53
+ const value = Number.parseInt(match[1], 10)
54
+ const unit = match[2]
55
+
56
+ totalSeconds += value * numberUnitMultiplierMap[unit]
64
57
  }
65
58
 
66
- return timestamp === 0 ? str : getString(timestamp)
59
+ return hasMatch ? totalSeconds : void 0
67
60
  }
68
61
 
69
62
  // oxlint-disable-next-line default-param-last
70
63
  function set(key, val, opts = {}, ssr) {
71
- let expire, expireValue
64
+ let maxAge
65
+ let isDeletion = false
72
66
 
73
67
  if (opts.expires !== void 0) {
74
- // if it's a Date Object
75
- if (Object.prototype.toString.call(opts.expires) === '[object Date]') {
76
- expire = opts.expires.toUTCString()
68
+ // Number check (defined in days -> convert to seconds)
69
+ if (Number.isFinite(opts.expires)) {
70
+ maxAge = Math.round(opts.expires * 86_400) // 86400 seconds in a day
71
+ } else if (opts.expires instanceof Date) {
72
+ maxAge = Math.round((opts.expires.getTime() - Date.now()) / 1000)
77
73
  }
78
- // if it's a String (eg. "15m", "1h", "13d", "1d 15m", "31s")
79
- // possible units: d (days), h (hours), m (minutes), s (seconds)
74
+ // String check (eg. "15m", "1h" -> must return seconds)
80
75
  else if (typeof opts.expires === 'string') {
81
- expire = parseExpireString(opts.expires)
82
- }
83
- // otherwise it must be a Number (defined in days)
84
- else {
85
- expireValue = parseFloat(opts.expires)
86
- expire =
87
- isNaN(expireValue) === false
88
- ? getString(expireValue * 864e5)
89
- : opts.expires
76
+ maxAge = parseExpireToSeconds(opts.expires)
90
77
  }
78
+
79
+ if (maxAge !== void 0) isDeletion = maxAge <= 0
91
80
  }
92
81
 
93
- const keyValue = `${encode(key)}=${stringifyCookieValue(val)}`
82
+ const keyValue = `${encodeURIComponent(key)}=${stringifyCookieValue(val)}`
94
83
 
95
84
  const cookie = [
96
85
  keyValue,
97
- expire !== void 0 ? '; Expires=' + expire : '', // use expires attribute, max-age is not supported by IE
98
- opts.path ? '; Path=' + opts.path : '',
99
- opts.domain ? '; Domain=' + opts.domain : '',
100
- opts.sameSite ? '; SameSite=' + opts.sameSite : '',
86
+ maxAge !== void 0 ? `; Max-Age=${maxAge}` : '',
87
+ opts.path ? `; Path=${opts.path}` : '',
88
+ opts.domain ? `; Domain=${opts.domain}` : '',
89
+ opts.sameSite ? `; SameSite=${opts.sameSite}` : '',
101
90
  opts.httpOnly ? '; HttpOnly' : '',
102
91
  opts.secure ? '; Secure' : '',
103
- opts.other ? '; ' + opts.other : ''
92
+ opts.other ? `; ${opts.other}` : ''
104
93
  ].join('')
105
94
 
106
95
  if (ssr) {
@@ -112,12 +101,9 @@ function set(key, val, opts = {}, ssr) {
112
101
 
113
102
  ssr.res.setHeader('Set-Cookie', ssr.req.qCookies)
114
103
 
115
- // make temporary update so future get()
116
- // within same SSR timeframe would return the set value
117
-
118
104
  let all = ssr.req.headers.cookie || ''
119
105
 
120
- if (expire !== void 0 && expireValue < 0) {
106
+ if (maxAge !== void 0 && isDeletion) {
121
107
  const localVal = get(key, ssr)
122
108
  if (localVal !== void 0) {
123
109
  all = all
@@ -126,11 +112,12 @@ function set(key, val, opts = {}, ssr) {
126
112
  .replace(`${key}=${localVal}`, '')
127
113
  }
128
114
  } else {
129
- all = all ? `${keyValue}; ${all}` : cookie
115
+ all = all ? `${keyValue}; ${all}` : keyValue
130
116
  }
131
117
 
132
118
  ssr.req.headers.cookie = all
133
119
  } else {
120
+ // oxlint-disable-next-line unicorn/no-document-cookie
134
121
  document.cookie = cookie
135
122
  }
136
123
  }
@@ -139,6 +126,7 @@ function get(key, ssr) {
139
126
  const cookieSource = ssr ? ssr.req.headers : document,
140
127
  cookies = cookieSource.cookie ? cookieSource.cookie.split('; ') : [],
141
128
  l = cookies.length
129
+
142
130
  let result = key ? null : {},
143
131
  i = 0,
144
132
  parts,
@@ -147,7 +135,7 @@ function get(key, ssr) {
147
135
 
148
136
  for (; i < l; i++) {
149
137
  parts = cookies[i].split('=')
150
- name = decode(parts.shift())
138
+ name = decodeURIComponent(parts.shift())
151
139
  cookie = parts.join('=')
152
140
 
153
141
  if (!key) {
@@ -193,7 +181,7 @@ if (__QUASAR_SSR__) {
193
181
  }
194
182
  }
195
183
 
196
- if (__QUASAR_SSR_SERVER__ !== true) {
184
+ if (!__QUASAR_SSR_SERVER__) {
197
185
  Object.assign(Plugin, getObject())
198
186
  }
199
187
 
@@ -34,9 +34,7 @@ const Plugin = createReactivePlugin(
34
34
  },
35
35
 
36
36
  toggle() {
37
- if (__QUASAR_SSR_SERVER__ !== true) {
38
- Plugin.set(Plugin.isActive === false)
39
- }
37
+ if (!__QUASAR_SSR_SERVER__) Plugin.set(!Plugin.isActive)
40
38
  },
41
39
 
42
40
  install({ $q, ssrContext }) {
@@ -61,7 +59,7 @@ const Plugin = createReactivePlugin(
61
59
  $q.dark.mode = val
62
60
  },
63
61
  toggle: () => {
64
- $q.dark.set($q.dark.isActive === false)
62
+ $q.dark.set(!$q.dark.isActive)
65
63
  }
66
64
  }
67
65
 
@@ -71,7 +69,7 @@ const Plugin = createReactivePlugin(
71
69
 
72
70
  $q.dark = this
73
71
 
74
- if (this.__installed !== true) {
72
+ if (!this.__installed) {
75
73
  this.set(dark !== void 0 ? dark : false)
76
74
  }
77
75
  }
@@ -1,4 +1,4 @@
1
- import { describe, test, expect, vi } from 'vitest'
1
+ import { describe, expect, test, vi } from 'vitest'
2
2
  import { mount } from '@vue/test-utils'
3
3
 
4
4
  import Dark from './Dark.js'
@@ -1,8 +1,8 @@
1
1
  import DialogPlugin from './component/DialogPluginComponent.js'
2
- import globalDialog from '../../utils/private.dialog/create-dialog.js'
2
+ import { createDialog } from '../../utils/private.dialog/create-dialog.js'
3
3
 
4
4
  export default {
5
5
  install({ $q, parentApp }) {
6
- $q.dialog = this.create = globalDialog(DialogPlugin, true, parentApp)
6
+ $q.dialog = this.create = createDialog(DialogPlugin, true, parentApp)
7
7
  }
8
8
  }
@@ -1,4 +1,4 @@
1
- import { h, ref, computed, watch, toRaw, getCurrentInstance } from 'vue'
1
+ import { computed, getCurrentInstance, h, ref, toRaw, watch } from 'vue'
2
2
 
3
3
  import QDialog from '../../../components/dialog/QDialog.js'
4
4
  import QBtn from '../../../components/btn/QBtn.js'
@@ -74,18 +74,18 @@ export default createComponent({
74
74
  const classes = computed(
75
75
  () =>
76
76
  'q-dialog-plugin' +
77
- (isDark.value === true ? ' q-dialog-plugin--dark q-dark' : '') +
77
+ (isDark.value ? ' q-dialog-plugin--dark q-dark' : '') +
78
78
  (props.progress !== false ? ' q-dialog-plugin--progress' : '')
79
79
  )
80
80
 
81
81
  const vmColor = computed(
82
- () => props.color || (isDark.value === true ? 'amber' : 'primary')
82
+ () => props.color || (isDark.value ? 'amber' : 'primary')
83
83
  )
84
84
 
85
85
  const spinner = computed(() =>
86
86
  props.progress === false
87
87
  ? null
88
- : isObject(props.progress) === true
88
+ : isObject(props.progress)
89
89
  ? {
90
90
  component: props.progress.spinner || QSpinner,
91
91
  props: { color: props.progress.color || vmColor.value }
@@ -101,7 +101,7 @@ export default createComponent({
101
101
  )
102
102
 
103
103
  const formProps = computed(() => {
104
- if (hasForm.value !== true) return {}
104
+ if (!hasForm.value) return {}
105
105
 
106
106
  // oxlint-disable-next-line no-shadow
107
107
  const { model, isValid, items, ...acc } =
@@ -111,7 +111,7 @@ export default createComponent({
111
111
  })
112
112
 
113
113
  const okLabel = computed(() =>
114
- isObject(props.ok) === true
114
+ isObject(props.ok)
115
115
  ? $q.lang.label.ok
116
116
  : props.ok === true
117
117
  ? $q.lang.label.ok
@@ -119,7 +119,7 @@ export default createComponent({
119
119
  )
120
120
 
121
121
  const cancelLabel = computed(() =>
122
- isObject(props.cancel) === true
122
+ isObject(props.cancel)
123
123
  ? $q.lang.label.cancel
124
124
  : props.cancel === true
125
125
  ? $q.lang.label.cancel
@@ -129,14 +129,13 @@ export default createComponent({
129
129
  const okDisabled = computed(() => {
130
130
  if (props.prompt !== void 0) {
131
131
  return (
132
- props.prompt.isValid !== void 0 &&
133
- props.prompt.isValid(model.value) !== true
132
+ props.prompt.isValid !== void 0 && !props.prompt.isValid(model.value)
134
133
  )
135
134
  }
136
135
  if (props.options !== void 0) {
137
136
  return (
138
137
  props.options.isValid !== void 0 &&
139
- props.options.isValid(model.value) !== true
138
+ !props.options.isValid(model.value)
140
139
  )
141
140
  }
142
141
  return false
@@ -147,9 +146,8 @@ export default createComponent({
147
146
  label: okLabel.value,
148
147
  ripple: false,
149
148
  disable: okDisabled.value,
150
- ...(isObject(props.ok) === true ? props.ok : { flat: true }),
151
- 'data-autofocus':
152
- (props.focus === 'ok' && hasForm.value !== true) || void 0,
149
+ ...(isObject(props.ok) ? props.ok : { flat: true }),
150
+ 'data-autofocus': (props.focus === 'ok' && !hasForm.value) || void 0,
153
151
  onClick: onOk
154
152
  }))
155
153
 
@@ -157,9 +155,8 @@ export default createComponent({
157
155
  color: vmColor.value,
158
156
  label: cancelLabel.value,
159
157
  ripple: false,
160
- ...(isObject(props.cancel) === true ? props.cancel : { flat: true }),
161
- 'data-autofocus':
162
- (props.focus === 'cancel' && hasForm.value !== true) || void 0,
158
+ ...(isObject(props.cancel) ? props.cancel : { flat: true }),
159
+ 'data-autofocus': (props.focus === 'cancel' && !hasForm.value) || void 0,
163
160
  onClick: onCancel
164
161
  }))
165
162
 
@@ -194,16 +191,16 @@ export default createComponent({
194
191
  function onInputKeyup(evt) {
195
192
  // if ENTER key
196
193
  if (
197
- okDisabled.value !== true &&
194
+ !okDisabled.value &&
198
195
  props.prompt.type !== 'textarea' &&
199
- isKeyCode(evt, 13) === true
196
+ isKeyCode(evt, 13)
200
197
  ) {
201
198
  onOk()
202
199
  }
203
200
  }
204
201
 
205
202
  function getSection(sectionClass, text) {
206
- return props.html === true
203
+ return props.html
207
204
  ? h(QCardSection, {
208
205
  class: sectionClass,
209
206
  innerHTML: text
@@ -248,7 +245,7 @@ export default createComponent({
248
245
  return h(
249
246
  QCardActions,
250
247
  {
251
- class: props.stackButtons === true ? 'items-end' : '',
248
+ class: props.stackButtons ? 'items-end' : '',
252
249
  vertical: props.stackButtons,
253
250
  align: 'right'
254
251
  },
@@ -61,13 +61,11 @@ const Plugin = createReactivePlugin(
61
61
  }
62
62
  )
63
63
 
64
- if (this.__installed === true) {
64
+ if (this.__installed) {
65
65
  if (iconSet !== void 0) this.set(iconSet)
66
66
  } else {
67
67
  this.props = new Proxy(this.__qIconSet, {
68
- get() {
69
- return Reflect.get(...arguments)
70
- },
68
+ get: Reflect.get,
71
69
 
72
70
  ownKeys(target) {
73
71
  return Reflect.ownKeys(target).filter(key => key !== 'set')
@@ -1,4 +1,4 @@
1
- import { describe, test, expect } from 'vitest'
1
+ import { describe, expect, test } from 'vitest'
2
2
  import { mount } from '@vue/test-utils'
3
3
 
4
4
  import IconSet from './IconSet.js'
@@ -6,8 +6,7 @@ function getLocale() {
6
6
  if (__QUASAR_SSR_SERVER__) return
7
7
 
8
8
  const val =
9
- Array.isArray(navigator.languages) === true &&
10
- navigator.languages.length !== 0
9
+ Array.isArray(navigator.languages) && navigator.languages.length !== 0
11
10
  ? navigator.languages[0]
12
11
  : navigator.language
13
12
 
@@ -55,9 +54,9 @@ const Plugin = createReactivePlugin(
55
54
 
56
55
  if (
57
56
  ssrContext.$q.config.lang === void 0 ||
58
- ssrContext.$q.config.lang.noHtmlAttrs !== true
57
+ !ssrContext.$q.config.lang.noHtmlAttrs
59
58
  ) {
60
- const dir = lang.rtl === true ? 'rtl' : 'ltr'
59
+ const dir = lang.rtl ? 'rtl' : 'ltr'
61
60
  const attrs = `lang=${lang.isoName} dir=${dir}`
62
61
 
63
62
  ssrContext._meta.htmlAttrs =
@@ -77,10 +76,10 @@ const Plugin = createReactivePlugin(
77
76
 
78
77
  if (
79
78
  Plugin.__langConfig === void 0 ||
80
- Plugin.__langConfig.noHtmlAttrs !== true
79
+ !Plugin.__langConfig.noHtmlAttrs
81
80
  ) {
82
81
  const el = document.documentElement
83
- el.setAttribute('dir', lang.rtl === true ? 'rtl' : 'ltr')
82
+ el.setAttribute('dir', lang.rtl ? 'rtl' : 'ltr')
84
83
  el.setAttribute('lang', lang.isoName)
85
84
  }
86
85
 
@@ -110,13 +109,11 @@ const Plugin = createReactivePlugin(
110
109
  $q.lang = Plugin.__qLang
111
110
  Plugin.__langConfig = $q.config.lang
112
111
 
113
- if (this.__installed === true) {
112
+ if (this.__installed) {
114
113
  if (lang !== void 0) this.set(lang)
115
114
  } else {
116
115
  this.props = new Proxy(this.__qLang, {
117
- get() {
118
- return Reflect.get(...arguments)
119
- },
116
+ get: Reflect.get,
120
117
 
121
118
  ownKeys(target) {
122
119
  return Reflect.ownKeys(target).filter(
@@ -266,7 +266,7 @@
266
266
  "examples": ["'5-10 of 50'"]
267
267
  },
268
268
  "examples": [
269
- "(start, end, total) => start + '-' + end + ' of ' + total"
269
+ "(start, end, total) => start + ' - ' + end + ' of ' + total"
270
270
  ]
271
271
  },
272
272
  "columns": {
@@ -807,7 +807,7 @@
807
807
  "examples": ["'5-10 of 50'"]
808
808
  },
809
809
  "examples": [
810
- "(start, end, total) => start + '-' + end + ' of ' + total"
810
+ "(start, end, total) => start + ' - ' + end + ' of ' + total"
811
811
  ]
812
812
  },
813
813
  "columns": {
@@ -1,4 +1,4 @@
1
- import { describe, test, expect } from 'vitest'
1
+ import { describe, expect, test } from 'vitest'
2
2
  import { mount } from '@vue/test-utils'
3
3
 
4
4
  import Lang from './Lang.js'
@@ -227,7 +227,7 @@ describe('[Lang API]', () => {
227
227
  recordsPerPage: 'Records per page:',
228
228
  allRows: 'All',
229
229
  pagination: (start, end, total) =>
230
- start + '-' + end + ' of ' + total,
230
+ start + ' - ' + end + ' of ' + total,
231
231
  columns: 'Columns'
232
232
  },
233
233
  pagination: {
@@ -1,4 +1,4 @@
1
- import { h, Transition, onMounted } from 'vue'
1
+ import { Transition, h, onMounted } from 'vue'
2
2
 
3
3
  import QSpinner from '../../components/spinner/QSpinner.js'
4
4
 
@@ -41,7 +41,7 @@ function registerProps(opts) {
41
41
  }
42
42
 
43
43
  const newProps =
44
- isObject(opts) === true && opts.ignoreDefaults === true
44
+ isObject(opts) && opts.ignoreDefaults
45
45
  ? { ...originalDefaults, ...opts }
46
46
  : { ...defaults, ...opts }
47
47
 
@@ -86,7 +86,7 @@ const Plugin = createReactivePlugin(
86
86
  function onAfterLeave() {
87
87
  // might be called to finalize
88
88
  // previous leave, even if it was cancelled
89
- if (Plugin.isActive !== true && app !== void 0) {
89
+ if (!Plugin.isActive && app !== void 0) {
90
90
  preventScroll(false)
91
91
  app.unmount(el)
92
92
  removeGlobalNode(el)
@@ -96,9 +96,7 @@ const Plugin = createReactivePlugin(
96
96
  }
97
97
 
98
98
  function getContent() {
99
- if (Plugin.isActive !== true) {
100
- return null
101
- }
99
+ if (!Plugin.isActive) return null
102
100
 
103
101
  const content = [
104
102
  h(props.spinner, {
@@ -116,7 +114,7 @@ const Plugin = createReactivePlugin(
116
114
  (props.messageColor
117
115
  ? ` text-${props.messageColor}`
118
116
  : ''),
119
- [props.html === true ? 'innerHTML' : 'textContent']:
117
+ [props.html ? 'innerHTML' : 'textContent']:
120
118
  props.message
121
119
  })
122
120
  )
@@ -184,7 +182,7 @@ const Plugin = createReactivePlugin(
184
182
  },
185
183
 
186
184
  hide(group) {
187
- if (__QUASAR_SSR_SERVER__ !== true && Plugin.isActive === true) {
185
+ if (!__QUASAR_SSR_SERVER__ && Plugin.isActive) {
188
186
  if (group === void 0) {
189
187
  // clear out any active groups
190
188
  activeGroups = {}
@@ -201,7 +199,7 @@ const Plugin = createReactivePlugin(
201
199
  // show last registered one since that one is still active
202
200
  if (keys.length !== 0) {
203
201
  // get last registered group
204
- const lastGroup = keys[keys.length - 1]
202
+ const lastGroup = keys.at(-1)
205
203
  Plugin.show({ group: lastGroup })
206
204
  return
207
205
  }
@@ -217,15 +215,15 @@ const Plugin = createReactivePlugin(
217
215
  },
218
216
 
219
217
  setDefaults(opts) {
220
- if (__QUASAR_SSR_SERVER__ !== true) {
221
- if (isObject(opts) === true) Object.assign(defaults, opts)
218
+ if (!__QUASAR_SSR_SERVER__ && isObject(opts)) {
219
+ Object.assign(defaults, opts)
222
220
  }
223
221
  },
224
222
 
225
223
  install({ $q, parentApp }) {
226
224
  $q.loading = this
227
225
 
228
- if (__QUASAR_SSR_SERVER__ !== true) {
226
+ if (!__QUASAR_SSR_SERVER__) {
229
227
  Plugin.__parentApp = parentApp
230
228
 
231
229
  if ($q.config.loading !== void 0) {
@@ -25,7 +25,7 @@ const Plugin = createReactivePlugin(
25
25
 
26
26
  if (__QUASAR_SSR_SERVER__) return
27
27
 
28
- if (this.__installed === true) {
28
+ if (this.__installed) {
29
29
  if ($q.config.loadingBar !== void 0) {
30
30
  this.setDefaults($q.config.loadingBar)
31
31
  }
@@ -66,11 +66,11 @@ const Plugin = createReactivePlugin(
66
66
  stop() {
67
67
  barRef.value.stop()
68
68
  },
69
- increment() {
70
- barRef.value.increment.apply(null, arguments)
69
+ increment(...args) {
70
+ barRef.value.increment(...args)
71
71
  },
72
72
  setDefaults(opts) {
73
- if (isObject(opts) === true) {
73
+ if (isObject(opts)) {
74
74
  Object.assign(props.value, opts)
75
75
  }
76
76
  }
@@ -3,6 +3,7 @@ import extend from '../../utils/extend/extend.js'
3
3
 
4
4
  let updateId = null,
5
5
  currentClientMeta
6
+
6
7
  export const clientList = []
7
8
 
8
9
  function normalize(meta) {
@@ -39,6 +40,7 @@ function changed(old, def) {
39
40
  if (Object.keys(old).length !== Object.keys(def).length) {
40
41
  return true
41
42
  }
43
+
42
44
  for (const key in old) {
43
45
  if (old[key] !== def[key]) {
44
46
  return true
@@ -47,11 +49,11 @@ function changed(old, def) {
47
49
  }
48
50
 
49
51
  function bodyFilter(name) {
50
- return ['class', 'style'].includes(name) === false
52
+ return !['class', 'style'].includes(name)
51
53
  }
52
54
 
53
55
  function htmlFilter(name) {
54
- return ['lang', 'dir'].includes(name) === false
56
+ return !['lang', 'dir'].includes(name)
55
57
  }
56
58
 
57
59
  function diff(meta, other) {
@@ -79,14 +81,14 @@ function diff(meta, other) {
79
81
  add[type] = {}
80
82
 
81
83
  for (const key in old) {
82
- if (cur.hasOwnProperty(key) === false) {
84
+ if (!Object.hasOwn(cur, key)) {
83
85
  remove[type].push(key)
84
86
  }
85
87
  }
86
88
  for (const key in cur) {
87
- if (old.hasOwnProperty(key) === false) {
89
+ if (!Object.hasOwn(old, key)) {
88
90
  add[type][key] = cur[key]
89
- } else if (changed(old[key], cur[key]) === true) {
91
+ } else if (changed(old[key], cur[key])) {
90
92
  remove[type].push(key)
91
93
  add[type][key] = cur[key]
92
94
  }
@@ -125,11 +127,11 @@ function apply({ add, remove }) {
125
127
  tag.setAttribute(att, metaType[name][att])
126
128
  }
127
129
  }
128
- tag.setAttribute('data-qmeta', name)
130
+ tag.dataset.qmeta = name
129
131
  if (type === 'script') {
130
132
  tag.innerHTML = metaType[name].innerHTML || ''
131
133
  }
132
- document.head.appendChild(tag)
134
+ document.head.append(tag)
133
135
  }
134
136
  })
135
137
  Object.keys(add.htmlAttr)
@@ -266,10 +268,7 @@ export default {
266
268
  ssrContext.onRendered(() => {
267
269
  injectServerMeta(ssrContext)
268
270
  })
269
- } else if (
270
- this.__installed !== true &&
271
- isRuntimeSsrPreHydration.value === true
272
- ) {
271
+ } else if (!this.__installed && isRuntimeSsrPreHydration.value) {
273
272
  currentClientMeta = window.__Q_META__
274
273
  document.getElementById('qmeta-init').remove()
275
274
  }