quasar 2.19.2 → 2.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (562) hide show
  1. package/dist/api/Lang.json +1 -1
  2. package/dist/api/QCarouselSlide.json +1 -1
  3. package/dist/api/QChatMessage.json +1 -1
  4. package/dist/api/QImg.json +1 -1
  5. package/dist/api/QParallax.json +1 -1
  6. package/dist/api/QRange.json +1 -1
  7. package/dist/api/QSlider.json +1 -1
  8. package/dist/api/QTimelineEntry.json +1 -1
  9. package/dist/api/QTree.json +1 -1
  10. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  11. package/dist/icon-set/eva-icons.umd.prod.js +2 -2
  12. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +5 -5
  13. package/dist/icon-set/fontawesome-v5.umd.prod.js +5 -5
  14. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +5 -5
  15. package/dist/icon-set/fontawesome-v6.umd.prod.js +5 -5
  16. package/dist/icon-set/fontawesome-v7-pro.umd.prod.js +6 -0
  17. package/dist/icon-set/fontawesome-v7.umd.prod.js +6 -0
  18. package/dist/icon-set/ionicons-v4.umd.prod.js +2 -2
  19. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  20. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  21. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  22. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  23. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  24. package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
  25. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  26. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  27. package/dist/icon-set/mdi-v3.umd.prod.js +5 -5
  28. package/dist/icon-set/mdi-v4.umd.prod.js +5 -5
  29. package/dist/icon-set/mdi-v5.umd.prod.js +5 -5
  30. package/dist/icon-set/mdi-v6.umd.prod.js +5 -5
  31. package/dist/icon-set/mdi-v7.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-eva-icons.umd.prod.js +2 -2
  34. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +5 -5
  35. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +5 -5
  36. package/dist/icon-set/svg-fontawesome-v7.umd.prod.js +6 -0
  37. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +2 -2
  38. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +5 -5
  39. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +5 -5
  40. package/dist/icon-set/svg-ionicons-v7.umd.prod.js +6 -0
  41. package/dist/icon-set/svg-ionicons-v8.umd.prod.js +6 -0
  42. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  43. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  44. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  45. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  46. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  47. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +2 -2
  48. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +2 -2
  49. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +2 -2
  50. package/dist/icon-set/svg-mdi-v6.umd.prod.js +5 -5
  51. package/dist/icon-set/svg-mdi-v7.umd.prod.js +1 -1
  52. package/dist/icon-set/svg-themify.umd.prod.js +2 -2
  53. package/dist/icon-set/themify.umd.prod.js +2 -2
  54. package/dist/lang/ar-TN.umd.prod.js +2 -2
  55. package/dist/lang/ar.umd.prod.js +2 -2
  56. package/dist/lang/az-Latn.umd.prod.js +2 -2
  57. package/dist/lang/bg.umd.prod.js +2 -2
  58. package/dist/lang/bn.umd.prod.js +2 -2
  59. package/dist/lang/bs-BA.umd.prod.js +2 -2
  60. package/dist/lang/ca.umd.prod.js +2 -2
  61. package/dist/lang/cs.umd.prod.js +2 -2
  62. package/dist/lang/da.umd.prod.js +2 -2
  63. package/dist/lang/de-CH.umd.prod.js +2 -2
  64. package/dist/lang/de-DE.umd.prod.js +2 -2
  65. package/dist/lang/de.umd.prod.js +2 -2
  66. package/dist/lang/el.umd.prod.js +2 -2
  67. package/dist/lang/en-GB.umd.prod.js +2 -2
  68. package/dist/lang/en-US.umd.prod.js +2 -2
  69. package/dist/lang/eo.umd.prod.js +2 -2
  70. package/dist/lang/es.umd.prod.js +2 -2
  71. package/dist/lang/et.umd.prod.js +2 -2
  72. package/dist/lang/eu.umd.prod.js +2 -2
  73. package/dist/lang/fa-IR.umd.prod.js +2 -2
  74. package/dist/lang/fa.umd.prod.js +2 -2
  75. package/dist/lang/fi.umd.prod.js +2 -2
  76. package/dist/lang/fr.umd.prod.js +2 -2
  77. package/dist/lang/gn.umd.prod.js +2 -2
  78. package/dist/lang/he.umd.prod.js +2 -2
  79. package/dist/lang/hi.umd.prod.js +2 -2
  80. package/dist/lang/hr.umd.prod.js +2 -2
  81. package/dist/lang/hu.umd.prod.js +2 -2
  82. package/dist/lang/id.umd.prod.js +2 -2
  83. package/dist/lang/is.umd.prod.js +2 -2
  84. package/dist/lang/it.umd.prod.js +2 -2
  85. package/dist/lang/ja.umd.prod.js +2 -2
  86. package/dist/lang/kk.umd.prod.js +2 -2
  87. package/dist/lang/km.umd.prod.js +2 -2
  88. package/dist/lang/ko-KR.umd.prod.js +1 -1
  89. package/dist/lang/kur-CKB.umd.prod.js +2 -2
  90. package/dist/lang/lt.umd.prod.js +2 -2
  91. package/dist/lang/lu.umd.prod.js +2 -2
  92. package/dist/lang/lv.umd.prod.js +2 -2
  93. package/dist/lang/mk.umd.prod.js +2 -2
  94. package/dist/lang/ml.umd.prod.js +2 -2
  95. package/dist/lang/mm.umd.prod.js +2 -2
  96. package/dist/lang/ms-MY.umd.prod.js +2 -2
  97. package/dist/lang/ms.umd.prod.js +2 -2
  98. package/dist/lang/my.umd.prod.js +2 -2
  99. package/dist/lang/nb-NO.umd.prod.js +2 -2
  100. package/dist/lang/nl.umd.prod.js +2 -2
  101. package/dist/lang/pl.umd.prod.js +2 -2
  102. package/dist/lang/pt-BR.umd.prod.js +2 -2
  103. package/dist/lang/pt.umd.prod.js +2 -2
  104. package/dist/lang/ro.umd.prod.js +2 -2
  105. package/dist/lang/ru.umd.prod.js +2 -2
  106. package/dist/lang/sk.umd.prod.js +2 -2
  107. package/dist/lang/sl.umd.prod.js +2 -2
  108. package/dist/lang/sm.umd.prod.js +2 -2
  109. package/dist/lang/sq.umd.prod.js +2 -2
  110. package/dist/lang/sr-CYR.umd.prod.js +2 -2
  111. package/dist/lang/sr.umd.prod.js +2 -2
  112. package/dist/lang/sv.umd.prod.js +2 -2
  113. package/dist/lang/ta.umd.prod.js +2 -2
  114. package/dist/lang/th.umd.prod.js +2 -2
  115. package/dist/lang/tl.umd.prod.js +2 -2
  116. package/dist/lang/tr.umd.prod.js +2 -2
  117. package/dist/lang/ug.umd.prod.js +2 -2
  118. package/dist/lang/uk.umd.prod.js +2 -2
  119. package/dist/lang/ur-PK.umd.prod.js +2 -2
  120. package/dist/lang/uz-Cyrl.umd.prod.js +2 -2
  121. package/dist/lang/uz-Latn.umd.prod.js +2 -2
  122. package/dist/lang/vi.umd.prod.js +2 -2
  123. package/dist/lang/zh-CN.umd.prod.js +2 -2
  124. package/dist/lang/zh-TW.umd.prod.js +2 -2
  125. package/dist/quasar.client.js +2615 -2603
  126. package/dist/quasar.sass +1 -1
  127. package/dist/quasar.server.prod.cjs +11 -11
  128. package/dist/quasar.server.prod.js +25 -25
  129. package/dist/quasar.umd.js +2610 -2598
  130. package/dist/quasar.umd.prod.js +23 -23
  131. package/dist/types/api/dialog.d.ts +1 -1
  132. package/dist/types/api/qnotify.d.ts +1 -1
  133. package/dist/types/api/qpopupproxy.d.ts +1 -1
  134. package/dist/types/feature-flag.d.ts +2 -2
  135. package/dist/types/globals.d.ts +3 -3
  136. package/dist/types/{extras/icon-set.d.ts → icon-set.d.ts} +21 -16
  137. package/dist/types/index.d.ts +1 -1
  138. package/dist/types/plugin.d.ts +1 -1
  139. package/dist/types/shim-icon-set.d.ts +1 -2
  140. package/dist/types/shim-lang.d.ts +1 -2
  141. package/dist/types/ts-helpers.d.ts +3 -3
  142. package/dist/types/tsconfig.json +1 -1
  143. package/dist/types/utils/scroll.d.ts +1 -1
  144. package/dist/types/utils.d.ts +2 -2
  145. package/dist/web-types/web-types.json +1 -1
  146. package/icon-set/bootstrap-icons.js +1 -1
  147. package/icon-set/eva-icons.js +23 -23
  148. package/icon-set/fontawesome-v7-pro.js +128 -0
  149. package/icon-set/fontawesome-v7.js +128 -0
  150. package/icon-set/ionicons-v4.js +17 -17
  151. package/icon-set/svg-bootstrap-icons.js +1 -1
  152. package/icon-set/svg-eva-icons.js +23 -23
  153. package/icon-set/svg-fontawesome-v5.js +1 -1
  154. package/icon-set/svg-fontawesome-v7.js +197 -0
  155. package/icon-set/svg-ionicons-v4.js +17 -17
  156. package/icon-set/svg-ionicons-v5.js +1 -1
  157. package/icon-set/svg-ionicons-v6.js +1 -1
  158. package/icon-set/svg-ionicons-v7.js +224 -0
  159. package/icon-set/svg-ionicons-v8.js +224 -0
  160. package/icon-set/svg-themify.js +7 -7
  161. package/icon-set/themify.js +7 -7
  162. package/lang/ar-TN.js +1 -1
  163. package/lang/ar.js +1 -1
  164. package/lang/az-Latn.js +1 -1
  165. package/lang/bg.js +1 -1
  166. package/lang/bn.js +1 -1
  167. package/lang/bs-BA.js +1 -1
  168. package/lang/ca.js +1 -1
  169. package/lang/cs.js +11 -6
  170. package/lang/da.js +1 -1
  171. package/lang/de-CH.js +1 -1
  172. package/lang/de-DE.js +1 -1
  173. package/lang/de.js +1 -1
  174. package/lang/el.js +1 -1
  175. package/lang/en-GB.js +1 -1
  176. package/lang/en-US.js +1 -1
  177. package/lang/eo.js +1 -1
  178. package/lang/es.js +1 -1
  179. package/lang/et.js +1 -1
  180. package/lang/eu.js +1 -1
  181. package/lang/fa-IR.js +1 -1
  182. package/lang/fa.js +1 -1
  183. package/lang/fi.js +1 -1
  184. package/lang/fr.js +1 -1
  185. package/lang/gn.js +1 -1
  186. package/lang/he.js +1 -1
  187. package/lang/hi.js +1 -1
  188. package/lang/hr.js +1 -1
  189. package/lang/hu.js +1 -1
  190. package/lang/id.js +1 -1
  191. package/lang/is.js +1 -1
  192. package/lang/it.js +9 -9
  193. package/lang/ja.js +1 -1
  194. package/lang/kk.js +1 -1
  195. package/lang/km.js +1 -1
  196. package/lang/kur-CKB.js +1 -1
  197. package/lang/lt.js +2 -2
  198. package/lang/lu.js +1 -1
  199. package/lang/lv.js +1 -1
  200. package/lang/mk.js +1 -1
  201. package/lang/ml.js +1 -1
  202. package/lang/mm.js +1 -1
  203. package/lang/ms-MY.js +1 -1
  204. package/lang/ms.js +1 -1
  205. package/lang/my.js +1 -1
  206. package/lang/nb-NO.js +1 -1
  207. package/lang/nl.js +1 -1
  208. package/lang/pl.js +1 -1
  209. package/lang/pt-BR.js +1 -1
  210. package/lang/pt.js +1 -1
  211. package/lang/ro.js +1 -1
  212. package/lang/ru.js +1 -1
  213. package/lang/sk.js +1 -1
  214. package/lang/sl.js +1 -1
  215. package/lang/sm.js +1 -1
  216. package/lang/sq.js +1 -1
  217. package/lang/sr-CYR.js +1 -1
  218. package/lang/sr.js +1 -1
  219. package/lang/sv.js +1 -1
  220. package/lang/ta.js +1 -1
  221. package/lang/th.js +1 -1
  222. package/lang/tl.js +1 -1
  223. package/lang/tr.js +1 -1
  224. package/lang/ug.js +1 -1
  225. package/lang/uk.js +1 -1
  226. package/lang/ur-PK.js +1 -1
  227. package/lang/uz-Cyrl.js +1 -1
  228. package/lang/uz-Latn.js +1 -1
  229. package/lang/vi.js +1 -1
  230. package/lang/zh-CN.js +1 -1
  231. package/lang/zh-TW.js +1 -1
  232. package/package.json +13 -17
  233. package/src/components/ajax-bar/QAjaxBar.js +22 -25
  234. package/src/components/avatar/QAvatar.js +3 -3
  235. package/src/components/avatar/QAvatar.test.js +2 -2
  236. package/src/components/badge/QBadge.js +9 -10
  237. package/src/components/badge/QBadge.test.js +2 -2
  238. package/src/components/banner/QBanner.js +6 -6
  239. package/src/components/banner/QBanner.test.js +2 -2
  240. package/src/components/bar/QBar.js +3 -3
  241. package/src/components/bar/QBar.test.js +2 -2
  242. package/src/components/breadcrumbs/QBreadcrumbs.js +5 -4
  243. package/src/components/breadcrumbs/QBreadcrumbs.test.js +3 -3
  244. package/src/components/breadcrumbs/QBreadcrumbsEl.js +4 -4
  245. package/src/components/breadcrumbs/QBreadcrumbsEl.test.js +2 -2
  246. package/src/components/btn/QBtn.js +39 -44
  247. package/src/components/btn/QBtn.test.js +2 -2
  248. package/src/components/btn/use-btn.js +34 -47
  249. package/src/components/btn/use-btn.test.js +5 -5
  250. package/src/components/btn-dropdown/QBtnDropdown.js +15 -16
  251. package/src/components/btn-group/QBtnGroup.js +3 -3
  252. package/src/components/btn-toggle/QBtnToggle.js +5 -9
  253. package/src/components/card/QCard.js +5 -5
  254. package/src/components/card/QCardActions.js +2 -2
  255. package/src/components/card/QCardSection.js +2 -2
  256. package/src/components/carousel/QCarousel.js +32 -38
  257. package/src/components/carousel/QCarouselControl.js +1 -1
  258. package/src/components/carousel/QCarouselSlide.js +1 -1
  259. package/src/components/carousel/QCarouselSlide.json +1 -1
  260. package/src/components/chat/QChatMessage.js +13 -14
  261. package/src/components/chat/QChatMessage.json +1 -1
  262. package/src/components/checkbox/QCheckbox.js +5 -5
  263. package/src/components/checkbox/use-checkbox.js +38 -50
  264. package/src/components/chip/QChip.js +26 -34
  265. package/src/components/chip/QChip.test.js +2 -2
  266. package/src/components/circular-progress/QCircularProgress.js +8 -11
  267. package/src/components/circular-progress/circular-progress.test.js +1 -1
  268. package/src/components/color/QColor.js +75 -98
  269. package/src/components/date/QDate.js +128 -140
  270. package/src/components/date/use-datetime.js +3 -6
  271. package/src/components/dialog/QDialog.js +44 -50
  272. package/src/components/dialog/QDialog.test.js +7 -7
  273. package/src/components/drawer/QDrawer.js +110 -152
  274. package/src/components/editor/QEditor.js +44 -37
  275. package/src/components/editor/editor-caret.js +27 -31
  276. package/src/components/editor/editor-utils.js +9 -5
  277. package/src/components/expansion-item/QExpansionItem.js +36 -48
  278. package/src/components/fab/QFab.js +11 -11
  279. package/src/components/fab/QFabAction.js +2 -4
  280. package/src/components/fab/use-fab.js +6 -7
  281. package/src/components/field/QField.js +2 -2
  282. package/src/components/file/QFile.js +26 -33
  283. package/src/components/footer/QFooter.js +40 -53
  284. package/src/components/form/QForm.js +37 -43
  285. package/src/components/form/QFormChildMixin.js +3 -3
  286. package/src/components/header/QHeader.js +35 -47
  287. package/src/components/icon/QIcon.js +19 -19
  288. package/src/components/img/QImg.js +24 -24
  289. package/src/components/img/QImg.json +3 -3
  290. package/src/components/infinite-scroll/QInfiniteScroll.js +38 -52
  291. package/src/components/inner-loading/QInnerLoading.js +3 -3
  292. package/src/components/input/QInput.js +52 -52
  293. package/src/components/input/use-mask.js +56 -54
  294. package/src/components/intersection/QIntersection.js +6 -8
  295. package/src/components/item/QItem.js +20 -30
  296. package/src/components/item/QItemLabel.js +5 -7
  297. package/src/components/item/QItemSection.js +6 -6
  298. package/src/components/item/QList.js +6 -6
  299. package/src/components/item/QList.test.js +2 -2
  300. package/src/components/knob/QKnob.js +39 -44
  301. package/src/components/layout/QLayout.js +30 -34
  302. package/src/components/linear-progress/QLinearProgress.js +14 -23
  303. package/src/components/markup-table/QMarkupTable.js +7 -9
  304. package/src/components/menu/QMenu.js +36 -37
  305. package/src/components/no-ssr/QNoSsr.js +1 -1
  306. package/src/components/option-group/QOptionGroup.js +5 -5
  307. package/src/components/page/QPage.js +16 -18
  308. package/src/components/page/QPageContainer.js +9 -9
  309. package/src/components/page-scroller/QPageScroller.js +11 -13
  310. package/src/components/page-sticky/use-page-sticky.js +18 -18
  311. package/src/components/pagination/QPagination.js +24 -26
  312. package/src/components/parallax/QParallax.js +15 -9
  313. package/src/components/parallax/QParallax.json +1 -1
  314. package/src/components/popup-edit/QPopupEdit.js +10 -13
  315. package/src/components/popup-proxy/QPopupProxy.js +5 -7
  316. package/src/components/pull-to-refresh/QPullToRefresh.js +15 -17
  317. package/src/components/radio/QRadio.js +24 -29
  318. package/src/components/range/QRange.js +33 -37
  319. package/src/components/rating/QRating.js +59 -61
  320. package/src/components/resize-observer/QResizeObserver.js +55 -62
  321. package/src/components/scroll-area/QScrollArea.js +32 -36
  322. package/src/components/scroll-observer/QScrollObserver.js +3 -3
  323. package/src/components/select/QSelect.js +208 -269
  324. package/src/components/separator/QSeparator.js +7 -10
  325. package/src/components/skeleton/QSkeleton.js +4 -4
  326. package/src/components/slide-item/QSlideItem.js +7 -7
  327. package/src/components/slide-transition/QSlideTransition.js +4 -4
  328. package/src/components/slider/QSlider.js +13 -16
  329. package/src/components/slider/use-slider.js +53 -81
  330. package/src/components/slider/use-slider.json +3 -3
  331. package/src/components/space/QSpace.test.js +1 -1
  332. package/src/components/spinner/QSpinner.test.js +2 -2
  333. package/src/components/spinner/QSpinnerAudio.test.js +2 -2
  334. package/src/components/spinner/QSpinnerBall.test.js +2 -2
  335. package/src/components/spinner/QSpinnerBars.test.js +2 -2
  336. package/src/components/spinner/QSpinnerBox.test.js +2 -2
  337. package/src/components/spinner/QSpinnerClock.test.js +2 -2
  338. package/src/components/spinner/QSpinnerComment.test.js +2 -2
  339. package/src/components/spinner/QSpinnerCube.test.js +2 -2
  340. package/src/components/spinner/QSpinnerDots.test.js +2 -2
  341. package/src/components/spinner/QSpinnerFacebook.test.js +2 -2
  342. package/src/components/spinner/QSpinnerGears.test.js +2 -2
  343. package/src/components/spinner/QSpinnerGrid.test.js +2 -2
  344. package/src/components/spinner/QSpinnerHearts.test.js +2 -2
  345. package/src/components/spinner/QSpinnerHourglass.test.js +2 -2
  346. package/src/components/spinner/QSpinnerInfinity.test.js +2 -2
  347. package/src/components/spinner/QSpinnerIos.test.js +2 -2
  348. package/src/components/spinner/QSpinnerOrbit.test.js +2 -2
  349. package/src/components/spinner/QSpinnerOval.test.js +2 -2
  350. package/src/components/spinner/QSpinnerPie.test.js +2 -2
  351. package/src/components/spinner/QSpinnerPuff.test.js +2 -2
  352. package/src/components/spinner/QSpinnerRadio.test.js +2 -2
  353. package/src/components/spinner/QSpinnerRings.test.js +2 -2
  354. package/src/components/spinner/QSpinnerTail.test.js +2 -2
  355. package/src/components/spinner/use-spinner.test.js +1 -1
  356. package/src/components/splitter/QSplitter.js +19 -21
  357. package/src/components/stepper/QStep.js +12 -14
  358. package/src/components/stepper/QStepper.js +13 -14
  359. package/src/components/stepper/StepHeader.js +34 -35
  360. package/src/components/tab-panels/QTabPanels.js +3 -3
  361. package/src/components/table/QTable.js +82 -100
  362. package/src/components/table/QTd.js +3 -3
  363. package/src/components/table/QTh.js +5 -6
  364. package/src/components/table/QTr.js +3 -3
  365. package/src/components/table/table-column-selection.js +4 -6
  366. package/src/components/table/table-filter.js +2 -2
  367. package/src/components/table/table-pagination.js +14 -20
  368. package/src/components/table/table-row-expand.js +3 -3
  369. package/src/components/table/table-row-selection.js +10 -20
  370. package/src/components/table/table-sort.js +7 -7
  371. package/src/components/tabs/QRouteTab.js +1 -1
  372. package/src/components/tabs/QTab.js +1 -1
  373. package/src/components/tabs/QTabs.js +82 -109
  374. package/src/components/tabs/use-tab.js +36 -38
  375. package/src/components/time/QTime.js +109 -132
  376. package/src/components/timeline/QTimeline.js +7 -4
  377. package/src/components/timeline/QTimelineEntry.js +7 -6
  378. package/src/components/timeline/QTimelineEntry.json +1 -1
  379. package/src/components/toggle/QToggle.js +6 -8
  380. package/src/components/toolbar/QToolbar.js +2 -2
  381. package/src/components/toolbar/QToolbar.test.js +2 -2
  382. package/src/components/toolbar/QToolbarTitle.js +2 -4
  383. package/src/components/toolbar/QToolbarTitle.test.js +2 -2
  384. package/src/components/tooltip/QTooltip.js +27 -28
  385. package/src/components/tree/QTree.js +96 -114
  386. package/src/components/tree/QTree.json +1 -1
  387. package/src/components/uploader/QUploaderAddTrigger.js +2 -2
  388. package/src/components/uploader/uploader-core.js +44 -51
  389. package/src/components/uploader/xhr-uploader-plugin.js +13 -17
  390. package/src/components/video/QVideo.js +1 -1
  391. package/src/components/video/QVideo.test.js +2 -2
  392. package/src/components/virtual-scroll/QVirtualScroll.js +9 -10
  393. package/src/components/virtual-scroll/use-virtual-scroll.js +42 -50
  394. package/src/composables/private.use-align/use-align.js +2 -2
  395. package/src/composables/private.use-align/use-align.test.js +1 -1
  396. package/src/composables/private.use-anchor/use-anchor.js +23 -32
  397. package/src/composables/private.use-dark/use-dark.test.js +1 -1
  398. package/src/composables/private.use-field/use-field.js +79 -99
  399. package/src/composables/private.use-file/use-file-dom-props.js +2 -2
  400. package/src/composables/private.use-file/use-file.js +27 -27
  401. package/src/composables/private.use-fullscreen/use-fullscreen.js +15 -20
  402. package/src/composables/private.use-history/use-history.js +2 -2
  403. package/src/composables/private.use-history/use-history.test.js +1 -1
  404. package/src/composables/private.use-key-composition/use-key-composition.js +11 -12
  405. package/src/composables/private.use-model-toggle/use-model-toggle.js +16 -25
  406. package/src/composables/private.use-panel/use-panel.js +25 -27
  407. package/src/composables/private.use-portal/use-portal.js +11 -9
  408. package/src/composables/private.use-prevent-scroll/use-prevent-scroll.js +1 -4
  409. package/src/composables/private.use-ratio/use-ratio.js +6 -5
  410. package/src/composables/private.use-ratio/use-ratio.test.js +1 -1
  411. package/src/composables/private.use-refocus-target/use-refocus-target.js +2 -4
  412. package/src/composables/private.use-router-link/use-router-link.js +44 -55
  413. package/src/composables/private.use-scroll-target/use-scroll-target.js +1 -1
  414. package/src/composables/private.use-size/use-size.test.js +1 -1
  415. package/src/composables/private.use-transition/use-transition.test.js +1 -1
  416. package/src/composables/private.use-validate/use-validate.js +23 -36
  417. package/src/composables/use-dialog-plugin-component/use-dialog-plugin-component.js +1 -1
  418. package/src/composables/use-form/private.use-form.js +1 -1
  419. package/src/composables/use-form/private.use-form.test.js +3 -3
  420. package/src/composables/use-form/use-form-child.js +7 -7
  421. package/src/composables/use-hydration/use-hydration.js +2 -2
  422. package/src/composables/use-hydration/use-hydration.test.js +1 -1
  423. package/src/composables/use-id/use-id.js +4 -8
  424. package/src/composables/use-id/use-id.test.js +1 -1
  425. package/src/composables/use-interval/use-interval.js +3 -3
  426. package/src/composables/use-interval/use-interval.test.js +1 -1
  427. package/src/composables/use-meta/use-meta.js +3 -3
  428. package/src/composables/use-quasar/use-quasar.test.js +1 -1
  429. package/src/composables/use-render-cache/use-render-cache.js +1 -1
  430. package/src/composables/use-render-cache/use-render-cache.test.js +1 -1
  431. package/src/composables/use-split-attrs/use-split-attrs.js +3 -7
  432. package/src/composables/use-split-attrs/use-split-attrs.test.js +1 -1
  433. package/src/composables/use-tick/use-tick.js +3 -3
  434. package/src/composables/use-tick/use-tick.test.js +2 -2
  435. package/src/composables/use-timeout/use-timeout.js +2 -2
  436. package/src/composables/use-timeout/use-timeout.test.js +1 -1
  437. package/src/directives/close-popup/ClosePopup.js +4 -9
  438. package/src/directives/intersection/Intersection.js +5 -8
  439. package/src/directives/morph/Morph.js +12 -18
  440. package/src/directives/ripple/Ripple.js +19 -26
  441. package/src/directives/ripple/Ripple.test.js +2 -2
  442. package/src/directives/scroll/Scroll.js +2 -2
  443. package/src/directives/touch-hold/TouchHold.js +22 -28
  444. package/src/directives/touch-pan/TouchPan.js +68 -84
  445. package/src/directives/touch-repeat/TouchRepeat.js +28 -39
  446. package/src/directives/touch-swipe/TouchSwipe.js +30 -33
  447. package/src/index.ssr.js +2 -0
  448. package/src/index.umd.js +2 -0
  449. package/src/install-quasar.js +9 -9
  450. package/src/plugins/addressbar/AddressbarColor.js +9 -9
  451. package/src/plugins/addressbar/AddressbarColor.test.js +2 -2
  452. package/src/plugins/app-fullscreen/AppFullscreen.js +11 -10
  453. package/src/plugins/app-fullscreen/AppFullscreen.test.js +2 -2
  454. package/src/plugins/app-fullscreen/test/mock-fullscreen.js +2 -2
  455. package/src/plugins/app-visibility/AppVisibility.js +5 -5
  456. package/src/plugins/app-visibility/AppVisibility.test.js +2 -2
  457. package/src/plugins/bottom-sheet/BottomSheet.js +2 -2
  458. package/src/plugins/bottom-sheet/component/BottomSheetComponent.js +4 -4
  459. package/src/plugins/cookies/Cookies.js +50 -62
  460. package/src/plugins/dark/Dark.js +3 -5
  461. package/src/plugins/dark/Dark.test.js +1 -1
  462. package/src/plugins/dialog/Dialog.js +2 -2
  463. package/src/plugins/dialog/component/DialogPluginComponent.js +17 -20
  464. package/src/plugins/icon-set/IconSet.js +2 -4
  465. package/src/plugins/icon-set/IconSet.test.js +1 -1
  466. package/src/plugins/lang/Lang.js +7 -10
  467. package/src/plugins/lang/Lang.json +2 -2
  468. package/src/plugins/lang/Lang.test.js +2 -2
  469. package/src/plugins/loading/Loading.js +10 -12
  470. package/src/plugins/loading-bar/LoadingBar.js +4 -4
  471. package/src/plugins/meta/Meta.js +10 -11
  472. package/src/plugins/notify/Notify.js +67 -72
  473. package/src/plugins/platform/Platform.js +19 -21
  474. package/src/plugins/platform/Platform.test.js +1 -1
  475. package/src/plugins/private.body/Body.js +23 -29
  476. package/src/plugins/private.body/Body.test.js +1 -1
  477. package/src/plugins/private.history/History.js +17 -25
  478. package/src/plugins/private.history/History.test.js +1 -1
  479. package/src/plugins/screen/Screen.js +16 -16
  480. package/src/plugins/screen/Screen.test.js +1 -1
  481. package/src/plugins/storage/LocalStorage.js +3 -4
  482. package/src/plugins/storage/LocalStorage.test.js +2 -2
  483. package/src/plugins/storage/SessionStorage.js +3 -4
  484. package/src/plugins/storage/SessionStorage.test.js +2 -2
  485. package/src/plugins/storage/engine/web-storage.js +30 -23
  486. package/src/plugins/storage/engine/web-storage.test.js +1 -1
  487. package/src/utils/EventBus/EventBus.js +3 -4
  488. package/src/utils/EventBus/EventBus.test.js +1 -1
  489. package/src/utils/clone/clone.test.js +4 -8
  490. package/src/utils/colors/colors.js +38 -29
  491. package/src/utils/colors/colors.test.js +2 -2
  492. package/src/utils/copy-to-clipboard/copy-to-clipboard.js +6 -11
  493. package/src/utils/create-meta-mixin/create-meta-mixin.js +2 -2
  494. package/src/utils/create-uploader-component/create-uploader-component.js +12 -7
  495. package/src/utils/css-var/get-css-var.test.js +2 -2
  496. package/src/utils/css-var/set-css-var.test.js +2 -2
  497. package/src/utils/date/date.js +229 -172
  498. package/src/utils/date/private.persian.js +11 -11
  499. package/src/utils/debounce/debounce.js +3 -7
  500. package/src/utils/debounce/debounce.test.js +1 -1
  501. package/src/utils/dom/dom.js +2 -4
  502. package/src/utils/dom/dom.test.js +4 -4
  503. package/src/utils/event/event.js +21 -23
  504. package/src/utils/export-file/export-file.js +3 -3
  505. package/src/utils/extend/extend.js +15 -14
  506. package/src/utils/extend/extend.test.js +2 -2
  507. package/src/utils/format/format.js +4 -10
  508. package/src/utils/format/format.test.js +1 -1
  509. package/src/utils/frame-debounce/frame-debounce.js +23 -12
  510. package/src/utils/frame-debounce/frame-debounce.test.js +1 -1
  511. package/src/utils/is/is.js +15 -26
  512. package/src/utils/is/is.test.js +8 -7
  513. package/src/utils/morph/morph.js +57 -48
  514. package/src/utils/open-url/open-url.js +7 -7
  515. package/src/utils/patterns/patterns.js +26 -23
  516. package/src/utils/patterns/patterns.test.js +1 -1
  517. package/src/utils/private.click-outside/click-outside.js +5 -5
  518. package/src/utils/private.config/instance-config.js +2 -0
  519. package/src/utils/private.config/instance-config.test.js +4 -4
  520. package/src/utils/private.config/nodes.js +5 -5
  521. package/src/utils/private.config/nodes.test.js +4 -4
  522. package/src/utils/private.create/create.test.js +1 -1
  523. package/src/utils/private.dialog/create-dialog.js +9 -12
  524. package/src/utils/private.focus/focus-manager.js +1 -1
  525. package/src/utils/private.focus/focus-manager.test.js +4 -4
  526. package/src/utils/private.focus/focusout.js +2 -2
  527. package/src/utils/private.focus/focusout.test.js +1 -1
  528. package/src/utils/private.get-emits-object/get-emits-object.test.js +1 -1
  529. package/src/utils/private.inject-obj-prop/inject-obj-prop.test.js +2 -2
  530. package/src/utils/private.keyboard/escape-key.js +5 -5
  531. package/src/utils/private.keyboard/escape-key.test.js +1 -1
  532. package/src/utils/private.keyboard/key-composition.js +4 -6
  533. package/src/utils/private.noop-ssr-directive-transform/noop-ssr-directive-transform.js +3 -1
  534. package/src/utils/private.noop-ssr-directive-transform/noop-ssr-directive-transform.test.js +1 -1
  535. package/src/utils/private.portal/portal.js +5 -5
  536. package/src/utils/private.position-engine/position-engine.js +20 -22
  537. package/src/utils/private.render/render.js +5 -7
  538. package/src/utils/private.render/render.test.js +5 -5
  539. package/src/utils/private.rtl/rtl.js +3 -2
  540. package/src/utils/private.rtl/rtl.test.js +1 -1
  541. package/src/utils/private.selection/selection.js +1 -1
  542. package/src/utils/private.selection/selection.test.js +2 -2
  543. package/src/utils/private.sort/sort.test.js +2 -2
  544. package/src/utils/private.touch/touch.js +10 -14
  545. package/src/utils/private.touch/touch.test.js +1 -1
  546. package/src/utils/private.vm/vm.js +2 -2
  547. package/src/utils/private.vm/vm.test.js +4 -4
  548. package/src/utils/run-sequential-promises/run-sequential-promises.js +44 -54
  549. package/src/utils/run-sequential-promises/run-sequential-promises.test.js +183 -0
  550. package/src/utils/scroll/prevent-scroll.js +9 -9
  551. package/src/utils/scroll/scroll.js +11 -12
  552. package/src/utils/throttle/throttle.js +4 -3
  553. package/src/utils/throttle/throttle.test.js +1 -1
  554. package/src/utils/uid/uid.js +51 -77
  555. package/src/utils/uid/uid.test.js +3 -3
  556. package/wrappers/index.cjs +2 -2
  557. package/wrappers/index.js +2 -2
  558. package/dist/types/extras/animations.d.ts +0 -106
  559. package/dist/types/extras/fonts.d.ts +0 -1
  560. package/dist/types/extras.d.ts +0 -3
  561. package/dist/vetur/quasar-attributes.json +0 -1
  562. package/dist/vetur/quasar-tags.json +0 -1
