quasar 2.19.3 → 2.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +1 -1
- package/dist/icon-set/fontawesome-v7.umd.prod.js +1 -1
- package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
- 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 +1 -1
- package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
- 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 +5 -5
- package/dist/icon-set/svg-ionicons-v8.umd.prod.js +1 -1
- 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 +1 -1
- package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +1 -1
- 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 +2621 -2604
- 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 +2616 -2599
- 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 +2 -2
- package/dist/types/icon-set.d.ts +16 -16
- 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 +22 -22
- package/icon-set/ionicons-v4.js +16 -16
- package/icon-set/svg-bootstrap-icons.js +1 -1
- package/icon-set/svg-eva-icons.js +22 -22
- package/icon-set/svg-fontawesome-v5.js +1 -1
- package/icon-set/svg-ionicons-v4.js +16 -16
- 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 +1 -1
- 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 -51
- 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 +53 -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 +2 -2
- 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 +5 -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/vetur/quasar-attributes.json +0 -1
- package/dist/vetur/quasar-tags.json +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { computed, getCurrentInstance, h, ref } from 'vue'
|
|
2
2
|
|
|
3
3
|
import useDark, {
|
|
4
4
|
useDarkProps
|
|
@@ -54,54 +54,44 @@ export default createComponent({
|
|
|
54
54
|
const blurTargetRef = ref(null)
|
|
55
55
|
|
|
56
56
|
const isActionable = computed(
|
|
57
|
-
() =>
|
|
58
|
-
props.clickable === true ||
|
|
59
|
-
hasLink.value === true ||
|
|
60
|
-
props.tag === 'label'
|
|
57
|
+
() => props.clickable || hasLink.value || props.tag === 'label'
|
|
61
58
|
)
|
|
62
59
|
|
|
63
|
-
const isClickable = computed(
|
|
64
|
-
() => props.disable !== true && isActionable.value === true
|
|
65
|
-
)
|
|
60
|
+
const isClickable = computed(() => !props.disable && isActionable.value)
|
|
66
61
|
|
|
67
62
|
const classes = computed(
|
|
68
63
|
() =>
|
|
69
64
|
'q-item q-item-type row no-wrap' +
|
|
70
|
-
(props.dense
|
|
71
|
-
(isDark.value
|
|
72
|
-
(hasLink.value
|
|
65
|
+
(props.dense ? ' q-item--dense' : '') +
|
|
66
|
+
(isDark.value ? ' q-item--dark' : '') +
|
|
67
|
+
(hasLink.value && props.active === null
|
|
73
68
|
? linkClass.value
|
|
74
|
-
: props.active
|
|
69
|
+
: props.active
|
|
75
70
|
? ` q-item--active${props.activeClass !== void 0 ? ` ${props.activeClass}` : ''}`
|
|
76
71
|
: '') +
|
|
77
|
-
(props.disable
|
|
78
|
-
(isClickable.value
|
|
72
|
+
(props.disable ? ' disabled' : '') +
|
|
73
|
+
(isClickable.value
|
|
79
74
|
? ' q-item--clickable q-link cursor-pointer ' +
|
|
80
|
-
(props.manualFocus
|
|
75
|
+
(props.manualFocus
|
|
81
76
|
? 'q-manual-focusable'
|
|
82
77
|
: 'q-focusable q-hoverable') +
|
|
83
|
-
(props.focused
|
|
78
|
+
(props.focused ? ' q-manual-focusable--focused' : '')
|
|
84
79
|
: '')
|
|
85
80
|
)
|
|
86
81
|
|
|
87
82
|
const style = computed(() => {
|
|
88
|
-
if (props.insetLevel === void 0)
|
|
89
|
-
return null
|
|
90
|
-
}
|
|
83
|
+
if (props.insetLevel === void 0) return null
|
|
91
84
|
|
|
92
|
-
const dir = $q.lang.rtl
|
|
85
|
+
const dir = $q.lang.rtl ? 'Right' : 'Left'
|
|
93
86
|
return {
|
|
94
87
|
['padding' + dir]: 16 + props.insetLevel * 56 + 'px'
|
|
95
88
|
}
|
|
96
89
|
})
|
|
97
90
|
|
|
98
91
|
function onClick(e) {
|
|
99
|
-
if (isClickable.value
|
|
100
|
-
if (blurTargetRef.value !== null && e.qAvoidFocus
|
|
101
|
-
if (
|
|
102
|
-
e.qKeyEvent !== true &&
|
|
103
|
-
document.activeElement === rootRef.value
|
|
104
|
-
) {
|
|
92
|
+
if (isClickable.value) {
|
|
93
|
+
if (blurTargetRef.value !== null && !e.qAvoidFocus) {
|
|
94
|
+
if (!e.qKeyEvent && document.activeElement === rootRef.value) {
|
|
105
95
|
blurTargetRef.value.focus()
|
|
106
96
|
} else if (document.activeElement === blurTargetRef.value) {
|
|
107
97
|
rootRef.value.focus()
|
|
@@ -113,7 +103,7 @@ export default createComponent({
|
|
|
113
103
|
}
|
|
114
104
|
|
|
115
105
|
function onKeyup(e) {
|
|
116
|
-
if (isClickable.value
|
|
106
|
+
if (isClickable.value && isKeyCode(e, [13, 32])) {
|
|
117
107
|
stopAndPrevent(e)
|
|
118
108
|
|
|
119
109
|
// for ripple
|
|
@@ -131,7 +121,7 @@ export default createComponent({
|
|
|
131
121
|
function getContent() {
|
|
132
122
|
const child = hUniqueSlot(slots.default, [])
|
|
133
123
|
|
|
134
|
-
if (isClickable.value
|
|
124
|
+
if (isClickable.value) {
|
|
135
125
|
child.unshift(
|
|
136
126
|
h('div', {
|
|
137
127
|
class: 'q-focus-helper',
|
|
@@ -154,10 +144,10 @@ export default createComponent({
|
|
|
154
144
|
onKeyup
|
|
155
145
|
}
|
|
156
146
|
|
|
157
|
-
if (isClickable.value
|
|
147
|
+
if (isClickable.value) {
|
|
158
148
|
data.tabindex = props.tabindex || '0'
|
|
159
149
|
Object.assign(data, linkAttrs.value)
|
|
160
|
-
} else if (isActionable.value
|
|
150
|
+
} else if (isActionable.value) {
|
|
161
151
|
data['aria-disabled'] = 'true'
|
|
162
152
|
}
|
|
163
153
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { computed, h } from 'vue'
|
|
2
2
|
|
|
3
3
|
import { createComponent } from '../../utils/private.create/create.js'
|
|
4
4
|
import { hSlot } from '../../utils/private.render/render.js'
|
|
@@ -14,16 +14,14 @@ export default createComponent({
|
|
|
14
14
|
},
|
|
15
15
|
|
|
16
16
|
setup(props, { slots }) {
|
|
17
|
-
const parsedLines = computed(() => parseInt(props.lines, 10))
|
|
17
|
+
const parsedLines = computed(() => Number.parseInt(props.lines, 10))
|
|
18
18
|
|
|
19
19
|
const classes = computed(
|
|
20
20
|
() =>
|
|
21
21
|
'q-item__label' +
|
|
22
|
-
(props.overline
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
(props.caption === true ? ' q-item__label--caption text-caption' : '') +
|
|
26
|
-
(props.header === true ? ' q-item__label--header' : '') +
|
|
22
|
+
(props.overline ? ' q-item__label--overline text-overline' : '') +
|
|
23
|
+
(props.caption ? ' q-item__label--caption text-caption' : '') +
|
|
24
|
+
(props.header ? ' q-item__label--header' : '') +
|
|
27
25
|
(parsedLines.value === 1 ? ' ellipsis' : '')
|
|
28
26
|
)
|
|
29
27
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { computed, h } from 'vue'
|
|
2
2
|
|
|
3
3
|
import { createComponent } from '../../utils/private.create/create.js'
|
|
4
4
|
import { hSlot } from '../../utils/private.render/render.js'
|
|
@@ -18,13 +18,13 @@ export default createComponent({
|
|
|
18
18
|
const classes = computed(
|
|
19
19
|
() =>
|
|
20
20
|
'q-item__section column' +
|
|
21
|
-
` q-item__section--${props.avatar
|
|
22
|
-
(props.top
|
|
21
|
+
` q-item__section--${props.avatar || props.side || props.thumbnail ? 'side' : 'main'}` +
|
|
22
|
+
(props.top
|
|
23
23
|
? ' q-item__section--top justify-start'
|
|
24
24
|
: ' justify-center') +
|
|
25
|
-
(props.avatar
|
|
26
|
-
(props.thumbnail
|
|
27
|
-
(props.noWrap
|
|
25
|
+
(props.avatar ? ' q-item__section--avatar' : '') +
|
|
26
|
+
(props.thumbnail ? ' q-item__section--thumbnail' : '') +
|
|
27
|
+
(props.noWrap ? ' q-item__section--nowrap' : '')
|
|
28
28
|
)
|
|
29
29
|
|
|
30
30
|
return () => h('div', { class: classes.value }, hSlot(slots.default))
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { computed, getCurrentInstance, h } from 'vue'
|
|
2
2
|
|
|
3
3
|
import { createComponent } from '../../utils/private.create/create.js'
|
|
4
4
|
import useDark, {
|
|
@@ -36,11 +36,11 @@ export default createComponent({
|
|
|
36
36
|
const classes = computed(
|
|
37
37
|
() =>
|
|
38
38
|
'q-list' +
|
|
39
|
-
(props.bordered
|
|
40
|
-
(props.dense
|
|
41
|
-
(props.separator
|
|
42
|
-
(isDark.value
|
|
43
|
-
(props.padding
|
|
39
|
+
(props.bordered ? ' q-list--bordered' : '') +
|
|
40
|
+
(props.dense ? ' q-list--dense' : '') +
|
|
41
|
+
(props.separator ? ' q-list--separator' : '') +
|
|
42
|
+
(isDark.value ? ' q-list--dark' : '') +
|
|
43
|
+
(props.padding ? ' q-list--padding' : '')
|
|
44
44
|
)
|
|
45
45
|
|
|
46
46
|
return () =>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { computed, getCurrentInstance, h, ref, watch } from 'vue'
|
|
2
2
|
|
|
3
3
|
import QCircularProgress from '../circular-progress/QCircularProgress.js'
|
|
4
4
|
import TouchPan from '../../directives/touch-pan/TouchPan.js'
|
|
@@ -9,8 +9,8 @@ import { between, normalizeToInterval } from '../../utils/format/format.js'
|
|
|
9
9
|
import { hDir } from '../../utils/private.render/render.js'
|
|
10
10
|
|
|
11
11
|
import {
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
useFormAttrs,
|
|
13
|
+
useFormProps
|
|
14
14
|
} from '../../composables/use-form/private.use-form.js'
|
|
15
15
|
import { useCircularCommonProps } from '../circular-progress/circular-progress.js'
|
|
16
16
|
|
|
@@ -58,12 +58,12 @@ export default createComponent({
|
|
|
58
58
|
const dragging = ref(false)
|
|
59
59
|
|
|
60
60
|
const innerMin = computed(() =>
|
|
61
|
-
|
|
61
|
+
!Number.isFinite(props.innerMin) || props.innerMin < props.min
|
|
62
62
|
? props.min
|
|
63
63
|
: props.innerMin
|
|
64
64
|
)
|
|
65
65
|
const innerMax = computed(() =>
|
|
66
|
-
|
|
66
|
+
!Number.isFinite(props.innerMax) || props.innerMax > props.max
|
|
67
67
|
? props.max
|
|
68
68
|
: props.innerMax
|
|
69
69
|
)
|
|
@@ -86,16 +86,14 @@ export default createComponent({
|
|
|
86
86
|
|
|
87
87
|
normalizeModel()
|
|
88
88
|
|
|
89
|
-
const editable = computed(
|
|
90
|
-
() => props.disable === false && props.readonly === false
|
|
91
|
-
)
|
|
89
|
+
const editable = computed(() => !props.disable && !props.readonly)
|
|
92
90
|
|
|
93
91
|
const classes = computed(
|
|
94
92
|
() =>
|
|
95
93
|
'q-knob non-selectable' +
|
|
96
|
-
(editable.value
|
|
94
|
+
(editable.value
|
|
97
95
|
? ' q-knob--editable'
|
|
98
|
-
: props.disable
|
|
96
|
+
: props.disable
|
|
99
97
|
? ' disabled'
|
|
100
98
|
: '')
|
|
101
99
|
)
|
|
@@ -105,28 +103,27 @@ export default createComponent({
|
|
|
105
103
|
)
|
|
106
104
|
const step = computed(() => (props.step === 0 ? 1 : props.step))
|
|
107
105
|
const instantFeedback = computed(
|
|
108
|
-
() => props.instantFeedback
|
|
106
|
+
() => props.instantFeedback || dragging.value
|
|
109
107
|
)
|
|
110
108
|
|
|
111
|
-
const onEvents =
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
)
|
|
109
|
+
const onEvents = $q.platform.is.mobile
|
|
110
|
+
? computed(() => (editable.value ? { onClick } : {}))
|
|
111
|
+
: computed(() =>
|
|
112
|
+
editable.value
|
|
113
|
+
? {
|
|
114
|
+
onMousedown,
|
|
115
|
+
onClick,
|
|
116
|
+
onKeydown,
|
|
117
|
+
onKeyup
|
|
118
|
+
}
|
|
119
|
+
: {}
|
|
120
|
+
)
|
|
124
121
|
|
|
125
122
|
const attrs = computed(() =>
|
|
126
|
-
editable.value
|
|
123
|
+
editable.value
|
|
127
124
|
? { tabindex: props.tabindex }
|
|
128
125
|
: {
|
|
129
|
-
[`aria-${props.disable
|
|
126
|
+
[`aria-${props.disable ? 'disabled' : 'readonly'}`]: 'true'
|
|
130
127
|
}
|
|
131
128
|
)
|
|
132
129
|
|
|
@@ -142,13 +139,15 @@ export default createComponent({
|
|
|
142
139
|
if (event.isFinal) {
|
|
143
140
|
updatePosition(event.evt, true)
|
|
144
141
|
dragging.value = false
|
|
145
|
-
|
|
142
|
+
return
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
if (event.isFirst) {
|
|
146
146
|
updateCenterPosition()
|
|
147
147
|
dragging.value = true
|
|
148
|
-
updatePosition(event.evt)
|
|
149
|
-
} else {
|
|
150
|
-
updatePosition(event.evt)
|
|
151
148
|
}
|
|
149
|
+
|
|
150
|
+
updatePosition(event.evt, false)
|
|
152
151
|
}
|
|
153
152
|
|
|
154
153
|
const directives = computed(() => [
|
|
@@ -165,7 +164,7 @@ export default createComponent({
|
|
|
165
164
|
|
|
166
165
|
function onMousedown(evt) {
|
|
167
166
|
updateCenterPosition()
|
|
168
|
-
updatePosition(evt)
|
|
167
|
+
updatePosition(evt, false)
|
|
169
168
|
}
|
|
170
169
|
|
|
171
170
|
function onClick(evt) {
|
|
@@ -174,7 +173,7 @@ export default createComponent({
|
|
|
174
173
|
}
|
|
175
174
|
|
|
176
175
|
function onKeydown(evt) {
|
|
177
|
-
if (keyCodes.includes(evt.keyCode)
|
|
176
|
+
if (!keyCodes.includes(evt.keyCode)) return
|
|
178
177
|
|
|
179
178
|
stopAndPrevent(evt)
|
|
180
179
|
|
|
@@ -182,20 +181,18 @@ export default createComponent({
|
|
|
182
181
|
offset = [34, 37, 40].includes(evt.keyCode) ? -stepVal : stepVal
|
|
183
182
|
|
|
184
183
|
model.value = between(
|
|
185
|
-
parseFloat((model.value + offset).toFixed(decimals.value)),
|
|
184
|
+
Number.parseFloat((model.value + offset).toFixed(decimals.value)),
|
|
186
185
|
innerMin.value,
|
|
187
186
|
innerMax.value
|
|
188
187
|
)
|
|
189
188
|
|
|
190
|
-
updateValue()
|
|
189
|
+
updateValue(false)
|
|
191
190
|
}
|
|
192
191
|
|
|
193
192
|
function updatePosition(evt, change) {
|
|
194
193
|
const pos = position(evt),
|
|
195
194
|
height = Math.abs(pos.top - centerPosition.top),
|
|
196
|
-
distance = Math.
|
|
197
|
-
height ** 2 + Math.abs(pos.left - centerPosition.left) ** 2
|
|
198
|
-
)
|
|
195
|
+
distance = Math.hypot(height, pos.left - centerPosition.left)
|
|
199
196
|
|
|
200
197
|
let angle = Math.asin(height / distance) * (180 / Math.PI)
|
|
201
198
|
|
|
@@ -205,15 +202,13 @@ export default createComponent({
|
|
|
205
202
|
angle = centerPosition.left < pos.left ? angle + 90 : 270 - angle
|
|
206
203
|
}
|
|
207
204
|
|
|
208
|
-
if ($q.lang.rtl
|
|
205
|
+
if ($q.lang.rtl) {
|
|
209
206
|
angle = normalizeToInterval(-angle - props.angle, 0, 360)
|
|
210
207
|
} else if (props.angle) {
|
|
211
208
|
angle = normalizeToInterval(angle - props.angle, 0, 360)
|
|
212
209
|
}
|
|
213
210
|
|
|
214
|
-
if (props.reverse
|
|
215
|
-
angle = 360 - angle
|
|
216
|
-
}
|
|
211
|
+
if (props.reverse) angle = 360 - angle
|
|
217
212
|
|
|
218
213
|
let newModel = props.min + (angle / 360) * (props.max - props.min)
|
|
219
214
|
|
|
@@ -227,7 +222,7 @@ export default createComponent({
|
|
|
227
222
|
? (modulo < 0 ? -1 : 1) * step.value
|
|
228
223
|
: 0)
|
|
229
224
|
|
|
230
|
-
newModel = parseFloat(newModel.toFixed(decimals.value))
|
|
225
|
+
newModel = Number.parseFloat(newModel.toFixed(decimals.value))
|
|
231
226
|
}
|
|
232
227
|
|
|
233
228
|
newModel = between(newModel, innerMin.value, innerMax.value)
|
|
@@ -252,7 +247,7 @@ export default createComponent({
|
|
|
252
247
|
emit('update:modelValue', model.value)
|
|
253
248
|
}
|
|
254
249
|
|
|
255
|
-
if (change
|
|
250
|
+
if (change) emit('change', model.value)
|
|
256
251
|
}
|
|
257
252
|
|
|
258
253
|
const formAttrs = useFormAttrs(props)
|
|
@@ -279,7 +274,7 @@ export default createComponent({
|
|
|
279
274
|
default: slots.default
|
|
280
275
|
}
|
|
281
276
|
|
|
282
|
-
if (editable.value
|
|
277
|
+
if (editable.value && props.name !== void 0) {
|
|
283
278
|
child.internal = getNameInput
|
|
284
279
|
}
|
|
285
280
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
|
-
h,
|
|
3
|
-
ref,
|
|
4
|
-
reactive,
|
|
5
2
|
computed,
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
getCurrentInstance,
|
|
4
|
+
h,
|
|
8
5
|
onUnmounted,
|
|
9
|
-
|
|
6
|
+
provide,
|
|
7
|
+
reactive,
|
|
8
|
+
ref,
|
|
9
|
+
watch
|
|
10
10
|
} from 'vue'
|
|
11
11
|
|
|
12
12
|
import { isRuntimeSsrPreHydration } from '../../plugins/platform/Platform.js'
|
|
@@ -19,6 +19,8 @@ import { getScrollbarWidth } from '../../utils/scroll/scroll.js'
|
|
|
19
19
|
import { hMergeSlot } from '../../utils/private.render/render.js'
|
|
20
20
|
import { layoutKey } from '../../utils/private.symbols/symbols.js'
|
|
21
21
|
|
|
22
|
+
const viewRE = /^(h|l)h(h|r) lpr (f|l)f(f|r)$/
|
|
23
|
+
|
|
22
24
|
export default createComponent({
|
|
23
25
|
name: 'QLayout',
|
|
24
26
|
|
|
@@ -27,7 +29,7 @@ export default createComponent({
|
|
|
27
29
|
view: {
|
|
28
30
|
type: String,
|
|
29
31
|
default: 'hhh lpr fff',
|
|
30
|
-
validator: v =>
|
|
32
|
+
validator: v => viewRE.test(v.toLowerCase())
|
|
31
33
|
},
|
|
32
34
|
|
|
33
35
|
onScroll: Function,
|
|
@@ -44,31 +46,29 @@ export default createComponent({
|
|
|
44
46
|
|
|
45
47
|
// page related
|
|
46
48
|
const height = ref($q.screen.height)
|
|
47
|
-
const width = ref(props.container
|
|
49
|
+
const width = ref(props.container ? 0 : $q.screen.width)
|
|
48
50
|
const scroll = ref({ position: 0, direction: 'down', inflectionPoint: 0 })
|
|
49
51
|
|
|
50
52
|
// container only prop
|
|
51
53
|
const containerHeight = ref(0)
|
|
52
54
|
const scrollbarWidth = ref(
|
|
53
|
-
isRuntimeSsrPreHydration.value
|
|
55
|
+
isRuntimeSsrPreHydration.value ? 0 : getScrollbarWidth()
|
|
54
56
|
)
|
|
55
57
|
|
|
56
58
|
const classes = computed(
|
|
57
59
|
() =>
|
|
58
|
-
'q-layout q-layout--' +
|
|
59
|
-
(props.container === true ? 'containerized' : 'standard')
|
|
60
|
+
'q-layout q-layout--' + (props.container ? 'containerized' : 'standard')
|
|
60
61
|
)
|
|
61
62
|
|
|
62
63
|
const style = computed(() =>
|
|
63
|
-
props.container
|
|
64
|
+
props.container ? null : { minHeight: $q.screen.height + 'px' }
|
|
64
65
|
)
|
|
65
66
|
|
|
66
67
|
// used by container only
|
|
67
68
|
const targetStyle = computed(() =>
|
|
68
69
|
scrollbarWidth.value !== 0
|
|
69
70
|
? {
|
|
70
|
-
[$q.lang.rtl
|
|
71
|
-
`${scrollbarWidth.value}px`
|
|
71
|
+
[$q.lang.rtl ? 'left' : 'right']: `${scrollbarWidth.value}px`
|
|
72
72
|
}
|
|
73
73
|
: null
|
|
74
74
|
)
|
|
@@ -76,16 +76,15 @@ export default createComponent({
|
|
|
76
76
|
const targetChildStyle = computed(() =>
|
|
77
77
|
scrollbarWidth.value !== 0
|
|
78
78
|
? {
|
|
79
|
-
[$q.lang.rtl
|
|
80
|
-
[$q.lang.rtl
|
|
81
|
-
`-${scrollbarWidth.value}px`,
|
|
79
|
+
[$q.lang.rtl ? 'right' : 'left']: 0,
|
|
80
|
+
[$q.lang.rtl ? 'left' : 'right']: `-${scrollbarWidth.value}px`,
|
|
82
81
|
width: `calc(100% + ${scrollbarWidth.value}px)`
|
|
83
82
|
}
|
|
84
83
|
: null
|
|
85
84
|
)
|
|
86
85
|
|
|
87
86
|
function onPageScroll(data) {
|
|
88
|
-
if (props.container
|
|
87
|
+
if (props.container || !document.qScrollPrevented) {
|
|
89
88
|
const info = {
|
|
90
89
|
position: data.position.top,
|
|
91
90
|
direction: data.direction,
|
|
@@ -114,7 +113,7 @@ export default createComponent({
|
|
|
114
113
|
width.value = newWidth
|
|
115
114
|
}
|
|
116
115
|
|
|
117
|
-
if (resized
|
|
116
|
+
if (resized && props.onResize !== void 0) {
|
|
118
117
|
emit('resize', data)
|
|
119
118
|
}
|
|
120
119
|
}
|
|
@@ -127,7 +126,7 @@ export default createComponent({
|
|
|
127
126
|
}
|
|
128
127
|
|
|
129
128
|
function updateScrollbarWidth() {
|
|
130
|
-
if (props.container
|
|
129
|
+
if (props.container) {
|
|
131
130
|
const newWidth =
|
|
132
131
|
height.value > containerHeight.value ? getScrollbarWidth() : 0
|
|
133
132
|
|
|
@@ -154,9 +153,9 @@ export default createComponent({
|
|
|
154
153
|
rows: computed(() => {
|
|
155
154
|
const rows = props.view.toLowerCase().split(' ')
|
|
156
155
|
return {
|
|
157
|
-
top: rows[0]
|
|
158
|
-
middle: rows[1]
|
|
159
|
-
bottom: rows[2]
|
|
156
|
+
top: [...rows[0]],
|
|
157
|
+
middle: [...rows[1]],
|
|
158
|
+
bottom: [...rows[2]]
|
|
160
159
|
}
|
|
161
160
|
}),
|
|
162
161
|
|
|
@@ -189,16 +188,16 @@ export default createComponent({
|
|
|
189
188
|
|
|
190
189
|
// prevent scrollbar flicker while resizing window height
|
|
191
190
|
// if no page scrollbar is already present
|
|
192
|
-
if (__QUASAR_SSR_SERVER__
|
|
191
|
+
if (!__QUASAR_SSR_SERVER__ && getScrollbarWidth() > 0) {
|
|
193
192
|
let timer = null
|
|
194
193
|
const el = document.body
|
|
195
194
|
|
|
196
|
-
|
|
195
|
+
const restoreScrollbar = () => {
|
|
197
196
|
timer = null
|
|
198
197
|
el.classList.remove('hide-scrollbar')
|
|
199
198
|
}
|
|
200
199
|
|
|
201
|
-
|
|
200
|
+
const hideScrollbar = () => {
|
|
202
201
|
if (timer === null) {
|
|
203
202
|
// if it has no scrollbar then there's nothing to do
|
|
204
203
|
if (el.scrollHeight > $q.screen.height) return
|
|
@@ -211,7 +210,7 @@ export default createComponent({
|
|
|
211
210
|
timer = setTimeout(restoreScrollbar, 300)
|
|
212
211
|
}
|
|
213
212
|
|
|
214
|
-
|
|
213
|
+
const updateScrollEvent = action => {
|
|
215
214
|
if (timer !== null && action === 'remove') {
|
|
216
215
|
clearTimeout(timer)
|
|
217
216
|
restoreScrollbar()
|
|
@@ -220,12 +219,9 @@ export default createComponent({
|
|
|
220
219
|
window[`${action}EventListener`]('resize', hideScrollbar)
|
|
221
220
|
}
|
|
222
221
|
|
|
223
|
-
watch(
|
|
224
|
-
() => (props.container !== true ? 'add' : 'remove'),
|
|
225
|
-
updateScrollEvent
|
|
226
|
-
)
|
|
222
|
+
watch(() => (props.container ? 'remove' : 'add'), updateScrollEvent)
|
|
227
223
|
|
|
228
|
-
if (props.container
|
|
224
|
+
if (!props.container) updateScrollEvent('add')
|
|
229
225
|
|
|
230
226
|
onUnmounted(() => {
|
|
231
227
|
updateScrollEvent('remove')
|
|
@@ -243,13 +239,13 @@ export default createComponent({
|
|
|
243
239
|
{
|
|
244
240
|
class: classes.value,
|
|
245
241
|
style: style.value,
|
|
246
|
-
ref: props.container
|
|
242
|
+
ref: props.container ? void 0 : rootRef,
|
|
247
243
|
tabindex: -1
|
|
248
244
|
},
|
|
249
245
|
content
|
|
250
246
|
)
|
|
251
247
|
|
|
252
|
-
if (props.container
|
|
248
|
+
if (props.container) {
|
|
253
249
|
return h(
|
|
254
250
|
'div',
|
|
255
251
|
{
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { computed, getCurrentInstance, h } from 'vue'
|
|
2
2
|
|
|
3
3
|
import useDark, {
|
|
4
4
|
useDarkProps
|
|
@@ -20,10 +20,9 @@ const defaultSizes = {
|
|
|
20
20
|
|
|
21
21
|
function width(val, reverse, $q) {
|
|
22
22
|
return {
|
|
23
|
-
transform:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
: `scale3d(${val},1,1)`
|
|
23
|
+
transform: reverse
|
|
24
|
+
? `translateX(${$q.lang.rtl ? '-' : ''}100%) scale3d(${-val},1,1)`
|
|
25
|
+
: `scale3d(${val},1,1)`
|
|
27
26
|
}
|
|
28
27
|
}
|
|
29
28
|
|
|
@@ -62,9 +61,7 @@ export default createComponent({
|
|
|
62
61
|
const isDark = useDark(props, proxy.$q)
|
|
63
62
|
const sizeStyle = useSize(props, defaultSizes)
|
|
64
63
|
|
|
65
|
-
const motion = computed(
|
|
66
|
-
() => props.indeterminate === true || props.query === true
|
|
67
|
-
)
|
|
64
|
+
const motion = computed(() => props.indeterminate || props.query)
|
|
68
65
|
const widthReverse = computed(() => props.reverse !== props.query)
|
|
69
66
|
const style = computed(() => ({
|
|
70
67
|
...(sizeStyle.value !== null ? sizeStyle.value : {}),
|
|
@@ -75,10 +72,8 @@ export default createComponent({
|
|
|
75
72
|
() =>
|
|
76
73
|
'q-linear-progress' +
|
|
77
74
|
(props.color !== void 0 ? ` text-${props.color}` : '') +
|
|
78
|
-
(props.reverse
|
|
79
|
-
|
|
80
|
-
: '') +
|
|
81
|
-
(props.rounded === true ? ' rounded-borders' : '')
|
|
75
|
+
(props.reverse || props.query ? ' q-linear-progress--reverse' : '') +
|
|
76
|
+
(props.rounded ? ' rounded-borders' : '')
|
|
82
77
|
)
|
|
83
78
|
|
|
84
79
|
const trackStyle = computed(() =>
|
|
@@ -89,35 +84,31 @@ export default createComponent({
|
|
|
89
84
|
)
|
|
90
85
|
)
|
|
91
86
|
const transitionSuffix = computed(
|
|
92
|
-
() => `with${props.instantFeedback
|
|
87
|
+
() => `with${props.instantFeedback ? 'out' : ''}-transition`
|
|
93
88
|
)
|
|
94
89
|
|
|
95
90
|
const trackClass = computed(
|
|
96
91
|
() =>
|
|
97
92
|
'q-linear-progress__track absolute-full' +
|
|
98
93
|
` q-linear-progress__track--${transitionSuffix.value}` +
|
|
99
|
-
` q-linear-progress__track--${isDark.value
|
|
94
|
+
` q-linear-progress__track--${isDark.value ? 'dark' : 'light'}` +
|
|
100
95
|
(props.trackColor !== void 0 ? ` bg-${props.trackColor}` : '')
|
|
101
96
|
)
|
|
102
97
|
|
|
103
98
|
const modelStyle = computed(() =>
|
|
104
|
-
width(
|
|
105
|
-
motion.value === true ? 1 : props.value,
|
|
106
|
-
widthReverse.value,
|
|
107
|
-
proxy.$q
|
|
108
|
-
)
|
|
99
|
+
width(motion.value ? 1 : props.value, widthReverse.value, proxy.$q)
|
|
109
100
|
)
|
|
110
101
|
const modelClass = computed(
|
|
111
102
|
() =>
|
|
112
103
|
'q-linear-progress__model absolute-full' +
|
|
113
104
|
` q-linear-progress__model--${transitionSuffix.value}` +
|
|
114
|
-
` q-linear-progress__model--${motion.value
|
|
105
|
+
` q-linear-progress__model--${motion.value ? 'in' : ''}determinate`
|
|
115
106
|
)
|
|
116
107
|
|
|
117
108
|
const stripeStyle = computed(() => ({ width: `${props.value * 100}%` }))
|
|
118
109
|
const stripeClass = computed(
|
|
119
110
|
() =>
|
|
120
|
-
`q-linear-progress__stripe absolute-${props.reverse
|
|
111
|
+
`q-linear-progress__stripe absolute-${props.reverse ? 'right' : 'left'}` +
|
|
121
112
|
` q-linear-progress__stripe--${transitionSuffix.value}`
|
|
122
113
|
)
|
|
123
114
|
|
|
@@ -134,7 +125,7 @@ export default createComponent({
|
|
|
134
125
|
})
|
|
135
126
|
]
|
|
136
127
|
|
|
137
|
-
if (props.stripe
|
|
128
|
+
if (props.stripe && !motion.value) {
|
|
138
129
|
child.push(
|
|
139
130
|
h('div', {
|
|
140
131
|
class: stripeClass.value,
|
|
@@ -151,7 +142,7 @@ export default createComponent({
|
|
|
151
142
|
role: 'progressbar',
|
|
152
143
|
'aria-valuemin': 0,
|
|
153
144
|
'aria-valuemax': 1,
|
|
154
|
-
'aria-valuenow': props.indeterminate
|
|
145
|
+
'aria-valuenow': props.indeterminate ? void 0 : props.value
|
|
155
146
|
},
|
|
156
147
|
hMergeSlot(slots.default, child)
|
|
157
148
|
)
|