zartui 2.1.6 → 2.1.8
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/es/action-sheet/index.js +15 -26
- package/es/area/index.js +5 -41
- package/es/avatar/index.js +3 -16
- package/es/back-top/index.js +4 -19
- package/es/badge/index.js +4 -12
- package/es/button/index.js +20 -40
- package/es/calendar/components/Header.js +3 -12
- package/es/calendar/components/Month.js +12 -65
- package/es/calendar/index.js +23 -94
- package/es/calendar/types.js +9 -15
- package/es/calendar/utils.js +5 -16
- package/es/cascader/index.js +4 -37
- package/es/cell/index.js +19 -37
- package/es/cell-group/index.js +5 -8
- package/es/checkbox/index.js +4 -11
- package/es/checkbox-group/index.js +4 -9
- package/es/col/index.js +6 -11
- package/es/collapse/index.js +2 -5
- package/es/collapse-item/index.js +19 -35
- package/es/count-down/index.js +2 -15
- package/es/count-down/utils.js +3 -10
- package/es/datetime-picker/DatePicker.js +12 -70
- package/es/datetime-picker/TimePicker.js +10 -23
- package/es/datetime-picker/index.js +2 -26
- package/es/datetime-picker/shared.js +5 -21
- package/es/datetime-picker/utils.js +0 -5
- package/es/dialog/Dialog.js +6 -21
- package/es/dialog/index.js +0 -16
- package/es/divider/index.js +5 -6
- package/es/dropdown-item/index.js +13 -39
- package/es/dropdown-menu/index.js +4 -9
- package/es/empty/images/Developing.js +0 -3
- package/es/empty/images/EmptyInterface.js +0 -3
- package/es/empty/images/EmptyResult.js +0 -3
- package/es/empty/images/FindNull.js +0 -3
- package/es/empty/images/NetworkError.js +0 -3
- package/es/empty/images/NotFound.js +0 -3
- package/es/empty/images/ReportSuccess.js +0 -3
- package/es/empty/images/Restricted.js +0 -3
- package/es/empty/images/ServerError.js +0 -3
- package/es/empty/index.js +3 -11
- package/es/field/index.js +21 -86
- package/es/fold-dialog/index.js +5 -20
- package/es/form/index.js +2 -18
- package/es/grid/index.js +2 -6
- package/es/grid-item/index.js +18 -30
- package/es/hierarchy-select/breadcrumb.js +2 -6
- package/es/hierarchy-select/index.js +4 -14
- package/es/hierarchy-select/markList.js +5 -30
- package/es/hierarchy-select/svg/SubIcon.js +0 -1
- package/es/icon/index.js +9 -13
- package/es/image/index.js +3 -19
- package/es/image-preview/ImagePreview.js +4 -8
- package/es/image-preview/ImagePreviewItem.js +14 -30
- package/es/image-preview/index.js +0 -12
- package/es/image-preview/shared.js +2 -4
- package/es/index-anchor/index.js +2 -6
- package/es/index-bar/IndexIndicate.js +0 -1
- package/es/index-bar/index.js +7 -28
- package/es/index.js +1 -4
- package/es/info/index.js +6 -8
- package/es/list/index.js +11 -27
- package/es/loading/index.js +7 -15
- package/es/locale/index.js +0 -2
- package/es/media-picker/index.js +35 -128
- package/es/media-picker/media-util.js +2 -5
- package/es/media-picker/type.js +9 -14
- package/es/media-picker/wx-util.js +0 -1
- package/es/media-player/index.js +7 -19
- package/es/mixins/bind-event.js +0 -3
- package/es/mixins/checkbox.js +5 -11
- package/es/mixins/click-outside.js +0 -2
- package/es/mixins/close-on-popstate.js +0 -1
- package/es/mixins/field.js +0 -2
- package/es/mixins/popup/index.js +12 -28
- package/es/mixins/popup/overlay.js +1 -11
- package/es/mixins/portal.js +2 -8
- package/es/mixins/relation.js +0 -8
- package/es/mixins/slots.js +1 -4
- package/es/mixins/touch.js +4 -9
- package/es/multiple-picker/MultiplePickerOptions.js +3 -20
- package/es/multiple-picker/index.js +5 -17
- package/es/nav-bar/index.js +4 -12
- package/es/notice-bar/index.js +10 -28
- package/es/number-keyboard/Key.js +2 -10
- package/es/number-keyboard/index.js +4 -19
- package/es/overlay/index.js +5 -8
- package/es/password-input/index.js +10 -16
- package/es/picker/PickerColumn.js +21 -56
- package/es/picker/index.js +12 -45
- package/es/popover/index.js +65 -90
- package/es/popup/index.js +5 -21
- package/es/pull-refresh/index.js +10 -29
- package/es/radio/index.js +2 -4
- package/es/radio-group/index.js +2 -4
- package/es/rate/index.js +12 -26
- package/es/row/index.js +3 -9
- package/es/search/index.js +9 -15
- package/es/signature/bezier.js +13 -20
- package/es/signature/force-landscape.js +0 -5
- package/es/signature/index.js +5 -24
- package/es/signature/point.js +1 -6
- package/es/signature/throttle.js +1 -10
- package/es/skeleton/index.js +5 -15
- package/es/slider/index.js +19 -55
- package/es/step/index.js +5 -12
- package/es/stepper/index.js +11 -39
- package/es/steps/index.js +2 -4
- package/es/sticky/index.js +8 -50
- package/es/swipe/index.js +19 -62
- package/es/swipe-cell/index.js +7 -23
- package/es/swipe-item/index.js +10 -19
- package/es/switch/index.js +8 -10
- package/es/switch/shared.js +1 -0
- package/es/switch-cell/index.js +7 -7
- package/es/tab/index.js +4 -15
- package/es/tabbar/index.js +4 -14
- package/es/tabbar-item/index.js +7 -15
- package/es/table/index.js +5 -28
- package/es/table/type.js +3 -4
- package/es/tabs/Content.js +5 -9
- package/es/tabs/Title.js +11 -20
- package/es/tabs/index.js +16 -51
- package/es/tabs/utils.js +0 -8
- package/es/tag/index.js +13 -17
- package/es/text-ellipsis/index.js +25 -42
- package/es/timeline/index.js +2 -25
- package/es/toast/Toast.js +11 -23
- package/es/toast/index.js +6 -33
- package/es/toast/lock-click.js +0 -2
- package/es/uploader/index.js +11 -62
- package/es/uploader/utils.js +0 -10
- package/es/utils/constant.js +2 -1
- package/es/utils/create/bem.js +1 -5
- package/es/utils/create/component.js +4 -8
- package/es/utils/create/i18n.js +0 -2
- package/es/utils/deep-assign.js +0 -4
- package/es/utils/deep-clone.js +0 -3
- package/es/utils/dom/event.js +2 -5
- package/es/utils/dom/node.js +0 -1
- package/es/utils/dom/raf.js +7 -6
- package/es/utils/dom/reset-scroll.js +2 -1
- package/es/utils/dom/scroll.js +8 -17
- package/es/utils/dom/style.js +3 -2
- package/es/utils/easings.js +2 -4
- package/es/utils/format/date-util.js +54 -122
- package/es/utils/format/number.js +2 -11
- package/es/utils/format/string.js +0 -3
- package/es/utils/format/unit.js +2 -12
- package/es/utils/functional.js +6 -9
- package/es/utils/getScroll.js +0 -5
- package/es/utils/index.js +3 -5
- package/es/utils/interceptor.js +2 -4
- package/es/utils/media/image-util.js +7 -19
- package/es/utils/raf.js +4 -12
- package/es/utils/router.js +7 -6
- package/es/utils/scrollTo.js +10 -15
- package/es/utils/validate/number.js +2 -2
- package/es/utils/vnodes.js +2 -8
- package/lib/action-sheet/index.js +12 -37
- package/lib/area/index.js +7 -48
- package/lib/avatar/index.js +5 -21
- package/lib/back-top/index.js +6 -28
- package/lib/badge/index.js +6 -18
- package/lib/button/index.js +20 -52
- package/lib/calendar/FastForwardImg.js +2 -3
- package/lib/calendar/SlowForwardImg.js +2 -3
- package/lib/calendar/components/Header.js +5 -21
- package/lib/calendar/components/Month.js +14 -74
- package/lib/calendar/index.js +23 -109
- package/lib/calendar/types.js +11 -22
- package/lib/calendar/utils.js +18 -46
- package/lib/cascader/index.js +6 -49
- package/lib/cell/index.js +19 -50
- package/lib/cell/shared.js +2 -3
- package/lib/cell-group/index.js +6 -17
- package/lib/checkbox/index.js +6 -17
- package/lib/checkbox-group/index.js +6 -16
- package/lib/col/index.js +8 -17
- package/lib/collapse/index.js +4 -11
- package/lib/collapse-item/index.js +20 -46
- package/lib/count-down/index.js +4 -22
- package/lib/count-down/utils.js +5 -17
- package/lib/datetime-picker/DatePicker.js +14 -84
- package/lib/datetime-picker/TimePicker.js +12 -33
- package/lib/datetime-picker/index.js +7 -41
- package/lib/datetime-picker/shared.js +9 -35
- package/lib/datetime-picker/utils.js +2 -11
- package/lib/dialog/Dialog.js +8 -31
- package/lib/dialog/index.js +1 -24
- package/lib/divider/index.js +6 -14
- package/lib/dropdown-item/index.js +14 -52
- package/lib/dropdown-menu/index.js +6 -18
- package/lib/empty/context.js +2 -3
- package/lib/empty/images/Developing.js +2 -9
- package/lib/empty/images/EmptyInterface.js +2 -9
- package/lib/empty/images/EmptyResult.js +2 -9
- package/lib/empty/images/FindNull.js +2 -9
- package/lib/empty/images/NetworkError.js +2 -9
- package/lib/empty/images/NotFound.js +2 -9
- package/lib/empty/images/ReportSuccess.js +2 -9
- package/lib/empty/images/Restricted.js +2 -9
- package/lib/empty/images/ServerError.js +2 -9
- package/lib/empty/index.js +5 -26
- package/lib/field/ClearIcon.js +2 -3
- package/lib/field/SearchIcon.js +2 -3
- package/lib/field/index.js +22 -99
- package/lib/fold-dialog/index.js +7 -25
- package/lib/form/index.js +4 -24
- package/lib/grid/index.js +4 -13
- package/lib/grid-item/index.js +19 -40
- package/lib/hierarchy-select/breadcrumb.js +5 -13
- package/lib/hierarchy-select/index.js +7 -25
- package/lib/hierarchy-select/markList.js +8 -39
- package/lib/hierarchy-select/svg/SubIcon.js +2 -4
- package/lib/icon/index.js +9 -21
- package/lib/image/index.js +4 -25
- package/lib/image-preview/ImagePreview.js +2 -19
- package/lib/image-preview/ImagePreviewItem.js +15 -39
- package/lib/image-preview/index.js +1 -18
- package/lib/image-preview/shared.js +3 -8
- package/lib/index-anchor/index.js +4 -14
- package/lib/index-bar/IndexIndicate.js +2 -4
- package/lib/index-bar/index.js +9 -40
- package/lib/index.js +5 -164
- package/lib/info/index.js +7 -16
- package/lib/lazyload/index.js +1 -5
- package/lib/list/index.js +12 -36
- package/lib/loading/index.js +8 -23
- package/lib/locale/index.js +2 -10
- package/lib/locale/lang/de-DE-formal.js +2 -3
- package/lib/locale/lang/de-DE.js +2 -3
- package/lib/locale/lang/en-US.js +2 -3
- package/lib/locale/lang/es-ES.js +2 -3
- package/lib/locale/lang/fr-FR.js +2 -3
- package/lib/locale/lang/ja-JP.js +2 -3
- package/lib/locale/lang/nb-NO.js +2 -3
- package/lib/locale/lang/ro-RO.js +2 -3
- package/lib/locale/lang/th-TH.js +2 -3
- package/lib/locale/lang/tr-TR.js +2 -3
- package/lib/locale/lang/zh-CN.js +2 -3
- package/lib/locale/lang/zh-HK.js +2 -3
- package/lib/locale/lang/zh-TW.js +2 -3
- package/lib/media-picker/image/DefaultAudioIcon.js +2 -3
- package/lib/media-picker/image/DefaultDocIcon.js +2 -3
- package/lib/media-picker/image/DefaultExcelIcon.js +2 -3
- package/lib/media-picker/image/DefaultFileIcon.js +2 -3
- package/lib/media-picker/image/DefaultPdfIcon.js +2 -3
- package/lib/media-picker/image/DefaultPptIcon.js +2 -3
- package/lib/media-picker/image/DefaultTextIcon.js +2 -3
- package/lib/media-picker/image/DefaultVideoIcon.js +2 -3
- package/lib/media-picker/image/DeleteIcon.js +2 -3
- package/lib/media-picker/image/Img64.js +4 -7
- package/lib/media-picker/image/PickFileIcon.js +2 -3
- package/lib/media-picker/image/PickPhotoIcon.js +2 -3
- package/lib/media-picker/image/ReUpload.js +2 -3
- package/lib/media-picker/image/TakeAudioIcon.js +2 -3
- package/lib/media-picker/image/TakePhotoIcon.js +2 -3
- package/lib/media-picker/image/TakeVideoIcon.js +2 -3
- package/lib/media-picker/index.js +33 -172
- package/lib/media-picker/media-util.js +9 -22
- package/lib/media-picker/type.js +10 -18
- package/lib/media-picker/wx-util.js +4 -15
- package/lib/media-player/index.js +8 -27
- package/lib/mixins/bind-event.js +1 -6
- package/lib/mixins/checkbox.js +8 -21
- package/lib/mixins/click-outside.js +3 -8
- package/lib/mixins/close-on-popstate.js +2 -7
- package/lib/mixins/field.js +2 -5
- package/lib/mixins/popup/context.js +2 -3
- package/lib/mixins/popup/index.js +12 -38
- package/lib/mixins/popup/overlay.js +3 -25
- package/lib/mixins/portal.js +2 -9
- package/lib/mixins/relation.js +0 -11
- package/lib/mixins/slots.js +3 -8
- package/lib/mixins/touch.js +6 -14
- package/lib/multiple-picker/MultiplePickerOptions.js +4 -26
- package/lib/multiple-picker/index.js +7 -29
- package/lib/multiple-picker/shared.js +3 -5
- package/lib/nav-bar/index.js +6 -19
- package/lib/notice-bar/CloseIcon.js +2 -3
- package/lib/notice-bar/MenuIcon.js +2 -3
- package/lib/notice-bar/NoticeIcon.js +2 -3
- package/lib/notice-bar/OpenIcon.js +2 -3
- package/lib/notice-bar/TipIcon.js +2 -3
- package/lib/notice-bar/WarningIcon.js +2 -3
- package/lib/notice-bar/index.js +12 -43
- package/lib/number-keyboard/CollapseIcon.js +2 -3
- package/lib/number-keyboard/DeleteIcon.js +2 -3
- package/lib/number-keyboard/Key.js +4 -20
- package/lib/number-keyboard/index.js +6 -29
- package/lib/overlay/index.js +6 -18
- package/lib/password-input/index.js +11 -25
- package/lib/picker/PickerColumn.js +24 -71
- package/lib/picker/index.js +14 -59
- package/lib/picker/shared.js +3 -5
- package/lib/popover/index.js +65 -104
- package/lib/popup/index.js +7 -30
- package/lib/pull-refresh/index.js +11 -38
- package/lib/radio/index.js +4 -10
- package/lib/radio-group/index.js +4 -11
- package/lib/rate/index.js +13 -34
- package/lib/row/index.js +5 -15
- package/lib/search/index.js +8 -23
- package/lib/signature/bezier.js +14 -25
- package/lib/signature/force-landscape.js +5 -19
- package/lib/signature/index.js +8 -34
- package/lib/signature/point.js +2 -11
- package/lib/signature/throttle.js +1 -11
- package/lib/skeleton/index.js +6 -23
- package/lib/slider/index.js +21 -66
- package/lib/step/index.js +7 -21
- package/lib/stepper/index.js +12 -49
- package/lib/steps/index.js +4 -10
- package/lib/sticky/index.js +10 -62
- package/lib/swipe/index.js +21 -73
- package/lib/swipe-cell/index.js +9 -32
- package/lib/swipe-item/index.js +12 -27
- package/lib/switch/index.js +9 -17
- package/lib/switch/shared.js +3 -4
- package/lib/switch-cell/index.js +7 -18
- package/lib/tab/index.js +6 -24
- package/lib/tabbar/index.js +6 -22
- package/lib/tabbar-item/index.js +7 -24
- package/lib/table/index.js +7 -38
- package/lib/table/type.js +3 -5
- package/lib/tabs/Content.js +7 -18
- package/lib/tabs/Title.js +13 -27
- package/lib/tabs/index.js +17 -68
- package/lib/tabs/utils.js +0 -13
- package/lib/tag/index.js +13 -25
- package/lib/text-ellipsis/index.js +27 -49
- package/lib/timeline/index.js +4 -35
- package/lib/timeline/svg/current.js +2 -3
- package/lib/timeline/svg/pass.js +2 -3
- package/lib/toast/Toast.js +12 -33
- package/lib/toast/index.js +7 -40
- package/lib/toast/lock-click.js +0 -3
- package/lib/toast/svg/SuccessIcon.js +2 -3
- package/lib/toast/svg/WarnIcon.js +2 -3
- package/lib/uploader/index.js +12 -75
- package/lib/uploader/utils.js +4 -21
- package/lib/utils/constant.js +12 -21
- package/lib/utils/create/bem.js +1 -6
- package/lib/utils/create/component.js +6 -17
- package/lib/utils/create/i18n.js +0 -8
- package/lib/utils/create/index.js +0 -4
- package/lib/utils/deep-assign.js +0 -6
- package/lib/utils/deep-clone.js +0 -5
- package/lib/utils/device.js +1 -3
- package/lib/utils/dom/event.js +5 -14
- package/lib/utils/dom/node.js +0 -2
- package/lib/utils/dom/raf.js +9 -13
- package/lib/utils/dom/reset-scroll.js +2 -4
- package/lib/utils/dom/scroll.js +16 -37
- package/lib/utils/dom/style.js +3 -3
- package/lib/utils/easings.js +2 -5
- package/lib/utils/format/date-util.js +88 -203
- package/lib/utils/format/number.js +4 -15
- package/lib/utils/format/string.js +0 -5
- package/lib/utils/format/unit.js +2 -16
- package/lib/utils/functional.js +7 -15
- package/lib/utils/getScroll.js +1 -8
- package/lib/utils/index.js +10 -26
- package/lib/utils/interceptor.js +2 -6
- package/lib/utils/media/image-util.js +10 -28
- package/lib/utils/raf.js +4 -13
- package/lib/utils/router.js +10 -13
- package/lib/utils/scrollTo.js +12 -24
- package/lib/utils/validate/date.js +0 -2
- package/lib/utils/validate/email.js +0 -1
- package/lib/utils/validate/mobile.js +0 -1
- package/lib/utils/validate/number.js +3 -5
- package/lib/utils/validate/system.js +0 -3
- package/lib/utils/vnodes.js +2 -9
- package/lib/zart.js +2325 -4752
- package/lib/zart.min.js +7 -1
- package/package.json +1 -1
|
@@ -1,34 +1,30 @@
|
|
|
1
|
-
import _mergeJSXProps2 from "@vue/babel-helper-vue-jsx-merge-props";
|
|
2
|
-
import _mergeJSXProps from "@vue/babel-helper-vue-jsx-merge-props";
|
|
1
|
+
import _mergeJSXProps, { default as _mergeJSXProps2 } from "@vue/babel-helper-vue-jsx-merge-props";
|
|
3
2
|
import { deepClone } from '../utils/deep-clone';
|
|
4
3
|
import { createNamespace, inBrowser, isObject } from '../utils';
|
|
5
4
|
import { range } from '../utils/format/number';
|
|
6
5
|
import { preventDefault, on, off } from '../utils/dom/event';
|
|
7
6
|
import { TouchMixin } from '../mixins/touch';
|
|
8
|
-
var DEFAULT_DURATION = 200;
|
|
7
|
+
var DEFAULT_DURATION = 200;
|
|
8
|
+
|
|
9
|
+
// 惯性滑动思路:
|
|
9
10
|
// 在手指离开屏幕时,如果和上一次 move 时的间隔小于 `MOMENTUM_LIMIT_TIME` 且 move
|
|
10
11
|
// 距离大于 `MOMENTUM_LIMIT_DISTANCE` 时,执行惯性滑动
|
|
11
|
-
|
|
12
12
|
export var MOMENTUM_LIMIT_TIME = 300;
|
|
13
13
|
export var MOMENTUM_LIMIT_DISTANCE = 15;
|
|
14
|
-
|
|
15
14
|
var _createNamespace = createNamespace('picker-column'),
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
createComponent = _createNamespace[0],
|
|
16
|
+
bem = _createNamespace[1];
|
|
19
17
|
function getElementTranslateY(element) {
|
|
20
18
|
var style = window.getComputedStyle(element);
|
|
21
19
|
var transform = style.transform || style.webkitTransform;
|
|
22
20
|
var translateY = transform.slice(7, transform.length - 1).split(', ')[5];
|
|
23
21
|
return Number(translateY);
|
|
24
22
|
}
|
|
25
|
-
|
|
26
23
|
function isOptionDisabled(option) {
|
|
27
24
|
return isObject(option) && option.disabled;
|
|
28
|
-
}
|
|
25
|
+
}
|
|
26
|
+
// use standard WheelEvent:
|
|
29
27
|
// https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent
|
|
30
|
-
|
|
31
|
-
|
|
32
28
|
var supportMousewheel = inBrowser && 'onwheel' in window;
|
|
33
29
|
var mousewheelTimer = null;
|
|
34
30
|
export default createComponent({
|
|
@@ -63,12 +59,10 @@ export default createComponent({
|
|
|
63
59
|
if (this.columnCollector) {
|
|
64
60
|
this.columnCollector.push(this);
|
|
65
61
|
}
|
|
66
|
-
|
|
67
62
|
this.setIndex(this.currentIndex);
|
|
68
63
|
},
|
|
69
64
|
mounted: function mounted() {
|
|
70
65
|
this.bindTouchEvent(this.$el);
|
|
71
|
-
|
|
72
66
|
if (supportMousewheel) {
|
|
73
67
|
on(this.$el, 'wheel', this.onMouseWheel, false);
|
|
74
68
|
}
|
|
@@ -77,7 +71,6 @@ export default createComponent({
|
|
|
77
71
|
if (this.columnCollector) {
|
|
78
72
|
this.columnCollector.splice(this.columnCollector.indexOf(this), 1);
|
|
79
73
|
}
|
|
80
|
-
|
|
81
74
|
if (supportMousewheel) {
|
|
82
75
|
off(this.$el, 'wheel');
|
|
83
76
|
}
|
|
@@ -107,9 +100,7 @@ export default createComponent({
|
|
|
107
100
|
if (this.readonly) {
|
|
108
101
|
return;
|
|
109
102
|
}
|
|
110
|
-
|
|
111
103
|
this.touchStart(event);
|
|
112
|
-
|
|
113
104
|
if (this.moving) {
|
|
114
105
|
var translateY = getElementTranslateY(this.$refs.wrapper);
|
|
115
106
|
this.offset = Math.min(0, translateY - this.baseOffset);
|
|
@@ -117,7 +108,6 @@ export default createComponent({
|
|
|
117
108
|
} else {
|
|
118
109
|
this.startOffset = this.offset;
|
|
119
110
|
}
|
|
120
|
-
|
|
121
111
|
this.duration = 0;
|
|
122
112
|
this.transitionEndTrigger = null;
|
|
123
113
|
this.touchStartTime = Date.now();
|
|
@@ -127,17 +117,13 @@ export default createComponent({
|
|
|
127
117
|
if (this.readonly) {
|
|
128
118
|
return;
|
|
129
119
|
}
|
|
130
|
-
|
|
131
120
|
this.touchMove(event);
|
|
132
|
-
|
|
133
121
|
if (this.direction === 'vertical') {
|
|
134
122
|
this.moving = true;
|
|
135
123
|
preventDefault(event, true);
|
|
136
124
|
}
|
|
137
|
-
|
|
138
125
|
this.offset = range(this.startOffset + this.deltaY, -(this.count * this.itemHeight), this.itemHeight);
|
|
139
126
|
var now = Date.now();
|
|
140
|
-
|
|
141
127
|
if (now - this.touchStartTime > MOMENTUM_LIMIT_TIME) {
|
|
142
128
|
this.touchStartTime = now;
|
|
143
129
|
this.momentumOffset = this.offset;
|
|
@@ -145,63 +131,55 @@ export default createComponent({
|
|
|
145
131
|
},
|
|
146
132
|
onTouchEnd: function onTouchEnd() {
|
|
147
133
|
var _this = this;
|
|
148
|
-
|
|
149
134
|
if (this.readonly) {
|
|
150
135
|
return;
|
|
151
136
|
}
|
|
152
|
-
|
|
153
137
|
var distance = this.offset - this.momentumOffset;
|
|
154
138
|
var duration = Date.now() - this.touchStartTime;
|
|
155
139
|
var allowMomentum = duration < MOMENTUM_LIMIT_TIME && Math.abs(distance) > MOMENTUM_LIMIT_DISTANCE;
|
|
156
|
-
|
|
157
140
|
if (allowMomentum) {
|
|
158
141
|
this.momentum(distance, duration);
|
|
159
142
|
return;
|
|
160
143
|
}
|
|
161
|
-
|
|
162
144
|
var index = this.getIndexByOffset(this.offset);
|
|
163
145
|
this.duration = DEFAULT_DURATION;
|
|
164
|
-
this.setIndex(index, true);
|
|
165
|
-
// use setTimeout to skip the click event Emitted after touchstart
|
|
146
|
+
this.setIndex(index, true);
|
|
166
147
|
|
|
148
|
+
// compatible with desktop scenario
|
|
149
|
+
// use setTimeout to skip the click event Emitted after touchstart
|
|
167
150
|
setTimeout(function () {
|
|
168
151
|
_this.moving = false;
|
|
169
152
|
}, 0);
|
|
170
153
|
},
|
|
171
154
|
onMouseWheel: function onMouseWheel(event) {
|
|
172
155
|
var _this2 = this;
|
|
173
|
-
|
|
174
156
|
if (this.readonly) {
|
|
175
157
|
return;
|
|
176
158
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
159
|
+
preventDefault(event, true);
|
|
160
|
+
// simply combine touchstart and touchmove
|
|
180
161
|
var translateY = getElementTranslateY(this.$refs.wrapper);
|
|
181
162
|
this.startOffset = Math.min(0, translateY - this.baseOffset);
|
|
182
163
|
this.momentumOffset = this.startOffset;
|
|
183
|
-
this.transitionEndTrigger = null;
|
|
164
|
+
this.transitionEndTrigger = null;
|
|
165
|
+
|
|
166
|
+
// directly use deltaY, see https://caniuse.com/?search=deltaY
|
|
184
167
|
// use deltaY to detect direction for not special setting device
|
|
185
168
|
// https://developer.mozilla.org/en-US/docs/Web/API/Element/wheel_event
|
|
186
|
-
|
|
187
169
|
var deltaY = event.deltaY;
|
|
188
|
-
|
|
189
170
|
if (this.startOffset === 0 && deltaY < 0) {
|
|
190
171
|
return;
|
|
191
|
-
}
|
|
192
|
-
// if necessary, can adjust distance value to make scrolling smoother
|
|
193
|
-
|
|
172
|
+
}
|
|
194
173
|
|
|
174
|
+
// get offset
|
|
175
|
+
// if necessary, can adjust distance value to make scrolling smoother
|
|
195
176
|
var distance = -deltaY;
|
|
196
177
|
this.offset = range(this.startOffset + distance, -(this.count * this.itemHeight), this.itemHeight);
|
|
197
|
-
|
|
198
178
|
if (mousewheelTimer) {
|
|
199
179
|
clearTimeout(mousewheelTimer);
|
|
200
180
|
}
|
|
201
|
-
|
|
202
181
|
mousewheelTimer = setTimeout(function () {
|
|
203
182
|
_this2.onTouchEnd();
|
|
204
|
-
|
|
205
183
|
_this2.touchStartTime = 0;
|
|
206
184
|
}, MOMENTUM_LIMIT_TIME);
|
|
207
185
|
},
|
|
@@ -212,18 +190,15 @@ export default createComponent({
|
|
|
212
190
|
if (this.moving || this.readonly) {
|
|
213
191
|
return;
|
|
214
192
|
}
|
|
215
|
-
|
|
216
193
|
this.transitionEndTrigger = null;
|
|
217
194
|
this.duration = DEFAULT_DURATION;
|
|
218
195
|
this.setIndex(index, true);
|
|
219
196
|
},
|
|
220
197
|
adjustIndex: function adjustIndex(index) {
|
|
221
198
|
index = range(index, 0, this.count);
|
|
222
|
-
|
|
223
199
|
for (var i = index; i < this.count; i++) {
|
|
224
200
|
if (!isOptionDisabled(this.options[i])) return i;
|
|
225
201
|
}
|
|
226
|
-
|
|
227
202
|
for (var _i = index - 1; _i >= 0; _i--) {
|
|
228
203
|
if (!isOptionDisabled(this.options[_i])) return _i;
|
|
229
204
|
}
|
|
@@ -232,37 +207,31 @@ export default createComponent({
|
|
|
232
207
|
if (isObject(option) && this.valueKey in option) {
|
|
233
208
|
return option[this.valueKey];
|
|
234
209
|
}
|
|
235
|
-
|
|
236
210
|
return option;
|
|
237
211
|
},
|
|
238
212
|
setIndex: function setIndex(index, emitChange) {
|
|
239
213
|
var _this3 = this;
|
|
240
|
-
|
|
241
214
|
index = this.adjustIndex(index) || 0;
|
|
242
215
|
var offset = -index * this.itemHeight;
|
|
243
|
-
|
|
244
216
|
var trigger = function trigger() {
|
|
245
217
|
if (index !== _this3.currentIndex) {
|
|
246
218
|
_this3.currentIndex = index;
|
|
247
|
-
|
|
248
219
|
if (emitChange) {
|
|
249
220
|
_this3.$emit('change', index);
|
|
250
221
|
}
|
|
251
222
|
}
|
|
252
|
-
};
|
|
253
|
-
|
|
223
|
+
};
|
|
254
224
|
|
|
225
|
+
// trigger the change event after transitionend when moving
|
|
255
226
|
if (this.moving && offset !== this.offset) {
|
|
256
227
|
this.transitionEndTrigger = trigger;
|
|
257
228
|
} else {
|
|
258
229
|
trigger();
|
|
259
230
|
}
|
|
260
|
-
|
|
261
231
|
this.offset = offset;
|
|
262
232
|
},
|
|
263
233
|
setValue: function setValue(value) {
|
|
264
234
|
var options = this.options;
|
|
265
|
-
|
|
266
235
|
for (var i = 0; i < options.length; i++) {
|
|
267
236
|
if (this.getOptionText(options[i]) === value) {
|
|
268
237
|
return this.setIndex(i);
|
|
@@ -285,7 +254,6 @@ export default createComponent({
|
|
|
285
254
|
stopMomentum: function stopMomentum() {
|
|
286
255
|
this.moving = false;
|
|
287
256
|
this.duration = 0;
|
|
288
|
-
|
|
289
257
|
if (this.transitionEndTrigger) {
|
|
290
258
|
this.transitionEndTrigger();
|
|
291
259
|
this.transitionEndTrigger = null;
|
|
@@ -293,16 +261,13 @@ export default createComponent({
|
|
|
293
261
|
},
|
|
294
262
|
genOptions: function genOptions() {
|
|
295
263
|
var _this4 = this;
|
|
296
|
-
|
|
297
264
|
var h = this.$createElement;
|
|
298
265
|
var optionStyle = {
|
|
299
266
|
height: this.itemHeight + "px"
|
|
300
267
|
};
|
|
301
268
|
return this.options.map(function (option, index) {
|
|
302
269
|
var _domProps;
|
|
303
|
-
|
|
304
270
|
var text = _this4.getOptionText(option);
|
|
305
|
-
|
|
306
271
|
var disabled = isOptionDisabled(option);
|
|
307
272
|
var data = {
|
|
308
273
|
style: optionStyle,
|
package/es/picker/index.js
CHANGED
|
@@ -3,19 +3,18 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
3
3
|
import { createNamespace } from '../utils';
|
|
4
4
|
import { preventDefault } from '../utils/dom/event';
|
|
5
5
|
import { pickerProps, DEFAULT_ITEM_HEIGHT } from './shared';
|
|
6
|
-
import { unitToPx } from '../utils/format/unit';
|
|
6
|
+
import { unitToPx } from '../utils/format/unit';
|
|
7
7
|
|
|
8
|
+
// Components
|
|
8
9
|
import Loading from '../loading';
|
|
9
10
|
import PickerColumn from './PickerColumn';
|
|
10
11
|
import Popup from '../popup';
|
|
11
12
|
import Button from '../button';
|
|
12
13
|
import { PopupMixin } from '../mixins/popup';
|
|
13
|
-
|
|
14
14
|
var _createNamespace = createNamespace('picker'),
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
createComponent = _createNamespace[0],
|
|
16
|
+
bem = _createNamespace[1],
|
|
17
|
+
t = _createNamespace[2];
|
|
19
18
|
export default createComponent({
|
|
20
19
|
mixins: [PopupMixin()],
|
|
21
20
|
props: _extends({}, pickerProps, {
|
|
@@ -68,15 +67,12 @@ export default createComponent({
|
|
|
68
67
|
dataType: function dataType() {
|
|
69
68
|
var columns = this.columns;
|
|
70
69
|
var firstColumn = columns[0] || {};
|
|
71
|
-
|
|
72
70
|
if (firstColumn.children && firstColumn.children.length) {
|
|
73
71
|
return 'cascade';
|
|
74
72
|
}
|
|
75
|
-
|
|
76
73
|
if (firstColumn.values) {
|
|
77
74
|
return 'object';
|
|
78
75
|
}
|
|
79
|
-
|
|
80
76
|
return 'text';
|
|
81
77
|
}
|
|
82
78
|
},
|
|
@@ -88,13 +84,11 @@ export default createComponent({
|
|
|
88
84
|
showPicker: {
|
|
89
85
|
handler: function handler(val) {
|
|
90
86
|
var _this = this;
|
|
91
|
-
|
|
92
87
|
if (val) {
|
|
93
88
|
this.$nextTick(function () {
|
|
94
89
|
_this.children.forEach(function (child) {
|
|
95
90
|
child.setConfirmIndex();
|
|
96
91
|
});
|
|
97
|
-
|
|
98
92
|
_this.children.forEach(function (child) {
|
|
99
93
|
child.recordConfirmIndex();
|
|
100
94
|
});
|
|
@@ -112,8 +106,7 @@ export default createComponent({
|
|
|
112
106
|
},
|
|
113
107
|
format: function format() {
|
|
114
108
|
var columns = this.columns,
|
|
115
|
-
|
|
116
|
-
|
|
109
|
+
dataType = this.dataType;
|
|
117
110
|
if (dataType === 'text') {
|
|
118
111
|
this.formattedColumns = [{
|
|
119
112
|
values: columns
|
|
@@ -129,14 +122,11 @@ export default createComponent({
|
|
|
129
122
|
var cursor = {
|
|
130
123
|
children: this.columns
|
|
131
124
|
};
|
|
132
|
-
|
|
133
125
|
while (cursor && cursor.children) {
|
|
134
126
|
var _cursor$defaultIndex;
|
|
135
|
-
|
|
136
127
|
var _cursor = cursor,
|
|
137
|
-
|
|
128
|
+
children = _cursor.children;
|
|
138
129
|
var defaultIndex = (_cursor$defaultIndex = cursor.defaultIndex) != null ? _cursor$defaultIndex : +this.defaultIndex;
|
|
139
|
-
|
|
140
130
|
while (children[defaultIndex] && children[defaultIndex].disabled) {
|
|
141
131
|
if (defaultIndex < children.length - 1) {
|
|
142
132
|
defaultIndex++;
|
|
@@ -145,7 +135,6 @@ export default createComponent({
|
|
|
145
135
|
break;
|
|
146
136
|
}
|
|
147
137
|
}
|
|
148
|
-
|
|
149
138
|
formatted.push({
|
|
150
139
|
values: cursor.children,
|
|
151
140
|
className: cursor.className,
|
|
@@ -153,25 +142,23 @@ export default createComponent({
|
|
|
153
142
|
});
|
|
154
143
|
cursor = children[defaultIndex];
|
|
155
144
|
}
|
|
156
|
-
|
|
157
145
|
this.formattedColumns = formatted;
|
|
158
146
|
},
|
|
159
147
|
emit: function emit(event) {
|
|
160
148
|
var _this2 = this;
|
|
161
|
-
|
|
162
149
|
if (this.dataType === 'text') {
|
|
163
150
|
this.$emit(event, this.getColumnValue(0), this.getColumnIndex(0));
|
|
164
151
|
} else {
|
|
165
|
-
var values = this.getValues();
|
|
152
|
+
var values = this.getValues();
|
|
153
|
+
|
|
154
|
+
// compatible with old version of wrong parameters
|
|
166
155
|
// should be removed in next major version
|
|
167
156
|
// see: https://github.com/vant-ui/vant/issues/5905
|
|
168
|
-
|
|
169
157
|
if (this.dataType === 'cascade') {
|
|
170
158
|
values = values.map(function (item) {
|
|
171
159
|
return item[_this2.valueKey];
|
|
172
160
|
});
|
|
173
161
|
}
|
|
174
|
-
|
|
175
162
|
this.$emit(event, values, this.getIndexes());
|
|
176
163
|
}
|
|
177
164
|
},
|
|
@@ -180,11 +167,9 @@ export default createComponent({
|
|
|
180
167
|
children: this.columns
|
|
181
168
|
};
|
|
182
169
|
var indexes = this.getIndexes();
|
|
183
|
-
|
|
184
170
|
for (var i = 0; i <= columnIndex; i++) {
|
|
185
171
|
cursor = cursor.children[indexes[i]];
|
|
186
172
|
}
|
|
187
|
-
|
|
188
173
|
while (cursor && cursor.children) {
|
|
189
174
|
columnIndex++;
|
|
190
175
|
this.setColumnValues(columnIndex, cursor.children);
|
|
@@ -193,24 +178,21 @@ export default createComponent({
|
|
|
193
178
|
},
|
|
194
179
|
onChange: function onChange(columnIndex) {
|
|
195
180
|
var _this3 = this;
|
|
196
|
-
|
|
197
181
|
if (this.dataType === 'cascade') {
|
|
198
182
|
this.onCascadeChange(columnIndex);
|
|
199
183
|
}
|
|
200
|
-
|
|
201
184
|
if (this.dataType === 'text') {
|
|
202
185
|
this.$emit('change', this, this.getColumnValue(0), this.getColumnIndex(0));
|
|
203
186
|
} else {
|
|
204
|
-
var values = this.getValues();
|
|
187
|
+
var values = this.getValues();
|
|
188
|
+
// compatible with old version of wrong parameters
|
|
205
189
|
// should be removed in next major version
|
|
206
190
|
// see: https://github.com/vant-ui/vant/issues/5905
|
|
207
|
-
|
|
208
191
|
if (this.dataType === 'cascade') {
|
|
209
192
|
values = values.map(function (item) {
|
|
210
193
|
return item[_this3.valueKey];
|
|
211
194
|
});
|
|
212
195
|
}
|
|
213
|
-
|
|
214
196
|
this.$emit('change', this, values, columnIndex);
|
|
215
197
|
}
|
|
216
198
|
},
|
|
@@ -231,10 +213,8 @@ export default createComponent({
|
|
|
231
213
|
// set column value by index
|
|
232
214
|
setColumnValue: function setColumnValue(index, value) {
|
|
233
215
|
var column = this.getColumn(index);
|
|
234
|
-
|
|
235
216
|
if (column) {
|
|
236
217
|
column.setValue(value);
|
|
237
|
-
|
|
238
218
|
if (this.dataType === 'cascade') {
|
|
239
219
|
this.onCascadeChange(index);
|
|
240
220
|
}
|
|
@@ -249,10 +229,8 @@ export default createComponent({
|
|
|
249
229
|
// set column option index by column index
|
|
250
230
|
setColumnIndex: function setColumnIndex(columnIndex, optionIndex) {
|
|
251
231
|
var column = this.getColumn(columnIndex);
|
|
252
|
-
|
|
253
232
|
if (column) {
|
|
254
233
|
column.setIndex(optionIndex);
|
|
255
|
-
|
|
256
234
|
if (this.dataType === 'cascade') {
|
|
257
235
|
this.onCascadeChange(columnIndex);
|
|
258
236
|
}
|
|
@@ -267,7 +245,6 @@ export default createComponent({
|
|
|
267
245
|
// set options of column by index
|
|
268
246
|
setColumnValues: function setColumnValues(index, options) {
|
|
269
247
|
var column = this.children[index];
|
|
270
|
-
|
|
271
248
|
if (column) {
|
|
272
249
|
column.setOptions(options);
|
|
273
250
|
}
|
|
@@ -283,7 +260,6 @@ export default createComponent({
|
|
|
283
260
|
// set values of all columns
|
|
284
261
|
setValues: function setValues(values) {
|
|
285
262
|
var _this4 = this;
|
|
286
|
-
|
|
287
263
|
values.forEach(function (value, index) {
|
|
288
264
|
_this4.setColumnValue(index, value);
|
|
289
265
|
});
|
|
@@ -299,7 +275,6 @@ export default createComponent({
|
|
|
299
275
|
// set indexes of all columns
|
|
300
276
|
setIndexes: function setIndexes(indexes) {
|
|
301
277
|
var _this5 = this;
|
|
302
|
-
|
|
303
278
|
indexes.forEach(function (optionIndex, columnIndex) {
|
|
304
279
|
_this5.setColumnIndex(columnIndex, optionIndex);
|
|
305
280
|
});
|
|
@@ -330,11 +305,9 @@ export default createComponent({
|
|
|
330
305
|
genTitle: function genTitle() {
|
|
331
306
|
var h = this.$createElement;
|
|
332
307
|
var titleSlot = this.slots('title');
|
|
333
|
-
|
|
334
308
|
if (titleSlot) {
|
|
335
309
|
return titleSlot;
|
|
336
310
|
}
|
|
337
|
-
|
|
338
311
|
if (this.title) {
|
|
339
312
|
return h("div", {
|
|
340
313
|
"class": ['zt2-ellipsis', bem('title')]
|
|
@@ -375,7 +348,6 @@ export default createComponent({
|
|
|
375
348
|
},
|
|
376
349
|
genToolbar: function genToolbar() {
|
|
377
350
|
var h = this.$createElement;
|
|
378
|
-
|
|
379
351
|
if (this.showToolbar) {
|
|
380
352
|
return h("div", {
|
|
381
353
|
"class": bem('toolbar')
|
|
@@ -425,11 +397,9 @@ export default createComponent({
|
|
|
425
397
|
},
|
|
426
398
|
genColumnItems: function genColumnItems() {
|
|
427
399
|
var _this6 = this;
|
|
428
|
-
|
|
429
400
|
var h = this.$createElement;
|
|
430
401
|
return this.formattedColumns.map(function (item, columnIndex) {
|
|
431
402
|
var _item$defaultIndex;
|
|
432
|
-
|
|
433
403
|
return h(PickerColumn, {
|
|
434
404
|
"attrs": {
|
|
435
405
|
"columnCollector": _this6.children,
|
|
@@ -457,7 +427,6 @@ export default createComponent({
|
|
|
457
427
|
},
|
|
458
428
|
render: function render(h) {
|
|
459
429
|
var _this7 = this;
|
|
460
|
-
|
|
461
430
|
var renderPicker = function renderPicker() {
|
|
462
431
|
return h("div", {
|
|
463
432
|
"class": bem(),
|
|
@@ -470,7 +439,6 @@ export default createComponent({
|
|
|
470
439
|
"class": bem('border')
|
|
471
440
|
}) : h(), _this7.genColumns(), _this7.slots('columns-bottom'), _this7.toolbarPosition === 'bottom' ? _this7.genToolbar() : h()]);
|
|
472
441
|
};
|
|
473
|
-
|
|
474
442
|
if (this.popup) {
|
|
475
443
|
return h(Popup, {
|
|
476
444
|
"attrs": {
|
|
@@ -489,7 +457,6 @@ export default createComponent({
|
|
|
489
457
|
}
|
|
490
458
|
}, [renderPicker()]);
|
|
491
459
|
}
|
|
492
|
-
|
|
493
460
|
return renderPicker();
|
|
494
461
|
}
|
|
495
462
|
});
|