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
2
|
computed,
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
getCurrentInstance,
|
|
4
|
+
h,
|
|
7
5
|
inject,
|
|
8
|
-
|
|
6
|
+
onBeforeUnmount,
|
|
7
|
+
ref,
|
|
8
|
+
watch
|
|
9
9
|
} from 'vue'
|
|
10
10
|
|
|
11
11
|
import QResizeObserver from '../resize-observer/QResizeObserver.js'
|
|
@@ -13,10 +13,16 @@ import QResizeObserver from '../resize-observer/QResizeObserver.js'
|
|
|
13
13
|
import { createComponent } from '../../utils/private.create/create.js'
|
|
14
14
|
import { hUniqueSlot } from '../../utils/private.render/render.js'
|
|
15
15
|
import {
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
emptyRenderFn,
|
|
17
|
+
layoutKey
|
|
18
18
|
} from '../../utils/private.symbols/symbols.js'
|
|
19
19
|
|
|
20
|
+
function updateLocal(prop, val) {
|
|
21
|
+
if (prop.value !== val) {
|
|
22
|
+
prop.value = val
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
20
26
|
export default createComponent({
|
|
21
27
|
name: 'QHeader',
|
|
22
28
|
|
|
@@ -52,60 +58,51 @@ export default createComponent({
|
|
|
52
58
|
return emptyRenderFn
|
|
53
59
|
}
|
|
54
60
|
|
|
55
|
-
const size = ref(parseInt(props.heightHint, 10))
|
|
61
|
+
const size = ref(Number.parseInt(props.heightHint, 10))
|
|
56
62
|
const revealed = ref(true)
|
|
57
63
|
|
|
58
64
|
const fixed = computed(
|
|
59
65
|
() =>
|
|
60
|
-
props.reveal
|
|
61
|
-
$layout.view.value.
|
|
62
|
-
($q.platform.is.ios && $layout.isContainer.value
|
|
66
|
+
props.reveal ||
|
|
67
|
+
$layout.view.value.includes('H') ||
|
|
68
|
+
($q.platform.is.ios && $layout.isContainer.value)
|
|
63
69
|
)
|
|
64
70
|
|
|
65
71
|
const offset = computed(() => {
|
|
66
|
-
if (props.modelValue
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
if (fixed.value === true) {
|
|
70
|
-
return revealed.value === true ? size.value : 0
|
|
71
|
-
}
|
|
72
|
+
if (!props.modelValue) return 0
|
|
73
|
+
if (fixed.value) return revealed.value ? size.value : 0
|
|
72
74
|
|
|
73
75
|
const localOffset = size.value - $layout.scroll.value.position
|
|
74
|
-
return localOffset
|
|
76
|
+
return Math.max(localOffset, 0)
|
|
75
77
|
})
|
|
76
78
|
|
|
77
79
|
const hidden = computed(
|
|
78
|
-
() =>
|
|
79
|
-
props.modelValue !== true ||
|
|
80
|
-
(fixed.value === true && revealed.value !== true)
|
|
80
|
+
() => !props.modelValue || (fixed.value && !revealed.value)
|
|
81
81
|
)
|
|
82
82
|
|
|
83
83
|
const revealOnFocus = computed(
|
|
84
|
-
() =>
|
|
85
|
-
props.modelValue === true &&
|
|
86
|
-
hidden.value === true &&
|
|
87
|
-
props.reveal === true
|
|
84
|
+
() => props.modelValue && hidden.value && props.reveal
|
|
88
85
|
)
|
|
89
86
|
|
|
90
87
|
const classes = computed(
|
|
91
88
|
() =>
|
|
92
89
|
'q-header q-layout__section--marginal ' +
|
|
93
|
-
(fixed.value
|
|
90
|
+
(fixed.value ? 'fixed' : 'absolute') +
|
|
94
91
|
'-top' +
|
|
95
|
-
(props.bordered
|
|
96
|
-
(hidden.value
|
|
97
|
-
(props.modelValue
|
|
92
|
+
(props.bordered ? ' q-header--bordered' : '') +
|
|
93
|
+
(hidden.value ? ' q-header--hidden' : '') +
|
|
94
|
+
(props.modelValue ? '' : ' q-layout--prevent-focus')
|
|
98
95
|
)
|
|
99
96
|
|
|
100
97
|
const style = computed(() => {
|
|
101
98
|
const view = $layout.rows.value.top,
|
|
102
99
|
css = {}
|
|
103
100
|
|
|
104
|
-
if (view[0] === 'l' && $layout.left.space
|
|
105
|
-
css[$q.lang.rtl
|
|
101
|
+
if (view[0] === 'l' && $layout.left.space) {
|
|
102
|
+
css[$q.lang.rtl ? 'right' : 'left'] = `${$layout.left.size}px`
|
|
106
103
|
}
|
|
107
|
-
if (view[2] === 'r' && $layout.right.space
|
|
108
|
-
css[$q.lang.rtl
|
|
104
|
+
if (view[2] === 'r' && $layout.right.space) {
|
|
105
|
+
css[$q.lang.rtl ? 'left' : 'right'] = `${$layout.right.size}px`
|
|
109
106
|
}
|
|
110
107
|
|
|
111
108
|
return css
|
|
@@ -115,22 +112,13 @@ export default createComponent({
|
|
|
115
112
|
$layout.update('header', prop, val)
|
|
116
113
|
}
|
|
117
114
|
|
|
118
|
-
function updateLocal(prop, val) {
|
|
119
|
-
if (prop.value !== val) {
|
|
120
|
-
prop.value = val
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
115
|
function onResize({ height }) {
|
|
125
116
|
updateLocal(size, height)
|
|
126
117
|
updateLayout('size', height)
|
|
127
118
|
}
|
|
128
119
|
|
|
129
120
|
function onFocusin(evt) {
|
|
130
|
-
if (revealOnFocus.value
|
|
131
|
-
updateLocal(revealed, true)
|
|
132
|
-
}
|
|
133
|
-
|
|
121
|
+
if (revealOnFocus.value) updateLocal(revealed, true)
|
|
134
122
|
emit('focusin', evt)
|
|
135
123
|
}
|
|
136
124
|
|
|
@@ -150,7 +138,7 @@ export default createComponent({
|
|
|
150
138
|
watch(
|
|
151
139
|
() => props.reveal,
|
|
152
140
|
val => {
|
|
153
|
-
if (val
|
|
141
|
+
if (!val) updateLocal(revealed, props.modelValue)
|
|
154
142
|
}
|
|
155
143
|
)
|
|
156
144
|
|
|
@@ -160,7 +148,7 @@ export default createComponent({
|
|
|
160
148
|
})
|
|
161
149
|
|
|
162
150
|
watch($layout.scroll, scroll => {
|
|
163
|
-
if (props.reveal
|
|
151
|
+
if (props.reveal) {
|
|
164
152
|
updateLocal(
|
|
165
153
|
revealed,
|
|
166
154
|
scroll.direction === 'up' ||
|
|
@@ -173,7 +161,7 @@ export default createComponent({
|
|
|
173
161
|
const instance = {}
|
|
174
162
|
|
|
175
163
|
$layout.instances.header = instance
|
|
176
|
-
if (props.modelValue
|
|
164
|
+
if (props.modelValue) updateLayout('size', size.value)
|
|
177
165
|
updateLayout('space', props.modelValue)
|
|
178
166
|
updateLayout('offset', offset.value)
|
|
179
167
|
|
|
@@ -189,7 +177,7 @@ export default createComponent({
|
|
|
189
177
|
return () => {
|
|
190
178
|
const child = hUniqueSlot(slots.default, [])
|
|
191
179
|
|
|
192
|
-
if (props.elevated
|
|
180
|
+
if (props.elevated) {
|
|
193
181
|
child.push(
|
|
194
182
|
h('div', {
|
|
195
183
|
class:
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { computed, getCurrentInstance, h } from 'vue'
|
|
2
2
|
|
|
3
3
|
import useSize, {
|
|
4
4
|
useSizeProps
|
|
5
5
|
} from '../../composables/private.use-size/use-size.js'
|
|
6
6
|
|
|
7
7
|
import { createComponent } from '../../utils/private.create/create.js'
|
|
8
|
-
import {
|
|
8
|
+
import { hMergeSlot, hSlot } from '../../utils/private.render/render.js'
|
|
9
9
|
|
|
10
10
|
const defaultViewBox = '0 0 24 24'
|
|
11
11
|
|
|
@@ -74,8 +74,8 @@ export default createComponent({
|
|
|
74
74
|
const classes = computed(
|
|
75
75
|
() =>
|
|
76
76
|
'q-icon' +
|
|
77
|
-
(props.left
|
|
78
|
-
(props.right
|
|
77
|
+
(props.left ? ' on-left' : '') + // TODO Qv3: drop this
|
|
78
|
+
(props.right ? ' on-right' : '') +
|
|
79
79
|
(props.color !== void 0 ? ` text-${props.color}` : '')
|
|
80
80
|
)
|
|
81
81
|
|
|
@@ -104,7 +104,7 @@ export default createComponent({
|
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
-
if (mRE.test(icon)
|
|
107
|
+
if (mRE.test(icon)) {
|
|
108
108
|
const [def, viewBox = defaultViewBox] = icon.split('|')
|
|
109
109
|
|
|
110
110
|
return {
|
|
@@ -117,19 +117,19 @@ export default createComponent({
|
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
-
if (imgRE.test(icon)
|
|
120
|
+
if (imgRE.test(icon)) {
|
|
121
121
|
return {
|
|
122
122
|
img: true,
|
|
123
|
-
src: icon.
|
|
123
|
+
src: icon.slice(4)
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
-
if (svgUseRE.test(icon)
|
|
127
|
+
if (svgUseRE.test(icon)) {
|
|
128
128
|
const [def, viewBox = defaultViewBox] = icon.split('|')
|
|
129
129
|
|
|
130
130
|
return {
|
|
131
131
|
svguse: true,
|
|
132
|
-
src: def.
|
|
132
|
+
src: def.slice(7),
|
|
133
133
|
viewBox
|
|
134
134
|
}
|
|
135
135
|
}
|
|
@@ -139,11 +139,11 @@ export default createComponent({
|
|
|
139
139
|
|
|
140
140
|
if (matches !== null) {
|
|
141
141
|
cls = libMap[matches[1]](icon)
|
|
142
|
-
} else if (faRE.test(icon)
|
|
142
|
+
} else if (faRE.test(icon)) {
|
|
143
143
|
cls = icon
|
|
144
|
-
} else if (ionRE.test(icon)
|
|
145
|
-
cls = `ionicons ion-${$q.platform.is.ios
|
|
146
|
-
} else if (symRE.test(icon)
|
|
144
|
+
} else if (ionRE.test(icon)) {
|
|
145
|
+
cls = `ionicons ion-${$q.platform.is.ios ? 'ios' : 'md'}${icon.slice(3)}`
|
|
146
|
+
} else if (symRE.test(icon)) {
|
|
147
147
|
// "notranslate" class is for Google Translate
|
|
148
148
|
// to avoid tampering with Material Symbols ligature font
|
|
149
149
|
//
|
|
@@ -153,7 +153,7 @@ export default createComponent({
|
|
|
153
153
|
|
|
154
154
|
const symMatches = icon.match(symRE)
|
|
155
155
|
if (symMatches !== null) {
|
|
156
|
-
icon = icon.
|
|
156
|
+
icon = icon.slice(6)
|
|
157
157
|
cls += symMap[symMatches[1]]
|
|
158
158
|
}
|
|
159
159
|
|
|
@@ -168,7 +168,7 @@ export default createComponent({
|
|
|
168
168
|
|
|
169
169
|
const matMatches = icon.match(matRE)
|
|
170
170
|
if (matMatches !== null) {
|
|
171
|
-
icon = icon.
|
|
171
|
+
icon = icon.slice(2)
|
|
172
172
|
cls += matMap[matMatches[1]]
|
|
173
173
|
}
|
|
174
174
|
|
|
@@ -188,11 +188,11 @@ export default createComponent({
|
|
|
188
188
|
'aria-hidden': 'true'
|
|
189
189
|
}
|
|
190
190
|
|
|
191
|
-
if (type.value.none
|
|
191
|
+
if (type.value.none) {
|
|
192
192
|
return h(props.tag, data, hSlot(slots.default))
|
|
193
193
|
}
|
|
194
194
|
|
|
195
|
-
if (type.value.img
|
|
195
|
+
if (type.value.img) {
|
|
196
196
|
return h(
|
|
197
197
|
props.tag,
|
|
198
198
|
data,
|
|
@@ -200,7 +200,7 @@ export default createComponent({
|
|
|
200
200
|
)
|
|
201
201
|
}
|
|
202
202
|
|
|
203
|
-
if (type.value.svg
|
|
203
|
+
if (type.value.svg) {
|
|
204
204
|
return h(
|
|
205
205
|
props.tag,
|
|
206
206
|
data,
|
|
@@ -216,7 +216,7 @@ export default createComponent({
|
|
|
216
216
|
)
|
|
217
217
|
}
|
|
218
218
|
|
|
219
|
-
if (type.value.svguse
|
|
219
|
+
if (type.value.svguse) {
|
|
220
220
|
return h(
|
|
221
221
|
props.tag,
|
|
222
222
|
data,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
ref,
|
|
2
|
+
Transition,
|
|
4
3
|
computed,
|
|
5
|
-
|
|
4
|
+
getCurrentInstance,
|
|
5
|
+
h,
|
|
6
6
|
onMounted,
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
ref,
|
|
8
|
+
watch
|
|
9
9
|
} from 'vue'
|
|
10
10
|
|
|
11
11
|
import QSpinner from '../spinner/QSpinner.js'
|
|
@@ -114,7 +114,7 @@ export default createComponent({
|
|
|
114
114
|
const hasError = ref(false)
|
|
115
115
|
|
|
116
116
|
const classes = computed(
|
|
117
|
-
() => `q-img q-img--${props.noNativeMenu
|
|
117
|
+
() => `q-img q-img--${props.noNativeMenu ? 'no-' : ''}menu`
|
|
118
118
|
)
|
|
119
119
|
|
|
120
120
|
const style = computed(() => ({
|
|
@@ -125,7 +125,7 @@ export default createComponent({
|
|
|
125
125
|
const imgClass = computed(
|
|
126
126
|
() =>
|
|
127
127
|
`q-img__image ${props.imgClass !== void 0 ? props.imgClass + ' ' : ''}` +
|
|
128
|
-
`q-img__image--with${props.noTransition
|
|
128
|
+
`q-img__image--with${props.noTransition ? 'out' : ''}-transition` +
|
|
129
129
|
' q-img__image--'
|
|
130
130
|
)
|
|
131
131
|
|
|
@@ -154,23 +154,23 @@ export default createComponent({
|
|
|
154
154
|
}
|
|
155
155
|
|
|
156
156
|
function onLoad({ target }) {
|
|
157
|
-
if (vmIsDestroyed(vm)
|
|
158
|
-
|
|
157
|
+
if (vmIsDestroyed(vm)) return
|
|
158
|
+
|
|
159
|
+
removeLoadTimeout()
|
|
159
160
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
161
|
+
naturalRatio.value =
|
|
162
|
+
target.naturalHeight === 0
|
|
163
|
+
? 0.5
|
|
164
|
+
: target.naturalWidth / target.naturalHeight
|
|
164
165
|
|
|
165
|
-
|
|
166
|
-
}
|
|
166
|
+
waitForCompleteness(target, 1)
|
|
167
167
|
}
|
|
168
168
|
|
|
169
169
|
function waitForCompleteness(target, count) {
|
|
170
170
|
// protect against running forever
|
|
171
|
-
if (count === 1000 || vmIsDestroyed(vm)
|
|
171
|
+
if (count === 1000 || vmIsDestroyed(vm)) return
|
|
172
172
|
|
|
173
|
-
if (target.complete
|
|
173
|
+
if (target.complete) {
|
|
174
174
|
onReady(target)
|
|
175
175
|
} else {
|
|
176
176
|
registerLoadTimeout(() => {
|
|
@@ -180,7 +180,7 @@ export default createComponent({
|
|
|
180
180
|
}
|
|
181
181
|
|
|
182
182
|
function onReady(target) {
|
|
183
|
-
if (vmIsDestroyed(vm)
|
|
183
|
+
if (vmIsDestroyed(vm)) return
|
|
184
184
|
|
|
185
185
|
position.value = position.value ^ 1
|
|
186
186
|
images[position.value].value = null
|
|
@@ -243,14 +243,14 @@ export default createComponent({
|
|
|
243
243
|
}
|
|
244
244
|
|
|
245
245
|
function getContent() {
|
|
246
|
-
if (isLoading.value
|
|
246
|
+
if (!isLoading.value) {
|
|
247
247
|
return h(
|
|
248
248
|
'div',
|
|
249
249
|
{
|
|
250
250
|
key: 'content',
|
|
251
251
|
class: 'q-img__content absolute-full q-anchor--skip'
|
|
252
252
|
},
|
|
253
|
-
hSlot(slots[hasError.value
|
|
253
|
+
hSlot(slots[hasError.value ? 'error' : 'default'])
|
|
254
254
|
)
|
|
255
255
|
}
|
|
256
256
|
|
|
@@ -262,7 +262,7 @@ export default createComponent({
|
|
|
262
262
|
},
|
|
263
263
|
slots.loading !== void 0
|
|
264
264
|
? slots.loading()
|
|
265
|
-
: props.noSpinner
|
|
265
|
+
: props.noSpinner
|
|
266
266
|
? void 0
|
|
267
267
|
: [
|
|
268
268
|
h(QSpinner, {
|
|
@@ -273,8 +273,8 @@ export default createComponent({
|
|
|
273
273
|
)
|
|
274
274
|
}
|
|
275
275
|
|
|
276
|
-
if (__QUASAR_SSR_SERVER__
|
|
277
|
-
|
|
276
|
+
if (!__QUASAR_SSR_SERVER__) {
|
|
277
|
+
const watchSrc = () => {
|
|
278
278
|
watch(
|
|
279
279
|
() =>
|
|
280
280
|
props.src || props.srcset || props.sizes
|
|
@@ -301,7 +301,7 @@ export default createComponent({
|
|
|
301
301
|
)
|
|
302
302
|
}
|
|
303
303
|
|
|
304
|
-
if (isRuntimeSsrPreHydration.value
|
|
304
|
+
if (isRuntimeSsrPreHydration.value) {
|
|
305
305
|
onMounted(watchSrc)
|
|
306
306
|
} else {
|
|
307
307
|
watchSrc()
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"transformAssetUrls": true,
|
|
13
13
|
"examples": [
|
|
14
14
|
"# (public folder) src=\"img/something.png\"",
|
|
15
|
-
"# (assets folder) src=\"
|
|
15
|
+
"# (assets folder) src=\"~@/assets/my-img.gif\"",
|
|
16
16
|
"# (relative path format) :src=\"require('./my_img.jpg')\"",
|
|
17
17
|
"# (URL) src=\"https://picsum.photos/500/300\""
|
|
18
18
|
],
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"transformAssetUrls": true,
|
|
44
44
|
"examples": [
|
|
45
45
|
"# (public folder) placeholder-src=\"img/some-placeholder.png\"",
|
|
46
|
-
"# (assets folder) placeholder-src=\"
|
|
46
|
+
"# (assets folder) placeholder-src=\"~@/assets/my-placeholder.gif\"",
|
|
47
47
|
"# (relative path format) :placeholder-src=\"require('./placeholder.jpg')\"",
|
|
48
48
|
"# (URL) placeholder-src=\"https://picsum.photos/500/300\""
|
|
49
49
|
],
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"transformAssetUrls": true,
|
|
57
57
|
"examples": [
|
|
58
58
|
"# (public folder) error-src=\"img/some-placeholder.png\"",
|
|
59
|
-
"# (assets folder) error-src=\"
|
|
59
|
+
"# (assets folder) error-src=\"~@/assets/my-placeholder.gif\"",
|
|
60
60
|
"# (relative path format) :error-src=\"require('./placeholder.jpg')\"",
|
|
61
61
|
"# (URL) error-src=\"https://picsum.photos/500/300\""
|
|
62
62
|
],
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
import {
|
|
2
|
-
h,
|
|
3
|
-
ref,
|
|
4
2
|
computed,
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
getCurrentInstance,
|
|
4
|
+
h,
|
|
5
|
+
nextTick,
|
|
7
6
|
onActivated,
|
|
8
|
-
onDeactivated,
|
|
9
7
|
onBeforeUnmount,
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
onDeactivated,
|
|
9
|
+
onMounted,
|
|
10
|
+
ref,
|
|
11
|
+
watch
|
|
12
12
|
} from 'vue'
|
|
13
13
|
|
|
14
14
|
import { createComponent } from '../../utils/private.create/create.js'
|
|
15
15
|
import debounce from '../../utils/debounce/debounce.js'
|
|
16
16
|
import { height } from '../../utils/dom/dom.js'
|
|
17
17
|
import {
|
|
18
|
-
getScrollTarget,
|
|
19
18
|
getScrollHeight,
|
|
19
|
+
getScrollTarget,
|
|
20
20
|
getVerticalScrollPosition,
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
scrollTargetProp,
|
|
22
|
+
setVerticalScrollPosition
|
|
23
23
|
} from '../../utils/scroll/scroll.js'
|
|
24
24
|
import { listenOpts } from '../../utils/event/event.js'
|
|
25
25
|
import { hSlot, hUniqueSlot } from '../../utils/private.render/render.js'
|
|
@@ -64,16 +64,11 @@ export default createComponent({
|
|
|
64
64
|
|
|
65
65
|
const classes = computed(
|
|
66
66
|
() =>
|
|
67
|
-
'q-infinite-scroll__loading' +
|
|
68
|
-
(isFetching.value === true ? '' : ' invisible')
|
|
67
|
+
'q-infinite-scroll__loading' + (isFetching.value ? '' : ' invisible')
|
|
69
68
|
)
|
|
70
69
|
|
|
71
70
|
function immediatePoll() {
|
|
72
|
-
if (
|
|
73
|
-
props.disable === true ||
|
|
74
|
-
isFetching.value === true ||
|
|
75
|
-
isWorking.value === false
|
|
76
|
-
) {
|
|
71
|
+
if (props.disable || isFetching.value || !isWorking.value) {
|
|
77
72
|
return
|
|
78
73
|
}
|
|
79
74
|
|
|
@@ -81,7 +76,7 @@ export default createComponent({
|
|
|
81
76
|
scrollPosition = getVerticalScrollPosition(localScrollTarget),
|
|
82
77
|
containerHeight = height(localScrollTarget)
|
|
83
78
|
|
|
84
|
-
if (props.reverse
|
|
79
|
+
if (!props.reverse) {
|
|
85
80
|
if (
|
|
86
81
|
Math.round(scrollPosition + containerHeight + props.offset) >=
|
|
87
82
|
Math.round(scrollHeight)
|
|
@@ -94,11 +89,7 @@ export default createComponent({
|
|
|
94
89
|
}
|
|
95
90
|
|
|
96
91
|
function trigger() {
|
|
97
|
-
if (
|
|
98
|
-
props.disable === true ||
|
|
99
|
-
isFetching.value === true ||
|
|
100
|
-
isWorking.value === false
|
|
101
|
-
) {
|
|
92
|
+
if (props.disable || isFetching.value || !isWorking.value) {
|
|
102
93
|
return
|
|
103
94
|
}
|
|
104
95
|
|
|
@@ -108,10 +99,10 @@ export default createComponent({
|
|
|
108
99
|
const heightBefore = getScrollHeight(localScrollTarget)
|
|
109
100
|
|
|
110
101
|
emit('load', index, isDone => {
|
|
111
|
-
if (isWorking.value
|
|
102
|
+
if (isWorking.value) {
|
|
112
103
|
isFetching.value = false
|
|
113
104
|
nextTick(() => {
|
|
114
|
-
if (props.reverse
|
|
105
|
+
if (props.reverse) {
|
|
115
106
|
const heightAfter = getScrollHeight(localScrollTarget),
|
|
116
107
|
scrollPosition = getVerticalScrollPosition(localScrollTarget),
|
|
117
108
|
heightDifference = heightAfter - heightBefore
|
|
@@ -124,8 +115,8 @@ export default createComponent({
|
|
|
124
115
|
|
|
125
116
|
if (isDone === true) {
|
|
126
117
|
stop()
|
|
127
|
-
} else if (rootRef.value) {
|
|
128
|
-
|
|
118
|
+
} else if (rootRef.value?.closest('body')) {
|
|
119
|
+
poll()
|
|
129
120
|
}
|
|
130
121
|
})
|
|
131
122
|
}
|
|
@@ -137,7 +128,7 @@ export default createComponent({
|
|
|
137
128
|
}
|
|
138
129
|
|
|
139
130
|
function resume() {
|
|
140
|
-
if (isWorking.value
|
|
131
|
+
if (!isWorking.value) {
|
|
141
132
|
isWorking.value = true
|
|
142
133
|
localScrollTarget.addEventListener('scroll', poll, passive)
|
|
143
134
|
}
|
|
@@ -146,7 +137,7 @@ export default createComponent({
|
|
|
146
137
|
}
|
|
147
138
|
|
|
148
139
|
function stop() {
|
|
149
|
-
if (isWorking.value
|
|
140
|
+
if (isWorking.value) {
|
|
150
141
|
isWorking.value = false
|
|
151
142
|
isFetching.value = false
|
|
152
143
|
localScrollTarget.removeEventListener('scroll', poll, passive)
|
|
@@ -155,16 +146,16 @@ export default createComponent({
|
|
|
155
146
|
}
|
|
156
147
|
|
|
157
148
|
function updateScrollTarget() {
|
|
158
|
-
if (localScrollTarget && isWorking.value
|
|
149
|
+
if (localScrollTarget && isWorking.value) {
|
|
159
150
|
localScrollTarget.removeEventListener('scroll', poll, passive)
|
|
160
151
|
}
|
|
161
152
|
|
|
162
153
|
localScrollTarget = getScrollTarget(rootRef.value, props.scrollTarget)
|
|
163
154
|
|
|
164
|
-
if (isWorking.value
|
|
155
|
+
if (isWorking.value) {
|
|
165
156
|
localScrollTarget.addEventListener('scroll', poll, passive)
|
|
166
157
|
|
|
167
|
-
if (props.reverse
|
|
158
|
+
if (props.reverse) {
|
|
168
159
|
const scrollHeight = getScrollHeight(localScrollTarget),
|
|
169
160
|
containerHeight = height(localScrollTarget)
|
|
170
161
|
|
|
@@ -183,16 +174,16 @@ export default createComponent({
|
|
|
183
174
|
}
|
|
184
175
|
|
|
185
176
|
function setDebounce(val) {
|
|
186
|
-
val = parseInt(val, 10)
|
|
177
|
+
val = Number.parseInt(val, 10)
|
|
187
178
|
|
|
188
179
|
const oldPoll = poll
|
|
189
180
|
|
|
190
181
|
poll =
|
|
191
182
|
val <= 0
|
|
192
183
|
? immediatePoll
|
|
193
|
-
: debounce(immediatePoll, isNaN(val)
|
|
184
|
+
: debounce(immediatePoll, Number.isNaN(val) ? 100 : val)
|
|
194
185
|
|
|
195
|
-
if (localScrollTarget && isWorking.value
|
|
186
|
+
if (localScrollTarget && isWorking.value) {
|
|
196
187
|
if (oldPoll !== void 0) {
|
|
197
188
|
localScrollTarget.removeEventListener('scroll', oldPoll, passive)
|
|
198
189
|
}
|
|
@@ -202,9 +193,9 @@ export default createComponent({
|
|
|
202
193
|
}
|
|
203
194
|
|
|
204
195
|
function updateSvgAnimations(isRetry) {
|
|
205
|
-
if (renderLoadingSlot.value
|
|
196
|
+
if (renderLoadingSlot.value) {
|
|
206
197
|
if (loadingRef.value === null) {
|
|
207
|
-
if (isRetry
|
|
198
|
+
if (!isRetry) {
|
|
208
199
|
nextTick(() => {
|
|
209
200
|
updateSvgAnimations(true)
|
|
210
201
|
})
|
|
@@ -214,16 +205,14 @@ export default createComponent({
|
|
|
214
205
|
|
|
215
206
|
// we need to pause svg animations (if any) when hiding
|
|
216
207
|
// otherwise the browser will keep on recalculating the style
|
|
217
|
-
const action = `${isFetching.value
|
|
218
|
-
|
|
208
|
+
const action = `${isFetching.value ? 'un' : ''}pauseAnimations`
|
|
209
|
+
;[...loadingRef.value.getElementsByTagName('svg')].forEach(el => {
|
|
219
210
|
el[action]()
|
|
220
211
|
})
|
|
221
212
|
}
|
|
222
213
|
}
|
|
223
214
|
|
|
224
|
-
const renderLoadingSlot = computed(
|
|
225
|
-
() => props.disable !== true && isWorking.value === true
|
|
226
|
-
)
|
|
215
|
+
const renderLoadingSlot = computed(() => !props.disable && isWorking.value)
|
|
227
216
|
|
|
228
217
|
watch([isFetching, renderLoadingSlot], () => {
|
|
229
218
|
updateSvgAnimations()
|
|
@@ -232,18 +221,15 @@ export default createComponent({
|
|
|
232
221
|
watch(
|
|
233
222
|
() => props.disable,
|
|
234
223
|
val => {
|
|
235
|
-
if (val
|
|
236
|
-
|
|
237
|
-
} else {
|
|
238
|
-
resume()
|
|
239
|
-
}
|
|
224
|
+
if (val) stop()
|
|
225
|
+
else resume()
|
|
240
226
|
}
|
|
241
227
|
)
|
|
242
228
|
|
|
243
229
|
watch(
|
|
244
230
|
() => props.reverse,
|
|
245
231
|
() => {
|
|
246
|
-
if (isFetching.value
|
|
232
|
+
if (!isFetching.value && isWorking.value) {
|
|
247
233
|
immediatePoll()
|
|
248
234
|
}
|
|
249
235
|
}
|
|
@@ -267,7 +253,7 @@ export default createComponent({
|
|
|
267
253
|
})
|
|
268
254
|
|
|
269
255
|
onBeforeUnmount(() => {
|
|
270
|
-
if (isWorking.value
|
|
256
|
+
if (isWorking.value) {
|
|
271
257
|
localScrollTarget.removeEventListener('scroll', poll, passive)
|
|
272
258
|
}
|
|
273
259
|
})
|
|
@@ -276,7 +262,7 @@ export default createComponent({
|
|
|
276
262
|
setDebounce(props.debounce)
|
|
277
263
|
updateScrollTarget()
|
|
278
264
|
|
|
279
|
-
if (isFetching.value
|
|
265
|
+
if (!isFetching.value) updateSvgAnimations()
|
|
280
266
|
})
|
|
281
267
|
|
|
282
268
|
// expose public methods
|
|
@@ -296,8 +282,8 @@ export default createComponent({
|
|
|
296
282
|
return () => {
|
|
297
283
|
const child = hUniqueSlot(slots.default, [])
|
|
298
284
|
|
|
299
|
-
if (renderLoadingSlot.value
|
|
300
|
-
child[props.reverse
|
|
285
|
+
if (renderLoadingSlot.value) {
|
|
286
|
+
child[props.reverse ? 'unshift' : 'push'](
|
|
301
287
|
h(
|
|
302
288
|
'div',
|
|
303
289
|
{ ref: loadingRef, class: classes.value },
|