quasar 2.19.3 → 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 (550) hide show
  1. package/dist/api/Lang.json +1 -1
  2. package/dist/api/QCarouselSlide.json +1 -1
  3. package/dist/api/QChatMessage.json +1 -1
  4. package/dist/api/QImg.json +1 -1
  5. package/dist/api/QParallax.json +1 -1
  6. package/dist/api/QRange.json +1 -1
  7. package/dist/api/QSlider.json +1 -1
  8. package/dist/api/QTimelineEntry.json +1 -1
  9. package/dist/api/QTree.json +1 -1
  10. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  11. package/dist/icon-set/eva-icons.umd.prod.js +2 -2
  12. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +5 -5
  13. package/dist/icon-set/fontawesome-v5.umd.prod.js +5 -5
  14. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +5 -5
  15. package/dist/icon-set/fontawesome-v6.umd.prod.js +5 -5
  16. package/dist/icon-set/fontawesome-v7-pro.umd.prod.js +1 -1
  17. package/dist/icon-set/fontawesome-v7.umd.prod.js +1 -1
  18. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  19. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  20. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  21. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  22. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  23. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  24. package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
  25. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  26. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  27. package/dist/icon-set/mdi-v3.umd.prod.js +5 -5
  28. package/dist/icon-set/mdi-v4.umd.prod.js +5 -5
  29. package/dist/icon-set/mdi-v5.umd.prod.js +5 -5
  30. package/dist/icon-set/mdi-v6.umd.prod.js +5 -5
  31. package/dist/icon-set/mdi-v7.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-eva-icons.umd.prod.js +2 -2
  34. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +5 -5
  35. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +5 -5
  36. package/dist/icon-set/svg-fontawesome-v7.umd.prod.js +1 -1
  37. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  38. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +5 -5
  39. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +5 -5
  40. package/dist/icon-set/svg-ionicons-v7.umd.prod.js +5 -5
  41. package/dist/icon-set/svg-ionicons-v8.umd.prod.js +1 -1
  42. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  43. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  44. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  45. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  46. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  47. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +1 -1
  48. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +1 -1
  49. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +1 -1
  50. package/dist/icon-set/svg-mdi-v6.umd.prod.js +5 -5
  51. package/dist/icon-set/svg-mdi-v7.umd.prod.js +1 -1
  52. package/dist/icon-set/svg-themify.umd.prod.js +2 -2
  53. package/dist/icon-set/themify.umd.prod.js +2 -2
  54. package/dist/lang/ar-TN.umd.prod.js +2 -2
  55. package/dist/lang/ar.umd.prod.js +2 -2
  56. package/dist/lang/az-Latn.umd.prod.js +2 -2
  57. package/dist/lang/bg.umd.prod.js +2 -2
  58. package/dist/lang/bn.umd.prod.js +2 -2
  59. package/dist/lang/bs-BA.umd.prod.js +2 -2
  60. package/dist/lang/ca.umd.prod.js +2 -2
  61. package/dist/lang/cs.umd.prod.js +2 -2
  62. package/dist/lang/da.umd.prod.js +2 -2
  63. package/dist/lang/de-CH.umd.prod.js +2 -2
  64. package/dist/lang/de-DE.umd.prod.js +2 -2
  65. package/dist/lang/de.umd.prod.js +2 -2
  66. package/dist/lang/el.umd.prod.js +2 -2
  67. package/dist/lang/en-GB.umd.prod.js +2 -2
  68. package/dist/lang/en-US.umd.prod.js +2 -2
  69. package/dist/lang/eo.umd.prod.js +2 -2
  70. package/dist/lang/es.umd.prod.js +2 -2
  71. package/dist/lang/et.umd.prod.js +2 -2
  72. package/dist/lang/eu.umd.prod.js +2 -2
  73. package/dist/lang/fa-IR.umd.prod.js +2 -2
  74. package/dist/lang/fa.umd.prod.js +2 -2
  75. package/dist/lang/fi.umd.prod.js +2 -2
  76. package/dist/lang/fr.umd.prod.js +2 -2
  77. package/dist/lang/gn.umd.prod.js +2 -2
  78. package/dist/lang/he.umd.prod.js +2 -2
  79. package/dist/lang/hi.umd.prod.js +2 -2
  80. package/dist/lang/hr.umd.prod.js +2 -2
  81. package/dist/lang/hu.umd.prod.js +2 -2
  82. package/dist/lang/id.umd.prod.js +2 -2
  83. package/dist/lang/is.umd.prod.js +2 -2
  84. package/dist/lang/it.umd.prod.js +2 -2
  85. package/dist/lang/ja.umd.prod.js +2 -2
  86. package/dist/lang/kk.umd.prod.js +2 -2
  87. package/dist/lang/km.umd.prod.js +2 -2
  88. package/dist/lang/ko-KR.umd.prod.js +1 -1
  89. package/dist/lang/kur-CKB.umd.prod.js +2 -2
  90. package/dist/lang/lt.umd.prod.js +2 -2
  91. package/dist/lang/lu.umd.prod.js +2 -2
  92. package/dist/lang/lv.umd.prod.js +2 -2
  93. package/dist/lang/mk.umd.prod.js +2 -2
  94. package/dist/lang/ml.umd.prod.js +2 -2
  95. package/dist/lang/mm.umd.prod.js +2 -2
  96. package/dist/lang/ms-MY.umd.prod.js +2 -2
  97. package/dist/lang/ms.umd.prod.js +2 -2
  98. package/dist/lang/my.umd.prod.js +2 -2
  99. package/dist/lang/nb-NO.umd.prod.js +2 -2
  100. package/dist/lang/nl.umd.prod.js +2 -2
  101. package/dist/lang/pl.umd.prod.js +2 -2
  102. package/dist/lang/pt-BR.umd.prod.js +2 -2
  103. package/dist/lang/pt.umd.prod.js +2 -2
  104. package/dist/lang/ro.umd.prod.js +2 -2
  105. package/dist/lang/ru.umd.prod.js +2 -2
  106. package/dist/lang/sk.umd.prod.js +2 -2
  107. package/dist/lang/sl.umd.prod.js +2 -2
  108. package/dist/lang/sm.umd.prod.js +2 -2
  109. package/dist/lang/sq.umd.prod.js +2 -2
  110. package/dist/lang/sr-CYR.umd.prod.js +2 -2
  111. package/dist/lang/sr.umd.prod.js +2 -2
  112. package/dist/lang/sv.umd.prod.js +2 -2
  113. package/dist/lang/ta.umd.prod.js +2 -2
  114. package/dist/lang/th.umd.prod.js +2 -2
  115. package/dist/lang/tl.umd.prod.js +2 -2
  116. package/dist/lang/tr.umd.prod.js +2 -2
  117. package/dist/lang/ug.umd.prod.js +2 -2
  118. package/dist/lang/uk.umd.prod.js +2 -2
  119. package/dist/lang/ur-PK.umd.prod.js +2 -2
  120. package/dist/lang/uz-Cyrl.umd.prod.js +2 -2
  121. package/dist/lang/uz-Latn.umd.prod.js +2 -2
  122. package/dist/lang/vi.umd.prod.js +2 -2
  123. package/dist/lang/zh-CN.umd.prod.js +2 -2
  124. package/dist/lang/zh-TW.umd.prod.js +2 -2
  125. package/dist/quasar.client.js +2614 -2602
  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 +2609 -2597
  130. package/dist/quasar.umd.prod.js +23 -23
  131. package/dist/types/api/dialog.d.ts +1 -1
  132. package/dist/types/api/qnotify.d.ts +1 -1
  133. package/dist/types/api/qpopupproxy.d.ts +1 -1
  134. package/dist/types/feature-flag.d.ts +2 -2
  135. package/dist/types/globals.d.ts +2 -2
  136. package/dist/types/icon-set.d.ts +16 -16
  137. package/dist/types/shim-icon-set.d.ts +1 -2
  138. package/dist/types/shim-lang.d.ts +1 -2
  139. package/dist/types/ts-helpers.d.ts +3 -3
  140. package/dist/types/tsconfig.json +1 -1
  141. package/dist/types/utils/scroll.d.ts +1 -1
  142. package/dist/types/utils.d.ts +2 -2
  143. package/dist/web-types/web-types.json +1 -1
  144. package/icon-set/bootstrap-icons.js +1 -1
  145. package/icon-set/eva-icons.js +22 -22
  146. package/icon-set/ionicons-v4.js +16 -16
  147. package/icon-set/svg-bootstrap-icons.js +1 -1
  148. package/icon-set/svg-eva-icons.js +22 -22
  149. package/icon-set/svg-fontawesome-v5.js +1 -1
  150. package/icon-set/svg-ionicons-v4.js +16 -16
  151. package/icon-set/svg-themify.js +7 -7
  152. package/icon-set/themify.js +7 -7
  153. package/lang/ar-TN.js +1 -1
  154. package/lang/ar.js +1 -1
  155. package/lang/az-Latn.js +1 -1
  156. package/lang/bg.js +1 -1
  157. package/lang/bn.js +1 -1
  158. package/lang/bs-BA.js +1 -1
  159. package/lang/ca.js +1 -1
  160. package/lang/cs.js +11 -6
  161. package/lang/da.js +1 -1
  162. package/lang/de-CH.js +1 -1
  163. package/lang/de-DE.js +1 -1
  164. package/lang/de.js +1 -1
  165. package/lang/el.js +1 -1
  166. package/lang/en-GB.js +1 -1
  167. package/lang/en-US.js +1 -1
  168. package/lang/eo.js +1 -1
  169. package/lang/es.js +1 -1
  170. package/lang/et.js +1 -1
  171. package/lang/eu.js +1 -1
  172. package/lang/fa-IR.js +1 -1
  173. package/lang/fa.js +1 -1
  174. package/lang/fi.js +1 -1
  175. package/lang/fr.js +1 -1
  176. package/lang/gn.js +1 -1
  177. package/lang/he.js +1 -1
  178. package/lang/hi.js +1 -1
  179. package/lang/hr.js +1 -1
  180. package/lang/hu.js +1 -1
  181. package/lang/id.js +1 -1
  182. package/lang/is.js +1 -1
  183. package/lang/it.js +1 -1
  184. package/lang/ja.js +1 -1
  185. package/lang/kk.js +1 -1
  186. package/lang/km.js +1 -1
  187. package/lang/kur-CKB.js +1 -1
  188. package/lang/lt.js +2 -2
  189. package/lang/lu.js +1 -1
  190. package/lang/lv.js +1 -1
  191. package/lang/mk.js +1 -1
  192. package/lang/ml.js +1 -1
  193. package/lang/mm.js +1 -1
  194. package/lang/ms-MY.js +1 -1
  195. package/lang/ms.js +1 -1
  196. package/lang/my.js +1 -1
  197. package/lang/nb-NO.js +1 -1
  198. package/lang/nl.js +1 -1
  199. package/lang/pl.js +1 -1
  200. package/lang/pt-BR.js +1 -1
  201. package/lang/pt.js +1 -1
  202. package/lang/ro.js +1 -1
  203. package/lang/ru.js +1 -1
  204. package/lang/sk.js +1 -1
  205. package/lang/sl.js +1 -1
  206. package/lang/sm.js +1 -1
  207. package/lang/sq.js +1 -1
  208. package/lang/sr-CYR.js +1 -1
  209. package/lang/sr.js +1 -1
  210. package/lang/sv.js +1 -1
  211. package/lang/ta.js +1 -1
  212. package/lang/th.js +1 -1
  213. package/lang/tl.js +1 -1
  214. package/lang/tr.js +1 -1
  215. package/lang/ug.js +1 -1
  216. package/lang/uk.js +1 -1
  217. package/lang/ur-PK.js +1 -1
  218. package/lang/uz-Cyrl.js +1 -1
  219. package/lang/uz-Latn.js +1 -1
  220. package/lang/vi.js +1 -1
  221. package/lang/zh-CN.js +1 -1
  222. package/lang/zh-TW.js +1 -1
  223. package/package.json +13 -17
  224. package/src/components/ajax-bar/QAjaxBar.js +22 -25
  225. package/src/components/avatar/QAvatar.js +3 -3
  226. package/src/components/avatar/QAvatar.test.js +2 -2
  227. package/src/components/badge/QBadge.js +9 -10
  228. package/src/components/badge/QBadge.test.js +2 -2
  229. package/src/components/banner/QBanner.js +6 -6
  230. package/src/components/banner/QBanner.test.js +2 -2
  231. package/src/components/bar/QBar.js +3 -3
  232. package/src/components/bar/QBar.test.js +2 -2
  233. package/src/components/breadcrumbs/QBreadcrumbs.js +5 -4
  234. package/src/components/breadcrumbs/QBreadcrumbs.test.js +3 -3
  235. package/src/components/breadcrumbs/QBreadcrumbsEl.js +4 -4
  236. package/src/components/breadcrumbs/QBreadcrumbsEl.test.js +2 -2
  237. package/src/components/btn/QBtn.js +39 -44
  238. package/src/components/btn/QBtn.test.js +2 -2
  239. package/src/components/btn/use-btn.js +34 -47
  240. package/src/components/btn/use-btn.test.js +5 -5
  241. package/src/components/btn-dropdown/QBtnDropdown.js +15 -16
  242. package/src/components/btn-group/QBtnGroup.js +3 -3
  243. package/src/components/btn-toggle/QBtnToggle.js +5 -9
  244. package/src/components/card/QCard.js +5 -5
  245. package/src/components/card/QCardActions.js +2 -2
  246. package/src/components/card/QCardSection.js +2 -2
  247. package/src/components/carousel/QCarousel.js +32 -38
  248. package/src/components/carousel/QCarouselControl.js +1 -1
  249. package/src/components/carousel/QCarouselSlide.js +1 -1
  250. package/src/components/carousel/QCarouselSlide.json +1 -1
  251. package/src/components/chat/QChatMessage.js +13 -14
  252. package/src/components/chat/QChatMessage.json +1 -1
  253. package/src/components/checkbox/QCheckbox.js +5 -5
  254. package/src/components/checkbox/use-checkbox.js +38 -50
  255. package/src/components/chip/QChip.js +26 -34
  256. package/src/components/chip/QChip.test.js +2 -2
  257. package/src/components/circular-progress/QCircularProgress.js +8 -11
  258. package/src/components/circular-progress/circular-progress.test.js +1 -1
  259. package/src/components/color/QColor.js +75 -98
  260. package/src/components/date/QDate.js +128 -140
  261. package/src/components/date/use-datetime.js +3 -6
  262. package/src/components/dialog/QDialog.js +44 -50
  263. package/src/components/dialog/QDialog.test.js +7 -7
  264. package/src/components/drawer/QDrawer.js +110 -152
  265. package/src/components/editor/QEditor.js +44 -37
  266. package/src/components/editor/editor-caret.js +27 -31
  267. package/src/components/editor/editor-utils.js +9 -5
  268. package/src/components/expansion-item/QExpansionItem.js +36 -48
  269. package/src/components/fab/QFab.js +11 -11
  270. package/src/components/fab/QFabAction.js +2 -4
  271. package/src/components/fab/use-fab.js +6 -7
  272. package/src/components/field/QField.js +2 -2
  273. package/src/components/file/QFile.js +26 -33
  274. package/src/components/footer/QFooter.js +40 -53
  275. package/src/components/form/QForm.js +37 -43
  276. package/src/components/form/QFormChildMixin.js +3 -3
  277. package/src/components/header/QHeader.js +35 -47
  278. package/src/components/icon/QIcon.js +19 -19
  279. package/src/components/img/QImg.js +24 -24
  280. package/src/components/img/QImg.json +3 -3
  281. package/src/components/infinite-scroll/QInfiniteScroll.js +38 -52
  282. package/src/components/inner-loading/QInnerLoading.js +3 -3
  283. package/src/components/input/QInput.js +52 -52
  284. package/src/components/input/use-mask.js +56 -54
  285. package/src/components/intersection/QIntersection.js +6 -8
  286. package/src/components/item/QItem.js +20 -30
  287. package/src/components/item/QItemLabel.js +5 -7
  288. package/src/components/item/QItemSection.js +6 -6
  289. package/src/components/item/QList.js +6 -6
  290. package/src/components/item/QList.test.js +2 -2
  291. package/src/components/knob/QKnob.js +39 -44
  292. package/src/components/layout/QLayout.js +30 -34
  293. package/src/components/linear-progress/QLinearProgress.js +14 -23
  294. package/src/components/markup-table/QMarkupTable.js +7 -9
  295. package/src/components/menu/QMenu.js +36 -37
  296. package/src/components/no-ssr/QNoSsr.js +1 -1
  297. package/src/components/option-group/QOptionGroup.js +5 -5
  298. package/src/components/page/QPage.js +16 -18
  299. package/src/components/page/QPageContainer.js +9 -9
  300. package/src/components/page-scroller/QPageScroller.js +11 -13
  301. package/src/components/page-sticky/use-page-sticky.js +18 -18
  302. package/src/components/pagination/QPagination.js +24 -26
  303. package/src/components/parallax/QParallax.js +15 -9
  304. package/src/components/parallax/QParallax.json +1 -1
  305. package/src/components/popup-edit/QPopupEdit.js +10 -13
  306. package/src/components/popup-proxy/QPopupProxy.js +5 -7
  307. package/src/components/pull-to-refresh/QPullToRefresh.js +15 -17
  308. package/src/components/radio/QRadio.js +24 -29
  309. package/src/components/range/QRange.js +33 -37
  310. package/src/components/rating/QRating.js +59 -61
  311. package/src/components/resize-observer/QResizeObserver.js +55 -62
  312. package/src/components/scroll-area/QScrollArea.js +32 -36
  313. package/src/components/scroll-observer/QScrollObserver.js +3 -3
  314. package/src/components/select/QSelect.js +208 -269
  315. package/src/components/separator/QSeparator.js +7 -10
  316. package/src/components/skeleton/QSkeleton.js +4 -4
  317. package/src/components/slide-item/QSlideItem.js +7 -7
  318. package/src/components/slide-transition/QSlideTransition.js +4 -4
  319. package/src/components/slider/QSlider.js +13 -16
  320. package/src/components/slider/use-slider.js +53 -81
  321. package/src/components/slider/use-slider.json +3 -3
  322. package/src/components/space/QSpace.test.js +1 -1
  323. package/src/components/spinner/QSpinner.test.js +2 -2
  324. package/src/components/spinner/QSpinnerAudio.test.js +2 -2
  325. package/src/components/spinner/QSpinnerBall.test.js +2 -2
  326. package/src/components/spinner/QSpinnerBars.test.js +2 -2
  327. package/src/components/spinner/QSpinnerBox.test.js +2 -2
  328. package/src/components/spinner/QSpinnerClock.test.js +2 -2
  329. package/src/components/spinner/QSpinnerComment.test.js +2 -2
  330. package/src/components/spinner/QSpinnerCube.test.js +2 -2
  331. package/src/components/spinner/QSpinnerDots.test.js +2 -2
  332. package/src/components/spinner/QSpinnerFacebook.test.js +2 -2
  333. package/src/components/spinner/QSpinnerGears.test.js +2 -2
  334. package/src/components/spinner/QSpinnerGrid.test.js +2 -2
  335. package/src/components/spinner/QSpinnerHearts.test.js +2 -2
  336. package/src/components/spinner/QSpinnerHourglass.test.js +2 -2
  337. package/src/components/spinner/QSpinnerInfinity.test.js +2 -2
  338. package/src/components/spinner/QSpinnerIos.test.js +2 -2
  339. package/src/components/spinner/QSpinnerOrbit.test.js +2 -2
  340. package/src/components/spinner/QSpinnerOval.test.js +2 -2
  341. package/src/components/spinner/QSpinnerPie.test.js +2 -2
  342. package/src/components/spinner/QSpinnerPuff.test.js +2 -2
  343. package/src/components/spinner/QSpinnerRadio.test.js +2 -2
  344. package/src/components/spinner/QSpinnerRings.test.js +2 -2
  345. package/src/components/spinner/QSpinnerTail.test.js +2 -2
  346. package/src/components/spinner/use-spinner.test.js +1 -1
  347. package/src/components/splitter/QSplitter.js +19 -21
  348. package/src/components/stepper/QStep.js +12 -14
  349. package/src/components/stepper/QStepper.js +13 -14
  350. package/src/components/stepper/StepHeader.js +34 -35
  351. package/src/components/tab-panels/QTabPanels.js +3 -3
  352. package/src/components/table/QTable.js +82 -100
  353. package/src/components/table/QTd.js +3 -3
  354. package/src/components/table/QTh.js +5 -6
  355. package/src/components/table/QTr.js +3 -3
  356. package/src/components/table/table-column-selection.js +4 -6
  357. package/src/components/table/table-filter.js +2 -2
  358. package/src/components/table/table-pagination.js +14 -20
  359. package/src/components/table/table-row-expand.js +3 -3
  360. package/src/components/table/table-row-selection.js +10 -20
  361. package/src/components/table/table-sort.js +7 -7
  362. package/src/components/tabs/QRouteTab.js +1 -1
  363. package/src/components/tabs/QTab.js +1 -1
  364. package/src/components/tabs/QTabs.js +82 -109
  365. package/src/components/tabs/use-tab.js +36 -38
  366. package/src/components/time/QTime.js +109 -132
  367. package/src/components/timeline/QTimeline.js +7 -4
  368. package/src/components/timeline/QTimelineEntry.js +7 -6
  369. package/src/components/timeline/QTimelineEntry.json +1 -1
  370. package/src/components/toggle/QToggle.js +6 -8
  371. package/src/components/toolbar/QToolbar.js +2 -2
  372. package/src/components/toolbar/QToolbar.test.js +2 -2
  373. package/src/components/toolbar/QToolbarTitle.js +2 -4
  374. package/src/components/toolbar/QToolbarTitle.test.js +2 -2
  375. package/src/components/tooltip/QTooltip.js +27 -28
  376. package/src/components/tree/QTree.js +96 -114
  377. package/src/components/tree/QTree.json +1 -1
  378. package/src/components/uploader/QUploaderAddTrigger.js +2 -2
  379. package/src/components/uploader/uploader-core.js +44 -51
  380. package/src/components/uploader/xhr-uploader-plugin.js +13 -17
  381. package/src/components/video/QVideo.js +1 -1
  382. package/src/components/video/QVideo.test.js +2 -2
  383. package/src/components/virtual-scroll/QVirtualScroll.js +9 -10
  384. package/src/components/virtual-scroll/use-virtual-scroll.js +42 -50
  385. package/src/composables/private.use-align/use-align.js +2 -2
  386. package/src/composables/private.use-align/use-align.test.js +1 -1
  387. package/src/composables/private.use-anchor/use-anchor.js +23 -32
  388. package/src/composables/private.use-dark/use-dark.test.js +1 -1
  389. package/src/composables/private.use-field/use-field.js +79 -99
  390. package/src/composables/private.use-file/use-file-dom-props.js +2 -2
  391. package/src/composables/private.use-file/use-file.js +27 -27
  392. package/src/composables/private.use-fullscreen/use-fullscreen.js +15 -20
  393. package/src/composables/private.use-history/use-history.js +2 -2
  394. package/src/composables/private.use-history/use-history.test.js +1 -1
  395. package/src/composables/private.use-key-composition/use-key-composition.js +11 -12
  396. package/src/composables/private.use-model-toggle/use-model-toggle.js +16 -25
  397. package/src/composables/private.use-panel/use-panel.js +25 -27
  398. package/src/composables/private.use-portal/use-portal.js +11 -9
  399. package/src/composables/private.use-prevent-scroll/use-prevent-scroll.js +1 -4
  400. package/src/composables/private.use-ratio/use-ratio.js +6 -5
  401. package/src/composables/private.use-ratio/use-ratio.test.js +1 -1
  402. package/src/composables/private.use-refocus-target/use-refocus-target.js +2 -4
  403. package/src/composables/private.use-router-link/use-router-link.js +44 -55
  404. package/src/composables/private.use-scroll-target/use-scroll-target.js +1 -1
  405. package/src/composables/private.use-size/use-size.test.js +1 -1
  406. package/src/composables/private.use-transition/use-transition.test.js +1 -1
  407. package/src/composables/private.use-validate/use-validate.js +23 -36
  408. package/src/composables/use-dialog-plugin-component/use-dialog-plugin-component.js +1 -1
  409. package/src/composables/use-form/private.use-form.js +1 -1
  410. package/src/composables/use-form/private.use-form.test.js +3 -3
  411. package/src/composables/use-form/use-form-child.js +7 -7
  412. package/src/composables/use-hydration/use-hydration.js +2 -2
  413. package/src/composables/use-hydration/use-hydration.test.js +1 -1
  414. package/src/composables/use-id/use-id.js +4 -8
  415. package/src/composables/use-id/use-id.test.js +1 -1
  416. package/src/composables/use-interval/use-interval.js +2 -2
  417. package/src/composables/use-interval/use-interval.test.js +1 -1
  418. package/src/composables/use-meta/use-meta.js +3 -3
  419. package/src/composables/use-quasar/use-quasar.test.js +1 -1
  420. package/src/composables/use-render-cache/use-render-cache.js +1 -1
  421. package/src/composables/use-render-cache/use-render-cache.test.js +1 -1
  422. package/src/composables/use-split-attrs/use-split-attrs.js +3 -7
  423. package/src/composables/use-split-attrs/use-split-attrs.test.js +1 -1
  424. package/src/composables/use-tick/use-tick.js +3 -3
  425. package/src/composables/use-tick/use-tick.test.js +2 -2
  426. package/src/composables/use-timeout/use-timeout.js +2 -2
  427. package/src/composables/use-timeout/use-timeout.test.js +1 -1
  428. package/src/directives/close-popup/ClosePopup.js +4 -9
  429. package/src/directives/intersection/Intersection.js +5 -8
  430. package/src/directives/morph/Morph.js +12 -18
  431. package/src/directives/ripple/Ripple.js +19 -26
  432. package/src/directives/ripple/Ripple.test.js +2 -2
  433. package/src/directives/scroll/Scroll.js +2 -2
  434. package/src/directives/touch-hold/TouchHold.js +22 -28
  435. package/src/directives/touch-pan/TouchPan.js +68 -84
  436. package/src/directives/touch-repeat/TouchRepeat.js +28 -39
  437. package/src/directives/touch-swipe/TouchSwipe.js +30 -33
  438. package/src/index.ssr.js +2 -0
  439. package/src/index.umd.js +2 -0
  440. package/src/install-quasar.js +9 -9
  441. package/src/plugins/addressbar/AddressbarColor.js +9 -9
  442. package/src/plugins/addressbar/AddressbarColor.test.js +2 -2
  443. package/src/plugins/app-fullscreen/AppFullscreen.js +11 -10
  444. package/src/plugins/app-fullscreen/AppFullscreen.test.js +2 -2
  445. package/src/plugins/app-fullscreen/test/mock-fullscreen.js +2 -2
  446. package/src/plugins/app-visibility/AppVisibility.js +5 -5
  447. package/src/plugins/app-visibility/AppVisibility.test.js +2 -2
  448. package/src/plugins/bottom-sheet/BottomSheet.js +2 -2
  449. package/src/plugins/bottom-sheet/component/BottomSheetComponent.js +4 -4
  450. package/src/plugins/cookies/Cookies.js +50 -62
  451. package/src/plugins/dark/Dark.js +3 -5
  452. package/src/plugins/dark/Dark.test.js +1 -1
  453. package/src/plugins/dialog/Dialog.js +2 -2
  454. package/src/plugins/dialog/component/DialogPluginComponent.js +17 -20
  455. package/src/plugins/icon-set/IconSet.js +2 -4
  456. package/src/plugins/icon-set/IconSet.test.js +1 -1
  457. package/src/plugins/lang/Lang.js +7 -10
  458. package/src/plugins/lang/Lang.json +2 -2
  459. package/src/plugins/lang/Lang.test.js +2 -2
  460. package/src/plugins/loading/Loading.js +10 -12
  461. package/src/plugins/loading-bar/LoadingBar.js +4 -4
  462. package/src/plugins/meta/Meta.js +10 -11
  463. package/src/plugins/notify/Notify.js +67 -72
  464. package/src/plugins/platform/Platform.js +19 -21
  465. package/src/plugins/platform/Platform.test.js +1 -1
  466. package/src/plugins/private.body/Body.js +23 -29
  467. package/src/plugins/private.body/Body.test.js +1 -1
  468. package/src/plugins/private.history/History.js +17 -25
  469. package/src/plugins/private.history/History.test.js +1 -1
  470. package/src/plugins/screen/Screen.js +16 -16
  471. package/src/plugins/screen/Screen.test.js +1 -1
  472. package/src/plugins/storage/LocalStorage.js +3 -4
  473. package/src/plugins/storage/LocalStorage.test.js +2 -2
  474. package/src/plugins/storage/SessionStorage.js +3 -4
  475. package/src/plugins/storage/SessionStorage.test.js +2 -2
  476. package/src/plugins/storage/engine/web-storage.js +30 -23
  477. package/src/plugins/storage/engine/web-storage.test.js +1 -1
  478. package/src/utils/EventBus/EventBus.js +3 -4
  479. package/src/utils/EventBus/EventBus.test.js +1 -1
  480. package/src/utils/clone/clone.test.js +4 -8
  481. package/src/utils/colors/colors.js +38 -29
  482. package/src/utils/colors/colors.test.js +2 -2
  483. package/src/utils/copy-to-clipboard/copy-to-clipboard.js +6 -11
  484. package/src/utils/create-meta-mixin/create-meta-mixin.js +2 -2
  485. package/src/utils/create-uploader-component/create-uploader-component.js +12 -7
  486. package/src/utils/css-var/get-css-var.test.js +2 -2
  487. package/src/utils/css-var/set-css-var.test.js +2 -2
  488. package/src/utils/date/date.js +229 -172
  489. package/src/utils/date/private.persian.js +11 -11
  490. package/src/utils/debounce/debounce.js +3 -7
  491. package/src/utils/debounce/debounce.test.js +1 -1
  492. package/src/utils/dom/dom.js +2 -4
  493. package/src/utils/dom/dom.test.js +4 -4
  494. package/src/utils/event/event.js +21 -23
  495. package/src/utils/export-file/export-file.js +3 -3
  496. package/src/utils/extend/extend.js +15 -14
  497. package/src/utils/extend/extend.test.js +2 -2
  498. package/src/utils/format/format.js +4 -10
  499. package/src/utils/format/format.test.js +1 -1
  500. package/src/utils/frame-debounce/frame-debounce.js +23 -12
  501. package/src/utils/frame-debounce/frame-debounce.test.js +1 -1
  502. package/src/utils/is/is.js +15 -26
  503. package/src/utils/is/is.test.js +8 -7
  504. package/src/utils/morph/morph.js +57 -48
  505. package/src/utils/open-url/open-url.js +7 -7
  506. package/src/utils/patterns/patterns.js +26 -23
  507. package/src/utils/patterns/patterns.test.js +1 -1
  508. package/src/utils/private.click-outside/click-outside.js +5 -5
  509. package/src/utils/private.config/instance-config.js +2 -0
  510. package/src/utils/private.config/instance-config.test.js +4 -4
  511. package/src/utils/private.config/nodes.js +5 -5
  512. package/src/utils/private.config/nodes.test.js +4 -4
  513. package/src/utils/private.create/create.test.js +1 -1
  514. package/src/utils/private.dialog/create-dialog.js +9 -12
  515. package/src/utils/private.focus/focus-manager.js +1 -1
  516. package/src/utils/private.focus/focus-manager.test.js +4 -4
  517. package/src/utils/private.focus/focusout.js +2 -2
  518. package/src/utils/private.focus/focusout.test.js +1 -1
  519. package/src/utils/private.get-emits-object/get-emits-object.test.js +1 -1
  520. package/src/utils/private.inject-obj-prop/inject-obj-prop.test.js +2 -2
  521. package/src/utils/private.keyboard/escape-key.js +5 -5
  522. package/src/utils/private.keyboard/escape-key.test.js +1 -1
  523. package/src/utils/private.keyboard/key-composition.js +4 -6
  524. package/src/utils/private.noop-ssr-directive-transform/noop-ssr-directive-transform.js +3 -1
  525. package/src/utils/private.noop-ssr-directive-transform/noop-ssr-directive-transform.test.js +1 -1
  526. package/src/utils/private.portal/portal.js +5 -5
  527. package/src/utils/private.position-engine/position-engine.js +20 -22
  528. package/src/utils/private.render/render.js +5 -7
  529. package/src/utils/private.render/render.test.js +5 -5
  530. package/src/utils/private.rtl/rtl.js +3 -2
  531. package/src/utils/private.rtl/rtl.test.js +1 -1
  532. package/src/utils/private.selection/selection.js +1 -1
  533. package/src/utils/private.selection/selection.test.js +2 -2
  534. package/src/utils/private.sort/sort.test.js +2 -2
  535. package/src/utils/private.touch/touch.js +10 -14
  536. package/src/utils/private.touch/touch.test.js +1 -1
  537. package/src/utils/private.vm/vm.js +2 -2
  538. package/src/utils/private.vm/vm.test.js +4 -4
  539. package/src/utils/run-sequential-promises/run-sequential-promises.js +44 -54
  540. package/src/utils/run-sequential-promises/run-sequential-promises.test.js +183 -0
  541. package/src/utils/scroll/prevent-scroll.js +9 -9
  542. package/src/utils/scroll/scroll.js +11 -12
  543. package/src/utils/throttle/throttle.js +4 -3
  544. package/src/utils/throttle/throttle.test.js +1 -1
  545. package/src/utils/uid/uid.js +51 -77
  546. package/src/utils/uid/uid.test.js +3 -3
  547. package/wrappers/index.cjs +2 -2
  548. package/wrappers/index.js +2 -2
  549. package/dist/vetur/quasar-attributes.json +0 -1
  550. package/dist/vetur/quasar-tags.json +0 -1
