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.
- package/dist/api/Lang.json +1 -1
- package/dist/api/QCarouselSlide.json +1 -1
- package/dist/api/QChatMessage.json +1 -1
- package/dist/api/QImg.json +1 -1
- package/dist/api/QParallax.json +1 -1
- package/dist/api/QRange.json +1 -1
- package/dist/api/QSlider.json +1 -1
- package/dist/api/QTimelineEntry.json +1 -1
- package/dist/api/QTree.json +1 -1
- package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
- package/dist/icon-set/eva-icons.umd.prod.js +2 -2
- package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +5 -5
- package/dist/icon-set/fontawesome-v5.umd.prod.js +5 -5
- package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +5 -5
- package/dist/icon-set/fontawesome-v6.umd.prod.js +5 -5
- package/dist/icon-set/fontawesome-v7-pro.umd.prod.js +6 -0
- package/dist/icon-set/fontawesome-v7.umd.prod.js +6 -0
- package/dist/icon-set/ionicons-v4.umd.prod.js +2 -2
- package/dist/icon-set/line-awesome.umd.prod.js +1 -1
- package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
- package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
- package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
- package/dist/icon-set/material-icons.umd.prod.js +1 -1
- package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
- package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
- package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
- package/dist/icon-set/mdi-v3.umd.prod.js +5 -5
- package/dist/icon-set/mdi-v4.umd.prod.js +5 -5
- package/dist/icon-set/mdi-v5.umd.prod.js +5 -5
- package/dist/icon-set/mdi-v6.umd.prod.js +5 -5
- package/dist/icon-set/mdi-v7.umd.prod.js +1 -1
- package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
- package/dist/icon-set/svg-eva-icons.umd.prod.js +2 -2
- package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +5 -5
- package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +5 -5
- package/dist/icon-set/svg-fontawesome-v7.umd.prod.js +6 -0
- package/dist/icon-set/svg-ionicons-v4.umd.prod.js +2 -2
- package/dist/icon-set/svg-ionicons-v5.umd.prod.js +5 -5
- package/dist/icon-set/svg-ionicons-v6.umd.prod.js +5 -5
- package/dist/icon-set/svg-ionicons-v7.umd.prod.js +6 -0
- package/dist/icon-set/svg-ionicons-v8.umd.prod.js +6 -0
- package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +2 -2
- package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +2 -2
- package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +2 -2
- package/dist/icon-set/svg-mdi-v6.umd.prod.js +5 -5
- package/dist/icon-set/svg-mdi-v7.umd.prod.js +1 -1
- package/dist/icon-set/svg-themify.umd.prod.js +2 -2
- package/dist/icon-set/themify.umd.prod.js +2 -2
- package/dist/lang/ar-TN.umd.prod.js +2 -2
- package/dist/lang/ar.umd.prod.js +2 -2
- package/dist/lang/az-Latn.umd.prod.js +2 -2
- package/dist/lang/bg.umd.prod.js +2 -2
- package/dist/lang/bn.umd.prod.js +2 -2
- package/dist/lang/bs-BA.umd.prod.js +2 -2
- package/dist/lang/ca.umd.prod.js +2 -2
- package/dist/lang/cs.umd.prod.js +2 -2
- package/dist/lang/da.umd.prod.js +2 -2
- package/dist/lang/de-CH.umd.prod.js +2 -2
- package/dist/lang/de-DE.umd.prod.js +2 -2
- package/dist/lang/de.umd.prod.js +2 -2
- package/dist/lang/el.umd.prod.js +2 -2
- package/dist/lang/en-GB.umd.prod.js +2 -2
- package/dist/lang/en-US.umd.prod.js +2 -2
- package/dist/lang/eo.umd.prod.js +2 -2
- package/dist/lang/es.umd.prod.js +2 -2
- package/dist/lang/et.umd.prod.js +2 -2
- package/dist/lang/eu.umd.prod.js +2 -2
- package/dist/lang/fa-IR.umd.prod.js +2 -2
- package/dist/lang/fa.umd.prod.js +2 -2
- package/dist/lang/fi.umd.prod.js +2 -2
- package/dist/lang/fr.umd.prod.js +2 -2
- package/dist/lang/gn.umd.prod.js +2 -2
- package/dist/lang/he.umd.prod.js +2 -2
- package/dist/lang/hi.umd.prod.js +2 -2
- package/dist/lang/hr.umd.prod.js +2 -2
- package/dist/lang/hu.umd.prod.js +2 -2
- package/dist/lang/id.umd.prod.js +2 -2
- package/dist/lang/is.umd.prod.js +2 -2
- package/dist/lang/it.umd.prod.js +2 -2
- package/dist/lang/ja.umd.prod.js +2 -2
- package/dist/lang/kk.umd.prod.js +2 -2
- package/dist/lang/km.umd.prod.js +2 -2
- package/dist/lang/ko-KR.umd.prod.js +1 -1
- package/dist/lang/kur-CKB.umd.prod.js +2 -2
- package/dist/lang/lt.umd.prod.js +2 -2
- package/dist/lang/lu.umd.prod.js +2 -2
- package/dist/lang/lv.umd.prod.js +2 -2
- package/dist/lang/mk.umd.prod.js +2 -2
- package/dist/lang/ml.umd.prod.js +2 -2
- package/dist/lang/mm.umd.prod.js +2 -2
- package/dist/lang/ms-MY.umd.prod.js +2 -2
- package/dist/lang/ms.umd.prod.js +2 -2
- package/dist/lang/my.umd.prod.js +2 -2
- package/dist/lang/nb-NO.umd.prod.js +2 -2
- package/dist/lang/nl.umd.prod.js +2 -2
- package/dist/lang/pl.umd.prod.js +2 -2
- package/dist/lang/pt-BR.umd.prod.js +2 -2
- package/dist/lang/pt.umd.prod.js +2 -2
- package/dist/lang/ro.umd.prod.js +2 -2
- package/dist/lang/ru.umd.prod.js +2 -2
- package/dist/lang/sk.umd.prod.js +2 -2
- package/dist/lang/sl.umd.prod.js +2 -2
- package/dist/lang/sm.umd.prod.js +2 -2
- package/dist/lang/sq.umd.prod.js +2 -2
- package/dist/lang/sr-CYR.umd.prod.js +2 -2
- package/dist/lang/sr.umd.prod.js +2 -2
- package/dist/lang/sv.umd.prod.js +2 -2
- package/dist/lang/ta.umd.prod.js +2 -2
- package/dist/lang/th.umd.prod.js +2 -2
- package/dist/lang/tl.umd.prod.js +2 -2
- package/dist/lang/tr.umd.prod.js +2 -2
- package/dist/lang/ug.umd.prod.js +2 -2
- package/dist/lang/uk.umd.prod.js +2 -2
- package/dist/lang/ur-PK.umd.prod.js +2 -2
- package/dist/lang/uz-Cyrl.umd.prod.js +2 -2
- package/dist/lang/uz-Latn.umd.prod.js +2 -2
- package/dist/lang/vi.umd.prod.js +2 -2
- package/dist/lang/zh-CN.umd.prod.js +2 -2
- package/dist/lang/zh-TW.umd.prod.js +2 -2
- package/dist/quasar.client.js +2615 -2603
- package/dist/quasar.sass +1 -1
- package/dist/quasar.server.prod.cjs +11 -11
- package/dist/quasar.server.prod.js +25 -25
- package/dist/quasar.umd.js +2610 -2598
- package/dist/quasar.umd.prod.js +23 -23
- package/dist/types/api/dialog.d.ts +1 -1
- package/dist/types/api/qnotify.d.ts +1 -1
- package/dist/types/api/qpopupproxy.d.ts +1 -1
- package/dist/types/feature-flag.d.ts +2 -2
- package/dist/types/globals.d.ts +3 -3
- package/dist/types/{extras/icon-set.d.ts → icon-set.d.ts} +21 -16
- package/dist/types/index.d.ts +1 -1
- package/dist/types/plugin.d.ts +1 -1
- package/dist/types/shim-icon-set.d.ts +1 -2
- package/dist/types/shim-lang.d.ts +1 -2
- package/dist/types/ts-helpers.d.ts +3 -3
- package/dist/types/tsconfig.json +1 -1
- package/dist/types/utils/scroll.d.ts +1 -1
- package/dist/types/utils.d.ts +2 -2
- package/dist/web-types/web-types.json +1 -1
- package/icon-set/bootstrap-icons.js +1 -1
- package/icon-set/eva-icons.js +23 -23
- package/icon-set/fontawesome-v7-pro.js +128 -0
- package/icon-set/fontawesome-v7.js +128 -0
- package/icon-set/ionicons-v4.js +17 -17
- package/icon-set/svg-bootstrap-icons.js +1 -1
- package/icon-set/svg-eva-icons.js +23 -23
- package/icon-set/svg-fontawesome-v5.js +1 -1
- package/icon-set/svg-fontawesome-v7.js +197 -0
- package/icon-set/svg-ionicons-v4.js +17 -17
- package/icon-set/svg-ionicons-v5.js +1 -1
- package/icon-set/svg-ionicons-v6.js +1 -1
- package/icon-set/svg-ionicons-v7.js +224 -0
- package/icon-set/svg-ionicons-v8.js +224 -0
- package/icon-set/svg-themify.js +7 -7
- package/icon-set/themify.js +7 -7
- package/lang/ar-TN.js +1 -1
- package/lang/ar.js +1 -1
- package/lang/az-Latn.js +1 -1
- package/lang/bg.js +1 -1
- package/lang/bn.js +1 -1
- package/lang/bs-BA.js +1 -1
- package/lang/ca.js +1 -1
- package/lang/cs.js +11 -6
- package/lang/da.js +1 -1
- package/lang/de-CH.js +1 -1
- package/lang/de-DE.js +1 -1
- package/lang/de.js +1 -1
- package/lang/el.js +1 -1
- package/lang/en-GB.js +1 -1
- package/lang/en-US.js +1 -1
- package/lang/eo.js +1 -1
- package/lang/es.js +1 -1
- package/lang/et.js +1 -1
- package/lang/eu.js +1 -1
- package/lang/fa-IR.js +1 -1
- package/lang/fa.js +1 -1
- package/lang/fi.js +1 -1
- package/lang/fr.js +1 -1
- package/lang/gn.js +1 -1
- package/lang/he.js +1 -1
- package/lang/hi.js +1 -1
- package/lang/hr.js +1 -1
- package/lang/hu.js +1 -1
- package/lang/id.js +1 -1
- package/lang/is.js +1 -1
- package/lang/it.js +9 -9
- package/lang/ja.js +1 -1
- package/lang/kk.js +1 -1
- package/lang/km.js +1 -1
- package/lang/kur-CKB.js +1 -1
- package/lang/lt.js +2 -2
- package/lang/lu.js +1 -1
- package/lang/lv.js +1 -1
- package/lang/mk.js +1 -1
- package/lang/ml.js +1 -1
- package/lang/mm.js +1 -1
- package/lang/ms-MY.js +1 -1
- package/lang/ms.js +1 -1
- package/lang/my.js +1 -1
- package/lang/nb-NO.js +1 -1
- package/lang/nl.js +1 -1
- package/lang/pl.js +1 -1
- package/lang/pt-BR.js +1 -1
- package/lang/pt.js +1 -1
- package/lang/ro.js +1 -1
- package/lang/ru.js +1 -1
- package/lang/sk.js +1 -1
- package/lang/sl.js +1 -1
- package/lang/sm.js +1 -1
- package/lang/sq.js +1 -1
- package/lang/sr-CYR.js +1 -1
- package/lang/sr.js +1 -1
- package/lang/sv.js +1 -1
- package/lang/ta.js +1 -1
- package/lang/th.js +1 -1
- package/lang/tl.js +1 -1
- package/lang/tr.js +1 -1
- package/lang/ug.js +1 -1
- package/lang/uk.js +1 -1
- package/lang/ur-PK.js +1 -1
- package/lang/uz-Cyrl.js +1 -1
- package/lang/uz-Latn.js +1 -1
- package/lang/vi.js +1 -1
- package/lang/zh-CN.js +1 -1
- package/lang/zh-TW.js +1 -1
- package/package.json +13 -17
- package/src/components/ajax-bar/QAjaxBar.js +22 -25
- package/src/components/avatar/QAvatar.js +3 -3
- package/src/components/avatar/QAvatar.test.js +2 -2
- package/src/components/badge/QBadge.js +9 -10
- package/src/components/badge/QBadge.test.js +2 -2
- package/src/components/banner/QBanner.js +6 -6
- package/src/components/banner/QBanner.test.js +2 -2
- package/src/components/bar/QBar.js +3 -3
- package/src/components/bar/QBar.test.js +2 -2
- package/src/components/breadcrumbs/QBreadcrumbs.js +5 -4
- package/src/components/breadcrumbs/QBreadcrumbs.test.js +3 -3
- package/src/components/breadcrumbs/QBreadcrumbsEl.js +4 -4
- package/src/components/breadcrumbs/QBreadcrumbsEl.test.js +2 -2
- package/src/components/btn/QBtn.js +39 -44
- package/src/components/btn/QBtn.test.js +2 -2
- package/src/components/btn/use-btn.js +34 -47
- package/src/components/btn/use-btn.test.js +5 -5
- package/src/components/btn-dropdown/QBtnDropdown.js +15 -16
- package/src/components/btn-group/QBtnGroup.js +3 -3
- package/src/components/btn-toggle/QBtnToggle.js +5 -9
- package/src/components/card/QCard.js +5 -5
- package/src/components/card/QCardActions.js +2 -2
- package/src/components/card/QCardSection.js +2 -2
- package/src/components/carousel/QCarousel.js +32 -38
- package/src/components/carousel/QCarouselControl.js +1 -1
- package/src/components/carousel/QCarouselSlide.js +1 -1
- package/src/components/carousel/QCarouselSlide.json +1 -1
- package/src/components/chat/QChatMessage.js +13 -14
- package/src/components/chat/QChatMessage.json +1 -1
- package/src/components/checkbox/QCheckbox.js +5 -5
- package/src/components/checkbox/use-checkbox.js +38 -50
- package/src/components/chip/QChip.js +26 -34
- package/src/components/chip/QChip.test.js +2 -2
- package/src/components/circular-progress/QCircularProgress.js +8 -11
- package/src/components/circular-progress/circular-progress.test.js +1 -1
- package/src/components/color/QColor.js +75 -98
- package/src/components/date/QDate.js +128 -140
- package/src/components/date/use-datetime.js +3 -6
- package/src/components/dialog/QDialog.js +44 -50
- package/src/components/dialog/QDialog.test.js +7 -7
- package/src/components/drawer/QDrawer.js +110 -152
- package/src/components/editor/QEditor.js +44 -37
- package/src/components/editor/editor-caret.js +27 -31
- package/src/components/editor/editor-utils.js +9 -5
- package/src/components/expansion-item/QExpansionItem.js +36 -48
- package/src/components/fab/QFab.js +11 -11
- package/src/components/fab/QFabAction.js +2 -4
- package/src/components/fab/use-fab.js +6 -7
- package/src/components/field/QField.js +2 -2
- package/src/components/file/QFile.js +26 -33
- package/src/components/footer/QFooter.js +40 -53
- package/src/components/form/QForm.js +37 -43
- package/src/components/form/QFormChildMixin.js +3 -3
- package/src/components/header/QHeader.js +35 -47
- package/src/components/icon/QIcon.js +19 -19
- package/src/components/img/QImg.js +24 -24
- package/src/components/img/QImg.json +3 -3
- package/src/components/infinite-scroll/QInfiniteScroll.js +38 -52
- package/src/components/inner-loading/QInnerLoading.js +3 -3
- package/src/components/input/QInput.js +52 -52
- package/src/components/input/use-mask.js +56 -54
- package/src/components/intersection/QIntersection.js +6 -8
- package/src/components/item/QItem.js +20 -30
- package/src/components/item/QItemLabel.js +5 -7
- package/src/components/item/QItemSection.js +6 -6
- package/src/components/item/QList.js +6 -6
- package/src/components/item/QList.test.js +2 -2
- package/src/components/knob/QKnob.js +39 -44
- package/src/components/layout/QLayout.js +30 -34
- package/src/components/linear-progress/QLinearProgress.js +14 -23
- package/src/components/markup-table/QMarkupTable.js +7 -9
- package/src/components/menu/QMenu.js +36 -37
- package/src/components/no-ssr/QNoSsr.js +1 -1
- package/src/components/option-group/QOptionGroup.js +5 -5
- package/src/components/page/QPage.js +16 -18
- package/src/components/page/QPageContainer.js +9 -9
- package/src/components/page-scroller/QPageScroller.js +11 -13
- package/src/components/page-sticky/use-page-sticky.js +18 -18
- package/src/components/pagination/QPagination.js +24 -26
- package/src/components/parallax/QParallax.js +15 -9
- package/src/components/parallax/QParallax.json +1 -1
- package/src/components/popup-edit/QPopupEdit.js +10 -13
- package/src/components/popup-proxy/QPopupProxy.js +5 -7
- package/src/components/pull-to-refresh/QPullToRefresh.js +15 -17
- package/src/components/radio/QRadio.js +24 -29
- package/src/components/range/QRange.js +33 -37
- package/src/components/rating/QRating.js +59 -61
- package/src/components/resize-observer/QResizeObserver.js +55 -62
- package/src/components/scroll-area/QScrollArea.js +32 -36
- package/src/components/scroll-observer/QScrollObserver.js +3 -3
- package/src/components/select/QSelect.js +208 -269
- package/src/components/separator/QSeparator.js +7 -10
- package/src/components/skeleton/QSkeleton.js +4 -4
- package/src/components/slide-item/QSlideItem.js +7 -7
- package/src/components/slide-transition/QSlideTransition.js +4 -4
- package/src/components/slider/QSlider.js +13 -16
- package/src/components/slider/use-slider.js +53 -81
- package/src/components/slider/use-slider.json +3 -3
- package/src/components/space/QSpace.test.js +1 -1
- package/src/components/spinner/QSpinner.test.js +2 -2
- package/src/components/spinner/QSpinnerAudio.test.js +2 -2
- package/src/components/spinner/QSpinnerBall.test.js +2 -2
- package/src/components/spinner/QSpinnerBars.test.js +2 -2
- package/src/components/spinner/QSpinnerBox.test.js +2 -2
- package/src/components/spinner/QSpinnerClock.test.js +2 -2
- package/src/components/spinner/QSpinnerComment.test.js +2 -2
- package/src/components/spinner/QSpinnerCube.test.js +2 -2
- package/src/components/spinner/QSpinnerDots.test.js +2 -2
- package/src/components/spinner/QSpinnerFacebook.test.js +2 -2
- package/src/components/spinner/QSpinnerGears.test.js +2 -2
- package/src/components/spinner/QSpinnerGrid.test.js +2 -2
- package/src/components/spinner/QSpinnerHearts.test.js +2 -2
- package/src/components/spinner/QSpinnerHourglass.test.js +2 -2
- package/src/components/spinner/QSpinnerInfinity.test.js +2 -2
- package/src/components/spinner/QSpinnerIos.test.js +2 -2
- package/src/components/spinner/QSpinnerOrbit.test.js +2 -2
- package/src/components/spinner/QSpinnerOval.test.js +2 -2
- package/src/components/spinner/QSpinnerPie.test.js +2 -2
- package/src/components/spinner/QSpinnerPuff.test.js +2 -2
- package/src/components/spinner/QSpinnerRadio.test.js +2 -2
- package/src/components/spinner/QSpinnerRings.test.js +2 -2
- package/src/components/spinner/QSpinnerTail.test.js +2 -2
- package/src/components/spinner/use-spinner.test.js +1 -1
- package/src/components/splitter/QSplitter.js +19 -21
- package/src/components/stepper/QStep.js +12 -14
- package/src/components/stepper/QStepper.js +13 -14
- package/src/components/stepper/StepHeader.js +34 -35
- package/src/components/tab-panels/QTabPanels.js +3 -3
- package/src/components/table/QTable.js +82 -100
- package/src/components/table/QTd.js +3 -3
- package/src/components/table/QTh.js +5 -6
- package/src/components/table/QTr.js +3 -3
- package/src/components/table/table-column-selection.js +4 -6
- package/src/components/table/table-filter.js +2 -2
- package/src/components/table/table-pagination.js +14 -20
- package/src/components/table/table-row-expand.js +3 -3
- package/src/components/table/table-row-selection.js +10 -20
- package/src/components/table/table-sort.js +7 -7
- package/src/components/tabs/QRouteTab.js +1 -1
- package/src/components/tabs/QTab.js +1 -1
- package/src/components/tabs/QTabs.js +82 -109
- package/src/components/tabs/use-tab.js +36 -38
- package/src/components/time/QTime.js +109 -132
- package/src/components/timeline/QTimeline.js +7 -4
- package/src/components/timeline/QTimelineEntry.js +7 -6
- package/src/components/timeline/QTimelineEntry.json +1 -1
- package/src/components/toggle/QToggle.js +6 -8
- package/src/components/toolbar/QToolbar.js +2 -2
- package/src/components/toolbar/QToolbar.test.js +2 -2
- package/src/components/toolbar/QToolbarTitle.js +2 -4
- package/src/components/toolbar/QToolbarTitle.test.js +2 -2
- package/src/components/tooltip/QTooltip.js +27 -28
- package/src/components/tree/QTree.js +96 -114
- package/src/components/tree/QTree.json +1 -1
- package/src/components/uploader/QUploaderAddTrigger.js +2 -2
- package/src/components/uploader/uploader-core.js +44 -51
- package/src/components/uploader/xhr-uploader-plugin.js +13 -17
- package/src/components/video/QVideo.js +1 -1
- package/src/components/video/QVideo.test.js +2 -2
- package/src/components/virtual-scroll/QVirtualScroll.js +9 -10
- package/src/components/virtual-scroll/use-virtual-scroll.js +42 -50
- package/src/composables/private.use-align/use-align.js +2 -2
- package/src/composables/private.use-align/use-align.test.js +1 -1
- package/src/composables/private.use-anchor/use-anchor.js +23 -32
- package/src/composables/private.use-dark/use-dark.test.js +1 -1
- package/src/composables/private.use-field/use-field.js +79 -99
- package/src/composables/private.use-file/use-file-dom-props.js +2 -2
- package/src/composables/private.use-file/use-file.js +27 -27
- package/src/composables/private.use-fullscreen/use-fullscreen.js +15 -20
- package/src/composables/private.use-history/use-history.js +2 -2
- package/src/composables/private.use-history/use-history.test.js +1 -1
- package/src/composables/private.use-key-composition/use-key-composition.js +11 -12
- package/src/composables/private.use-model-toggle/use-model-toggle.js +16 -25
- package/src/composables/private.use-panel/use-panel.js +25 -27
- package/src/composables/private.use-portal/use-portal.js +11 -9
- package/src/composables/private.use-prevent-scroll/use-prevent-scroll.js +1 -4
- package/src/composables/private.use-ratio/use-ratio.js +6 -5
- package/src/composables/private.use-ratio/use-ratio.test.js +1 -1
- package/src/composables/private.use-refocus-target/use-refocus-target.js +2 -4
- package/src/composables/private.use-router-link/use-router-link.js +44 -55
- package/src/composables/private.use-scroll-target/use-scroll-target.js +1 -1
- package/src/composables/private.use-size/use-size.test.js +1 -1
- package/src/composables/private.use-transition/use-transition.test.js +1 -1
- package/src/composables/private.use-validate/use-validate.js +23 -36
- package/src/composables/use-dialog-plugin-component/use-dialog-plugin-component.js +1 -1
- package/src/composables/use-form/private.use-form.js +1 -1
- package/src/composables/use-form/private.use-form.test.js +3 -3
- package/src/composables/use-form/use-form-child.js +7 -7
- package/src/composables/use-hydration/use-hydration.js +2 -2
- package/src/composables/use-hydration/use-hydration.test.js +1 -1
- package/src/composables/use-id/use-id.js +4 -8
- package/src/composables/use-id/use-id.test.js +1 -1
- package/src/composables/use-interval/use-interval.js +3 -3
- package/src/composables/use-interval/use-interval.test.js +1 -1
- package/src/composables/use-meta/use-meta.js +3 -3
- package/src/composables/use-quasar/use-quasar.test.js +1 -1
- package/src/composables/use-render-cache/use-render-cache.js +1 -1
- package/src/composables/use-render-cache/use-render-cache.test.js +1 -1
- package/src/composables/use-split-attrs/use-split-attrs.js +3 -7
- package/src/composables/use-split-attrs/use-split-attrs.test.js +1 -1
- package/src/composables/use-tick/use-tick.js +3 -3
- package/src/composables/use-tick/use-tick.test.js +2 -2
- package/src/composables/use-timeout/use-timeout.js +2 -2
- package/src/composables/use-timeout/use-timeout.test.js +1 -1
- package/src/directives/close-popup/ClosePopup.js +4 -9
- package/src/directives/intersection/Intersection.js +5 -8
- package/src/directives/morph/Morph.js +12 -18
- package/src/directives/ripple/Ripple.js +19 -26
- package/src/directives/ripple/Ripple.test.js +2 -2
- package/src/directives/scroll/Scroll.js +2 -2
- package/src/directives/touch-hold/TouchHold.js +22 -28
- package/src/directives/touch-pan/TouchPan.js +68 -84
- package/src/directives/touch-repeat/TouchRepeat.js +28 -39
- package/src/directives/touch-swipe/TouchSwipe.js +30 -33
- package/src/index.ssr.js +2 -0
- package/src/index.umd.js +2 -0
- package/src/install-quasar.js +9 -9
- package/src/plugins/addressbar/AddressbarColor.js +9 -9
- package/src/plugins/addressbar/AddressbarColor.test.js +2 -2
- package/src/plugins/app-fullscreen/AppFullscreen.js +11 -10
- package/src/plugins/app-fullscreen/AppFullscreen.test.js +2 -2
- package/src/plugins/app-fullscreen/test/mock-fullscreen.js +2 -2
- package/src/plugins/app-visibility/AppVisibility.js +5 -5
- package/src/plugins/app-visibility/AppVisibility.test.js +2 -2
- package/src/plugins/bottom-sheet/BottomSheet.js +2 -2
- package/src/plugins/bottom-sheet/component/BottomSheetComponent.js +4 -4
- package/src/plugins/cookies/Cookies.js +50 -62
- package/src/plugins/dark/Dark.js +3 -5
- package/src/plugins/dark/Dark.test.js +1 -1
- package/src/plugins/dialog/Dialog.js +2 -2
- package/src/plugins/dialog/component/DialogPluginComponent.js +17 -20
- package/src/plugins/icon-set/IconSet.js +2 -4
- package/src/plugins/icon-set/IconSet.test.js +1 -1
- package/src/plugins/lang/Lang.js +7 -10
- package/src/plugins/lang/Lang.json +2 -2
- package/src/plugins/lang/Lang.test.js +2 -2
- package/src/plugins/loading/Loading.js +10 -12
- package/src/plugins/loading-bar/LoadingBar.js +4 -4
- package/src/plugins/meta/Meta.js +10 -11
- package/src/plugins/notify/Notify.js +67 -72
- package/src/plugins/platform/Platform.js +19 -21
- package/src/plugins/platform/Platform.test.js +1 -1
- package/src/plugins/private.body/Body.js +23 -29
- package/src/plugins/private.body/Body.test.js +1 -1
- package/src/plugins/private.history/History.js +17 -25
- package/src/plugins/private.history/History.test.js +1 -1
- package/src/plugins/screen/Screen.js +16 -16
- package/src/plugins/screen/Screen.test.js +1 -1
- package/src/plugins/storage/LocalStorage.js +3 -4
- package/src/plugins/storage/LocalStorage.test.js +2 -2
- package/src/plugins/storage/SessionStorage.js +3 -4
- package/src/plugins/storage/SessionStorage.test.js +2 -2
- package/src/plugins/storage/engine/web-storage.js +30 -23
- package/src/plugins/storage/engine/web-storage.test.js +1 -1
- package/src/utils/EventBus/EventBus.js +3 -4
- package/src/utils/EventBus/EventBus.test.js +1 -1
- package/src/utils/clone/clone.test.js +4 -8
- package/src/utils/colors/colors.js +38 -29
- package/src/utils/colors/colors.test.js +2 -2
- package/src/utils/copy-to-clipboard/copy-to-clipboard.js +6 -11
- package/src/utils/create-meta-mixin/create-meta-mixin.js +2 -2
- package/src/utils/create-uploader-component/create-uploader-component.js +12 -7
- package/src/utils/css-var/get-css-var.test.js +2 -2
- package/src/utils/css-var/set-css-var.test.js +2 -2
- package/src/utils/date/date.js +229 -172
- package/src/utils/date/private.persian.js +11 -11
- package/src/utils/debounce/debounce.js +3 -7
- package/src/utils/debounce/debounce.test.js +1 -1
- package/src/utils/dom/dom.js +2 -4
- package/src/utils/dom/dom.test.js +4 -4
- package/src/utils/event/event.js +21 -23
- package/src/utils/export-file/export-file.js +3 -3
- package/src/utils/extend/extend.js +15 -14
- package/src/utils/extend/extend.test.js +2 -2
- package/src/utils/format/format.js +4 -10
- package/src/utils/format/format.test.js +1 -1
- package/src/utils/frame-debounce/frame-debounce.js +23 -12
- package/src/utils/frame-debounce/frame-debounce.test.js +1 -1
- package/src/utils/is/is.js +15 -26
- package/src/utils/is/is.test.js +8 -7
- package/src/utils/morph/morph.js +57 -48
- package/src/utils/open-url/open-url.js +7 -7
- package/src/utils/patterns/patterns.js +26 -23
- package/src/utils/patterns/patterns.test.js +1 -1
- package/src/utils/private.click-outside/click-outside.js +5 -5
- package/src/utils/private.config/instance-config.js +2 -0
- package/src/utils/private.config/instance-config.test.js +4 -4
- package/src/utils/private.config/nodes.js +5 -5
- package/src/utils/private.config/nodes.test.js +4 -4
- package/src/utils/private.create/create.test.js +1 -1
- package/src/utils/private.dialog/create-dialog.js +9 -12
- package/src/utils/private.focus/focus-manager.js +1 -1
- package/src/utils/private.focus/focus-manager.test.js +4 -4
- package/src/utils/private.focus/focusout.js +2 -2
- package/src/utils/private.focus/focusout.test.js +1 -1
- package/src/utils/private.get-emits-object/get-emits-object.test.js +1 -1
- package/src/utils/private.inject-obj-prop/inject-obj-prop.test.js +2 -2
- package/src/utils/private.keyboard/escape-key.js +5 -5
- package/src/utils/private.keyboard/escape-key.test.js +1 -1
- package/src/utils/private.keyboard/key-composition.js +4 -6
- package/src/utils/private.noop-ssr-directive-transform/noop-ssr-directive-transform.js +3 -1
- package/src/utils/private.noop-ssr-directive-transform/noop-ssr-directive-transform.test.js +1 -1
- package/src/utils/private.portal/portal.js +5 -5
- package/src/utils/private.position-engine/position-engine.js +20 -22
- package/src/utils/private.render/render.js +5 -7
- package/src/utils/private.render/render.test.js +5 -5
- package/src/utils/private.rtl/rtl.js +3 -2
- package/src/utils/private.rtl/rtl.test.js +1 -1
- package/src/utils/private.selection/selection.js +1 -1
- package/src/utils/private.selection/selection.test.js +2 -2
- package/src/utils/private.sort/sort.test.js +2 -2
- package/src/utils/private.touch/touch.js +10 -14
- package/src/utils/private.touch/touch.test.js +1 -1
- package/src/utils/private.vm/vm.js +2 -2
- package/src/utils/private.vm/vm.test.js +4 -4
- package/src/utils/run-sequential-promises/run-sequential-promises.js +44 -54
- package/src/utils/run-sequential-promises/run-sequential-promises.test.js +183 -0
- package/src/utils/scroll/prevent-scroll.js +9 -9
- package/src/utils/scroll/scroll.js +11 -12
- package/src/utils/throttle/throttle.js +4 -3
- package/src/utils/throttle/throttle.test.js +1 -1
- package/src/utils/uid/uid.js +51 -77
- package/src/utils/uid/uid.test.js +3 -3
- package/wrappers/index.cjs +2 -2
- package/wrappers/index.js +2 -2
- package/dist/types/extras/animations.d.ts +0 -106
- package/dist/types/extras/fonts.d.ts +0 -1
- package/dist/types/extras.d.ts +0 -3
- package/dist/vetur/quasar-attributes.json +0 -1
- 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
|
-
|
|
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
|
-
|
|
23
|
+
getDayHash,
|
|
24
24
|
useDatetimeEmits,
|
|
25
|
-
|
|
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 {
|
|
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
|
|
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)
|
|
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
|
|
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
|
|
164
|
+
const type = props.landscape ? 'landscape' : 'portrait'
|
|
160
165
|
return (
|
|
161
|
-
`q-date q-date--${type} q-date--${type}-${props.minimal
|
|
162
|
-
(isDark.value
|
|
163
|
-
(props.bordered
|
|
164
|
-
(props.square
|
|
165
|
-
(props.flat
|
|
166
|
-
(props.disable
|
|
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
|
|
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)
|
|
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())
|
|
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 =
|
|
323
|
-
.
|
|
324
|
-
.
|
|
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 =
|
|
331
|
-
.
|
|
332
|
-
.
|
|
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
|
|
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)
|
|
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 {
|
|
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 {
|
|
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)
|
|
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]
|
|
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
|
|
730
|
+
if (rangeView.value.includeFrom) {
|
|
728
731
|
res[from].editRangeFrom = true
|
|
729
732
|
}
|
|
730
|
-
if (rangeView.value.includeTo
|
|
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
|
|
756
|
+
if (day.fill) {
|
|
754
757
|
cls += 'q-date__calendar-item--fill'
|
|
755
758
|
} else {
|
|
756
|
-
cls += `q-date__calendar-item--${day.in
|
|
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
|
|
762
|
+
cls += ` q-date__range${day.rangeTo ? '-to' : day.rangeFrom ? '-from' : ''}`
|
|
760
763
|
}
|
|
761
764
|
|
|
762
|
-
if (day.editRange
|
|
763
|
-
cls += ` q-date__edit-range${day.editRangeFrom
|
|
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
|
|
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
|
|
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)
|
|
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)
|
|
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)
|
|
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
|
|
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
|
|
869
|
+
if (!props.range || !from) {
|
|
869
870
|
editRange.value = null
|
|
870
871
|
return
|
|
871
872
|
}
|
|
872
873
|
|
|
873
|
-
const init =
|
|
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
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
1131
|
-
|
|
1132
|
-
.map(entry => encodeEntry(entry))
|
|
1122
|
+
value = [...localDays, ...ranges, date].map(entry =>
|
|
1123
|
+
encodeEntry(entry)
|
|
1124
|
+
)
|
|
1133
1125
|
} else {
|
|
1134
|
-
|
|
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
|
|
1136
|
+
if (props.noUnset) return
|
|
1147
1137
|
|
|
1148
1138
|
let model = null
|
|
1149
1139
|
|
|
1150
|
-
if (props.multiple
|
|
1140
|
+
if (props.multiple && Array.isArray(props.modelValue)) {
|
|
1151
1141
|
const val = encodeEntry(date)
|
|
1152
1142
|
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
item
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
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
|
|
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
|
|
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
|
|
1501
|
+
currentYear && today.value.month === i + 1
|
|
1514
1502
|
? 'q-date__today'
|
|
1515
1503
|
: null,
|
|
1516
|
-
flat: active
|
|
1504
|
+
flat: !active,
|
|
1517
1505
|
label: month,
|
|
1518
1506
|
unelevated: active,
|
|
1519
|
-
color: active
|
|
1520
|
-
textColor: active
|
|
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
|
|
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
|
|
1586
|
-
textColor: active
|
|
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
|
|
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
|
|
1662
|
+
item => !item.fill && item.i === dayIndex
|
|
1675
1663
|
)
|
|
1676
1664
|
|
|
1677
|
-
if (props.noUnset
|
|
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
|
|
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
|
|
1751
|
+
if (props.name !== void 0 && !props.disable) {
|
|
1764
1752
|
injectFormInput(content, 'push')
|
|
1765
1753
|
}
|
|
1766
1754
|
|