quasar 2.19.3 → 2.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +2614 -2602
- 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 +2609 -2597
- 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 -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 +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 +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/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, watch } from 'vue'
|
|
2
2
|
|
|
3
3
|
import QTh from './QTh.js'
|
|
4
4
|
|
|
@@ -17,26 +17,26 @@ import useDark, {
|
|
|
17
17
|
} from '../../composables/private.use-dark/use-dark.js'
|
|
18
18
|
import { commonVirtScrollPropsList } from '../virtual-scroll/use-virtual-scroll.js'
|
|
19
19
|
import useFullscreen, {
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
useFullscreenEmits,
|
|
21
|
+
useFullscreenProps
|
|
22
22
|
} from '../../composables/private.use-fullscreen/use-fullscreen.js'
|
|
23
23
|
|
|
24
24
|
import { useTableSort, useTableSortProps } from './table-sort.js'
|
|
25
25
|
import { useTableFilter, useTableFilterProps } from './table-filter.js'
|
|
26
26
|
import {
|
|
27
|
-
useTablePaginationState,
|
|
28
27
|
useTablePagination,
|
|
29
|
-
useTablePaginationProps
|
|
28
|
+
useTablePaginationProps,
|
|
29
|
+
useTablePaginationState
|
|
30
30
|
} from './table-pagination.js'
|
|
31
31
|
import {
|
|
32
32
|
useTableRowSelection,
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
useTableRowSelectionEmits,
|
|
34
|
+
useTableRowSelectionProps
|
|
35
35
|
} from './table-row-selection.js'
|
|
36
36
|
import {
|
|
37
37
|
useTableRowExpand,
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
useTableRowExpandEmits,
|
|
39
|
+
useTableRowExpandProps
|
|
40
40
|
} from './table-row-expand.js'
|
|
41
41
|
import {
|
|
42
42
|
useTableColumnSelection,
|
|
@@ -44,8 +44,8 @@ import {
|
|
|
44
44
|
} from './table-column-selection.js'
|
|
45
45
|
|
|
46
46
|
import {
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
injectMultipleProps,
|
|
48
|
+
injectProp
|
|
49
49
|
} from '../../utils/private.inject-obj-prop/inject-obj-prop.js'
|
|
50
50
|
import { createComponent } from '../../utils/private.create/create.js'
|
|
51
51
|
|
|
@@ -56,6 +56,11 @@ commonVirtScrollPropsList.forEach(p => {
|
|
|
56
56
|
virtScrollPassthroughProps[p] = {}
|
|
57
57
|
})
|
|
58
58
|
|
|
59
|
+
function getCellValue(col, row) {
|
|
60
|
+
const val = typeof col.field === 'function' ? col.field(row) : row[col.field]
|
|
61
|
+
return col.format !== void 0 ? col.format(val, row) : val
|
|
62
|
+
}
|
|
63
|
+
|
|
59
64
|
export default createComponent({
|
|
60
65
|
name: 'QTable',
|
|
61
66
|
|
|
@@ -170,33 +175,29 @@ export default createComponent({
|
|
|
170
175
|
|
|
171
176
|
const rootRef = ref(null)
|
|
172
177
|
const virtScrollRef = ref(null)
|
|
173
|
-
const hasVirtScroll = computed(
|
|
174
|
-
() => props.grid !== true && props.virtualScroll === true
|
|
175
|
-
)
|
|
178
|
+
const hasVirtScroll = computed(() => !props.grid && props.virtualScroll)
|
|
176
179
|
|
|
177
180
|
const cardDefaultClass = computed(
|
|
178
181
|
() =>
|
|
179
182
|
' q-table__card' +
|
|
180
|
-
(isDark.value
|
|
181
|
-
(props.square
|
|
182
|
-
(props.flat
|
|
183
|
-
(props.bordered
|
|
183
|
+
(isDark.value ? ' q-table__card--dark q-dark' : '') +
|
|
184
|
+
(props.square ? ' q-table--square' : '') +
|
|
185
|
+
(props.flat ? ' q-table--flat' : '') +
|
|
186
|
+
(props.bordered ? ' q-table--bordered' : '')
|
|
184
187
|
)
|
|
185
188
|
|
|
186
189
|
const containerClass = computed(
|
|
187
190
|
() =>
|
|
188
191
|
`q-table__container q-table--${props.separator}-separator column no-wrap` +
|
|
189
|
-
(props.grid
|
|
190
|
-
(isDark.value
|
|
191
|
-
(props.dense
|
|
192
|
-
(props.wrapCells
|
|
193
|
-
(inFullscreen.value
|
|
192
|
+
(props.grid ? ' q-table--grid' : cardDefaultClass.value) +
|
|
193
|
+
(isDark.value ? ' q-table--dark' : '') +
|
|
194
|
+
(props.dense ? ' q-table--dense' : '') +
|
|
195
|
+
(props.wrapCells ? '' : ' q-table--no-wrap') +
|
|
196
|
+
(inFullscreen.value ? ' fullscreen scroll' : '')
|
|
194
197
|
)
|
|
195
198
|
|
|
196
199
|
const rootContainerClass = computed(
|
|
197
|
-
() =>
|
|
198
|
-
containerClass.value +
|
|
199
|
-
(props.loading === true ? ' q-table--loading' : '')
|
|
200
|
+
() => containerClass.value + (props.loading ? ' q-table--loading' : '')
|
|
200
201
|
)
|
|
201
202
|
|
|
202
203
|
watch(
|
|
@@ -207,7 +208,7 @@ export default createComponent({
|
|
|
207
208
|
props.tableHeaderClass +
|
|
208
209
|
containerClass.value,
|
|
209
210
|
() => {
|
|
210
|
-
if (hasVirtScroll.value
|
|
211
|
+
if (hasVirtScroll.value) virtScrollRef.value?.reset()
|
|
211
212
|
}
|
|
212
213
|
)
|
|
213
214
|
|
|
@@ -229,7 +230,7 @@ export default createComponent({
|
|
|
229
230
|
const filteredSortedRows = computed(() => {
|
|
230
231
|
let rows = props.rows
|
|
231
232
|
|
|
232
|
-
if (isServerSide.value
|
|
233
|
+
if (isServerSide.value || rows.length === 0) {
|
|
233
234
|
return rows
|
|
234
235
|
}
|
|
235
236
|
|
|
@@ -246,7 +247,7 @@ export default createComponent({
|
|
|
246
247
|
|
|
247
248
|
if (columnToSort.value !== null) {
|
|
248
249
|
rows = computedSortMethod.value(
|
|
249
|
-
props.rows === rows ? rows
|
|
250
|
+
props.rows === rows ? [...rows] : rows,
|
|
250
251
|
sortBy,
|
|
251
252
|
descending
|
|
252
253
|
)
|
|
@@ -262,9 +263,7 @@ export default createComponent({
|
|
|
262
263
|
const computedRows = computed(() => {
|
|
263
264
|
let rows = filteredSortedRows.value
|
|
264
265
|
|
|
265
|
-
if (isServerSide.value
|
|
266
|
-
return rows
|
|
267
|
-
}
|
|
266
|
+
if (isServerSide.value) return rows
|
|
268
267
|
|
|
269
268
|
const { rowsPerPage } = computedPagination.value
|
|
270
269
|
|
|
@@ -336,24 +335,22 @@ export default createComponent({
|
|
|
336
335
|
})
|
|
337
336
|
|
|
338
337
|
if (acc.virtualScrollItemSize === void 0) {
|
|
339
|
-
acc.virtualScrollItemSize = props.dense
|
|
338
|
+
acc.virtualScrollItemSize = props.dense ? 28 : 48
|
|
340
339
|
}
|
|
341
340
|
|
|
342
341
|
return acc
|
|
343
342
|
})
|
|
344
343
|
|
|
345
344
|
function resetVirtualScroll() {
|
|
346
|
-
if (hasVirtScroll.value
|
|
345
|
+
if (hasVirtScroll.value) virtScrollRef.value.reset()
|
|
347
346
|
}
|
|
348
347
|
|
|
349
348
|
function getBody() {
|
|
350
|
-
if (props.grid
|
|
351
|
-
return getGridBody()
|
|
352
|
-
}
|
|
349
|
+
if (props.grid) return getGridBody()
|
|
353
350
|
|
|
354
|
-
const header = props.hideHeader
|
|
351
|
+
const header = props.hideHeader ? null : getTHead
|
|
355
352
|
|
|
356
|
-
if (hasVirtScroll.value
|
|
353
|
+
if (hasVirtScroll.value) {
|
|
357
354
|
const topRow = slots['top-row']
|
|
358
355
|
const bottomRow = slots['bottom-row']
|
|
359
356
|
|
|
@@ -364,11 +361,8 @@ export default createComponent({
|
|
|
364
361
|
|
|
365
362
|
if (topRow !== void 0) {
|
|
366
363
|
const topContent = h('tbody', topRow({ cols: computedCols.value }))
|
|
367
|
-
|
|
368
364
|
virtSlots.before =
|
|
369
|
-
header === null
|
|
370
|
-
? () => topContent
|
|
371
|
-
: () => [header()].concat(topContent)
|
|
365
|
+
header === null ? () => topContent : () => [header(), topContent]
|
|
372
366
|
} else if (header !== null) {
|
|
373
367
|
virtSlots.before = header
|
|
374
368
|
}
|
|
@@ -416,7 +410,7 @@ export default createComponent({
|
|
|
416
410
|
return
|
|
417
411
|
}
|
|
418
412
|
|
|
419
|
-
toIndex = parseInt(toIndex, 10)
|
|
413
|
+
toIndex = Number.parseInt(toIndex, 10)
|
|
420
414
|
const rowEl = rootRef.value.querySelector(
|
|
421
415
|
`tbody tr:nth-of-type(${toIndex + 1})`
|
|
422
416
|
)
|
|
@@ -499,7 +493,7 @@ export default createComponent({
|
|
|
499
493
|
)
|
|
500
494
|
})
|
|
501
495
|
|
|
502
|
-
if (hasSelectionMode.value
|
|
496
|
+
if (hasSelectionMode.value) {
|
|
503
497
|
const slot = slots['body-selection']
|
|
504
498
|
const content =
|
|
505
499
|
slot !== void 0
|
|
@@ -561,18 +555,18 @@ export default createComponent({
|
|
|
561
555
|
topRow = slots['top-row'],
|
|
562
556
|
bottomRow = slots['bottom-row']
|
|
563
557
|
|
|
564
|
-
|
|
558
|
+
const child = computedRows.value.map((row, pageIndex) =>
|
|
565
559
|
getTBodyTR(row, body, pageIndex)
|
|
566
560
|
)
|
|
567
561
|
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
562
|
+
return h(
|
|
563
|
+
'tbody',
|
|
564
|
+
[
|
|
565
|
+
topRow?.({ cols: computedCols.value }),
|
|
566
|
+
...child,
|
|
567
|
+
bottomRow?.({ cols: computedCols.value })
|
|
568
|
+
].flat()
|
|
569
|
+
)
|
|
576
570
|
}
|
|
577
571
|
|
|
578
572
|
function getBodyScope(data) {
|
|
@@ -607,7 +601,7 @@ export default createComponent({
|
|
|
607
601
|
dense: props.dense
|
|
608
602
|
})
|
|
609
603
|
|
|
610
|
-
if (hasSelectionMode.value
|
|
604
|
+
if (hasSelectionMode.value) {
|
|
611
605
|
injectProp(
|
|
612
606
|
data,
|
|
613
607
|
'selected',
|
|
@@ -628,12 +622,6 @@ export default createComponent({
|
|
|
628
622
|
)
|
|
629
623
|
}
|
|
630
624
|
|
|
631
|
-
function getCellValue(col, row) {
|
|
632
|
-
const val =
|
|
633
|
-
typeof col.field === 'function' ? col.field(row) : row[col.field]
|
|
634
|
-
return col.format !== void 0 ? col.format(val, row) : val
|
|
635
|
-
}
|
|
636
|
-
|
|
637
625
|
const marginalsScope = computed(() => ({
|
|
638
626
|
pagination: computedPagination.value,
|
|
639
627
|
pagesNumber: pagesNumber.value,
|
|
@@ -654,7 +642,7 @@ export default createComponent({
|
|
|
654
642
|
topRight = slots['top-right'],
|
|
655
643
|
topSelection = slots['top-selection'],
|
|
656
644
|
hasSelection =
|
|
657
|
-
hasSelectionMode.value
|
|
645
|
+
hasSelectionMode.value &&
|
|
658
646
|
topSelection !== void 0 &&
|
|
659
647
|
rowsSelectedNumber.value > 0,
|
|
660
648
|
topClass = 'q-table__top relative-position row items-center'
|
|
@@ -665,8 +653,8 @@ export default createComponent({
|
|
|
665
653
|
|
|
666
654
|
let child
|
|
667
655
|
|
|
668
|
-
if (hasSelection
|
|
669
|
-
child = topSelection(marginalsScope.value).
|
|
656
|
+
if (hasSelection) {
|
|
657
|
+
child = [topSelection(marginalsScope.value)].flat()
|
|
670
658
|
} else {
|
|
671
659
|
child = []
|
|
672
660
|
|
|
@@ -705,13 +693,13 @@ export default createComponent({
|
|
|
705
693
|
}
|
|
706
694
|
|
|
707
695
|
const headerSelectedValue = computed(() =>
|
|
708
|
-
someRowsSelected.value
|
|
696
|
+
someRowsSelected.value ? null : allRowsSelected.value
|
|
709
697
|
)
|
|
710
698
|
|
|
711
699
|
function getTHead() {
|
|
712
700
|
const child = getTHeadTR()
|
|
713
701
|
|
|
714
|
-
if (props.loading
|
|
702
|
+
if (props.loading && slots.loading === void 0) {
|
|
715
703
|
child.push(
|
|
716
704
|
h('tr', { class: 'q-table__progress' }, [
|
|
717
705
|
h(
|
|
@@ -734,7 +722,7 @@ export default createComponent({
|
|
|
734
722
|
headerCell = slots['header-cell']
|
|
735
723
|
|
|
736
724
|
if (header !== void 0) {
|
|
737
|
-
return header(getHeaderScope({ header: true })).
|
|
725
|
+
return [header(getHeaderScope({ header: true }))].flat()
|
|
738
726
|
}
|
|
739
727
|
|
|
740
728
|
const child = computedCols.value.map(col => {
|
|
@@ -754,9 +742,9 @@ export default createComponent({
|
|
|
754
742
|
)
|
|
755
743
|
})
|
|
756
744
|
|
|
757
|
-
if (singleSelection.value
|
|
745
|
+
if (singleSelection.value && !props.grid) {
|
|
758
746
|
child.unshift(h('th', { class: 'q-table--col-auto-width' }, ' '))
|
|
759
|
-
} else if (multipleSelection.value
|
|
747
|
+
} else if (multipleSelection.value) {
|
|
760
748
|
const slot = slots['header-selection']
|
|
761
749
|
const content =
|
|
762
750
|
slot !== void 0
|
|
@@ -796,7 +784,7 @@ export default createComponent({
|
|
|
796
784
|
dense: props.dense
|
|
797
785
|
})
|
|
798
786
|
|
|
799
|
-
if (multipleSelection.value
|
|
787
|
+
if (multipleSelection.value) {
|
|
800
788
|
injectProp(
|
|
801
789
|
data,
|
|
802
790
|
'selected',
|
|
@@ -809,9 +797,7 @@ export default createComponent({
|
|
|
809
797
|
}
|
|
810
798
|
|
|
811
799
|
function onMultipleSelectionSet(val) {
|
|
812
|
-
if (someRowsSelected.value
|
|
813
|
-
val = false
|
|
814
|
-
}
|
|
800
|
+
if (someRowsSelected.value) val = false
|
|
815
801
|
|
|
816
802
|
updateSelection(
|
|
817
803
|
computedRows.value.map(getRowKey.value),
|
|
@@ -827,21 +813,20 @@ export default createComponent({
|
|
|
827
813
|
props.iconNextPage || $q.iconSet.table.nextPage,
|
|
828
814
|
props.iconLastPage || $q.iconSet.table.lastPage
|
|
829
815
|
]
|
|
830
|
-
return $q.lang.rtl
|
|
816
|
+
return $q.lang.rtl ? ico.reverse() : ico
|
|
831
817
|
})
|
|
832
818
|
|
|
833
819
|
function getBottomDiv() {
|
|
834
|
-
if (props.hideBottom
|
|
820
|
+
if (props.hideBottom) return
|
|
835
821
|
|
|
836
|
-
if (nothingToDisplay.value
|
|
837
|
-
if (props.hideNoData
|
|
822
|
+
if (nothingToDisplay.value) {
|
|
823
|
+
if (props.hideNoData) return
|
|
838
824
|
|
|
839
|
-
const message =
|
|
840
|
-
props.
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
: props.noDataLabel || $q.lang.table.noData
|
|
825
|
+
const message = props.loading
|
|
826
|
+
? props.loadingLabel || $q.lang.table.loading
|
|
827
|
+
: props.filter
|
|
828
|
+
? props.noResultsLabel || $q.lang.table.noResults
|
|
829
|
+
: props.noDataLabel || $q.lang.table.noData
|
|
845
830
|
|
|
846
831
|
const noData = slots['no-data']
|
|
847
832
|
const children =
|
|
@@ -875,8 +860,8 @@ export default createComponent({
|
|
|
875
860
|
}
|
|
876
861
|
|
|
877
862
|
const child =
|
|
878
|
-
props.hideSelectedBanner
|
|
879
|
-
hasSelectionMode.value
|
|
863
|
+
!props.hideSelectedBanner &&
|
|
864
|
+
hasSelectionMode.value &&
|
|
880
865
|
rowsSelectedNumber.value > 0
|
|
881
866
|
? [
|
|
882
867
|
h('div', { class: 'q-table__control' }, [
|
|
@@ -889,7 +874,7 @@ export default createComponent({
|
|
|
889
874
|
]
|
|
890
875
|
: []
|
|
891
876
|
|
|
892
|
-
if (props.hidePagination
|
|
877
|
+
if (!props.hidePagination) {
|
|
893
878
|
return h(
|
|
894
879
|
'div',
|
|
895
880
|
{
|
|
@@ -920,7 +905,7 @@ export default createComponent({
|
|
|
920
905
|
|
|
921
906
|
child.push(h('div', { class: 'q-table__separator col' }))
|
|
922
907
|
|
|
923
|
-
if (hasOpts
|
|
908
|
+
if (hasOpts) {
|
|
924
909
|
child.push(
|
|
925
910
|
h('div', { class: 'q-table__control' }, [
|
|
926
911
|
h('span', { class: 'q-table__bottom-item' }, [
|
|
@@ -975,7 +960,7 @@ export default createComponent({
|
|
|
975
960
|
flat: true
|
|
976
961
|
}
|
|
977
962
|
|
|
978
|
-
if (props.dense
|
|
963
|
+
if (props.dense) {
|
|
979
964
|
btnProps.size = 'sm'
|
|
980
965
|
}
|
|
981
966
|
|
|
@@ -1033,12 +1018,11 @@ export default createComponent({
|
|
|
1033
1018
|
}
|
|
1034
1019
|
|
|
1035
1020
|
function getGridHeader() {
|
|
1036
|
-
const child =
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
: void 0
|
|
1021
|
+
const child = props.gridHeader
|
|
1022
|
+
? [h('table', { class: 'q-table' }, [getTHead(h)])]
|
|
1023
|
+
: props.loading && slots.loading === void 0
|
|
1024
|
+
? getProgress(h)
|
|
1025
|
+
: void 0
|
|
1042
1026
|
|
|
1043
1027
|
return h('div', { class: 'q-table__middle' }, child)
|
|
1044
1028
|
}
|
|
@@ -1055,7 +1039,7 @@ export default createComponent({
|
|
|
1055
1039
|
])
|
|
1056
1040
|
)
|
|
1057
1041
|
|
|
1058
|
-
if (hasSelectionMode.value
|
|
1042
|
+
if (hasSelectionMode.value) {
|
|
1059
1043
|
const slot = slots['body-selection']
|
|
1060
1044
|
const content =
|
|
1061
1045
|
slot !== void 0
|
|
@@ -1133,9 +1117,7 @@ export default createComponent({
|
|
|
1133
1117
|
{
|
|
1134
1118
|
class:
|
|
1135
1119
|
'q-table__grid-item col-xs-12 col-sm-6 col-md-4 col-lg-3' +
|
|
1136
|
-
(scope.selected
|
|
1137
|
-
? ' q-table__grid-item--selected'
|
|
1138
|
-
: '')
|
|
1120
|
+
(scope.selected ? ' q-table__grid-item--selected' : '')
|
|
1139
1121
|
},
|
|
1140
1122
|
[h('div', data, child)]
|
|
1141
1123
|
)
|
|
@@ -1187,7 +1169,7 @@ export default createComponent({
|
|
|
1187
1169
|
const child = [getTopDiv()]
|
|
1188
1170
|
const data = { ref: rootRef, class: rootContainerClass.value }
|
|
1189
1171
|
|
|
1190
|
-
if (props.grid
|
|
1172
|
+
if (props.grid) {
|
|
1191
1173
|
child.push(getGridHeader())
|
|
1192
1174
|
} else {
|
|
1193
1175
|
Object.assign(data, {
|
|
@@ -1198,7 +1180,7 @@ export default createComponent({
|
|
|
1198
1180
|
|
|
1199
1181
|
child.push(getBody(), getBottomDiv())
|
|
1200
1182
|
|
|
1201
|
-
if (props.loading
|
|
1183
|
+
if (props.loading && slots.loading !== void 0) {
|
|
1202
1184
|
child.push(slots.loading())
|
|
1203
1185
|
}
|
|
1204
1186
|
|
|
@@ -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 { hSlot } from '../../utils/private.render/render.js'
|
|
@@ -17,8 +17,8 @@ export default createComponent({
|
|
|
17
17
|
const classes = computed(
|
|
18
18
|
() =>
|
|
19
19
|
'q-td' +
|
|
20
|
-
(props.autoWidth
|
|
21
|
-
(props.noHover
|
|
20
|
+
(props.autoWidth ? ' q-table--col-auto-width' : '') +
|
|
21
|
+
(props.noHover ? ' q-td--no-hover' : '') +
|
|
22
22
|
' '
|
|
23
23
|
)
|
|
24
24
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getCurrentInstance, h } from 'vue'
|
|
2
2
|
|
|
3
3
|
import QIcon from '../icon/QIcon.js'
|
|
4
4
|
|
|
@@ -30,7 +30,7 @@ export default createComponent({
|
|
|
30
30
|
return h(
|
|
31
31
|
'th',
|
|
32
32
|
{
|
|
33
|
-
class: props.autoWidth
|
|
33
|
+
class: props.autoWidth ? 'q-table--col-auto-width' : '',
|
|
34
34
|
onClick
|
|
35
35
|
},
|
|
36
36
|
hSlot(slots.default)
|
|
@@ -47,7 +47,7 @@ export default createComponent({
|
|
|
47
47
|
col = props.props.col
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
if (col.sortable
|
|
50
|
+
if (col.sortable) {
|
|
51
51
|
const action = col.align === 'right' ? 'unshift' : 'push'
|
|
52
52
|
|
|
53
53
|
child = hUniqueSlot(slots.default, [])
|
|
@@ -63,11 +63,10 @@ export default createComponent({
|
|
|
63
63
|
|
|
64
64
|
const data = {
|
|
65
65
|
class:
|
|
66
|
-
col.__thClass +
|
|
67
|
-
(props.autoWidth === true ? ' q-table--col-auto-width' : ''),
|
|
66
|
+
col.__thClass + (props.autoWidth ? ' q-table--col-auto-width' : ''),
|
|
68
67
|
style: col.headerStyle,
|
|
69
68
|
onClick: evt => {
|
|
70
|
-
if (col.sortable
|
|
69
|
+
if (col.sortable) props.props.sort(col)
|
|
71
70
|
onClick(evt)
|
|
72
71
|
}
|
|
73
72
|
}
|
|
@@ -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'
|
|
@@ -15,10 +15,10 @@ export default createComponent({
|
|
|
15
15
|
const classes = computed(
|
|
16
16
|
() =>
|
|
17
17
|
'q-tr' +
|
|
18
|
-
(props.props === void 0 || props.props.header
|
|
18
|
+
(props.props === void 0 || props.props.header
|
|
19
19
|
? ''
|
|
20
20
|
: ' ' + props.props.__trClass) +
|
|
21
|
-
(props.noHover
|
|
21
|
+
(props.noHover ? ' q-tr--no-hover' : '')
|
|
22
22
|
)
|
|
23
23
|
|
|
24
24
|
return () =>
|
|
@@ -36,9 +36,7 @@ export function useTableColumnSelection(
|
|
|
36
36
|
const cols =
|
|
37
37
|
props.visibleColumns !== void 0
|
|
38
38
|
? colList.value.filter(
|
|
39
|
-
col =>
|
|
40
|
-
col.required === true ||
|
|
41
|
-
props.visibleColumns.includes(col.name) === true
|
|
39
|
+
col => col.required || props.visibleColumns.includes(col.name)
|
|
42
40
|
)
|
|
43
41
|
: colList.value
|
|
44
42
|
|
|
@@ -53,9 +51,9 @@ export function useTableColumnSelection(
|
|
|
53
51
|
__thClass:
|
|
54
52
|
alignClass +
|
|
55
53
|
(col.headerClasses !== void 0 ? ' ' + col.headerClasses : '') +
|
|
56
|
-
(col.sortable
|
|
54
|
+
(col.sortable ? ' sortable' : '') +
|
|
57
55
|
(col.name === sortBy
|
|
58
|
-
? ` sorted ${descending
|
|
56
|
+
? ` sorted ${descending ? 'sort-desc' : ''}`
|
|
59
57
|
: ''),
|
|
60
58
|
|
|
61
59
|
__tdStyle:
|
|
@@ -86,7 +84,7 @@ export function useTableColumnSelection(
|
|
|
86
84
|
const computedColspan = computed(() =>
|
|
87
85
|
props.tableColspan !== void 0
|
|
88
86
|
? props.tableColspan
|
|
89
|
-
: computedCols.value.length + (hasSelectionMode.value
|
|
87
|
+
: computedCols.value.length + (hasSelectionMode.value ? 1 : 0)
|
|
90
88
|
)
|
|
91
89
|
|
|
92
90
|
return {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { computed,
|
|
1
|
+
import { computed, nextTick, watch } from 'vue'
|
|
2
2
|
|
|
3
3
|
export const useTableFilterProps = {
|
|
4
4
|
filter: [String, Object],
|
|
@@ -16,7 +16,7 @@ export function useTableFilter(props, setPagination) {
|
|
|
16
16
|
const val = String(cellValue(col, row))
|
|
17
17
|
const haystack =
|
|
18
18
|
val === 'undefined' || val === 'null' ? '' : val.toLowerCase()
|
|
19
|
-
return haystack.
|
|
19
|
+
return haystack.includes(lowerTerms)
|
|
20
20
|
})
|
|
21
21
|
)
|
|
22
22
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { computed, nextTick, ref, watch } from 'vue'
|
|
2
2
|
|
|
3
3
|
function samePagination(oldPag, newPag) {
|
|
4
4
|
for (const prop in newPag) {
|
|
@@ -32,20 +32,14 @@ export const useTablePaginationProps = {
|
|
|
32
32
|
export function useTablePaginationState(vm, getCellValue) {
|
|
33
33
|
const { props, emit } = vm
|
|
34
34
|
|
|
35
|
-
const innerPagination = ref(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
? props.rowsPerPageOptions[0]
|
|
44
|
-
: 5
|
|
45
|
-
},
|
|
46
|
-
props.pagination
|
|
47
|
-
)
|
|
48
|
-
)
|
|
35
|
+
const innerPagination = ref({
|
|
36
|
+
sortBy: null,
|
|
37
|
+
descending: false,
|
|
38
|
+
page: 1,
|
|
39
|
+
rowsPerPage:
|
|
40
|
+
props.rowsPerPageOptions.length !== 0 ? props.rowsPerPageOptions[0] : 5,
|
|
41
|
+
...props.pagination
|
|
42
|
+
})
|
|
49
43
|
|
|
50
44
|
const computedPagination = computed(() => {
|
|
51
45
|
const pag =
|
|
@@ -83,14 +77,14 @@ export function useTablePaginationState(vm, getCellValue) {
|
|
|
83
77
|
...val
|
|
84
78
|
})
|
|
85
79
|
|
|
86
|
-
if (samePagination(computedPagination.value, newPagination)
|
|
87
|
-
if (isServerSide.value
|
|
80
|
+
if (samePagination(computedPagination.value, newPagination)) {
|
|
81
|
+
if (isServerSide.value && forceServerRequest) {
|
|
88
82
|
sendServerRequest(newPagination)
|
|
89
83
|
}
|
|
90
84
|
return
|
|
91
85
|
}
|
|
92
86
|
|
|
93
|
-
if (isServerSide.value
|
|
87
|
+
if (isServerSide.value) {
|
|
94
88
|
sendServerRequest(newPagination)
|
|
95
89
|
return
|
|
96
90
|
}
|
|
@@ -130,7 +124,7 @@ export function useTablePagination(
|
|
|
130
124
|
} = vm
|
|
131
125
|
|
|
132
126
|
const computedRowsNumber = computed(() =>
|
|
133
|
-
isServerSide.value
|
|
127
|
+
isServerSide.value
|
|
134
128
|
? computedPagination.value.rowsNumber || 0
|
|
135
129
|
: filteredSortedRowsNumber.value
|
|
136
130
|
)
|
|
@@ -169,7 +163,7 @@ export function useTablePagination(
|
|
|
169
163
|
innerPagination.value.rowsPerPage
|
|
170
164
|
)
|
|
171
165
|
? props.rowsPerPageOptions
|
|
172
|
-
: [innerPagination.value.rowsPerPage
|
|
166
|
+
: [innerPagination.value.rowsPerPage, ...props.rowsPerPageOptions]
|
|
173
167
|
|
|
174
168
|
return opts.map(count => ({
|
|
175
169
|
label: count === 0 ? $q.lang.table.allRows : String(count),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ref, watch } from 'vue'
|
|
2
2
|
|
|
3
3
|
function getVal(val) {
|
|
4
|
-
return Array.isArray(val) ? val
|
|
4
|
+
return Array.isArray(val) ? [...val] : []
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
export const useTableRowExpandProps = {
|
|
@@ -33,10 +33,10 @@ export function useTableRowExpand(props, emit) {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
function updateExpanded(key, add) {
|
|
36
|
-
const target = innerExpanded.value
|
|
36
|
+
const target = [...innerExpanded.value]
|
|
37
37
|
const index = target.indexOf(key)
|
|
38
38
|
|
|
39
|
-
if (add
|
|
39
|
+
if (add) {
|
|
40
40
|
if (index === -1) {
|
|
41
41
|
target.push(key)
|
|
42
42
|
setExpanded(target)
|