@@ -1,11 +1,11 @@
1
1
  import {
2
- h,
3
- ref,
4
- computed,
5
- watch,
6
2
  Transition,
3
+ computed,
4
+ getCurrentInstance,
5
+ h,
7
6
  nextTick,
8
- getCurrentInstance
7
+ ref,
8
+ watch
9
9
  } from 'vue'
10
10
 
11
11
  import QBtn from '../btn/QBtn.js'
@@ -15,19 +15,19 @@ import useDark, {
15
15
  } from '../../composables/private.use-dark/use-dark.js'
16
16
  import useRenderCache from '../../composables/use-render-cache/use-render-cache.js'
17
17
  import {
18
- useFormProps,
19
18
  useFormAttrs,
20
- useFormInject
19
+ useFormInject,
20
+ useFormProps
21
21
  } from '../../composables/use-form/private.use-form.js'
22
22
  import useDatetime, {
23
- useDatetimeProps,
23
+ getDayHash,
24
24
  useDatetimeEmits,
25
- getDayHash
25
+ useDatetimeProps
26
26
  } from './use-datetime.js'
27
27
 
28
28
  import { createComponent } from '../../utils/private.create/create.js'
29
29
  import { hSlot } from '../../utils/private.render/render.js'
30
- import { formatDate, __splitDate, getDateDiff } from '../../utils/date/date.js'
30
+ import { __splitDate, formatDate, getDateDiff } from '../../utils/date/date.js'
31
31
  import { pad } from '../../utils/format/format.js'
