@fecp/mobile-designer 1.0.10 → 1.0.11
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/mobile-designer.css +19 -19
- package/es/mobileDesigner/package.json.mjs +1 -1
- package/es/node_modules/@vant/area-data/dist/index.esm.mjs +3924 -0
- package/es/node_modules/@vant/touch-emulator/dist/index.mjs +125 -0
- package/es/node_modules/@vant/use/dist/index.esm.mjs +304 -0
- package/es/node_modules/@vue/shared/dist/shared.esm-bundler.mjs +67 -0
- package/es/node_modules/moment/dist/moment.mjs +3997 -0
- package/es/node_modules/vant/es/action-bar/ActionBar.mjs +45 -0
- package/es/node_modules/vant/es/action-bar/index.mjs +8 -0
- package/es/node_modules/vant/es/action-bar-button/ActionBarButton.mjs +74 -0
- package/es/node_modules/vant/es/action-bar-button/index.mjs +8 -0
- package/es/node_modules/vant/es/action-sheet/ActionSheet.mjs +142 -0
- package/es/node_modules/vant/es/action-sheet/index.mjs +8 -0
- package/es/node_modules/vant/es/back-top/BackTop.mjs +119 -0
- package/es/node_modules/vant/es/back-top/index.mjs +8 -0
- package/es/node_modules/vant/es/button/Button.mjs +152 -0
- package/es/node_modules/vant/es/button/index.mjs +8 -0
- package/es/node_modules/vant/es/calendar/Calendar.mjs +454 -0
- package/es/node_modules/vant/es/calendar/CalendarDay.mjs +132 -0
- package/es/node_modules/vant/es/calendar/CalendarHeader.mjs +115 -0
- package/es/node_modules/vant/es/calendar/CalendarMonth.mjs +217 -0
- package/es/node_modules/vant/es/calendar/index.mjs +8 -0
- package/es/node_modules/vant/es/calendar/utils.mjs +89 -0
- package/es/node_modules/vant/es/cascader/Cascader.mjs +243 -0
- package/es/node_modules/vant/es/cascader/index.mjs +8 -0
- package/es/node_modules/vant/es/cell/Cell.mjs +133 -0
- package/es/node_modules/vant/es/cell/index.mjs +8 -0
- package/es/node_modules/vant/es/cell-group/CellGroup.mjs +46 -0
- package/es/node_modules/vant/es/cell-group/index.mjs +8 -0
- package/es/node_modules/vant/es/checkbox/Checkbox.mjs +91 -0
- package/es/node_modules/vant/es/checkbox/Checker.mjs +144 -0
- package/es/node_modules/vant/es/checkbox/index.mjs +8 -0
- package/es/node_modules/vant/es/checkbox-group/CheckboxGroup.mjs +73 -0
- package/es/node_modules/vant/es/checkbox-group/index.mjs +8 -0
- package/es/node_modules/vant/es/collapse/Collapse.mjs +96 -0
- package/es/node_modules/vant/es/collapse/index.mjs +8 -0
- package/es/node_modules/vant/es/collapse-item/CollapseItem.mjs +135 -0
- package/es/node_modules/vant/es/collapse-item/index.mjs +8 -0
- package/es/node_modules/vant/es/composables/on-popup-reopen.mjs +16 -0
- package/es/node_modules/vant/es/composables/use-expose.mjs +11 -0
- package/es/node_modules/vant/es/composables/use-global-z-index.mjs +5 -1
- package/es/node_modules/vant/es/composables/use-height.mjs +24 -0
- package/es/node_modules/vant/es/composables/use-id.mjs +10 -0
- package/es/node_modules/vant/es/composables/use-lazy-render.mjs +17 -0
- package/es/node_modules/vant/es/composables/use-lock-scroll.mjs +58 -0
- package/es/node_modules/vant/es/composables/use-placeholder.mjs +14 -0
- package/es/node_modules/vant/es/composables/use-refs.mjs +20 -0
- package/es/node_modules/vant/es/composables/use-route.mjs +27 -0
- package/es/node_modules/vant/es/composables/use-scope-id.mjs +9 -0
- package/es/node_modules/vant/es/composables/use-sync-prop-ref.mjs +18 -0
- package/es/node_modules/vant/es/composables/use-tab-status.mjs +7 -0
- package/es/node_modules/vant/es/composables/use-touch.mjs +68 -0
- package/es/node_modules/vant/es/composables/use-visibility-change.mjs +30 -0
- package/es/node_modules/vant/es/date-picker/DatePicker.mjs +131 -0
- package/es/node_modules/vant/es/date-picker/index.mjs +8 -0
- package/es/node_modules/vant/es/date-picker/utils.mjs +52 -0
- package/es/node_modules/vant/es/dialog/Dialog.mjs +226 -0
- package/es/node_modules/vant/es/dialog/function-call.mjs +77 -0
- package/es/node_modules/vant/es/dialog/index.mjs +7 -0
- package/es/node_modules/vant/es/divider/Divider.mjs +34 -0
- package/es/node_modules/vant/es/divider/index.mjs +8 -0
- package/es/node_modules/vant/es/dropdown-item/DropdownItem.mjs +201 -0
- package/es/node_modules/vant/es/dropdown-item/index.mjs +8 -0
- package/es/node_modules/vant/es/dropdown-menu/DropdownMenu.mjs +153 -0
- package/es/node_modules/vant/es/dropdown-menu/index.mjs +8 -0
- package/es/node_modules/vant/es/empty/Empty.mjs +345 -0
- package/es/node_modules/vant/es/empty/index.mjs +8 -0
- package/es/node_modules/vant/es/field/Field.mjs +555 -0
- package/es/node_modules/vant/es/field/index.mjs +8 -0
- package/es/node_modules/vant/es/field/utils.mjs +98 -0
- package/es/node_modules/vant/es/floating-panel/FloatingPanel.mjs +138 -0
- package/es/node_modules/vant/es/floating-panel/index.mjs +8 -0
- package/es/node_modules/vant/es/form/Form.mjs +171 -0
- package/es/node_modules/vant/es/form/index.mjs +8 -0
- package/es/node_modules/vant/es/grid/Grid.mjs +49 -0
- package/es/node_modules/vant/es/grid/index.mjs +8 -0
- package/es/node_modules/vant/es/grid-item/GridItem.mjs +146 -0
- package/es/node_modules/vant/es/grid-item/index.mjs +8 -0
- package/es/node_modules/vant/es/highlight/Highlight.mjs +129 -0
- package/es/node_modules/vant/es/highlight/index.mjs +8 -0
- package/es/node_modules/vant/es/icon/Icon.mjs +1 -1
- package/es/node_modules/vant/es/icon/index.mjs +4 -2
- package/es/node_modules/vant/es/image/Image.mjs +177 -0
- package/es/node_modules/vant/es/image/index.mjs +8 -0
- package/es/node_modules/vant/es/image-preview/ImagePreview.mjs +201 -0
- package/es/node_modules/vant/es/image-preview/ImagePreviewItem.mjs +342 -0
- package/es/node_modules/vant/es/image-preview/function-call.mjs +67 -0
- package/es/node_modules/vant/es/image-preview/index.mjs +8 -0
- package/es/node_modules/vant/es/index-anchor/IndexAnchor.mjs +88 -0
- package/es/node_modules/vant/es/index-anchor/index.mjs +8 -0
- package/es/node_modules/vant/es/index-bar/IndexBar.mjs +237 -0
- package/es/node_modules/vant/es/index-bar/index.mjs +8 -0
- package/es/node_modules/vant/es/lazyload/vue-lazyload/util.mjs +23 -0
- package/es/node_modules/vant/es/list/List.mjs +145 -0
- package/es/node_modules/vant/es/list/index.mjs +8 -0
- package/es/node_modules/vant/es/loading/Loading.mjs +73 -0
- package/es/node_modules/vant/es/loading/index.mjs +8 -0
- package/es/node_modules/vant/es/nav-bar/NavBar.mjs +108 -0
- package/es/node_modules/vant/es/nav-bar/index.mjs +8 -0
- package/es/node_modules/vant/es/notice-bar/NoticeBar.mjs +167 -0
- package/es/node_modules/vant/es/notice-bar/index.mjs +8 -0
- package/es/node_modules/vant/es/notify/Notify.mjs +44 -0
- package/es/node_modules/vant/es/notify/function-call.mjs +62 -0
- package/es/node_modules/vant/es/overlay/Overlay.mjs +69 -0
- package/es/node_modules/vant/es/overlay/index.mjs +8 -0
- package/es/node_modules/vant/es/pagination/Pagination.mjs +157 -0
- package/es/node_modules/vant/es/pagination/index.mjs +8 -0
- package/es/node_modules/vant/es/picker/Picker.mjs +218 -0
- package/es/node_modules/vant/es/picker/PickerColumn.mjs +206 -0
- package/es/node_modules/vant/es/picker/PickerToolbar.mjs +67 -0
- package/es/node_modules/vant/es/picker/index.mjs +8 -0
- package/es/node_modules/vant/es/picker/utils.mjs +80 -0
- package/es/node_modules/vant/es/picker-group/PickerGroup.mjs +83 -0
- package/es/node_modules/vant/es/picker-group/index.mjs +8 -0
- package/es/node_modules/vant/es/popup/Popup.mjs +224 -0
- package/es/node_modules/vant/es/popup/index.mjs +8 -0
- package/es/node_modules/vant/es/popup/shared.mjs +34 -0
- package/es/node_modules/vant/es/pull-refresh/PullRefresh.mjs +195 -0
- package/es/node_modules/vant/es/pull-refresh/index.mjs +8 -0
- package/es/node_modules/vant/es/radio/Radio.mjs +45 -0
- package/es/node_modules/vant/es/radio/index.mjs +8 -0
- package/es/node_modules/vant/es/radio-group/RadioGroup.mjs +46 -0
- package/es/node_modules/vant/es/radio-group/index.mjs +8 -0
- package/es/node_modules/vant/es/search/Search.mjs +124 -0
- package/es/node_modules/vant/es/search/index.mjs +8 -0
- package/es/node_modules/vant/es/sidebar/Sidebar.mjs +45 -0
- package/es/node_modules/vant/es/sidebar/index.mjs +8 -0
- package/es/node_modules/vant/es/sidebar-item/SidebarItem.mjs +71 -0
- package/es/node_modules/vant/es/sidebar-item/index.mjs +8 -0
- package/es/node_modules/vant/es/step/Step.mjs +115 -0
- package/es/node_modules/vant/es/step/index.mjs +6 -0
- package/es/node_modules/vant/es/steps/Steps.mjs +47 -0
- package/es/node_modules/vant/es/steps/index.mjs +8 -0
- package/es/node_modules/vant/es/sticky/Sticky.mjs +142 -0
- package/es/node_modules/vant/es/sticky/index.mjs +8 -0
- package/es/node_modules/vant/es/swipe/Swipe.mjs +378 -0
- package/es/node_modules/vant/es/swipe/index.mjs +8 -0
- package/es/node_modules/vant/es/swipe-cell/SwipeCell.mjs +179 -0
- package/es/node_modules/vant/es/swipe-cell/index.mjs +8 -0
- package/es/node_modules/vant/es/swipe-item/SwipeItem.mjs +78 -0
- package/es/node_modules/vant/es/swipe-item/index.mjs +6 -0
- package/es/node_modules/vant/es/tab/Tab.mjs +153 -0
- package/es/node_modules/vant/es/tab/TabTitle.mjs +92 -0
- package/es/node_modules/vant/es/tab/index.mjs +8 -0
- package/es/node_modules/vant/es/tabbar/Tabbar.mjs +88 -0
- package/es/node_modules/vant/es/tabbar/index.mjs +8 -0
- package/es/node_modules/vant/es/tabbar-item/TabbarItem.mjs +119 -0
- package/es/node_modules/vant/es/tabbar-item/index.mjs +8 -0
- package/es/node_modules/vant/es/tabs/Tabs.mjs +363 -0
- package/es/node_modules/vant/es/tabs/TabsContent.mjs +68 -0
- package/es/node_modules/vant/es/tabs/index.mjs +8 -0
- package/es/node_modules/vant/es/tabs/utils.mjs +49 -0
- package/es/node_modules/vant/es/tag/Tag.mjs +80 -0
- package/es/node_modules/vant/es/tag/index.mjs +8 -0
- package/es/node_modules/vant/es/text-ellipsis/TextEllipsis.mjs +169 -0
- package/es/node_modules/vant/es/text-ellipsis/index.mjs +8 -0
- package/es/node_modules/vant/es/time-picker/TimePicker.mjs +137 -0
- package/es/node_modules/vant/es/time-picker/index.mjs +8 -0
- package/es/node_modules/vant/es/toast/Toast.mjs +129 -0
- package/es/node_modules/vant/es/toast/function-call.mjs +124 -0
- package/es/node_modules/vant/es/toast/index.mjs +7 -0
- package/es/node_modules/vant/es/toast/lock-click.mjs +17 -0
- package/es/node_modules/vant/es/tree-select/TreeSelect.mjs +105 -0
- package/es/node_modules/vant/es/tree-select/index.mjs +8 -0
- package/es/node_modules/vant/es/uploader/Uploader.mjs +275 -0
- package/es/node_modules/vant/es/uploader/UploaderPreviewItem.mjs +133 -0
- package/es/node_modules/vant/es/uploader/index.mjs +8 -0
- package/es/node_modules/vant/es/uploader/utils.mjs +70 -0
- package/es/node_modules/vant/es/utils/basic.mjs +28 -1
- package/es/node_modules/vant/es/utils/closest.mjs +8 -0
- package/es/node_modules/vant/es/utils/constant.mjs +24 -0
- package/es/node_modules/vant/es/utils/dom.mjs +84 -0
- package/es/node_modules/vant/es/utils/format.mjs +101 -2
- package/es/node_modules/vant/es/utils/interceptor.mjs +29 -0
- package/es/node_modules/vant/es/utils/mount-component.mjs +39 -0
- package/es/node_modules/vant/es/utils/props.mjs +23 -1
- package/es/packages/mobile/index.mjs +5 -5
- package/es/packages/mobile/src/components/base/button/Button.vue.mjs +6 -6
- package/es/packages/mobile/src/components/base/card/Card.vue.mjs +15 -15
- package/es/packages/mobile/src/components/base/cell/Cell.vue.mjs +5 -5
- package/es/packages/mobile/src/components/base/cellGroup/CellGroup.vue.mjs +2 -2
- package/es/packages/mobile/src/components/base/icon/Icon.vue.mjs +4 -4
- package/es/packages/mobile/src/components/base/image/Image.vue.mjs +5 -5
- package/es/packages/mobile/src/components/base/popup/Popup.vue.mjs +6 -6
- package/es/packages/mobile/src/components/custom/appTimeLine/AppTimeLine.vue.mjs +13 -13
- package/es/packages/mobile/src/components/custom/approvalBar/ApprovalBar.vue.mjs +22 -22
- package/es/packages/mobile/src/components/custom/approvalList/ApprovalCard.vue.mjs +9 -9
- package/es/packages/mobile/src/components/custom/approvalList/ApprovalList.vue.mjs +25 -25
- package/es/packages/mobile/src/components/custom/document/Document.vue.mjs +17 -17
- package/es/packages/mobile/src/components/custom/document/preview/index.vue.mjs +8 -8
- package/es/packages/mobile/src/components/custom/timeLineFilter/TimeLineFilter.vue.mjs +8 -8
- package/es/packages/mobile/src/components/custom/userSelect/UserSelect.vue.mjs +19 -19
- package/es/packages/mobile/src/components/dataDisplay/cardList/CardList.vue.mjs +4 -4
- package/es/packages/mobile/src/components/dataDisplay/collapse/Collapse.vue.mjs +2 -2
- package/es/packages/mobile/src/components/dataDisplay/collapseItem/CollapseItem.vue.mjs +6 -6
- package/es/packages/mobile/src/components/dataDisplay/divider/Divider.vue.mjs +3 -3
- package/es/packages/mobile/src/components/dataDisplay/empty/Empty.vue.mjs +3 -3
- package/es/packages/mobile/src/components/dataDisplay/highlight/Highlight.vue.mjs +3 -3
- package/es/packages/mobile/src/components/dataDisplay/list/List.vue.mjs +4 -4
- package/es/packages/mobile/src/components/dataDisplay/menuGrid/MenuGrid.vue.mjs +8 -8
- package/es/packages/mobile/src/components/dataDisplay/noticeBar/NoticeBar.vue.mjs +7 -7
- package/es/packages/mobile/src/components/dataDisplay/step/Step.vue.mjs +6 -6
- package/es/packages/mobile/src/components/dataDisplay/steps/Steps.vue.mjs +7 -7
- package/es/packages/mobile/src/components/dataDisplay/swipe/Swipe.vue.mjs +3 -3
- package/es/packages/mobile/src/components/dataDisplay/swipeItem/SwipeItem.vue.mjs +3 -3
- package/es/packages/mobile/src/components/dataDisplay/table/Table.vue.mjs +15 -15
- package/es/packages/mobile/src/components/dataDisplay/textEllipsis/TextEllipsis.vue.mjs +3 -3
- package/es/packages/mobile/src/components/dataDisplay/timeLine/TimeLine.vue.mjs +3 -3
- package/es/packages/mobile/src/components/feedback/actionSheet/ActionSheet.vue.mjs +8 -8
- package/es/packages/mobile/src/components/feedback/dropdownMenu/DropdownMenu.vue.mjs +9 -9
- package/es/packages/mobile/src/components/feedback/floatingBubble/FloatingBubble.mjs +9 -9
- package/es/packages/mobile/src/components/feedback/floatingPanel/FloatingPanel.vue.mjs +3 -3
- package/es/packages/mobile/src/components/feedback/loading/Loading.vue.mjs +3 -3
- package/es/packages/mobile/src/components/feedback/pullRefresh/PullRefresh.vue.mjs +4 -4
- package/es/packages/mobile/src/components/feedback/quickFilter/QuickFilter.vue.mjs +11 -11
- package/es/packages/mobile/src/components/feedback/swipeCell/SwipeCell.vue.mjs +2 -2
- package/es/packages/mobile/src/components/form/checkbox/Checkbox.vue.mjs +5 -5
- package/es/packages/mobile/src/components/form/checkboxGroup/CheckboxGroup.vue.mjs +6 -6
- package/es/packages/mobile/src/components/form/field/Field.vue.mjs +6 -6
- package/es/packages/mobile/src/components/form/fieldArea/FieldArea.vue.mjs +14 -14
- package/es/packages/mobile/src/components/form/fieldCalendarPicker/FieldCalendarPicker.vue.mjs +17 -17
- package/es/packages/mobile/src/components/form/fieldCascaderPicker/fieldCascaderPicker.vue.mjs +13 -13
- package/es/packages/mobile/src/components/form/fieldDatePicker/FieldDatePicker.vue.mjs +15 -15
- package/es/packages/mobile/src/components/form/fieldDateTimePicker/FieldDateTimePicker.vue.mjs +17 -17
- package/es/packages/mobile/src/components/form/fieldIndustry/FieldIndustry.vue.mjs +13 -13
- package/es/packages/mobile/src/components/form/fieldPicker/FieldPicker.vue.mjs +14 -14
- package/es/packages/mobile/src/components/form/fieldTimePicker/FieldTimePicker.vue.mjs +15 -15
- package/es/packages/mobile/src/components/form/form/Form.vue.mjs +3 -3
- package/es/packages/mobile/src/components/form/radioGroup/RadioGroup.vue.mjs +7 -7
- package/es/packages/mobile/src/components/form/search/Search.vue.mjs +7 -7
- package/es/packages/mobile/src/components/form/submitButton/SubmitButton.vue.mjs +6 -6
- package/es/packages/mobile/src/components/form/uploader/Uploader.vue.mjs +13 -13
- package/es/packages/mobile/src/components/navigation/actionBar/ActionBar.vue.mjs +8 -8
- package/es/packages/mobile/src/components/navigation/backTop/BackTop.vue.mjs +5 -5
- package/es/packages/mobile/src/components/navigation/grid/Grid.vue.mjs +7 -7
- package/es/packages/mobile/src/components/navigation/indexAnchor/IndexAnchor.vue.mjs +4 -4
- package/es/packages/mobile/src/components/navigation/indexBar/IndexBar.vue.mjs +3 -3
- package/es/packages/mobile/src/components/navigation/navBar/NavBar.vue.mjs +5 -5
- package/es/packages/mobile/src/components/navigation/pagination/Pagination.vue.mjs +2 -2
- package/es/packages/mobile/src/components/navigation/sidebar/Sidebar.vue.mjs +3 -3
- package/es/packages/mobile/src/components/navigation/sidebarItem/SidebarItem.vue.mjs +5 -5
- package/es/packages/mobile/src/components/navigation/tabbar/Tabbar.vue.mjs +6 -6
- package/es/packages/mobile/src/components/navigation/tabbarItem/TabbarItem.vue.mjs +5 -5
- package/es/packages/mobile/src/components/navigation/tabs/Tabs.vue.mjs +8 -8
- package/es/packages/mobile/src/components/navigation/treeSelect/TreeSelect.vue.mjs +6 -6
- package/es/packages/mobile/src/index.vue.mjs +3 -3
- package/es/packages/mobile/src/page.vue.mjs +1 -1
- package/es/packages/mobile/src/utils/formatterUtil.mjs +1 -1
- package/lib/mobile-designer.css +19 -19
- package/lib/mobileDesigner/package.json.js +1 -1
- package/lib/node_modules/@vant/area-data/dist/index.esm.js +3924 -0
- package/lib/node_modules/@vant/touch-emulator/dist/index.js +126 -0
- package/lib/node_modules/@vant/use/dist/index.esm.js +304 -0
- package/lib/node_modules/@vue/shared/dist/shared.esm-bundler.js +67 -0
- package/lib/node_modules/moment/dist/moment.js +3997 -0
- package/lib/node_modules/vant/es/action-bar/ActionBar.js +45 -0
- package/lib/node_modules/vant/es/action-bar/index.js +7 -0
- package/lib/node_modules/vant/es/action-bar-button/ActionBarButton.js +74 -0
- package/lib/node_modules/vant/es/action-bar-button/index.js +7 -0
- package/lib/node_modules/vant/es/action-sheet/ActionSheet.js +142 -0
- package/lib/node_modules/vant/es/action-sheet/index.js +7 -0
- package/lib/node_modules/vant/es/back-top/BackTop.js +119 -0
- package/lib/node_modules/vant/es/back-top/index.js +7 -0
- package/lib/node_modules/vant/es/button/Button.js +152 -0
- package/lib/node_modules/vant/es/button/index.js +7 -0
- package/lib/node_modules/vant/es/calendar/Calendar.js +454 -0
- package/lib/node_modules/vant/es/calendar/CalendarDay.js +132 -0
- package/lib/node_modules/vant/es/calendar/CalendarHeader.js +115 -0
- package/lib/node_modules/vant/es/calendar/CalendarMonth.js +217 -0
- package/lib/node_modules/vant/es/calendar/index.js +7 -0
- package/lib/node_modules/vant/es/calendar/utils.js +89 -0
- package/lib/node_modules/vant/es/cascader/Cascader.js +243 -0
- package/lib/node_modules/vant/es/cascader/index.js +7 -0
- package/lib/node_modules/vant/es/cell/Cell.js +133 -0
- package/lib/node_modules/vant/es/cell/index.js +7 -0
- package/lib/node_modules/vant/es/cell-group/CellGroup.js +46 -0
- package/lib/node_modules/vant/es/cell-group/index.js +7 -0
- package/lib/node_modules/vant/es/checkbox/Checkbox.js +91 -0
- package/lib/node_modules/vant/es/checkbox/Checker.js +144 -0
- package/lib/node_modules/vant/es/checkbox/index.js +7 -0
- package/lib/node_modules/vant/es/checkbox-group/CheckboxGroup.js +73 -0
- package/lib/node_modules/vant/es/checkbox-group/index.js +7 -0
- package/lib/node_modules/vant/es/collapse/Collapse.js +96 -0
- package/lib/node_modules/vant/es/collapse/index.js +7 -0
- package/lib/node_modules/vant/es/collapse-item/CollapseItem.js +135 -0
- package/lib/node_modules/vant/es/collapse-item/index.js +7 -0
- package/lib/node_modules/vant/es/composables/on-popup-reopen.js +16 -0
- package/lib/node_modules/vant/es/composables/use-expose.js +11 -0
- package/lib/node_modules/vant/es/composables/use-global-z-index.js +4 -0
- package/lib/node_modules/vant/es/composables/use-height.js +24 -0
- package/lib/node_modules/vant/es/composables/use-id.js +10 -0
- package/lib/node_modules/vant/es/composables/use-lazy-render.js +17 -0
- package/lib/node_modules/vant/es/composables/use-lock-scroll.js +58 -0
- package/lib/node_modules/vant/es/composables/use-placeholder.js +14 -0
- package/lib/node_modules/vant/es/composables/use-refs.js +20 -0
- package/lib/node_modules/vant/es/composables/use-route.js +27 -0
- package/lib/node_modules/vant/es/composables/use-scope-id.js +9 -0
- package/lib/node_modules/vant/es/composables/use-sync-prop-ref.js +18 -0
- package/lib/node_modules/vant/es/composables/use-tab-status.js +7 -0
- package/lib/node_modules/vant/es/composables/use-touch.js +68 -0
- package/lib/node_modules/vant/es/composables/use-visibility-change.js +30 -0
- package/lib/node_modules/vant/es/date-picker/DatePicker.js +131 -0
- package/lib/node_modules/vant/es/date-picker/index.js +7 -0
- package/lib/node_modules/vant/es/date-picker/utils.js +52 -0
- package/lib/node_modules/vant/es/dialog/Dialog.js +226 -0
- package/lib/node_modules/vant/es/dialog/function-call.js +77 -0
- package/lib/node_modules/vant/es/dialog/index.js +6 -0
- package/lib/node_modules/vant/es/divider/Divider.js +34 -0
- package/lib/node_modules/vant/es/divider/index.js +7 -0
- package/lib/node_modules/vant/es/dropdown-item/DropdownItem.js +201 -0
- package/lib/node_modules/vant/es/dropdown-item/index.js +7 -0
- package/lib/node_modules/vant/es/dropdown-menu/DropdownMenu.js +153 -0
- package/lib/node_modules/vant/es/dropdown-menu/index.js +7 -0
- package/lib/node_modules/vant/es/empty/Empty.js +345 -0
- package/lib/node_modules/vant/es/empty/index.js +7 -0
- package/lib/node_modules/vant/es/field/Field.js +555 -0
- package/lib/node_modules/vant/es/field/index.js +7 -0
- package/lib/node_modules/vant/es/field/utils.js +98 -0
- package/lib/node_modules/vant/es/floating-panel/FloatingPanel.js +138 -0
- package/lib/node_modules/vant/es/floating-panel/index.js +7 -0
- package/lib/node_modules/vant/es/form/Form.js +171 -0
- package/lib/node_modules/vant/es/form/index.js +7 -0
- package/lib/node_modules/vant/es/grid/Grid.js +49 -0
- package/lib/node_modules/vant/es/grid/index.js +7 -0
- package/lib/node_modules/vant/es/grid-item/GridItem.js +146 -0
- package/lib/node_modules/vant/es/grid-item/index.js +7 -0
- package/lib/node_modules/vant/es/highlight/Highlight.js +129 -0
- package/lib/node_modules/vant/es/highlight/index.js +7 -0
- package/lib/node_modules/vant/es/icon/Icon.js +1 -1
- package/lib/node_modules/vant/es/icon/index.js +3 -1
- package/lib/node_modules/vant/es/image/Image.js +177 -0
- package/lib/node_modules/vant/es/image/index.js +7 -0
- package/lib/node_modules/vant/es/image-preview/ImagePreview.js +201 -0
- package/lib/node_modules/vant/es/image-preview/ImagePreviewItem.js +342 -0
- package/lib/node_modules/vant/es/image-preview/function-call.js +67 -0
- package/lib/node_modules/vant/es/image-preview/index.js +7 -0
- package/lib/node_modules/vant/es/index-anchor/IndexAnchor.js +88 -0
- package/lib/node_modules/vant/es/index-anchor/index.js +7 -0
- package/lib/node_modules/vant/es/index-bar/IndexBar.js +237 -0
- package/lib/node_modules/vant/es/index-bar/index.js +7 -0
- package/lib/node_modules/vant/es/lazyload/vue-lazyload/util.js +23 -0
- package/lib/node_modules/vant/es/list/List.js +145 -0
- package/lib/node_modules/vant/es/list/index.js +7 -0
- package/lib/node_modules/vant/es/loading/Loading.js +73 -0
- package/lib/node_modules/vant/es/loading/index.js +7 -0
- package/lib/node_modules/vant/es/nav-bar/NavBar.js +108 -0
- package/lib/node_modules/vant/es/nav-bar/index.js +7 -0
- package/lib/node_modules/vant/es/notice-bar/NoticeBar.js +167 -0
- package/lib/node_modules/vant/es/notice-bar/index.js +7 -0
- package/lib/node_modules/vant/es/notify/Notify.js +44 -0
- package/lib/node_modules/vant/es/notify/function-call.js +62 -0
- package/lib/node_modules/vant/es/overlay/Overlay.js +69 -0
- package/lib/node_modules/vant/es/overlay/index.js +7 -0
- package/lib/node_modules/vant/es/pagination/Pagination.js +157 -0
- package/lib/node_modules/vant/es/pagination/index.js +7 -0
- package/lib/node_modules/vant/es/picker/Picker.js +218 -0
- package/lib/node_modules/vant/es/picker/PickerColumn.js +206 -0
- package/lib/node_modules/vant/es/picker/PickerToolbar.js +67 -0
- package/lib/node_modules/vant/es/picker/index.js +7 -0
- package/lib/node_modules/vant/es/picker/utils.js +80 -0
- package/lib/node_modules/vant/es/picker-group/PickerGroup.js +83 -0
- package/lib/node_modules/vant/es/picker-group/index.js +7 -0
- package/lib/node_modules/vant/es/popup/Popup.js +224 -0
- package/lib/node_modules/vant/es/popup/index.js +7 -0
- package/lib/node_modules/vant/es/popup/shared.js +34 -0
- package/lib/node_modules/vant/es/pull-refresh/PullRefresh.js +195 -0
- package/lib/node_modules/vant/es/pull-refresh/index.js +7 -0
- package/lib/node_modules/vant/es/radio/Radio.js +45 -0
- package/lib/node_modules/vant/es/radio/index.js +7 -0
- package/lib/node_modules/vant/es/radio-group/RadioGroup.js +46 -0
- package/lib/node_modules/vant/es/radio-group/index.js +7 -0
- package/lib/node_modules/vant/es/search/Search.js +124 -0
- package/lib/node_modules/vant/es/search/index.js +7 -0
- package/lib/node_modules/vant/es/sidebar/Sidebar.js +45 -0
- package/lib/node_modules/vant/es/sidebar/index.js +7 -0
- package/lib/node_modules/vant/es/sidebar-item/SidebarItem.js +71 -0
- package/lib/node_modules/vant/es/sidebar-item/index.js +7 -0
- package/lib/node_modules/vant/es/step/Step.js +115 -0
- package/lib/node_modules/vant/es/step/index.js +6 -0
- package/lib/node_modules/vant/es/steps/Steps.js +47 -0
- package/lib/node_modules/vant/es/steps/index.js +7 -0
- package/lib/node_modules/vant/es/sticky/Sticky.js +142 -0
- package/lib/node_modules/vant/es/sticky/index.js +7 -0
- package/lib/node_modules/vant/es/swipe/Swipe.js +378 -0
- package/lib/node_modules/vant/es/swipe/index.js +7 -0
- package/lib/node_modules/vant/es/swipe-cell/SwipeCell.js +179 -0
- package/lib/node_modules/vant/es/swipe-cell/index.js +7 -0
- package/lib/node_modules/vant/es/swipe-item/SwipeItem.js +78 -0
- package/lib/node_modules/vant/es/swipe-item/index.js +6 -0
- package/lib/node_modules/vant/es/tab/Tab.js +153 -0
- package/lib/node_modules/vant/es/tab/TabTitle.js +92 -0
- package/lib/node_modules/vant/es/tab/index.js +7 -0
- package/lib/node_modules/vant/es/tabbar/Tabbar.js +88 -0
- package/lib/node_modules/vant/es/tabbar/index.js +7 -0
- package/lib/node_modules/vant/es/tabbar-item/TabbarItem.js +119 -0
- package/lib/node_modules/vant/es/tabbar-item/index.js +7 -0
- package/lib/node_modules/vant/es/tabs/Tabs.js +363 -0
- package/lib/node_modules/vant/es/tabs/TabsContent.js +68 -0
- package/lib/node_modules/vant/es/tabs/index.js +7 -0
- package/lib/node_modules/vant/es/tabs/utils.js +49 -0
- package/lib/node_modules/vant/es/tag/Tag.js +80 -0
- package/lib/node_modules/vant/es/tag/index.js +7 -0
- package/lib/node_modules/vant/es/text-ellipsis/TextEllipsis.js +169 -0
- package/lib/node_modules/vant/es/text-ellipsis/index.js +7 -0
- package/lib/node_modules/vant/es/time-picker/TimePicker.js +137 -0
- package/lib/node_modules/vant/es/time-picker/index.js +7 -0
- package/lib/node_modules/vant/es/toast/Toast.js +129 -0
- package/lib/node_modules/vant/es/toast/function-call.js +124 -0
- package/lib/node_modules/vant/es/toast/index.js +6 -0
- package/lib/node_modules/vant/es/toast/lock-click.js +17 -0
- package/lib/node_modules/vant/es/tree-select/TreeSelect.js +105 -0
- package/lib/node_modules/vant/es/tree-select/index.js +7 -0
- package/lib/node_modules/vant/es/uploader/Uploader.js +275 -0
- package/lib/node_modules/vant/es/uploader/UploaderPreviewItem.js +133 -0
- package/lib/node_modules/vant/es/uploader/index.js +7 -0
- package/lib/node_modules/vant/es/uploader/utils.js +70 -0
- package/lib/node_modules/vant/es/utils/basic.js +27 -0
- package/lib/node_modules/vant/es/utils/closest.js +8 -0
- package/lib/node_modules/vant/es/utils/constant.js +24 -0
- package/lib/node_modules/vant/es/utils/dom.js +84 -0
- package/lib/node_modules/vant/es/utils/format.js +99 -0
- package/lib/node_modules/vant/es/utils/interceptor.js +29 -0
- package/lib/node_modules/vant/es/utils/mount-component.js +39 -0
- package/lib/node_modules/vant/es/utils/props.js +22 -0
- package/lib/packages/mobile/index.js +5 -5
- package/lib/packages/mobile/src/components/base/button/Button.vue.js +6 -6
- package/lib/packages/mobile/src/components/base/card/Card.vue.js +15 -15
- package/lib/packages/mobile/src/components/base/cell/Cell.vue.js +5 -5
- package/lib/packages/mobile/src/components/base/cellGroup/CellGroup.vue.js +2 -2
- package/lib/packages/mobile/src/components/base/icon/Icon.vue.js +4 -4
- package/lib/packages/mobile/src/components/base/image/Image.vue.js +5 -5
- package/lib/packages/mobile/src/components/base/popup/Popup.vue.js +6 -6
- package/lib/packages/mobile/src/components/custom/appTimeLine/AppTimeLine.vue.js +13 -13
- package/lib/packages/mobile/src/components/custom/approvalBar/ApprovalBar.vue.js +22 -22
- package/lib/packages/mobile/src/components/custom/approvalList/ApprovalCard.vue.js +9 -9
- package/lib/packages/mobile/src/components/custom/approvalList/ApprovalList.vue.js +25 -25
- package/lib/packages/mobile/src/components/custom/document/Document.vue.js +17 -17
- package/lib/packages/mobile/src/components/custom/document/preview/index.vue.js +8 -8
- package/lib/packages/mobile/src/components/custom/timeLineFilter/TimeLineFilter.vue.js +8 -8
- package/lib/packages/mobile/src/components/custom/userSelect/UserSelect.vue.js +19 -19
- package/lib/packages/mobile/src/components/dataDisplay/cardList/CardList.vue.js +4 -4
- package/lib/packages/mobile/src/components/dataDisplay/collapse/Collapse.vue.js +2 -2
- package/lib/packages/mobile/src/components/dataDisplay/collapseItem/CollapseItem.vue.js +6 -6
- package/lib/packages/mobile/src/components/dataDisplay/divider/Divider.vue.js +3 -3
- package/lib/packages/mobile/src/components/dataDisplay/empty/Empty.vue.js +3 -3
- package/lib/packages/mobile/src/components/dataDisplay/highlight/Highlight.vue.js +3 -3
- package/lib/packages/mobile/src/components/dataDisplay/list/List.vue.js +4 -4
- package/lib/packages/mobile/src/components/dataDisplay/menuGrid/MenuGrid.vue.js +8 -8
- package/lib/packages/mobile/src/components/dataDisplay/noticeBar/NoticeBar.vue.js +7 -7
- package/lib/packages/mobile/src/components/dataDisplay/step/Step.vue.js +6 -6
- package/lib/packages/mobile/src/components/dataDisplay/steps/Steps.vue.js +7 -7
- package/lib/packages/mobile/src/components/dataDisplay/swipe/Swipe.vue.js +3 -3
- package/lib/packages/mobile/src/components/dataDisplay/swipeItem/SwipeItem.vue.js +3 -3
- package/lib/packages/mobile/src/components/dataDisplay/table/Table.vue.js +15 -15
- package/lib/packages/mobile/src/components/dataDisplay/textEllipsis/TextEllipsis.vue.js +3 -3
- package/lib/packages/mobile/src/components/dataDisplay/timeLine/TimeLine.vue.js +3 -3
- package/lib/packages/mobile/src/components/feedback/actionSheet/ActionSheet.vue.js +8 -8
- package/lib/packages/mobile/src/components/feedback/dropdownMenu/DropdownMenu.vue.js +9 -9
- package/lib/packages/mobile/src/components/feedback/floatingBubble/FloatingBubble.js +9 -9
- package/lib/packages/mobile/src/components/feedback/floatingPanel/FloatingPanel.vue.js +3 -3
- package/lib/packages/mobile/src/components/feedback/loading/Loading.vue.js +3 -3
- package/lib/packages/mobile/src/components/feedback/pullRefresh/PullRefresh.vue.js +4 -4
- package/lib/packages/mobile/src/components/feedback/quickFilter/QuickFilter.vue.js +11 -11
- package/lib/packages/mobile/src/components/feedback/swipeCell/SwipeCell.vue.js +2 -2
- package/lib/packages/mobile/src/components/form/checkbox/Checkbox.vue.js +5 -5
- package/lib/packages/mobile/src/components/form/checkboxGroup/CheckboxGroup.vue.js +6 -6
- package/lib/packages/mobile/src/components/form/field/Field.vue.js +6 -6
- package/lib/packages/mobile/src/components/form/fieldArea/FieldArea.vue.js +22 -22
- package/lib/packages/mobile/src/components/form/fieldCalendarPicker/FieldCalendarPicker.vue.js +17 -17
- package/lib/packages/mobile/src/components/form/fieldCascaderPicker/fieldCascaderPicker.vue.js +13 -13
- package/lib/packages/mobile/src/components/form/fieldDatePicker/FieldDatePicker.vue.js +15 -15
- package/lib/packages/mobile/src/components/form/fieldDateTimePicker/FieldDateTimePicker.vue.js +17 -17
- package/lib/packages/mobile/src/components/form/fieldIndustry/FieldIndustry.vue.js +13 -13
- package/lib/packages/mobile/src/components/form/fieldPicker/FieldPicker.vue.js +14 -14
- package/lib/packages/mobile/src/components/form/fieldTimePicker/FieldTimePicker.vue.js +15 -15
- package/lib/packages/mobile/src/components/form/form/Form.vue.js +3 -3
- package/lib/packages/mobile/src/components/form/radioGroup/RadioGroup.vue.js +7 -7
- package/lib/packages/mobile/src/components/form/search/Search.vue.js +7 -7
- package/lib/packages/mobile/src/components/form/submitButton/SubmitButton.vue.js +6 -6
- package/lib/packages/mobile/src/components/form/uploader/Uploader.vue.js +13 -13
- package/lib/packages/mobile/src/components/navigation/actionBar/ActionBar.vue.js +8 -8
- package/lib/packages/mobile/src/components/navigation/backTop/BackTop.vue.js +5 -5
- package/lib/packages/mobile/src/components/navigation/grid/Grid.vue.js +7 -7
- package/lib/packages/mobile/src/components/navigation/indexAnchor/IndexAnchor.vue.js +4 -4
- package/lib/packages/mobile/src/components/navigation/indexBar/IndexBar.vue.js +3 -3
- package/lib/packages/mobile/src/components/navigation/navBar/NavBar.vue.js +5 -5
- package/lib/packages/mobile/src/components/navigation/pagination/Pagination.vue.js +2 -2
- package/lib/packages/mobile/src/components/navigation/sidebar/Sidebar.vue.js +3 -3
- package/lib/packages/mobile/src/components/navigation/sidebarItem/SidebarItem.vue.js +5 -5
- package/lib/packages/mobile/src/components/navigation/tabbar/Tabbar.vue.js +6 -6
- package/lib/packages/mobile/src/components/navigation/tabbarItem/TabbarItem.vue.js +5 -5
- package/lib/packages/mobile/src/components/navigation/tabs/Tabs.vue.js +8 -8
- package/lib/packages/mobile/src/components/navigation/treeSelect/TreeSelect.vue.js +6 -6
- package/lib/packages/mobile/src/index.vue.js +3 -3
- package/lib/packages/mobile/src/page.vue.js +1 -1
- package/lib/packages/mobile/src/utils/formatterUtil.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { defineComponent, ref, computed, watch, createVNode, nextTick, mergeProps } from "vue";
|
|
2
|
+
import { name, assignDefaultFields, getColumnsType, formatCascadeColumns, findOptionByValue, isOptionExist, getFirstEnabledOption, bem } from "./utils.mjs";
|
|
3
|
+
import { useParent, useChildren, useEventListener } from "../../../@vant/use/dist/index.esm.mjs";
|
|
4
|
+
import { useExpose } from "../composables/use-expose.mjs";
|
|
5
|
+
import { Loading } from "../loading/index.mjs";
|
|
6
|
+
import stdin_default$2, { PICKER_KEY } from "./PickerColumn.mjs";
|
|
7
|
+
import stdin_default$1, { pickerToolbarPropKeys, pickerToolbarSlots, pickerToolbarProps } from "./PickerToolbar.mjs";
|
|
8
|
+
import { PICKER_GROUP_KEY } from "../picker-group/PickerGroup.mjs";
|
|
9
|
+
import { extend, isSameValue, pick } from "../utils/basic.mjs";
|
|
10
|
+
import { BORDER_UNSET_TOP_BOTTOM } from "../utils/constant.mjs";
|
|
11
|
+
import { unitToPx } from "../utils/format.mjs";
|
|
12
|
+
import { preventDefault } from "../utils/dom.mjs";
|
|
13
|
+
import { makeStringProp, makeArrayProp, makeNumericProp, truthProp } from "../utils/props.mjs";
|
|
14
|
+
const pickerSharedProps = extend({
|
|
15
|
+
loading: Boolean,
|
|
16
|
+
readonly: Boolean,
|
|
17
|
+
allowHtml: Boolean,
|
|
18
|
+
optionHeight: makeNumericProp(44),
|
|
19
|
+
showToolbar: truthProp,
|
|
20
|
+
swipeDuration: makeNumericProp(1e3),
|
|
21
|
+
visibleOptionNum: makeNumericProp(6)
|
|
22
|
+
}, pickerToolbarProps);
|
|
23
|
+
const pickerProps = extend({}, pickerSharedProps, {
|
|
24
|
+
columns: makeArrayProp(),
|
|
25
|
+
modelValue: makeArrayProp(),
|
|
26
|
+
toolbarPosition: makeStringProp("top"),
|
|
27
|
+
columnsFieldNames: Object
|
|
28
|
+
});
|
|
29
|
+
var stdin_default = defineComponent({
|
|
30
|
+
name,
|
|
31
|
+
props: pickerProps,
|
|
32
|
+
emits: ["confirm", "cancel", "change", "scrollInto", "clickOption", "update:modelValue"],
|
|
33
|
+
setup(props, {
|
|
34
|
+
emit,
|
|
35
|
+
slots
|
|
36
|
+
}) {
|
|
37
|
+
const columnsRef = ref();
|
|
38
|
+
const selectedValues = ref(props.modelValue.slice(0));
|
|
39
|
+
const {
|
|
40
|
+
parent
|
|
41
|
+
} = useParent(PICKER_GROUP_KEY);
|
|
42
|
+
const {
|
|
43
|
+
children,
|
|
44
|
+
linkChildren
|
|
45
|
+
} = useChildren(PICKER_KEY);
|
|
46
|
+
linkChildren();
|
|
47
|
+
const fields = computed(() => assignDefaultFields(props.columnsFieldNames));
|
|
48
|
+
const optionHeight = computed(() => unitToPx(props.optionHeight));
|
|
49
|
+
const columnsType = computed(() => getColumnsType(props.columns, fields.value));
|
|
50
|
+
const currentColumns = computed(() => {
|
|
51
|
+
const {
|
|
52
|
+
columns
|
|
53
|
+
} = props;
|
|
54
|
+
switch (columnsType.value) {
|
|
55
|
+
case "multiple":
|
|
56
|
+
return columns;
|
|
57
|
+
case "cascade":
|
|
58
|
+
return formatCascadeColumns(columns, fields.value, selectedValues);
|
|
59
|
+
default:
|
|
60
|
+
return [columns];
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
const hasOptions = computed(() => currentColumns.value.some((options) => options.length));
|
|
64
|
+
const selectedOptions = computed(() => currentColumns.value.map((options, index) => findOptionByValue(options, selectedValues.value[index], fields.value)));
|
|
65
|
+
const selectedIndexes = computed(() => currentColumns.value.map((options, index) => options.findIndex((option) => option[fields.value.value] === selectedValues.value[index])));
|
|
66
|
+
const setValue = (index, value) => {
|
|
67
|
+
if (selectedValues.value[index] !== value) {
|
|
68
|
+
const newValues = selectedValues.value.slice(0);
|
|
69
|
+
newValues[index] = value;
|
|
70
|
+
selectedValues.value = newValues;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
const getEventParams = () => ({
|
|
74
|
+
selectedValues: selectedValues.value.slice(0),
|
|
75
|
+
selectedOptions: selectedOptions.value,
|
|
76
|
+
selectedIndexes: selectedIndexes.value
|
|
77
|
+
});
|
|
78
|
+
const onChange = (value, columnIndex) => {
|
|
79
|
+
setValue(columnIndex, value);
|
|
80
|
+
if (columnsType.value === "cascade") {
|
|
81
|
+
selectedValues.value.forEach((value2, index) => {
|
|
82
|
+
const options = currentColumns.value[index];
|
|
83
|
+
if (!isOptionExist(options, value2, fields.value)) {
|
|
84
|
+
setValue(index, options.length ? options[0][fields.value.value] : void 0);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
nextTick(() => {
|
|
89
|
+
emit("change", extend({
|
|
90
|
+
columnIndex
|
|
91
|
+
}, getEventParams()));
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
const onClickOption = (currentOption, columnIndex) => {
|
|
95
|
+
const params = {
|
|
96
|
+
columnIndex,
|
|
97
|
+
currentOption
|
|
98
|
+
};
|
|
99
|
+
emit("clickOption", extend(getEventParams(), params));
|
|
100
|
+
emit("scrollInto", params);
|
|
101
|
+
};
|
|
102
|
+
const confirm = () => {
|
|
103
|
+
children.forEach((child) => child.stopMomentum());
|
|
104
|
+
const params = getEventParams();
|
|
105
|
+
nextTick(() => {
|
|
106
|
+
emit("confirm", params);
|
|
107
|
+
});
|
|
108
|
+
return params;
|
|
109
|
+
};
|
|
110
|
+
const cancel = () => emit("cancel", getEventParams());
|
|
111
|
+
const renderColumnItems = () => currentColumns.value.map((options, columnIndex) => createVNode(stdin_default$2, {
|
|
112
|
+
"value": selectedValues.value[columnIndex],
|
|
113
|
+
"fields": fields.value,
|
|
114
|
+
"options": options,
|
|
115
|
+
"readonly": props.readonly,
|
|
116
|
+
"allowHtml": props.allowHtml,
|
|
117
|
+
"optionHeight": optionHeight.value,
|
|
118
|
+
"swipeDuration": props.swipeDuration,
|
|
119
|
+
"visibleOptionNum": props.visibleOptionNum,
|
|
120
|
+
"onChange": (value) => onChange(value, columnIndex),
|
|
121
|
+
"onClickOption": (option) => onClickOption(option, columnIndex),
|
|
122
|
+
"onScrollInto": (option) => {
|
|
123
|
+
emit("scrollInto", {
|
|
124
|
+
currentOption: option,
|
|
125
|
+
columnIndex
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}, {
|
|
129
|
+
option: slots.option
|
|
130
|
+
}));
|
|
131
|
+
const renderMask = (wrapHeight) => {
|
|
132
|
+
if (hasOptions.value) {
|
|
133
|
+
const frameStyle = {
|
|
134
|
+
height: `${optionHeight.value}px`
|
|
135
|
+
};
|
|
136
|
+
const maskStyle = {
|
|
137
|
+
backgroundSize: `100% ${(wrapHeight - optionHeight.value) / 2}px`
|
|
138
|
+
};
|
|
139
|
+
return [createVNode("div", {
|
|
140
|
+
"class": bem("mask"),
|
|
141
|
+
"style": maskStyle
|
|
142
|
+
}, null), createVNode("div", {
|
|
143
|
+
"class": [BORDER_UNSET_TOP_BOTTOM, bem("frame")],
|
|
144
|
+
"style": frameStyle
|
|
145
|
+
}, null)];
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
const renderColumns = () => {
|
|
149
|
+
const wrapHeight = optionHeight.value * +props.visibleOptionNum;
|
|
150
|
+
const columnsStyle = {
|
|
151
|
+
height: `${wrapHeight}px`
|
|
152
|
+
};
|
|
153
|
+
if (!props.loading && !hasOptions.value && slots.empty) {
|
|
154
|
+
return slots.empty();
|
|
155
|
+
}
|
|
156
|
+
return createVNode("div", {
|
|
157
|
+
"ref": columnsRef,
|
|
158
|
+
"class": bem("columns"),
|
|
159
|
+
"style": columnsStyle
|
|
160
|
+
}, [renderColumnItems(), renderMask(wrapHeight)]);
|
|
161
|
+
};
|
|
162
|
+
const renderToolbar = () => {
|
|
163
|
+
if (props.showToolbar && !parent) {
|
|
164
|
+
return createVNode(stdin_default$1, mergeProps(pick(props, pickerToolbarPropKeys), {
|
|
165
|
+
"onConfirm": confirm,
|
|
166
|
+
"onCancel": cancel
|
|
167
|
+
}), pick(slots, pickerToolbarSlots));
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
watch(currentColumns, (columns) => {
|
|
171
|
+
columns.forEach((options, index) => {
|
|
172
|
+
if (options.length && !isOptionExist(options, selectedValues.value[index], fields.value)) {
|
|
173
|
+
setValue(index, getFirstEnabledOption(options)[fields.value.value]);
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
}, {
|
|
177
|
+
immediate: true
|
|
178
|
+
});
|
|
179
|
+
let lastEmittedModelValue;
|
|
180
|
+
watch(() => props.modelValue, (newValues) => {
|
|
181
|
+
if (!isSameValue(newValues, selectedValues.value) && !isSameValue(newValues, lastEmittedModelValue)) {
|
|
182
|
+
selectedValues.value = newValues.slice(0);
|
|
183
|
+
lastEmittedModelValue = newValues.slice(0);
|
|
184
|
+
}
|
|
185
|
+
}, {
|
|
186
|
+
deep: true
|
|
187
|
+
});
|
|
188
|
+
watch(selectedValues, (newValues) => {
|
|
189
|
+
if (!isSameValue(newValues, props.modelValue)) {
|
|
190
|
+
lastEmittedModelValue = newValues.slice(0);
|
|
191
|
+
emit("update:modelValue", lastEmittedModelValue);
|
|
192
|
+
}
|
|
193
|
+
}, {
|
|
194
|
+
immediate: true
|
|
195
|
+
});
|
|
196
|
+
useEventListener("touchmove", preventDefault, {
|
|
197
|
+
target: columnsRef
|
|
198
|
+
});
|
|
199
|
+
const getSelectedOptions = () => selectedOptions.value;
|
|
200
|
+
useExpose({
|
|
201
|
+
confirm,
|
|
202
|
+
getSelectedOptions
|
|
203
|
+
});
|
|
204
|
+
return () => {
|
|
205
|
+
var _a, _b;
|
|
206
|
+
return createVNode("div", {
|
|
207
|
+
"class": bem()
|
|
208
|
+
}, [props.toolbarPosition === "top" ? renderToolbar() : null, props.loading ? createVNode(Loading, {
|
|
209
|
+
"class": bem("loading")
|
|
210
|
+
}, null) : null, (_a = slots["columns-top"]) == null ? void 0 : _a.call(slots), renderColumns(), (_b = slots["columns-bottom"]) == null ? void 0 : _b.call(slots), props.toolbarPosition === "bottom" ? renderToolbar() : null]);
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
export {
|
|
215
|
+
stdin_default as default,
|
|
216
|
+
pickerProps,
|
|
217
|
+
pickerSharedProps
|
|
218
|
+
};
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { defineComponent, ref, computed, watchEffect, createVNode } from "vue";
|
|
2
|
+
import { findIndexOfEnabledOption, getElementTranslateY } from "./utils.mjs";
|
|
3
|
+
import { useParent, useEventListener } from "../../../@vant/use/dist/index.esm.mjs";
|
|
4
|
+
import { useTouch } from "../composables/use-touch.mjs";
|
|
5
|
+
import { useExpose } from "../composables/use-expose.mjs";
|
|
6
|
+
import { makeRequiredProp, makeArrayProp, numericProp } from "../utils/props.mjs";
|
|
7
|
+
import { createNamespace } from "../utils/create.mjs";
|
|
8
|
+
import { clamp } from "../utils/format.mjs";
|
|
9
|
+
import { preventDefault } from "../utils/dom.mjs";
|
|
10
|
+
const DEFAULT_DURATION = 200;
|
|
11
|
+
const MOMENTUM_TIME = 300;
|
|
12
|
+
const MOMENTUM_DISTANCE = 15;
|
|
13
|
+
const [name, bem] = createNamespace("picker-column");
|
|
14
|
+
const PICKER_KEY = Symbol(name);
|
|
15
|
+
var stdin_default = defineComponent({
|
|
16
|
+
name,
|
|
17
|
+
props: {
|
|
18
|
+
value: numericProp,
|
|
19
|
+
fields: makeRequiredProp(Object),
|
|
20
|
+
options: makeArrayProp(),
|
|
21
|
+
readonly: Boolean,
|
|
22
|
+
allowHtml: Boolean,
|
|
23
|
+
optionHeight: makeRequiredProp(Number),
|
|
24
|
+
swipeDuration: makeRequiredProp(numericProp),
|
|
25
|
+
visibleOptionNum: makeRequiredProp(numericProp)
|
|
26
|
+
},
|
|
27
|
+
emits: ["change", "clickOption", "scrollInto"],
|
|
28
|
+
setup(props, {
|
|
29
|
+
emit,
|
|
30
|
+
slots
|
|
31
|
+
}) {
|
|
32
|
+
let moving;
|
|
33
|
+
let startOffset;
|
|
34
|
+
let touchStartTime;
|
|
35
|
+
let momentumOffset;
|
|
36
|
+
let transitionEndTrigger;
|
|
37
|
+
const root = ref();
|
|
38
|
+
const wrapper = ref();
|
|
39
|
+
const currentOffset = ref(0);
|
|
40
|
+
const currentDuration = ref(0);
|
|
41
|
+
const touch = useTouch();
|
|
42
|
+
const count = () => props.options.length;
|
|
43
|
+
const baseOffset = () => props.optionHeight * (+props.visibleOptionNum - 1) / 2;
|
|
44
|
+
const updateValueByIndex = (index) => {
|
|
45
|
+
let enabledIndex = findIndexOfEnabledOption(props.options, index);
|
|
46
|
+
const offset = -enabledIndex * props.optionHeight;
|
|
47
|
+
const trigger = () => {
|
|
48
|
+
if (enabledIndex > count() - 1) {
|
|
49
|
+
enabledIndex = findIndexOfEnabledOption(props.options, index);
|
|
50
|
+
}
|
|
51
|
+
const value = props.options[enabledIndex][props.fields.value];
|
|
52
|
+
if (value !== props.value) {
|
|
53
|
+
emit("change", value);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
if (moving && offset !== currentOffset.value) {
|
|
57
|
+
transitionEndTrigger = trigger;
|
|
58
|
+
} else {
|
|
59
|
+
trigger();
|
|
60
|
+
}
|
|
61
|
+
currentOffset.value = offset;
|
|
62
|
+
};
|
|
63
|
+
const isReadonly = () => props.readonly || !props.options.length;
|
|
64
|
+
const onClickOption = (index) => {
|
|
65
|
+
if (moving || isReadonly()) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
transitionEndTrigger = null;
|
|
69
|
+
currentDuration.value = DEFAULT_DURATION;
|
|
70
|
+
updateValueByIndex(index);
|
|
71
|
+
emit("clickOption", props.options[index]);
|
|
72
|
+
};
|
|
73
|
+
const getIndexByOffset = (offset) => clamp(Math.round(-offset / props.optionHeight), 0, count() - 1);
|
|
74
|
+
const currentIndex = computed(() => getIndexByOffset(currentOffset.value));
|
|
75
|
+
const momentum = (distance, duration) => {
|
|
76
|
+
const speed = Math.abs(distance / duration);
|
|
77
|
+
distance = currentOffset.value + speed / 3e-3 * (distance < 0 ? -1 : 1);
|
|
78
|
+
const index = getIndexByOffset(distance);
|
|
79
|
+
currentDuration.value = +props.swipeDuration;
|
|
80
|
+
updateValueByIndex(index);
|
|
81
|
+
};
|
|
82
|
+
const stopMomentum = () => {
|
|
83
|
+
moving = false;
|
|
84
|
+
currentDuration.value = 0;
|
|
85
|
+
if (transitionEndTrigger) {
|
|
86
|
+
transitionEndTrigger();
|
|
87
|
+
transitionEndTrigger = null;
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
const onTouchStart = (event) => {
|
|
91
|
+
if (isReadonly()) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
touch.start(event);
|
|
95
|
+
if (moving) {
|
|
96
|
+
const translateY = getElementTranslateY(wrapper.value);
|
|
97
|
+
currentOffset.value = Math.min(0, translateY - baseOffset());
|
|
98
|
+
}
|
|
99
|
+
currentDuration.value = 0;
|
|
100
|
+
startOffset = currentOffset.value;
|
|
101
|
+
touchStartTime = Date.now();
|
|
102
|
+
momentumOffset = startOffset;
|
|
103
|
+
transitionEndTrigger = null;
|
|
104
|
+
};
|
|
105
|
+
const onTouchMove = (event) => {
|
|
106
|
+
if (isReadonly()) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
touch.move(event);
|
|
110
|
+
if (touch.isVertical()) {
|
|
111
|
+
moving = true;
|
|
112
|
+
preventDefault(event, true);
|
|
113
|
+
}
|
|
114
|
+
const newOffset = clamp(startOffset + touch.deltaY.value, -(count() * props.optionHeight), props.optionHeight);
|
|
115
|
+
const newIndex = getIndexByOffset(newOffset);
|
|
116
|
+
if (newIndex !== currentIndex.value) {
|
|
117
|
+
emit("scrollInto", props.options[newIndex]);
|
|
118
|
+
}
|
|
119
|
+
currentOffset.value = newOffset;
|
|
120
|
+
const now = Date.now();
|
|
121
|
+
if (now - touchStartTime > MOMENTUM_TIME) {
|
|
122
|
+
touchStartTime = now;
|
|
123
|
+
momentumOffset = newOffset;
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
const onTouchEnd = () => {
|
|
127
|
+
if (isReadonly()) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
const distance = currentOffset.value - momentumOffset;
|
|
131
|
+
const duration = Date.now() - touchStartTime;
|
|
132
|
+
const startMomentum = duration < MOMENTUM_TIME && Math.abs(distance) > MOMENTUM_DISTANCE;
|
|
133
|
+
if (startMomentum) {
|
|
134
|
+
momentum(distance, duration);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const index = getIndexByOffset(currentOffset.value);
|
|
138
|
+
currentDuration.value = DEFAULT_DURATION;
|
|
139
|
+
updateValueByIndex(index);
|
|
140
|
+
setTimeout(() => {
|
|
141
|
+
moving = false;
|
|
142
|
+
}, 0);
|
|
143
|
+
};
|
|
144
|
+
const renderOptions = () => {
|
|
145
|
+
const optionStyle = {
|
|
146
|
+
height: `${props.optionHeight}px`
|
|
147
|
+
};
|
|
148
|
+
return props.options.map((option, index) => {
|
|
149
|
+
const text = option[props.fields.text];
|
|
150
|
+
const {
|
|
151
|
+
disabled
|
|
152
|
+
} = option;
|
|
153
|
+
const value = option[props.fields.value];
|
|
154
|
+
const data = {
|
|
155
|
+
role: "button",
|
|
156
|
+
style: optionStyle,
|
|
157
|
+
tabindex: disabled ? -1 : 0,
|
|
158
|
+
class: [bem("item", {
|
|
159
|
+
disabled,
|
|
160
|
+
selected: value === props.value
|
|
161
|
+
}), option.className],
|
|
162
|
+
onClick: () => onClickOption(index)
|
|
163
|
+
};
|
|
164
|
+
const childData = {
|
|
165
|
+
class: "van-ellipsis",
|
|
166
|
+
[props.allowHtml ? "innerHTML" : "textContent"]: text
|
|
167
|
+
};
|
|
168
|
+
return createVNode("li", data, [slots.option ? slots.option(option, index) : createVNode("div", childData, null)]);
|
|
169
|
+
});
|
|
170
|
+
};
|
|
171
|
+
useParent(PICKER_KEY);
|
|
172
|
+
useExpose({
|
|
173
|
+
stopMomentum
|
|
174
|
+
});
|
|
175
|
+
watchEffect(() => {
|
|
176
|
+
const index = moving ? Math.floor(-currentOffset.value / props.optionHeight) : props.options.findIndex((option) => option[props.fields.value] === props.value);
|
|
177
|
+
const enabledIndex = findIndexOfEnabledOption(props.options, index);
|
|
178
|
+
const offset = -enabledIndex * props.optionHeight;
|
|
179
|
+
if (moving && enabledIndex < index) stopMomentum();
|
|
180
|
+
currentOffset.value = offset;
|
|
181
|
+
});
|
|
182
|
+
useEventListener("touchmove", onTouchMove, {
|
|
183
|
+
target: root
|
|
184
|
+
});
|
|
185
|
+
return () => createVNode("div", {
|
|
186
|
+
"ref": root,
|
|
187
|
+
"class": bem(),
|
|
188
|
+
"onTouchstartPassive": onTouchStart,
|
|
189
|
+
"onTouchend": onTouchEnd,
|
|
190
|
+
"onTouchcancel": onTouchEnd
|
|
191
|
+
}, [createVNode("ul", {
|
|
192
|
+
"ref": wrapper,
|
|
193
|
+
"style": {
|
|
194
|
+
transform: `translate3d(0, ${currentOffset.value + baseOffset()}px, 0)`,
|
|
195
|
+
transitionDuration: `${currentDuration.value}ms`,
|
|
196
|
+
transitionProperty: currentDuration.value ? "all" : "none"
|
|
197
|
+
},
|
|
198
|
+
"class": bem("wrapper"),
|
|
199
|
+
"onTransitionend": stopMomentum
|
|
200
|
+
}, [renderOptions()])]);
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
export {
|
|
204
|
+
PICKER_KEY,
|
|
205
|
+
stdin_default as default
|
|
206
|
+
};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { defineComponent, createVNode } from "vue";
|
|
2
|
+
import { bem, t } from "./utils.mjs";
|
|
3
|
+
import { createNamespace } from "../utils/create.mjs";
|
|
4
|
+
import { HAPTICS_FEEDBACK } from "../utils/constant.mjs";
|
|
5
|
+
const [name] = createNamespace("picker-toolbar");
|
|
6
|
+
const pickerToolbarProps = {
|
|
7
|
+
title: String,
|
|
8
|
+
cancelButtonText: String,
|
|
9
|
+
confirmButtonText: String
|
|
10
|
+
};
|
|
11
|
+
const pickerToolbarSlots = ["cancel", "confirm", "title", "toolbar"];
|
|
12
|
+
const pickerToolbarPropKeys = Object.keys(pickerToolbarProps);
|
|
13
|
+
var stdin_default = defineComponent({
|
|
14
|
+
name,
|
|
15
|
+
props: pickerToolbarProps,
|
|
16
|
+
emits: ["confirm", "cancel"],
|
|
17
|
+
setup(props, {
|
|
18
|
+
emit,
|
|
19
|
+
slots
|
|
20
|
+
}) {
|
|
21
|
+
const renderTitle = () => {
|
|
22
|
+
if (slots.title) {
|
|
23
|
+
return slots.title();
|
|
24
|
+
}
|
|
25
|
+
if (props.title) {
|
|
26
|
+
return createVNode("div", {
|
|
27
|
+
"class": [bem("title"), "van-ellipsis"]
|
|
28
|
+
}, [props.title]);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const onCancel = () => emit("cancel");
|
|
32
|
+
const onConfirm = () => emit("confirm");
|
|
33
|
+
const renderCancel = () => {
|
|
34
|
+
var _a;
|
|
35
|
+
const text = (_a = props.cancelButtonText) != null ? _a : t("cancel");
|
|
36
|
+
if (!slots.cancel && !text) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
return createVNode("button", {
|
|
40
|
+
"type": "button",
|
|
41
|
+
"class": [bem("cancel"), HAPTICS_FEEDBACK],
|
|
42
|
+
"onClick": onCancel
|
|
43
|
+
}, [slots.cancel ? slots.cancel() : text]);
|
|
44
|
+
};
|
|
45
|
+
const renderConfirm = () => {
|
|
46
|
+
var _a;
|
|
47
|
+
const text = (_a = props.confirmButtonText) != null ? _a : t("confirm");
|
|
48
|
+
if (!slots.confirm && !text) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
return createVNode("button", {
|
|
52
|
+
"type": "button",
|
|
53
|
+
"class": [bem("confirm"), HAPTICS_FEEDBACK],
|
|
54
|
+
"onClick": onConfirm
|
|
55
|
+
}, [slots.confirm ? slots.confirm() : text]);
|
|
56
|
+
};
|
|
57
|
+
return () => createVNode("div", {
|
|
58
|
+
"class": bem("toolbar")
|
|
59
|
+
}, [slots.toolbar ? slots.toolbar() : [renderCancel(), renderTitle(), renderConfirm()]]);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
export {
|
|
63
|
+
stdin_default as default,
|
|
64
|
+
pickerToolbarPropKeys,
|
|
65
|
+
pickerToolbarProps,
|
|
66
|
+
pickerToolbarSlots
|
|
67
|
+
};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { clamp } from "../utils/format.mjs";
|
|
2
|
+
import { createNamespace } from "../utils/create.mjs";
|
|
3
|
+
import { extend, isDef } from "../utils/basic.mjs";
|
|
4
|
+
const [name, bem, t] = createNamespace("picker");
|
|
5
|
+
const getFirstEnabledOption = (options) => options.find((option) => !option.disabled) || options[0];
|
|
6
|
+
function getColumnsType(columns, fields) {
|
|
7
|
+
const firstColumn = columns[0];
|
|
8
|
+
if (firstColumn) {
|
|
9
|
+
if (Array.isArray(firstColumn)) {
|
|
10
|
+
return "multiple";
|
|
11
|
+
}
|
|
12
|
+
if (fields.children in firstColumn) {
|
|
13
|
+
return "cascade";
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return "default";
|
|
17
|
+
}
|
|
18
|
+
function findIndexOfEnabledOption(options, index) {
|
|
19
|
+
index = clamp(index, 0, options.length);
|
|
20
|
+
for (let i = index; i < options.length; i++) {
|
|
21
|
+
if (!options[i].disabled) return i;
|
|
22
|
+
}
|
|
23
|
+
for (let i = index - 1; i >= 0; i--) {
|
|
24
|
+
if (!options[i].disabled) return i;
|
|
25
|
+
}
|
|
26
|
+
return 0;
|
|
27
|
+
}
|
|
28
|
+
const isOptionExist = (options, value, fields) => value !== void 0 && !!options.find((option) => option[fields.value] === value);
|
|
29
|
+
function findOptionByValue(options, value, fields) {
|
|
30
|
+
const index = options.findIndex((option) => option[fields.value] === value);
|
|
31
|
+
const enabledIndex = findIndexOfEnabledOption(options, index);
|
|
32
|
+
return options[enabledIndex];
|
|
33
|
+
}
|
|
34
|
+
function formatCascadeColumns(columns, fields, selectedValues) {
|
|
35
|
+
const formatted = [];
|
|
36
|
+
let cursor = {
|
|
37
|
+
[fields.children]: columns
|
|
38
|
+
};
|
|
39
|
+
let columnIndex = 0;
|
|
40
|
+
while (cursor && cursor[fields.children]) {
|
|
41
|
+
const options = cursor[fields.children];
|
|
42
|
+
const value = selectedValues.value[columnIndex];
|
|
43
|
+
cursor = isDef(value) ? findOptionByValue(options, value, fields) : void 0;
|
|
44
|
+
if (!cursor && options.length) {
|
|
45
|
+
const firstValue = getFirstEnabledOption(options)[fields.value];
|
|
46
|
+
cursor = findOptionByValue(options, firstValue, fields);
|
|
47
|
+
}
|
|
48
|
+
columnIndex++;
|
|
49
|
+
formatted.push(options);
|
|
50
|
+
}
|
|
51
|
+
return formatted;
|
|
52
|
+
}
|
|
53
|
+
function getElementTranslateY(element) {
|
|
54
|
+
const { transform } = window.getComputedStyle(element);
|
|
55
|
+
const translateY = transform.slice(7, transform.length - 1).split(", ")[5];
|
|
56
|
+
return Number(translateY);
|
|
57
|
+
}
|
|
58
|
+
function assignDefaultFields(fields) {
|
|
59
|
+
return extend(
|
|
60
|
+
{
|
|
61
|
+
text: "text",
|
|
62
|
+
value: "value",
|
|
63
|
+
children: "children"
|
|
64
|
+
},
|
|
65
|
+
fields
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
export {
|
|
69
|
+
assignDefaultFields,
|
|
70
|
+
bem,
|
|
71
|
+
findIndexOfEnabledOption,
|
|
72
|
+
findOptionByValue,
|
|
73
|
+
formatCascadeColumns,
|
|
74
|
+
getColumnsType,
|
|
75
|
+
getElementTranslateY,
|
|
76
|
+
getFirstEnabledOption,
|
|
77
|
+
isOptionExist,
|
|
78
|
+
name,
|
|
79
|
+
t
|
|
80
|
+
};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { defineComponent, Comment, Fragment, createVNode } from "vue";
|
|
2
|
+
import { useChildren } from "../../../@vant/use/dist/index.esm.mjs";
|
|
3
|
+
import { useSyncPropRef } from "../composables/use-sync-prop-ref.mjs";
|
|
4
|
+
import { Tab } from "../tab/index.mjs";
|
|
5
|
+
import { Tabs } from "../tabs/index.mjs";
|
|
6
|
+
import stdin_default$1, { pickerToolbarSlots, pickerToolbarProps } from "../picker/PickerToolbar.mjs";
|
|
7
|
+
import { extend, flat, pick } from "../utils/basic.mjs";
|
|
8
|
+
import { createNamespace } from "../utils/create.mjs";
|
|
9
|
+
import { truthProp, makeNumericProp, makeArrayProp } from "../utils/props.mjs";
|
|
10
|
+
const [name, bem] = createNamespace("picker-group");
|
|
11
|
+
const PICKER_GROUP_KEY = Symbol(name);
|
|
12
|
+
const pickerGroupProps = extend({
|
|
13
|
+
tabs: makeArrayProp(),
|
|
14
|
+
activeTab: makeNumericProp(0),
|
|
15
|
+
nextStepText: String,
|
|
16
|
+
showToolbar: truthProp
|
|
17
|
+
}, pickerToolbarProps);
|
|
18
|
+
var stdin_default = defineComponent({
|
|
19
|
+
name,
|
|
20
|
+
props: pickerGroupProps,
|
|
21
|
+
emits: ["confirm", "cancel", "update:activeTab"],
|
|
22
|
+
setup(props, {
|
|
23
|
+
emit,
|
|
24
|
+
slots
|
|
25
|
+
}) {
|
|
26
|
+
const activeTab = useSyncPropRef(() => props.activeTab, (value) => emit("update:activeTab", value));
|
|
27
|
+
const {
|
|
28
|
+
children,
|
|
29
|
+
linkChildren
|
|
30
|
+
} = useChildren(PICKER_GROUP_KEY);
|
|
31
|
+
linkChildren();
|
|
32
|
+
const showNextButton = () => +activeTab.value < props.tabs.length - 1 && props.nextStepText;
|
|
33
|
+
const onConfirm = () => {
|
|
34
|
+
if (showNextButton()) {
|
|
35
|
+
activeTab.value = +activeTab.value + 1;
|
|
36
|
+
} else {
|
|
37
|
+
emit("confirm", children.map((item) => item.confirm()));
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const onCancel = () => emit("cancel");
|
|
41
|
+
return () => {
|
|
42
|
+
var _a, _b;
|
|
43
|
+
let childNodes = (_b = (_a = slots.default) == null ? void 0 : _a.call(slots)) == null ? void 0 : _b.filter((node) => node.type !== Comment).map((node) => {
|
|
44
|
+
if (node.type === Fragment) {
|
|
45
|
+
return node.children;
|
|
46
|
+
}
|
|
47
|
+
return node;
|
|
48
|
+
});
|
|
49
|
+
if (childNodes) {
|
|
50
|
+
childNodes = flat(childNodes);
|
|
51
|
+
}
|
|
52
|
+
const confirmButtonText = showNextButton() ? props.nextStepText : props.confirmButtonText;
|
|
53
|
+
return createVNode("div", {
|
|
54
|
+
"class": bem()
|
|
55
|
+
}, [props.showToolbar ? createVNode(stdin_default$1, {
|
|
56
|
+
"title": props.title,
|
|
57
|
+
"cancelButtonText": props.cancelButtonText,
|
|
58
|
+
"confirmButtonText": confirmButtonText,
|
|
59
|
+
"onConfirm": onConfirm,
|
|
60
|
+
"onCancel": onCancel
|
|
61
|
+
}, pick(slots, pickerToolbarSlots)) : null, createVNode(Tabs, {
|
|
62
|
+
"active": activeTab.value,
|
|
63
|
+
"onUpdate:active": ($event) => activeTab.value = $event,
|
|
64
|
+
"class": bem("tabs"),
|
|
65
|
+
"shrink": true,
|
|
66
|
+
"animated": true,
|
|
67
|
+
"lazyRender": false
|
|
68
|
+
}, {
|
|
69
|
+
default: () => [props.tabs.map((title, index) => createVNode(Tab, {
|
|
70
|
+
"title": title,
|
|
71
|
+
"titleClass": bem("tab-title")
|
|
72
|
+
}, {
|
|
73
|
+
default: () => [childNodes == null ? void 0 : childNodes[index]]
|
|
74
|
+
}))]
|
|
75
|
+
})]);
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
export {
|
|
80
|
+
PICKER_GROUP_KEY,
|
|
81
|
+
stdin_default as default,
|
|
82
|
+
pickerGroupProps
|
|
83
|
+
};
|