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,10 +1,10 @@
1
1
  import {
2
- h,
3
2
  computed,
4
- watch,
5
- onMounted,
3
+ getCurrentInstance,
4
+ h,
6
5
  onBeforeUnmount,
7
- getCurrentInstance
6
+ onMounted,
7
+ watch
8
8
  } from 'vue'
9
9
 
10
10
  import QBtn from '../btn/QBtn.js'
@@ -13,17 +13,17 @@ import useDark, {
13
13
  useDarkProps
14
14
  } from '../../composables/private.use-dark/use-dark.js'
15
15
  import usePanel, {
16
- usePanelProps,
17
- usePanelEmits
16
+ usePanelEmits,
17
+ usePanelProps
18
18
  } from '../../composables/private.use-panel/use-panel.js'
19
19
  import useFullscreen, {
20
- useFullscreenProps,
21
- useFullscreenEmits
20
+ useFullscreenEmits,
21
+ useFullscreenProps
22
22
  } from '../../composables/private.use-fullscreen/use-fullscreen.js'
23
23
 
24
24
  import { createComponent } from '../../utils/private.create/create.js'
25
25
  import { isNumber } from '../../utils/is/is.js'
26
- import { hMergeSlot, hDir } from '../../utils/private.render/render.js'
26
+ import { hDir, hMergeSlot } from '../../utils/private.render/render.js'
27
27
 
28
28
  const navigationPositionOptions = ['top', 'right', 'bottom', 'left']
29
29
  const controlTypeOptions = ['regular', 'flat', 'outline', 'push', 'unelevated']
