quasar 2.15.3 → 2.16.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/AppFullscreen.json +1 -1
- package/dist/api/Brand.json +1 -1
- package/dist/api/QBreadcrumbs.json +1 -1
- package/dist/api/QBreadcrumbsEl.json +1 -1
- package/dist/api/QBtnDropdown.json +1 -1
- package/dist/api/QCarousel.json +1 -1
- package/dist/api/QCheckbox.json +1 -1
- package/dist/api/QCircularProgress.json +1 -1
- package/dist/api/QDialog.json +1 -1
- package/dist/api/QDrawer.json +1 -1
- package/dist/api/QEditor.json +1 -1
- package/dist/api/QExpansionItem.json +1 -1
- package/dist/api/QFab.json +1 -1
- package/dist/api/QFabAction.json +1 -1
- package/dist/api/QField.json +1 -1
- package/dist/api/QFile.json +1 -1
- package/dist/api/QImg.json +1 -1
- package/dist/api/QInnerLoading.json +1 -1
- package/dist/api/QInput.json +1 -1
- package/dist/api/QIntersection.json +1 -1
- package/dist/api/QItem.json +1 -1
- package/dist/api/QKnob.json +1 -1
- package/dist/api/QMenu.json +1 -1
- package/dist/api/QPage.json +1 -1
- package/dist/api/QPagination.json +1 -1
- package/dist/api/QParallax.json +1 -1
- package/dist/api/QPopupEdit.json +1 -1
- package/dist/api/QRadio.json +1 -1
- package/dist/api/QRange.json +1 -1
- package/dist/api/QRouteTab.json +1 -1
- package/dist/api/QSelect.json +1 -1
- package/dist/api/QSeparator.json +1 -1
- package/dist/api/QSkeleton.json +1 -1
- package/dist/api/QSlider.json +1 -1
- package/dist/api/QSpinner.json +1 -1
- package/dist/api/QSpinnerAudio.json +1 -1
- package/dist/api/QSpinnerBall.json +1 -1
- package/dist/api/QSpinnerBars.json +1 -1
- package/dist/api/QSpinnerBox.json +1 -1
- package/dist/api/QSpinnerClock.json +1 -1
- package/dist/api/QSpinnerComment.json +1 -1
- package/dist/api/QSpinnerCube.json +1 -1
- package/dist/api/QSpinnerDots.json +1 -1
- package/dist/api/QSpinnerFacebook.json +1 -1
- package/dist/api/QSpinnerGears.json +1 -1
- package/dist/api/QSpinnerGrid.json +1 -1
- package/dist/api/QSpinnerHearts.json +1 -1
- package/dist/api/QSpinnerHourglass.json +1 -1
- package/dist/api/QSpinnerInfinity.json +1 -1
- package/dist/api/QSpinnerIos.json +1 -1
- package/dist/api/QSpinnerOrbit.json +1 -1
- package/dist/api/QSpinnerOval.json +1 -1
- package/dist/api/QSpinnerPie.json +1 -1
- package/dist/api/QSpinnerPuff.json +1 -1
- package/dist/api/QSpinnerRadio.json +1 -1
- package/dist/api/QSpinnerRings.json +1 -1
- package/dist/api/QSpinnerTail.json +1 -1
- package/dist/api/QSplitter.json +1 -1
- package/dist/api/QStepper.json +1 -1
- package/dist/api/QTabPanels.json +1 -1
- package/dist/api/QTable.json +1 -1
- package/dist/api/QTimeline.json +1 -1
- package/dist/api/QToggle.json +1 -1
- package/dist/api/QTooltip.json +1 -1
- package/dist/api/QTree.json +1 -1
- package/dist/api/QVirtualScroll.json +1 -1
- package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
- package/dist/icon-set/eva-icons.umd.prod.js +1 -1
- package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
- package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
- package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
- package/dist/icon-set/fontawesome-v6.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 +1 -1
- package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
- package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
- package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
- 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 +1 -1
- package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
- package/dist/icon-set/svg-fontawesome-v6.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 +1 -1
- package/dist/icon-set/svg-ionicons-v6.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 +1 -1
- package/dist/icon-set/svg-mdi-v7.umd.prod.js +1 -1
- package/dist/icon-set/svg-themify.umd.prod.js +1 -1
- package/dist/icon-set/themify.umd.prod.js +1 -1
- package/dist/lang/ar-TN.umd.prod.js +1 -1
- package/dist/lang/ar.umd.prod.js +1 -1
- package/dist/lang/az-Latn.umd.prod.js +1 -1
- package/dist/lang/bg.umd.prod.js +1 -1
- package/dist/lang/bn.umd.prod.js +1 -1
- package/dist/lang/ca.umd.prod.js +1 -1
- package/dist/lang/cs.umd.prod.js +1 -1
- package/dist/lang/da.umd.prod.js +1 -1
- package/dist/lang/de-CH.umd.prod.js +1 -1
- package/dist/lang/de-DE.umd.prod.js +1 -1
- package/dist/lang/de.umd.prod.js +1 -1
- package/dist/lang/el.umd.prod.js +1 -1
- package/dist/lang/en-GB.umd.prod.js +1 -1
- package/dist/lang/en-US.umd.prod.js +1 -1
- package/dist/lang/eo.umd.prod.js +1 -1
- package/dist/lang/es.umd.prod.js +1 -1
- package/dist/lang/et.umd.prod.js +1 -1
- package/dist/lang/eu.umd.prod.js +1 -1
- package/dist/lang/fa-IR.umd.prod.js +1 -1
- package/dist/lang/fa.umd.prod.js +1 -1
- package/dist/lang/fi.umd.prod.js +1 -1
- package/dist/lang/fr.umd.prod.js +1 -1
- package/dist/lang/gn.umd.prod.js +1 -1
- package/dist/lang/he.umd.prod.js +1 -1
- package/dist/lang/hi.umd.prod.js +1 -1
- package/dist/lang/hr.umd.prod.js +1 -1
- package/dist/lang/hu.umd.prod.js +1 -1
- package/dist/lang/id.umd.prod.js +1 -1
- package/dist/lang/is.umd.prod.js +1 -1
- package/dist/lang/it.umd.prod.js +1 -1
- package/dist/lang/ja.umd.prod.js +1 -1
- package/dist/lang/kk.umd.prod.js +1 -1
- package/dist/lang/km.umd.prod.js +1 -1
- package/dist/lang/ko-KR.umd.prod.js +1 -1
- package/dist/lang/kur-CKB.umd.prod.js +1 -1
- package/dist/lang/lt.umd.prod.js +1 -1
- package/dist/lang/lu.umd.prod.js +1 -1
- package/dist/lang/lv.umd.prod.js +1 -1
- package/dist/lang/mk.umd.prod.js +1 -1
- package/dist/lang/ml.umd.prod.js +1 -1
- package/dist/lang/mm.umd.prod.js +1 -1
- package/dist/lang/ms-MY.umd.prod.js +1 -1
- package/dist/lang/ms.umd.prod.js +1 -1
- package/dist/lang/my.umd.prod.js +1 -1
- package/dist/lang/nb-NO.umd.prod.js +1 -1
- package/dist/lang/nl.umd.prod.js +1 -1
- package/dist/lang/pl.umd.prod.js +1 -1
- package/dist/lang/pt-BR.umd.prod.js +1 -1
- package/dist/lang/pt.umd.prod.js +1 -1
- package/dist/lang/ro.umd.prod.js +1 -1
- package/dist/lang/ru.umd.prod.js +1 -1
- package/dist/lang/sk.umd.prod.js +1 -1
- package/dist/lang/sl.umd.prod.js +1 -1
- package/dist/lang/sm.umd.prod.js +1 -1
- package/dist/lang/sr-CYR.umd.prod.js +1 -1
- package/dist/lang/sr.umd.prod.js +1 -1
- package/dist/lang/sv.umd.prod.js +1 -1
- package/dist/lang/ta.umd.prod.js +1 -1
- package/dist/lang/th.umd.prod.js +1 -1
- package/dist/lang/tl.umd.prod.js +1 -1
- package/dist/lang/tr.umd.prod.js +1 -1
- package/dist/lang/ug.umd.prod.js +1 -1
- package/dist/lang/uk.umd.prod.js +1 -1
- package/dist/lang/uz-Cyrl.umd.prod.js +1 -1
- package/dist/lang/uz-Latn.umd.prod.js +1 -1
- package/dist/lang/vi.umd.prod.js +1 -1
- package/dist/lang/zh-CN.umd.prod.js +1 -1
- package/dist/lang/zh-TW.umd.prod.js +1 -1
- package/dist/{quasar.esm.js → quasar.client.js} +337 -364
- package/dist/quasar.sass +1 -1
- package/dist/quasar.server.prod.cjs +127 -0
- package/dist/quasar.server.prod.js +127 -0
- package/dist/quasar.umd.js +337 -363
- package/dist/quasar.umd.prod.js +8 -8
- package/dist/transforms/api-list.json +1 -1
- package/dist/types/index.d.ts +191 -93
- package/dist/vetur/quasar-attributes.json +1 -1
- package/dist/vetur/quasar-tags.json +1 -1
- package/dist/web-types/web-types.json +1 -1
- package/icon-set/bootstrap-icons.js +3 -8
- package/icon-set/eva-icons.js +3 -8
- package/icon-set/fontawesome-v5-pro.js +1 -6
- package/icon-set/fontawesome-v5.js +1 -6
- package/icon-set/fontawesome-v6-pro.js +1 -6
- package/icon-set/fontawesome-v6.js +1 -6
- package/icon-set/ionicons-v4.js +3 -8
- package/icon-set/line-awesome.js +1 -6
- package/icon-set/material-icons-outlined.js +1 -6
- package/icon-set/material-icons-round.js +1 -6
- package/icon-set/material-icons-sharp.js +1 -6
- package/icon-set/material-icons.js +1 -6
- package/icon-set/material-symbols-outlined.js +1 -6
- package/icon-set/material-symbols-rounded.js +1 -6
- package/icon-set/material-symbols-sharp.js +1 -6
- package/icon-set/mdi-v3.js +1 -6
- package/icon-set/mdi-v4.js +1 -6
- package/icon-set/mdi-v5.js +1 -6
- package/icon-set/mdi-v6.js +1 -6
- package/icon-set/mdi-v7.js +1 -6
- package/icon-set/svg-bootstrap-icons.js +6 -6
- package/icon-set/svg-eva-icons.js +6 -6
- package/icon-set/svg-fontawesome-v5.js +3 -3
- package/icon-set/svg-fontawesome-v6.js +4 -5
- package/icon-set/svg-ionicons-v4.js +6 -6
- package/icon-set/svg-ionicons-v5.js +5 -5
- package/icon-set/svg-ionicons-v6.js +5 -5
- package/icon-set/svg-line-awesome.js +4 -5
- package/icon-set/svg-material-icons-outlined.js +4 -5
- package/icon-set/svg-material-icons-round.js +4 -5
- package/icon-set/svg-material-icons-sharp.js +4 -5
- package/icon-set/svg-material-icons.js +4 -5
- package/icon-set/svg-material-symbols-outlined.js +4 -4
- package/icon-set/svg-material-symbols-rounded.js +4 -4
- package/icon-set/svg-material-symbols-sharp.js +4 -4
- package/icon-set/svg-mdi-v6.js +4 -5
- package/icon-set/svg-mdi-v7.js +4 -4
- package/icon-set/svg-themify.js +6 -6
- package/icon-set/themify.js +3 -8
- package/lang/ar-TN.js +1 -6
- package/lang/ar.js +1 -6
- package/lang/az-Latn.js +1 -6
- package/lang/bg.js +1 -6
- package/lang/bn.js +1 -6
- package/lang/ca.js +1 -6
- package/lang/cs.js +1 -6
- package/lang/da.js +1 -6
- package/lang/de-CH.js +1 -6
- package/lang/de-DE.js +1 -6
- package/lang/de.js +1 -6
- package/lang/el.js +1 -6
- package/lang/en-GB.js +1 -6
- package/lang/en-US.js +1 -6
- package/lang/eo.js +1 -6
- package/lang/es.js +1 -6
- package/lang/et.js +1 -6
- package/lang/eu.js +1 -6
- package/lang/fa-IR.js +1 -6
- package/lang/fa.js +1 -6
- package/lang/fi.js +1 -6
- package/lang/fr.js +1 -6
- package/lang/gn.js +1 -6
- package/lang/he.js +1 -6
- package/lang/hi.js +1 -6
- package/lang/hr.js +1 -6
- package/lang/hu.js +1 -6
- package/lang/id.js +1 -6
- package/lang/is.js +1 -6
- package/lang/it.js +1 -6
- package/lang/ja.js +1 -6
- package/lang/kk.js +1 -6
- package/lang/km.js +1 -6
- package/lang/ko-KR.js +1 -6
- package/lang/kur-CKB.js +1 -6
- package/lang/lt.js +1 -6
- package/lang/lu.js +1 -6
- package/lang/lv.js +1 -6
- package/lang/mk.js +1 -6
- package/lang/ml.js +1 -6
- package/lang/mm.js +1 -6
- package/lang/ms-MY.js +1 -6
- package/lang/ms.js +1 -6
- package/lang/my.js +1 -6
- package/lang/nb-NO.js +1 -6
- package/lang/nl.js +1 -6
- package/lang/pl.js +1 -6
- package/lang/pt-BR.js +1 -6
- package/lang/pt.js +1 -6
- package/lang/ro.js +1 -6
- package/lang/ru.js +1 -6
- package/lang/sk.js +1 -6
- package/lang/sl.js +1 -6
- package/lang/sm.js +1 -6
- package/lang/sr-CYR.js +1 -6
- package/lang/sr.js +1 -6
- package/lang/sv.js +1 -6
- package/lang/ta.js +1 -6
- package/lang/th.js +1 -6
- package/lang/tl.js +1 -6
- package/lang/tr.js +1 -6
- package/lang/ug.js +1 -6
- package/lang/uk.js +1 -6
- package/lang/uz-Cyrl.js +1 -6
- package/lang/uz-Latn.js +1 -6
- package/lang/vi.js +1 -6
- package/lang/zh-CN.js +1 -6
- package/lang/zh-TW.js +1 -6
- package/package.json +20 -9
- package/src/components/avatar/QAvatar.test.js +0 -28
- package/src/components/badge/QBadge.test.js +0 -36
- package/src/components/banner/QBanner.test.js +0 -16
- package/src/components/bar/QBar.test.js +0 -8
- package/src/components/breadcrumbs/QBreadcrumbs.json +2 -1
- package/src/components/breadcrumbs/QBreadcrumbs.test.js +1 -21
- package/src/components/breadcrumbs/QBreadcrumbsEl.test.js +0 -51
- package/src/components/btn/QBtn.json +6 -1
- package/src/components/btn/QBtn.test.js +0 -143
- package/src/components/btn/use-btn.js +8 -4
- package/src/components/btn/use-btn.test.js +9 -1
- package/src/components/btn-dropdown/QBtnDropdown.js +3 -3
- package/src/components/btn-dropdown/QBtnDropdown.json +1 -4
- package/src/components/btn-toggle/QBtnToggle.json +3 -1
- package/src/components/card/QCardActions.json +1 -0
- package/src/components/carousel/QCarousel.js +4 -3
- package/src/components/carousel/QCarousel.json +6 -3
- package/src/components/checkbox/use-checkbox.json +1 -1
- package/src/components/chip/QChip.test.js +0 -108
- package/src/components/circular-progress/QCircularProgress.json +0 -1
- package/src/components/color/QColor.json +1 -0
- package/src/components/date/QDate.js +8 -2
- package/src/components/date/QDate.json +1 -0
- package/src/components/date/use-datetime.js +1 -3
- package/src/components/dialog/QDialog.js +1 -2
- package/src/components/dialog/QDialog.json +11 -1
- package/src/components/dialog/QDialog.test.js +38 -160
- package/src/components/drawer/QDrawer.json +2 -2
- package/src/components/editor/QEditor.js +3 -8
- package/src/components/editor/QEditor.json +9 -2
- package/src/components/expansion-item/QExpansionItem.js +1 -1
- package/src/components/expansion-item/QExpansionItem.json +5 -6
- package/src/components/fab/QFab.js +1 -0
- package/src/components/fab/QFab.json +5 -4
- package/src/components/fab/QFabAction.json +2 -1
- package/src/components/fab/use-fab.json +2 -1
- package/src/components/field/QField.json +0 -39
- package/src/components/file/QFile.js +2 -2
- package/src/components/file/QFile.json +2 -7
- package/src/components/footer/QFooter.json +3 -1
- package/src/components/form/QForm.js +1 -1
- package/src/components/header/QHeader.json +3 -1
- package/src/components/img/QImg.json +1 -1
- package/src/components/infinite-scroll/QInfiniteScroll.js +7 -6
- package/src/components/inner-loading/QInnerLoading.js +1 -1
- package/src/components/inner-loading/QInnerLoading.json +1 -0
- package/src/components/input/QInput.js +2 -1
- package/src/components/input/QInput.json +7 -24
- package/src/components/intersection/QIntersection.json +1 -1
- package/src/components/item/QItem.json +3 -1
- package/src/components/knob/QKnob.json +11 -2
- package/src/components/menu/QMenu.js +2 -4
- package/src/components/menu/QMenu.json +3 -1
- package/src/components/option-group/QOptionGroup.js +1 -0
- package/src/components/page/QPage.json +1 -2
- package/src/components/page-scroller/QPageScroller.js +1 -0
- package/src/components/page-scroller/QPageScroller.json +4 -0
- package/src/components/page-sticky/QPageSticky.js +1 -1
- package/src/components/pagination/QPagination.json +7 -2
- package/src/components/parallax/QParallax.js +2 -4
- package/src/components/parallax/QParallax.json +1 -0
- package/src/components/popup-edit/QPopupEdit.json +2 -1
- package/src/components/pull-to-refresh/QPullToRefresh.js +2 -4
- package/src/components/radio/QRadio.json +2 -2
- package/src/components/range/QRange.json +1 -0
- package/src/components/scroll-observer/QScrollObserver.js +2 -4
- package/src/components/select/QSelect.js +7 -7
- package/src/components/select/QSelect.json +27 -16
- package/src/components/separator/QSeparator.json +0 -1
- package/src/components/skeleton/QSkeleton.json +1 -1
- package/src/components/slider/QSlider.json +1 -0
- package/src/components/slider/use-slider.js +0 -2
- package/src/components/spinner/QSpinner.json +1 -5
- package/src/components/spinner/QSpinner.test.js +79 -0
- package/src/components/spinner/QSpinnerAudio.test.js +59 -0
- package/src/components/spinner/QSpinnerBall.test.js +59 -0
- package/src/components/spinner/QSpinnerBars.test.js +59 -0
- package/src/components/spinner/QSpinnerBox.test.js +59 -0
- package/src/components/spinner/QSpinnerClock.test.js +59 -0
- package/src/components/spinner/QSpinnerComment.test.js +59 -0
- package/src/components/spinner/QSpinnerCube.test.js +59 -0
- package/src/components/spinner/QSpinnerDots.test.js +59 -0
- package/src/components/spinner/QSpinnerFacebook.test.js +59 -0
- package/src/components/spinner/QSpinnerGears.test.js +59 -0
- package/src/components/spinner/QSpinnerGrid.test.js +59 -0
- package/src/components/spinner/QSpinnerHearts.test.js +59 -0
- package/src/components/spinner/QSpinnerHourglass.test.js +59 -0
- package/src/components/spinner/QSpinnerInfinity.test.js +59 -0
- package/src/components/spinner/QSpinnerIos.test.js +59 -0
- package/src/components/spinner/QSpinnerOrbit.test.js +59 -0
- package/src/components/spinner/QSpinnerOval.test.js +59 -0
- package/src/components/spinner/QSpinnerPie.test.js +59 -0
- package/src/components/spinner/QSpinnerPuff.test.js +59 -0
- package/src/components/spinner/QSpinnerRadio.test.js +59 -0
- package/src/components/spinner/QSpinnerRings.test.js +59 -0
- package/src/components/spinner/QSpinnerTail.test.js +59 -0
- package/src/components/spinner/spinner.json +5 -0
- package/src/components/spinner/use-spinner.js +1 -1
- package/src/components/spinner/use-spinner.test.js +59 -0
- package/src/components/splitter/QSplitter.json +3 -3
- package/src/components/stepper/QStep.json +6 -0
- package/src/components/tab-panels/QTabPanels.json +6 -0
- package/src/components/table/QTable.js +6 -8
- package/src/components/table/QTable.json +13 -8
- package/src/components/table/QTh.json +4 -0
- package/src/components/tabs/QRouteTab.json +3 -2
- package/src/components/tabs/QTab.json +1 -65
- package/src/components/tabs/use-tab.json +72 -0
- package/src/components/time/QTime.js +6 -0
- package/src/components/time/QTime.json +2 -0
- package/src/components/timeline/QTimeline.json +2 -1
- package/src/components/toolbar/QToolbar.test.js +41 -0
- package/src/components/toolbar/QToolbarTitle.test.js +41 -0
- package/src/components/tooltip/QTooltip.js +6 -6
- package/src/components/tooltip/QTooltip.json +6 -15
- package/src/components/tree/QTree.js +1 -1
- package/src/components/tree/QTree.json +2 -1
- package/src/components/uploader/xhr-uploader-plugin.js +1 -3
- package/src/components/video/QVideo.test.js +0 -24
- package/src/components/virtual-scroll/QVirtualScroll.js +2 -4
- package/src/components/virtual-scroll/QVirtualScroll.json +0 -1
- package/src/components/virtual-scroll/use-virtual-scroll.js +2 -2
- package/src/components/virtual-scroll/use-virtual-scroll.json +1 -1
- package/src/composables/private.use-anchor/use-anchor-static.json +22 -0
- package/src/composables/private.use-anchor/use-anchor.js +13 -4
- package/src/composables/private.use-anchor/use-anchor.json +2 -19
- package/src/composables/private.use-field/use-field.js +6 -3
- package/src/composables/private.use-field/use-field.json +22 -0
- package/src/composables/private.use-fullscreen/use-fullscreen.json +10 -0
- package/src/composables/private.use-model-toggle/use-model-toggle.json +4 -2
- package/src/composables/private.use-panel/use-panel.json +3 -0
- package/src/composables/private.use-portal/use-portal.js +1 -1
- package/src/composables/private.use-router-link/use-router-link.js +15 -9
- package/src/composables/private.use-router-link/use-router-link.json +2 -0
- package/src/composables/private.use-validate/use-validate.json +1 -0
- package/src/composables/use-id/use-id.test.js +0 -1
- package/src/composables/use-interval/use-interval.test.js +173 -0
- package/src/composables/use-render-cache/use-render-cache.js +2 -2
- package/src/composables/use-render-cache/use-render-cache.test.js +73 -0
- package/src/composables/use-split-attrs/use-split-attrs.test.js +55 -0
- package/src/composables/use-tick/use-tick.test.js +118 -0
- package/src/composables/use-timeout/use-timeout.test.js +169 -0
- package/src/install-quasar.js +1 -1
- package/src/plugins/addressbar/AddressbarColor.test.js +53 -0
- package/src/plugins/app-fullscreen/AppFullscreen.js +1 -1
- package/src/plugins/app-fullscreen/AppFullscreen.json +3 -1
- package/src/plugins/app-fullscreen/AppFullscreen.test.js +206 -0
- package/src/plugins/app-fullscreen/test/mock-fullscreen.js +43 -0
- package/src/plugins/app-visibility/AppVisibility.test.js +45 -0
- package/src/plugins/bottom-sheet/BottomSheet.js +1 -1
- package/src/plugins/bottom-sheet/BottomSheet.json +1 -1
- package/src/plugins/dark/Dark.test.js +158 -0
- package/src/plugins/dialog/Dialog.js +1 -1
- package/src/plugins/dialog/Dialog.json +1 -1
- package/src/plugins/icon-set/IconSet.js +1 -2
- package/src/plugins/icon-set/IconSet.test.js +2 -2
- package/src/plugins/lang/Lang.js +1 -2
- package/src/plugins/lang/Lang.test.js +2 -2
- package/src/plugins/loading/Loading.js +1 -1
- package/src/plugins/loading-bar/LoadingBar.js +1 -1
- package/src/plugins/notify/Notify.js +1 -1
- package/src/plugins/platform/Platform.js +2 -1
- package/src/plugins/private.body/Body.test.js +28 -0
- package/src/plugins/private.history/History.test.js +38 -0
- package/src/plugins/screen/Screen.test.js +453 -0
- package/src/utils/css-var/get-css-var.test.js +12 -0
- package/src/utils/css-var/set-css-var.test.js +18 -0
- package/src/utils/dom/dom.test.js +222 -0
- package/src/utils/{private.global/global-config.test.js → private.config/instance-config.test.js} +2 -2
- package/src/utils/{private.global/global-nodes.js → private.config/nodes.js} +1 -1
- package/src/utils/{private.global/global-nodes.test.js → private.config/nodes.test.js} +3 -3
- package/src/utils/{private.global/global-dialog.js → private.dialog/create-dialog.js} +1 -1
- package/src/utils/private.render/render.test.js +187 -0
- package/src/utils/private.selection/selection.test.js +40 -0
- package/src/utils/private.vm/vm.test.js +175 -0
- package/src/utils/scroll/scroll.js +4 -0
- package/wrappers/{index.mjs → index.cjs} +15 -15
- package/wrappers/index.js +15 -15
- package/dist/quasar.cjs.prod.js +0 -127
- package/dist/quasar.esm.prod.js +0 -127
- package/dist/transforms/import-transformation.js +0 -9
- package/icon-set/bootstrap-icons.mjs +0 -136
- package/icon-set/eva-icons.mjs +0 -186
- package/icon-set/fontawesome-v5-pro.mjs +0 -128
- package/icon-set/fontawesome-v5.mjs +0 -128
- package/icon-set/fontawesome-v6-pro.mjs +0 -128
- package/icon-set/fontawesome-v6.mjs +0 -128
- package/icon-set/ionicons-v4.mjs +0 -180
- package/icon-set/line-awesome.mjs +0 -128
- package/icon-set/material-icons-outlined.mjs +0 -128
- package/icon-set/material-icons-round.mjs +0 -128
- package/icon-set/material-icons-sharp.mjs +0 -128
- package/icon-set/material-icons.mjs +0 -128
- package/icon-set/material-symbols-outlined.mjs +0 -128
- package/icon-set/material-symbols-rounded.mjs +0 -128
- package/icon-set/material-symbols-sharp.mjs +0 -128
- package/icon-set/mdi-v3.mjs +0 -141
- package/icon-set/mdi-v4.mjs +0 -141
- package/icon-set/mdi-v5.mjs +0 -141
- package/icon-set/mdi-v6.mjs +0 -141
- package/icon-set/mdi-v7.mjs +0 -141
- package/icon-set/svg-bootstrap-icons.mjs +0 -210
- package/icon-set/svg-eva-icons.mjs +0 -233
- package/icon-set/svg-fontawesome-v5.mjs +0 -197
- package/icon-set/svg-fontawesome-v6.mjs +0 -198
- package/icon-set/svg-ionicons-v4.mjs +0 -234
- package/icon-set/svg-ionicons-v5.mjs +0 -225
- package/icon-set/svg-ionicons-v6.mjs +0 -224
- package/icon-set/svg-line-awesome.mjs +0 -198
- package/icon-set/svg-material-icons-outlined.mjs +0 -203
- package/icon-set/svg-material-icons-round.mjs +0 -203
- package/icon-set/svg-material-icons-sharp.mjs +0 -203
- package/icon-set/svg-material-icons.mjs +0 -203
- package/icon-set/svg-material-symbols-outlined.mjs +0 -201
- package/icon-set/svg-material-symbols-rounded.mjs +0 -201
- package/icon-set/svg-material-symbols-sharp.mjs +0 -201
- package/icon-set/svg-mdi-v6.mjs +0 -225
- package/icon-set/svg-mdi-v7.mjs +0 -224
- package/icon-set/svg-themify.mjs +0 -231
- package/icon-set/themify.mjs +0 -169
- package/lang/ar-TN.mjs +0 -98
- package/lang/ar.mjs +0 -98
- package/lang/az-Latn.mjs +0 -93
- package/lang/bg.mjs +0 -93
- package/lang/bn.mjs +0 -93
- package/lang/ca.mjs +0 -93
- package/lang/cs.mjs +0 -104
- package/lang/da.mjs +0 -93
- package/lang/de-CH.mjs +0 -93
- package/lang/de-DE.mjs +0 -93
- package/lang/de.mjs +0 -93
- package/lang/el.mjs +0 -93
- package/lang/en-GB.mjs +0 -93
- package/lang/en-US.mjs +0 -93
- package/lang/eo.mjs +0 -93
- package/lang/es.mjs +0 -93
- package/lang/et.mjs +0 -93
- package/lang/eu.mjs +0 -93
- package/lang/fa-IR.mjs +0 -94
- package/lang/fa.mjs +0 -94
- package/lang/fi.mjs +0 -94
- package/lang/fr.mjs +0 -96
- package/lang/gn.mjs +0 -93
- package/lang/he.mjs +0 -94
- package/lang/hi.mjs +0 -93
- package/lang/hr.mjs +0 -93
- package/lang/hu.mjs +0 -93
- package/lang/id.mjs +0 -93
- package/lang/is.mjs +0 -93
- package/lang/it.mjs +0 -93
- package/lang/ja.mjs +0 -92
- package/lang/kk.mjs +0 -97
- package/lang/km.mjs +0 -93
- package/lang/ko-KR.mjs +0 -93
- package/lang/kur-CKB.mjs +0 -103
- package/lang/lt.mjs +0 -105
- package/lang/lu.mjs +0 -93
- package/lang/lv.mjs +0 -93
- package/lang/mk.mjs +0 -93
- package/lang/ml.mjs +0 -97
- package/lang/mm.mjs +0 -94
- package/lang/ms-MY.mjs +0 -96
- package/lang/ms.mjs +0 -93
- package/lang/my.mjs +0 -92
- package/lang/nb-NO.mjs +0 -94
- package/lang/nl.mjs +0 -93
- package/lang/pl.mjs +0 -93
- package/lang/pt-BR.mjs +0 -93
- package/lang/pt.mjs +0 -93
- package/lang/ro.mjs +0 -93
- package/lang/ru.mjs +0 -97
- package/lang/sk.mjs +0 -93
- package/lang/sl.mjs +0 -93
- package/lang/sm.mjs +0 -93
- package/lang/sr-CYR.mjs +0 -93
- package/lang/sr.mjs +0 -93
- package/lang/sv.mjs +0 -93
- package/lang/ta.mjs +0 -93
- package/lang/th.mjs +0 -93
- package/lang/tl.mjs +0 -93
- package/lang/tr.mjs +0 -89
- package/lang/ug.mjs +0 -93
- package/lang/uk.mjs +0 -97
- package/lang/uz-Cyrl.mjs +0 -95
- package/lang/uz-Latn.mjs +0 -99
- package/lang/vi.mjs +0 -93
- package/lang/zh-CN.mjs +0 -92
- package/lang/zh-TW.mjs +0 -92
- /package/src/utils/{private.global/global-config.js → private.config/instance-config.js} +0 -0
- /package/src/utils/{private.global/global-dialog.json → private.dialog/create-dialog.json} +0 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { mount, flushPromises } from '@vue/test-utils'
|
|
2
|
+
import { describe, test, expect } from 'vitest'
|
|
3
|
+
|
|
4
|
+
import QSpinnerTail from './QSpinnerTail.js'
|
|
5
|
+
|
|
6
|
+
describe('[QSpinnerTail API]', () => {
|
|
7
|
+
describe('[Props]', () => {
|
|
8
|
+
describe('[(prop)size]', () => {
|
|
9
|
+
test.each([
|
|
10
|
+
[ 'String', '100px' ],
|
|
11
|
+
[ 'Number', 100 ]
|
|
12
|
+
])('type %s has effect', async (_, propVal) => {
|
|
13
|
+
const expectedValue = '' + propVal
|
|
14
|
+
const wrapper = mount(QSpinnerTail)
|
|
15
|
+
|
|
16
|
+
const target = wrapper.get('.q-spinner')
|
|
17
|
+
|
|
18
|
+
expect(
|
|
19
|
+
target.attributes('width')
|
|
20
|
+
).not.toBe(expectedValue)
|
|
21
|
+
|
|
22
|
+
expect(
|
|
23
|
+
target.attributes('height')
|
|
24
|
+
).not.toBe(expectedValue)
|
|
25
|
+
|
|
26
|
+
await wrapper.setProps({ size: propVal })
|
|
27
|
+
await flushPromises()
|
|
28
|
+
|
|
29
|
+
expect(
|
|
30
|
+
target.attributes('width')
|
|
31
|
+
).toBe(expectedValue)
|
|
32
|
+
|
|
33
|
+
expect(
|
|
34
|
+
target.attributes('height')
|
|
35
|
+
).toBe(expectedValue)
|
|
36
|
+
})
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
describe('[(prop)color]', () => {
|
|
40
|
+
test('type String has effect', async () => {
|
|
41
|
+
const propVal = 'red'
|
|
42
|
+
const wrapper = mount(QSpinnerTail)
|
|
43
|
+
|
|
44
|
+
const target = wrapper.get('.q-spinner')
|
|
45
|
+
|
|
46
|
+
expect(
|
|
47
|
+
target.classes()
|
|
48
|
+
).not.toContain('text-red')
|
|
49
|
+
|
|
50
|
+
await wrapper.setProps({ color: propVal })
|
|
51
|
+
await flushPromises()
|
|
52
|
+
|
|
53
|
+
expect(
|
|
54
|
+
target.classes()
|
|
55
|
+
).toContain('text-red')
|
|
56
|
+
})
|
|
57
|
+
})
|
|
58
|
+
})
|
|
59
|
+
})
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { describe, test, expect } from 'vitest'
|
|
2
|
+
|
|
3
|
+
import useSpinner, { useSpinnerProps } from './use-spinner.js'
|
|
4
|
+
import { useSizeDefaults } from 'quasar/src/composables/private.use-size/use-size.js'
|
|
5
|
+
|
|
6
|
+
describe('[useSpinner API]', () => {
|
|
7
|
+
describe('[Variables]', () => {
|
|
8
|
+
describe('[(variable)useSpinnerProps]', () => {
|
|
9
|
+
test('is defined correctly', () => {
|
|
10
|
+
expect(useSpinnerProps).toBeTypeOf('object')
|
|
11
|
+
expect(Object.keys(useSpinnerProps)).not.toHaveLength(0)
|
|
12
|
+
})
|
|
13
|
+
})
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
describe('[Functions]', () => {
|
|
17
|
+
describe('[(function)default]', () => {
|
|
18
|
+
test('has correct return value when missing props', () => {
|
|
19
|
+
const result = useSpinner({})
|
|
20
|
+
expect(result).toStrictEqual({
|
|
21
|
+
cSize: expect.$ref(void 0),
|
|
22
|
+
classes: expect.$ref('q-spinner')
|
|
23
|
+
})
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
test('has correct return value when props.size has unit', () => {
|
|
27
|
+
const result = useSpinner({ size: '2em' })
|
|
28
|
+
expect(result).toStrictEqual({
|
|
29
|
+
cSize: expect.$ref('2em'),
|
|
30
|
+
classes: expect.$ref('q-spinner')
|
|
31
|
+
})
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
test('has correct return value when props.size is xl', () => {
|
|
35
|
+
const result = useSpinner({ size: 'xl' })
|
|
36
|
+
expect(result).toStrictEqual({
|
|
37
|
+
cSize: expect.$ref(`${ useSizeDefaults.xl }px`),
|
|
38
|
+
classes: expect.$ref('q-spinner')
|
|
39
|
+
})
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
test('has correct return value when props.color is defined', () => {
|
|
43
|
+
const result = useSpinner({ color: 'red' })
|
|
44
|
+
expect(result).toStrictEqual({
|
|
45
|
+
cSize: expect.$ref(void 0),
|
|
46
|
+
classes: expect.$ref('q-spinner text-red')
|
|
47
|
+
})
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
test('has correct return value when props.size & props.color are defined', () => {
|
|
51
|
+
const result = useSpinner({ size: '500em', color: 'bogus-color' })
|
|
52
|
+
expect(result).toStrictEqual({
|
|
53
|
+
cSize: expect.$ref('500em'),
|
|
54
|
+
classes: expect.$ref('q-spinner text-bogus-color')
|
|
55
|
+
})
|
|
56
|
+
})
|
|
57
|
+
})
|
|
58
|
+
})
|
|
59
|
+
})
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"type": "Array",
|
|
42
42
|
"desc": "An array of two values representing the minimum and maximum split size of the two panels; When 'px' unit is set then you can use Infinity as the second value to make it unbound on the other side; Default value: for '%' unit it is [10, 90], while for 'px' unit it is [50, Infinity]",
|
|
43
43
|
"default": "# [10, 90]/[50, Infinity]",
|
|
44
|
+
"__runtimeDefault": true,
|
|
44
45
|
"examples": [ "[ 30, 70 ]", "[ 0, Infinity ]" ],
|
|
45
46
|
"category": "content|model"
|
|
46
47
|
},
|
|
@@ -94,9 +95,8 @@
|
|
|
94
95
|
},
|
|
95
96
|
|
|
96
97
|
"dark": {
|
|
97
|
-
"
|
|
98
|
-
"desc": "Applies a default lighter color on the separator; To be used when background is darker; Avoid using when you are overriding through separator-class or separator-style props"
|
|
99
|
-
"category": "style"
|
|
98
|
+
"extends": "dark",
|
|
99
|
+
"desc": "Applies a default lighter color on the separator; To be used when background is darker; Avoid using when you are overriding through separator-class or separator-style props"
|
|
100
100
|
}
|
|
101
101
|
},
|
|
102
102
|
|
|
@@ -94,5 +94,11 @@
|
|
|
94
94
|
"default": {
|
|
95
95
|
"desc": "The content of the step; Can also contain a QStepperNavigation if you want to handle step navigation and don't have a global navigation in place"
|
|
96
96
|
}
|
|
97
|
+
},
|
|
98
|
+
|
|
99
|
+
"events": {
|
|
100
|
+
"scroll": {
|
|
101
|
+
"internal": true
|
|
102
|
+
}
|
|
97
103
|
}
|
|
98
104
|
}
|
|
@@ -13,7 +13,7 @@ import QBtn from '../btn/QBtn.js'
|
|
|
13
13
|
import getTableMiddle from './get-table-middle.js'
|
|
14
14
|
|
|
15
15
|
import useDark, { useDarkProps } from '../../composables/private.use-dark/use-dark.js'
|
|
16
|
-
import {
|
|
16
|
+
import { commonVirtScrollPropsList } from '../virtual-scroll/use-virtual-scroll.js'
|
|
17
17
|
import useFullscreen, { useFullscreenProps, useFullscreenEmits } from '../../composables/private.use-fullscreen/use-fullscreen.js'
|
|
18
18
|
|
|
19
19
|
import { useTableSort, useTableSortProps } from './table-sort.js'
|
|
@@ -28,8 +28,8 @@ import { createComponent } from '../../utils/private.create/create.js'
|
|
|
28
28
|
|
|
29
29
|
const bottomClass = 'q-table__bottom row items-center'
|
|
30
30
|
|
|
31
|
-
const
|
|
32
|
-
|
|
31
|
+
const virtScrollPassthroughProps = {}
|
|
32
|
+
commonVirtScrollPropsList.forEach(p => { virtScrollPassthroughProps[ p ] = {} })
|
|
33
33
|
|
|
34
34
|
export default createComponent({
|
|
35
35
|
name: 'QTable',
|
|
@@ -71,10 +71,8 @@ export default createComponent({
|
|
|
71
71
|
wrapCells: Boolean,
|
|
72
72
|
|
|
73
73
|
virtualScroll: Boolean,
|
|
74
|
-
virtualScrollTarget: {
|
|
75
|
-
|
|
76
|
-
},
|
|
77
|
-
...commonVirtPropsObj,
|
|
74
|
+
virtualScrollTarget: {},
|
|
75
|
+
...virtScrollPassthroughProps,
|
|
78
76
|
|
|
79
77
|
noDataLabel: String,
|
|
80
78
|
noResultsLabel: String,
|
|
@@ -266,7 +264,7 @@ export default createComponent({
|
|
|
266
264
|
const virtProps = computed(() => {
|
|
267
265
|
const acc = {}
|
|
268
266
|
|
|
269
|
-
|
|
267
|
+
commonVirtScrollPropsList
|
|
270
268
|
.forEach(p => { acc[ p ] = props[ p ] })
|
|
271
269
|
|
|
272
270
|
if (acc.virtualScrollItemSize === void 0) {
|
|
@@ -41,13 +41,15 @@
|
|
|
41
41
|
},
|
|
42
42
|
|
|
43
43
|
"virtual-scroll-target": {
|
|
44
|
-
"extends": "scroll-target"
|
|
44
|
+
"extends": "scroll-target",
|
|
45
|
+
"passthrough": "child"
|
|
45
46
|
},
|
|
46
47
|
|
|
47
48
|
"virtual-scroll-slice-size": {
|
|
48
|
-
"type": [ "Number", "String" ],
|
|
49
|
+
"type": [ "Number", "String", "null" ],
|
|
49
50
|
"desc": "Minimum number of rows to render in the virtual list",
|
|
50
51
|
"default": "30",
|
|
52
|
+
"passthrough": "child",
|
|
51
53
|
"category": "virtual-scroll"
|
|
52
54
|
},
|
|
53
55
|
|
|
@@ -55,6 +57,7 @@
|
|
|
55
57
|
"type": [ "Number", "String" ],
|
|
56
58
|
"desc": "Ratio of number of rows in visible zone to render before it",
|
|
57
59
|
"default": "1",
|
|
60
|
+
"passthrough": "child",
|
|
58
61
|
"category": "virtual-scroll"
|
|
59
62
|
},
|
|
60
63
|
|
|
@@ -62,6 +65,7 @@
|
|
|
62
65
|
"type": [ "Number", "String" ],
|
|
63
66
|
"desc": "Ratio of number of rows in visible zone to render after it",
|
|
64
67
|
"default": "1",
|
|
68
|
+
"passthrough": "child",
|
|
65
69
|
"category": "virtual-scroll"
|
|
66
70
|
},
|
|
67
71
|
|
|
@@ -69,6 +73,7 @@
|
|
|
69
73
|
"type": [ "Number", "String" ],
|
|
70
74
|
"desc": "Default size in pixels of a row; This value is used for rendering the initial table; Try to use a value close to the minimum size of a row; Default value: 48 (24 if dense)",
|
|
71
75
|
"default": "# 48/24",
|
|
76
|
+
"passthrough": "child",
|
|
72
77
|
"category": "virtual-scroll"
|
|
73
78
|
},
|
|
74
79
|
|
|
@@ -76,6 +81,7 @@
|
|
|
76
81
|
"type": [ "Number", "String" ],
|
|
77
82
|
"desc": "Size in pixels of the sticky header (if using one); A correct value will improve scroll precision; Will be also used for non-virtual-scroll tables for fixing top alignment when using scrollTo method",
|
|
78
83
|
"default": "0",
|
|
84
|
+
"passthrough": "child",
|
|
79
85
|
"category": "virtual-scroll|behavior"
|
|
80
86
|
},
|
|
81
87
|
|
|
@@ -83,13 +89,15 @@
|
|
|
83
89
|
"type": [ "Number", "String" ],
|
|
84
90
|
"desc": "Size in pixels of the sticky footer part (if using one); A correct value will improve scroll precision",
|
|
85
91
|
"default": "0",
|
|
92
|
+
"passthrough": "child",
|
|
86
93
|
"category": "virtual-scroll"
|
|
87
94
|
},
|
|
88
95
|
|
|
89
96
|
"table-colspan": {
|
|
90
97
|
"type": [ "Number", "String" ],
|
|
91
98
|
"desc": "The number of columns in the table (you need this if you use table-layout: fixed)",
|
|
92
|
-
"category": "virtual-scroll|content"
|
|
99
|
+
"category": "virtual-scroll|content",
|
|
100
|
+
"passthrough": "child"
|
|
93
101
|
},
|
|
94
102
|
|
|
95
103
|
"color": {
|
|
@@ -257,7 +265,7 @@
|
|
|
257
265
|
"desc": "Comparison result of term 'a' with term 'b'. Less than 0 when 'a' should come first; greater than 0 if 'b' should come first; equal to 0 if their position must not be changed with respect to each other",
|
|
258
266
|
"examples": [ "-1", "0", "1" ]
|
|
259
267
|
},
|
|
260
|
-
"addedIn": "v2.13
|
|
268
|
+
"addedIn": "v2.13"
|
|
261
269
|
},
|
|
262
270
|
"sortOrder": {
|
|
263
271
|
"type": "String",
|
|
@@ -661,7 +669,6 @@
|
|
|
661
669
|
"type": "Array",
|
|
662
670
|
"desc": "Filtered rows"
|
|
663
671
|
},
|
|
664
|
-
"default": "# see source code",
|
|
665
672
|
"examples": [ "# see source code" ],
|
|
666
673
|
"category": "filter"
|
|
667
674
|
},
|
|
@@ -703,7 +710,7 @@
|
|
|
703
710
|
"rows-per-page-options": {
|
|
704
711
|
"type": "Array",
|
|
705
712
|
"desc": "Options for user to pick (Numbers); Number 0 means 'Show all rows in one page'",
|
|
706
|
-
"default": "[
|
|
713
|
+
"default": "[ 5, 7, 10, 15, 20, 25, 50, 0 ]",
|
|
707
714
|
"examples": [ "[ 10, 20 ]" ],
|
|
708
715
|
"category": "pagination"
|
|
709
716
|
},
|
|
@@ -728,7 +735,6 @@
|
|
|
728
735
|
"expanded": {
|
|
729
736
|
"type": "Array",
|
|
730
737
|
"desc": "Keeps the array with expanded rows keys",
|
|
731
|
-
"default": "[]",
|
|
732
738
|
"syncable": true,
|
|
733
739
|
"examples": [ "# v-model:expanded=\"expanded\"" ],
|
|
734
740
|
"category": "expansion"
|
|
@@ -756,7 +762,6 @@
|
|
|
756
762
|
"type": "Array",
|
|
757
763
|
"desc": "Sorted rows"
|
|
758
764
|
},
|
|
759
|
-
"default": "# see source code",
|
|
760
765
|
"examples": [ "# see source code" ],
|
|
761
766
|
"category": "sorting"
|
|
762
767
|
}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
|
+
"mixins": [ "components/tabs/use-tab", "composables/private.use-router-link/use-router-link" ],
|
|
3
|
+
|
|
2
4
|
"meta": {
|
|
3
5
|
"docsUrl": "https://v2.quasar.dev/vue-components/tabs"
|
|
4
6
|
},
|
|
5
7
|
|
|
6
|
-
"mixins": [ "components/tabs/QTab", "composables/private.use-router-link/use-router-link" ],
|
|
7
|
-
|
|
8
8
|
"events": {
|
|
9
9
|
"click": {
|
|
10
10
|
"desc": "Emitted when the component is clicked",
|
|
11
|
+
"internal": false,
|
|
11
12
|
"params": {
|
|
12
13
|
"evt": {
|
|
13
14
|
"extends": "evt",
|
|
@@ -3,69 +3,5 @@
|
|
|
3
3
|
"docsUrl": "https://v2.quasar.dev/vue-components/tabs"
|
|
4
4
|
},
|
|
5
5
|
|
|
6
|
-
"
|
|
7
|
-
"icon": {
|
|
8
|
-
"extends": "icon"
|
|
9
|
-
},
|
|
10
|
-
|
|
11
|
-
"label": {
|
|
12
|
-
"type": [ "Number", "String" ],
|
|
13
|
-
"desc": "A number or string to label the tab",
|
|
14
|
-
"examples": [ "'Home'" ],
|
|
15
|
-
"category": "content"
|
|
16
|
-
},
|
|
17
|
-
|
|
18
|
-
"alert": {
|
|
19
|
-
"type": [ "Boolean", "String" ],
|
|
20
|
-
"desc": "Adds an alert symbol to the tab, notifying the user there are some updates; If its value is not a Boolean, then you can specify a color",
|
|
21
|
-
"examples": [ "'purple'" ],
|
|
22
|
-
"category": "content"
|
|
23
|
-
},
|
|
24
|
-
|
|
25
|
-
"alert-icon": {
|
|
26
|
-
"type": "String",
|
|
27
|
-
"desc": "Adds a floating icon to the tab, notifying the user there are some updates; It's displayed only if 'alert' is set; Can use the color specified by 'alert' prop",
|
|
28
|
-
"examples": [ "'alarm_on'" ],
|
|
29
|
-
"category": "content"
|
|
30
|
-
},
|
|
31
|
-
|
|
32
|
-
"name": {
|
|
33
|
-
"type": [ "Number", "String" ],
|
|
34
|
-
"desc": "Panel name",
|
|
35
|
-
"default": "# a random UUID",
|
|
36
|
-
"examples": [ "'home'", "1" ],
|
|
37
|
-
"category": "general"
|
|
38
|
-
},
|
|
39
|
-
|
|
40
|
-
"no-caps": {
|
|
41
|
-
"type": "Boolean",
|
|
42
|
-
"desc": "Turns off capitalizing all letters within the tab (which is the default)",
|
|
43
|
-
"category": "content"
|
|
44
|
-
},
|
|
45
|
-
|
|
46
|
-
"content-class": {
|
|
47
|
-
"type": "String",
|
|
48
|
-
"desc": "Class definitions to be attributed to the content wrapper",
|
|
49
|
-
"examples": [ "'my-special-class'" ],
|
|
50
|
-
"category": "style"
|
|
51
|
-
},
|
|
52
|
-
|
|
53
|
-
"ripple": {
|
|
54
|
-
"extends": "ripple"
|
|
55
|
-
},
|
|
56
|
-
|
|
57
|
-
"tabindex": {
|
|
58
|
-
"extends": "tabindex"
|
|
59
|
-
},
|
|
60
|
-
|
|
61
|
-
"disable": {
|
|
62
|
-
"extends": "disable"
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
|
|
66
|
-
"slots": {
|
|
67
|
-
"default": {
|
|
68
|
-
"desc": "Suggestion: QMenu, QTooltip"
|
|
69
|
-
}
|
|
70
|
-
}
|
|
6
|
+
"mixins": [ "components/tabs/use-tab" ]
|
|
71
7
|
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"props": {
|
|
3
|
+
"icon": {
|
|
4
|
+
"extends": "icon"
|
|
5
|
+
},
|
|
6
|
+
|
|
7
|
+
"label": {
|
|
8
|
+
"type": [ "Number", "String" ],
|
|
9
|
+
"desc": "A number or string to label the tab",
|
|
10
|
+
"examples": [ "'Home'" ],
|
|
11
|
+
"category": "content"
|
|
12
|
+
},
|
|
13
|
+
|
|
14
|
+
"alert": {
|
|
15
|
+
"type": [ "Boolean", "String" ],
|
|
16
|
+
"desc": "Adds an alert symbol to the tab, notifying the user there are some updates; If its value is not a Boolean, then you can specify a color",
|
|
17
|
+
"examples": [ "'purple'" ],
|
|
18
|
+
"category": "content"
|
|
19
|
+
},
|
|
20
|
+
|
|
21
|
+
"alert-icon": {
|
|
22
|
+
"type": "String",
|
|
23
|
+
"desc": "Adds a floating icon to the tab, notifying the user there are some updates; It's displayed only if 'alert' is set; Can use the color specified by 'alert' prop",
|
|
24
|
+
"examples": [ "'alarm_on'" ],
|
|
25
|
+
"category": "content"
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
"name": {
|
|
29
|
+
"type": [ "Number", "String" ],
|
|
30
|
+
"desc": "Panel name",
|
|
31
|
+
"default": "# a random UUID",
|
|
32
|
+
"examples": [ "'home'", "1" ],
|
|
33
|
+
"category": "general"
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
"no-caps": {
|
|
37
|
+
"type": "Boolean",
|
|
38
|
+
"desc": "Turns off capitalizing all letters within the tab (which is the default)",
|
|
39
|
+
"category": "content"
|
|
40
|
+
},
|
|
41
|
+
|
|
42
|
+
"content-class": {
|
|
43
|
+
"type": "String",
|
|
44
|
+
"desc": "Class definitions to be attributed to the content wrapper",
|
|
45
|
+
"examples": [ "'my-special-class'" ],
|
|
46
|
+
"category": "style"
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
"ripple": {
|
|
50
|
+
"extends": "ripple"
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
"tabindex": {
|
|
54
|
+
"extends": "tabindex"
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
"disable": {
|
|
58
|
+
"extends": "disable"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
|
|
62
|
+
"slots": {
|
|
63
|
+
"default": {
|
|
64
|
+
"desc": "Suggestion: QMenu, QTooltip"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
|
|
68
|
+
"events": {
|
|
69
|
+
"click": { "internal": true },
|
|
70
|
+
"keydown": { "internal": true }
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -46,7 +46,13 @@ export default createComponent({
|
|
|
46
46
|
...useFormProps,
|
|
47
47
|
...useDatetimeProps,
|
|
48
48
|
|
|
49
|
+
modelValue: {
|
|
50
|
+
required: true,
|
|
51
|
+
validator: val => (typeof val === 'string' || val === null)
|
|
52
|
+
},
|
|
53
|
+
|
|
49
54
|
mask: {
|
|
55
|
+
...useDatetimeProps.mask,
|
|
50
56
|
default: null
|
|
51
57
|
},
|
|
52
58
|
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"type": "String",
|
|
25
25
|
"desc": "The default date to use (in YYYY/MM/DD format) when model is unfilled (undefined or null)",
|
|
26
26
|
"default": "# current day",
|
|
27
|
+
"__runtimeDefault": true,
|
|
27
28
|
"examples": [ "'1995/02/23'" ],
|
|
28
29
|
"category": "model"
|
|
29
30
|
},
|
|
@@ -31,6 +32,7 @@
|
|
|
31
32
|
"mask": {
|
|
32
33
|
"type": [ "String", "null" ],
|
|
33
34
|
"default": "'HH:mm'",
|
|
35
|
+
"__runtimeDefault": true,
|
|
34
36
|
"examples": [ "'HH:mm:ss'", "'YYYY-MM-DD HH:mm:ss'", "'HH:mm MMMM Do, YYYY'" ]
|
|
35
37
|
},
|
|
36
38
|
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { mount, flushPromises } from '@vue/test-utils'
|
|
2
|
+
import { describe, test, expect } from 'vitest'
|
|
3
|
+
|
|
4
|
+
import QToolbar from './QToolbar.js'
|
|
5
|
+
|
|
6
|
+
describe('[QToolbar API]', () => {
|
|
7
|
+
describe('[Props]', () => {
|
|
8
|
+
describe('[(prop)inset]', () => {
|
|
9
|
+
test('type Boolean has effect', async () => {
|
|
10
|
+
const wrapper = mount(QToolbar)
|
|
11
|
+
const target = wrapper.get('.q-toolbar')
|
|
12
|
+
|
|
13
|
+
expect(
|
|
14
|
+
target.classes()
|
|
15
|
+
).not.toContain('q-toolbar--inset')
|
|
16
|
+
|
|
17
|
+
await wrapper.setProps({ inset: true })
|
|
18
|
+
await flushPromises()
|
|
19
|
+
|
|
20
|
+
expect(
|
|
21
|
+
target.classes()
|
|
22
|
+
).toContain('q-toolbar--inset')
|
|
23
|
+
})
|
|
24
|
+
})
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
describe('[Slots]', () => {
|
|
28
|
+
describe('[(slot)default]', () => {
|
|
29
|
+
test('renders the content', () => {
|
|
30
|
+
const slotContent = 'some-slot-content'
|
|
31
|
+
const wrapper = mount(QToolbar, {
|
|
32
|
+
slots: {
|
|
33
|
+
default: () => slotContent
|
|
34
|
+
}
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
expect(wrapper.html()).toContain(slotContent)
|
|
38
|
+
})
|
|
39
|
+
})
|
|
40
|
+
})
|
|
41
|
+
})
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { mount, flushPromises } from '@vue/test-utils'
|
|
2
|
+
import { describe, test, expect } from 'vitest'
|
|
3
|
+
|
|
4
|
+
import QToolbarTitle from './QToolbarTitle.js'
|
|
5
|
+
|
|
6
|
+
describe('[QToolbarTitle API]', () => {
|
|
7
|
+
describe('[Props]', () => {
|
|
8
|
+
describe('[(prop)shrink]', () => {
|
|
9
|
+
test('type Boolean has effect', async () => {
|
|
10
|
+
const wrapper = mount(QToolbarTitle)
|
|
11
|
+
const target = wrapper.get('.q-toolbar__title')
|
|
12
|
+
|
|
13
|
+
expect(
|
|
14
|
+
target.classes()
|
|
15
|
+
).not.toContain('col-shrink')
|
|
16
|
+
|
|
17
|
+
await wrapper.setProps({ shrink: true })
|
|
18
|
+
await flushPromises()
|
|
19
|
+
|
|
20
|
+
expect(
|
|
21
|
+
target.classes()
|
|
22
|
+
).toContain('col-shrink')
|
|
23
|
+
})
|
|
24
|
+
})
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
describe('[Slots]', () => {
|
|
28
|
+
describe('[(slot)default]', () => {
|
|
29
|
+
test('renders the content', () => {
|
|
30
|
+
const slotContent = 'some-slot-content'
|
|
31
|
+
const wrapper = mount(QToolbarTitle, {
|
|
32
|
+
slots: {
|
|
33
|
+
default: () => slotContent
|
|
34
|
+
}
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
expect(wrapper.html()).toContain(slotContent)
|
|
38
|
+
})
|
|
39
|
+
})
|
|
40
|
+
})
|
|
41
|
+
})
|