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
package/src/utils/date/date.js
CHANGED
|
@@ -1,30 +1,27 @@
|
|
|
1
|
-
/* eslint no-fallthrough: 0 */
|
|
2
|
-
|
|
3
1
|
import { isDate } from '../is/is.js'
|
|
4
2
|
import { pad, capitalize } from '../format/format.js'
|
|
5
3
|
import { jalaaliMonthLength } from './private.persian.js'
|
|
6
4
|
import Lang, { defaultLang } from '../../plugins/lang/Lang.js'
|
|
7
5
|
|
|
8
|
-
const
|
|
9
|
-
MILLISECONDS_IN_DAY = 86400000,
|
|
6
|
+
const MILLISECONDS_IN_DAY = 86400000,
|
|
10
7
|
MILLISECONDS_IN_HOUR = 3600000,
|
|
11
8
|
MILLISECONDS_IN_MINUTE = 60000,
|
|
12
9
|
defaultMask = 'YYYY-MM-DDTHH:mm:ss.SSSZ',
|
|
13
|
-
token =
|
|
14
|
-
|
|
10
|
+
token =
|
|
11
|
+
/\[((?:[^\]\\]|\\]|\\)*)\]|do|d{1,4}|Mo|M{1,4}|m{1,2}|wo|w{1,2}|Qo|Do|DDDo|D{1,4}|YY(?:YY)?|H{1,2}|h{1,2}|s{1,2}|S{1,3}|Z{1,2}|a{1,2}|[AQExX]/g,
|
|
12
|
+
reverseToken =
|
|
13
|
+
/(\[[^\]]*\])|do|d{1,4}|Mo|M{1,4}|m{1,2}|wo|w{1,2}|Qo|Do|DDDo|D{1,4}|YY(?:YY)?|H{1,2}|h{1,2}|s{1,2}|S{1,3}|Z{1,2}|a{1,2}|[AQExX]|([.*+:?^,\s${}()|\\]+)/g,
|
|
15
14
|
regexStore = {}
|
|
16
15
|
|
|
17
|
-
function getRegexData
|
|
18
|
-
const
|
|
19
|
-
days = '(' + dateLocale.days.join('|') + ')',
|
|
16
|
+
function getRegexData(mask, dateLocale) {
|
|
17
|
+
const days = '(' + dateLocale.days.join('|') + ')',
|
|
20
18
|
key = mask + days
|
|
21
19
|
|
|
22
|
-
if (regexStore[
|
|
23
|
-
return regexStore[
|
|
20
|
+
if (regexStore[key] !== void 0) {
|
|
21
|
+
return regexStore[key]
|
|
24
22
|
}
|
|
25
23
|
|
|
26
|
-
const
|
|
27
|
-
daysShort = '(' + dateLocale.daysShort.join('|') + ')',
|
|
24
|
+
const daysShort = '(' + dateLocale.daysShort.join('|') + ')',
|
|
28
25
|
months = '(' + dateLocale.months.join('|') + ')',
|
|
29
26
|
monthsShort = '(' + dateLocale.monthsShort.join('|') + ')'
|
|
30
27
|
|
|
@@ -150,7 +147,7 @@ function getRegexData (mask, dateLocale) {
|
|
|
150
147
|
|
|
151
148
|
default:
|
|
152
149
|
index--
|
|
153
|
-
if (match[
|
|
150
|
+
if (match[0] === '[') {
|
|
154
151
|
match = match.substring(1, match.length - 1)
|
|
155
152
|
}
|
|
156
153
|
return match.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
|
|
@@ -158,24 +155,21 @@ function getRegexData (mask, dateLocale) {
|
|
|
158
155
|
})
|
|
159
156
|
|
|
160
157
|
const res = { map, regex: new RegExp('^' + regexText) }
|
|
161
|
-
regexStore[
|
|
158
|
+
regexStore[key] = res
|
|
162
159
|
|
|
163
160
|
return res
|
|
164
161
|
}
|
|
165
162
|
|
|
166
|
-
function getDateLocale
|
|
163
|
+
function getDateLocale(paramDateLocale, langProps) {
|
|
167
164
|
return paramDateLocale !== void 0
|
|
168
165
|
? paramDateLocale
|
|
169
|
-
:
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
: defaultLang.date
|
|
173
|
-
)
|
|
166
|
+
: langProps !== void 0
|
|
167
|
+
? langProps.date
|
|
168
|
+
: defaultLang.date
|
|
174
169
|
}
|
|
175
170
|
|
|
176
|
-
function formatTimezone
|
|
177
|
-
const
|
|
178
|
-
sign = offset > 0 ? '-' : '+',
|
|
171
|
+
function formatTimezone(offset, delimeter = '') {
|
|
172
|
+
const sign = offset > 0 ? '-' : '+',
|
|
179
173
|
absOffset = Math.abs(offset),
|
|
180
174
|
hours = Math.floor(absOffset / 60),
|
|
181
175
|
minutes = absOffset % 60
|
|
@@ -183,9 +177,8 @@ function formatTimezone (offset, delimeter = '') {
|
|
|
183
177
|
return sign + pad(hours) + delimeter + pad(minutes)
|
|
184
178
|
}
|
|
185
179
|
|
|
186
|
-
function applyYearMonthDayChange
|
|
187
|
-
let
|
|
188
|
-
year = date.getFullYear(),
|
|
180
|
+
function applyYearMonthDayChange(date, mod, sign) {
|
|
181
|
+
let year = date.getFullYear(),
|
|
189
182
|
month = date.getMonth()
|
|
190
183
|
|
|
191
184
|
const day = date.getDate()
|
|
@@ -215,19 +208,21 @@ function applyYearMonthDayChange (date, mod, sign) {
|
|
|
215
208
|
return date
|
|
216
209
|
}
|
|
217
210
|
|
|
218
|
-
function applyYearMonthDay
|
|
219
|
-
const
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
211
|
+
function applyYearMonthDay(date, mod, middle) {
|
|
212
|
+
const year = mod.year !== void 0 ? mod.year : date[`get${middle}FullYear`](),
|
|
213
|
+
month = mod.month !== void 0 ? mod.month - 1 : date[`get${middle}Month`](),
|
|
214
|
+
maxDay = new Date(year, month + 1, 0).getDate(),
|
|
215
|
+
day = Math.min(
|
|
216
|
+
maxDay,
|
|
217
|
+
mod.date !== void 0 ? mod.date : date[`get${middle}Date`]()
|
|
218
|
+
)
|
|
224
219
|
|
|
225
|
-
date[
|
|
226
|
-
date[
|
|
220
|
+
date[`set${middle}Date`](1)
|
|
221
|
+
date[`set${middle}Month`](2)
|
|
227
222
|
|
|
228
|
-
date[
|
|
229
|
-
date[
|
|
230
|
-
date[
|
|
223
|
+
date[`set${middle}FullYear`](year)
|
|
224
|
+
date[`set${middle}Month`](month)
|
|
225
|
+
date[`set${middle}Date`](day)
|
|
231
226
|
|
|
232
227
|
delete mod.year
|
|
233
228
|
delete mod.month
|
|
@@ -236,23 +231,23 @@ function applyYearMonthDay (date, mod, middle) {
|
|
|
236
231
|
return date
|
|
237
232
|
}
|
|
238
233
|
|
|
239
|
-
function getChange
|
|
240
|
-
const
|
|
241
|
-
mod = normalizeMod(rawMod),
|
|
234
|
+
function getChange(date, rawMod, sign) {
|
|
235
|
+
const mod = normalizeMod(rawMod),
|
|
242
236
|
d = new Date(date),
|
|
243
|
-
t =
|
|
244
|
-
|
|
245
|
-
|
|
237
|
+
t =
|
|
238
|
+
mod.year !== void 0 || mod.month !== void 0 || mod.date !== void 0
|
|
239
|
+
? applyYearMonthDayChange(d, mod, sign) // removes year/month/day
|
|
240
|
+
: d
|
|
246
241
|
|
|
247
242
|
for (const key in mod) {
|
|
248
243
|
const op = capitalize(key)
|
|
249
|
-
t[
|
|
244
|
+
t[`set${op}`](t[`get${op}`]() + sign * mod[key])
|
|
250
245
|
}
|
|
251
246
|
|
|
252
247
|
return t
|
|
253
248
|
}
|
|
254
249
|
|
|
255
|
-
function normalizeMod
|
|
250
|
+
function normalizeMod(mod) {
|
|
256
251
|
const acc = { ...mod }
|
|
257
252
|
|
|
258
253
|
if (mod.years !== void 0) {
|
|
@@ -297,24 +292,24 @@ function normalizeMod (mod) {
|
|
|
297
292
|
return acc
|
|
298
293
|
}
|
|
299
294
|
|
|
300
|
-
export function adjustDate
|
|
301
|
-
const
|
|
302
|
-
mod = normalizeMod(rawMod),
|
|
295
|
+
export function adjustDate(date, rawMod, utc) {
|
|
296
|
+
const mod = normalizeMod(rawMod),
|
|
303
297
|
middle = utc === true ? 'UTC' : '',
|
|
304
298
|
d = new Date(date),
|
|
305
|
-
t =
|
|
306
|
-
|
|
307
|
-
|
|
299
|
+
t =
|
|
300
|
+
mod.year !== void 0 || mod.month !== void 0 || mod.date !== void 0
|
|
301
|
+
? applyYearMonthDay(d, mod, middle) // removes year/month/day
|
|
302
|
+
: d
|
|
308
303
|
|
|
309
304
|
for (const key in mod) {
|
|
310
305
|
const op = key.charAt(0).toUpperCase() + key.slice(1)
|
|
311
|
-
t[
|
|
306
|
+
t[`set${middle}${op}`](mod[key])
|
|
312
307
|
}
|
|
313
308
|
|
|
314
309
|
return t
|
|
315
310
|
}
|
|
316
311
|
|
|
317
|
-
export function extractDate
|
|
312
|
+
export function extractDate(str, mask, dateLocale) {
|
|
318
313
|
const d = __splitDate(str, mask, dateLocale)
|
|
319
314
|
|
|
320
315
|
const date = new Date(
|
|
@@ -334,7 +329,7 @@ export function extractDate (str, mask, dateLocale) {
|
|
|
334
329
|
: getChange(date, { minutes: d.timezoneOffset - tzOffset }, 1)
|
|
335
330
|
}
|
|
336
331
|
|
|
337
|
-
export function __splitDate
|
|
332
|
+
export function __splitDate(str, mask, dateLocale, calendar, defaultModel) {
|
|
338
333
|
const date = {
|
|
339
334
|
year: null,
|
|
340
335
|
month: null,
|
|
@@ -348,14 +343,9 @@ export function __splitDate (str, mask, dateLocale, calendar, defaultModel) {
|
|
|
348
343
|
timeHash: null
|
|
349
344
|
}
|
|
350
345
|
|
|
351
|
-
defaultModel !== void 0
|
|
346
|
+
if (defaultModel !== void 0) Object.assign(date, defaultModel)
|
|
352
347
|
|
|
353
|
-
if (
|
|
354
|
-
str === void 0
|
|
355
|
-
|| str === null
|
|
356
|
-
|| str === ''
|
|
357
|
-
|| typeof str !== 'string'
|
|
358
|
-
) {
|
|
348
|
+
if (str === void 0 || str === null || str === '' || typeof str !== 'string') {
|
|
359
349
|
return date
|
|
360
350
|
}
|
|
361
351
|
|
|
@@ -363,8 +353,7 @@ export function __splitDate (str, mask, dateLocale, calendar, defaultModel) {
|
|
|
363
353
|
mask = defaultMask
|
|
364
354
|
}
|
|
365
355
|
|
|
366
|
-
const
|
|
367
|
-
langOpts = getDateLocale(dateLocale, Lang.props),
|
|
356
|
+
const langOpts = getDateLocale(dateLocale, Lang.props),
|
|
368
357
|
months = langOpts.months,
|
|
369
358
|
monthsShort = langOpts.monthsShort
|
|
370
359
|
|
|
@@ -379,7 +368,7 @@ export function __splitDate (str, mask, dateLocale, calendar, defaultModel) {
|
|
|
379
368
|
let tzString = ''
|
|
380
369
|
|
|
381
370
|
if (map.X !== void 0 || map.x !== void 0) {
|
|
382
|
-
const stamp = parseInt(match[
|
|
371
|
+
const stamp = parseInt(match[map.X !== void 0 ? map.X : map.x], 10)
|
|
383
372
|
|
|
384
373
|
if (isNaN(stamp) === true || stamp < 0) {
|
|
385
374
|
return date
|
|
@@ -394,39 +383,36 @@ export function __splitDate (str, mask, dateLocale, calendar, defaultModel) {
|
|
|
394
383
|
date.minute = d.getMinutes()
|
|
395
384
|
date.second = d.getSeconds()
|
|
396
385
|
date.millisecond = d.getMilliseconds()
|
|
397
|
-
}
|
|
398
|
-
else {
|
|
386
|
+
} else {
|
|
399
387
|
if (map.YYYY !== void 0) {
|
|
400
|
-
date.year = parseInt(match[
|
|
401
|
-
}
|
|
402
|
-
|
|
403
|
-
const y = parseInt(match[ map.YY ], 10)
|
|
388
|
+
date.year = parseInt(match[map.YYYY], 10)
|
|
389
|
+
} else if (map.YY !== void 0) {
|
|
390
|
+
const y = parseInt(match[map.YY], 10)
|
|
404
391
|
date.year = y < 0 ? y : 2000 + y
|
|
405
392
|
}
|
|
406
393
|
|
|
407
394
|
if (map.M !== void 0) {
|
|
408
|
-
date.month = parseInt(match[
|
|
395
|
+
date.month = parseInt(match[map.M], 10)
|
|
409
396
|
if (date.month < 1 || date.month > 12) {
|
|
410
397
|
return date
|
|
411
398
|
}
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
else if (map.MMMM !== void 0) {
|
|
417
|
-
date.month = months.indexOf(match[ map.MMMM ]) + 1
|
|
399
|
+
} else if (map.MMM !== void 0) {
|
|
400
|
+
date.month = monthsShort.indexOf(match[map.MMM]) + 1
|
|
401
|
+
} else if (map.MMMM !== void 0) {
|
|
402
|
+
date.month = months.indexOf(match[map.MMMM]) + 1
|
|
418
403
|
}
|
|
419
404
|
|
|
420
405
|
if (map.D !== void 0) {
|
|
421
|
-
date.day = parseInt(match[
|
|
406
|
+
date.day = parseInt(match[map.D], 10)
|
|
422
407
|
|
|
423
408
|
if (date.year === null || date.month === null || date.day < 1) {
|
|
424
409
|
return date
|
|
425
410
|
}
|
|
426
411
|
|
|
427
|
-
const maxDay =
|
|
428
|
-
|
|
429
|
-
|
|
412
|
+
const maxDay =
|
|
413
|
+
calendar !== 'persian'
|
|
414
|
+
? new Date(date.year, date.month, 0).getDate()
|
|
415
|
+
: jalaaliMonthLength(date.year, date.month)
|
|
430
416
|
|
|
431
417
|
if (date.day > maxDay) {
|
|
432
418
|
return date
|
|
@@ -434,14 +420,13 @@ export function __splitDate (str, mask, dateLocale, calendar, defaultModel) {
|
|
|
434
420
|
}
|
|
435
421
|
|
|
436
422
|
if (map.H !== void 0) {
|
|
437
|
-
date.hour = parseInt(match[
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
date.hour = parseInt(match[ map.h ], 10) % 12
|
|
423
|
+
date.hour = parseInt(match[map.H], 10) % 24
|
|
424
|
+
} else if (map.h !== void 0) {
|
|
425
|
+
date.hour = parseInt(match[map.h], 10) % 12
|
|
441
426
|
if (
|
|
442
|
-
(map.A && match[
|
|
443
|
-
|
|
444
|
-
|
|
427
|
+
(map.A && match[map.A] === 'PM') ||
|
|
428
|
+
(map.a && match[map.a] === 'pm') ||
|
|
429
|
+
(map.aa && match[map.aa] === 'p.m.')
|
|
445
430
|
) {
|
|
446
431
|
date.hour += 12
|
|
447
432
|
}
|
|
@@ -449,45 +434,49 @@ export function __splitDate (str, mask, dateLocale, calendar, defaultModel) {
|
|
|
449
434
|
}
|
|
450
435
|
|
|
451
436
|
if (map.m !== void 0) {
|
|
452
|
-
date.minute = parseInt(match[
|
|
437
|
+
date.minute = parseInt(match[map.m], 10) % 60
|
|
453
438
|
}
|
|
454
439
|
|
|
455
440
|
if (map.s !== void 0) {
|
|
456
|
-
date.second = parseInt(match[
|
|
441
|
+
date.second = parseInt(match[map.s], 10) % 60
|
|
457
442
|
}
|
|
458
443
|
|
|
459
444
|
if (map.S !== void 0) {
|
|
460
|
-
date.millisecond =
|
|
445
|
+
date.millisecond =
|
|
446
|
+
parseInt(match[map.S], 10) * 10 ** (3 - match[map.S].length)
|
|
461
447
|
}
|
|
462
448
|
|
|
463
449
|
if (map.Z !== void 0 || map.ZZ !== void 0) {
|
|
464
|
-
tzString =
|
|
465
|
-
|
|
450
|
+
tzString =
|
|
451
|
+
map.Z !== void 0 ? match[map.Z].replace(':', '') : match[map.ZZ]
|
|
452
|
+
date.timezoneOffset =
|
|
453
|
+
(tzString[0] === '+' ? -1 : 1) *
|
|
454
|
+
(60 * tzString.slice(1, 3) + Number(tzString.slice(3, 5)))
|
|
466
455
|
}
|
|
467
456
|
}
|
|
468
457
|
|
|
469
|
-
date.dateHash =
|
|
470
|
-
|
|
458
|
+
date.dateHash =
|
|
459
|
+
pad(date.year, 4) + '/' + pad(date.month) + '/' + pad(date.day)
|
|
460
|
+
date.timeHash =
|
|
461
|
+
pad(date.hour) + ':' + pad(date.minute) + ':' + pad(date.second) + tzString
|
|
471
462
|
|
|
472
463
|
return date
|
|
473
464
|
}
|
|
474
465
|
|
|
475
|
-
export function isValid
|
|
476
|
-
return typeof date === 'number'
|
|
477
|
-
? true
|
|
478
|
-
: isNaN(Date.parse(date)) === false
|
|
466
|
+
export function isValid(date) {
|
|
467
|
+
return typeof date === 'number' ? true : isNaN(Date.parse(date)) === false
|
|
479
468
|
}
|
|
480
469
|
|
|
481
|
-
export function buildDate
|
|
470
|
+
export function buildDate(mod, utc) {
|
|
482
471
|
return adjustDate(new Date(), mod, utc)
|
|
483
472
|
}
|
|
484
473
|
|
|
485
|
-
export function getDayOfWeek
|
|
474
|
+
export function getDayOfWeek(date) {
|
|
486
475
|
const dow = new Date(date).getDay()
|
|
487
476
|
return dow === 0 ? 7 : dow
|
|
488
477
|
}
|
|
489
478
|
|
|
490
|
-
export function getWeekOfYear
|
|
479
|
+
export function getWeekOfYear(date) {
|
|
491
480
|
// Remove time components of date
|
|
492
481
|
const thursday = new Date(date.getFullYear(), date.getMonth(), date.getDate())
|
|
493
482
|
|
|
@@ -498,7 +487,9 @@ export function getWeekOfYear (date) {
|
|
|
498
487
|
const firstThursday = new Date(thursday.getFullYear(), 0, 4)
|
|
499
488
|
|
|
500
489
|
// Change date to Thursday same week
|
|
501
|
-
firstThursday.setDate(
|
|
490
|
+
firstThursday.setDate(
|
|
491
|
+
firstThursday.getDate() - ((firstThursday.getDay() + 6) % 7) + 3
|
|
492
|
+
)
|
|
502
493
|
|
|
503
494
|
// Check if daylight-saving-time-switch occurred and correct for it
|
|
504
495
|
const ds = thursday.getTimezoneOffset() - firstThursday.getTimezoneOffset()
|
|
@@ -509,139 +500,155 @@ export function getWeekOfYear (date) {
|
|
|
509
500
|
return 1 + Math.floor(weekDiff)
|
|
510
501
|
}
|
|
511
502
|
|
|
512
|
-
function getDayIdentifier
|
|
503
|
+
function getDayIdentifier(date) {
|
|
513
504
|
return date.getFullYear() * 10000 + date.getMonth() * 100 + date.getDate()
|
|
514
505
|
}
|
|
515
506
|
|
|
516
|
-
function getDateIdentifier
|
|
507
|
+
function getDateIdentifier(date, onlyDate /* = false */) {
|
|
517
508
|
const d = new Date(date)
|
|
518
509
|
return onlyDate === true ? getDayIdentifier(d) : d.getTime()
|
|
519
510
|
}
|
|
520
511
|
|
|
521
|
-
export function isBetweenDates
|
|
522
|
-
const
|
|
523
|
-
d1 = getDateIdentifier(from, opts.onlyDate),
|
|
512
|
+
export function isBetweenDates(date, from, to, opts = {}) {
|
|
513
|
+
const d1 = getDateIdentifier(from, opts.onlyDate),
|
|
524
514
|
d2 = getDateIdentifier(to, opts.onlyDate),
|
|
525
515
|
cur = getDateIdentifier(date, opts.onlyDate)
|
|
526
516
|
|
|
527
|
-
return (
|
|
528
|
-
|
|
517
|
+
return (
|
|
518
|
+
(cur > d1 || (opts.inclusiveFrom === true && cur === d1)) &&
|
|
519
|
+
(cur < d2 || (opts.inclusiveTo === true && cur === d2))
|
|
520
|
+
)
|
|
529
521
|
}
|
|
530
522
|
|
|
531
|
-
export function addToDate
|
|
523
|
+
export function addToDate(date, mod) {
|
|
532
524
|
return getChange(date, mod, 1)
|
|
533
525
|
}
|
|
534
|
-
export function subtractFromDate
|
|
526
|
+
export function subtractFromDate(date, mod) {
|
|
535
527
|
return getChange(date, mod, -1)
|
|
536
528
|
}
|
|
537
529
|
|
|
538
|
-
export function startOfDate
|
|
539
|
-
const
|
|
540
|
-
|
|
541
|
-
prefix = `set${ utc === true ? 'UTC' : '' }`
|
|
530
|
+
export function startOfDate(date, unit, utc) {
|
|
531
|
+
const t = new Date(date),
|
|
532
|
+
prefix = `set${utc === true ? 'UTC' : ''}`
|
|
542
533
|
|
|
543
534
|
switch (unit) {
|
|
544
535
|
case 'year':
|
|
545
536
|
case 'years':
|
|
546
|
-
t[
|
|
537
|
+
t[`${prefix}Month`](0)
|
|
547
538
|
case 'month':
|
|
548
539
|
case 'months':
|
|
549
|
-
t[
|
|
540
|
+
t[`${prefix}Date`](1)
|
|
550
541
|
case 'day':
|
|
551
542
|
case 'days':
|
|
552
543
|
case 'date':
|
|
553
|
-
t[
|
|
544
|
+
t[`${prefix}Hours`](0)
|
|
554
545
|
case 'hour':
|
|
555
546
|
case 'hours':
|
|
556
|
-
t[
|
|
547
|
+
t[`${prefix}Minutes`](0)
|
|
557
548
|
case 'minute':
|
|
558
549
|
case 'minutes':
|
|
559
|
-
t[
|
|
550
|
+
t[`${prefix}Seconds`](0)
|
|
560
551
|
case 'second':
|
|
561
552
|
case 'seconds':
|
|
562
|
-
t[
|
|
553
|
+
t[`${prefix}Milliseconds`](0)
|
|
563
554
|
}
|
|
564
555
|
return t
|
|
565
556
|
}
|
|
566
557
|
|
|
567
|
-
export function endOfDate
|
|
568
|
-
const
|
|
569
|
-
|
|
570
|
-
prefix = `set${ utc === true ? 'UTC' : '' }`
|
|
558
|
+
export function endOfDate(date, unit, utc) {
|
|
559
|
+
const t = new Date(date),
|
|
560
|
+
prefix = `set${utc === true ? 'UTC' : ''}`
|
|
571
561
|
|
|
572
562
|
switch (unit) {
|
|
573
563
|
case 'year':
|
|
574
564
|
case 'years':
|
|
575
|
-
t[
|
|
565
|
+
t[`${prefix}Month`](11)
|
|
576
566
|
case 'month':
|
|
577
567
|
case 'months':
|
|
578
|
-
t[
|
|
568
|
+
t[`${prefix}Date`](daysInMonth(t))
|
|
579
569
|
case 'day':
|
|
580
570
|
case 'days':
|
|
581
571
|
case 'date':
|
|
582
|
-
t[
|
|
572
|
+
t[`${prefix}Hours`](23)
|
|
583
573
|
case 'hour':
|
|
584
574
|
case 'hours':
|
|
585
|
-
t[
|
|
575
|
+
t[`${prefix}Minutes`](59)
|
|
586
576
|
case 'minute':
|
|
587
577
|
case 'minutes':
|
|
588
|
-
t[
|
|
578
|
+
t[`${prefix}Seconds`](59)
|
|
589
579
|
case 'second':
|
|
590
580
|
case 'seconds':
|
|
591
|
-
t[
|
|
581
|
+
t[`${prefix}Milliseconds`](999)
|
|
592
582
|
}
|
|
593
583
|
return t
|
|
594
584
|
}
|
|
595
585
|
|
|
596
|
-
export function getMaxDate
|
|
586
|
+
export function getMaxDate(date /* , ...args */) {
|
|
597
587
|
let t = new Date(date)
|
|
598
588
|
Array.prototype.slice.call(arguments, 1).forEach(d => {
|
|
599
589
|
t = Math.max(t, new Date(d))
|
|
600
590
|
})
|
|
601
|
-
return t
|
|
591
|
+
return new Date(t)
|
|
602
592
|
}
|
|
603
593
|
|
|
604
|
-
export function getMinDate
|
|
594
|
+
export function getMinDate(date /*, ...args */) {
|
|
605
595
|
let t = new Date(date)
|
|
606
596
|
Array.prototype.slice.call(arguments, 1).forEach(d => {
|
|
607
597
|
t = Math.min(t, new Date(d))
|
|
608
598
|
})
|
|
609
|
-
return t
|
|
599
|
+
return new Date(t)
|
|
610
600
|
}
|
|
611
601
|
|
|
612
|
-
function getDiff
|
|
602
|
+
function getDiff(t, sub, interval) {
|
|
613
603
|
return (
|
|
614
|
-
(t.getTime() -
|
|
615
|
-
|
|
616
|
-
|
|
604
|
+
(t.getTime() -
|
|
605
|
+
t.getTimezoneOffset() * MILLISECONDS_IN_MINUTE -
|
|
606
|
+
(sub.getTime() - sub.getTimezoneOffset() * MILLISECONDS_IN_MINUTE)) /
|
|
607
|
+
interval
|
|
608
|
+
)
|
|
617
609
|
}
|
|
618
610
|
|
|
619
|
-
export function getDateDiff
|
|
620
|
-
const
|
|
621
|
-
t = new Date(date),
|
|
611
|
+
export function getDateDiff(date, subtract, unit = 'days') {
|
|
612
|
+
const t = new Date(date),
|
|
622
613
|
sub = new Date(subtract)
|
|
623
614
|
|
|
624
615
|
switch (unit) {
|
|
625
616
|
case 'years':
|
|
626
617
|
case 'year':
|
|
627
|
-
return
|
|
618
|
+
return t.getFullYear() - sub.getFullYear()
|
|
628
619
|
|
|
629
620
|
case 'months':
|
|
630
621
|
case 'month':
|
|
631
|
-
return (
|
|
622
|
+
return (
|
|
623
|
+
(t.getFullYear() - sub.getFullYear()) * 12 +
|
|
624
|
+
t.getMonth() -
|
|
625
|
+
sub.getMonth()
|
|
626
|
+
)
|
|
632
627
|
|
|
633
628
|
case 'days':
|
|
634
629
|
case 'day':
|
|
635
630
|
case 'date':
|
|
636
|
-
return getDiff(
|
|
631
|
+
return getDiff(
|
|
632
|
+
startOfDate(t, 'day'),
|
|
633
|
+
startOfDate(sub, 'day'),
|
|
634
|
+
MILLISECONDS_IN_DAY
|
|
635
|
+
)
|
|
637
636
|
|
|
638
637
|
case 'hours':
|
|
639
638
|
case 'hour':
|
|
640
|
-
return getDiff(
|
|
639
|
+
return getDiff(
|
|
640
|
+
startOfDate(t, 'hour'),
|
|
641
|
+
startOfDate(sub, 'hour'),
|
|
642
|
+
MILLISECONDS_IN_HOUR
|
|
643
|
+
)
|
|
641
644
|
|
|
642
645
|
case 'minutes':
|
|
643
646
|
case 'minute':
|
|
644
|
-
return getDiff(
|
|
647
|
+
return getDiff(
|
|
648
|
+
startOfDate(t, 'minute'),
|
|
649
|
+
startOfDate(sub, 'minute'),
|
|
650
|
+
MILLISECONDS_IN_MINUTE
|
|
651
|
+
)
|
|
645
652
|
|
|
646
653
|
case 'seconds':
|
|
647
654
|
case 'second':
|
|
@@ -649,17 +656,19 @@ export function getDateDiff (date, subtract, unit = 'days') {
|
|
|
649
656
|
}
|
|
650
657
|
}
|
|
651
658
|
|
|
652
|
-
export function getDayOfYear
|
|
659
|
+
export function getDayOfYear(date) {
|
|
653
660
|
return getDateDiff(date, startOfDate(date, 'year'), 'days') + 1
|
|
654
661
|
}
|
|
655
662
|
|
|
656
|
-
export function inferDateFormat
|
|
663
|
+
export function inferDateFormat(date) {
|
|
657
664
|
return isDate(date) === true
|
|
658
665
|
? 'date'
|
|
659
|
-
:
|
|
666
|
+
: typeof date === 'number'
|
|
667
|
+
? 'number'
|
|
668
|
+
: 'string'
|
|
660
669
|
}
|
|
661
670
|
|
|
662
|
-
export function getDateBetween
|
|
671
|
+
export function getDateBetween(date, min, max) {
|
|
663
672
|
const t = new Date(date)
|
|
664
673
|
|
|
665
674
|
if (min) {
|
|
@@ -679,9 +688,8 @@ export function getDateBetween (date, min, max) {
|
|
|
679
688
|
return t
|
|
680
689
|
}
|
|
681
690
|
|
|
682
|
-
export function isSameDate
|
|
683
|
-
const
|
|
684
|
-
t = new Date(date),
|
|
691
|
+
export function isSameDate(date, date2, unit) {
|
|
692
|
+
const t = new Date(date),
|
|
685
693
|
d = new Date(date2)
|
|
686
694
|
|
|
687
695
|
if (unit === void 0) {
|
|
@@ -722,40 +730,41 @@ export function isSameDate (date, date2, unit) {
|
|
|
722
730
|
}
|
|
723
731
|
break
|
|
724
732
|
default:
|
|
725
|
-
throw new Error(`date isSameDate unknown unit ${
|
|
733
|
+
throw new Error(`date isSameDate unknown unit ${unit}`)
|
|
726
734
|
}
|
|
727
735
|
|
|
728
736
|
return true
|
|
729
737
|
}
|
|
730
738
|
|
|
731
|
-
export function daysInMonth
|
|
732
|
-
return
|
|
739
|
+
export function daysInMonth(date) {
|
|
740
|
+
return new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate()
|
|
733
741
|
}
|
|
734
742
|
|
|
735
|
-
function getOrdinal
|
|
743
|
+
function getOrdinal(n) {
|
|
736
744
|
if (n >= 11 && n <= 13) {
|
|
737
|
-
return `${
|
|
745
|
+
return `${n}th`
|
|
738
746
|
}
|
|
739
747
|
switch (n % 10) {
|
|
740
|
-
case 1:
|
|
741
|
-
|
|
742
|
-
case
|
|
748
|
+
case 1:
|
|
749
|
+
return `${n}st`
|
|
750
|
+
case 2:
|
|
751
|
+
return `${n}nd`
|
|
752
|
+
case 3:
|
|
753
|
+
return `${n}rd`
|
|
743
754
|
}
|
|
744
|
-
return `${
|
|
755
|
+
return `${n}th`
|
|
745
756
|
}
|
|
746
757
|
|
|
747
758
|
const formatter = {
|
|
748
759
|
// Year: 00, 01, ..., 99
|
|
749
|
-
YY
|
|
760
|
+
YY(date, dateLocale, forcedYear) {
|
|
750
761
|
// workaround for < 1900 with new Date()
|
|
751
|
-
const y = this.YYYY(date, dateLocale, forcedYear) % 100
|
|
752
|
-
return y >= 0
|
|
753
|
-
? pad(y)
|
|
754
|
-
: '-' + pad(Math.abs(y))
|
|
762
|
+
const y = this.YYYY(date, dateLocale, forcedYear) % 100 // oxlint-disable-line new-cap
|
|
763
|
+
return y >= 0 ? pad(y) : '-' + pad(Math.abs(y))
|
|
755
764
|
},
|
|
756
765
|
|
|
757
766
|
// Year: 1900, 1901, ..., 2099
|
|
758
|
-
YYYY
|
|
767
|
+
YYYY(date, _dateLocale, forcedYear) {
|
|
759
768
|
// workaround for < 1900 with new Date()
|
|
760
769
|
return forcedYear !== void 0 && forcedYear !== null
|
|
761
770
|
? forcedYear
|
|
@@ -763,223 +772,225 @@ const formatter = {
|
|
|
763
772
|
},
|
|
764
773
|
|
|
765
774
|
// Month: 1, 2, ..., 12
|
|
766
|
-
M
|
|
775
|
+
M(date) {
|
|
767
776
|
return date.getMonth() + 1
|
|
768
777
|
},
|
|
769
778
|
|
|
770
779
|
// Month: 1st, 2nd, ..., 12th
|
|
771
|
-
Mo
|
|
780
|
+
Mo(date) {
|
|
772
781
|
return getOrdinal(date.getMonth() + 1)
|
|
773
782
|
},
|
|
774
783
|
|
|
775
784
|
// Month: 01, 02, ..., 12
|
|
776
|
-
MM
|
|
785
|
+
MM(date) {
|
|
777
786
|
return pad(date.getMonth() + 1)
|
|
778
787
|
},
|
|
779
788
|
|
|
780
789
|
// Month Short Name: Jan, Feb, ...
|
|
781
|
-
MMM
|
|
782
|
-
return dateLocale.monthsShort[
|
|
790
|
+
MMM(date, dateLocale) {
|
|
791
|
+
return dateLocale.monthsShort[date.getMonth()]
|
|
783
792
|
},
|
|
784
793
|
|
|
785
794
|
// Month Name: January, February, ...
|
|
786
|
-
MMMM
|
|
787
|
-
return dateLocale.months[
|
|
795
|
+
MMMM(date, dateLocale) {
|
|
796
|
+
return dateLocale.months[date.getMonth()]
|
|
788
797
|
},
|
|
789
798
|
|
|
790
799
|
// Quarter: 1, 2, 3, 4
|
|
791
|
-
Q
|
|
800
|
+
Q(date) {
|
|
792
801
|
return Math.ceil((date.getMonth() + 1) / 3)
|
|
793
802
|
},
|
|
794
803
|
|
|
795
804
|
// Quarter: 1st, 2nd, 3rd, 4th
|
|
796
|
-
Qo
|
|
797
|
-
return getOrdinal(this.Q(date))
|
|
805
|
+
Qo(date) {
|
|
806
|
+
return getOrdinal(this.Q(date)) // oxlint-disable-line new-cap
|
|
798
807
|
},
|
|
799
808
|
|
|
800
809
|
// Day of month: 1, 2, ..., 31
|
|
801
|
-
D
|
|
810
|
+
D(date) {
|
|
802
811
|
return date.getDate()
|
|
803
812
|
},
|
|
804
813
|
|
|
805
814
|
// Day of month: 1st, 2nd, ..., 31st
|
|
806
|
-
Do
|
|
815
|
+
Do(date) {
|
|
807
816
|
return getOrdinal(date.getDate())
|
|
808
817
|
},
|
|
809
818
|
|
|
810
819
|
// Day of month: 01, 02, ..., 31
|
|
811
|
-
DD
|
|
820
|
+
DD(date) {
|
|
812
821
|
return pad(date.getDate())
|
|
813
822
|
},
|
|
814
823
|
|
|
815
824
|
// Day of year: 1, 2, ..., 366
|
|
816
|
-
DDD
|
|
825
|
+
DDD(date) {
|
|
817
826
|
return getDayOfYear(date)
|
|
818
827
|
},
|
|
819
828
|
|
|
820
829
|
// Day of year: 1st, 2nd, ..., 366th
|
|
821
|
-
DDDo
|
|
830
|
+
DDDo(date) {
|
|
822
831
|
return getOrdinal(getDayOfYear(date))
|
|
823
832
|
},
|
|
824
833
|
|
|
825
834
|
// Day of year: 001, 002, ..., 366
|
|
826
|
-
DDDD
|
|
835
|
+
DDDD(date) {
|
|
827
836
|
return pad(getDayOfYear(date), 3)
|
|
828
837
|
},
|
|
829
838
|
|
|
830
839
|
// Day of week: 0, 1, ..., 6
|
|
831
|
-
d
|
|
840
|
+
d(date) {
|
|
832
841
|
return date.getDay()
|
|
833
842
|
},
|
|
834
843
|
|
|
835
844
|
// Day of week: 0th, 1st, ..., 6th
|
|
836
|
-
do
|
|
845
|
+
do(date) {
|
|
837
846
|
return getOrdinal(date.getDay())
|
|
838
847
|
},
|
|
839
848
|
|
|
840
849
|
// Day of week: Su, Mo, ...
|
|
841
|
-
dd
|
|
842
|
-
return
|
|
850
|
+
dd(date, dateLocale) {
|
|
851
|
+
return dateLocale.days[date.getDay()].slice(0, 2)
|
|
843
852
|
},
|
|
844
853
|
|
|
845
854
|
// Day of week: Sun, Mon, ...
|
|
846
|
-
ddd
|
|
847
|
-
return dateLocale.daysShort[
|
|
855
|
+
ddd(date, dateLocale) {
|
|
856
|
+
return dateLocale.daysShort[date.getDay()]
|
|
848
857
|
},
|
|
849
858
|
|
|
850
859
|
// Day of week: Sunday, Monday, ...
|
|
851
|
-
dddd
|
|
852
|
-
return dateLocale.days[
|
|
860
|
+
dddd(date, dateLocale) {
|
|
861
|
+
return dateLocale.days[date.getDay()]
|
|
853
862
|
},
|
|
854
863
|
|
|
855
864
|
// Day of ISO week: 1, 2, ..., 7
|
|
856
|
-
E
|
|
865
|
+
E(date) {
|
|
857
866
|
return date.getDay() || 7
|
|
858
867
|
},
|
|
859
868
|
|
|
860
869
|
// Week of Year: 1 2 ... 52 53
|
|
861
|
-
w
|
|
870
|
+
w(date) {
|
|
862
871
|
return getWeekOfYear(date)
|
|
863
872
|
},
|
|
864
873
|
|
|
865
874
|
// Week of Year: 1st 2nd ... 52nd 53rd
|
|
866
|
-
wo
|
|
875
|
+
wo(date) {
|
|
867
876
|
return getOrdinal(getWeekOfYear(date))
|
|
868
877
|
},
|
|
869
878
|
|
|
870
879
|
// Week of Year: 01 02 ... 52 53
|
|
871
|
-
ww
|
|
880
|
+
ww(date) {
|
|
872
881
|
return pad(getWeekOfYear(date))
|
|
873
882
|
},
|
|
874
883
|
|
|
875
884
|
// Hour: 0, 1, ... 23
|
|
876
|
-
H
|
|
885
|
+
H(date) {
|
|
877
886
|
return date.getHours()
|
|
878
887
|
},
|
|
879
888
|
|
|
880
889
|
// Hour: 00, 01, ..., 23
|
|
881
|
-
HH
|
|
890
|
+
HH(date) {
|
|
882
891
|
return pad(date.getHours())
|
|
883
892
|
},
|
|
884
893
|
|
|
885
894
|
// Hour: 1, 2, ..., 12
|
|
886
|
-
h
|
|
895
|
+
h(date) {
|
|
887
896
|
const hours = date.getHours()
|
|
888
|
-
return hours === 0
|
|
889
|
-
? 12
|
|
890
|
-
: (hours > 12 ? hours % 12 : hours)
|
|
897
|
+
return hours === 0 ? 12 : hours > 12 ? hours % 12 : hours
|
|
891
898
|
},
|
|
892
899
|
|
|
893
900
|
// Hour: 01, 02, ..., 12
|
|
894
|
-
hh
|
|
901
|
+
hh(date) {
|
|
895
902
|
return pad(this.h(date))
|
|
896
903
|
},
|
|
897
904
|
|
|
898
905
|
// Minute: 0, 1, ..., 59
|
|
899
|
-
m
|
|
906
|
+
m(date) {
|
|
900
907
|
return date.getMinutes()
|
|
901
908
|
},
|
|
902
909
|
|
|
903
910
|
// Minute: 00, 01, ..., 59
|
|
904
|
-
mm
|
|
911
|
+
mm(date) {
|
|
905
912
|
return pad(date.getMinutes())
|
|
906
913
|
},
|
|
907
914
|
|
|
908
915
|
// Second: 0, 1, ..., 59
|
|
909
|
-
s
|
|
916
|
+
s(date) {
|
|
910
917
|
return date.getSeconds()
|
|
911
918
|
},
|
|
912
919
|
|
|
913
920
|
// Second: 00, 01, ..., 59
|
|
914
|
-
ss
|
|
921
|
+
ss(date) {
|
|
915
922
|
return pad(date.getSeconds())
|
|
916
923
|
},
|
|
917
924
|
|
|
918
925
|
// 1/10 of second: 0, 1, ..., 9
|
|
919
|
-
S
|
|
926
|
+
S(date) {
|
|
920
927
|
return Math.floor(date.getMilliseconds() / 100)
|
|
921
928
|
},
|
|
922
929
|
|
|
923
930
|
// 1/100 of second: 00, 01, ..., 99
|
|
924
|
-
SS
|
|
931
|
+
SS(date) {
|
|
925
932
|
return pad(Math.floor(date.getMilliseconds() / 10))
|
|
926
933
|
},
|
|
927
934
|
|
|
928
935
|
// Millisecond: 000, 001, ..., 999
|
|
929
|
-
SSS
|
|
936
|
+
SSS(date) {
|
|
930
937
|
return pad(date.getMilliseconds(), 3)
|
|
931
938
|
},
|
|
932
939
|
|
|
933
940
|
// Meridiem: AM, PM
|
|
934
|
-
A
|
|
941
|
+
A(date) {
|
|
935
942
|
return date.getHours() < 12 ? 'AM' : 'PM'
|
|
936
943
|
},
|
|
937
944
|
|
|
938
945
|
// Meridiem: am, pm
|
|
939
|
-
a
|
|
946
|
+
a(date) {
|
|
940
947
|
return date.getHours() < 12 ? 'am' : 'pm'
|
|
941
948
|
},
|
|
942
949
|
|
|
943
950
|
// Meridiem: a.m., p.m.
|
|
944
|
-
aa
|
|
951
|
+
aa(date) {
|
|
945
952
|
return date.getHours() < 12 ? 'a.m.' : 'p.m.'
|
|
946
953
|
},
|
|
947
954
|
|
|
948
955
|
// Timezone: -01:00, +00:00, ... +12:00
|
|
949
|
-
Z
|
|
950
|
-
const tzOffset =
|
|
951
|
-
|
|
952
|
-
|
|
956
|
+
Z(date, _dateLocale, _forcedYear, forcedTimezoneOffset) {
|
|
957
|
+
const tzOffset =
|
|
958
|
+
forcedTimezoneOffset === void 0 || forcedTimezoneOffset === null
|
|
959
|
+
? date.getTimezoneOffset()
|
|
960
|
+
: forcedTimezoneOffset
|
|
953
961
|
|
|
954
962
|
return formatTimezone(tzOffset, ':')
|
|
955
963
|
},
|
|
956
964
|
|
|
957
965
|
// Timezone: -0100, +0000, ... +1200
|
|
958
|
-
ZZ
|
|
959
|
-
const tzOffset =
|
|
960
|
-
|
|
961
|
-
|
|
966
|
+
ZZ(date, _dateLocale, _forcedYear, forcedTimezoneOffset) {
|
|
967
|
+
const tzOffset =
|
|
968
|
+
forcedTimezoneOffset === void 0 || forcedTimezoneOffset === null
|
|
969
|
+
? date.getTimezoneOffset()
|
|
970
|
+
: forcedTimezoneOffset
|
|
962
971
|
|
|
963
972
|
return formatTimezone(tzOffset)
|
|
964
973
|
},
|
|
965
974
|
|
|
966
975
|
// Seconds timestamp: 512969520
|
|
967
|
-
X
|
|
976
|
+
X(date) {
|
|
968
977
|
return Math.floor(date.getTime() / 1000)
|
|
969
978
|
},
|
|
970
979
|
|
|
971
980
|
// Milliseconds timestamp: 512969520900
|
|
972
|
-
x
|
|
981
|
+
x(date) {
|
|
973
982
|
return date.getTime()
|
|
974
983
|
}
|
|
975
984
|
}
|
|
976
985
|
|
|
977
|
-
export function formatDate
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
986
|
+
export function formatDate(
|
|
987
|
+
val,
|
|
988
|
+
mask,
|
|
989
|
+
dateLocale,
|
|
990
|
+
__forcedYear,
|
|
991
|
+
__forcedTimezoneOffset
|
|
992
|
+
) {
|
|
993
|
+
if ((val !== 0 && !val) || val === Infinity || val === -Infinity) return
|
|
983
994
|
|
|
984
995
|
const date = new Date(val)
|
|
985
996
|
|
|
@@ -991,20 +1002,17 @@ export function formatDate (val, mask, dateLocale, __forcedYear, __forcedTimezon
|
|
|
991
1002
|
|
|
992
1003
|
const locale = getDateLocale(dateLocale, Lang.props)
|
|
993
1004
|
|
|
994
|
-
return mask.replace(
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
?
|
|
999
|
-
:
|
|
1000
|
-
)
|
|
1005
|
+
return mask.replace(token, (match, text) =>
|
|
1006
|
+
match in formatter
|
|
1007
|
+
? formatter[match](date, locale, __forcedYear, __forcedTimezoneOffset)
|
|
1008
|
+
: text === void 0
|
|
1009
|
+
? match
|
|
1010
|
+
: text.split('\\]').join(']')
|
|
1001
1011
|
)
|
|
1002
1012
|
}
|
|
1003
1013
|
|
|
1004
|
-
export function clone
|
|
1005
|
-
return isDate(date) === true
|
|
1006
|
-
? new Date(date.getTime())
|
|
1007
|
-
: date
|
|
1014
|
+
export function clone(date) {
|
|
1015
|
+
return isDate(date) === true ? new Date(date.getTime()) : date
|
|
1008
1016
|
}
|
|
1009
1017
|
|
|
1010
1018
|
export default {
|