@@ -101,45 +101,37 @@ export default createComponent({
101
101
  const { inFullscreen } = useFullscreen()
102
102
 
103
103
  const style = computed(() =>
104
- inFullscreen.value !== true && props.height !== void 0
104
+ !inFullscreen.value && props.height !== void 0
105
105
  ? { height: props.height }
106
106
  : {}
107
107
  )
108
108
 
109
109
  const direction = computed(() =>
110
- props.vertical === true ? 'vertical' : 'horizontal'
110
+ props.vertical ? 'vertical' : 'horizontal'
111
111
  )
112
112
 
113
113
  const navigationPosition = computed(
114
- () =>
115
- props.navigationPosition ||
116
- (props.vertical === true ? 'right' : 'bottom')
114
+ () => props.navigationPosition || (props.vertical ? 'right' : 'bottom')
117
115
  )
118
116
 
119
117
  const classes = computed(
120
118
  () =>
121
- `q-carousel q-panel-parent q-carousel--with${props.padding === true ? '' : 'out'}-padding` +
122
- (inFullscreen.value === true ? ' fullscreen' : '') +
123
- (isDark.value === true ? ' q-carousel--dark q-dark' : '') +
124
- (props.arrows === true
125
- ? ` q-carousel--arrows-${direction.value}`
126
- : '') +
127
- (props.navigation === true
119
+ `q-carousel q-panel-parent q-carousel--with${props.padding ? '' : 'out'}-padding` +
120
+ (inFullscreen.value ? ' fullscreen' : '') +
121
+ (isDark.value ? ' q-carousel--dark q-dark' : '') +
122
+ (props.arrows ? ` q-carousel--arrows-${direction.value}` : '') +
123
+ (props.navigation
128
124
  ? ` q-carousel--navigation-${navigationPosition.value}`
129
125
  : '')
130
126
  )
131
127
 
132
128
  const arrowIcons = computed(() => {
133
129
  const ico = [
134
- props.prevIcon ||
135
- $q.iconSet.carousel[props.vertical === true ? 'up' : 'left'],
136
- props.nextIcon ||
137
- $q.iconSet.carousel[props.vertical === true ? 'down' : 'right']
130
+ props.prevIcon || $q.iconSet.carousel[props.vertical ? 'up' : 'left'],
131
+ props.nextIcon || $q.iconSet.carousel[props.vertical ? 'down' : 'right']
138
132
  ]
139
133
 
140
- return props.vertical === false && $q.lang.rtl === true
141
- ? ico.reverse()
142
- : ico
134
+ return !props.vertical && $q.lang.rtl ? ico.reverse() : ico
143
135
  })
144
136
 
145
137
  const navIcon = computed(
@@ -179,8 +171,9 @@ export default createComponent({
179
171
  )
180
172
 
181
173
  function startTimer() {
182
- const duration =
183
- isNumber(props.autoplay) === true ? Math.abs(props.autoplay) : 5000
174
+ const duration = isNumber(props.autoplay)
175
+ ? Math.abs(props.autoplay)
176
+ : 5000
184
177
 
185
178
  if (timer !== null) clearTimeout(timer)
186
179
  timer = setTimeout(() => {
@@ -226,7 +219,7 @@ export default createComponent({
226
219
  function getContent() {
227
220
  const node = []
228
221
 
229
- if (props.navigation === true) {
222
+ if (props.navigation) {
230
223
  const fn =
231
224
  slots['navigation-icon'] !== void 0
232
225
  ? slots['navigation-icon']
@@ -250,7 +243,7 @@ export default createComponent({
250
243
  name,
251
244
  active,
252
245
  btnProps: {
253
- icon: active === true ? navActiveIcon.value : navIcon.value,
246
+ icon: active ? navActiveIcon.value : navIcon.value,
254
247
  size: 'sm',
255
248
  ...controlProps.value
256
249
  },
@@ -260,7 +253,7 @@ export default createComponent({
260
253
  })
261
254
  })
262
255
  )
263
- } else if (props.thumbnails === true) {
256
+ } else if (props.thumbnails) {
264
257
  const color =
265
258
  props.controlColor !== void 0 ? ` text-${props.controlColor}` : ''
266
259
 
@@ -282,8 +275,8 @@ export default createComponent({
282
275
  )
283
276
  }
284
277
 
285
- if (props.arrows === true && panelIndex.value >= 0) {
286
- if (props.infinite === true || panelIndex.value > 0) {
278
+ if (props.arrows && panelIndex.value >= 0) {
279
+ if (props.infinite || panelIndex.value > 0) {
287
280
  node.push(
288
281
  h(
289
282
  'div',
@@ -302,7 +295,7 @@ export default createComponent({
302
295
  )
303
296
  }
304
297
 
305
- if (props.infinite === true || panelIndex.value < panelsLen - 1) {
298
+ if (props.infinite || panelIndex.value < panelsLen - 1) {
306
299
  node.push(
307
300
  h(
308
301
  'div',
@@ -344,8 +337,9 @@ export default createComponent({
344
337
  'sl-cont',
345
338
  props.swipeable,
346
339
  () => panelDirectives.value
347
- )
348
- ].concat(getContent())
340
+ ),
341
+ ...getContent()
342
+ ]
349
343
  )
350
344
  }
351
345
  }
@@ -1,4 +1,4 @@
1
- import { h, computed } from 'vue'
1
+ import { computed, h } from 'vue'
2
2
 
3
3
  import { createComponent } from '../../utils/private.create/create.js'
4
4
  import { hSlot } from '../../utils/private.render/render.js'
@@ -1,4 +1,4 @@
1
- import { h, computed } from 'vue'
1
+ import { computed, h } from 'vue'
2
2
 
3
3
  import { createComponent } from '../../utils/private.create/create.js'
4
4
  import { usePanelChildProps } from '../../composables/private.use-panel/use-panel.js'
@@ -17,7 +17,7 @@
17
17
  "transformAssetUrls": true,
18
18
  "examples": [
19
19
  "# (public folder) src=\"img/my-bg.png\"",
20
- "# (assets folder) src=\"~assets/my-img.png\"",
20
+ "# (assets folder) src=\"~@/assets/my-img.png\"",
21
21
  "# (relative path format) :src=\"require('./my_img.jpg')\"",
22
22
  "# (URL) src=\"https://picsum.photos/500/300\""
23
23
  ],
@@ -1,4 +1,4 @@
1
- import { h, computed } from 'vue'
1
+ import { computed, h } from 'vue'
2
2
 
3
3
  import { createComponent } from '../../utils/private.create/create.js'
4
4
  import { getNormalizedVNodes } from '../../utils/private.vm/vm.js'
@@ -23,7 +23,7 @@ export default createComponent({
23
23
  },
24
24
 
25
25
  setup(props, { slots }) {
26
- const op = computed(() => (props.sent === true ? 'sent' : 'received'))
26
+ const op = computed(() => (props.sent ? 'sent' : 'received'))
27
27
 
28
28
  const textClass = computed(
29
29
  () =>
@@ -40,7 +40,7 @@ export default createComponent({
40
40
  const containerClass = computed(
41
41
  () =>
42
42
  'q-message-container row items-end no-wrap' +
43
- (props.sent === true ? ' reverse' : '')
43
+ (props.sent ? ' reverse' : '')
44
44
  )
45
45
 
46
46
  const sizeClass = computed(() =>
@@ -48,10 +48,10 @@ export default createComponent({
48
48
  )
49
49
 
50
50
  const domProps = computed(() => ({
51
- msg: props.textHtml === true ? 'innerHTML' : 'textContent',
52
- stamp: props.stampHtml === true ? 'innerHTML' : 'textContent',
53
- name: props.nameHtml === true ? 'innerHTML' : 'textContent',
54
- label: props.labelHtml === true ? 'innerHTML' : 'textContent'
51
+ msg: props.textHtml ? 'innerHTML' : 'textContent',
52
+ stamp: props.stampHtml ? 'innerHTML' : 'textContent',
53
+ name: props.nameHtml ? 'innerHTML' : 'textContent',
54
+ label: props.labelHtml ? 'innerHTML' : 'textContent'
55
55
  }))
56
56
 
57
57
  function wrapStamp(node) {
@@ -73,12 +73,11 @@ export default createComponent({
73
73
  }
74
74
 
75
75
  function getText(contentList, withSlots) {
76
- const content =
77
- withSlots === true
78
- ? contentList.length > 1
79
- ? text => text
80
- : text => h('div', [text])
81
- : text => h('div', { [domProps.value.msg]: text })
76
+ const content = withSlots
77
+ ? contentList.length > 1
78
+ ? text => text
79
+ : text => h('div', [text])
80
+ : text => h('div', { [domProps.value.msg]: text })
82
81
 
83
82
  return contentList.map((msg, index) =>
84
83
  h(
@@ -129,7 +128,7 @@ export default createComponent({
129
128
  if (slots.default !== void 0) {
130
129
  msg.push(getText(getNormalizedVNodes(slots.default()), true))
131
130
  } else if (props.text !== void 0) {
132
- msg.push(getText(props.text))
131
+ msg.push(getText(props.text, false))
133
132
  }
134
133
 
135
134
  container.push(h('div', { class: sizeClass.value }, msg))
@@ -42,7 +42,7 @@
42
42
  "transformAssetUrls": true,
43
43
  "examples": [
44
44
  "# (public folder) src=\"boy-avatar.png\"",
45
- "# (assets folder) src=\"~assets/boy-avatar.png\"",
45
+ "# (assets folder) src=\"~@/assets/boy-avatar.png\"",
46
46
  "# (relative path format) :src=\"require('./my_img.jpg')\"",
47
47
  "# (URL) src=\"https://picsum.photos/500/300\""
48
48
  ],
@@ -1,11 +1,11 @@
1
- import { h, computed } from 'vue'
1
+ import { computed, h } from 'vue'
2
2
 
3
3
  import QIcon from '../icon/QIcon.js'
4
4
 
5
5
  import { createComponent } from '../../utils/private.create/create.js'
6
6
  import useCheckbox, {
7
- useCheckboxProps,
8
- useCheckboxEmits
7
+ useCheckboxEmits,
8
+ useCheckboxProps
9
9
  } from './use-checkbox.js'
10
10
 
11
11
  const createBgNode = () =>
@@ -50,9 +50,9 @@ export default createComponent({
50
50
  function getInner(isTrue, isIndeterminate) {
51
51
  const icon = computed(
52
52
  () =>
53
- (isTrue.value === true
53
+ (isTrue.value
54
54
  ? props.checkedIcon
55
- : isIndeterminate.value === true
55
+ : isIndeterminate.value
56
56
  ? props.indeterminateIcon
57
57
  : props.uncheckedIcon) || null
58
58
  )
@@ -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 useDark, {
4
4
  useDarkProps
@@ -14,7 +14,7 @@ import {
14
14
 
15
15
  import optionSizes from '../../utils/private.option-sizes/option-sizes.js'
16
16
  import { stopAndPrevent } from '../../utils/event/event.js'
17
- import { hSlot, hMergeSlot } from '../../utils/private.render/render.js'
17
+ import { hMergeSlot, hSlot } from '../../utils/private.render/render.js'
18
18
 
19
19
  export const useCheckboxProps = {
20
20
  ...useDarkProps,
@@ -54,6 +54,12 @@ export const useCheckboxProps = {
54
54
 
55
55
  export const useCheckboxEmits = ['update:modelValue']
56
56
 
57
+ function onKeydown(e) {
58
+ if (e.keyCode === 13 || e.keyCode === 32) {
59
+ stopAndPrevent(e)
60
+ }
61
+ }
62
+
57
63
  export default function useCheckbox(type, getInner) {
58
64
  const { props, slots, emit, proxy } = getCurrentInstance()
59
65
  const { $q } = proxy
@@ -70,51 +76,40 @@ export default function useCheckbox(type, getInner) {
70
76
 
71
77
  const index = computed(() => {
72
78
  const val = toRaw(props.val)
73
- return modelIsArray.value === true
79
+ return modelIsArray.value
74
80
  ? props.modelValue.findIndex(opt => toRaw(opt) === val)
75
81
  : -1
76
82
  })
77
83
 
78
84
  const isTrue = computed(() =>
79
- modelIsArray.value === true
85
+ modelIsArray.value
80
86
  ? index.value !== -1
81
87
  : toRaw(props.modelValue) === toRaw(props.trueValue)
82
88
  )
83
89
 
84
90
  const isFalse = computed(() =>
85
- modelIsArray.value === true
91
+ modelIsArray.value
86
92
  ? index.value === -1
87
93
  : toRaw(props.modelValue) === toRaw(props.falseValue)
88
94
  )
89
95
 
90
- const isIndeterminate = computed(
91
- () => isTrue.value === false && isFalse.value === false
92
- )
93
-
94
- const tabindex = computed(() =>
95
- props.disable === true ? -1 : props.tabindex || 0
96
- )
97
-
96
+ const isIndeterminate = computed(() => !isTrue.value && !isFalse.value)
97
+ const tabindex = computed(() => (props.disable ? -1 : props.tabindex || 0))
98
98
  const classes = computed(
99
99
  () =>
100
100
  `q-${type} cursor-pointer no-outline row inline no-wrap items-center` +
101
- (props.disable === true ? ' disabled' : '') +
102
- (isDark.value === true ? ` q-${type}--dark` : '') +
103
- (props.dense === true ? ` q-${type}--dense` : '') +
104
- (props.leftLabel === true ? ' reverse' : '')
101
+ (props.disable ? ' disabled' : '') +
102
+ (isDark.value ? ` q-${type}--dark` : '') +
103
+ (props.dense ? ` q-${type}--dense` : '') +
104
+ (props.leftLabel ? ' reverse' : '')
105
105
  )
106
106
 
107
107
  const innerClass = computed(() => {
108
- const state =
109
- isTrue.value === true
110
- ? 'truthy'
111
- : isFalse.value === true
112
- ? 'falsy'
113
- : 'indet'
108
+ const state = isTrue.value ? 'truthy' : isFalse.value ? 'falsy' : 'indet'
109
+
114
110
  const color =
115
111
  props.color !== void 0 &&
116
- (props.keepColor === true ||
117
- (type === 'toggle' ? isTrue.value === true : isFalse.value !== true))
112
+ (props.keepColor || (type === 'toggle' ? isTrue.value : !isFalse.value))
118
113
  ? ` text-${props.color}`
119
114
  : ''
120
115
 
@@ -128,9 +123,9 @@ export default function useCheckbox(type, getInner) {
128
123
  Object.assign(prop, {
129
124
  // see https://vuejs.org/guide/extras/render-function.html#creating-vnodes (.prop)
130
125
  '.checked': isTrue.value,
131
- '^checked': isTrue.value === true ? 'checked' : void 0,
126
+ '^checked': isTrue.value ? 'checked' : void 0,
132
127
  name: props.name,
133
- value: modelIsArray.value === true ? props.val : props.trueValue
128
+ value: modelIsArray.value ? props.val : props.trueValue
134
129
  })
135
130
  }
136
131
 
@@ -144,15 +139,14 @@ export default function useCheckbox(type, getInner) {
144
139
  tabindex: tabindex.value,
145
140
  role: type === 'toggle' ? 'switch' : 'checkbox',
146
141
  'aria-label': props.label,
147
- 'aria-checked':
148
- isIndeterminate.value === true
149
- ? 'mixed'
150
- : isTrue.value === true
151
- ? 'true'
152
- : 'false'
142
+ 'aria-checked': isIndeterminate.value
143
+ ? 'mixed'
144
+ : isTrue.value
145
+ ? 'true'
146
+ : 'false'
153
147
  }
154
148
 
155
- if (props.disable === true) {
149
+ if (props.disable) {
156
150
  attrs['aria-disabled'] = 'true'
157
151
  }
158
152
 
@@ -165,28 +159,28 @@ export default function useCheckbox(type, getInner) {
165
159
  refocusTarget(e)
166
160
  }
167
161
 
168
- if (props.disable !== true) {
162
+ if (!props.disable) {
169
163
  emit('update:modelValue', getNextValue(), e)
170
164
  }
171
165
  }
172
166
 
173
167
  function getNextValue() {
174
- if (modelIsArray.value === true) {
175
- if (isTrue.value === true) {
176
- const val = props.modelValue.slice()
168
+ if (modelIsArray.value) {
169
+ if (isTrue.value) {
170
+ const val = [...props.modelValue]
177
171
  val.splice(index.value, 1)
178
172
  return val
179
173
  }
180
174
 
181
- return props.modelValue.concat([props.val])
175
+ return [...props.modelValue, props.val]
182
176
  }
183
177
 
184
- if (isTrue.value === true) {
185
- if (props.toggleOrder !== 'ft' || props.toggleIndeterminate === false) {
178
+ if (isTrue.value) {
179
+ if (props.toggleOrder !== 'ft' || !props.toggleIndeterminate) {
186
180
  return props.falseValue
187
181
  }
188
- } else if (isFalse.value === true) {
189
- if (props.toggleOrder === 'ft' || props.toggleIndeterminate === false) {
182
+ } else if (isFalse.value) {
183
+ if (props.toggleOrder === 'ft' || !props.toggleIndeterminate) {
190
184
  return props.trueValue
191
185
  }
192
186
  } else {
@@ -196,12 +190,6 @@ export default function useCheckbox(type, getInner) {
196
190
  return props.indeterminateValue
197
191
  }
198
192
 
199
- function onKeydown(e) {
200
- if (e.keyCode === 13 || e.keyCode === 32) {
201
- stopAndPrevent(e)
202
- }
203
- }
204
-
205
193
  function onKeyup(e) {
206
194
  if (e.keyCode === 13 || e.keyCode === 32) {
207
195
  onClick(e)
@@ -216,7 +204,7 @@ export default function useCheckbox(type, getInner) {
216
204
  return () => {
217
205
  const inner = getInnerContent()
218
206
 
219
- if (props.disable !== true) {
207
+ if (!props.disable) {
220
208
  injectFormInput(
221
209
  inner,
222
210
  'unshift',
@@ -1,4 +1,4 @@
1
- import { h, computed, getCurrentInstance } from 'vue'
1
+ import { computed, getCurrentInstance, h } from 'vue'
2
2
 
3
3
  import QIcon from '../icon/QIcon.js'
4
4
 
@@ -13,7 +13,7 @@ import useSize, {
13
13
 
14
14
  import { createComponent } from '../../utils/private.create/create.js'
15
15
  import { stopAndPrevent } from '../../utils/event/event.js'
16
- import { hMergeSlotSafely, hDir } from '../../utils/private.render/render.js'
16
+ import { hDir, hMergeSlotSafely } from '../../utils/private.render/render.js'
17
17
 
18
18
  export const defaultSizes = {
19
19
  xs: 8,
@@ -76,12 +76,10 @@ export default createComponent({
76
76
  const isDark = useDark(props, $q)
77
77
  const sizeStyle = useSize(props, defaultSizes)
78
78
 
79
- const hasLeftIcon = computed(
80
- () => props.selected === true || props.icon !== void 0
81
- )
79
+ const hasLeftIcon = computed(() => props.selected || props.icon !== void 0)
82
80
 
83
81
  const leftIcon = computed(() =>
84
- props.selected === true
82
+ props.selected
85
83
  ? props.iconSelected || $q.iconSet.chip.selected
86
84
  : props.icon
87
85
  )
@@ -91,40 +89,34 @@ export default createComponent({
91
89
  )
92
90
 
93
91
  const isClickable = computed(
94
- () =>
95
- props.disable === false &&
96
- (props.clickable === true || props.selected !== null)
92
+ () => !props.disable && (props.clickable || props.selected !== null)
97
93
  )
98
94
 
99
95
  const classes = computed(() => {
100
- const text =
101
- props.outline === true
102
- ? props.color || props.textColor
103
- : props.textColor
96
+ const text = props.outline
97
+ ? props.color || props.textColor
98
+ : props.textColor
104
99
 
105
100
  return (
106
101
  'q-chip row inline no-wrap items-center' +
107
- (props.outline === false && props.color !== void 0
108
- ? ` bg-${props.color}`
109
- : '') +
102
+ (!props.outline && props.color !== void 0 ? ` bg-${props.color}` : '') +
110
103
  (text ? ` text-${text} q-chip--colored` : '') +
111
- (props.disable === true ? ' disabled' : '') +
112
- (props.dense === true ? ' q-chip--dense' : '') +
113
- (props.outline === true ? ' q-chip--outline' : '') +
114
- (props.selected === true ? ' q-chip--selected' : '') +
115
- (isClickable.value === true
104
+ (props.disable ? ' disabled' : '') +
105
+ (props.dense ? ' q-chip--dense' : '') +
106
+ (props.outline ? ' q-chip--outline' : '') +
107
+ (props.selected ? ' q-chip--selected' : '') +
108
+ (isClickable.value
116
109
  ? ' q-chip--clickable cursor-pointer non-selectable q-hoverable'
117
110
  : '') +
118
- (props.square === true ? ' q-chip--square' : '') +
119
- (isDark.value === true ? ' q-chip--dark q-dark' : '')
111
+ (props.square ? ' q-chip--square' : '') +
112
+ (isDark.value ? ' q-chip--dark q-dark' : '')
120
113
  )
121
114
  })
122
115
 
123
116
  const attributes = computed(() => {
124
- const chip =
125
- props.disable === true
126
- ? { tabindex: -1, 'aria-disabled': 'true' }
127
- : { tabindex: props.tabindex || 0 }
117
+ const chip = props.disable
118
+ ? { tabindex: -1, 'aria-disabled': 'true' }
119
+ : { tabindex: props.tabindex || 0 }
128
120
 
129
121
  const remove = {
130
122
  ...chip,
@@ -150,7 +142,7 @@ export default createComponent({
150
142
  function onRemove(e) {
151
143
  if (e.keyCode === void 0 || e.keyCode === 13) {
152
144
  stopAndPrevent(e)
153
- if (props.disable === false) {
145
+ if (!props.disable) {
154
146
  emit('update:modelValue', false)
155
147
  emit('remove')
156
148
  }
@@ -160,11 +152,11 @@ export default createComponent({
160
152
  function getContent() {
161
153
  const child = []
162
154
 
163
- if (isClickable.value === true) {
155
+ if (isClickable.value) {
164
156
  child.push(h('div', { class: 'q-focus-helper' }))
165
157
  }
166
158
 
167
- if (hasLeftIcon.value === true) {
159
+ if (hasLeftIcon.value) {
168
160
  child.push(
169
161
  h(QIcon, {
170
162
  class: 'q-chip__icon q-chip__icon--left',
@@ -197,7 +189,7 @@ export default createComponent({
197
189
  )
198
190
  }
199
191
 
200
- if (props.removable === true) {
192
+ if (props.removable) {
201
193
  child.push(
202
194
  h(QIcon, {
203
195
  class: 'q-chip__icon q-chip__icon--remove cursor-pointer',
@@ -213,14 +205,14 @@ export default createComponent({
213
205
  }
214
206
 
215
207
  return () => {
216
- if (props.modelValue === false) return
208
+ if (!props.modelValue) return
217
209
 
218
210
  const data = {
219
211
  class: classes.value,
220
212
  style: sizeStyle.value
221
213
  }
222
214
 
223
- if (isClickable.value === true) {
215
+ if (isClickable.value) {
224
216
  Object.assign(data, attributes.value.chip, { onClick, onKeyup })
225
217
  }
226
218
 
@@ -229,7 +221,7 @@ export default createComponent({
229
221
  data,
230
222
  getContent(),
231
223
  'ripple',
232
- props.ripple !== false && props.disable !== true,
224
+ props.ripple !== false && !props.disable,
233
225
  () => [[Ripple, props.ripple]]
234
226
  )
235
227
  }
@@ -1,5 +1,5 @@
1
- import { mount, flushPromises } from '@vue/test-utils'
2
- import { describe, test, expect } from 'vitest'
1
+ import { flushPromises, mount } from '@vue/test-utils'
2
+ import { describe, expect, test } from 'vitest'
3
3
 
4
4
  import QChip, { defaultSizes } from './QChip.js'
5
5