quasar 1.16.0 → 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/BottomSheet.json +2 -2
- package/dist/api/Loading.json +0 -2
- package/dist/api/Notify.json +15 -15
- package/dist/api/QAvatar.json +1 -1
- package/dist/api/QBreadcrumbsEl.json +32 -11
- package/dist/api/QBtn.json +35 -14
- package/dist/api/QBtnDropdown.json +36 -15
- package/dist/api/QBtnToggle.json +1 -1
- package/dist/api/QCarousel.json +7 -7
- package/dist/api/QCarouselSlide.json +2 -2
- package/dist/api/QChatMessage.json +1 -5
- package/dist/api/QChip.json +4 -4
- package/dist/api/QColor.json +6 -0
- package/dist/api/QDialog.json +7 -1
- package/dist/api/QExpansionItem.json +34 -13
- package/dist/api/QFab.json +34 -2
- package/dist/api/QFabAction.json +9 -1
- package/dist/api/QField.json +80 -6
- package/dist/api/QFile.json +80 -6
- package/dist/api/QImg.json +2 -2
- package/dist/api/QInnerLoading.json +32 -0
- package/dist/api/QInput.json +82 -6
- package/dist/api/QItem.json +31 -10
- package/dist/api/QOptionGroup.json +58 -1
- package/dist/api/QPagination.json +4 -4
- package/dist/api/QParallax.json +1 -1
- package/dist/api/QPopupEdit.json +14 -7
- package/dist/api/QPullToRefresh.json +1 -1
- package/dist/api/QRange.json +581 -96
- package/dist/api/QRating.json +3 -3
- package/dist/api/QRouteTab.json +32 -12
- package/dist/api/QScrollArea.json +188 -20
- package/dist/api/QSelect.json +81 -9
- package/dist/api/QSeparator.json +1 -1
- package/dist/api/QSlider.json +499 -34
- package/dist/api/QStep.json +4 -4
- package/dist/api/QStepper.json +4 -4
- package/dist/api/QTab.json +1 -1
- package/dist/api/QTable.json +4 -4
- package/dist/api/QTabs.json +9 -0
- package/dist/api/QTimelineEntry.json +2 -2
- package/dist/api/QToggle.json +1 -1
- package/dist/api/QTree.json +7 -1
- package/dist/api/QVideo.json +10 -0
- package/dist/icon-set/bootstrap-icons.umd.min.js +1 -1
- package/dist/icon-set/eva-icons.umd.min.js +1 -1
- package/dist/icon-set/fontawesome-v5-pro.umd.min.js +1 -1
- package/dist/icon-set/fontawesome-v5.umd.min.js +1 -1
- package/dist/icon-set/ionicons-v4.umd.min.js +1 -1
- package/dist/icon-set/line-awesome.umd.min.js +1 -1
- package/dist/icon-set/material-icons-outlined.umd.min.js +1 -1
- package/dist/icon-set/material-icons-round.umd.min.js +1 -1
- package/dist/icon-set/material-icons-sharp.umd.min.js +1 -1
- package/dist/icon-set/material-icons.umd.min.js +1 -1
- package/dist/icon-set/mdi-v3.umd.min.js +1 -1
- package/dist/icon-set/mdi-v4.umd.min.js +1 -1
- package/dist/icon-set/mdi-v5.umd.min.js +1 -1
- package/dist/icon-set/mdi-v6.umd.min.js +1 -1
- package/dist/icon-set/svg-bootstrap-icons.umd.min.js +1 -1
- package/dist/icon-set/svg-eva-icons.umd.min.js +1 -1
- package/dist/icon-set/svg-fontawesome-v5.umd.min.js +1 -1
- package/dist/icon-set/svg-ionicons-v4.umd.min.js +1 -1
- package/dist/icon-set/svg-ionicons-v5.umd.min.js +1 -1
- package/dist/icon-set/svg-ionicons-v6.umd.min.js +6 -0
- package/dist/icon-set/svg-line-awesome.umd.min.js +1 -1
- package/dist/icon-set/svg-material-icons-outlined.umd.min.js +1 -1
- package/dist/icon-set/svg-material-icons-round.umd.min.js +1 -1
- package/dist/icon-set/svg-material-icons-sharp.umd.min.js +1 -1
- package/dist/icon-set/svg-material-icons.umd.min.js +1 -1
- package/dist/icon-set/svg-mdi-v4.umd.min.js +1 -1
- package/dist/icon-set/svg-mdi-v5.umd.min.js +1 -1
- package/dist/icon-set/svg-mdi-v6.umd.min.js +1 -1
- package/dist/icon-set/svg-themify.umd.min.js +1 -1
- package/dist/icon-set/themify.umd.min.js +1 -1
- package/dist/lang/ar.umd.min.js +2 -2
- package/dist/lang/az-latn.umd.min.js +1 -1
- package/dist/lang/bg.umd.min.js +1 -1
- package/dist/lang/ca.umd.min.js +1 -1
- package/dist/lang/cs.umd.min.js +1 -1
- package/dist/lang/da.umd.min.js +1 -1
- package/dist/lang/de.umd.min.js +2 -2
- package/dist/lang/el.umd.min.js +1 -1
- package/dist/lang/en-gb.umd.min.js +1 -1
- package/dist/lang/en-us.umd.min.js +1 -1
- package/dist/lang/eo.umd.min.js +1 -1
- package/dist/lang/es.umd.min.js +1 -1
- package/dist/lang/et.umd.min.js +1 -1
- package/dist/lang/fa-ir.umd.min.js +1 -1
- package/dist/lang/fa.umd.min.js +1 -1
- package/dist/lang/fi.umd.min.js +1 -1
- package/dist/lang/fr.umd.min.js +2 -2
- package/dist/lang/gn.umd.min.js +1 -1
- package/dist/lang/he.umd.min.js +1 -1
- package/dist/lang/hr.umd.min.js +1 -1
- package/dist/lang/hu.umd.min.js +1 -1
- package/dist/lang/id.umd.min.js +1 -1
- package/dist/lang/is.umd.min.js +1 -1
- package/dist/lang/it.umd.min.js +1 -1
- package/dist/lang/ja.umd.min.js +1 -1
- package/dist/lang/km.umd.min.js +1 -1
- package/dist/lang/ko-kr.umd.min.js +1 -1
- package/dist/lang/kur-ckb.umd.min.js +1 -1
- package/dist/lang/lu.umd.min.js +1 -1
- package/dist/lang/lv.umd.min.js +1 -1
- package/dist/lang/ml.umd.min.js +1 -1
- package/dist/lang/ms.umd.min.js +1 -1
- package/dist/lang/nb-no.umd.min.js +1 -1
- package/dist/lang/nl.umd.min.js +1 -1
- package/dist/lang/pl.umd.min.js +1 -1
- package/dist/lang/pt-br.umd.min.js +1 -1
- package/dist/lang/pt.umd.min.js +1 -1
- package/dist/lang/ro.umd.min.js +1 -1
- package/dist/lang/ru.umd.min.js +1 -1
- package/dist/lang/sk.umd.min.js +1 -1
- package/dist/lang/sl.umd.min.js +1 -1
- package/dist/lang/sr.umd.min.js +2 -2
- package/dist/lang/sv.umd.min.js +1 -1
- package/dist/lang/ta.umd.min.js +1 -1
- package/dist/lang/th.umd.min.js +1 -1
- package/dist/lang/tr.umd.min.js +1 -1
- package/dist/lang/ug.umd.min.js +2 -2
- package/dist/lang/uk.umd.min.js +1 -1
- package/dist/lang/vi.umd.min.js +1 -1
- package/dist/lang/zh-hans.umd.min.js +2 -2
- package/dist/lang/zh-hant.umd.min.js +2 -2
- package/dist/quasar.addon.css +1 -1
- package/dist/quasar.addon.rtl.css +1 -1
- package/dist/quasar.common.js +2 -2
- package/dist/quasar.css +376 -228
- package/dist/quasar.esm.js +2 -2
- package/dist/quasar.ie.polyfills.js +1 -1
- package/dist/quasar.ie.polyfills.umd.min.js +1 -1
- package/dist/quasar.min.css +1 -1
- package/dist/quasar.rtl.css +508 -304
- package/dist/quasar.rtl.min.css +1 -1
- package/dist/quasar.sass +324 -210
- package/dist/quasar.styl +324 -210
- package/dist/quasar.umd.js +3098 -1836
- package/dist/quasar.umd.min.js +2 -2
- package/dist/quasar.umd.modern.js +3057 -1817
- package/dist/quasar.umd.modern.min.js +2 -2
- package/dist/transform-asset-urls.json +20 -0
- package/dist/types/index.d.ts +421 -103
- package/dist/types/utils/scroll.d.ts +1 -0
- package/dist/vetur/quasar-attributes.json +313 -89
- package/dist/vetur/quasar-tags.json +74 -18
- package/dist/web-types/web-types.json +1289 -259
- package/icon-set/svg-ionicons-v6.js +225 -0
- package/lang/ar.js +1 -1
- package/lang/de.js +1 -1
- package/lang/fa-ir.js +3 -1
- package/lang/fa.js +3 -1
- package/lang/fr.js +1 -1
- package/lang/index.json +1 -1
- package/lang/kur-ckb.js +2 -2
- package/lang/sr.js +4 -4
- package/lang/ug.js +48 -46
- package/lang/zh-hans.js +1 -1
- package/lang/zh-hant.js +18 -18
- package/package.json +1 -1
- package/src/api.extends.json +1 -2
- package/src/components/breadcrumbs/QBreadcrumbs.js +15 -11
- package/src/components/breadcrumbs/QBreadcrumbs.sass +0 -3
- package/src/components/breadcrumbs/QBreadcrumbs.styl +0 -3
- package/src/components/breadcrumbs/QBreadcrumbsEl.js +25 -9
- package/src/components/btn/QBtn.js +3 -3
- package/src/components/btn-dropdown/QBtnDropdown.sass +2 -0
- package/src/components/btn-dropdown/QBtnDropdown.styl +2 -0
- package/src/components/carousel/QCarousel.js +6 -2
- package/src/components/carousel/QCarousel.json +9 -1
- package/src/components/carousel/QCarouselSlide.json +2 -2
- package/src/components/chat/QChatMessage.json +1 -1
- package/src/components/color/QColor.js +100 -85
- package/src/components/color/QColor.json +7 -0
- package/src/components/color/QColor.sass +14 -24
- package/src/components/color/QColor.styl +14 -24
- package/src/components/date/QDate.js +7 -1
- package/src/components/date/QDate.sass +2 -0
- package/src/components/date/QDate.styl +2 -0
- package/src/components/dialog/QDialog.js +8 -4
- package/src/components/dialog/QDialog.json +8 -1
- package/src/components/drawer/QDrawer.js +16 -15
- package/src/components/editor/QEditor.js +2 -2
- package/src/components/editor/QEditor.sass +13 -1
- package/src/components/editor/QEditor.styl +13 -1
- package/src/components/expansion-item/QExpansionItem.js +13 -11
- package/src/components/fab/QFab.js +20 -11
- package/src/components/fab/QFab.json +35 -0
- package/src/components/fab/QFabAction.js +16 -9
- package/src/components/fab/QFabAction.json +10 -0
- package/src/components/field/QField.js +28 -23
- package/src/components/field/__QField.json +72 -8
- package/src/components/file/QFile.js +12 -4
- package/src/components/file/QFile.sass +4 -3
- package/src/components/file/QFile.styl +4 -3
- package/src/components/footer/QFooter.js +1 -1
- package/src/components/form/QForm.js +1 -1
- package/src/components/header/QHeader.js +1 -1
- package/src/components/icon/QIcon.js +54 -49
- package/src/components/img/QImg.json +2 -2
- package/src/components/infinite-scroll/QInfiniteScroll.js +49 -36
- package/src/components/inner-loading/QInnerLoading.js +54 -22
- package/src/components/inner-loading/QInnerLoading.json +29 -0
- package/src/components/inner-loading/QInnerLoading.sass +3 -0
- package/src/components/inner-loading/QInnerLoading.styl +3 -0
- package/src/components/item/QItem.js +9 -15
- package/src/components/linear-progress/QLinearProgress.js +6 -2
- package/src/components/menu/QMenu.js +5 -1
- package/src/components/option-group/QOptionGroup.js +32 -22
- package/src/components/option-group/QOptionGroup.json +50 -1
- package/src/components/parallax/QParallax.js +3 -0
- package/src/components/parallax/QParallax.json +1 -1
- package/src/components/popup-edit/QPopupEdit.js +41 -16
- package/src/components/popup-edit/QPopupEdit.json +15 -8
- package/src/components/range/QRange.js +223 -278
- package/src/components/range/QRange.json +11 -122
- package/src/components/rating/QRating.js +56 -38
- package/src/components/rating/QRating.json +3 -3
- package/src/components/rating/QRating.sass +8 -6
- package/src/components/rating/QRating.styl +8 -6
- package/src/components/resize-observer/QResizeObserver.js +15 -10
- package/src/components/scroll-area/QScrollArea.js +342 -126
- package/src/components/scroll-area/QScrollArea.json +164 -20
- package/src/components/scroll-area/QScrollArea.sass +4 -0
- package/src/components/scroll-area/QScrollArea.styl +4 -0
- package/src/components/scroll-observer/QScrollObserver.js +9 -2
- package/src/components/select/QSelect.js +8 -2
- package/src/components/separator/QSeparator.js +0 -1
- package/src/components/separator/QSeparator.json +1 -1
- package/src/components/slider/QSlider.js +97 -140
- package/src/components/slider/QSlider.json +1 -122
- package/src/components/slider/QSlider.sass +205 -139
- package/src/components/slider/QSlider.styl +205 -139
- package/src/components/slider/slider-utils.js +468 -123
- package/src/components/slider/slider-utils.json +546 -0
- package/src/components/stepper/QStepper.js +1 -1
- package/src/components/stepper/QStepper.sass +25 -26
- package/src/components/stepper/QStepper.styl +25 -26
- package/src/components/table/QTable.sass +3 -0
- package/src/components/table/QTable.styl +3 -0
- package/src/components/tabs/QRouteTab.js +13 -13
- package/src/components/tabs/QRouteTab.json +0 -7
- package/src/components/tabs/QTab.js +71 -20
- package/src/components/tabs/QTabs.js +237 -52
- package/src/components/tabs/QTabs.json +8 -0
- package/src/components/tabs/QTabs.sass +6 -6
- package/src/components/tabs/QTabs.styl +6 -6
- package/src/components/time/QTime.js +6 -2
- package/src/components/timeline/QTimelineEntry.json +1 -1
- package/src/components/tree/QTree.js +10 -6
- package/src/components/tree/QTree.json +5 -0
- package/src/components/tree/QTree.sass +58 -4
- package/src/components/tree/QTree.styl +58 -4
- package/src/components/uploader/QUploaderBase.js +15 -19
- package/src/components/video/QVideo.js +4 -1
- package/src/components/video/QVideo.json +11 -0
- package/src/components/virtual-scroll/QVirtualScroll.sass +1 -0
- package/src/components/virtual-scroll/QVirtualScroll.styl +1 -0
- package/src/css/core/helpers.sass +3 -0
- package/src/css/core/helpers.styl +3 -0
- package/src/css/core/positioning.sass +5 -0
- package/src/css/core/positioning.styl +5 -0
- package/src/css/normalize.sass +0 -7
- package/src/css/normalize.styl +0 -7
- package/src/css/variables.sass +4 -6
- package/src/css/variables.styl +4 -6
- package/src/directives/Scroll.js +2 -2
- package/src/directives/ScrollFire.js +1 -0
- package/src/ie-compat/ie.js +13 -13
- package/src/install.js +1 -1
- package/src/lang.js +7 -4
- package/src/mixins/anchor.js +3 -13
- package/src/mixins/btn.js +30 -38
- package/src/mixins/btn.json +26 -11
- package/src/mixins/file.js +27 -5
- package/src/mixins/fullscreen.js +16 -4
- package/src/mixins/portal.js +10 -10
- package/src/mixins/router-link.js +88 -14
- package/src/mixins/router-link.json +26 -10
- package/src/mixins/validate.js +33 -15
- package/src/mixins/virtual-scroll.js +40 -42
- package/src/plugins/AppFullscreen.js +41 -16
- package/src/plugins/BottomSheet.json +1 -1
- package/src/plugins/Cookies.js +1 -1
- package/src/plugins/Loading.js +8 -0
- package/src/plugins/LoadingBar.js +9 -0
- package/src/plugins/Notify.js +351 -333
- package/src/plugins/Notify.json +10 -10
- package/src/plugins/Notify.sass +9 -3
- package/src/plugins/Notify.styl +9 -3
- package/src/utils/clone.js +53 -4
- package/src/utils/date.js +134 -69
- package/src/utils/dom.js +28 -9
- package/src/utils/extend.js +2 -2
- package/src/utils/focus-manager.js +8 -10
- package/src/utils/global-dialog.js +18 -1
- package/src/utils/is.js +2 -2
- package/src/utils/morph.js +2 -12
- package/src/utils/scroll.js +71 -35
- package/src/.DS_Store +0 -0
- package/src/components/.DS_Store +0 -0
- package/src/components/layout/.DS_Store +0 -0
- package/src/css/.DS_Store +0 -0
- package/src/utils/.DS_Store +0 -0
package/src/plugins/Notify.json
CHANGED
|
@@ -47,9 +47,9 @@
|
|
|
47
47
|
|
|
48
48
|
"avatar": {
|
|
49
49
|
"type": "String",
|
|
50
|
-
"desc": "URL to an avatar/image; Suggestion: use
|
|
50
|
+
"desc": "URL to an avatar/image; Suggestion: use public folder",
|
|
51
51
|
"examples": [
|
|
52
|
-
"(
|
|
52
|
+
"(public folder) img/something.png",
|
|
53
53
|
"(relative path format) require('./my_img.jpg')",
|
|
54
54
|
"(URL) https://some-site.net/some-img.gif"
|
|
55
55
|
]
|
|
@@ -217,9 +217,9 @@
|
|
|
217
217
|
|
|
218
218
|
"avatar": {
|
|
219
219
|
"type": "String",
|
|
220
|
-
"desc": "URL to an avatar/image; Suggestion: use
|
|
220
|
+
"desc": "URL to an avatar/image; Suggestion: use public folder",
|
|
221
221
|
"examples": [
|
|
222
|
-
"(
|
|
222
|
+
"(public folder) img/something.png",
|
|
223
223
|
"(relative path format) require('./my_img.jpg')",
|
|
224
224
|
"(URL) https://some-site.net/some-img.gif"
|
|
225
225
|
]
|
|
@@ -415,9 +415,9 @@
|
|
|
415
415
|
|
|
416
416
|
"avatar": {
|
|
417
417
|
"type": "String",
|
|
418
|
-
"desc": "URL to an avatar/image; Suggestion: use
|
|
418
|
+
"desc": "URL to an avatar/image; Suggestion: use public folder",
|
|
419
419
|
"examples": [
|
|
420
|
-
"(
|
|
420
|
+
"(public folder) img/something.png",
|
|
421
421
|
"(relative path format) require('./my_img.jpg')",
|
|
422
422
|
"(URL) https://some-site.net/some-img.gif"
|
|
423
423
|
]
|
|
@@ -556,9 +556,9 @@
|
|
|
556
556
|
|
|
557
557
|
"avatar": {
|
|
558
558
|
"type": "String",
|
|
559
|
-
"desc": "URL to an avatar/image; Suggestion: use
|
|
559
|
+
"desc": "URL to an avatar/image; Suggestion: use public folder",
|
|
560
560
|
"examples": [
|
|
561
|
-
"(
|
|
561
|
+
"(public folder) img/something.png",
|
|
562
562
|
"(relative path format) require('./my_img.jpg')",
|
|
563
563
|
"(URL) https://some-site.net/some-img.gif"
|
|
564
564
|
]
|
|
@@ -750,9 +750,9 @@
|
|
|
750
750
|
|
|
751
751
|
"avatar": {
|
|
752
752
|
"type": "String",
|
|
753
|
-
"desc": "URL to an avatar/image; Suggestion: use
|
|
753
|
+
"desc": "URL to an avatar/image; Suggestion: use public folder",
|
|
754
754
|
"examples": [
|
|
755
|
-
"(
|
|
755
|
+
"(public folder) img/something.png",
|
|
756
756
|
"(relative path format) require('./my_img.jpg')",
|
|
757
757
|
"(URL) https://some-site.net/some-img.gif"
|
|
758
758
|
]
|
package/src/plugins/Notify.sass
CHANGED
|
@@ -40,16 +40,22 @@ body.q-ios-padding .q-notifications__list
|
|
|
40
40
|
|
|
41
41
|
&__icon
|
|
42
42
|
font-size: 24px
|
|
43
|
-
margin-right: 16px
|
|
44
43
|
flex: 0 0 1em
|
|
45
44
|
|
|
45
|
+
&--additional
|
|
46
|
+
margin-right: 16px
|
|
47
|
+
|
|
46
48
|
&__avatar
|
|
47
49
|
font-size: 32px
|
|
48
|
-
|
|
50
|
+
|
|
51
|
+
&--additional
|
|
52
|
+
margin-right: 8px
|
|
49
53
|
|
|
50
54
|
&__spinner
|
|
51
55
|
font-size: 32px
|
|
52
|
-
|
|
56
|
+
|
|
57
|
+
&--additional
|
|
58
|
+
margin-right: 8px
|
|
53
59
|
|
|
54
60
|
&__message
|
|
55
61
|
padding: 8px 0
|
package/src/plugins/Notify.styl
CHANGED
|
@@ -40,16 +40,22 @@ body.q-ios-padding .q-notifications__list
|
|
|
40
40
|
|
|
41
41
|
&__icon
|
|
42
42
|
font-size: 24px
|
|
43
|
-
margin-right: 16px
|
|
44
43
|
flex: 0 0 1em
|
|
45
44
|
|
|
45
|
+
&--additional
|
|
46
|
+
margin-right: 16px
|
|
47
|
+
|
|
46
48
|
&__avatar
|
|
47
49
|
font-size: 32px
|
|
48
|
-
|
|
50
|
+
|
|
51
|
+
&--additional
|
|
52
|
+
margin-right: 8px
|
|
49
53
|
|
|
50
54
|
&__spinner
|
|
51
55
|
font-size: 32px
|
|
52
|
-
|
|
56
|
+
|
|
57
|
+
&--additional
|
|
58
|
+
margin-right: 8px
|
|
53
59
|
|
|
54
60
|
&__message
|
|
55
61
|
padding: 8px 0
|
package/src/utils/clone.js
CHANGED
|
@@ -1,6 +1,55 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
// adapted from https://stackoverflow.com/a/40294058
|
|
2
|
+
|
|
3
|
+
export default function cloneDeep (data, hash = new WeakMap()) {
|
|
4
|
+
if (Object(data) !== data) return data
|
|
5
|
+
if (hash.has(data)) return hash.get(data)
|
|
6
|
+
|
|
7
|
+
const result = data instanceof Date
|
|
8
|
+
? new Date(data)
|
|
9
|
+
: (data instanceof RegExp
|
|
10
|
+
? new RegExp(data.source, data.flags)
|
|
11
|
+
: (data instanceof Set
|
|
12
|
+
? new Set()
|
|
13
|
+
: (data instanceof Map
|
|
14
|
+
? new Map()
|
|
15
|
+
: (typeof data.constructor !== 'function'
|
|
16
|
+
? Object.create(null)
|
|
17
|
+
: (data.prototype !== void 0 && typeof data.prototype.constructor === 'function'
|
|
18
|
+
? data
|
|
19
|
+
: new data.constructor()
|
|
20
|
+
)
|
|
21
|
+
)
|
|
22
|
+
)
|
|
23
|
+
)
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
if (typeof data.constructor === 'function' && typeof data.valueOf === 'function') {
|
|
27
|
+
const val = data.valueOf()
|
|
28
|
+
|
|
29
|
+
if (Object(val) !== val) {
|
|
30
|
+
const result = new data.constructor(val)
|
|
31
|
+
|
|
32
|
+
hash.set(data, result)
|
|
33
|
+
|
|
34
|
+
return result
|
|
35
|
+
}
|
|
5
36
|
}
|
|
37
|
+
|
|
38
|
+
hash.set(data, result)
|
|
39
|
+
|
|
40
|
+
if (data instanceof Set) {
|
|
41
|
+
data.forEach(val => {
|
|
42
|
+
result.add(cloneDeep(val, hash))
|
|
43
|
+
})
|
|
44
|
+
}
|
|
45
|
+
else if (data instanceof Map) {
|
|
46
|
+
data.forEach((val, key) => {
|
|
47
|
+
result.set(key, cloneDeep(val, hash))
|
|
48
|
+
})
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return Object.assign(
|
|
52
|
+
result,
|
|
53
|
+
...Object.keys(data).map(key => ({ [key]: cloneDeep(data[key], hash) }))
|
|
54
|
+
)
|
|
6
55
|
}
|
package/src/utils/date.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { isDate } from './is.js'
|
|
4
4
|
import { pad, capitalize } from './format.js'
|
|
5
5
|
import { jalaaliMonthLength } from './date-persian.js'
|
|
6
|
-
import lang from '../lang.js'
|
|
6
|
+
import lang, { defaultLang } from '../lang.js'
|
|
7
7
|
|
|
8
8
|
const
|
|
9
9
|
MILLISECONDS_IN_DAY = 86400000,
|
|
@@ -151,6 +151,128 @@ function getRegexData (mask, dateLocale) {
|
|
|
151
151
|
return res
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
+
function getDateLocale (paramDateLocale, langProps) {
|
|
155
|
+
return paramDateLocale !== void 0
|
|
156
|
+
? paramDateLocale
|
|
157
|
+
: (
|
|
158
|
+
langProps !== void 0
|
|
159
|
+
? langProps.date
|
|
160
|
+
: defaultLang.date
|
|
161
|
+
)
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
function formatTimezone (offset, delimeter = '') {
|
|
165
|
+
const
|
|
166
|
+
sign = offset > 0 ? '-' : '+',
|
|
167
|
+
absOffset = Math.abs(offset),
|
|
168
|
+
hours = Math.floor(absOffset / 60),
|
|
169
|
+
minutes = absOffset % 60
|
|
170
|
+
|
|
171
|
+
return sign + pad(hours) + delimeter + pad(minutes)
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
function applyYearMonthDayChange (date, mod, sign) {
|
|
175
|
+
let
|
|
176
|
+
year = date.getFullYear(),
|
|
177
|
+
month = date.getMonth(),
|
|
178
|
+
day = date.getDate()
|
|
179
|
+
|
|
180
|
+
if (mod.years !== void 0) {
|
|
181
|
+
year += sign * mod.years
|
|
182
|
+
}
|
|
183
|
+
else if (mod.year !== void 0) {
|
|
184
|
+
year += sign * mod.year
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
if (mod.months !== void 0) {
|
|
188
|
+
month += sign * mod.months
|
|
189
|
+
}
|
|
190
|
+
else if (mod.month !== void 0) {
|
|
191
|
+
month += sign * mod.month
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
if (mod.days !== void 0) {
|
|
195
|
+
day += sign * mod.days
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
date.setDate(1)
|
|
199
|
+
date.setMonth(2)
|
|
200
|
+
|
|
201
|
+
date.setFullYear(year)
|
|
202
|
+
date.setMonth(month)
|
|
203
|
+
date.setDate(day)
|
|
204
|
+
|
|
205
|
+
return date
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
const yearMonDay = [ 'years', 'year', 'months', 'month', 'days' ]
|
|
209
|
+
|
|
210
|
+
function getChange (date, mod, sign) {
|
|
211
|
+
const
|
|
212
|
+
d = new Date(date),
|
|
213
|
+
t = (
|
|
214
|
+
mod.years !== void 0 || mod.year !== void 0 ||
|
|
215
|
+
mod.months !== void 0 || mod.month !== void 0 ||
|
|
216
|
+
mod.days !== void 0
|
|
217
|
+
)
|
|
218
|
+
? applyYearMonthDayChange(d, mod, sign)
|
|
219
|
+
: d
|
|
220
|
+
|
|
221
|
+
for (const key in mod) {
|
|
222
|
+
if (yearMonDay.includes(key) === false) {
|
|
223
|
+
const op = capitalize(key)
|
|
224
|
+
t[`set${op}`](t[`get${op}`]() + sign * mod[key])
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
return t
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
function applyYearMonthDay (date, mod, middle) {
|
|
232
|
+
const
|
|
233
|
+
year = mod.year !== void 0
|
|
234
|
+
? mod.year
|
|
235
|
+
: (mod.years !== void 0 ? mod.years : date[`get${middle}FullYear`]()),
|
|
236
|
+
month = mod.month !== void 0
|
|
237
|
+
? mod.month - 1
|
|
238
|
+
: (mod.months !== void 0 ? mod.months : date[`get${middle}Month`]()),
|
|
239
|
+
maxDay = (new Date(year, month + 1, 0)).getDate(),
|
|
240
|
+
day = Math.min(maxDay, mod.date !== void 0 ? mod.date : date[`get${middle}Date`]())
|
|
241
|
+
|
|
242
|
+
date[`set${middle}Date`](1)
|
|
243
|
+
date[`set${middle}Month`](2)
|
|
244
|
+
|
|
245
|
+
date[`set${middle}FullYear`](year)
|
|
246
|
+
date[`set${middle}Month`](month)
|
|
247
|
+
date[`set${middle}Date`](day)
|
|
248
|
+
|
|
249
|
+
return date
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
const yearMonDayAdj = [ 'years', 'year', 'months', 'month', 'days' ]
|
|
253
|
+
|
|
254
|
+
export function adjustDate (date, mod, utc) {
|
|
255
|
+
const
|
|
256
|
+
middle = utc === true ? 'UTC' : '',
|
|
257
|
+
d = new Date(date),
|
|
258
|
+
t = (
|
|
259
|
+
mod.years !== void 0 || mod.year !== void 0 ||
|
|
260
|
+
mod.months !== void 0 || mod.month !== void 0 ||
|
|
261
|
+
mod.days !== void 0
|
|
262
|
+
)
|
|
263
|
+
? applyYearMonthDay(d, mod, middle)
|
|
264
|
+
: d
|
|
265
|
+
|
|
266
|
+
for (const key in mod) {
|
|
267
|
+
if (yearMonDayAdj.includes(key) === false) {
|
|
268
|
+
const op = key.charAt(0).toUpperCase() + key.slice(1)
|
|
269
|
+
t[`set${middle}${op}`](mod[key])
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
return t
|
|
274
|
+
}
|
|
275
|
+
|
|
154
276
|
export function extractDate (str, mask, dateLocale) {
|
|
155
277
|
const d = __splitDate(str, mask, dateLocale)
|
|
156
278
|
|
|
@@ -168,7 +290,7 @@ export function extractDate (str, mask, dateLocale) {
|
|
|
168
290
|
|
|
169
291
|
return d.timezoneOffset === null || d.timezoneOffset === tzOffset
|
|
170
292
|
? date
|
|
171
|
-
: getChange(date, { minutes: d.timezoneOffset - tzOffset },
|
|
293
|
+
: getChange(date, { minutes: d.timezoneOffset - tzOffset }, 1)
|
|
172
294
|
}
|
|
173
295
|
|
|
174
296
|
export function __splitDate (str, mask, dateLocale, calendar, defaultModel) {
|
|
@@ -201,7 +323,7 @@ export function __splitDate (str, mask, dateLocale, calendar, defaultModel) {
|
|
|
201
323
|
}
|
|
202
324
|
|
|
203
325
|
const
|
|
204
|
-
langOpts = dateLocale
|
|
326
|
+
langOpts = getDateLocale(dateLocale, lang.props),
|
|
205
327
|
months = langOpts.months,
|
|
206
328
|
monthsShort = langOpts.monthsShort
|
|
207
329
|
|
|
@@ -303,49 +425,12 @@ export function __splitDate (str, mask, dateLocale, calendar, defaultModel) {
|
|
|
303
425
|
}
|
|
304
426
|
}
|
|
305
427
|
|
|
306
|
-
date.dateHash = date.year + '/' + pad(date.month) + '/' + pad(date.day)
|
|
428
|
+
date.dateHash = pad(date.year, 6) + '/' + pad(date.month) + '/' + pad(date.day)
|
|
307
429
|
date.timeHash = pad(date.hour) + ':' + pad(date.minute) + ':' + pad(date.second) + tzString
|
|
308
430
|
|
|
309
431
|
return date
|
|
310
432
|
}
|
|
311
433
|
|
|
312
|
-
function formatTimezone (offset, delimeter = '') {
|
|
313
|
-
const
|
|
314
|
-
sign = offset > 0 ? '-' : '+',
|
|
315
|
-
absOffset = Math.abs(offset),
|
|
316
|
-
hours = Math.floor(absOffset / 60),
|
|
317
|
-
minutes = absOffset % 60
|
|
318
|
-
|
|
319
|
-
return sign + pad(hours) + delimeter + pad(minutes)
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
function setMonth (date, newMonth /* 1-based */) {
|
|
323
|
-
const
|
|
324
|
-
test = new Date(date.getFullYear(), newMonth, 0, 0, 0, 0, 0),
|
|
325
|
-
days = test.getDate()
|
|
326
|
-
|
|
327
|
-
date.setMonth(newMonth - 1, Math.min(days, date.getDate()))
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
function getChange (date, mod, add) {
|
|
331
|
-
const
|
|
332
|
-
t = new Date(date),
|
|
333
|
-
sign = (add ? 1 : -1)
|
|
334
|
-
|
|
335
|
-
Object.keys(mod).forEach(key => {
|
|
336
|
-
if (key === 'month') {
|
|
337
|
-
setMonth(t, t.getMonth() + 1 + sign * mod.month)
|
|
338
|
-
return
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
const op = key === 'year'
|
|
342
|
-
? 'FullYear'
|
|
343
|
-
: capitalize(key === 'days' ? 'date' : key)
|
|
344
|
-
t[`set${op}`](t[`get${op}`]() + sign * mod[key])
|
|
345
|
-
})
|
|
346
|
-
return t
|
|
347
|
-
}
|
|
348
|
-
|
|
349
434
|
export function isValid (date) {
|
|
350
435
|
return typeof date === 'number'
|
|
351
436
|
? true
|
|
@@ -403,30 +488,10 @@ export function isBetweenDates (date, from, to, opts = {}) {
|
|
|
403
488
|
}
|
|
404
489
|
|
|
405
490
|
export function addToDate (date, mod) {
|
|
406
|
-
return getChange(date, mod,
|
|
491
|
+
return getChange(date, mod, 1)
|
|
407
492
|
}
|
|
408
493
|
export function subtractFromDate (date, mod) {
|
|
409
|
-
return getChange(date, mod,
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
export function adjustDate (date, mod, utc) {
|
|
413
|
-
const
|
|
414
|
-
t = new Date(date),
|
|
415
|
-
prefix = `set${utc === true ? 'UTC' : ''}`
|
|
416
|
-
|
|
417
|
-
Object.keys(mod).forEach(key => {
|
|
418
|
-
if (key === 'month') {
|
|
419
|
-
setMonth(t, mod.month)
|
|
420
|
-
return
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
const op = key === 'year'
|
|
424
|
-
? 'FullYear'
|
|
425
|
-
: key.charAt(0).toUpperCase() + key.slice(1)
|
|
426
|
-
t[`${prefix}${op}`](mod[key])
|
|
427
|
-
})
|
|
428
|
-
|
|
429
|
-
return t
|
|
494
|
+
return getChange(date, mod, -1)
|
|
430
495
|
}
|
|
431
496
|
|
|
432
497
|
export function startOfDate (date, unit, utc) {
|
|
@@ -843,15 +908,15 @@ export function formatDate (val, mask, dateLocale, __forcedYear, __forcedTimezon
|
|
|
843
908
|
mask = defaultMask
|
|
844
909
|
}
|
|
845
910
|
|
|
846
|
-
const locale = dateLocale
|
|
847
|
-
? dateLocale
|
|
848
|
-
: lang.props.date
|
|
911
|
+
const locale = getDateLocale(dateLocale, lang.props)
|
|
849
912
|
|
|
850
913
|
return mask.replace(
|
|
851
914
|
token,
|
|
852
|
-
(match, text) =>
|
|
853
|
-
|
|
854
|
-
|
|
915
|
+
(match, text) => (
|
|
916
|
+
match in formatter
|
|
917
|
+
? formatter[match](date, locale, __forcedYear, __forcedTimezoneOffset)
|
|
918
|
+
: (text === void 0 ? match : text.split('\\]').join(']'))
|
|
919
|
+
)
|
|
855
920
|
)
|
|
856
921
|
}
|
|
857
922
|
|
package/src/utils/dom.js
CHANGED
|
@@ -46,6 +46,30 @@ export function ready (fn) {
|
|
|
46
46
|
document.addEventListener('DOMContentLoaded', fn, false)
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
+
// internal
|
|
50
|
+
export function getElement (el) {
|
|
51
|
+
const type = typeof el
|
|
52
|
+
|
|
53
|
+
if (type === 'function') {
|
|
54
|
+
el = el()
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if (type === 'string') {
|
|
58
|
+
try {
|
|
59
|
+
el = document.querySelector(el)
|
|
60
|
+
}
|
|
61
|
+
catch (err) {}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (el !== Object(el)) {
|
|
65
|
+
return null
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return el._isVue === true && el.$el !== void 0
|
|
69
|
+
? el.$el
|
|
70
|
+
: el
|
|
71
|
+
}
|
|
72
|
+
|
|
49
73
|
// internal
|
|
50
74
|
export function childHasFocus (el, focusedEl) {
|
|
51
75
|
if (el === void 0 || el.contains(focusedEl) === true) {
|
|
@@ -62,15 +86,10 @@ export function childHasFocus (el, focusedEl) {
|
|
|
62
86
|
}
|
|
63
87
|
|
|
64
88
|
// internal
|
|
65
|
-
export function getBodyFullscreenElement (
|
|
66
|
-
return
|
|
67
|
-
?
|
|
68
|
-
|
|
69
|
-
activeEl === document.documentElement || activeEl === null
|
|
70
|
-
? document.body
|
|
71
|
-
: activeEl
|
|
72
|
-
)
|
|
73
|
-
: document.body
|
|
89
|
+
export function getBodyFullscreenElement (activeEl) {
|
|
90
|
+
return activeEl === document.documentElement || activeEl === null
|
|
91
|
+
? document.body
|
|
92
|
+
: activeEl
|
|
74
93
|
}
|
|
75
94
|
|
|
76
95
|
export default {
|
package/src/utils/extend.js
CHANGED
|
@@ -25,7 +25,7 @@ function isPlainObject (obj) {
|
|
|
25
25
|
let key
|
|
26
26
|
for (key in obj) {}
|
|
27
27
|
|
|
28
|
-
return key ===
|
|
28
|
+
return key === void 0 || hasOwn.call(obj, key)
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
export default function extend () {
|
|
@@ -72,7 +72,7 @@ export default function extend () {
|
|
|
72
72
|
|
|
73
73
|
target[name] = extend(deep, clone, copy)
|
|
74
74
|
}
|
|
75
|
-
else if (copy !==
|
|
75
|
+
else if (copy !== void 0) {
|
|
76
76
|
target[name] = copy
|
|
77
77
|
}
|
|
78
78
|
}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
let queue = []
|
|
2
|
-
|
|
2
|
+
let waitFlags = []
|
|
3
|
+
|
|
4
|
+
function clearFlag (flag) {
|
|
5
|
+
waitFlags = waitFlags.filter(entry => entry !== flag)
|
|
6
|
+
}
|
|
3
7
|
|
|
4
8
|
export function addFocusWaitFlag (flag) {
|
|
9
|
+
clearFlag(flag)
|
|
5
10
|
waitFlags.push(flag)
|
|
6
11
|
}
|
|
7
12
|
|
|
8
13
|
export function removeFocusWaitFlag (flag) {
|
|
9
|
-
|
|
10
|
-
if (index !== -1) {
|
|
11
|
-
waitFlags.splice(index, 1)
|
|
12
|
-
}
|
|
14
|
+
clearFlag(flag)
|
|
13
15
|
|
|
14
16
|
if (waitFlags.length === 0 && queue.length > 0) {
|
|
15
17
|
// only call last focus handler (can't focus multiple things at once)
|
|
@@ -24,13 +26,9 @@ export function addFocusFn (fn) {
|
|
|
24
26
|
}
|
|
25
27
|
else {
|
|
26
28
|
queue.push(fn)
|
|
27
|
-
return fn
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
export function removeFocusFn (fn) {
|
|
32
|
-
|
|
33
|
-
if (index !== -1) {
|
|
34
|
-
queue.splice(index, 1)
|
|
35
|
-
}
|
|
33
|
+
queue = queue.filter(entry => entry !== fn)
|
|
36
34
|
}
|
|
@@ -24,6 +24,23 @@ export function merge (target, source) {
|
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
let appRoot
|
|
28
|
+
|
|
29
|
+
function getDialogParent (parent, root) {
|
|
30
|
+
if (parent !== void 0) { return parent }
|
|
31
|
+
if (root !== void 0) { return root }
|
|
32
|
+
|
|
33
|
+
if (appRoot === void 0) {
|
|
34
|
+
const elRoot = document.getElementById('q-app')
|
|
35
|
+
|
|
36
|
+
if (elRoot && elRoot.__vue__) {
|
|
37
|
+
appRoot = elRoot.__vue__.$root
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return appRoot
|
|
42
|
+
}
|
|
43
|
+
|
|
27
44
|
export default function (DefaultComponent) {
|
|
28
45
|
return ({ className, class: klass, style, component, root, parent, ...props }) => {
|
|
29
46
|
if (isSSR === true) { return ssrAPI }
|
|
@@ -113,7 +130,7 @@ export default function (DefaultComponent) {
|
|
|
113
130
|
name: 'QGlobalDialog',
|
|
114
131
|
|
|
115
132
|
el: node,
|
|
116
|
-
parent: parent
|
|
133
|
+
parent: getDialogParent(parent, root),
|
|
117
134
|
|
|
118
135
|
render (h) {
|
|
119
136
|
return h(DialogComponent, {
|
package/src/utils/is.js
CHANGED
|
@@ -99,10 +99,10 @@ export function isDeepEqual (a, b) {
|
|
|
99
99
|
return a.toString() === b.toString()
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
const keys = Object.keys(a)
|
|
102
|
+
const keys = Object.keys(a).filter(key => a[key] !== void 0)
|
|
103
103
|
length = keys.length
|
|
104
104
|
|
|
105
|
-
if (length !== Object.keys(b).length) {
|
|
105
|
+
if (length !== Object.keys(b).filter(key => b[key] !== void 0).length) {
|
|
106
106
|
return false
|
|
107
107
|
}
|
|
108
108
|
|
package/src/utils/morph.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { getElement } from './dom.js'
|
|
2
|
+
|
|
1
3
|
let id = 0
|
|
2
4
|
let offsetBase = void 0
|
|
3
5
|
|
|
@@ -162,18 +164,6 @@ function normalizeOptions (options) {
|
|
|
162
164
|
}
|
|
163
165
|
}
|
|
164
166
|
|
|
165
|
-
function getElement (element) {
|
|
166
|
-
const type = typeof element
|
|
167
|
-
|
|
168
|
-
return type === 'function'
|
|
169
|
-
? element()
|
|
170
|
-
: (
|
|
171
|
-
type === 'string'
|
|
172
|
-
? document.querySelector(element)
|
|
173
|
-
: element
|
|
174
|
-
)
|
|
175
|
-
}
|
|
176
|
-
|
|
177
167
|
function isValidElement (element) {
|
|
178
168
|
return element &&
|
|
179
169
|
element.ownerDocument === document &&
|