quasar 2.18.6 → 2.19.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/README.md +2 -0
- package/dist/api/BottomSheet.json +1 -1
- package/dist/api/Dialog.json +1 -1
- package/dist/api/Intersection.json +1 -1
- package/dist/api/Lang.json +1 -1
- package/dist/api/LocalStorage.json +1 -1
- package/dist/api/Notify.json +1 -1
- package/dist/api/QBtnDropdown.json +1 -1
- package/dist/api/QBtnToggle.json +1 -1
- package/dist/api/QCarousel.json +1 -1
- package/dist/api/QCarouselControl.json +1 -1
- package/dist/api/QChatMessage.json +1 -1
- package/dist/api/QCheckbox.json +1 -1
- package/dist/api/QColor.json +1 -1
- package/dist/api/QDate.json +1 -1
- package/dist/api/QEditor.json +1 -1
- package/dist/api/QField.json +1 -1
- package/dist/api/QFile.json +1 -1
- package/dist/api/QInput.json +1 -1
- package/dist/api/QIntersection.json +1 -1
- package/dist/api/QMenu.json +1 -1
- package/dist/api/QOptionGroup.json +1 -1
- package/dist/api/QPageScroller.json +1 -1
- package/dist/api/QPageSticky.json +1 -1
- package/dist/api/QPopupEdit.json +1 -1
- package/dist/api/QRange.json +1 -1
- package/dist/api/QRating.json +1 -1
- package/dist/api/QScrollArea.json +1 -1
- package/dist/api/QSelect.json +1 -1
- package/dist/api/QSlider.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/QTime.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/QUploader.json +1 -1
- package/dist/api/QVirtualScroll.json +1 -1
- package/dist/api/Ripple.json +1 -1
- package/dist/api/SessionStorage.json +1 -1
- package/dist/icon-set/bootstrap-icons.umd.prod.js +5 -6
- package/dist/icon-set/eva-icons.umd.prod.js +5 -6
- package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +5 -6
- package/dist/icon-set/fontawesome-v5.umd.prod.js +5 -6
- package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +5 -6
- package/dist/icon-set/fontawesome-v6.umd.prod.js +5 -6
- package/dist/icon-set/ionicons-v4.umd.prod.js +5 -6
- package/dist/icon-set/line-awesome.umd.prod.js +5 -6
- package/dist/icon-set/material-icons-outlined.umd.prod.js +5 -6
- package/dist/icon-set/material-icons-round.umd.prod.js +5 -6
- package/dist/icon-set/material-icons-sharp.umd.prod.js +5 -6
- package/dist/icon-set/material-icons.umd.prod.js +5 -6
- package/dist/icon-set/material-symbols-outlined.umd.prod.js +5 -6
- package/dist/icon-set/material-symbols-rounded.umd.prod.js +5 -6
- package/dist/icon-set/material-symbols-sharp.umd.prod.js +5 -6
- package/dist/icon-set/mdi-v3.umd.prod.js +5 -6
- package/dist/icon-set/mdi-v4.umd.prod.js +5 -6
- package/dist/icon-set/mdi-v5.umd.prod.js +5 -6
- package/dist/icon-set/mdi-v6.umd.prod.js +5 -6
- package/dist/icon-set/mdi-v7.umd.prod.js +5 -6
- package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +5 -6
- package/dist/icon-set/svg-eva-icons.umd.prod.js +5 -6
- package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +5 -6
- package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +5 -6
- package/dist/icon-set/svg-ionicons-v4.umd.prod.js +5 -6
- package/dist/icon-set/svg-ionicons-v5.umd.prod.js +5 -6
- package/dist/icon-set/svg-ionicons-v6.umd.prod.js +5 -6
- package/dist/icon-set/svg-line-awesome.umd.prod.js +5 -6
- package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +5 -6
- package/dist/icon-set/svg-material-icons-round.umd.prod.js +5 -6
- package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +5 -6
- package/dist/icon-set/svg-material-icons.umd.prod.js +5 -6
- package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +5 -6
- package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +5 -6
- package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +5 -6
- package/dist/icon-set/svg-mdi-v6.umd.prod.js +5 -6
- package/dist/icon-set/svg-mdi-v7.umd.prod.js +5 -6
- package/dist/icon-set/svg-themify.umd.prod.js +5 -6
- package/dist/icon-set/themify.umd.prod.js +5 -6
- package/dist/lang/ar-TN.umd.prod.js +5 -6
- package/dist/lang/ar.umd.prod.js +5 -6
- package/dist/lang/az-Latn.umd.prod.js +5 -6
- package/dist/lang/bg.umd.prod.js +5 -6
- package/dist/lang/bn.umd.prod.js +5 -6
- package/dist/lang/bs-BA.umd.prod.js +5 -6
- package/dist/lang/ca.umd.prod.js +5 -6
- package/dist/lang/cs.umd.prod.js +5 -6
- package/dist/lang/da.umd.prod.js +5 -6
- package/dist/lang/de-CH.umd.prod.js +5 -6
- package/dist/lang/de-DE.umd.prod.js +5 -6
- package/dist/lang/de.umd.prod.js +5 -6
- package/dist/lang/el.umd.prod.js +5 -6
- package/dist/lang/en-GB.umd.prod.js +5 -6
- package/dist/lang/en-US.umd.prod.js +5 -6
- package/dist/lang/eo.umd.prod.js +5 -6
- package/dist/lang/es.umd.prod.js +5 -6
- package/dist/lang/et.umd.prod.js +5 -6
- package/dist/lang/eu.umd.prod.js +5 -6
- package/dist/lang/fa-IR.umd.prod.js +5 -6
- package/dist/lang/fa.umd.prod.js +5 -6
- package/dist/lang/fi.umd.prod.js +5 -6
- package/dist/lang/fr.umd.prod.js +5 -6
- package/dist/lang/gn.umd.prod.js +5 -6
- package/dist/lang/he.umd.prod.js +5 -6
- package/dist/lang/hi.umd.prod.js +5 -6
- package/dist/lang/hr.umd.prod.js +5 -6
- package/dist/lang/hu.umd.prod.js +5 -6
- package/dist/lang/id.umd.prod.js +5 -6
- package/dist/lang/is.umd.prod.js +5 -6
- package/dist/lang/it.umd.prod.js +5 -6
- package/dist/lang/ja.umd.prod.js +5 -6
- package/dist/lang/kk.umd.prod.js +5 -6
- package/dist/lang/km.umd.prod.js +5 -6
- package/dist/lang/ko-KR.umd.prod.js +5 -6
- package/dist/lang/kur-CKB.umd.prod.js +5 -6
- package/dist/lang/lt.umd.prod.js +5 -6
- package/dist/lang/lu.umd.prod.js +5 -6
- package/dist/lang/lv.umd.prod.js +5 -6
- package/dist/lang/mk.umd.prod.js +5 -6
- package/dist/lang/ml.umd.prod.js +5 -6
- package/dist/lang/mm.umd.prod.js +5 -6
- package/dist/lang/ms-MY.umd.prod.js +5 -6
- package/dist/lang/ms.umd.prod.js +5 -6
- package/dist/lang/my.umd.prod.js +5 -6
- package/dist/lang/nb-NO.umd.prod.js +5 -6
- package/dist/lang/nl.umd.prod.js +5 -6
- package/dist/lang/pl.umd.prod.js +5 -6
- package/dist/lang/pt-BR.umd.prod.js +5 -6
- package/dist/lang/pt.umd.prod.js +5 -6
- package/dist/lang/ro.umd.prod.js +5 -6
- package/dist/lang/ru.umd.prod.js +5 -6
- package/dist/lang/sk.umd.prod.js +5 -6
- package/dist/lang/sl.umd.prod.js +5 -6
- package/dist/lang/sm.umd.prod.js +5 -6
- package/dist/lang/sq.umd.prod.js +5 -6
- package/dist/lang/sr-CYR.umd.prod.js +5 -6
- package/dist/lang/sr.umd.prod.js +5 -6
- package/dist/lang/sv.umd.prod.js +5 -6
- package/dist/lang/ta.umd.prod.js +5 -6
- package/dist/lang/th.umd.prod.js +5 -6
- package/dist/lang/tl.umd.prod.js +5 -6
- package/dist/lang/tr.umd.prod.js +5 -6
- package/dist/lang/ug.umd.prod.js +5 -6
- package/dist/lang/uk.umd.prod.js +5 -6
- package/dist/lang/ur-PK.umd.prod.js +5 -6
- package/dist/lang/uz-Cyrl.umd.prod.js +5 -6
- package/dist/lang/uz-Latn.umd.prod.js +5 -6
- package/dist/lang/vi.umd.prod.js +5 -6
- package/dist/lang/zh-CN.umd.prod.js +5 -6
- package/dist/lang/zh-TW.umd.prod.js +5 -6
- package/dist/quasar.addon.prod.css +1 -1
- package/dist/quasar.addon.rtl.prod.css +1 -1
- package/dist/quasar.client.js +24830 -29218
- package/dist/quasar.css +24 -30
- package/dist/quasar.prod.css +1 -1
- package/dist/quasar.rtl.css +25 -30
- package/dist/quasar.rtl.prod.css +1 -1
- package/dist/quasar.sass +7 -16
- package/dist/quasar.server.prod.cjs +78 -79
- package/dist/quasar.server.prod.js +78 -79
- package/dist/quasar.umd.js +25876 -29789
- package/dist/quasar.umd.prod.js +78 -79
- package/dist/types/api/dialog.d.ts +1 -1
- package/dist/types/api/qinput.d.ts +1 -1
- package/dist/types/api/qtable.d.ts +1 -1
- package/dist/types/api/qtree.d.ts +1 -1
- package/dist/types/api/quploader.d.ts +1 -1
- package/dist/types/api/slider.d.ts +2 -4
- package/dist/types/api/validation.d.ts +1 -1
- package/dist/types/api/web-storage.d.ts +6 -6
- package/dist/types/feature-flag.d.ts +1 -1
- package/dist/types/globals.d.ts +7 -4
- package/dist/types/index.d.ts +127 -415
- package/dist/types/lang.d.ts +3 -3
- package/dist/types/ts-helpers.d.ts +4 -9
- package/dist/types/utils/colors.d.ts +1 -1
- package/dist/types/utils/date.d.ts +8 -8
- package/dist/types/utils/dom.d.ts +1 -1
- package/dist/types/utils/run-sequential-promises.d.ts +12 -12
- package/dist/types/utils/scroll.d.ts +5 -5
- package/dist/types/utils.d.ts +16 -19
- package/dist/vetur/quasar-attributes.json +1 -1
- package/dist/web-types/web-types.json +1 -1
- package/icon-set/bootstrap-icons.js +1 -4
- package/icon-set/svg-bootstrap-icons.js +1 -4
- package/icon-set/svg-fontawesome-v5.js +0 -1
- package/icon-set/svg-ionicons-v5.js +2 -2
- package/lang/ar-TN.js +10 -8
- package/lang/ar.js +10 -8
- package/lang/az-Latn.js +13 -9
- package/lang/bg.js +10 -8
- package/lang/bn.js +14 -9
- package/lang/bs-BA.js +13 -9
- package/lang/ca.js +18 -14
- package/lang/cs.js +9 -7
- package/lang/da.js +10 -8
- package/lang/de-CH.js +13 -9
- package/lang/de-DE.js +13 -9
- package/lang/de.js +13 -9
- package/lang/el.js +10 -8
- package/lang/en-GB.js +10 -8
- package/lang/en-US.js +10 -8
- package/lang/eo.js +14 -9
- package/lang/es.js +10 -8
- package/lang/et.js +15 -12
- package/lang/eu.js +15 -12
- package/lang/fa-IR.js +16 -8
- package/lang/fa.js +16 -8
- package/lang/fi.js +17 -8
- package/lang/fr.js +21 -13
- package/lang/gn.js +14 -12
- package/lang/he.js +15 -10
- package/lang/hi.js +8 -8
- package/lang/hr.js +13 -9
- package/lang/hu.js +10 -8
- package/lang/id.js +11 -9
- package/lang/is.js +13 -9
- package/lang/it.js +14 -9
- package/lang/ja.js +13 -8
- package/lang/kk.js +22 -11
- package/lang/km.js +9 -8
- package/lang/ko-KR.js +9 -10
- package/lang/kur-CKB.js +16 -17
- package/lang/lt.js +26 -19
- package/lang/lu.js +13 -9
- package/lang/lv.js +13 -9
- package/lang/mk.js +10 -8
- package/lang/ml.js +15 -14
- package/lang/mm.js +16 -13
- package/lang/ms-MY.js +16 -11
- package/lang/ms.js +10 -8
- package/lang/my.js +15 -8
- package/lang/nb-NO.js +10 -8
- package/lang/nl.js +13 -9
- package/lang/pl.js +13 -9
- package/lang/pt-BR.js +17 -10
- package/lang/pt.js +17 -10
- package/lang/ro.js +10 -8
- package/lang/ru.js +25 -12
- package/lang/sk.js +18 -9
- package/lang/sl.js +12 -8
- package/lang/sm.js +51 -47
- package/lang/sq.js +13 -9
- package/lang/sr-CYR.js +10 -8
- package/lang/sr.js +10 -8
- package/lang/sv.js +10 -8
- package/lang/ta.js +10 -8
- package/lang/th.js +12 -11
- package/lang/tl.js +10 -8
- package/lang/tr.js +8 -5
- package/lang/ug.js +16 -8
- package/lang/uk.js +22 -11
- package/lang/ur-PK.js +13 -11
- package/lang/uz-Cyrl.js +5 -5
- package/lang/uz-Latn.js +24 -24
- package/lang/vi.js +13 -9
- package/lang/zh-CN.js +18 -9
- package/lang/zh-TW.js +20 -10
- package/package.json +52 -66
- package/src/api.extends.json +15 -12
- package/src/components/ajax-bar/QAjaxBar.js +91 -65
- package/src/components/ajax-bar/QAjaxBar.json +2 -2
- package/src/components/ajax-bar/index.js +1 -3
- package/src/components/avatar/QAvatar.js +36 -28
- package/src/components/avatar/QAvatar.json +2 -2
- package/src/components/avatar/QAvatar.test.js +29 -78
- package/src/components/avatar/index.js +1 -3
- package/src/components/badge/QBadge.js +33 -26
- package/src/components/badge/QBadge.json +3 -3
- package/src/components/badge/QBadge.test.js +40 -95
- package/src/components/badge/index.js +1 -3
- package/src/components/banner/QBanner.js +46 -25
- package/src/components/banner/QBanner.test.js +14 -35
- package/src/components/banner/index.js +1 -3
- package/src/components/bar/QBar.js +21 -11
- package/src/components/bar/QBar.test.js +6 -17
- package/src/components/bar/index.js +1 -3
- package/src/components/breadcrumbs/QBreadcrumbs.js +44 -32
- package/src/components/breadcrumbs/QBreadcrumbs.json +10 -3
- package/src/components/breadcrumbs/QBreadcrumbs.test.js +56 -69
- package/src/components/breadcrumbs/QBreadcrumbsEl.js +28 -22
- package/src/components/breadcrumbs/QBreadcrumbsEl.json +5 -8
- package/src/components/breadcrumbs/QBreadcrumbsEl.test.js +60 -134
- package/src/components/breadcrumbs/index.js +1 -4
- package/src/components/btn/QBtn.js +159 -103
- package/src/components/btn/QBtn.json +3 -6
- package/src/components/btn/QBtn.test.js +269 -496
- package/src/components/btn/index.js +1 -3
- package/src/components/btn/use-btn.js +82 -70
- package/src/components/btn/use-btn.json +33 -16
- package/src/components/btn/use-btn.test.js +30 -47
- package/src/components/btn-dropdown/QBtnDropdown.js +143 -104
- package/src/components/btn-dropdown/QBtnDropdown.json +42 -17
- package/src/components/btn-dropdown/index.js +1 -3
- package/src/components/btn-group/QBtnGroup.js +18 -6
- package/src/components/btn-group/index.js +1 -3
- package/src/components/btn-toggle/QBtnToggle.js +80 -61
- package/src/components/btn-toggle/QBtnToggle.json +16 -9
- package/src/components/btn-toggle/index.js +1 -3
- package/src/components/card/QCard.js +14 -9
- package/src/components/card/QCard.json +1 -1
- package/src/components/card/QCardActions.js +8 -5
- package/src/components/card/QCardActions.json +9 -1
- package/src/components/card/QCardSection.js +5 -4
- package/src/components/card/QCardSection.json +1 -1
- package/src/components/card/index.js +1 -5
- package/src/components/carousel/QCarousel.js +194 -125
- package/src/components/carousel/QCarousel.json +10 -11
- package/src/components/carousel/QCarouselControl.js +26 -13
- package/src/components/carousel/QCarouselControl.json +10 -5
- package/src/components/carousel/QCarouselSlide.js +13 -10
- package/src/components/carousel/QCarouselSlide.json +1 -1
- package/src/components/carousel/index.js +1 -5
- package/src/components/chat/QChatMessage.js +62 -57
- package/src/components/chat/QChatMessage.json +8 -5
- package/src/components/chat/index.js +1 -3
- package/src/components/checkbox/QCheckbox.js +56 -41
- package/src/components/checkbox/QCheckbox.json +1 -1
- package/src/components/checkbox/index.js +1 -3
- package/src/components/checkbox/use-checkbox.js +112 -83
- package/src/components/checkbox/use-checkbox.json +15 -12
- package/src/components/chip/QChip.js +101 -73
- package/src/components/chip/QChip.json +6 -6
- package/src/components/chip/QChip.test.js +72 -180
- package/src/components/chip/index.js +1 -3
- package/src/components/circular-progress/QCircularProgress.js +92 -57
- package/src/components/circular-progress/QCircularProgress.json +2 -2
- package/src/components/circular-progress/index.js +1 -3
- package/src/components/color/QColor.js +550 -367
- package/src/components/color/QColor.json +8 -8
- package/src/components/color/index.js +1 -3
- package/src/components/date/QDate.js +902 -607
- package/src/components/date/QDate.json +32 -23
- package/src/components/date/index.js +1 -3
- package/src/components/date/use-datetime.js +12 -14
- package/src/components/date/use-datetime.json +7 -7
- package/src/components/dialog/QDialog.js +178 -139
- package/src/components/dialog/QDialog.json +8 -4
- package/src/components/dialog/QDialog.test.js +123 -228
- package/src/components/dialog/index.js +1 -3
- package/src/components/drawer/QDrawer.js +306 -242
- package/src/components/drawer/QDrawer.json +4 -4
- package/src/components/drawer/index.js +1 -3
- package/src/components/editor/QEditor.js +409 -190
- package/src/components/editor/QEditor.json +33 -32
- package/src/components/editor/editor-caret.js +78 -83
- package/src/components/editor/editor-utils.js +176 -130
- package/src/components/editor/index.js +1 -3
- package/src/components/expansion-item/QExpansionItem.js +149 -103
- package/src/components/expansion-item/QExpansionItem.json +21 -24
- package/src/components/expansion-item/index.js +1 -3
- package/src/components/fab/QFab.js +86 -54
- package/src/components/fab/QFab.json +6 -3
- package/src/components/fab/QFabAction.js +34 -29
- package/src/components/fab/QFabAction.json +4 -7
- package/src/components/fab/index.js +1 -4
- package/src/components/fab/use-fab.js +20 -20
- package/src/components/fab/use-fab.json +10 -13
- package/src/components/field/QField.js +7 -5
- package/src/components/field/QField.json +6 -6
- package/src/components/field/QField.sass +5 -6
- package/src/components/field/index.js +1 -3
- package/src/components/file/QFile.js +95 -74
- package/src/components/file/QFile.json +17 -14
- package/src/components/file/index.js +1 -3
- package/src/components/footer/QFooter.js +110 -67
- package/src/components/footer/QFooter.json +2 -2
- package/src/components/footer/index.js +1 -3
- package/src/components/form/QForm.js +93 -58
- package/src/components/form/QForm.json +2 -2
- package/src/components/form/QFormChildMixin.js +10 -11
- package/src/components/form/QFormChildMixin.json +2 -2
- package/src/components/form/index.js +1 -4
- package/src/components/header/QHeader.js +93 -56
- package/src/components/header/QHeader.json +2 -2
- package/src/components/header/index.js +1 -3
- package/src/components/icon/QIcon.js +70 -57
- package/src/components/icon/QIcon.json +2 -2
- package/src/components/icon/index.js +1 -3
- package/src/components/img/QImg.js +104 -98
- package/src/components/img/QImg.json +20 -18
- package/src/components/img/index.js +1 -3
- package/src/components/infinite-scroll/QInfiniteScroll.js +123 -64
- package/src/components/infinite-scroll/QInfiniteScroll.json +1 -1
- package/src/components/infinite-scroll/index.js +1 -3
- package/src/components/inner-loading/QInnerLoading.js +31 -23
- package/src/components/inner-loading/QInnerLoading.json +9 -9
- package/src/components/inner-loading/index.js +1 -3
- package/src/components/input/QInput.js +179 -137
- package/src/components/input/QInput.json +25 -15
- package/src/components/input/index.js +1 -3
- package/src/components/input/use-mask.js +328 -243
- package/src/components/input/use-mask.json +16 -8
- package/src/components/intersection/QIntersection.js +45 -28
- package/src/components/intersection/QIntersection.json +7 -10
- package/src/components/intersection/index.js +1 -3
- package/src/components/item/QItem.js +60 -52
- package/src/components/item/QItem.json +6 -9
- package/src/components/item/QItemLabel.js +23 -15
- package/src/components/item/QItemLabel.json +1 -1
- package/src/components/item/QItemSection.js +11 -8
- package/src/components/item/QList.js +21 -13
- package/src/components/item/QList.json +1 -1
- package/src/components/item/QList.test.js +7 -11
- package/src/components/item/index.js +1 -7
- package/src/components/knob/QKnob.js +86 -76
- package/src/components/knob/QKnob.json +6 -3
- package/src/components/knob/index.js +1 -3
- package/src/components/layout/QLayout.js +98 -69
- package/src/components/layout/QLayout.json +2 -2
- package/src/components/layout/index.js +1 -3
- package/src/components/linear-progress/QLinearProgress.js +78 -47
- package/src/components/linear-progress/QLinearProgress.json +3 -3
- package/src/components/linear-progress/index.js +1 -3
- package/src/components/markup-table/QMarkupTable.js +25 -17
- package/src/components/markup-table/QMarkupTable.json +2 -2
- package/src/components/markup-table/index.js +1 -3
- package/src/components/menu/QMenu.js +144 -100
- package/src/components/menu/QMenu.json +39 -10
- package/src/components/menu/index.js +1 -3
- package/src/components/no-ssr/QNoSsr.js +5 -5
- package/src/components/no-ssr/QNoSsr.json +2 -2
- package/src/components/no-ssr/index.js +1 -3
- package/src/components/option-group/QOptionGroup.js +84 -66
- package/src/components/option-group/QOptionGroup.json +35 -21
- package/src/components/option-group/index.js +1 -3
- package/src/components/page/QPage.js +35 -22
- package/src/components/page/QPage.json +1 -1
- package/src/components/page/QPageContainer.js +24 -11
- package/src/components/page/index.js +1 -4
- package/src/components/page-scroller/QPageScroller.js +49 -32
- package/src/components/page-scroller/QPageScroller.json +2 -2
- package/src/components/page-scroller/index.js +1 -3
- package/src/components/page-sticky/QPageSticky.js +1 -1
- package/src/components/page-sticky/QPageSticky.json +9 -4
- package/src/components/page-sticky/index.js +1 -3
- package/src/components/page-sticky/use-page-sticky.js +47 -36
- package/src/components/pagination/QPagination.js +210 -146
- package/src/components/pagination/QPagination.json +35 -21
- package/src/components/pagination/index.js +1 -3
- package/src/components/parallax/QParallax.js +81 -56
- package/src/components/parallax/index.js +1 -3
- package/src/components/popup-edit/QPopupEdit.js +88 -59
- package/src/components/popup-edit/QPopupEdit.json +40 -16
- package/src/components/popup-edit/index.js +1 -3
- package/src/components/popup-proxy/QPopupProxy.js +30 -19
- package/src/components/popup-proxy/QPopupProxy.json +3 -3
- package/src/components/popup-proxy/index.js +1 -3
- package/src/components/pull-to-refresh/QPullToRefresh.js +71 -49
- package/src/components/pull-to-refresh/index.js +1 -3
- package/src/components/radio/QRadio.js +133 -95
- package/src/components/radio/QRadio.json +11 -8
- package/src/components/radio/index.js +1 -3
- package/src/components/range/QRange.js +151 -104
- package/src/components/range/QRange.json +9 -9
- package/src/components/range/index.js +1 -3
- package/src/components/rating/QRating.js +171 -112
- package/src/components/rating/QRating.json +19 -12
- package/src/components/rating/index.js +1 -3
- package/src/components/resize-observer/QResizeObserver.js +52 -30
- package/src/components/resize-observer/QResizeObserver.json +2 -2
- package/src/components/resize-observer/index.js +1 -3
- package/src/components/responsive/QResponsive.js +27 -14
- package/src/components/responsive/QResponsive.json +1 -1
- package/src/components/responsive/index.js +1 -3
- package/src/components/scroll-area/QScrollArea.js +279 -192
- package/src/components/scroll-area/QScrollArea.json +31 -21
- package/src/components/scroll-area/ScrollAreaControls.js +6 -11
- package/src/components/scroll-area/index.js +1 -3
- package/src/components/scroll-observer/QScrollObserver.js +46 -26
- package/src/components/scroll-observer/QScrollObserver.json +4 -4
- package/src/components/scroll-observer/index.js +1 -3
- package/src/components/select/QSelect.js +710 -519
- package/src/components/select/QSelect.json +70 -45
- package/src/components/select/index.js +1 -3
- package/src/components/separator/QSeparator.js +34 -30
- package/src/components/separator/QSeparator.json +4 -4
- package/src/components/separator/index.js +1 -3
- package/src/components/skeleton/QSkeleton.js +49 -23
- package/src/components/skeleton/QSkeleton.json +26 -9
- package/src/components/skeleton/index.js +1 -3
- package/src/components/slide-item/QSlideItem.js +121 -94
- package/src/components/slide-item/QSlideItem.json +2 -2
- package/src/components/slide-item/index.js +1 -3
- package/src/components/slide-transition/QSlideTransition.js +34 -26
- package/src/components/slide-transition/index.js +1 -3
- package/src/components/slider/QSlider.js +64 -43
- package/src/components/slider/QSlider.json +6 -6
- package/src/components/slider/index.js +1 -3
- package/src/components/slider/use-slider.js +327 -220
- package/src/components/slider/use-slider.json +32 -32
- package/src/components/space/QSpace.js +1 -1
- package/src/components/space/QSpace.test.js +1 -4
- package/src/components/space/index.js +1 -3
- package/src/components/spinner/QSpinner.js +23 -18
- package/src/components/spinner/QSpinner.json +1 -1
- package/src/components/spinner/QSpinner.test.js +11 -27
- package/src/components/spinner/QSpinnerAudio.js +13 -11
- package/src/components/spinner/QSpinnerAudio.json +1 -1
- package/src/components/spinner/QSpinnerAudio.test.js +9 -21
- package/src/components/spinner/QSpinnerBall.js +13 -11
- package/src/components/spinner/QSpinnerBall.json +1 -1
- package/src/components/spinner/QSpinnerBall.test.js +9 -21
- package/src/components/spinner/QSpinnerBars.js +13 -11
- package/src/components/spinner/QSpinnerBars.json +1 -1
- package/src/components/spinner/QSpinnerBars.test.js +9 -21
- package/src/components/spinner/QSpinnerBox.js +13 -11
- package/src/components/spinner/QSpinnerBox.json +1 -1
- package/src/components/spinner/QSpinnerBox.test.js +9 -21
- package/src/components/spinner/QSpinnerClock.js +13 -11
- package/src/components/spinner/QSpinnerClock.json +1 -1
- package/src/components/spinner/QSpinnerClock.test.js +9 -21
- package/src/components/spinner/QSpinnerComment.js +13 -11
- package/src/components/spinner/QSpinnerComment.json +1 -1
- package/src/components/spinner/QSpinnerComment.test.js +9 -21
- package/src/components/spinner/QSpinnerCube.js +13 -11
- package/src/components/spinner/QSpinnerCube.json +1 -1
- package/src/components/spinner/QSpinnerCube.test.js +9 -21
- package/src/components/spinner/QSpinnerDots.js +13 -11
- package/src/components/spinner/QSpinnerDots.json +1 -1
- package/src/components/spinner/QSpinnerDots.test.js +9 -21
- package/src/components/spinner/QSpinnerFacebook.js +13 -11
- package/src/components/spinner/QSpinnerFacebook.json +1 -1
- package/src/components/spinner/QSpinnerFacebook.test.js +9 -21
- package/src/components/spinner/QSpinnerGears.js +13 -11
- package/src/components/spinner/QSpinnerGears.json +1 -1
- package/src/components/spinner/QSpinnerGears.test.js +9 -21
- package/src/components/spinner/QSpinnerGrid.js +13 -11
- package/src/components/spinner/QSpinnerGrid.json +1 -1
- package/src/components/spinner/QSpinnerGrid.test.js +9 -21
- package/src/components/spinner/QSpinnerHearts.js +13 -11
- package/src/components/spinner/QSpinnerHearts.json +1 -1
- package/src/components/spinner/QSpinnerHearts.test.js +9 -21
- package/src/components/spinner/QSpinnerHourglass.js +13 -11
- package/src/components/spinner/QSpinnerHourglass.json +1 -1
- package/src/components/spinner/QSpinnerHourglass.test.js +9 -21
- package/src/components/spinner/QSpinnerInfinity.js +12 -10
- package/src/components/spinner/QSpinnerInfinity.json +1 -1
- package/src/components/spinner/QSpinnerInfinity.test.js +9 -21
- package/src/components/spinner/QSpinnerIos.js +13 -11
- package/src/components/spinner/QSpinnerIos.json +1 -1
- package/src/components/spinner/QSpinnerIos.test.js +9 -21
- package/src/components/spinner/QSpinnerOrbit.js +13 -11
- package/src/components/spinner/QSpinnerOrbit.json +1 -1
- package/src/components/spinner/QSpinnerOrbit.test.js +9 -21
- package/src/components/spinner/QSpinnerOval.js +13 -11
- package/src/components/spinner/QSpinnerOval.json +1 -1
- package/src/components/spinner/QSpinnerOval.test.js +9 -21
- package/src/components/spinner/QSpinnerPie.js +13 -11
- package/src/components/spinner/QSpinnerPie.json +1 -1
- package/src/components/spinner/QSpinnerPie.test.js +9 -21
- package/src/components/spinner/QSpinnerPuff.js +13 -11
- package/src/components/spinner/QSpinnerPuff.json +1 -1
- package/src/components/spinner/QSpinnerPuff.test.js +9 -21
- package/src/components/spinner/QSpinnerRadio.js +13 -11
- package/src/components/spinner/QSpinnerRadio.json +1 -1
- package/src/components/spinner/QSpinnerRadio.test.js +9 -21
- package/src/components/spinner/QSpinnerRings.js +13 -11
- package/src/components/spinner/QSpinnerRings.json +1 -1
- package/src/components/spinner/QSpinnerRings.test.js +9 -21
- package/src/components/spinner/QSpinnerTail.js +12 -10
- package/src/components/spinner/QSpinnerTail.json +1 -1
- package/src/components/spinner/QSpinnerTail.test.js +9 -21
- package/src/components/spinner/index.js +0 -1
- package/src/components/spinner/spinner.json +2 -2
- package/src/components/spinner/use-spinner.js +7 -7
- package/src/components/spinner/use-spinner.test.js +1 -1
- package/src/components/splitter/QSplitter.js +133 -94
- package/src/components/splitter/QSplitter.json +10 -19
- package/src/components/splitter/index.js +1 -3
- package/src/components/stepper/QStep.js +65 -42
- package/src/components/stepper/QStep.json +5 -5
- package/src/components/stepper/QStepper.js +62 -39
- package/src/components/stepper/QStepper.json +2 -2
- package/src/components/stepper/QStepperNavigation.js +1 -1
- package/src/components/stepper/StepHeader.js +87 -67
- package/src/components/stepper/index.js +1 -5
- package/src/components/tab-panels/QTabPanel.js +3 -2
- package/src/components/tab-panels/QTabPanel.json +1 -1
- package/src/components/tab-panels/QTabPanels.js +12 -6
- package/src/components/tab-panels/QTabPanels.json +1 -1
- package/src/components/tab-panels/index.js +1 -4
- package/src/components/table/QTable.js +544 -426
- package/src/components/table/QTable.json +168 -165
- package/src/components/table/QTd.js +18 -13
- package/src/components/table/QTd.json +1 -1
- package/src/components/table/QTh.js +25 -20
- package/src/components/table/QTh.json +1 -1
- package/src/components/table/QTr.js +17 -9
- package/src/components/table/QTr.json +1 -1
- package/src/components/table/get-table-middle.js +2 -4
- package/src/components/table/index.js +1 -6
- package/src/components/table/table-column-selection.js +45 -35
- package/src/components/table/table-filter.js +9 -8
- package/src/components/table/table-pagination.js +75 -52
- package/src/components/table/table-row-expand.js +15 -16
- package/src/components/table/table-row-selection.js +31 -31
- package/src/components/table/table-sort.js +26 -29
- package/src/components/tabs/QRouteTab.js +10 -12
- package/src/components/tabs/QRouteTab.json +6 -6
- package/src/components/tabs/QTab.js +1 -1
- package/src/components/tabs/QTab.json +1 -1
- package/src/components/tabs/QTabs.js +283 -205
- package/src/components/tabs/QTabs.json +9 -9
- package/src/components/tabs/index.js +1 -5
- package/src/components/tabs/use-tab.js +127 -103
- package/src/components/tabs/use-tab.json +8 -8
- package/src/components/time/QTime.js +502 -383
- package/src/components/time/QTime.json +19 -15
- package/src/components/time/index.js +1 -3
- package/src/components/timeline/QTimeline.js +10 -7
- package/src/components/timeline/QTimeline.json +2 -2
- package/src/components/timeline/QTimelineEntry.js +44 -27
- package/src/components/timeline/QTimelineEntry.json +7 -5
- package/src/components/timeline/index.js +1 -4
- package/src/components/toggle/QToggle.js +29 -19
- package/src/components/toggle/QToggle.json +1 -1
- package/src/components/toggle/index.js +1 -3
- package/src/components/toolbar/QToolbar.js +7 -5
- package/src/components/toolbar/QToolbar.test.js +2 -6
- package/src/components/toolbar/QToolbarTitle.js +5 -4
- package/src/components/toolbar/QToolbarTitle.test.js +2 -6
- package/src/components/toolbar/index.js +1 -4
- package/src/components/tooltip/QTooltip.js +125 -72
- package/src/components/tooltip/QTooltip.json +34 -10
- package/src/components/tooltip/index.js +1 -3
- package/src/components/tree/QTree.js +417 -297
- package/src/components/tree/QTree.json +27 -25
- package/src/components/tree/index.js +1 -3
- package/src/components/uploader/QUploader.json +9 -6
- package/src/components/uploader/QUploaderAddTrigger.js +5 -2
- package/src/components/uploader/index.js +1 -4
- package/src/components/uploader/uploader-core.js +262 -178
- package/src/components/uploader/xhr-uploader-plugin.js +96 -89
- package/src/components/uploader/xhr-uploader-plugin.json +29 -29
- package/src/components/video/QVideo.js +25 -19
- package/src/components/video/QVideo.json +5 -5
- package/src/components/video/QVideo.test.js +55 -85
- package/src/components/video/index.js +1 -3
- package/src/components/virtual-scroll/QVirtualScroll.js +89 -37
- package/src/components/virtual-scroll/QVirtualScroll.json +6 -6
- package/src/components/virtual-scroll/index.js +1 -3
- package/src/components/virtual-scroll/use-virtual-scroll.js +421 -240
- package/src/components/virtual-scroll/use-virtual-scroll.json +20 -13
- package/src/composables/private.use-align/use-align.js +8 -5
- package/src/composables/private.use-align/use-align.test.js +9 -17
- package/src/composables/private.use-anchor/use-anchor-static.json +2 -7
- package/src/composables/private.use-anchor/use-anchor.js +79 -62
- package/src/composables/private.use-anchor/use-anchor.json +1 -1
- package/src/composables/private.use-dark/use-dark.js +2 -6
- package/src/composables/private.use-dark/use-dark.test.js +7 -21
- package/src/composables/private.use-field/use-field.js +384 -251
- package/src/composables/private.use-field/use-field.json +10 -10
- package/src/composables/private.use-file/use-file-dom-props.js +11 -15
- package/src/composables/private.use-file/use-file.js +86 -67
- package/src/composables/private.use-file/use-file.json +8 -8
- package/src/composables/private.use-fullscreen/use-fullscreen.js +35 -17
- package/src/composables/private.use-fullscreen/use-fullscreen.json +1 -1
- package/src/composables/private.use-history/use-history.js +4 -4
- package/src/composables/private.use-history/use-history.test.js +9 -21
- package/src/composables/private.use-key-composition/use-key-composition.js +16 -12
- package/src/composables/private.use-model-toggle/use-model-toggle.js +44 -35
- package/src/composables/private.use-model-toggle/use-model-toggle.json +2 -2
- package/src/composables/private.use-panel/use-panel.child.json +1 -1
- package/src/composables/private.use-panel/use-panel.js +131 -91
- package/src/composables/private.use-panel/use-panel.json +18 -18
- package/src/composables/private.use-portal/use-portal.js +20 -15
- package/src/composables/private.use-prevent-scroll/use-prevent-scroll.js +4 -4
- package/src/composables/private.use-ratio/use-ratio.js +3 -3
- package/src/composables/private.use-ratio/use-ratio.json +2 -7
- package/src/composables/private.use-refocus-target/use-refocus-target.js +7 -8
- package/src/composables/private.use-router-link/use-router-link.js +111 -110
- package/src/composables/private.use-router-link/use-router-link.json +6 -9
- package/src/composables/private.use-scroll-target/use-scroll-target.js +14 -11
- package/src/composables/private.use-size/use-size.js +6 -4
- package/src/composables/private.use-size/use-size.json +1 -1
- package/src/composables/private.use-size/use-size.test.js +1 -1
- package/src/composables/private.use-transition/use-transition.js +17 -11
- package/src/composables/private.use-transition/use-transition.json +1 -1
- package/src/composables/private.use-transition/use-transition.test.js +7 -21
- package/src/composables/private.use-validate/use-validate.js +78 -67
- package/src/composables/private.use-validate/use-validate.json +9 -12
- package/src/composables/use-dialog-plugin-component/use-dialog-plugin-component.js +12 -6
- package/src/composables/use-form/private.use-form.js +4 -4
- package/src/composables/use-form/private.use-form.json +1 -1
- package/src/composables/use-form/private.use-form.test.js +17 -15
- package/src/composables/use-form/use-form-child.js +25 -14
- package/src/composables/use-hydration/use-hydration.js +1 -1
- package/src/composables/use-hydration/use-hydration.test.js +2 -4
- package/src/composables/use-id/use-id.js +10 -12
- package/src/composables/use-id/use-id.test.js +1 -1
- package/src/composables/use-interval/use-interval.js +3 -3
- package/src/composables/use-interval/use-interval.test.js +6 -9
- package/src/composables/use-meta/use-meta.js +13 -10
- package/src/composables/use-quasar/use-quasar.js +1 -1
- package/src/composables/use-quasar/use-quasar.test.js +4 -10
- package/src/composables/use-render-cache/use-render-cache.js +16 -24
- package/src/composables/use-split-attrs/use-split-attrs.js +9 -5
- package/src/composables/use-split-attrs/use-split-attrs.test.js +17 -15
- package/src/composables/use-tick/use-tick.js +10 -5
- package/src/composables/use-tick/use-tick.test.js +5 -8
- package/src/composables/use-timeout/use-timeout.js +3 -3
- package/src/composables/use-timeout/use-timeout.test.js +6 -9
- package/src/composables.js +0 -1
- package/src/css/core/helpers.sass +4 -9
- package/src/directives/close-popup/ClosePopup.js +41 -35
- package/src/directives/close-popup/ClosePopup.json +1 -1
- package/src/directives/intersection/Intersection.js +25 -28
- package/src/directives/intersection/Intersection.json +6 -6
- package/src/directives/morph/Morph.js +87 -87
- package/src/directives/morph/Morph.json +15 -13
- package/src/directives/mutation/Mutation.js +23 -24
- package/src/directives/mutation/Mutation.json +11 -11
- package/src/directives/ripple/Ripple.js +88 -79
- package/src/directives/ripple/Ripple.json +10 -10
- package/src/directives/ripple/Ripple.test.js +31 -87
- package/src/directives/scroll/Scroll.js +43 -30
- package/src/directives/scroll/Scroll.json +4 -2
- package/src/directives/scroll-fire/ScrollFire.js +43 -38
- package/src/directives/scroll-fire/ScrollFire.json +1 -1
- package/src/directives/touch-hold/TouchHold.js +155 -139
- package/src/directives/touch-hold/TouchHold.json +2 -2
- package/src/directives/touch-pan/TouchPan.js +311 -278
- package/src/directives/touch-pan/TouchPan.json +6 -4
- package/src/directives/touch-repeat/TouchRepeat.js +222 -188
- package/src/directives/touch-repeat/TouchRepeat.json +5 -3
- package/src/directives/touch-swipe/TouchSwipe.js +235 -214
- package/src/directives/touch-swipe/TouchSwipe.json +5 -3
- package/src/flags.dev.js +10 -17
- package/src/index.dev.js +2 -0
- package/src/index.ssr.js +2 -6
- package/src/index.umd.js +4 -2
- package/src/install-quasar.js +92 -76
- package/src/plugins/addressbar/AddressbarColor.js +28 -25
- package/src/plugins/addressbar/AddressbarColor.json +1 -1
- package/src/plugins/addressbar/AddressbarColor.test.js +10 -9
- package/src/plugins/app-fullscreen/AppFullscreen.js +50 -51
- package/src/plugins/app-fullscreen/AppFullscreen.json +6 -10
- package/src/plugins/app-fullscreen/AppFullscreen.test.js +11 -26
- package/src/plugins/app-fullscreen/test/mock-fullscreen.js +7 -5
- package/src/plugins/app-visibility/AppVisibility.js +21 -17
- package/src/plugins/app-visibility/AppVisibility.test.js +3 -1
- package/src/plugins/bottom-sheet/BottomSheet.js +1 -1
- package/src/plugins/bottom-sheet/BottomSheet.json +9 -9
- package/src/plugins/bottom-sheet/component/BottomSheetComponent.js +132 -95
- package/src/plugins/cookies/Cookies.js +50 -58
- package/src/plugins/cookies/Cookies.json +24 -16
- package/src/plugins/dark/Dark.js +61 -55
- package/src/plugins/dark/Dark.json +6 -6
- package/src/plugins/dark/Dark.test.js +26 -44
- package/src/plugins/dialog/Dialog.js +1 -1
- package/src/plugins/dialog/Dialog.json +29 -21
- package/src/plugins/dialog/component/DialogPluginComponent.js +122 -121
- package/src/plugins/icon-set/IconSet.js +63 -56
- package/src/plugins/icon-set/IconSet.json +421 -419
- package/src/plugins/icon-set/IconSet.test.js +8 -7
- package/src/plugins/lang/Lang.js +115 -96
- package/src/plugins/lang/Lang.json +201 -175
- package/src/plugins/lang/Lang.test.js +52 -20
- package/src/plugins/loading/Loading.js +175 -143
- package/src/plugins/loading/Loading.json +15 -15
- package/src/plugins/loading-bar/LoadingBar.js +61 -56
- package/src/plugins/loading-bar/LoadingBar.json +2 -2
- package/src/plugins/meta/Meta.js +91 -81
- package/src/plugins/notify/Notify.js +275 -221
- package/src/plugins/notify/Notify.json +79 -71
- package/src/plugins/platform/Platform.js +105 -112
- package/src/plugins/platform/Platform.json +12 -8
- package/src/plugins/platform/Platform.test.js +4 -7
- package/src/plugins/private.body/Body.js +19 -23
- package/src/plugins/private.body/Body.test.js +4 -6
- package/src/plugins/private.history/History.js +27 -30
- package/src/plugins/screen/Screen.js +160 -147
- package/src/plugins/screen/Screen.json +6 -6
- package/src/plugins/screen/Screen.test.js +6 -12
- package/src/plugins/storage/LocalStorage.js +5 -4
- package/src/plugins/storage/LocalStorage.json +1 -1
- package/src/plugins/storage/LocalStorage.test.js +56 -62
- package/src/plugins/storage/SessionStorage.js +5 -4
- package/src/plugins/storage/SessionStorage.json +1 -1
- package/src/plugins/storage/SessionStorage.test.js +56 -62
- package/src/plugins/storage/engine/web-storage.js +24 -26
- package/src/plugins/storage/engine/web-storage.json +45 -15
- package/src/utils/EventBus/EventBus.js +12 -13
- package/src/utils/clone/clone.js +27 -28
- package/src/utils/clone/clone.test.js +27 -52
- package/src/utils/colors/colors.js +69 -63
- package/src/utils/colors/colors.test.js +360 -270
- package/src/utils/copy-to-clipboard/copy-to-clipboard.js +9 -10
- package/src/utils/create-meta-mixin/create-meta-mixin.js +17 -19
- package/src/utils/create-uploader-component/create-uploader-component.js +20 -14
- package/src/utils/css-var/get-css-var.js +4 -2
- package/src/utils/css-var/get-css-var.test.js +4 -11
- package/src/utils/css-var/set-css-var.js +2 -2
- package/src/utils/css-var/set-css-var.test.js +6 -12
- package/src/utils/date/date.js +251 -243
- package/src/utils/date/private.persian.js +54 -44
- package/src/utils/debounce/debounce.js +5 -5
- package/src/utils/debounce/debounce.test.js +3 -10
- package/src/utils/dom/dom.js +21 -22
- package/src/utils/dom/dom.test.js +19 -39
- package/src/utils/event/event.js +53 -49
- package/src/utils/export-file/export-file.js +11 -12
- package/src/utils/extend/extend.js +30 -26
- package/src/utils/extend/extend.test.js +36 -42
- package/src/utils/format/format.js +11 -13
- package/src/utils/format/format.test.js +50 -61
- package/src/utils/frame-debounce/frame-debounce.js +5 -3
- package/src/utils/frame-debounce/frame-debounce.test.js +3 -10
- package/src/utils/is/is.js +27 -23
- package/src/utils/is/is.test.js +100 -84
- package/src/utils/morph/morph.js +470 -377
- package/src/utils/open-url/open-url.js +18 -21
- package/src/utils/patterns/patterns.js +11 -7
- package/src/utils/patterns/patterns.test.js +2 -0
- package/src/utils/private.click-outside/click-outside.js +28 -26
- package/src/utils/private.config/instance-config.js +1 -1
- package/src/utils/private.config/instance-config.test.js +11 -7
- package/src/utils/private.config/nodes.js +14 -14
- package/src/utils/private.config/nodes.test.js +32 -38
- package/src/utils/private.create/create.js +10 -4
- package/src/utils/private.create/create.test.js +11 -7
- package/src/utils/private.dialog/create-dialog.js +70 -59
- package/src/utils/private.dialog/create-dialog.json +13 -6
- package/src/utils/private.focus/focus-manager.js +7 -8
- package/src/utils/private.focus/focus-manager.test.js +13 -18
- package/src/utils/private.focus/focusout.js +4 -4
- package/src/utils/private.focus/focusout.test.js +10 -22
- package/src/utils/private.get-emits-object/get-emits-object.js +2 -2
- package/src/utils/private.get-emits-object/get-emits-object.test.js +4 -10
- package/src/utils/private.inject-obj-prop/inject-obj-prop.js +3 -3
- package/src/utils/private.inject-obj-prop/inject-obj-prop.test.js +20 -49
- package/src/utils/private.keyboard/escape-key.js +10 -10
- package/src/utils/private.keyboard/escape-key.test.js +10 -22
- package/src/utils/private.keyboard/key-composition.js +9 -7
- package/src/utils/private.portal/portal.js +7 -10
- package/src/utils/private.position-engine/position-engine.js +127 -75
- package/src/utils/private.render/render.js +9 -24
- package/src/utils/private.render/render.test.js +40 -55
- package/src/utils/private.rtl/rtl.js +1 -3
- package/src/utils/private.selection/selection.js +6 -6
- package/src/utils/private.selection/selection.test.js +7 -13
- package/src/utils/private.sort/sort.js +4 -6
- package/src/utils/private.symbols/symbols.js +1 -1
- package/src/utils/private.touch/touch.js +16 -16
- package/src/utils/private.touch/touch.test.js +56 -16
- package/src/utils/private.vm/vm.js +6 -7
- package/src/utils/private.vm/vm.test.js +32 -32
- package/src/utils/run-sequential-promises/run-sequential-promises.js +57 -51
- package/src/utils/scroll/prevent-scroll.js +75 -47
- package/src/utils/scroll/scroll.js +51 -44
- package/src/utils/throttle/throttle.js +7 -4
- package/src/utils/throttle/throttle.test.js +2 -7
- package/src/utils/uid/uid.js +34 -22
- package/wrappers/index.cjs +17 -15
- package/wrappers/index.js +15 -15
|
@@ -15,16 +15,12 @@ describe('[QBtn API]', () => {
|
|
|
15
15
|
const wrapper = mount(QBtn)
|
|
16
16
|
const target = wrapper.get('.q-btn')
|
|
17
17
|
|
|
18
|
-
expect(
|
|
19
|
-
target.$style('font-size')
|
|
20
|
-
).not.toBe(propVal)
|
|
18
|
+
expect(target.$style('font-size')).not.toBe(propVal)
|
|
21
19
|
|
|
22
20
|
await wrapper.setProps({ size: propVal })
|
|
23
21
|
await flushPromises()
|
|
24
22
|
|
|
25
|
-
expect(
|
|
26
|
-
target.$style('font-size')
|
|
27
|
-
).toBe(propVal)
|
|
23
|
+
expect(target.$style('font-size')).toBe(propVal)
|
|
28
24
|
})
|
|
29
25
|
|
|
30
26
|
test('type String has effect (as "xs")', async () => {
|
|
@@ -32,72 +28,58 @@ describe('[QBtn API]', () => {
|
|
|
32
28
|
const wrapper = mount(QBtn)
|
|
33
29
|
const target = wrapper.get('.q-btn')
|
|
34
30
|
|
|
35
|
-
expect(
|
|
36
|
-
target.$style('font-size')
|
|
37
|
-
).not.toBe(`${ defaultSizes.xs }px`)
|
|
31
|
+
expect(target.$style('font-size')).not.toBe(`${defaultSizes.xs}px`)
|
|
38
32
|
|
|
39
33
|
await wrapper.setProps({ size: propVal })
|
|
40
34
|
await flushPromises()
|
|
41
35
|
|
|
42
|
-
expect(
|
|
43
|
-
target.$style('font-size')
|
|
44
|
-
).toBe(`${ defaultSizes.xs }px`)
|
|
36
|
+
expect(target.$style('font-size')).toBe(`${defaultSizes.xs}px`)
|
|
45
37
|
})
|
|
46
38
|
})
|
|
47
39
|
|
|
48
40
|
describe('[(prop)type]', () => {
|
|
49
|
-
test.each([
|
|
50
|
-
[ 'button' ],
|
|
51
|
-
[ 'a' ]
|
|
52
|
-
])('type "%s" has effect', (propVal) => {
|
|
41
|
+
test.each([['button'], ['a']])('type "%s" has effect', propVal => {
|
|
53
42
|
const wrapper = mount(QBtn, {
|
|
54
43
|
props: {
|
|
55
44
|
type: propVal
|
|
56
45
|
}
|
|
57
46
|
})
|
|
58
47
|
|
|
59
|
-
expect(
|
|
60
|
-
|
|
61
|
-
)
|
|
48
|
+
expect(wrapper.get('.q-btn').element.tagName.toLowerCase()).toBe(
|
|
49
|
+
propVal
|
|
50
|
+
)
|
|
62
51
|
})
|
|
63
52
|
|
|
64
|
-
test.each([
|
|
65
|
-
[ 'submit' ],
|
|
66
|
-
[ 'reset' ]
|
|
67
|
-
])('type "%s" has effect', (propVal) => {
|
|
53
|
+
test.each([['submit'], ['reset']])('type "%s" has effect', propVal => {
|
|
68
54
|
const wrapper = mount(QBtn, {
|
|
69
55
|
props: {
|
|
70
56
|
type: propVal
|
|
71
57
|
}
|
|
72
58
|
})
|
|
73
59
|
|
|
74
|
-
expect(
|
|
75
|
-
|
|
76
|
-
)
|
|
60
|
+
expect(wrapper.get('.q-btn').element.tagName.toLowerCase()).toBe(
|
|
61
|
+
'button'
|
|
62
|
+
)
|
|
77
63
|
})
|
|
78
64
|
|
|
79
65
|
// accessibility
|
|
80
|
-
test.each([
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
})
|
|
66
|
+
test.each([['media/html'], ['image/png']])(
|
|
67
|
+
'type "%s" has effect',
|
|
68
|
+
propVal => {
|
|
69
|
+
const wrapper = mount(QBtn, {
|
|
70
|
+
props: {
|
|
71
|
+
type: propVal,
|
|
72
|
+
href: 'https://quasar.dev'
|
|
73
|
+
}
|
|
74
|
+
})
|
|
90
75
|
|
|
91
|
-
|
|
76
|
+
const target = wrapper.get('.q-btn')
|
|
92
77
|
|
|
93
|
-
|
|
94
|
-
target.element.tagName.toLowerCase()
|
|
95
|
-
).toBe('a')
|
|
78
|
+
expect(target.element.tagName.toLowerCase()).toBe('a')
|
|
96
79
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
})
|
|
80
|
+
expect(target.attributes('type')).toBe(propVal)
|
|
81
|
+
}
|
|
82
|
+
)
|
|
101
83
|
})
|
|
102
84
|
|
|
103
85
|
describe('[(prop)to]', () => {
|
|
@@ -107,32 +89,28 @@ describe('[QBtn API]', () => {
|
|
|
107
89
|
|
|
108
90
|
const wrapper = mount(QBtn, {
|
|
109
91
|
global: {
|
|
110
|
-
plugins: [
|
|
92
|
+
plugins: [router]
|
|
111
93
|
}
|
|
112
94
|
})
|
|
113
95
|
|
|
114
|
-
expect(
|
|
115
|
-
wrapper.find('a').exists()
|
|
116
|
-
).toBe(false)
|
|
96
|
+
expect(wrapper.find('a').exists()).toBe(false)
|
|
117
97
|
|
|
118
98
|
await wrapper.setProps({ to: testRoute })
|
|
119
99
|
await flushPromises()
|
|
120
100
|
|
|
121
|
-
expect(
|
|
122
|
-
wrapper.get('a').attributes('href')
|
|
123
|
-
).toBe(testRoute)
|
|
101
|
+
expect(wrapper.get('a').attributes('href')).toBe(testRoute)
|
|
124
102
|
|
|
125
103
|
const routerFn = vi.spyOn(router, 'push')
|
|
126
104
|
|
|
127
105
|
await wrapper.trigger('click')
|
|
128
106
|
await flushPromises()
|
|
129
107
|
|
|
130
|
-
expect(
|
|
131
|
-
router.currentRoute.value.path
|
|
132
|
-
).toBe(testRoute)
|
|
108
|
+
expect(router.currentRoute.value.path).toBe(testRoute)
|
|
133
109
|
|
|
134
110
|
expect(routerFn).toHaveBeenCalledTimes(1)
|
|
135
111
|
expect(routerFn).toHaveBeenCalledWith(testRoute)
|
|
112
|
+
|
|
113
|
+
vi.restoreAllMocks()
|
|
136
114
|
})
|
|
137
115
|
|
|
138
116
|
test('type Object has effect', async () => {
|
|
@@ -142,32 +120,28 @@ describe('[QBtn API]', () => {
|
|
|
142
120
|
|
|
143
121
|
const wrapper = mount(QBtn, {
|
|
144
122
|
global: {
|
|
145
|
-
plugins: [
|
|
123
|
+
plugins: [router]
|
|
146
124
|
}
|
|
147
125
|
})
|
|
148
126
|
|
|
149
|
-
expect(
|
|
150
|
-
wrapper.find('a').exists()
|
|
151
|
-
).toBe(false)
|
|
127
|
+
expect(wrapper.find('a').exists()).toBe(false)
|
|
152
128
|
|
|
153
129
|
await wrapper.setProps({ to: propVal })
|
|
154
130
|
await flushPromises()
|
|
155
131
|
|
|
156
|
-
expect(
|
|
157
|
-
wrapper.get('a').attributes('href')
|
|
158
|
-
).toBe(testRoute)
|
|
132
|
+
expect(wrapper.get('a').attributes('href')).toBe(testRoute)
|
|
159
133
|
|
|
160
134
|
const routerFn = vi.spyOn(router, 'push')
|
|
161
135
|
|
|
162
136
|
await wrapper.trigger('click')
|
|
163
137
|
await flushPromises()
|
|
164
138
|
|
|
165
|
-
expect(
|
|
166
|
-
router.currentRoute.value.path
|
|
167
|
-
).toBe(testRoute)
|
|
139
|
+
expect(router.currentRoute.value.path).toBe(testRoute)
|
|
168
140
|
|
|
169
141
|
expect(routerFn).toHaveBeenCalledTimes(1)
|
|
170
142
|
expect(routerFn).toHaveBeenCalledWith(propVal)
|
|
143
|
+
|
|
144
|
+
vi.restoreAllMocks()
|
|
171
145
|
})
|
|
172
146
|
})
|
|
173
147
|
|
|
@@ -182,25 +156,23 @@ describe('[QBtn API]', () => {
|
|
|
182
156
|
to: testRoute
|
|
183
157
|
},
|
|
184
158
|
global: {
|
|
185
|
-
plugins: [
|
|
159
|
+
plugins: [router]
|
|
186
160
|
}
|
|
187
161
|
})
|
|
188
162
|
|
|
189
|
-
expect(
|
|
190
|
-
wrapper.get('a').attributes('href')
|
|
191
|
-
).toBe(testRoute)
|
|
163
|
+
expect(wrapper.get('a').attributes('href')).toBe(testRoute)
|
|
192
164
|
|
|
193
165
|
const routerFn = vi.spyOn(router, 'replace')
|
|
194
166
|
|
|
195
167
|
await wrapper.trigger('click')
|
|
196
168
|
await flushPromises()
|
|
197
169
|
|
|
198
|
-
expect(
|
|
199
|
-
router.currentRoute.value.path
|
|
200
|
-
).toBe(testRoute)
|
|
170
|
+
expect(router.currentRoute.value.path).toBe(testRoute)
|
|
201
171
|
|
|
202
172
|
expect(routerFn).toHaveBeenCalledTimes(1)
|
|
203
173
|
expect(routerFn).toHaveBeenCalledWith(testRoute)
|
|
174
|
+
|
|
175
|
+
vi.restoreAllMocks()
|
|
204
176
|
})
|
|
205
177
|
})
|
|
206
178
|
|
|
@@ -209,16 +181,12 @@ describe('[QBtn API]', () => {
|
|
|
209
181
|
const propVal = 'https://quasar.dev'
|
|
210
182
|
const wrapper = mount(QBtn)
|
|
211
183
|
|
|
212
|
-
expect(
|
|
213
|
-
wrapper.find('a').exists()
|
|
214
|
-
).toBe(false)
|
|
184
|
+
expect(wrapper.find('a').exists()).toBe(false)
|
|
215
185
|
|
|
216
186
|
await wrapper.setProps({ href: propVal })
|
|
217
187
|
await flushPromises()
|
|
218
188
|
|
|
219
|
-
expect(
|
|
220
|
-
wrapper.get('a').attributes('href')
|
|
221
|
-
).toBe(propVal)
|
|
189
|
+
expect(wrapper.get('a').attributes('href')).toBe(propVal)
|
|
222
190
|
})
|
|
223
191
|
})
|
|
224
192
|
|
|
@@ -235,13 +203,9 @@ describe('[QBtn API]', () => {
|
|
|
235
203
|
|
|
236
204
|
const link = wrapper.get('a')
|
|
237
205
|
|
|
238
|
-
expect(
|
|
239
|
-
link.attributes('href')
|
|
240
|
-
).toBe(href)
|
|
206
|
+
expect(link.attributes('href')).toBe(href)
|
|
241
207
|
|
|
242
|
-
expect(
|
|
243
|
-
link.attributes('target')
|
|
244
|
-
).toBe(propVal)
|
|
208
|
+
expect(link.attributes('target')).toBe(propVal)
|
|
245
209
|
})
|
|
246
210
|
})
|
|
247
211
|
|
|
@@ -262,12 +226,12 @@ describe('[QBtn API]', () => {
|
|
|
262
226
|
const propVal = 10
|
|
263
227
|
const wrapper = mount(QBtn)
|
|
264
228
|
|
|
265
|
-
expect(wrapper.text()).not.toContain(
|
|
229
|
+
expect(wrapper.text()).not.toContain(String(propVal))
|
|
266
230
|
|
|
267
231
|
await wrapper.setProps({ label: propVal })
|
|
268
232
|
await flushPromises()
|
|
269
233
|
|
|
270
|
-
expect(wrapper.text()).toContain(
|
|
234
|
+
expect(wrapper.text()).toContain(String(propVal))
|
|
271
235
|
})
|
|
272
236
|
})
|
|
273
237
|
|
|
@@ -276,16 +240,12 @@ describe('[QBtn API]', () => {
|
|
|
276
240
|
const propVal = 'map'
|
|
277
241
|
const wrapper = mount(QBtn)
|
|
278
242
|
|
|
279
|
-
expect(
|
|
280
|
-
wrapper.find('.q-icon').exists()
|
|
281
|
-
).toBe(false)
|
|
243
|
+
expect(wrapper.find('.q-icon').exists()).toBe(false)
|
|
282
244
|
|
|
283
245
|
await wrapper.setProps({ icon: propVal })
|
|
284
246
|
await flushPromises()
|
|
285
247
|
|
|
286
|
-
expect(
|
|
287
|
-
wrapper.get('.q-icon').text()
|
|
288
|
-
).toContain(propVal)
|
|
248
|
+
expect(wrapper.get('.q-icon').text()).toContain(propVal)
|
|
289
249
|
})
|
|
290
250
|
})
|
|
291
251
|
|
|
@@ -294,16 +254,12 @@ describe('[QBtn API]', () => {
|
|
|
294
254
|
const propVal = 'map'
|
|
295
255
|
const wrapper = mount(QBtn)
|
|
296
256
|
|
|
297
|
-
expect(
|
|
298
|
-
wrapper.find('.q-icon').exists()
|
|
299
|
-
).toBe(false)
|
|
257
|
+
expect(wrapper.find('.q-icon').exists()).toBe(false)
|
|
300
258
|
|
|
301
259
|
await wrapper.setProps({ iconRight: propVal })
|
|
302
260
|
await flushPromises()
|
|
303
261
|
|
|
304
|
-
expect(
|
|
305
|
-
wrapper.get('.q-icon').text()
|
|
306
|
-
).toContain(propVal)
|
|
262
|
+
expect(wrapper.get('.q-icon').text()).toContain(propVal)
|
|
307
263
|
})
|
|
308
264
|
})
|
|
309
265
|
|
|
@@ -312,20 +268,14 @@ describe('[QBtn API]', () => {
|
|
|
312
268
|
const wrapper = mount(QBtn)
|
|
313
269
|
const target = wrapper.get('.q-btn')
|
|
314
270
|
|
|
315
|
-
expect(
|
|
316
|
-
target.classes()
|
|
317
|
-
).not.toContain('q-btn--outline')
|
|
271
|
+
expect(target.classes()).not.toContain('q-btn--outline')
|
|
318
272
|
|
|
319
273
|
await wrapper.setProps({ outline: true })
|
|
320
274
|
await flushPromises()
|
|
321
275
|
|
|
322
|
-
expect(
|
|
323
|
-
target.classes()
|
|
324
|
-
).toContain('q-btn--outline')
|
|
276
|
+
expect(target.classes()).toContain('q-btn--outline')
|
|
325
277
|
|
|
326
|
-
expect(
|
|
327
|
-
target.$computedStyle('background')
|
|
328
|
-
).toBe('transparent')
|
|
278
|
+
expect(target.$computedStyle('background')).toBe('transparent')
|
|
329
279
|
})
|
|
330
280
|
})
|
|
331
281
|
|
|
@@ -334,16 +284,12 @@ describe('[QBtn API]', () => {
|
|
|
334
284
|
const wrapper = mount(QBtn)
|
|
335
285
|
const target = wrapper.get('.q-btn')
|
|
336
286
|
|
|
337
|
-
expect(
|
|
338
|
-
target.classes()
|
|
339
|
-
).not.toContain('q-btn--flat')
|
|
287
|
+
expect(target.classes()).not.toContain('q-btn--flat')
|
|
340
288
|
|
|
341
289
|
await wrapper.setProps({ flat: true })
|
|
342
290
|
await flushPromises()
|
|
343
291
|
|
|
344
|
-
expect(
|
|
345
|
-
target.classes()
|
|
346
|
-
).toContain('q-btn--flat')
|
|
292
|
+
expect(target.classes()).toContain('q-btn--flat')
|
|
347
293
|
})
|
|
348
294
|
})
|
|
349
295
|
|
|
@@ -352,16 +298,12 @@ describe('[QBtn API]', () => {
|
|
|
352
298
|
const wrapper = mount(QBtn)
|
|
353
299
|
const target = wrapper.get('.q-btn')
|
|
354
300
|
|
|
355
|
-
expect(
|
|
356
|
-
target.classes()
|
|
357
|
-
).not.toContain('q-btn--unelevated')
|
|
301
|
+
expect(target.classes()).not.toContain('q-btn--unelevated')
|
|
358
302
|
|
|
359
303
|
await wrapper.setProps({ unelevated: true })
|
|
360
304
|
await flushPromises()
|
|
361
305
|
|
|
362
|
-
expect(
|
|
363
|
-
target.classes()
|
|
364
|
-
).toContain('q-btn--unelevated')
|
|
306
|
+
expect(target.classes()).toContain('q-btn--unelevated')
|
|
365
307
|
})
|
|
366
308
|
})
|
|
367
309
|
|
|
@@ -370,20 +312,14 @@ describe('[QBtn API]', () => {
|
|
|
370
312
|
const wrapper = mount(QBtn)
|
|
371
313
|
const target = wrapper.get('.q-btn')
|
|
372
314
|
|
|
373
|
-
expect(
|
|
374
|
-
target.classes()
|
|
375
|
-
).not.toContain('q-btn--rounded')
|
|
315
|
+
expect(target.classes()).not.toContain('q-btn--rounded')
|
|
376
316
|
|
|
377
317
|
await wrapper.setProps({ rounded: true })
|
|
378
318
|
await flushPromises()
|
|
379
319
|
|
|
380
|
-
expect(
|
|
381
|
-
target.classes()
|
|
382
|
-
).toContain('q-btn--rounded')
|
|
320
|
+
expect(target.classes()).toContain('q-btn--rounded')
|
|
383
321
|
|
|
384
|
-
expect(
|
|
385
|
-
target.$computedStyle('border-radius')
|
|
386
|
-
).toBe('28px')
|
|
322
|
+
expect(target.$computedStyle('border-radius')).toBe('28px')
|
|
387
323
|
})
|
|
388
324
|
})
|
|
389
325
|
|
|
@@ -392,24 +328,16 @@ describe('[QBtn API]', () => {
|
|
|
392
328
|
const wrapper = mount(QBtn)
|
|
393
329
|
const target = wrapper.get('.q-btn')
|
|
394
330
|
|
|
395
|
-
expect(
|
|
396
|
-
target.classes()
|
|
397
|
-
).not.toContain('q-btn--push')
|
|
331
|
+
expect(target.classes()).not.toContain('q-btn--push')
|
|
398
332
|
|
|
399
333
|
await wrapper.setProps({ push: true })
|
|
400
334
|
await flushPromises()
|
|
401
335
|
|
|
402
|
-
expect(
|
|
403
|
-
target.classes()
|
|
404
|
-
).toContain('q-btn--push')
|
|
336
|
+
expect(target.classes()).toContain('q-btn--push')
|
|
405
337
|
|
|
406
|
-
expect(
|
|
407
|
-
target.$computedStyle('border-radius')
|
|
408
|
-
).toBe('7px')
|
|
338
|
+
expect(target.$computedStyle('border-radius')).toBe('7px')
|
|
409
339
|
|
|
410
|
-
expect(
|
|
411
|
-
target.$computedStyle('transition')
|
|
412
|
-
).toBeDefined()
|
|
340
|
+
expect(target.$computedStyle('transition')).toBeDefined()
|
|
413
341
|
})
|
|
414
342
|
})
|
|
415
343
|
|
|
@@ -418,20 +346,14 @@ describe('[QBtn API]', () => {
|
|
|
418
346
|
const wrapper = mount(QBtn)
|
|
419
347
|
const target = wrapper.get('.q-btn')
|
|
420
348
|
|
|
421
|
-
expect(
|
|
422
|
-
target.classes()
|
|
423
|
-
).not.toContain('q-btn--square')
|
|
349
|
+
expect(target.classes()).not.toContain('q-btn--square')
|
|
424
350
|
|
|
425
351
|
await wrapper.setProps({ square: true })
|
|
426
352
|
await flushPromises()
|
|
427
353
|
|
|
428
|
-
expect(
|
|
429
|
-
target.classes()
|
|
430
|
-
).toContain('q-btn--square')
|
|
354
|
+
expect(target.classes()).toContain('q-btn--square')
|
|
431
355
|
|
|
432
|
-
expect(
|
|
433
|
-
target.$computedStyle('border-radius')
|
|
434
|
-
).toBe('0')
|
|
356
|
+
expect(target.$computedStyle('border-radius')).toBe('0px')
|
|
435
357
|
})
|
|
436
358
|
})
|
|
437
359
|
|
|
@@ -440,16 +362,12 @@ describe('[QBtn API]', () => {
|
|
|
440
362
|
const wrapper = mount(QBtn)
|
|
441
363
|
const target = wrapper.get('.q-btn')
|
|
442
364
|
|
|
443
|
-
expect(
|
|
444
|
-
target.classes()
|
|
445
|
-
).not.toContain('glossy')
|
|
365
|
+
expect(target.classes()).not.toContain('glossy')
|
|
446
366
|
|
|
447
367
|
await wrapper.setProps({ glossy: true })
|
|
448
368
|
await flushPromises()
|
|
449
369
|
|
|
450
|
-
expect(
|
|
451
|
-
target.classes()
|
|
452
|
-
).toContain('glossy')
|
|
370
|
+
expect(target.classes()).toContain('glossy')
|
|
453
371
|
})
|
|
454
372
|
})
|
|
455
373
|
|
|
@@ -458,16 +376,12 @@ describe('[QBtn API]', () => {
|
|
|
458
376
|
const wrapper = mount(QBtn)
|
|
459
377
|
const target = wrapper.get('.q-btn')
|
|
460
378
|
|
|
461
|
-
expect(
|
|
462
|
-
target.classes()
|
|
463
|
-
).not.toContain('q-btn--fab')
|
|
379
|
+
expect(target.classes()).not.toContain('q-btn--fab')
|
|
464
380
|
|
|
465
381
|
await wrapper.setProps({ fab: true })
|
|
466
382
|
await flushPromises()
|
|
467
383
|
|
|
468
|
-
expect(
|
|
469
|
-
target.classes()
|
|
470
|
-
).toContain('q-btn--fab')
|
|
384
|
+
expect(target.classes()).toContain('q-btn--fab')
|
|
471
385
|
})
|
|
472
386
|
})
|
|
473
387
|
|
|
@@ -476,93 +390,72 @@ describe('[QBtn API]', () => {
|
|
|
476
390
|
const wrapper = mount(QBtn)
|
|
477
391
|
const target = wrapper.get('.q-btn')
|
|
478
392
|
|
|
479
|
-
expect(
|
|
480
|
-
target.classes()
|
|
481
|
-
).not.toContain('q-btn--fab-mini')
|
|
393
|
+
expect(target.classes()).not.toContain('q-btn--fab-mini')
|
|
482
394
|
|
|
483
395
|
await wrapper.setProps({ fabMini: true })
|
|
484
396
|
await flushPromises()
|
|
485
397
|
|
|
486
|
-
expect(
|
|
487
|
-
target.classes()
|
|
488
|
-
).toContain('q-btn--fab-mini')
|
|
398
|
+
expect(target.classes()).toContain('q-btn--fab-mini')
|
|
489
399
|
})
|
|
490
400
|
})
|
|
491
401
|
|
|
492
402
|
describe('[(prop)padding]', () => {
|
|
493
403
|
test.each([
|
|
494
|
-
[
|
|
495
|
-
[
|
|
404
|
+
['pixels; single value', '50px'],
|
|
405
|
+
['pixels; multiple values', '50px 100px']
|
|
496
406
|
])('type String has effect (%s)', async (_, propVal) => {
|
|
497
407
|
const wrapper = mount(QBtn)
|
|
498
408
|
const target = wrapper.get('.q-btn')
|
|
499
409
|
|
|
500
|
-
expect(
|
|
501
|
-
target.$style('padding')
|
|
502
|
-
).not.toBe(propVal)
|
|
410
|
+
expect(target.$style('padding')).not.toBe(propVal)
|
|
503
411
|
|
|
504
412
|
await wrapper.setProps({ padding: propVal })
|
|
505
413
|
await flushPromises()
|
|
506
414
|
|
|
507
|
-
expect(
|
|
508
|
-
target.$style('padding')
|
|
509
|
-
).toBe(propVal)
|
|
415
|
+
expect(target.$style('padding')).toBe(propVal)
|
|
510
416
|
})
|
|
511
417
|
|
|
512
418
|
test('type String has effect (as "xs")', async () => {
|
|
513
419
|
const wrapper = mount(QBtn)
|
|
514
420
|
const target = wrapper.get('.q-btn')
|
|
515
421
|
|
|
516
|
-
expect(
|
|
517
|
-
target.$style('padding')
|
|
518
|
-
).not.toBe(`${ btnPadding.xs }px`)
|
|
422
|
+
expect(target.$style('padding')).not.toBe(`${btnPadding.xs}px`)
|
|
519
423
|
|
|
520
424
|
await wrapper.setProps({ padding: 'xs' })
|
|
521
425
|
await flushPromises()
|
|
522
426
|
|
|
523
|
-
expect(
|
|
524
|
-
target.$style('padding')
|
|
525
|
-
).toBe(`${ btnPadding.xs }px`)
|
|
427
|
+
expect(target.$style('padding')).toBe(`${btnPadding.xs}px`)
|
|
526
428
|
})
|
|
527
429
|
|
|
528
430
|
test('type String has effect (as "xs xl")', async () => {
|
|
529
431
|
const wrapper = mount(QBtn)
|
|
530
432
|
const target = wrapper.get('.q-btn')
|
|
531
433
|
|
|
532
|
-
expect(
|
|
533
|
-
|
|
534
|
-
)
|
|
434
|
+
expect(target.$style('padding')).not.toBe(
|
|
435
|
+
`${btnPadding.xs}px ${btnPadding.xl}px`
|
|
436
|
+
)
|
|
535
437
|
|
|
536
438
|
await wrapper.setProps({ padding: 'xs xl' })
|
|
537
439
|
await flushPromises()
|
|
538
440
|
|
|
539
|
-
expect(
|
|
540
|
-
|
|
541
|
-
)
|
|
441
|
+
expect(target.$style('padding')).toBe(
|
|
442
|
+
`${btnPadding.xs}px ${btnPadding.xl}px`
|
|
443
|
+
)
|
|
542
444
|
})
|
|
543
445
|
|
|
544
446
|
test('padding "0" is applied correctly', async () => {
|
|
545
447
|
const wrapper = mount(QBtn)
|
|
546
448
|
const target = wrapper.get('.q-btn')
|
|
547
449
|
|
|
548
|
-
expect(
|
|
549
|
-
target.$style('min-width')
|
|
550
|
-
).not.toBe('0')
|
|
450
|
+
expect(target.$style('min-width')).not.toBe('0')
|
|
551
451
|
|
|
552
|
-
expect(
|
|
553
|
-
target.$style('min-height')
|
|
554
|
-
).not.toBe('0')
|
|
452
|
+
expect(target.$style('min-height')).not.toBe('0')
|
|
555
453
|
|
|
556
454
|
await wrapper.setProps({ padding: 'xs xl' })
|
|
557
455
|
await flushPromises()
|
|
558
456
|
|
|
559
|
-
expect(
|
|
560
|
-
|
|
561
|
-
).toBe('0')
|
|
562
|
-
|
|
563
|
-
expect(
|
|
564
|
-
target.$style('min-height')
|
|
565
|
-
).toBe('0')
|
|
457
|
+
expect(target.$style('min-width')).toBe('0px')
|
|
458
|
+
expect(target.$style('min-height')).toBe('0px')
|
|
566
459
|
})
|
|
567
460
|
})
|
|
568
461
|
|
|
@@ -584,49 +477,49 @@ describe('[QBtn API]', () => {
|
|
|
584
477
|
expect(cls).toContain('text-white')
|
|
585
478
|
})
|
|
586
479
|
|
|
587
|
-
test.each([
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
test.each([
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
480
|
+
test.each([['push'], ['unelevated']])(
|
|
481
|
+
'(design "%s") is applied correctly',
|
|
482
|
+
async designProp => {
|
|
483
|
+
const wrapper = mount(QBtn)
|
|
484
|
+
const target = wrapper.get('.q-btn')
|
|
485
|
+
|
|
486
|
+
let cls = target.classes()
|
|
487
|
+
expect(cls).not.toContain('bg-red')
|
|
488
|
+
expect(cls).not.toContain('text-white')
|
|
489
|
+
|
|
490
|
+
await wrapper.setProps({
|
|
491
|
+
color: 'red',
|
|
492
|
+
[designProp]: true
|
|
493
|
+
})
|
|
494
|
+
await flushPromises()
|
|
495
|
+
|
|
496
|
+
cls = target.classes()
|
|
497
|
+
expect(cls).toContain('bg-red')
|
|
498
|
+
expect(cls).toContain('text-white')
|
|
499
|
+
}
|
|
500
|
+
)
|
|
501
|
+
|
|
502
|
+
test.each([['flat'], ['outline']])(
|
|
503
|
+
'(design "%s") is applied correctly',
|
|
504
|
+
async designProp => {
|
|
505
|
+
const wrapper = mount(QBtn)
|
|
506
|
+
const target = wrapper.get('.q-btn')
|
|
507
|
+
|
|
508
|
+
let cls = target.classes()
|
|
509
|
+
expect(cls).not.toContain('text-red')
|
|
510
|
+
expect(cls).not.toContain('bg-red')
|
|
511
|
+
|
|
512
|
+
await wrapper.setProps({
|
|
513
|
+
color: 'red',
|
|
514
|
+
[designProp]: true
|
|
515
|
+
})
|
|
516
|
+
await flushPromises()
|
|
517
|
+
|
|
518
|
+
cls = target.classes()
|
|
519
|
+
expect(cls).toContain('text-red')
|
|
520
|
+
expect(cls).not.toContain('bg-red')
|
|
521
|
+
}
|
|
522
|
+
)
|
|
630
523
|
})
|
|
631
524
|
|
|
632
525
|
describe('[(prop)text-color]', () => {
|
|
@@ -672,65 +565,65 @@ describe('[QBtn API]', () => {
|
|
|
672
565
|
expect(cls).not.toContain('bg-blue')
|
|
673
566
|
})
|
|
674
567
|
|
|
675
|
-
test.each([
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
const target = wrapper.get('.q-btn')
|
|
568
|
+
test.each([['push'], ['unelevated']])(
|
|
569
|
+
'(design "%s" + color) is applied correctly',
|
|
570
|
+
async designProp => {
|
|
571
|
+
const wrapper = mount(QBtn)
|
|
572
|
+
const target = wrapper.get('.q-btn')
|
|
681
573
|
|
|
682
|
-
|
|
574
|
+
let cls = target.classes()
|
|
683
575
|
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
576
|
+
expect(cls).not.toContain('bg-red')
|
|
577
|
+
expect(cls).not.toContain('text-red')
|
|
578
|
+
expect(cls).not.toContain('bg-blue')
|
|
579
|
+
expect(cls).not.toContain('text-blue')
|
|
688
580
|
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
581
|
+
await wrapper.setProps({
|
|
582
|
+
color: 'red',
|
|
583
|
+
textColor: 'blue',
|
|
584
|
+
[designProp]: true
|
|
585
|
+
})
|
|
586
|
+
await flushPromises()
|
|
695
587
|
|
|
696
|
-
|
|
588
|
+
cls = target.classes()
|
|
697
589
|
|
|
698
|
-
|
|
699
|
-
|
|
590
|
+
expect(cls).toContain('bg-red')
|
|
591
|
+
expect(cls).toContain('text-blue')
|
|
700
592
|
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
593
|
+
expect(cls).not.toContain('text-red')
|
|
594
|
+
expect(cls).not.toContain('bg-blue')
|
|
595
|
+
}
|
|
596
|
+
)
|
|
704
597
|
|
|
705
|
-
test.each([
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
const target = wrapper.get('.q-btn')
|
|
598
|
+
test.each([['flat'], ['outline']])(
|
|
599
|
+
'(design "%s" + color) is applied correctly',
|
|
600
|
+
async designProp => {
|
|
601
|
+
const wrapper = mount(QBtn)
|
|
602
|
+
const target = wrapper.get('.q-btn')
|
|
711
603
|
|
|
712
|
-
|
|
604
|
+
let cls = target.classes()
|
|
713
605
|
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
606
|
+
expect(cls).not.toContain('text-blue')
|
|
607
|
+
expect(cls).not.toContain('text-red')
|
|
608
|
+
expect(cls).not.toContain('bg-red')
|
|
609
|
+
expect(cls).not.toContain('bg-blue')
|
|
718
610
|
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
611
|
+
await wrapper.setProps({
|
|
612
|
+
color: 'red',
|
|
613
|
+
textColor: 'blue',
|
|
614
|
+
[designProp]: true
|
|
615
|
+
})
|
|
616
|
+
await flushPromises()
|
|
725
617
|
|
|
726
|
-
|
|
618
|
+
cls = target.classes()
|
|
727
619
|
|
|
728
|
-
|
|
620
|
+
expect(cls).toContain('text-blue')
|
|
729
621
|
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
622
|
+
expect(cls).not.toContain('text-red')
|
|
623
|
+
expect(cls).not.toContain('bg-red')
|
|
624
|
+
expect(cls).not.toContain('bg-blue')
|
|
625
|
+
}
|
|
626
|
+
)
|
|
734
627
|
})
|
|
735
628
|
|
|
736
629
|
describe('[(prop)no-caps]', () => {
|
|
@@ -738,20 +631,14 @@ describe('[QBtn API]', () => {
|
|
|
738
631
|
const wrapper = mount(QBtn)
|
|
739
632
|
const target = wrapper.get('.q-btn')
|
|
740
633
|
|
|
741
|
-
expect(
|
|
742
|
-
target.classes()
|
|
743
|
-
).not.toContain('q-btn--no-uppercase')
|
|
634
|
+
expect(target.classes()).not.toContain('q-btn--no-uppercase')
|
|
744
635
|
|
|
745
636
|
await wrapper.setProps({ noCaps: true })
|
|
746
637
|
await flushPromises()
|
|
747
638
|
|
|
748
|
-
expect(
|
|
749
|
-
target.classes()
|
|
750
|
-
).toContain('q-btn--no-uppercase')
|
|
639
|
+
expect(target.classes()).toContain('q-btn--no-uppercase')
|
|
751
640
|
|
|
752
|
-
expect(
|
|
753
|
-
target.$computedStyle('text-transform')
|
|
754
|
-
).toBe('none')
|
|
641
|
+
expect(target.$computedStyle('text-transform')).toBe('none')
|
|
755
642
|
})
|
|
756
643
|
})
|
|
757
644
|
|
|
@@ -777,16 +664,12 @@ describe('[QBtn API]', () => {
|
|
|
777
664
|
const wrapper = mount(QBtn)
|
|
778
665
|
const target = wrapper.get('.q-btn')
|
|
779
666
|
|
|
780
|
-
expect(
|
|
781
|
-
target.classes()
|
|
782
|
-
).not.toContain('q-btn--dense')
|
|
667
|
+
expect(target.classes()).not.toContain('q-btn--dense')
|
|
783
668
|
|
|
784
669
|
await wrapper.setProps({ dense: true })
|
|
785
670
|
await flushPromises()
|
|
786
671
|
|
|
787
|
-
expect(
|
|
788
|
-
target.classes()
|
|
789
|
-
).toContain('q-btn--dense')
|
|
672
|
+
expect(target.classes()).toContain('q-btn--dense')
|
|
790
673
|
})
|
|
791
674
|
})
|
|
792
675
|
|
|
@@ -794,68 +677,50 @@ describe('[QBtn API]', () => {
|
|
|
794
677
|
test('type Boolean has effect', async () => {
|
|
795
678
|
const wrapper = mount(QBtn)
|
|
796
679
|
|
|
797
|
-
expect(
|
|
798
|
-
wrapper.find('.q-ripple')
|
|
799
|
-
.exists()
|
|
800
|
-
).toBe(false)
|
|
680
|
+
expect(wrapper.find('.q-ripple').exists()).toBe(false)
|
|
801
681
|
|
|
802
682
|
await wrapper.setProps({ ripple: true })
|
|
803
683
|
await flushPromises()
|
|
804
684
|
|
|
805
685
|
await wrapper.trigger('click')
|
|
806
686
|
|
|
807
|
-
expect(
|
|
808
|
-
wrapper.find('.q-ripple')
|
|
809
|
-
.exists()
|
|
810
|
-
).toBe(true)
|
|
687
|
+
expect(wrapper.find('.q-ripple').exists()).toBe(true)
|
|
811
688
|
})
|
|
812
689
|
|
|
813
690
|
test('type Object has effect', async () => {
|
|
814
691
|
const propVal = { center: true, color: 'teal', keyCodes: [] }
|
|
815
692
|
const wrapper = mount(QBtn)
|
|
816
693
|
|
|
817
|
-
expect(
|
|
818
|
-
wrapper.find('.q-ripple')
|
|
819
|
-
.exists()
|
|
820
|
-
).toBe(false)
|
|
694
|
+
expect(wrapper.find('.q-ripple').exists()).toBe(false)
|
|
821
695
|
|
|
822
696
|
await wrapper.setProps({ ripple: propVal })
|
|
823
697
|
await flushPromises()
|
|
824
698
|
|
|
825
699
|
await wrapper.trigger('click')
|
|
826
700
|
|
|
827
|
-
expect(
|
|
828
|
-
wrapper.find('.q-ripple')
|
|
829
|
-
.exists()
|
|
830
|
-
).toBe(true)
|
|
701
|
+
expect(wrapper.find('.q-ripple').exists()).toBe(true)
|
|
831
702
|
})
|
|
832
703
|
})
|
|
833
704
|
|
|
834
705
|
describe('[(prop)tabindex]', () => {
|
|
835
706
|
test.each([
|
|
836
|
-
[
|
|
837
|
-
[
|
|
707
|
+
['Number', 100],
|
|
708
|
+
['String', '100']
|
|
838
709
|
])('type %s has effect', async (_, propVal) => {
|
|
839
710
|
const wrapper = mount(QBtn)
|
|
840
711
|
|
|
841
|
-
expect(
|
|
842
|
-
wrapper.attributes('tabindex')
|
|
843
|
-
).not.toBe('' + propVal)
|
|
712
|
+
expect(wrapper.attributes('tabindex')).not.toBe(String(propVal))
|
|
844
713
|
|
|
845
714
|
await wrapper.setProps({ tabindex: propVal })
|
|
846
715
|
await flushPromises()
|
|
847
716
|
|
|
848
|
-
expect(
|
|
849
|
-
wrapper.attributes('tabindex')
|
|
850
|
-
).toBe('' + propVal)
|
|
717
|
+
expect(wrapper.attributes('tabindex')).toBe(String(propVal))
|
|
851
718
|
|
|
852
719
|
// we'll test tabindex + disable
|
|
853
720
|
await wrapper.setProps({ disable: true })
|
|
854
721
|
await flushPromises()
|
|
855
722
|
|
|
856
|
-
expect(
|
|
857
|
-
wrapper.attributes('tabindex')
|
|
858
|
-
).toBe('-1')
|
|
723
|
+
expect(wrapper.attributes('tabindex')).toBe('-1')
|
|
859
724
|
|
|
860
725
|
// we'll now test loading + disable
|
|
861
726
|
await wrapper.setProps({
|
|
@@ -864,37 +729,31 @@ describe('[QBtn API]', () => {
|
|
|
864
729
|
})
|
|
865
730
|
await flushPromises()
|
|
866
731
|
|
|
867
|
-
expect(
|
|
868
|
-
wrapper.attributes('tabindex')
|
|
869
|
-
).toBe('-1')
|
|
732
|
+
expect(wrapper.attributes('tabindex')).toBe('-1')
|
|
870
733
|
})
|
|
871
734
|
})
|
|
872
735
|
|
|
873
736
|
describe('[(prop)align]', () => {
|
|
874
737
|
test.each([
|
|
875
|
-
[
|
|
876
|
-
[
|
|
877
|
-
[
|
|
878
|
-
[
|
|
879
|
-
[
|
|
880
|
-
[
|
|
738
|
+
['left'],
|
|
739
|
+
['center'],
|
|
740
|
+
['right'],
|
|
741
|
+
['between'],
|
|
742
|
+
['around'],
|
|
743
|
+
['evenly']
|
|
881
744
|
])('value "%s" has effect', async propVal => {
|
|
882
745
|
const wrapper = mount(QBtn)
|
|
883
746
|
const target = wrapper.get('.q-btn__content')
|
|
884
747
|
|
|
885
748
|
if (propVal !== 'center') {
|
|
886
749
|
// the default value
|
|
887
|
-
expect(
|
|
888
|
-
target.classes()
|
|
889
|
-
).not.toContain(`justify-${ alignMap[ propVal ] }`)
|
|
750
|
+
expect(target.classes()).not.toContain(`justify-${alignMap[propVal]}`)
|
|
890
751
|
}
|
|
891
752
|
|
|
892
753
|
await wrapper.setProps({ align: propVal })
|
|
893
754
|
await flushPromises()
|
|
894
755
|
|
|
895
|
-
expect(
|
|
896
|
-
target.classes()
|
|
897
|
-
).toContain(`justify-${ alignMap[ propVal ] }`)
|
|
756
|
+
expect(target.classes()).toContain(`justify-${alignMap[propVal]}`)
|
|
898
757
|
})
|
|
899
758
|
})
|
|
900
759
|
|
|
@@ -903,16 +762,12 @@ describe('[QBtn API]', () => {
|
|
|
903
762
|
const wrapper = mount(QBtn)
|
|
904
763
|
const target = wrapper.get('.q-btn__content')
|
|
905
764
|
|
|
906
|
-
expect(
|
|
907
|
-
target.classes()
|
|
908
|
-
).toContain('row')
|
|
765
|
+
expect(target.classes()).toContain('row')
|
|
909
766
|
|
|
910
767
|
await wrapper.setProps({ stack: true })
|
|
911
768
|
await flushPromises()
|
|
912
769
|
|
|
913
|
-
expect(
|
|
914
|
-
target.classes()
|
|
915
|
-
).toContain('column')
|
|
770
|
+
expect(target.classes()).toContain('column')
|
|
916
771
|
})
|
|
917
772
|
})
|
|
918
773
|
|
|
@@ -921,16 +776,12 @@ describe('[QBtn API]', () => {
|
|
|
921
776
|
const wrapper = mount(QBtn)
|
|
922
777
|
const target = wrapper.get('.q-btn')
|
|
923
778
|
|
|
924
|
-
expect(
|
|
925
|
-
target.classes()
|
|
926
|
-
).not.toContain('self-stretch')
|
|
779
|
+
expect(target.classes()).not.toContain('self-stretch')
|
|
927
780
|
|
|
928
781
|
await wrapper.setProps({ stretch: true })
|
|
929
782
|
await flushPromises()
|
|
930
783
|
|
|
931
|
-
expect(
|
|
932
|
-
target.classes()
|
|
933
|
-
).toContain('self-stretch')
|
|
784
|
+
expect(target.classes()).toContain('self-stretch')
|
|
934
785
|
})
|
|
935
786
|
})
|
|
936
787
|
|
|
@@ -939,79 +790,51 @@ describe('[QBtn API]', () => {
|
|
|
939
790
|
const wrapper = mount(QBtn)
|
|
940
791
|
const target = wrapper.get('.q-btn')
|
|
941
792
|
|
|
942
|
-
expect(
|
|
943
|
-
target.attributes('role')
|
|
944
|
-
).not.toBe('progressbar')
|
|
793
|
+
expect(target.attributes('role')).not.toBe('progressbar')
|
|
945
794
|
|
|
946
|
-
expect(
|
|
947
|
-
target.attributes('aria-valuenow')
|
|
948
|
-
).toBeUndefined()
|
|
795
|
+
expect(target.attributes('aria-valuenow')).toBeUndefined()
|
|
949
796
|
|
|
950
797
|
await wrapper.setProps({ loading: true })
|
|
951
798
|
await flushPromises()
|
|
952
799
|
|
|
953
|
-
expect(
|
|
954
|
-
target.attributes('role')
|
|
955
|
-
).not.toBe('progressbar')
|
|
800
|
+
expect(target.attributes('role')).not.toBe('progressbar')
|
|
956
801
|
|
|
957
|
-
expect(
|
|
958
|
-
target.attributes('aria-valuenow')
|
|
959
|
-
).toBeUndefined()
|
|
802
|
+
expect(target.attributes('aria-valuenow')).toBeUndefined()
|
|
960
803
|
|
|
961
|
-
expect(
|
|
962
|
-
wrapper.find('.q-spinner')
|
|
963
|
-
.exists()
|
|
964
|
-
).toBe(true)
|
|
804
|
+
expect(wrapper.find('.q-spinner').exists()).toBe(true)
|
|
965
805
|
|
|
966
|
-
expect(
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
).toContain('q-btn__content--hidden')
|
|
806
|
+
expect(wrapper.get('.q-btn__content').classes()).toContain(
|
|
807
|
+
'q-btn__content--hidden'
|
|
808
|
+
)
|
|
970
809
|
|
|
971
810
|
await wrapper.setProps({ percentage: 50 })
|
|
972
811
|
await flushPromises()
|
|
973
812
|
|
|
974
|
-
expect(
|
|
975
|
-
target.attributes('role')
|
|
976
|
-
).toBe('progressbar')
|
|
813
|
+
expect(target.attributes('role')).toBe('progressbar')
|
|
977
814
|
|
|
978
|
-
expect(
|
|
979
|
-
target.attributes('aria-valuenow')
|
|
980
|
-
).toBe('50')
|
|
815
|
+
expect(target.attributes('aria-valuenow')).toBe('50')
|
|
981
816
|
})
|
|
982
817
|
|
|
983
818
|
test('type null has effect', async () => {
|
|
984
819
|
const wrapper = mount(QBtn)
|
|
985
820
|
const target = wrapper.get('.q-btn')
|
|
986
821
|
|
|
987
|
-
expect(
|
|
988
|
-
target.attributes('role')
|
|
989
|
-
).not.toBe('progressbar')
|
|
822
|
+
expect(target.attributes('role')).not.toBe('progressbar')
|
|
990
823
|
|
|
991
|
-
expect(
|
|
992
|
-
target.attributes('aria-valuenow')
|
|
993
|
-
).toBeUndefined()
|
|
824
|
+
expect(target.attributes('aria-valuenow')).toBeUndefined()
|
|
994
825
|
|
|
995
826
|
await wrapper.setProps({ loading: null })
|
|
996
827
|
await flushPromises()
|
|
997
828
|
|
|
998
|
-
expect(
|
|
999
|
-
target.attributes('role')
|
|
1000
|
-
).not.toBe('progressbar')
|
|
829
|
+
expect(target.attributes('role')).not.toBe('progressbar')
|
|
1001
830
|
|
|
1002
|
-
expect(
|
|
1003
|
-
target.attributes('aria-valuenow')
|
|
1004
|
-
).toBeUndefined()
|
|
831
|
+
expect(target.attributes('aria-valuenow')).toBeUndefined()
|
|
1005
832
|
|
|
1006
|
-
expect(
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
).not.toContain('q-btn__content--hidden')
|
|
833
|
+
expect(wrapper.get('.q-btn__content').classes()).not.toContain(
|
|
834
|
+
'q-btn__content--hidden'
|
|
835
|
+
)
|
|
1010
836
|
|
|
1011
|
-
expect(
|
|
1012
|
-
wrapper.find('.q-spinner')
|
|
1013
|
-
.exists()
|
|
1014
|
-
).toBe(false)
|
|
837
|
+
expect(wrapper.find('.q-spinner').exists()).toBe(false)
|
|
1015
838
|
})
|
|
1016
839
|
})
|
|
1017
840
|
|
|
@@ -1020,24 +843,16 @@ describe('[QBtn API]', () => {
|
|
|
1020
843
|
const wrapper = mount(QBtn)
|
|
1021
844
|
const target = wrapper.get('.q-btn')
|
|
1022
845
|
|
|
1023
|
-
expect(
|
|
1024
|
-
target.classes()
|
|
1025
|
-
).not.toContain('disabled')
|
|
846
|
+
expect(target.classes()).not.toContain('disabled')
|
|
1026
847
|
|
|
1027
|
-
expect(
|
|
1028
|
-
target.attributes('aria-disabled')
|
|
1029
|
-
).not.toBe('true')
|
|
848
|
+
expect(target.attributes('aria-disabled')).not.toBe('true')
|
|
1030
849
|
|
|
1031
850
|
await wrapper.setProps({ disable: true })
|
|
1032
851
|
await flushPromises()
|
|
1033
852
|
|
|
1034
|
-
expect(
|
|
1035
|
-
target.classes()
|
|
1036
|
-
).toContain('disabled')
|
|
853
|
+
expect(target.classes()).toContain('disabled')
|
|
1037
854
|
|
|
1038
|
-
expect(
|
|
1039
|
-
target.attributes('aria-disabled')
|
|
1040
|
-
).toBe('true')
|
|
855
|
+
expect(target.attributes('aria-disabled')).toBe('true')
|
|
1041
856
|
})
|
|
1042
857
|
|
|
1043
858
|
test('link + disable', async () => {
|
|
@@ -1050,20 +865,16 @@ describe('[QBtn API]', () => {
|
|
|
1050
865
|
to: testRoute
|
|
1051
866
|
},
|
|
1052
867
|
global: {
|
|
1053
|
-
plugins: [
|
|
868
|
+
plugins: [router]
|
|
1054
869
|
}
|
|
1055
870
|
})
|
|
1056
871
|
|
|
1057
|
-
expect(
|
|
1058
|
-
wrapper.find('a').exists()
|
|
1059
|
-
).toBe(false)
|
|
872
|
+
expect(wrapper.find('a').exists()).toBe(false)
|
|
1060
873
|
|
|
1061
874
|
await wrapper.trigger('click')
|
|
1062
875
|
await flushPromises()
|
|
1063
876
|
|
|
1064
|
-
expect(
|
|
1065
|
-
router.currentRoute.value.path
|
|
1066
|
-
).not.toBe(testRoute)
|
|
877
|
+
expect(router.currentRoute.value.path).not.toBe(testRoute)
|
|
1067
878
|
})
|
|
1068
879
|
|
|
1069
880
|
test('loading + disable', async () => {
|
|
@@ -1076,16 +887,14 @@ describe('[QBtn API]', () => {
|
|
|
1076
887
|
to: testRoute
|
|
1077
888
|
},
|
|
1078
889
|
global: {
|
|
1079
|
-
plugins: [
|
|
890
|
+
plugins: [router]
|
|
1080
891
|
}
|
|
1081
892
|
})
|
|
1082
893
|
|
|
1083
894
|
await wrapper.trigger('click')
|
|
1084
895
|
await flushPromises()
|
|
1085
896
|
|
|
1086
|
-
expect(
|
|
1087
|
-
router.currentRoute.value.path
|
|
1088
|
-
).not.toBe(testRoute)
|
|
897
|
+
expect(router.currentRoute.value.path).not.toBe(testRoute)
|
|
1089
898
|
})
|
|
1090
899
|
})
|
|
1091
900
|
|
|
@@ -1094,20 +903,14 @@ describe('[QBtn API]', () => {
|
|
|
1094
903
|
const wrapper = mount(QBtn)
|
|
1095
904
|
const target = wrapper.get('.q-btn')
|
|
1096
905
|
|
|
1097
|
-
expect(
|
|
1098
|
-
target.classes()
|
|
1099
|
-
).toContain('q-btn--rectangle')
|
|
906
|
+
expect(target.classes()).toContain('q-btn--rectangle')
|
|
1100
907
|
|
|
1101
908
|
await wrapper.setProps({ round: true })
|
|
1102
909
|
await flushPromises()
|
|
1103
910
|
|
|
1104
|
-
expect(
|
|
1105
|
-
target.classes()
|
|
1106
|
-
).toContain('q-btn--round')
|
|
911
|
+
expect(target.classes()).toContain('q-btn--round')
|
|
1107
912
|
|
|
1108
|
-
expect(
|
|
1109
|
-
target.$computedStyle('border-radius')
|
|
1110
|
-
).toBe('50%')
|
|
913
|
+
expect(target.$computedStyle('border-radius')).toBe('50%')
|
|
1111
914
|
})
|
|
1112
915
|
})
|
|
1113
916
|
|
|
@@ -1116,51 +919,35 @@ describe('[QBtn API]', () => {
|
|
|
1116
919
|
const propVal = 58
|
|
1117
920
|
const wrapper = mount(QBtn)
|
|
1118
921
|
|
|
1119
|
-
expect(
|
|
1120
|
-
wrapper.find('.q-btn__progress')
|
|
1121
|
-
.exists()
|
|
1122
|
-
).toBe(false)
|
|
922
|
+
expect(wrapper.find('.q-btn__progress').exists()).toBe(false)
|
|
1123
923
|
|
|
1124
924
|
expect(
|
|
1125
|
-
wrapper.get('.q-btn')
|
|
1126
|
-
.attributes('aria-valuenow')
|
|
925
|
+
wrapper.get('.q-btn').attributes('aria-valuenow')
|
|
1127
926
|
).toBeUndefined()
|
|
1128
927
|
|
|
1129
928
|
await wrapper.setProps({ percentage: propVal })
|
|
1130
929
|
await flushPromises()
|
|
1131
930
|
|
|
1132
|
-
expect(
|
|
1133
|
-
wrapper.find('.q-btn__progress')
|
|
1134
|
-
.exists()
|
|
1135
|
-
).toBe(false)
|
|
931
|
+
expect(wrapper.find('.q-btn__progress').exists()).toBe(false)
|
|
1136
932
|
|
|
1137
933
|
expect(
|
|
1138
|
-
wrapper.get('.q-btn')
|
|
1139
|
-
.attributes('aria-valuenow')
|
|
934
|
+
wrapper.get('.q-btn').attributes('aria-valuenow')
|
|
1140
935
|
).toBeUndefined()
|
|
1141
936
|
|
|
1142
937
|
await wrapper.setProps({ loading: true })
|
|
1143
938
|
await flushPromises()
|
|
1144
939
|
|
|
1145
|
-
expect(
|
|
1146
|
-
wrapper.find('.q-btn__progress')
|
|
1147
|
-
.exists()
|
|
1148
|
-
).toBe(true)
|
|
940
|
+
expect(wrapper.find('.q-btn__progress').exists()).toBe(true)
|
|
1149
941
|
|
|
1150
942
|
expect(
|
|
1151
|
-
wrapper.get('.q-btn__progress-indicator')
|
|
1152
|
-
|
|
1153
|
-
).toContain(`${ 100 - propVal }%`)
|
|
943
|
+
wrapper.get('.q-btn__progress-indicator').$computedStyle('transform')
|
|
944
|
+
).toContain(`${100 - propVal}%`)
|
|
1154
945
|
|
|
1155
|
-
expect(
|
|
1156
|
-
wrapper.find('.q-spinner')
|
|
1157
|
-
.exists()
|
|
1158
|
-
).toBe(true)
|
|
946
|
+
expect(wrapper.find('.q-spinner').exists()).toBe(true)
|
|
1159
947
|
|
|
1160
|
-
expect(
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
).toBe('' + propVal)
|
|
948
|
+
expect(wrapper.get('.q-btn').attributes('aria-valuenow')).toBe(
|
|
949
|
+
String(propVal)
|
|
950
|
+
)
|
|
1164
951
|
})
|
|
1165
952
|
})
|
|
1166
953
|
|
|
@@ -1169,15 +956,11 @@ describe('[QBtn API]', () => {
|
|
|
1169
956
|
const propVal = 58
|
|
1170
957
|
const wrapper = mount(QBtn)
|
|
1171
958
|
|
|
1172
|
-
expect(
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
).not.toBe('' + propVal)
|
|
959
|
+
expect(wrapper.get('.q-btn').attributes('aria-valuenow')).not.toBe(
|
|
960
|
+
String(propVal)
|
|
961
|
+
)
|
|
1176
962
|
|
|
1177
|
-
expect(
|
|
1178
|
-
wrapper.find('.q-btn__progress')
|
|
1179
|
-
.exists()
|
|
1180
|
-
).toBe(false)
|
|
963
|
+
expect(wrapper.find('.q-btn__progress').exists()).toBe(false)
|
|
1181
964
|
|
|
1182
965
|
await wrapper.setProps({
|
|
1183
966
|
percentage: propVal,
|
|
@@ -1186,15 +969,13 @@ describe('[QBtn API]', () => {
|
|
|
1186
969
|
})
|
|
1187
970
|
await flushPromises()
|
|
1188
971
|
|
|
1189
|
-
expect(
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
).toBe('' + propVal)
|
|
972
|
+
expect(wrapper.get('.q-btn').attributes('aria-valuenow')).toBe(
|
|
973
|
+
String(propVal)
|
|
974
|
+
)
|
|
1193
975
|
|
|
1194
|
-
expect(
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
).toContain('q-btn__progress--dark')
|
|
976
|
+
expect(wrapper.get('.q-btn__progress').classes()).toContain(
|
|
977
|
+
'q-btn__progress--dark'
|
|
978
|
+
)
|
|
1198
979
|
})
|
|
1199
980
|
})
|
|
1200
981
|
})
|
|
@@ -1243,7 +1024,7 @@ describe('[QBtn API]', () => {
|
|
|
1243
1024
|
to: testRoute
|
|
1244
1025
|
},
|
|
1245
1026
|
global: {
|
|
1246
|
-
plugins: [
|
|
1027
|
+
plugins: [router]
|
|
1247
1028
|
}
|
|
1248
1029
|
})
|
|
1249
1030
|
|
|
@@ -1253,7 +1034,7 @@ describe('[QBtn API]', () => {
|
|
|
1253
1034
|
expect(eventList).toHaveProperty('click')
|
|
1254
1035
|
expect(eventList.click).toHaveLength(1)
|
|
1255
1036
|
|
|
1256
|
-
const [
|
|
1037
|
+
const [evt, go] = eventList.click[0]
|
|
1257
1038
|
expect(evt).toBeInstanceOf(Event)
|
|
1258
1039
|
expect(go).toBeTypeOf('function')
|
|
1259
1040
|
})
|
|
@@ -1268,16 +1049,14 @@ describe('[QBtn API]', () => {
|
|
|
1268
1049
|
onClick: e => e.preventDefault()
|
|
1269
1050
|
},
|
|
1270
1051
|
global: {
|
|
1271
|
-
plugins: [
|
|
1052
|
+
plugins: [router]
|
|
1272
1053
|
}
|
|
1273
1054
|
})
|
|
1274
1055
|
|
|
1275
1056
|
await wrapper.trigger('click')
|
|
1276
1057
|
await flushPromises()
|
|
1277
1058
|
|
|
1278
|
-
expect(
|
|
1279
|
-
router.currentRoute.value.path
|
|
1280
|
-
).not.toBe(testRoute)
|
|
1059
|
+
expect(router.currentRoute.value.path).not.toBe(testRoute)
|
|
1281
1060
|
})
|
|
1282
1061
|
|
|
1283
1062
|
test('(with route) can manually navigate by calling go()', async () => {
|
|
@@ -1293,16 +1072,14 @@ describe('[QBtn API]', () => {
|
|
|
1293
1072
|
}
|
|
1294
1073
|
},
|
|
1295
1074
|
global: {
|
|
1296
|
-
plugins: [
|
|
1075
|
+
plugins: [router]
|
|
1297
1076
|
}
|
|
1298
1077
|
})
|
|
1299
1078
|
|
|
1300
1079
|
await wrapper.trigger('click')
|
|
1301
1080
|
await flushPromises()
|
|
1302
1081
|
|
|
1303
|
-
expect(
|
|
1304
|
-
router.currentRoute.value.path
|
|
1305
|
-
).toBe(testRoute)
|
|
1082
|
+
expect(router.currentRoute.value.path).toBe(testRoute)
|
|
1306
1083
|
})
|
|
1307
1084
|
|
|
1308
1085
|
test('is emitting', async () => {
|
|
@@ -1314,7 +1091,7 @@ describe('[QBtn API]', () => {
|
|
|
1314
1091
|
expect(eventList).toHaveProperty('click')
|
|
1315
1092
|
expect(eventList.click).toHaveLength(1)
|
|
1316
1093
|
|
|
1317
|
-
const [
|
|
1094
|
+
const [evt, go] = eventList.click[0]
|
|
1318
1095
|
expect(evt).toBeInstanceOf(Event)
|
|
1319
1096
|
expect(go).toBeUndefined()
|
|
1320
1097
|
})
|
|
@@ -1353,15 +1130,13 @@ describe('[QBtn API]', () => {
|
|
|
1353
1130
|
const event = new MouseEvent('click')
|
|
1354
1131
|
const wrapper = mount(QBtn)
|
|
1355
1132
|
|
|
1356
|
-
expect(
|
|
1357
|
-
wrapper.vm.click(event)
|
|
1358
|
-
).toBeUndefined()
|
|
1133
|
+
expect(wrapper.vm.click(event)).toBeUndefined()
|
|
1359
1134
|
|
|
1360
1135
|
const eventList = wrapper.emitted()
|
|
1361
1136
|
expect(eventList).toHaveProperty('click')
|
|
1362
1137
|
expect(eventList.click).toHaveLength(1)
|
|
1363
1138
|
|
|
1364
|
-
const [
|
|
1139
|
+
const [evt, go] = eventList.click[0]
|
|
1365
1140
|
expect(evt).toBeInstanceOf(Event)
|
|
1366
1141
|
expect(go).toBeUndefined()
|
|
1367
1142
|
})
|
|
@@ -1374,9 +1149,7 @@ describe('[QBtn API]', () => {
|
|
|
1374
1149
|
}
|
|
1375
1150
|
})
|
|
1376
1151
|
|
|
1377
|
-
expect(
|
|
1378
|
-
wrapper.vm.click(event)
|
|
1379
|
-
).toBeUndefined()
|
|
1152
|
+
expect(wrapper.vm.click(event)).toBeUndefined()
|
|
1380
1153
|
|
|
1381
1154
|
const eventList = wrapper.emitted()
|
|
1382
1155
|
expect(eventList).not.toHaveProperty('click')
|