32
32
  import {
33
33
  jalaaliMonthLength,
@@ -38,13 +38,18 @@ import { isObject } from '../../utils/is/is.js'
38
38
  const yearsInterval = 20
39
39
  const views = ['Calendar', 'Years', 'Months']
40
40
  const viewIsValid = v => views.includes(v)
41
- const yearMonthValidator = v => /^-?[\d]+\/[0-1]\d$/.test(v)
41
+ const yearMonthRE = /^-?[\d]+\/[0-1]\d$/
42
+ const yearMonthValidator = v => yearMonthRE.test(v)
42
43
  const lineStr = ' \u2014 '
43
44
 
44
45
  function getMonthHash(date) {
45
46
  return date.year + '/' + pad(date.month)
46
47
  }
47
48
 
49
+ function getShortDate(date) {
50
+ return { year: date.year, month: date.month, day: date.day }
51
+ }
52
+
48
53
  export default createComponent({
49
54
  name: 'QDate',
50
55
 
@@ -57,7 +62,7 @@ export default createComponent({
57
62
  required: true,
58
63
  validator: val =>
59
64
  typeof val === 'string' ||
60
- Array.isArray(val) === true ||
65
+ Array.isArray(val) ||
61
66
  Object(val) === val ||
62
67
  val === null
63
68
  },
@@ -143,7 +148,7 @@ export default createComponent({
143
148
 
144
149
  const view = ref(props.defaultView)
145
150
 
146
- const direction = computed(() => ($q.lang.rtl === true ? 'right' : 'left'))
151
+ const direction = computed(() => ($q.lang.rtl ? 'right' : 'left'))
147
152
  const monthDirection = ref(direction.value)
148
153
  const yearDirection = ref(direction.value)
149
154
 
@@ -156,16 +161,16 @@ export default createComponent({
156
161
  const editRange = ref(null)
157
162
 
158
163
  const classes = computed(() => {
159
- const type = props.landscape === true ? 'landscape' : 'portrait'
164
+ const type = props.landscape ? 'landscape' : 'portrait'
160
165
  return (
161
- `q-date q-date--${type} q-date--${type}-${props.minimal === true ? 'minimal' : 'standard'}` +
162
- (isDark.value === true ? ' q-date--dark q-dark' : '') +
163
- (props.bordered === true ? ' q-date--bordered' : '') +
164
- (props.square === true ? ' q-date--square no-border-radius' : '') +
165
- (props.flat === true ? ' q-date--flat no-shadow' : '') +
166
- (props.disable === true
166
+ `q-date q-date--${type} q-date--${type}-${props.minimal ? 'minimal' : 'standard'}` +
167
+ (isDark.value ? ' q-date--dark q-dark' : '') +
168
+ (props.bordered ? ' q-date--bordered' : '') +
169
+ (props.square ? ' q-date--square no-border-radius' : '') +
170
+ (props.flat ? ' q-date--flat no-shadow' : '') +
171
+ (props.disable
167
172
  ? ' disabled'
168
- : props.readonly === true
173
+ : props.readonly
169
174
  ? ' q-date--readonly'
170
175
  : '')
171
176
  )
@@ -176,14 +181,11 @@ export default createComponent({
176
181
  const computedTextColor = computed(() => props.textColor || 'white')
177
182
 
178
183
  const isImmediate = computed(
179
- () =>
180
- props.emitImmediately === true &&
181
- props.multiple !== true &&
182
- props.range !== true
184
+ () => props.emitImmediately && !props.multiple && !props.range
183
185
  )
184
186
 
185
187
  const normalizedModel = computed(() =>
186
- Array.isArray(props.modelValue) === true
188
+ Array.isArray(props.modelValue)
187
189
  ? props.modelValue
188
190
  : props.modelValue !== null && props.modelValue !== void 0
189
191
  ? [props.modelValue]
@@ -207,10 +209,7 @@ export default createComponent({
207
209
  const fn = date => decodeString(date, innerMask.value, innerLocale.value)
208
210
  return normalizedModel.value
209
211
  .filter(
210
- date =>
211
- isObject(date) === true &&
212
- date.from !== void 0 &&
213
- date.to !== void 0
212
+ date => isObject(date) && date.from !== void 0 && date.to !== void 0
214
213
  )
215
214
  .map(range => ({ from: fn(range.from), to: fn(range.to) }))
216
215
  .filter(
@@ -290,9 +289,7 @@ export default createComponent({
290
289
  )
291
290
  }
292
291
 
293
- if (daysInModel.value === 0) {
294
- return lineStr
295
- }
292
+ if (daysInModel.value === 0) return lineStr
296
293
 
297
294
  if (daysInModel.value > 1) {
298
295
  return `${daysInModel.value} ${innerLocale.value.pluralDay}`
@@ -301,9 +298,7 @@ export default createComponent({
301
298
  const model = daysModel.value[0]
302
299
  const date = getNativeDateFn.value(model)
303
300
 
304
- if (isNaN(date.valueOf()) === true) {
305
- return lineStr
306
- }
301
+ if (Number.isNaN(date.valueOf())) return lineStr
307
302
 
308
303
  if (innerLocale.value.headerTitle !== void 0) {
309
304
  return innerLocale.value.headerTitle(date, model)
@@ -319,17 +314,19 @@ export default createComponent({
319
314
  })
320
315
 
321
316
  const minSelectedModel = computed(() => {
322
- const model = daysModel.value
323
- .concat(rangeModel.value.map(range => range.from))
324
- .sort((a, b) => a.year - b.year || a.month - b.month)
317
+ const model = [
318
+ ...daysModel.value,
319
+ ...rangeModel.value.map(range => range.from)
320
+ ].sort((a, b) => a.year - b.year || a.month - b.month)
325
321
 
326
322
  return model[0]
327
323
  })
328
324
 
329
325
  const maxSelectedModel = computed(() => {
330
- const model = daysModel.value
331
- .concat(rangeModel.value.map(range => range.to))
332
- .sort((a, b) => b.year - a.year || b.month - a.month)
326
+ const model = [
327
+ ...daysModel.value,
328
+ ...rangeModel.value.map(range => range.to)
329
+ ].sort((a, b) => b.year - a.year || b.month - a.month)
333
330
 
334
331
  return model[0]
335
332
  })
@@ -372,7 +369,7 @@ export default createComponent({
372
369
  $q.iconSet.datetime.arrowLeft,
373
370
  $q.iconSet.datetime.arrowRight
374
371
  ]
375
- return $q.lang.rtl === true ? val.reverse() : val
372
+ return $q.lang.rtl ? val.reverse() : val
376
373
  })
377
374
 
378
375
  const computedFirstDayOfWeek = computed(() =>
@@ -386,7 +383,7 @@ export default createComponent({
386
383
  first = computedFirstDayOfWeek.value
387
384
 
388
385
  return first > 0
389
- ? days.slice(first, 7).concat(days.slice(0, first))
386
+ ? [...days.slice(first, 7), ...days.slice(0, first)]
390
387
  : days
391
388
  })
392
389
 
@@ -409,7 +406,10 @@ export default createComponent({
409
406
  }
410
407
 
411
408
  const data = props.navigationMinYearMonth.split('/')
412
- return { year: parseInt(data[0], 10), month: parseInt(data[1], 10) }
409
+ return {
410
+ year: Number.parseInt(data[0], 10),
411
+ month: Number.parseInt(data[1], 10)
412
+ }
413
413
  })
414
414
 
415
415
  const maxNav = computed(() => {
@@ -418,7 +418,10 @@ export default createComponent({
418
418
  }
419
419
 
420
420
  const data = props.navigationMaxYearMonth.split('/')
421
- return { year: parseInt(data[0], 10), month: parseInt(data[1], 10) }
421
+ return {
422
+ year: Number.parseInt(data[0], 10),
423
+ month: Number.parseInt(data[1], 10)
424
+ }
422
425
  })
423
426
 
424
427
  const navBoundaries = computed(() => {
@@ -588,7 +591,7 @@ export default createComponent({
588
591
 
589
592
  for (let i = 1; i <= daysInMonth.value; i++) {
590
593
  const dayHash = viewMonthHash.value + '/' + pad(i)
591
- map[i] = fn(dayHash) === true && evtColor.value(dayHash)
594
+ map[i] = fn(dayHash) && evtColor.value(dayHash)
592
595
  }
593
596
  }
594
597
 
@@ -636,7 +639,7 @@ export default createComponent({
636
639
  for (let i = 1; i <= daysInMonth.value; i++) {
637
640
  const day = { i, event: eventDaysMap.value[i], classes: [] }
638
641
 
639
- if (selectionDaysMap.value[i] === true) {
642
+ if (selectionDaysMap.value[i]) {
640
643
  day.in = true
641
644
  day.flat = true
642
645
  }
@@ -724,10 +727,10 @@ export default createComponent({
724
727
  res[day].editRange = true
725
728
  }
726
729
 
727
- if (rangeView.value.includeFrom === true) {
730
+ if (rangeView.value.includeFrom) {
728
731
  res[from].editRangeFrom = true
729
732
  }
730
- if (rangeView.value.includeTo === true) {
733
+ if (rangeView.value.includeTo) {
731
734
  res[to].editRangeTo = true
732
735
  }
733
736
  }
@@ -750,20 +753,20 @@ export default createComponent({
750
753
  res.forEach(day => {
751
754
  let cls = 'q-date__calendar-item '
752
755
 
753
- if (day.fill === true) {
756
+ if (day.fill) {
754
757
  cls += 'q-date__calendar-item--fill'
755
758
  } else {
756
- cls += `q-date__calendar-item--${day.in === true ? 'in' : 'out'}`
759
+ cls += `q-date__calendar-item--${day.in ? 'in' : 'out'}`
757
760
 
758
761
  if (day.range !== void 0) {
759
- cls += ` q-date__range${day.rangeTo === true ? '-to' : day.rangeFrom === true ? '-from' : ''}`
762
+ cls += ` q-date__range${day.rangeTo ? '-to' : day.rangeFrom ? '-from' : ''}`
760
763
  }
761
764
 
762
- if (day.editRange === true) {
763
- cls += ` q-date__edit-range${day.editRangeFrom === true ? '-from' : ''}${day.editRangeTo === true ? '-to' : ''}`
765
+ if (day.editRange) {
766
+ cls += ` q-date__edit-range${day.editRangeFrom ? '-from' : ''}${day.editRangeTo ? '-to' : ''}`
764
767
  }
765
768
 
766
- if (day.range !== void 0 || day.editRange === true) {
769
+ if (day.range !== void 0 || day.editRange) {
767
770
  cls += ` text-${day.color}`
768
771
  }
769
772
  }
@@ -775,7 +778,7 @@ export default createComponent({
775
778
  })
776
779
 
777
780
  const attributes = computed(() =>
778
- props.disable === true ? { 'aria-disabled': 'true' } : {}
781
+ props.disable ? { 'aria-disabled': 'true' } : {}
779
782
  )
780
783
 
781
784
  watch(
@@ -793,7 +796,7 @@ export default createComponent({
793
796
  watch(view, () => {
794
797
  if (
795
798
  blurTargetRef.value !== null &&
796
- proxy.$el.contains(document.activeElement) === true
799
+ proxy.$el.contains(document.activeElement)
797
800
  ) {
798
801
  blurTargetRef.value.focus()
799
802
  }
@@ -839,7 +842,7 @@ export default createComponent({
839
842
 
840
843
  const monthMap = daysMap.value[getMonthHash(date)]
841
844
 
842
- if (monthMap === void 0 || monthMap.includes(date.day) === false) {
845
+ if (monthMap === void 0 || !monthMap.includes(date.day)) {
843
846
  addToModel(date)
844
847
  }
845
848
 
@@ -847,15 +850,13 @@ export default createComponent({
847
850
  }
848
851
 
849
852
  function setView(viewMode) {
850
- if (viewIsValid(viewMode) === true) {
851
- view.value = viewMode
852
- }
853
+ if (viewIsValid(viewMode)) view.value = viewMode
853
854
  }
854
855
 
855
856
  function offsetCalendar(type, descending) {
856
857
  if (['month', 'year'].includes(type)) {
857
858
  const fn = type === 'month' ? goToMonth : goToYear
858
- fn(descending === true ? -1 : 1)
859
+ fn(descending ? -1 : 1)
859
860
  }
860
861
  }
861
862
 
@@ -865,14 +866,13 @@ export default createComponent({
865
866
  }
866
867
 
867
868
  function setEditingRange(from, to) {
868
- if (props.range === false || !from) {
869
+ if (!props.range || !from) {
869
870
  editRange.value = null
870
871
  return
871
872
  }
872
873
 
873
- const init = Object.assign({ ...viewModel.value }, from)
874
- const final =
875
- to !== void 0 ? Object.assign({ ...viewModel.value }, to) : init
874
+ const init = { ...viewModel.value, ...from }
875
+ const final = to !== void 0 ? { ...viewModel.value, ...to } : init
876
876
 
877
877
  editRange.value = {
878
878
  init,
@@ -898,18 +898,17 @@ export default createComponent({
898
898
  }
899
899
 
900
900
  function getViewModel(dateMask, dateLocale) {
901
- const model =
902
- Array.isArray(props.modelValue) === true
903
- ? props.modelValue
904
- : props.modelValue
905
- ? [props.modelValue]
906
- : []
901
+ const model = Array.isArray(props.modelValue)
902
+ ? props.modelValue
903
+ : props.modelValue
904
+ ? [props.modelValue]
905
+ : []
907
906
 
908
907
  if (model.length === 0) {
909
908
  return getDefaultViewModel()
910
909
  }
911
910
 
912
- const target = model[model.length - 1]
911
+ const target = model.at(-1)
913
912
  const decoded = decodeString(
914
913
  target.from !== void 0 ? target.from : target,
915
914
  dateMask,
@@ -924,8 +923,8 @@ export default createComponent({
924
923
 
925
924
  if (props.defaultYearMonth !== void 0) {
926
925
  const d = props.defaultYearMonth.split('/')
927
- year = parseInt(d[0], 10)
928
- month = parseInt(d[1], 10)
926
+ year = Number.parseInt(d[0], 10)
927
+ month = Number.parseInt(d[1], 10)
929
928
  } else {
930
929
  // may come from data() where computed
931
930
  // props are not yet available
@@ -960,25 +959,25 @@ export default createComponent({
960
959
  }
961
960
 
962
961
  updateViewModel(year, month)
963
- if (isImmediate.value === true) emitImmediately('month')
962
+ if (isImmediate.value) emitImmediately('month')
964
963
  }
965
964
 
966
965
  function goToYear(offset) {
967
966
  const year = Number(viewModel.value.year) + offset
968
967
  updateViewModel(year, viewModel.value.month)
969
- if (isImmediate.value === true) emitImmediately('year')
968
+ if (isImmediate.value) emitImmediately('year')
970
969
  }
971
970
 
972
971
  function setYear(year) {
973
972
  updateViewModel(year, viewModel.value.month)
974
973
  view.value = props.defaultView === 'Years' ? 'Months' : 'Calendar'
975
- if (isImmediate.value === true) emitImmediately('year')
974
+ if (isImmediate.value) emitImmediately('year')
976
975
  }
977
976
 
978
977
  function setMonth(month) {
979
978
  updateViewModel(viewModel.value.year, month)
980
979
  view.value = 'Calendar'
981
- if (isImmediate.value === true) emitImmediately('month')
980
+ if (isImmediate.value) emitImmediately('month')
982
981
  }
983
982
 
984
983
  function toggleDate(date, monthHash) {
@@ -989,10 +988,6 @@ export default createComponent({
989
988
  fn(date)
990
989
  }
991
990
 
992
- function getShortDate(date) {
993
- return { year: date.year, month: date.month, day: date.day }
994
- }
995
-
996
991
  function updateViewModel(year, month, time) {
997
992
  if (minNav.value !== null && year <= minNav.value.year) {
998
993
  if (month < minNav.value.month || year < minNav.value.year) {
@@ -1047,9 +1042,7 @@ export default createComponent({
1047
1042
 
1048
1043
  function emitValue(val, action, date) {
1049
1044
  const value =
1050
- val !== null && val.length === 1 && props.multiple === false
1051
- ? val[0]
1052
- : val
1045
+ val !== null && val.length === 1 && !props.multiple ? val[0] : val
1053
1046
 
1054
1047
  const { reason, details } = getEmitParams(action, date)
1055
1048
 
@@ -1111,7 +1104,7 @@ export default createComponent({
1111
1104
  function addToModel(date) {
1112
1105
  let value
1113
1106
 
1114
- if (props.multiple === true) {
1107
+ if (props.multiple) {
1115
1108
  if (date.from !== void 0) {
1116
1109
  // we also need to filter out intersections
1117
1110
 
@@ -1126,14 +1119,11 @@ export default createComponent({
1126
1119
  ({ from, to }) => to.dateHash < fromHash || from.dateHash > toHash
1127
1120
  )
1128
1121
 
1129
- value = localDays
1130
- .concat(ranges)
1131
- .concat(date)
1132
- .map(entry => encodeEntry(entry))
1122
+ value = [...localDays, ...ranges, date].map(entry =>
1123
+ encodeEntry(entry)
1124
+ )
1133
1125
  } else {
1134
- const model = normalizedModel.value.slice()
1135
- model.push(encodeEntry(date))
1136
- value = model
1126
+ value = [...normalizedModel.value, encodeEntry(date)]
1137
1127
  }
1138
1128
  } else {
1139
1129
  value = encodeEntry(date)
@@ -1143,22 +1133,21 @@ export default createComponent({
1143
1133
  }
1144
1134
 
1145
1135
  function removeFromModel(date) {
1146
- if (props.noUnset === true) return
1136
+ if (props.noUnset) return
1147
1137
 
1148
1138
  let model = null
1149
1139
 
1150
- if (props.multiple === true && Array.isArray(props.modelValue) === true) {
1140
+ if (props.multiple && Array.isArray(props.modelValue)) {
1151
1141
  const val = encodeEntry(date)
1152
1142
 
1153
- if (date.from !== void 0) {
1154
- model = props.modelValue.filter(item =>
1155
- item.from !== void 0
1156
- ? item.from !== val.from && item.to !== val.to
1157
- : true
1158
- )
1159
- } else {
1160
- model = props.modelValue.filter(item => item !== val)
1161
- }
1143
+ model =
1144
+ date.from !== void 0
1145
+ ? props.modelValue.filter(item =>
1146
+ item.from !== void 0
1147
+ ? item.from !== val.from && item.to !== val.to
1148
+ : true
1149
+ )
1150
+ : props.modelValue.filter(item => item !== val)
1162
1151
 
1163
1152
  if (model.length === 0) {
1164
1153
  model = null
@@ -1169,8 +1158,7 @@ export default createComponent({
1169
1158
  }
1170
1159
 
1171
1160
  function updateValue(dateMask, dateLocale, reason) {
1172
- const model = daysModel.value
1173
- .concat(rangeModel.value)
1161
+ const model = [...daysModel.value, ...rangeModel.value]
1174
1162
  .map(entry => encodeEntry(entry, dateMask, dateLocale))
1175
1163
  .filter(entry =>
1176
1164
  entry.from !== void 0
@@ -1178,14 +1166,14 @@ export default createComponent({
1178
1166
  : entry.dateHash !== null
1179
1167
  )
1180
1168
 
1181
- const value = (props.multiple === true ? model : model[0]) || null
1169
+ const value = (props.multiple ? model : model[0]) || null
1182
1170
 
1183
1171
  setLastValue(value)
1184
1172
  emit('update:modelValue', value, reason)
1185
1173
  }
1186
1174
 
1187
1175
  function getHeader() {
1188
- if (props.minimal === true) return
1176
+ if (props.minimal) return
1189
1177
 
1190
1178
  return h(
1191
1179
  'div',
@@ -1277,7 +1265,7 @@ export default createComponent({
1277
1265
  ]
1278
1266
  ),
1279
1267
 
1280
- props.todayBtn === true
1268
+ props.todayBtn
1281
1269
  ? h(QBtn, {
1282
1270
  class: 'q-date__header-today self-start',
1283
1271
  icon: $q.iconSet.datetime.today,
@@ -1314,7 +1302,7 @@ export default createComponent({
1314
1302
  ? $q.lang.date.prevYear
1315
1303
  : $q.lang.date.prevMonth,
1316
1304
  tabindex: tabindex.value,
1317
- disable: boundaries.prev === false,
1305
+ disable: !boundaries.prev,
1318
1306
  ...getCache('go-#' + type, {
1319
1307
  onClick() {
1320
1308
  goTo(-1)
@@ -1371,7 +1359,7 @@ export default createComponent({
1371
1359
  ? $q.lang.date.nextYear
1372
1360
  : $q.lang.date.nextMonth,
1373
1361
  tabindex: tabindex.value,
1374
- disable: boundaries.next === false,
1362
+ disable: !boundaries.next,
1375
1363
  ...getCache('go+#' + type, {
1376
1364
  onClick() {
1377
1365
  goTo(1)
@@ -1397,16 +1385,17 @@ export default createComponent({
1397
1385
  {
1398
1386
  class: 'q-date__navigation row items-center no-wrap'
1399
1387
  },
1400
- getNavigation({
1401
- label: innerLocale.value.months[viewModel.value.month - 1],
1402
- type: 'Months',
1403
- key: viewModel.value.month,
1404
- dir: monthDirection.value,
1405
- goTo: goToMonth,
1406
- boundaries: navBoundaries.value.month,
1407
- cls: ' col'
1408
- }).concat(
1409
- getNavigation({
1388
+ [
1389
+ ...getNavigation({
1390
+ label: innerLocale.value.months[viewModel.value.month - 1],
1391
+ type: 'Months',
1392
+ key: viewModel.value.month,
1393
+ dir: monthDirection.value,
1394
+ goTo: goToMonth,
1395
+ boundaries: navBoundaries.value.month,
1396
+ cls: ' col'
1397
+ }),
1398
+ ...getNavigation({
1410
1399
  label: viewModel.value.year,
1411
1400
  type: 'Years',
1412
1401
  key: viewModel.value.year,
@@ -1415,7 +1404,7 @@ export default createComponent({
1415
1404
  boundaries: navBoundaries.value.year,
1416
1405
  cls: ''
1417
1406
  })
1418
- )
1407
+ ]
1419
1408
  ),
1420
1409
 
1421
1410
  h(
@@ -1449,12 +1438,11 @@ export default createComponent({
1449
1438
  },
1450
1439
  days.value.map(day =>
1451
1440
  h('div', { class: day.classes }, [
1452
- day.in === true
1441
+ day.in
1453
1442
  ? h(
1454
1443
  QBtn,
1455
1444
  {
1456
- class:
1457
- day.today === true ? 'q-date__today' : '',
1445
+ class: day.today ? 'q-date__today' : '',
1458
1446
  dense: true,
1459
1447
  flat: day.flat,
1460
1448
  unelevated: day.unelevated,
@@ -1471,7 +1459,7 @@ export default createComponent({
1471
1459
  }
1472
1460
  })
1473
1461
  },
1474
- day.event !== false
1462
+ day.event
1475
1463
  ? () =>
1476
1464
  h('div', {
1477
1465
  class: 'q-date__event bg-' + day.event
@@ -1510,14 +1498,14 @@ export default createComponent({
1510
1498
  [
1511
1499
  h(QBtn, {
1512
1500
  class:
1513
- currentYear === true && today.value.month === i + 1
1501
+ currentYear && today.value.month === i + 1
1514
1502
  ? 'q-date__today'
1515
1503
  : null,
1516
- flat: active !== true,
1504
+ flat: !active,
1517
1505
  label: month,
1518
1506
  unelevated: active,
1519
- color: active === true ? computedColor.value : null,
1520
- textColor: active === true ? computedTextColor.value : null,
1507
+ color: active ? computedColor.value : null,
1508
+ textColor: active ? computedTextColor.value : null,
1521
1509
  tabindex: tabindex.value,
1522
1510
  disable: isDisabled(i + 1),
1523
1511
  ...getCache('month#' + i, {
@@ -1530,7 +1518,7 @@ export default createComponent({
1530
1518
  )
1531
1519
  })
1532
1520
 
1533
- if (props.yearsInMonthView === true) {
1521
+ if (props.yearsInMonthView) {
1534
1522
  content.unshift(
1535
1523
  h('div', { class: 'row no-wrap full-width' }, [
1536
1524
  getNavigation({
@@ -1582,8 +1570,8 @@ export default createComponent({
1582
1570
  label: i,
1583
1571
  dense: true,
1584
1572
  unelevated: active,
1585
- color: active === true ? computedColor.value : null,
1586
- textColor: active === true ? computedTextColor.value : null,
1573
+ color: active ? computedColor.value : null,
1574
+ textColor: active ? computedTextColor.value : null,
1587
1575
  tabindex: tabindex.value,
1588
1576
  disable: isDisabled(i),
1589
1577
  ...getCache('yr#' + i, {
@@ -1664,17 +1652,17 @@ export default createComponent({
1664
1652
  function onDayClick(dayIndex) {
1665
1653
  const day = { ...viewModel.value, day: dayIndex }
1666
1654
 
1667
- if (props.range === false) {
1655
+ if (!props.range) {
1668
1656
  toggleDate(day, viewMonthHash.value)
1669
1657
  return
1670
1658
  }
1671
1659
 
1672
1660
  if (editRange.value === null) {
1673
1661
  const dayProps = days.value.find(
1674
- item => item.fill !== true && item.i === dayIndex
1662
+ item => !item.fill && item.i === dayIndex
1675
1663
  )
1676
1664
 
1677
- if (props.noUnset !== true && dayProps.range !== void 0) {
1665
+ if (!props.noUnset && dayProps.range !== void 0) {
1678
1666
  removeFromModel({
1679
1667
  target: day,
1680
1668
  from: dayProps.range.from,
@@ -1683,7 +1671,7 @@ export default createComponent({
1683
1671
  return
1684
1672
  }
1685
1673
 
1686
- if (dayProps.selected === true) {
1674
+ if (dayProps.selected) {
1687
1675
  removeFromModel(day)
1688
1676
  return
1689
1677
  }
@@ -1760,7 +1748,7 @@ export default createComponent({
1760
1748
  content.push(h('div', { class: 'q-date__actions' }, def))
1761
1749
  }
1762
1750
 
1763
- if (props.name !== void 0 && props.disable !== true) {
1751
+ if (props.name !== void 0 && !props.disable) {
1764
1752
  injectFormInput(content, 'push')
1765
1753
  }
1766
1754