@@ -1,4 +1,4 @@
1
- import { h, ref, watch, computed, getCurrentInstance } from 'vue'
1
+ import { computed, getCurrentInstance, h, ref, watch } from 'vue'
2
2
 
3
3
  import QBtn from '../btn/QBtn.js'
4
4
  import QInput from '../input/QInput.js'
@@ -13,7 +13,7 @@ import { between } from '../../utils/format/format.js'
13
13
  import { isKeyCode } from '../../utils/private.keyboard/key-composition.js'
14
14
 
15
15
  function getBool(val, otherwise) {
16
- return [true, false].includes(val) ? val : otherwise
16
+ return val === true || val === false ? val : otherwise
17
17
  }
18
18
 
19
19
  export default createComponent({
@@ -37,7 +37,7 @@ export default createComponent({
37
37
  maxPages: {
38
38
  type: [Number, String],
39
39
  default: 0,
40
- validator: v => (typeof v === 'string' ? parseInt(v, 10) : v) >= 0
40
+ validator: v => (typeof v === 'string' ? Number.parseInt(v, 10) : v) >= 0
41
41
  },
42
42
 
43
43
  inputStyle: [Array, String, Object],
@@ -116,9 +116,9 @@ export default createComponent({
116
116
 
117
117
  const isDark = useDark(props, $q)
118
118
 
119
- const minProp = computed(() => parseInt(props.min, 10))
120
- const maxProp = computed(() => parseInt(props.max, 10))
121
- const maxPagesProp = computed(() => parseInt(props.maxPages, 10))
119
+ const minProp = computed(() => Number.parseInt(props.min, 10))
120
+ const maxProp = computed(() => Number.parseInt(props.max, 10))
121
+ const maxPagesProp = computed(() => Number.parseInt(props.maxPages, 10))
122
122
 
123
123
  const inputPlaceholder = computed(() => model.value + ' / ' + maxProp.value)
124
124
  const boundaryLinksProp = computed(() =>
@@ -136,8 +136,8 @@ export default createComponent({
136
136
  const model = computed({
137
137
  get: () => props.modelValue,
138
138
  set: val => {
139
- val = parseInt(val, 10)
140
- if (props.disable || isNaN(val)) return
139
+ val = Number.parseInt(val, 10)
140
+ if (props.disable || !Number.isFinite(val)) return
141
141
 
142
142
  const value = between(val, minProp.value, maxProp.value)
143
143
  if (props.modelValue !== value) {
@@ -156,7 +156,7 @@ export default createComponent({
156
156
  const classes = computed(
157
157
  () =>
158
158
  'q-pagination row no-wrap items-center' +
159
- (props.disable === true ? ' disabled' : '')
159
+ (props.disable ? ' disabled' : '')
160
160
  )
161
161
 
162
162
  const gutterProp = computed(() =>
@@ -177,11 +177,11 @@ export default createComponent({
177
177
  props.iconNext || $q.iconSet.pagination.next,
178
178
  props.iconLast || $q.iconSet.pagination.last
179
179
  ]
180
- return $q.lang.rtl === true ? ico.reverse() : ico
180
+ return $q.lang.rtl ? ico.reverse() : ico
181
181
  })
182
182
 
183
183
  const attrs = computed(() => ({
184
- 'aria-disabled': props.disable === true ? 'true' : 'false',
184
+ 'aria-disabled': props.disable ? 'true' : 'false',
185
185
  role: 'navigation'
186
186
  }))
187
187
 
@@ -285,7 +285,7 @@ export default createComponent({
285
285
  function updateModel() {
286
286
  model.value = newPage.value
287
287
  newPage.value = null
288
- if ($q.platform.is.mobile === true) document.activeElement.blur()
288
+ if ($q.platform.is.mobile) document.activeElement.blur()
289
289
  }
290
290
 
291
291
  function onInputValue(val) {
@@ -293,7 +293,7 @@ export default createComponent({
293
293
  }
294
294
 
295
295
  function onKeyup(e) {
296
- if (isKeyCode(e, 13) === true) updateModel()
296
+ if (isKeyCode(e, 13)) updateModel()
297
297
  }
298
298
 
299
299
  function getBtn(cfg, page, active) {
@@ -304,7 +304,7 @@ export default createComponent({
304
304
  ...cfg
305
305
  }
306
306
 
307
- if (active === true) {
307
+ if (active) {
308
308
  Object.assign(data, {
309
309
  'aria-current': 'true',
310
310
  ...activeBtnProps.value
@@ -332,7 +332,7 @@ export default createComponent({
332
332
  const contentEnd = []
333
333
  let contentMiddle
334
334
 
335
- if (boundaryLinksProp.value === true) {
335
+ if (boundaryLinksProp.value) {
336
336
  contentStart.push(
337
337
  getBtn(
338
338
  {
@@ -358,7 +358,7 @@ export default createComponent({
358
358
  )
359
359
  }
360
360
 
361
- if (directionLinksProp.value === true) {
361
+ if (directionLinksProp.value) {
362
362
  contentStart.push(
363
363
  getBtn(
364
364
  {
@@ -384,13 +384,12 @@ export default createComponent({
384
384
  )
385
385
  }
386
386
 
387
- if (props.input !== true) {
387
+ if (!props.input) {
388
388
  // has buttons instead of inputbox
389
389
  contentMiddle = []
390
390
  const { pgFrom, pgTo, marginalStyle: style } = btnConfig.value
391
391
 
392
- if (btnConfig.value.boundaryStart === true) {
393
- const active = minProp.value === props.modelValue
392
+ if (btnConfig.value.boundaryStart) {
394
393
  contentStart.push(
395
394
  getBtn(
396
395
  {
@@ -400,13 +399,12 @@ export default createComponent({
400
399
  label: minProp.value
401
400
  },
402
401
  minProp.value,
403
- active
402
+ minProp.value === props.modelValue
404
403
  )
405
404
  )
406
405
  }
407
406
 
408
- if (btnConfig.value.boundaryEnd === true) {
409
- const active = maxProp.value === props.modelValue
407
+ if (btnConfig.value.boundaryEnd) {
410
408
  contentEnd.unshift(
411
409
  getBtn(
412
410
  {
@@ -416,12 +414,12 @@ export default createComponent({
416
414
  label: maxProp.value
417
415
  },
418
416
  maxProp.value,
419
- active
417
+ maxProp.value === props.modelValue
420
418
  )
421
419
  )
422
420
  }
423
421
 
424
- if (btnConfig.value.ellipsesStart === true) {
422
+ if (btnConfig.value.ellipsesStart) {
425
423
  contentStart.push(
426
424
  getBtn(
427
425
  {
@@ -436,7 +434,7 @@ export default createComponent({
436
434
  )
437
435
  }
438
436
 
439
- if (btnConfig.value.ellipsesEnd === true) {
437
+ if (btnConfig.value.ellipsesEnd) {
440
438
  contentEnd.unshift(
441
439
  getBtn(
442
440
  {
@@ -483,7 +481,7 @@ export default createComponent({
483
481
  [
484
482
  ...contentStart,
485
483
 
486
- props.input === true
484
+ props.input
487
485
  ? h(QInput, {
488
486
  class: 'inline',
489
487
  style: {
@@ -1,4 +1,4 @@
1
- import { h, ref, watch, onMounted, onBeforeUnmount } from 'vue'
1
+ import { h, onBeforeUnmount, onMounted, ref, watch } from 'vue'
2
2
 
3
3
  import { createComponent } from '../../utils/private.create/create.js'
4
4
  import { height, offset } from '../../utils/dom/dom.js'
@@ -8,6 +8,7 @@ import { hSlot } from '../../utils/private.render/render.js'
8
8
  import { listenOpts } from '../../utils/event/event.js'
9
9
 
10
10
  const { passive } = listenOpts
11
+ const mediaEvents = ['load', 'loadstart', 'loadedmetadata']
11
12
 
12
13
  export default createComponent({
13
14
  name: 'QParallax',
@@ -35,7 +36,7 @@ export default createComponent({
35
36
  const mediaParentRef = ref(null)
36
37
  const mediaRef = ref(null)
37
38
 
38
- let isWorking,
39
+ let isWorking = false,
39
40
  mediaEl,
40
41
  mediaHeight,
41
42
  resizeHandler,
@@ -45,14 +46,14 @@ export default createComponent({
45
46
  watch(
46
47
  () => props.height,
47
48
  () => {
48
- if (isWorking === true) updatePos()
49
+ if (isWorking) updatePos()
49
50
  }
50
51
  )
51
52
 
52
53
  watch(
53
54
  () => props.scrollTarget,
54
55
  () => {
55
- if (isWorking === true) {
56
+ if (isWorking) {
56
57
  stop()
57
58
  start()
58
59
  }
@@ -99,7 +100,7 @@ export default createComponent({
99
100
  mediaHeight =
100
101
  mediaEl.naturalHeight || mediaEl.videoHeight || height(mediaEl)
101
102
 
102
- if (isWorking === true) updatePos()
103
+ if (isWorking) updatePos()
103
104
  }
104
105
 
105
106
  function start() {
@@ -111,7 +112,7 @@ export default createComponent({
111
112
  }
112
113
 
113
114
  function stop() {
114
- if (isWorking === true) {
115
+ if (isWorking) {
115
116
  isWorking = false
116
117
  localScrollTarget.removeEventListener('scroll', updatePos, passive)
117
118
  window.removeEventListener('resize', resizeHandler, passive)
@@ -132,13 +133,16 @@ export default createComponent({
132
133
  ? mediaParentRef.value.children[0]
133
134
  : mediaRef.value
134
135
 
135
- mediaEl.onload = mediaEl.onloadstart = mediaEl.loadedmetadata = onResize
136
+ mediaEvents.forEach(evtName => {
137
+ mediaEl.addEventListener(evtName, onResize)
138
+ })
139
+
136
140
  onResize()
137
141
  mediaEl.style.display = 'initial'
138
142
 
139
143
  if (window.IntersectionObserver !== void 0) {
140
144
  observer = new IntersectionObserver(entries => {
141
- const fn = entries[0].isIntersecting === true ? start : stop
145
+ const fn = entries[0].isIntersecting ? start : stop
142
146
  fn()
143
147
  })
144
148
 
@@ -151,7 +155,9 @@ export default createComponent({
151
155
  onBeforeUnmount(() => {
152
156
  stop()
153
157
  observer?.disconnect()
154
- mediaEl.onload = mediaEl.onloadstart = mediaEl.loadedmetadata = null
158
+ mediaEvents.forEach(evtName => {
159
+ mediaEl.removeEventListener(evtName, onResize)
160
+ })
155
161
  })
156
162
 
157
163
  return () =>
@@ -10,7 +10,7 @@
10
10
  "transformAssetUrls": true,
11
11
  "examples": [
12
12
  "# (public folder) src=\"img/something.png\"",
13
- "# (assets folder) src=\"~assets/my-img.png\"",
13
+ "# (assets folder) src=\"~@/assets/my-img.png\"",
14
14
  "# (relative path format) :src=\"require('./my_img.jpg')\"",
15
15
  "# (URL) src=\"https://some-site.net/some-img.jpg\""
16
16
  ],
@@ -1,4 +1,4 @@
1
- import { h, ref, computed, nextTick, getCurrentInstance } from 'vue'
1
+ import { computed, getCurrentInstance, h, nextTick, ref } from 'vue'
2
2
 
3
3
  import QMenu from '../menu/QMenu.js'
4
4
  import QBtn from '../btn/QBtn.js'
@@ -80,9 +80,9 @@ export default createComponent({
80
80
  )
81
81
 
82
82
  function set() {
83
- if (props.validate(currentModel.value) === false) return
83
+ if (!props.validate(currentModel.value)) return
84
84
 
85
- if (hasModelChanged() === true) {
85
+ if (hasModelChanged()) {
86
86
  emit('save', currentModel.value, initialValue.value)
87
87
  emit('update:modelValue', currentModel.value)
88
88
  }
@@ -91,7 +91,7 @@ export default createComponent({
91
91
  }
92
92
 
93
93
  function cancel() {
94
- if (hasModelChanged() === true) {
94
+ if (hasModelChanged()) {
95
95
  emit('cancel', currentModel.value, initialValue.value)
96
96
  }
97
97
 
@@ -105,7 +105,7 @@ export default createComponent({
105
105
  }
106
106
 
107
107
  function hasModelChanged() {
108
- return isDeepEqual(currentModel.value, initialValue.value) === false
108
+ return !isDeepEqual(currentModel.value, initialValue.value)
109
109
  }
110
110
 
111
111
  function closeMenu() {
@@ -125,11 +125,8 @@ export default createComponent({
125
125
  }
126
126
 
127
127
  function onBeforeHide() {
128
- if (validated === false && hasModelChanged() === true) {
129
- if (
130
- props.autoSave === true &&
131
- props.validate(currentModel.value) === true
132
- ) {
128
+ if (!validated && hasModelChanged()) {
129
+ if (props.autoSave && props.validate(currentModel.value)) {
133
130
  emit('save', currentModel.value, initialValue.value)
134
131
  emit('update:modelValue', currentModel.value)
135
132
  } else {
@@ -146,7 +143,7 @@ export default createComponent({
146
143
 
147
144
  function getContent() {
148
145
  const child =
149
- slots.default !== void 0 ? [].concat(slots.default(scope.value)) : []
146
+ slots.default !== void 0 ? [slots.default(scope.value)].flat() : []
150
147
 
151
148
  if (props.title) {
152
149
  child.unshift(
@@ -154,7 +151,7 @@ export default createComponent({
154
151
  )
155
152
  }
156
153
 
157
- if (props.buttons === true) {
154
+ if (props.buttons) {
158
155
  child.push(
159
156
  h(
160
157
  'div',
@@ -194,7 +191,7 @@ export default createComponent({
194
191
  })
195
192
 
196
193
  return () => {
197
- if (props.disable === true) return
194
+ if (props.disable) return
198
195
 
199
196
  return h(
200
197
  QMenu,
@@ -1,4 +1,4 @@
1
- import { h, ref, computed, watch, getCurrentInstance } from 'vue'
1
+ import { computed, getCurrentInstance, h, ref, watch } from 'vue'
2
2
 
3
3
  import QDialog from '../dialog/QDialog.js'
4
4
  import QMenu from '../menu/QMenu.js'
@@ -30,9 +30,9 @@ export default createComponent({
30
30
 
31
31
  const showing = ref(false)
32
32
  const popupRef = ref(null)
33
- const breakpoint = computed(() => parseInt(props.breakpoint, 10))
33
+ const breakpoint = computed(() => Number.parseInt(props.breakpoint, 10))
34
34
 
35
- const { canShow } = useAnchor({ showing })
35
+ const { canShow } = useAnchor({ showing, avoidEmit: true })
36
36
 
37
37
  function getType() {
38
38
  return $q.screen.width < breakpoint.value ||
@@ -50,9 +50,7 @@ export default createComponent({
50
50
  watch(
51
51
  () => getType(),
52
52
  val => {
53
- if (showing.value !== true) {
54
- type.value = val
55
- }
53
+ if (!showing.value) type.value = val
56
54
  }
57
55
  )
58
56
 
@@ -70,7 +68,7 @@ export default createComponent({
70
68
  // expose public methods
71
69
  Object.assign(proxy, {
72
70
  show(evt) {
73
- if (canShow(evt) === true) popupRef.value.show(evt)
71
+ if (canShow(evt)) popupRef.value.show(evt)
74
72
  },
75
73
  hide(evt) {
76
74
  popupRef.value.hide(evt)
@@ -1,11 +1,11 @@
1
1
  import {
2
- h,
3
- ref,
4
2
  computed,
5
- watch,
6
- onMounted,
3
+ getCurrentInstance,
4
+ h,
7
5
  onBeforeUnmount,
8
- getCurrentInstance
6
+ onMounted,
7
+ ref,
8
+ watch
9
9
  } from 'vue'
10
10
 
11
11
  import QIcon from '../icon/QIcon.js'
@@ -20,7 +20,7 @@ import {
20
20
  } from '../../utils/scroll/scroll.js'
21
21
  import { between } from '../../utils/format/format.js'
22
22
  import { prevent } from '../../utils/event/event.js'
23
- import { hSlot, hDir } from '../../utils/private.render/render.js'
23
+ import { hDir, hSlot } from '../../utils/private.render/render.js'
24
24
 
25
25
  const PULLER_HEIGHT = 40,
26
26
  OFFSET_TOP = 20
@@ -59,15 +59,13 @@ export default createComponent({
59
59
  const classes = computed(
60
60
  () =>
61
61
  'q-pull-to-refresh__puller row flex-center' +
62
- (animating.value === true
63
- ? ' q-pull-to-refresh__puller--animating'
64
- : '') +
62
+ (animating.value ? ' q-pull-to-refresh__puller--animating' : '') +
65
63
  (props.bgColor !== void 0 ? ` bg-${props.bgColor}` : '')
66
64
  )
67
65
 
68
66
  function pull(event) {
69
- if (event.isFinal === true) {
70
- if (pulling.value === true) {
67
+ if (event.isFinal) {
68
+ if (pulling.value) {
71
69
  pulling.value = false
72
70
 
73
71
  if (state.value === 'pulled') {
@@ -82,16 +80,16 @@ export default createComponent({
82
80
  return
83
81
  }
84
82
 
85
- if (animating.value === true || state.value === 'refreshing') {
83
+ if (animating.value || state.value === 'refreshing') {
86
84
  return false
87
85
  }
88
86
 
89
- if (event.isFirst === true) {
87
+ if (event.isFirst) {
90
88
  if (
91
89
  getVerticalScrollPosition(localScrollTarget) !== 0 ||
92
90
  event.direction !== 'down'
93
91
  ) {
94
- if (pulling.value === true) {
92
+ if (pulling.value) {
95
93
  pulling.value = false
96
94
  state.value = 'pull'
97
95
  animateTo({ pos: -PULLER_HEIGHT, ratio: 0 })
@@ -127,7 +125,7 @@ export default createComponent({
127
125
  // if props.disable === false
128
126
  const modifiers = { down: true }
129
127
 
130
- if (props.noMouse !== true) {
128
+ if (!props.noMouse) {
131
129
  modifiers.mouse = true
132
130
  }
133
131
 
@@ -136,7 +134,7 @@ export default createComponent({
136
134
 
137
135
  const contentClass = computed(
138
136
  () =>
139
- `q-pull-to-refresh__content${pulling.value === true ? ' no-pointer-events' : ''}`
137
+ `q-pull-to-refresh__content${pulling.value ? ' no-pointer-events' : ''}`
140
138
  )
141
139
 
142
140
  function trigger() {
@@ -221,7 +219,7 @@ export default createComponent({
221
219
  { class: 'q-pull-to-refresh' },
222
220
  child,
223
221
  'main',
224
- props.disable === false,
222
+ !props.disable,
225
223
  () => directives.value
226
224
  )
227
225
  }
@@ -1,4 +1,4 @@
1
- import { h, ref, computed, getCurrentInstance, toRaw } from 'vue'
1
+ import { computed, getCurrentInstance, h, ref, toRaw } from 'vue'
2
2
 
3
3
  import QIcon from '../icon/QIcon.js'
4
4
 
@@ -10,14 +10,14 @@ import useSize, {
10
10
  } from '../../composables/private.use-size/use-size.js'
11
11
  import useRefocusTarget from '../../composables/private.use-refocus-target/use-refocus-target.js'
12
12
  import {
13
- useFormProps,
14
- useFormInject
13
+ useFormInject,
14
+ useFormProps
15
15
  } from '../../composables/use-form/private.use-form.js'
16
16
 
17
17
  import { createComponent } from '../../utils/private.create/create.js'
18
18
  import optionSizes from '../../utils/private.option-sizes/option-sizes.js'
19
19
  import { stopAndPrevent } from '../../utils/event/event.js'
20
- import { hSlot, hMergeSlot } from '../../utils/private.render/render.js'
20
+ import { hMergeSlot, hSlot } from '../../utils/private.render/render.js'
21
21
 
22
22
  const createSvg = () =>
23
23
  h(
@@ -39,6 +39,12 @@ const createSvg = () =>
39
39
  ]
40
40
  )
41
41
 
42
+ function onKeydown(e) {
43
+ if (e.keyCode === 13 || e.keyCode === 32) {
44
+ stopAndPrevent(e)
45
+ }
46
+ }
47
+
42
48
  export default createComponent({
43
49
  name: 'QRadio',
44
50
 
@@ -80,34 +86,29 @@ export default createComponent({
80
86
  const classes = computed(
81
87
  () =>
82
88
  'q-radio cursor-pointer no-outline row inline no-wrap items-center' +
83
- (props.disable === true ? ' disabled' : '') +
84
- (isDark.value === true ? ' q-radio--dark' : '') +
85
- (props.dense === true ? ' q-radio--dense' : '') +
86
- (props.leftLabel === true ? ' reverse' : '')
89
+ (props.disable ? ' disabled' : '') +
90
+ (isDark.value ? ' q-radio--dark' : '') +
91
+ (props.dense ? ' q-radio--dense' : '') +
92
+ (props.leftLabel ? ' reverse' : '')
87
93
  )
88
94
 
89
95
  const innerClass = computed(() => {
90
96
  const color =
91
- props.color !== void 0 &&
92
- (props.keepColor === true || isTrue.value === true)
97
+ props.color !== void 0 && (props.keepColor || isTrue.value)
93
98
  ? ` text-${props.color}`
94
99
  : ''
95
100
 
96
101
  return (
97
102
  'q-radio__inner relative-position ' +
98
- `q-radio__inner--${isTrue.value === true ? 'truthy' : 'falsy'}${color}`
103
+ `q-radio__inner--${isTrue.value ? 'truthy' : 'falsy'}${color}`
99
104
  )
100
105
  })
101
106
 
102
107
  const icon = computed(
103
- () =>
104
- (isTrue.value === true ? props.checkedIcon : props.uncheckedIcon) ||
105
- null
108
+ () => (isTrue.value ? props.checkedIcon : props.uncheckedIcon) || null
106
109
  )
107
110
 
108
- const tabindex = computed(() =>
109
- props.disable === true ? -1 : props.tabindex || 0
110
- )
111
+ const tabindex = computed(() => (props.disable ? -1 : props.tabindex || 0))
111
112
 
112
113
  const formAttrs = computed(() => {
113
114
  const prop = { type: 'radio' }
@@ -115,8 +116,8 @@ export default createComponent({
115
116
  if (props.name !== void 0) {
116
117
  Object.assign(prop, {
117
118
  // see https://vuejs.org/guide/extras/render-function.html#creating-vnodes (.prop)
118
- '.checked': isTrue.value === true,
119
- '^checked': isTrue.value === true ? 'checked' : void 0,
119
+ '.checked': isTrue.value,
120
+ '^checked': isTrue.value ? 'checked' : void 0,
120
121
  name: props.name,
121
122
  value: props.val
122
123
  })
@@ -133,17 +134,11 @@ export default createComponent({
133
134
  refocusTarget(e)
134
135
  }
135
136
 
136
- if (props.disable !== true && isTrue.value !== true) {
137
+ if (!props.disable && !isTrue.value) {
137
138
  emit('update:modelValue', props.val, e)
138
139
  }
139
140
  }
140
141
 
141
- function onKeydown(e) {
142
- if (e.keyCode === 13 || e.keyCode === 32) {
143
- stopAndPrevent(e)
144
- }
145
- }
146
-
147
142
  function onKeyup(e) {
148
143
  if (e.keyCode === 13 || e.keyCode === 32) {
149
144
  onClick(e)
@@ -176,7 +171,7 @@ export default createComponent({
176
171
  ]
177
172
  : [svg]
178
173
 
179
- if (props.disable !== true) {
174
+ if (!props.disable) {
180
175
  injectFormInput(
181
176
  content,
182
177
  'unshift',
@@ -225,8 +220,8 @@ export default createComponent({
225
220
  tabindex: tabindex.value,
226
221
  role: 'radio',
227
222
  'aria-label': props.label,
228
- 'aria-checked': isTrue.value === true ? 'true' : 'false',
229
- 'aria-disabled': props.disable === true ? 'true' : void 0,
223
+ 'aria-checked': isTrue.value ? 'true' : 'false',
224
+ 'aria-disabled': props.disable ? 'true' : void 0,
230
225
  onClick,
231
226
  onKeydown,
232
227
  onKeyup