From 640c1a2aab9bf3fbae35f03bd076fcf4ba4a02ff Mon Sep 17 00:00:00 2001 From: ajaxzheng <894103554@qq.com> Date: Wed, 26 Jun 2024 11:08:46 +0800 Subject: [PATCH] feat: update mobile first template (#1697) --- .eslintrc.js | 4 +- examples/sites/demos/apis/button-group.js | 1 + examples/sites/demos/apis/card.js | 85 +- examples/sites/demos/apis/carousel.js | 38 + examples/sites/demos/apis/collapse.js | 11 + examples/sites/demos/apis/currency.js | 106 +- examples/sites/demos/apis/drawer.js | 69 +- examples/sites/demos/apis/grid.js | 54 + examples/sites/demos/apis/input.js | 14 + examples/sites/demos/apis/popover.js | 2 + examples/sites/demos/apis/select.js | 28 +- examples/sites/demos/apis/split.js | 23 +- examples/sites/demos/apis/time-line.js | 5 +- examples/sites/demos/apis/tooltip.js | 2 + examples/sites/demos/apis/tree.js | 27 + .../app/date-picker/about-clear.vue | 25 + .../app/date-picker/basic-usage.vue | 20 + .../app/date-picker/date-range.vue | 35 + .../app/date-picker/datetime-range.vue | 21 + .../mobile-first/app/date-picker/datetime.vue | 20 + .../mobile-first/app/date-picker/disabled.vue | 32 + .../app/date-picker/placeholder.vue | 32 + .../mobile-first/app/date-picker/step.vue | 25 + .../app/date-picker/webdoc/date-picker.cn.md | 9 + .../app/date-picker/webdoc/date-picker.en.md | 9 + .../app/date-picker/webdoc/date-picker.js | 120 ++ .../mobile-first/app/date-picker/year.vue | 63 + .../demos/mobile-first/app/input/resize.vue | 65 +- .../mobile-first/app/input/webdoc/input.js | 10 +- .../mobile-first/app/tabs/before-leave.vue | 3 + examples/sites/demos/mobile-first/menus.js | 1 + .../pc/app/amount/custom-service.spec.js | 3 +- .../pc/app/autocomplete/debounce.spec.ts | 3 +- .../demos/pc/app/autocomplete/size.spec.ts | 1 - .../button-group/disabled-composition-api.vue | 2 +- .../pc/app/button-group/disabled.spec.ts | 4 + .../demos/pc/app/button-group/disabled.vue | 2 +- .../app/button-group/webdoc/button-group.js | 4 +- .../set-working-day-composition-api.vue | 20 + .../pc/app/calendar-view/set-working-day.vue | 20 + .../app/calendar/dynamic-add-schedule.spec.ts | 15 +- .../app/card/card-select-composition-api.vue | 165 +++ .../sites/demos/pc/app/card/card-select.vue | 175 +++ .../app/card/check-mode-composition-api.vue | 102 ++ .../sites/demos/pc/app/card/check-mode.vue | 111 ++ .../app/card/custom-class-composition-api.vue | 5 +- .../sites/demos/pc/app/card/custom-class.vue | 5 +- .../sites/demos/pc/app/card/webdoc/card.js | 30 +- .../carousel/swipeable-composition-api.vue | 30 + .../sites/demos/pc/app/carousel/swipeable.vue | 37 + .../demos/pc/app/carousel/webdoc/carousel.js | 22 +- .../sites/demos/pc/app/collapse/accordion.vue | 4 +- .../pc/app/collapse/icon-composition-api.vue | 8 +- examples/sites/demos/pc/app/collapse/icon.vue | 9 +- .../demos/pc/app/collapse/webdoc/collapse.js | 4 +- .../pc/app/color/auxiliary-color.spec.js | 16 +- .../demos/pc/app/color/main-color.spec.js | 13 +- .../demos/pc/app/color/neutral-color.spec.js | 9 +- .../app/config-provider/text-direct.spec.ts | 2 - .../sites/demos/pc/app/crop/crop-meth.spec.ts | 6 - .../currency/set-default-composition-api..vue | 10 + ...efault-custom-service-composition-api..vue | 43 + .../currency/set-default-custom-service.vue | 50 + .../demos/pc/app/currency/set-default.vue | 18 + .../demos/pc/app/currency/webdoc/currency.js | 27 + .../lock-scroll-composition-api.vue | 42 +- .../demos/pc/app/dialog-box/lock-scroll.vue | 43 +- .../drawer/before-close-composition-api.vue | 23 +- .../demos/pc/app/drawer/before-close.spec.ts | 4 +- .../demos/pc/app/drawer/before-close.vue | 20 +- .../drawer/close-event-composition-api.vue | 35 - .../demos/pc/app/drawer/close-event.spec.ts | 18 - .../sites/demos/pc/app/drawer/close-event.vue | 43 - .../drawer/confirm-event-composition-api.vue | 29 - .../demos/pc/app/drawer/confirm-event.spec.ts | 11 - .../pc/app/drawer/events-composition-api.vue | 45 + .../sites/demos/pc/app/drawer/events.spec.ts | 35 + examples/sites/demos/pc/app/drawer/events.vue | 55 + .../app/drawer/open-event-composition-api.vue | 27 - .../demos/pc/app/drawer/open-event.spec.ts | 11 - .../sites/demos/pc/app/drawer/open-event.vue | 36 - .../use-through-method-composition-api.vue | 53 + .../pc/app/drawer/use-through-method.spec.ts | 14 + .../pc/app/drawer/use-through-method.vue | 60 + .../demos/pc/app/drawer/webdoc/drawer.js | 62 +- .../demos/pc/app/dropdown/options.spec.ts | 2 +- .../flowchart/basic-usage-composition-api.vue | 9 +- .../demos/pc/app/flowchart/basic-usage.vue | 8 +- .../pc/app/grid/custom/column-simple.spec.js | 6 +- .../multi-header-drag-composition-api.vue | 156 +++ .../app/grid/drag/multi-header-drag.spec.js | 40 + .../pc/app/grid/drag/multi-header-drag.vue | 166 +++ .../grid/drag/row-drag-composition-api.vue | 4 +- .../demos/pc/app/grid/drag/row-drag.spec.js | 4 +- .../sites/demos/pc/app/grid/drag/row-drag.vue | 4 +- .../dynamic-slot-composition-api.vue | 88 ++ .../dynamically-columns/dynamic-slot.spec.js | 14 + .../grid/dynamically-columns/dynamic-slot.vue | 97 ++ .../reverse-columns-composition-api.vue | 58 + .../reverse-columns.spec.js | 16 + .../dynamically-columns/reverse-columns.vue | 68 + .../status-of-editing-composition-api.vue | 23 +- .../app/grid/edit/status-of-editing.spec.js | 6 + .../pc/app/grid/edit/status-of-editing.vue | 23 +- .../pc/app/grid/editor/mutil-render.spec.js | 2 +- .../app/grid/expand/set-row-expansion.spec.js | 6 +- .../faq/custom-column-composition-api.vue | 48 + .../demos/pc/app/grid/faq/custom-column.vue | 57 + ...-service-reload-filter-composition-api.vue | 141 ++ .../request-service-reload-filter.spec.js | 19 + .../filter/request-service-reload-filter.vue | 146 ++ .../many-header-switching-composition-api.vue | 105 ++ .../grid/header/many-header-switching.spec.js | 11 + .../app/grid/header/many-header-switching.vue | 115 ++ .../operation-column/selection-config.spec.js | 17 +- .../row-group-render-composition-api.vue | 84 +- .../row-grouping/row-group-render.spec.js | 6 + .../grid/row-grouping/row-group-render.vue | 74 +- .../row-group-scroll-composition-api.vue | 110 ++ .../row-grouping/row-group-scroll.spec.js | 13 + .../grid/row-grouping/row-group-scroll.vue | 119 ++ .../row-grouping-colspan-composition-api.vue | 137 ++ .../row-grouping/row-grouping-colspan.spec.js | 8 + .../row-grouping/row-grouping-colspan.vue | 146 ++ .../row-grouping-composition-api.vue | 4 +- .../pc/app/grid/row-grouping/row-grouping.vue | 2 +- .../grid/slot/editor-slot-composition-api.vue | 32 +- .../pc/app/grid/slot/editor-slot.spec.js | 18 + .../demos/pc/app/grid/slot/editor-slot.vue | 30 +- .../pc/app/grid/toolbar/copy-row-data.spec.js | 2 +- ...oolbar-op-config-slots-composition-api.vue | 76 + .../toolbar/toolbar-op-config-slots.spec.js | 7 + .../grid/toolbar/toolbar-op-config-slots.vue | 85 ++ .../grid/tree-table/tree-grid-index.spec.js | 2 +- .../demos/pc/app/grid/webdoc/grid-drag.js | 15 +- .../grid/webdoc/grid-dynamically-columns.js | 18 + .../demos/pc/app/grid/webdoc/grid-faq.js | 13 + .../demos/pc/app/grid/webdoc/grid-filter.js | 9 + .../demos/pc/app/grid/webdoc/grid-header.js | 9 + .../pc/app/grid/webdoc/grid-mouse-keyboard.js | 7 +- .../pc/app/grid/webdoc/grid-row-grouping.js | 27 +- .../demos/pc/app/grid/webdoc/grid-toolbar.js | 11 + ...isplay-only-popup-more-composition-api.vue | 18 + .../pc/app/input/display-only-popup-more.vue | 27 + .../sites/demos/pc/app/input/display-only.vue | 13 +- .../pc/app/input/resize-composition-api.vue | 2 +- .../sites/demos/pc/app/input/resize.spec.ts | 36 +- examples/sites/demos/pc/app/input/resize.vue | 29 +- .../demos/pc/app/input/validate-event.spec.ts | 3 +- .../sites/demos/pc/app/input/webdoc/input.js | 41 +- .../pc/app/layout/responsive-layout.spec.ts | 2 + .../pc/app/milestone/show-number.spec.ts | 5 +- .../pc/app/milestone/solid-style.spec.ts | 5 +- .../demos/pc/app/modal/basic-usage.spec.ts | 4 +- .../pop-upload/custom-request-headers.spec.ts | 5 +- .../app/popeditor/events-composition-api.vue | 10 +- .../demos/pc/app/popeditor/events.spec.ts | 4 +- .../sites/demos/pc/app/popeditor/events.vue | 10 +- .../ignore-boundaries-composition-api.vue | 72 + .../pc/app/popover/ignore-boundaries.spec.js | 15 + .../pc/app/popover/ignore-boundaries.vue | 80 ++ .../demos/pc/app/popover/webdoc/popover.js | 18 + .../app/select/all-text-composition-api.vue | 7 + .../sites/demos/pc/app/select/all-text.vue | 7 + .../demos/pc/app/select/collapse-tags.spec.ts | 6 +- .../app/select/init-label-composition-api.vue | 57 + .../sites/demos/pc/app/select/init-label.vue | 65 + .../demos/pc/app/select/searchable.spec.ts | 2 +- .../sites/demos/pc/app/select/size.spec.ts | 2 +- .../demos/pc/app/select/webdoc/select.js | 24 +- .../pc/app/time-line/show-divider.spec.ts | 2 +- .../slot-description-composition-api.vue | 2 +- .../pc/app/time-line/slot-description.vue | 2 +- .../app/time-line/status-composition-api.vue | 2 + .../demos/pc/app/time-line/status.spec.ts | 6 +- .../sites/demos/pc/app/time-line/status.vue | 2 + .../timeline-item-composition-api.vue | 3 +- .../demos/pc/app/time-line/timeline-item.vue | 3 +- .../pc/app/time-line/webdoc/time-line.js | 9 +- .../sites/demos/pc/app/tree/webdoc/tree.js | 6 +- examples/sites/package.json | 4 +- examples/sites/playground/App.vue | 5 +- .../cli/src/commands/build/build-entry-app.ts | 14 +- .../cli/src/commands/build/build-entry.ts | 13 +- internals/cli/src/commands/build/build-ui.ts | 10 +- .../src/commands/create/commonMapping.json | 5 + internals/cli/src/shared/module-utils.ts | 2 +- package.json | 4 +- packages/design/aurora/index.ts | 2 + packages/design/aurora/package.json | 2 +- .../design/aurora/src/collapse-item/index.ts | 7 + packages/design/aurora/src/select/index.ts | 4 +- packages/design/saas/index.ts | 2 + packages/design/saas/package.json | 2 +- .../design/saas/src/collapse-item/index.ts | 7 + packages/design/saas/src/select/index.ts | 6 +- packages/design/smb/index.ts | 2 + packages/design/smb/package.json | 2 +- packages/design/smb/src/guide/index.ts | 5 + packages/fluent-editor/.eslintignore | 4 + packages/fluent-editor/.eslintrc.js | 38 + packages/fluent-editor/.gitignore | 6 + packages/fluent-editor/.prettierignore | 5 + packages/fluent-editor/.prettierrc | 12 + packages/fluent-editor/README.md | 53 + packages/fluent-editor/VersionSet.xml | 1 + packages/fluent-editor/app_define.json | 1 + packages/fluent-editor/index.html | 753 ++++++++++ packages/fluent-editor/jest.config.js | 8 + packages/fluent-editor/origin.html | 710 ++++++++++ packages/fluent-editor/package.json | 60 + .../src/assets/better-table.scss | 367 +++++ packages/fluent-editor/src/assets/common.scss | 279 ++++ .../fluent-editor/src/assets/counter.scss | 20 + .../src/assets/custom-image.scss | 20 + packages/fluent-editor/src/assets/editor.scss | 358 +++++ .../fluent-editor/src/assets/emoji/emoji.scss | 462 ++++++ .../fluent-editor/src/assets/emoji/style.scss | 256 ++++ .../fluent-editor/src/assets/fileBar.scss | 119 ++ packages/fluent-editor/src/assets/font.scss | 60 + .../fluent-editor/src/assets/fullscreen.scss | 12 + .../src/assets/iconfont/iconfont.ttf | Bin 0 -> 2040 bytes .../src/assets/iconfont/iconfont.woff | Bin 0 -> 1380 bytes .../src/assets/iconfont/iconfont.woff2 | Bin 0 -> 964 bytes packages/fluent-editor/src/assets/image1.png | Bin 0 -> 27307 bytes .../fluent-editor/src/assets/lineHeight.scss | 18 + packages/fluent-editor/src/assets/link.scss | 131 ++ .../fluent-editor/src/assets/mention.scss | 48 + packages/fluent-editor/src/assets/size.scss | 15 + packages/fluent-editor/src/config.ts | 120 ++ .../fluent-editor/src/config/base64-image.ts | 9 + .../fluent-editor/src/config/editor.config.ts | 87 ++ .../fluent-editor/src/config/editor.utils.ts | 195 +++ .../fluent-editor/src/config/i18n/en-us.ts | 106 ++ .../fluent-editor/src/config/i18n/zh-cn.ts | 104 ++ .../fluent-editor/src/config/icons.config.ts | 295 ++++ .../additional-toolbar-item.interface.ts | 6 + .../config/types/content-change.interface.ts | 13 + .../config/types/content-save.interface.ts | 6 + .../config/types/counter-option.interface.ts | 7 + .../config/types/editor-config.interface.ts | 24 + .../config/types/editor-modules.interface.ts | 35 + .../config/types/file-operation.interface.ts | 10 + .../config/types/focus-change.interface.ts | 4 + .../types/fullscreen-module.interface.ts | 4 + .../config/types/help-panel-item.interface.ts | 5 + .../types/help-panel-option.interface.ts | 7 + .../config/types/image-module.interface.ts | 3 + .../config/types/image-upload.interface.ts | 5 + .../fluent-editor/src/config/types/index.ts | 22 + .../types/load-on-demand-module.interface.ts | 5 + .../config/types/mention-module.interface.ts | 8 + .../config/types/paste-change.interface.ts | 4 + .../types/quick-menu-module.interface.ts | 3 + .../src/config/types/range.interface.ts | 4 + .../types/registry-options.interface.ts | 5 + .../types/selection-change.interface.ts | 8 + .../config/types/toolbar-item.interface.ts | 12 + .../fluent-editor/src/config/types/type.ts | 4 + .../config/types/validate-error.interface.ts | 11 + packages/fluent-editor/src/counter/index.ts | 68 + .../fluent-editor/src/custom-clipboard.ts | 615 ++++++++ .../src/custom-image/BlotFormatter.ts | 166 +++ .../fluent-editor/src/custom-image/Options.ts | 150 ++ .../src/custom-image/actions/Action.ts | 13 + .../actions/CustomResizeAction.ts | 200 +++ .../src/custom-image/actions/DeleteAction.ts | 29 + .../fluent-editor/src/custom-image/image.ts | 116 ++ .../src/custom-image/specs/BlotSpec.ts | 30 + .../src/custom-image/specs/CustomImageSpec.ts | 139 ++ .../src/custom-image/specs/ImageSpec.ts | 33 + packages/fluent-editor/src/custom-uploader.ts | 82 ++ packages/fluent-editor/src/declare.d.ts | 1 + .../fluent-editor/src/emoji/emoji-list.ts | 9 + .../src/emoji/emoji-list/index.ts | 1 + .../src/emoji/emoji-list/people.ts | 110 ++ packages/fluent-editor/src/emoji/emoji-map.ts | 9 + .../src/emoji/formats/emoji-blot.ts | 52 + packages/fluent-editor/src/emoji/index.ts | 5 + .../fluent-editor/src/emoji/modules/emoji.ts | 296 ++++ .../src/emoji/modules/toolbar-emoji.ts | 178 +++ packages/fluent-editor/src/emoji/utils.ts | 15 + .../fluent-editor/src/file/formats/file.ts | 66 + packages/fluent-editor/src/file/index.ts | 37 + .../src/file/modules/file-bar.ts | 146 ++ packages/fluent-editor/src/fluent-editor.ts | 67 + .../src/global-link/constants.ts | 3 + .../formats/customer-widget-link.ts | 37 + .../src/global-link/formats/doc-link.ts | 55 + .../src/global-link/formats/wiki-link.ts | 45 + .../src/global-link/formats/work-item-link.ts | 46 + .../src/global-link/global-link-panel.ts | 20 + .../fluent-editor/src/global-link/index.ts | 160 +++ .../src/global-link/utils/createTable.ts | 54 + packages/fluent-editor/src/index.ts | 6 + packages/fluent-editor/src/lineheight.ts | 11 + .../fluent-editor/src/link/formats/link.ts | 42 + packages/fluent-editor/src/link/index.ts | 33 + .../fluent-editor/src/link/modules/tooltip.ts | 307 ++++ packages/fluent-editor/src/mention/Mention.ts | 399 ++++++ .../fluent-editor/src/mention/MentionLink.ts | 49 + .../fluent-editor/src/mention/constants.ts | 3 + .../fluent-editor/src/quick-menu/index.ts | 100 ++ .../fluent-editor/src/screenshot/index.ts | 162 +++ .../fluent-editor/src/soft-break/index.ts | 34 + packages/fluent-editor/src/strike/index.ts | 15 + packages/fluent-editor/src/styles.scss | 36 + packages/fluent-editor/src/syntax/index.ts | 35 + .../fluent-editor/src/table/better-table.ts | 531 +++++++ .../fluent-editor/src/table/formats/header.ts | 121 ++ .../fluent-editor/src/table/formats/list.ts | 219 +++ .../fluent-editor/src/table/formats/table.ts | 1233 +++++++++++++++++ .../src/table/modules/table-column-tool.ts | 480 +++++++ .../src/table/modules/table-operation-menu.ts | 586 ++++++++ .../src/table/modules/table-scroll-bar.ts | 236 ++++ .../src/table/modules/table-selection.ts | 383 +++++ .../fluent-editor/src/table/table-config.ts | 42 + .../fluent-editor/src/table/utils/index.ts | 63 + .../src/table/utils/node-matchers.ts | 350 +++++ .../src/toolbar/better-picker.ts | 360 +++++ packages/fluent-editor/src/toolbar/index.ts | 170 +++ packages/fluent-editor/src/types/vue.d.ts | 5 + packages/fluent-editor/src/utils/debounce.ts | 148 ++ packages/fluent-editor/src/utils/method.ts | 81 ++ packages/fluent-editor/src/video/index.ts | 71 + packages/fluent-editor/test/setup.ts | 1 + .../test/unit/components/Button.spec.ts | 9 + .../__snapshots__/Button.spec.ts.snap | 3 + packages/fluent-editor/tsconfig.json | 26 + packages/fluent-editor/verifyCommit.js | 24 + packages/fluent-editor/vite.config.ts | 17 + packages/modules.json | 35 + packages/renderless/package.json | 4 +- packages/renderless/src/action-sheet/index.ts | 1 - packages/renderless/src/card/index.ts | 17 + packages/renderless/src/card/vue.ts | 9 +- .../renderless/src/carousel-item/index.ts | 49 +- packages/renderless/src/carousel-item/vue.ts | 24 +- packages/renderless/src/carousel/index.ts | 132 +- packages/renderless/src/carousel/vue.ts | 70 +- .../renderless/src/cascader-panel/index.ts | 10 +- packages/renderless/src/cascader-panel/vue.ts | 2 +- .../src/cascader-select/column-index.ts | 18 +- .../renderless/src/cascader-select/column.ts | 13 +- .../src/cascader-select/usePicker.ts | 5 +- packages/renderless/src/cascader/vue.ts | 3 +- packages/renderless/src/checkbox/index.ts | 23 - packages/renderless/src/checkbox/vue.ts | 14 +- packages/renderless/src/collapse-item/vue.ts | 5 +- .../src/common/deps/clickoutside.ts | 31 +- .../renderless/src/common/deps/letter-only.ts | 38 - .../renderless/src/common/deps/number-only.ts | 40 - packages/renderless/src/common/deps/popper.ts | 23 +- .../renderless/src/common/deps/throttle.ts | 9 + .../src/common/deps/touch-emulator.ts | 2 +- .../src/common/deps/tree-model/node.ts | 2 + .../src/common/deps/tree-model/tree-store.ts | 5 +- .../src/common/deps/useEventListener.ts | 12 +- .../src/common/deps/useInstanceSlots.ts | 29 + .../renderless/src/common/deps/useRelation.ts | 110 ++ .../renderless/src/common/deps/vue-popper.ts | 2 + packages/renderless/src/common/function.ts | 27 + packages/renderless/src/common/type.ts | 2 + packages/renderless/src/dialog-box/index.ts | 27 - packages/renderless/src/dialog-box/vue.ts | 5 +- packages/renderless/src/drawer/index.ts | 75 +- packages/renderless/src/drawer/vue.ts | 36 +- packages/renderless/src/file-upload/index.ts | 2 +- .../renderless/src/fluent-editor/index.ts | 913 ++++++++++++ .../renderless/src/fluent-editor/options.ts | 245 ++++ packages/renderless/src/fluent-editor/vue.ts | 209 +++ packages/renderless/src/form/index.ts | 7 +- packages/renderless/src/grid/utils/column.ts | 6 +- packages/renderless/src/grid/utils/common.ts | 51 +- packages/renderless/src/grid/utils/event.ts | 24 +- packages/renderless/src/guide/index.ts | 10 +- packages/renderless/src/guide/vue.ts | 4 +- packages/renderless/src/input/index.ts | 39 +- packages/renderless/src/input/vue.ts | 26 +- packages/renderless/src/numeric/index.ts | 9 +- packages/renderless/src/option/vue.ts | 15 +- packages/renderless/src/picker/mb.ts | 7 +- packages/renderless/src/picker/vue.ts | 3 +- packages/renderless/src/select/index.ts | 118 +- packages/renderless/src/select/vue.ts | 2 +- packages/renderless/src/split/index.ts | 33 +- packages/renderless/src/split/vue.ts | 9 +- packages/renderless/src/tabs-mf/index.ts | 162 ++- packages/renderless/src/tabs-mf/vue-bar.ts | 7 + .../renderless/src/tabs-mf/vue-nav-item.ts | 2 +- packages/renderless/src/tabs-mf/vue.ts | 54 +- packages/renderless/src/tag-group/vue.ts | 10 +- packages/renderless/src/time-line/index.ts | 5 +- packages/renderless/src/time-line/vue.ts | 21 +- packages/renderless/src/time/index.ts | 3 +- .../renderless/src/timeline-item/index.ts | 10 +- packages/renderless/src/timeline-item/vue.ts | 22 +- packages/renderless/src/tree-node/vue.ts | 3 +- packages/renderless/src/tree/index.ts | 39 +- packages/renderless/src/tree/vue.ts | 7 +- packages/renderless/src/user/index.ts | 11 +- packages/renderless/src/year-table/index.ts | 9 +- packages/renderless/src/year-table/vue.ts | 2 +- packages/renderless/types/dialog-box.type.ts | 2 - packages/renderless/types/drawer.type.ts | 29 +- .../renderless/types/timeline-item.type.ts | 3 +- packages/theme-mobile/package.json | 2 +- .../theme-mobile/src/action-sheet/index.less | 7 +- packages/theme-saas/package.json | 4 +- packages/theme-saas/src/button/index.less | 2 +- packages/theme-saas/src/chart-core/index.less | 7 +- packages/theme-saas/src/checkbox/index.less | 2 - .../theme-saas/src/collapse-item/index.less | 20 +- packages/theme-saas/src/dialog-box/index.less | 32 +- packages/theme-saas/src/drawer/index.less | 236 +++- .../theme-saas/src/fluent-editor/index.less | 2 - packages/theme-saas/src/form/index.less | 16 +- .../theme-saas/src/grid-toolbar/index.less | 123 +- packages/theme-saas/src/grid/filter.less | 3 +- packages/theme-saas/src/grid/header.less | 27 +- packages/theme-saas/src/grid/table.less | 58 +- packages/theme-saas/src/grid/toolbar.less | 5 + .../theme-saas/src/images/credit-amex.png | Bin 8796 -> 0 bytes .../src/images/credit-background.jpeg | Bin 19323 -> 0 bytes .../theme-saas/src/images/credit-chip.png | Bin 16470 -> 0 bytes .../src/images/credit-dinersclub.png | Bin 9580 -> 0 bytes .../theme-saas/src/images/credit-discover.png | Bin 44419 -> 0 bytes packages/theme-saas/src/images/credit-jcb.png | Bin 12011 -> 0 bytes .../src/images/credit-mastercard.png | Bin 10182 -> 0 bytes .../theme-saas/src/images/credit-troy.png | Bin 4880 -> 0 bytes .../theme-saas/src/images/credit-unionpay.png | Bin 17166 -> 0 bytes .../theme-saas/src/images/credit-visa.png | Bin 5927 -> 0 bytes .../theme-saas/src/images/grid-nodata.svg | 153 +- packages/theme-saas/src/input/index.less | 45 +- packages/theme-saas/src/mixins/button.less | 18 +- packages/theme-saas/src/steps/index.less | 578 +++++++- packages/theme-saas/src/textarea/index.less | 20 + packages/theme-saas/src/tree/index.less | 11 +- packages/theme-saas/src/user/index.less | 2 +- packages/theme/package.json | 4 +- packages/theme/src/alert/index.less | 1 + packages/theme/src/alert/smb-theme.js | 3 +- packages/theme/src/alert/vars.less | 2 + packages/theme/src/card/index.less | 50 +- packages/theme/src/card/smb-theme.js | 29 +- packages/theme/src/card/vars.less | 2 + packages/theme/src/chart-core/index.less | 2 +- packages/theme/src/checkbox/index.less | 1 + .../theme/src/collapse-item/aurora-theme.js | 4 +- packages/theme/src/collapse-item/smb-theme.js | 2 + packages/theme/src/dialog-box/index.less | 35 +- packages/theme/src/divider/smb-theme.js | 6 +- packages/theme/src/fluent-editor/index.less | 284 ++++ packages/theme/src/grid-toolbar/index.less | 123 +- packages/theme/src/grid/smb-theme.js | 3 +- packages/theme/src/grid/table.less | 55 +- packages/theme/src/grid/toolbar.less | 5 + packages/theme/src/grid/vars.less | 2 + packages/theme/src/guide/index.less | 15 +- packages/theme/src/guide/smb-theme.js | 27 + packages/theme/src/guide/vars.less | 14 + packages/theme/src/images/chevron-down.svg | 15 + packages/theme/src/images/credit-amex.png | Bin 8796 -> 0 bytes .../theme/src/images/credit-background.jpeg | Bin 19323 -> 0 bytes packages/theme/src/images/credit-chip.png | Bin 16470 -> 0 bytes .../theme/src/images/credit-dinersclub.png | Bin 9580 -> 0 bytes packages/theme/src/images/credit-discover.png | Bin 44419 -> 0 bytes packages/theme/src/images/credit-jcb.png | Bin 12011 -> 0 bytes .../theme/src/images/credit-mastercard.png | Bin 10182 -> 0 bytes packages/theme/src/images/credit-troy.png | Bin 4880 -> 0 bytes packages/theme/src/images/credit-unionpay.png | Bin 17166 -> 0 bytes packages/theme/src/images/credit-visa.png | Bin 5927 -> 0 bytes packages/theme/src/images/del.svg | 20 + packages/theme/src/images/share-arrow.svg | 8 + packages/theme/src/modal/index.less | 2 +- packages/theme/src/modal/smb-theme.js | 7 +- packages/theme/src/modal/vars.less | 2 + packages/theme/src/option/aurora-theme.js | 2 + packages/theme/src/option/index.less | 16 +- packages/theme/src/option/smb-theme.js | 10 +- .../theme/src/select-dropdown/aurora-theme.js | 2 +- packages/theme/src/steps/aurora-theme.js | 3 +- packages/theme/src/steps/index.less | 5 +- packages/theme/src/steps/vars.less | 2 +- packages/theme/src/tag/smb-theme.js | 1 + packages/theme/src/textarea/index.less | 36 +- .../theme/infinity-theme/component-vars.js | 4 +- packages/theme/src/time-spinner/index.less | 2 +- packages/theme/src/user/index.less | 2 +- packages/vue-common/package.json | 2 +- packages/vue-common/src/adapter/vue2/index.ts | 5 +- packages/vue-common/src/adapter/vue3/index.ts | 2 +- packages/vue-common/src/index.ts | 6 + .../src/button => vue-directive}/index.ts | 6 +- packages/vue-directive/package.json | 20 + packages/vue-directive/src/auto-tip.ts | 130 ++ packages/vue-icon-saas/package.json | 2 +- packages/vue-icon/package.json | 2 +- packages/vue-locale/package.json | 2 +- packages/vue-locale/src/lang/en.ts | 8 +- packages/vue-locale/src/lang/zh-CN.ts | 8 +- packages/vue-runtime/package.json | 4 +- packages/vue-saas-common/package.json | 2 +- packages/vue/package.json | 2 +- packages/vue/src/action-menu/package.json | 4 +- packages/vue/src/action-sheet/package.json | 2 +- packages/vue/src/alert/package.json | 2 +- packages/vue/src/amount/package.json | 2 +- packages/vue/src/anchor/package.json | 2 +- packages/vue/src/area/package.json | 2 +- packages/vue/src/async-flowchart/package.json | 2 +- packages/vue/src/autocomplete/package.json | 2 +- packages/vue/src/avatar/package.json | 2 +- packages/vue/src/badge/package.json | 2 +- packages/vue/src/base-select/package.json | 2 +- packages/vue/src/breadcrumb-item/package.json | 2 +- packages/vue/src/breadcrumb/package.json | 2 +- packages/vue/src/bulletin-board/package.json | 2 +- packages/vue/src/button-group/package.json | 3 +- packages/vue/src/button-group/src/pc.vue | 3 + packages/vue/src/button/package.json | 2 +- packages/vue/src/calendar-bar/package.json | 2 +- packages/vue/src/calendar-view/package.json | 2 +- packages/vue/src/calendar/package.json | 2 +- packages/vue/src/card-group/package.json | 2 +- packages/vue/src/card-template/package.json | 2 +- packages/vue/src/card/package.json | 2 +- packages/vue/src/card/src/index.ts | 4 + packages/vue/src/card/src/pc.vue | 21 +- packages/vue/src/carousel-item/package.json | 2 +- packages/vue/src/carousel/package.json | 2 +- packages/vue/src/carousel/src/index.ts | 5 +- .../vue/src/carousel/src/mobile-first.vue | 11 +- packages/vue/src/carousel/src/pc.vue | 11 +- packages/vue/src/cascader-menu/package.json | 2 +- packages/vue/src/cascader-mobile/package.json | 2 +- packages/vue/src/cascader-node/package.json | 2 +- packages/vue/src/cascader-panel/package.json | 2 +- packages/vue/src/cascader-panel/src/pc.vue | 2 +- packages/vue/src/cascader-select/package.json | 2 +- .../vue/src/cascader-select/src/Column.vue | 3 + packages/vue/src/cascader-select/src/index.ts | 4 + .../src/cascader-select/src/mobile-first.vue | 5 +- packages/vue/src/cascader-view/package.json | 2 +- packages/vue/src/cascader-view/src/option.vue | 2 +- packages/vue/src/cascader/package.json | 2 +- packages/vue/src/cascader/src/pc.vue | 1 + packages/vue/src/cell/package.json | 2 +- .../vue/src/chart/autonavi-map/package.json | 2 +- packages/vue/src/chart/baidu-map/package.json | 2 +- packages/vue/src/chart/chart-bar/package.json | 2 +- .../vue/src/chart/chart-boxplot/package.json | 2 +- .../vue/src/chart/chart-candle/package.json | 2 +- .../vue/src/chart/chart-core/package.json | 2 +- .../src/chart/chart-core/src/chart-core.ts | 8 +- .../vue/src/chart/chart-funnel/package.json | 2 +- .../vue/src/chart/chart-gauge/package.json | 2 +- .../vue/src/chart/chart-graph/package.json | 2 +- .../vue/src/chart/chart-heatmap/package.json | 2 +- .../src/chart/chart-histogram/package.json | 2 +- .../vue/src/chart/chart-line/package.json | 2 +- .../src/chart/chart-liquidfill/package.json | 2 +- packages/vue/src/chart/chart-map/package.json | 2 +- packages/vue/src/chart/chart-pie/package.json | 2 +- .../vue/src/chart/chart-process/package.json | 2 +- .../vue/src/chart/chart-radar/package.json | 2 +- .../vue/src/chart/chart-ring/package.json | 2 +- .../vue/src/chart/chart-sankey/package.json | 2 +- .../vue/src/chart/chart-scatter/package.json | 2 +- .../vue/src/chart/chart-sunburst/package.json | 2 +- .../vue/src/chart/chart-tree/package.json | 2 +- .../src/chart/chart-waterfall/package.json | 2 +- .../src/chart/chart-wordcloud/package.json | 2 +- packages/vue/src/chart/package.json | 2 +- packages/vue/src/checkbox-button/package.json | 2 +- packages/vue/src/checkbox-group/package.json | 2 +- packages/vue/src/checkbox/package.json | 4 +- packages/vue/src/checkbox/src/pc.vue | 19 +- packages/vue/src/col/package.json | 2 +- packages/vue/src/collapse-item/package.json | 2 +- packages/vue/src/collapse-item/src/index.ts | 3 + packages/vue/src/collapse-item/src/pc.vue | 13 +- .../vue/src/collapse-transition/package.json | 2 +- packages/vue/src/collapse/package.json | 2 +- packages/vue/src/color-picker/package.json | 2 +- .../vue/src/color-select-panel/package.json | 2 +- .../vue/src/column-list-group/package.json | 2 +- .../vue/src/column-list-item/package.json | 2 +- packages/vue/src/company/package.json | 2 +- packages/vue/src/config-provider/package.json | 2 +- packages/vue/src/container/package.json | 2 +- packages/vue/src/country/package.json | 2 +- packages/vue/src/crop/package.json | 2 +- packages/vue/src/currency/package.json | 2 +- packages/vue/src/currency/src/pc.vue | 22 +- packages/vue/src/date-panel/package.json | 2 +- .../vue/src/date-panel/src/mobile-first.vue | 54 +- packages/vue/src/date-panel/src/pc.vue | 1 - packages/vue/src/date-panel/src/token.ts | 5 +- .../src/date-picker-mobile-first/package.json | 2 +- packages/vue/src/date-picker/index.ts | 2 +- packages/vue/src/date-picker/package.json | 2 +- packages/vue/src/date-picker/src/index.ts | 19 + packages/vue/src/date-range/package.json | 2 +- packages/vue/src/date-table/package.json | 2 +- packages/vue/src/dept/package.json | 2 +- packages/vue/src/dialog-box/package.json | 2 +- packages/vue/src/dialog-box/src/index.ts | 2 +- .../vue/src/dialog-box/src/mobile-first.vue | 9 +- packages/vue/src/dialog-box/src/pc.vue | 6 +- packages/vue/src/dialog-select/package.json | 2 +- packages/vue/src/divider/package.json | 2 +- packages/vue/src/drawer/index.ts | 15 +- packages/vue/src/drawer/package.json | 2 +- packages/vue/src/drawer/src/index.ts | 10 +- packages/vue/src/drawer/src/mobile-first.vue | 9 +- packages/vue/src/drawer/src/pc.vue | 67 +- packages/vue/src/drawer/src/service.ts | 76 + packages/vue/src/drop-roles/package.json | 2 +- packages/vue/src/drop-times/package.json | 2 +- packages/vue/src/dropdown-item/package.json | 2 +- packages/vue/src/dropdown-menu/package.json | 2 +- packages/vue/src/dropdown/package.json | 2 +- .../vue/src/dropdown/src/mobile-first.vue | 10 +- .../src/dynamic-scroller-item/package.json | 2 +- .../vue/src/dynamic-scroller/package.json | 2 +- packages/vue/src/espace/package.json | 2 +- packages/vue/src/exception/package.json | 2 +- packages/vue/src/fall-menu/package.json | 2 +- packages/vue/src/file-upload/package.json | 2 +- packages/vue/src/file-upload/src/pc.vue | 2 +- packages/vue/src/filter-bar/package.json | 2 +- packages/vue/src/filter-box/package.json | 2 +- packages/vue/src/filter-panel/package.json | 2 +- packages/vue/src/filter/package.json | 2 +- packages/vue/src/float-button/package.json | 2 +- packages/vue/src/floatbar/package.json | 2 +- packages/vue/src/floating-button/package.json | 2 +- packages/vue/src/flowchart/package.json | 2 +- packages/vue/src/fluent-editor/index.ts | 23 + packages/vue/src/fluent-editor/package.json | 25 + packages/vue/src/fluent-editor/src/pc.vue | 158 +++ packages/vue/src/form-item/package.json | 2 +- .../vue/src/form-item/src/mobile-first.vue | 11 +- packages/vue/src/form-item/src/pc.vue | 6 +- packages/vue/src/form/package.json | 2 +- packages/vue/src/form/src/index.ts | 4 + packages/vue/src/form/src/mobile-first.vue | 9 +- packages/vue/src/form/src/pc.vue | 8 +- packages/vue/src/fullscreen/package.json | 2 +- packages/vue/src/fullscreen/src/pc.vue | 3 +- packages/vue/src/grid-column/package.json | 2 +- packages/vue/src/grid-manager/package.json | 2 +- packages/vue/src/grid-toolbar/package.json | 5 +- .../vue/src/grid-toolbar/src/custom-saas.vue | 480 +++++-- .../src/grid-toolbar/src/custom-switch.vue | 1 + packages/vue/src/grid-toolbar/src/index.ts | 29 +- .../src/grid-toolbar/src/multiple-history.ts | 3 + packages/vue/src/grid/index.ts | 3 +- packages/vue/src/grid/package.json | 2 +- packages/vue/src/grid/src/body/src/body.tsx | 123 +- .../vue/src/grid/src/button/src/button.ts | 195 --- packages/vue/src/grid/src/cell/src/cell.ts | 36 +- .../grid/src/checkbox/src/handleSelectRow.ts | 16 +- .../vue/src/grid/src/checkbox/src/methods.ts | 2 +- .../grid/src/checkbox/src/setAllSelection.ts | 81 +- .../vue/src/grid/src/column/src/column.ts | 61 +- packages/vue/src/grid/src/composable/index.ts | 2 + .../src/grid/src/composable/useDrag/dnd.ts | 266 ++++ .../src/grid/src/composable/useDrag/index.ts | 209 +++ .../src/grid/src/composable/useRowGroup.ts | 61 + packages/vue/src/grid/src/config.ts | 5 +- .../vue/src/grid/src/dragger/src/methods.ts | 136 +- .../src/grid/src/fetch-data/src/methods.ts | 15 +- packages/vue/src/grid/src/grid/grid.ts | 4 +- .../vue/src/grid/src/header/src/header.ts | 17 +- .../vue/src/grid/src/keyboard/src/methods.ts | 86 +- packages/vue/src/grid/src/menu/src/panel.ts | 3 +- .../grid/src/mobile-first/column-content.vue | 3 +- .../src/grid/src/mobile-first/column-link.vue | 92 +- .../vue/src/grid/src/table/src/methods.ts | 87 +- .../vue/src/grid/src/table/src/strategy.ts | 136 +- packages/vue/src/grid/src/table/src/table.ts | 174 ++- .../src/table/src/utils/computeScrollLoad.ts | 25 +- .../vue/src/grid/src/toolbar/src/methods.ts | 3 +- packages/vue/src/grid/src/tools/index.ts | 2 + packages/vue/src/grid/src/tools/logger.ts | 6 +- .../vue/src/grid/src/tooltip/src/methods.ts | 4 +- packages/vue/src/guide/package.json | 2 +- packages/vue/src/hrapprover/package.json | 2 +- packages/vue/src/image-viewer/package.json | 2 +- .../vue/src/image-viewer/src/mobile-first.vue | 62 +- packages/vue/src/image/package.json | 2 +- .../vue/src/index-bar-anchor/package.json | 2 +- packages/vue/src/index-bar/package.json | 2 +- packages/vue/src/input/package.json | 4 +- packages/vue/src/input/src/index.ts | 4 + packages/vue/src/input/src/mobile-first.vue | 73 +- packages/vue/src/input/src/pc.vue | 32 +- packages/vue/src/ip-address/package.json | 2 +- packages/vue/src/label/package.json | 2 +- packages/vue/src/layout/package.json | 2 +- packages/vue/src/link-menu/package.json | 2 +- packages/vue/src/link/package.json | 2 +- packages/vue/src/list/package.json | 2 +- packages/vue/src/loading/package.json | 2 +- packages/vue/src/locales/package.json | 2 +- packages/vue/src/logon-user/package.json | 2 +- packages/vue/src/logout/package.json | 2 +- packages/vue/src/mask/package.json | 2 +- packages/vue/src/menu/package.json | 2 +- packages/vue/src/message/package.json | 2 +- packages/vue/src/milestone/package.json | 2 +- packages/vue/src/mind-map/package.json | 2 +- packages/vue/src/mini-picker/package.json | 2 +- packages/vue/src/modal/package.json | 2 +- packages/vue/src/modal/src/index.ts | 2 +- packages/vue/src/modal/src/mobile-first.vue | 4 +- packages/vue/src/modal/src/pc.vue | 76 +- packages/vue/src/month-range/package.json | 2 +- packages/vue/src/month-table/package.json | 2 +- .../vue/src/multi-select-item/package.json | 2 +- packages/vue/src/multi-select/package.json | 2 +- packages/vue/src/nav-bar/package.json | 2 +- packages/vue/src/nav-menu/package.json | 2 +- packages/vue/src/notify/package.json | 2 +- packages/vue/src/numeric/package.json | 2 +- packages/vue/src/numeric/src/mobile-first.vue | 1 + packages/vue/src/numeric/src/pc.vue | 1 + packages/vue/src/option-group/package.json | 2 +- .../vue/src/option-group/src/mobile-first.vue | 2 +- packages/vue/src/option/package.json | 3 +- packages/vue/src/option/src/pc.vue | 14 +- packages/vue/src/pager-item/package.json | 2 +- packages/vue/src/pager/package.json | 2 +- packages/vue/src/panel/package.json | 2 +- packages/vue/src/picker-column/package.json | 2 +- packages/vue/src/picker/package.json | 2 +- packages/vue/src/picker/src/mobile-first.vue | 8 +- packages/vue/src/picker/src/pc.vue | 6 +- packages/vue/src/pop-upload/package.json | 2 +- packages/vue/src/popconfirm/package.json | 2 +- packages/vue/src/popeditor/package.json | 2 +- packages/vue/src/popeditor/src/pc.vue | 2 +- packages/vue/src/popover/package.json | 2 +- packages/vue/src/popup/package.json | 2 +- packages/vue/src/progress/package.json | 2 +- packages/vue/src/pull-refresh/package.json | 2 +- packages/vue/src/qr-code/package.json | 2 +- packages/vue/src/quarter-panel/package.json | 2 +- packages/vue/src/query-builder/package.json | 2 +- packages/vue/src/radio-button/package.json | 2 +- packages/vue/src/radio-group/package.json | 2 +- packages/vue/src/radio/package.json | 2 +- packages/vue/src/rate/package.json | 2 +- packages/vue/src/record/package.json | 2 +- .../vue/src/recycle-scroller/package.json | 2 +- .../vue/src/rich-text-editor/package.json | 2 +- packages/vue/src/rich-text/package.json | 2 +- packages/vue/src/river/package.json | 2 +- packages/vue/src/roles/package.json | 2 +- packages/vue/src/row/package.json | 2 +- packages/vue/src/scroll-text/package.json | 2 +- packages/vue/src/scrollbar/package.json | 2 +- packages/vue/src/search/package.json | 2 +- packages/vue/src/select-dropdown/package.json | 2 +- .../src/select-dropdown/src/mobile-first.vue | 2 +- packages/vue/src/select-mobile/package.json | 2 +- packages/vue/src/select-view/package.json | 2 +- packages/vue/src/select/package.json | 3 +- packages/vue/src/select/src/index.ts | 10 + packages/vue/src/select/src/mobile-first.vue | 23 +- packages/vue/src/select/src/pc.vue | 52 +- packages/vue/src/selected-box/package.json | 2 +- packages/vue/src/signature/package.json | 2 +- packages/vue/src/skeleton-item/package.json | 2 +- packages/vue/src/skeleton/package.json | 2 +- .../vue/src/slider-button-group/package.json | 2 +- packages/vue/src/slider-button/package.json | 2 +- packages/vue/src/slider/package.json | 2 +- packages/vue/src/split/package.json | 2 +- packages/vue/src/split/src/index.ts | 8 + packages/vue/src/split/src/pc.vue | 4 +- .../vue/src/standard-list-item/package.json | 2 +- packages/vue/src/statistic/package.json | 2 +- packages/vue/src/steps/package.json | 2 +- packages/vue/src/svg-icon/package.json | 2 +- packages/vue/src/switch/package.json | 2 +- packages/vue/src/tab-item/package.json | 2 +- packages/vue/src/tabbar-item/package.json | 2 +- packages/vue/src/tabbar/package.json | 2 +- packages/vue/src/table/package.json | 2 +- packages/vue/src/tabs/package.json | 6 +- packages/vue/src/tabs/src/index.ts | 2 +- packages/vue/src/tabs/src/mobile-first.vue | 67 +- .../src/tabs/src/mobile-first/tab-panel.vue | 8 +- .../src/tabs/src/mobile-first/tab-swipe.vue | 68 + packages/vue/src/tag-group/package.json | 2 +- packages/vue/src/tag/package.json | 2 +- packages/vue/src/text-popup/package.json | 2 +- packages/vue/src/time-line/package.json | 2 +- packages/vue/src/time-line/src/index.ts | 5 +- packages/vue/src/time-line/src/pc.vue | 2 +- packages/vue/src/time-panel/package.json | 2 +- .../vue/src/time-picker-mobile/package.json | 2 +- .../time-picker-mobile/src/mobile-first.vue | 2 + packages/vue/src/time-picker/package.json | 2 +- packages/vue/src/time-range/package.json | 2 +- packages/vue/src/time-select/package.json | 2 +- packages/vue/src/time-spinner/package.json | 2 +- packages/vue/src/time/package.json | 2 +- packages/vue/src/timeline-item/package.json | 2 +- packages/vue/src/timeline-item/src/pc.vue | 33 +- packages/vue/src/toast/package.json | 2 +- packages/vue/src/toggle-menu/package.json | 2 +- packages/vue/src/tooltip/package.json | 2 +- packages/vue/src/tooltip/src/mobile-first.vue | 113 +- packages/vue/src/tooltip/src/pc.vue | 102 +- packages/vue/src/top-box/package.json | 2 +- packages/vue/src/transfer-panel/package.json | 2 +- packages/vue/src/transfer/package.json | 2 +- packages/vue/src/tree-menu/package.json | 2 +- packages/vue/src/tree/package.json | 2 +- packages/vue/src/tree/src/index.ts | 5 + packages/vue/src/tree/src/pc.vue | 3 +- packages/vue/src/tree/src/tree-node.vue | 2 +- packages/vue/src/upload-dragger/package.json | 2 +- packages/vue/src/upload-list/package.json | 2 +- packages/vue/src/upload/package.json | 2 +- packages/vue/src/user-account/package.json | 2 +- packages/vue/src/user-contact/package.json | 2 +- packages/vue/src/user-head-group/package.json | 2 +- packages/vue/src/user-head/package.json | 2 +- packages/vue/src/user-link/package.json | 2 +- packages/vue/src/user/package.json | 2 +- packages/vue/src/watermark/package.json | 2 +- packages/vue/src/wheel/package.json | 2 +- packages/vue/src/wizard/package.json | 2 +- packages/vue/src/year-range/index.ts | 2 +- packages/vue/src/year-range/package.json | 2 +- packages/vue/src/year-range/src/index.ts | 13 + .../vue/src/year-range/src/mobile-first.vue | 115 ++ packages/vue/src/year-range/src/pc.vue | 10 +- packages/vue/src/year-table/index.ts | 3 +- packages/vue/src/year-table/package.json | 2 +- packages/vue/src/year-table/src/index.ts | 29 + .../vue/src/year-table/src/mobile-first.vue | 75 + packages/vue/src/year-table/src/pc.vue | 41 +- 848 files changed, 27230 insertions(+), 3009 deletions(-) create mode 100644 examples/sites/demos/mobile-first/app/date-picker/about-clear.vue create mode 100644 examples/sites/demos/mobile-first/app/date-picker/basic-usage.vue create mode 100644 examples/sites/demos/mobile-first/app/date-picker/date-range.vue create mode 100644 examples/sites/demos/mobile-first/app/date-picker/datetime-range.vue create mode 100644 examples/sites/demos/mobile-first/app/date-picker/datetime.vue create mode 100644 examples/sites/demos/mobile-first/app/date-picker/disabled.vue create mode 100644 examples/sites/demos/mobile-first/app/date-picker/placeholder.vue create mode 100644 examples/sites/demos/mobile-first/app/date-picker/step.vue create mode 100644 examples/sites/demos/mobile-first/app/date-picker/webdoc/date-picker.cn.md create mode 100644 examples/sites/demos/mobile-first/app/date-picker/webdoc/date-picker.en.md create mode 100644 examples/sites/demos/mobile-first/app/date-picker/webdoc/date-picker.js create mode 100644 examples/sites/demos/mobile-first/app/date-picker/year.vue create mode 100644 examples/sites/demos/pc/app/card/card-select-composition-api.vue create mode 100644 examples/sites/demos/pc/app/card/card-select.vue create mode 100644 examples/sites/demos/pc/app/card/check-mode-composition-api.vue create mode 100644 examples/sites/demos/pc/app/card/check-mode.vue create mode 100644 examples/sites/demos/pc/app/carousel/swipeable-composition-api.vue create mode 100644 examples/sites/demos/pc/app/carousel/swipeable.vue create mode 100644 examples/sites/demos/pc/app/currency/set-default-composition-api..vue create mode 100644 examples/sites/demos/pc/app/currency/set-default-custom-service-composition-api..vue create mode 100644 examples/sites/demos/pc/app/currency/set-default-custom-service.vue create mode 100644 examples/sites/demos/pc/app/currency/set-default.vue delete mode 100644 examples/sites/demos/pc/app/drawer/close-event-composition-api.vue delete mode 100644 examples/sites/demos/pc/app/drawer/close-event.spec.ts delete mode 100644 examples/sites/demos/pc/app/drawer/close-event.vue delete mode 100644 examples/sites/demos/pc/app/drawer/confirm-event-composition-api.vue delete mode 100644 examples/sites/demos/pc/app/drawer/confirm-event.spec.ts create mode 100644 examples/sites/demos/pc/app/drawer/events-composition-api.vue create mode 100644 examples/sites/demos/pc/app/drawer/events.spec.ts create mode 100644 examples/sites/demos/pc/app/drawer/events.vue delete mode 100644 examples/sites/demos/pc/app/drawer/open-event-composition-api.vue delete mode 100644 examples/sites/demos/pc/app/drawer/open-event.spec.ts delete mode 100644 examples/sites/demos/pc/app/drawer/open-event.vue create mode 100644 examples/sites/demos/pc/app/drawer/use-through-method-composition-api.vue create mode 100644 examples/sites/demos/pc/app/drawer/use-through-method.spec.ts create mode 100644 examples/sites/demos/pc/app/drawer/use-through-method.vue create mode 100644 examples/sites/demos/pc/app/grid/drag/multi-header-drag-composition-api.vue create mode 100644 examples/sites/demos/pc/app/grid/drag/multi-header-drag.spec.js create mode 100644 examples/sites/demos/pc/app/grid/drag/multi-header-drag.vue create mode 100644 examples/sites/demos/pc/app/grid/dynamically-columns/dynamic-slot-composition-api.vue create mode 100644 examples/sites/demos/pc/app/grid/dynamically-columns/dynamic-slot.spec.js create mode 100644 examples/sites/demos/pc/app/grid/dynamically-columns/dynamic-slot.vue create mode 100644 examples/sites/demos/pc/app/grid/dynamically-columns/reverse-columns-composition-api.vue create mode 100644 examples/sites/demos/pc/app/grid/dynamically-columns/reverse-columns.spec.js create mode 100644 examples/sites/demos/pc/app/grid/dynamically-columns/reverse-columns.vue create mode 100644 examples/sites/demos/pc/app/grid/faq/custom-column-composition-api.vue create mode 100644 examples/sites/demos/pc/app/grid/faq/custom-column.vue create mode 100644 examples/sites/demos/pc/app/grid/filter/request-service-reload-filter-composition-api.vue create mode 100644 examples/sites/demos/pc/app/grid/filter/request-service-reload-filter.spec.js create mode 100644 examples/sites/demos/pc/app/grid/filter/request-service-reload-filter.vue create mode 100644 examples/sites/demos/pc/app/grid/header/many-header-switching-composition-api.vue create mode 100644 examples/sites/demos/pc/app/grid/header/many-header-switching.spec.js create mode 100644 examples/sites/demos/pc/app/grid/header/many-header-switching.vue create mode 100644 examples/sites/demos/pc/app/grid/row-grouping/row-group-scroll-composition-api.vue create mode 100644 examples/sites/demos/pc/app/grid/row-grouping/row-group-scroll.spec.js create mode 100644 examples/sites/demos/pc/app/grid/row-grouping/row-group-scroll.vue create mode 100644 examples/sites/demos/pc/app/grid/row-grouping/row-grouping-colspan-composition-api.vue create mode 100644 examples/sites/demos/pc/app/grid/row-grouping/row-grouping-colspan.spec.js create mode 100644 examples/sites/demos/pc/app/grid/row-grouping/row-grouping-colspan.vue create mode 100644 examples/sites/demos/pc/app/grid/toolbar/toolbar-op-config-slots-composition-api.vue create mode 100644 examples/sites/demos/pc/app/grid/toolbar/toolbar-op-config-slots.spec.js create mode 100644 examples/sites/demos/pc/app/grid/toolbar/toolbar-op-config-slots.vue create mode 100644 examples/sites/demos/pc/app/input/display-only-popup-more-composition-api.vue create mode 100644 examples/sites/demos/pc/app/input/display-only-popup-more.vue create mode 100644 examples/sites/demos/pc/app/popover/ignore-boundaries-composition-api.vue create mode 100644 examples/sites/demos/pc/app/popover/ignore-boundaries.spec.js create mode 100644 examples/sites/demos/pc/app/popover/ignore-boundaries.vue create mode 100644 examples/sites/demos/pc/app/select/init-label-composition-api.vue create mode 100644 examples/sites/demos/pc/app/select/init-label.vue create mode 100644 packages/design/aurora/src/collapse-item/index.ts create mode 100644 packages/design/saas/src/collapse-item/index.ts create mode 100644 packages/design/smb/src/guide/index.ts create mode 100644 packages/fluent-editor/.eslintignore create mode 100644 packages/fluent-editor/.eslintrc.js create mode 100644 packages/fluent-editor/.gitignore create mode 100644 packages/fluent-editor/.prettierignore create mode 100644 packages/fluent-editor/.prettierrc create mode 100644 packages/fluent-editor/README.md create mode 100644 packages/fluent-editor/VersionSet.xml create mode 100644 packages/fluent-editor/app_define.json create mode 100644 packages/fluent-editor/index.html create mode 100644 packages/fluent-editor/jest.config.js create mode 100644 packages/fluent-editor/origin.html create mode 100644 packages/fluent-editor/package.json create mode 100644 packages/fluent-editor/src/assets/better-table.scss create mode 100644 packages/fluent-editor/src/assets/common.scss create mode 100644 packages/fluent-editor/src/assets/counter.scss create mode 100644 packages/fluent-editor/src/assets/custom-image.scss create mode 100644 packages/fluent-editor/src/assets/editor.scss create mode 100644 packages/fluent-editor/src/assets/emoji/emoji.scss create mode 100644 packages/fluent-editor/src/assets/emoji/style.scss create mode 100644 packages/fluent-editor/src/assets/fileBar.scss create mode 100644 packages/fluent-editor/src/assets/font.scss create mode 100644 packages/fluent-editor/src/assets/fullscreen.scss create mode 100644 packages/fluent-editor/src/assets/iconfont/iconfont.ttf create mode 100644 packages/fluent-editor/src/assets/iconfont/iconfont.woff create mode 100644 packages/fluent-editor/src/assets/iconfont/iconfont.woff2 create mode 100644 packages/fluent-editor/src/assets/image1.png create mode 100644 packages/fluent-editor/src/assets/lineHeight.scss create mode 100644 packages/fluent-editor/src/assets/link.scss create mode 100644 packages/fluent-editor/src/assets/mention.scss create mode 100644 packages/fluent-editor/src/assets/size.scss create mode 100644 packages/fluent-editor/src/config.ts create mode 100644 packages/fluent-editor/src/config/base64-image.ts create mode 100644 packages/fluent-editor/src/config/editor.config.ts create mode 100644 packages/fluent-editor/src/config/editor.utils.ts create mode 100644 packages/fluent-editor/src/config/i18n/en-us.ts create mode 100644 packages/fluent-editor/src/config/i18n/zh-cn.ts create mode 100644 packages/fluent-editor/src/config/icons.config.ts create mode 100644 packages/fluent-editor/src/config/types/additional-toolbar-item.interface.ts create mode 100644 packages/fluent-editor/src/config/types/content-change.interface.ts create mode 100644 packages/fluent-editor/src/config/types/content-save.interface.ts create mode 100644 packages/fluent-editor/src/config/types/counter-option.interface.ts create mode 100644 packages/fluent-editor/src/config/types/editor-config.interface.ts create mode 100644 packages/fluent-editor/src/config/types/editor-modules.interface.ts create mode 100644 packages/fluent-editor/src/config/types/file-operation.interface.ts create mode 100644 packages/fluent-editor/src/config/types/focus-change.interface.ts create mode 100644 packages/fluent-editor/src/config/types/fullscreen-module.interface.ts create mode 100644 packages/fluent-editor/src/config/types/help-panel-item.interface.ts create mode 100644 packages/fluent-editor/src/config/types/help-panel-option.interface.ts create mode 100644 packages/fluent-editor/src/config/types/image-module.interface.ts create mode 100644 packages/fluent-editor/src/config/types/image-upload.interface.ts create mode 100644 packages/fluent-editor/src/config/types/index.ts create mode 100644 packages/fluent-editor/src/config/types/load-on-demand-module.interface.ts create mode 100644 packages/fluent-editor/src/config/types/mention-module.interface.ts create mode 100644 packages/fluent-editor/src/config/types/paste-change.interface.ts create mode 100644 packages/fluent-editor/src/config/types/quick-menu-module.interface.ts create mode 100644 packages/fluent-editor/src/config/types/range.interface.ts create mode 100644 packages/fluent-editor/src/config/types/registry-options.interface.ts create mode 100644 packages/fluent-editor/src/config/types/selection-change.interface.ts create mode 100644 packages/fluent-editor/src/config/types/toolbar-item.interface.ts create mode 100644 packages/fluent-editor/src/config/types/type.ts create mode 100644 packages/fluent-editor/src/config/types/validate-error.interface.ts create mode 100644 packages/fluent-editor/src/counter/index.ts create mode 100644 packages/fluent-editor/src/custom-clipboard.ts create mode 100644 packages/fluent-editor/src/custom-image/BlotFormatter.ts create mode 100644 packages/fluent-editor/src/custom-image/Options.ts create mode 100644 packages/fluent-editor/src/custom-image/actions/Action.ts create mode 100644 packages/fluent-editor/src/custom-image/actions/CustomResizeAction.ts create mode 100644 packages/fluent-editor/src/custom-image/actions/DeleteAction.ts create mode 100644 packages/fluent-editor/src/custom-image/image.ts create mode 100644 packages/fluent-editor/src/custom-image/specs/BlotSpec.ts create mode 100644 packages/fluent-editor/src/custom-image/specs/CustomImageSpec.ts create mode 100644 packages/fluent-editor/src/custom-image/specs/ImageSpec.ts create mode 100644 packages/fluent-editor/src/custom-uploader.ts create mode 100644 packages/fluent-editor/src/declare.d.ts create mode 100644 packages/fluent-editor/src/emoji/emoji-list.ts create mode 100644 packages/fluent-editor/src/emoji/emoji-list/index.ts create mode 100644 packages/fluent-editor/src/emoji/emoji-list/people.ts create mode 100644 packages/fluent-editor/src/emoji/emoji-map.ts create mode 100644 packages/fluent-editor/src/emoji/formats/emoji-blot.ts create mode 100644 packages/fluent-editor/src/emoji/index.ts create mode 100644 packages/fluent-editor/src/emoji/modules/emoji.ts create mode 100644 packages/fluent-editor/src/emoji/modules/toolbar-emoji.ts create mode 100644 packages/fluent-editor/src/emoji/utils.ts create mode 100644 packages/fluent-editor/src/file/formats/file.ts create mode 100644 packages/fluent-editor/src/file/index.ts create mode 100644 packages/fluent-editor/src/file/modules/file-bar.ts create mode 100644 packages/fluent-editor/src/fluent-editor.ts create mode 100644 packages/fluent-editor/src/global-link/constants.ts create mode 100644 packages/fluent-editor/src/global-link/formats/customer-widget-link.ts create mode 100644 packages/fluent-editor/src/global-link/formats/doc-link.ts create mode 100644 packages/fluent-editor/src/global-link/formats/wiki-link.ts create mode 100644 packages/fluent-editor/src/global-link/formats/work-item-link.ts create mode 100644 packages/fluent-editor/src/global-link/global-link-panel.ts create mode 100644 packages/fluent-editor/src/global-link/index.ts create mode 100644 packages/fluent-editor/src/global-link/utils/createTable.ts create mode 100644 packages/fluent-editor/src/index.ts create mode 100644 packages/fluent-editor/src/lineheight.ts create mode 100644 packages/fluent-editor/src/link/formats/link.ts create mode 100644 packages/fluent-editor/src/link/index.ts create mode 100644 packages/fluent-editor/src/link/modules/tooltip.ts create mode 100644 packages/fluent-editor/src/mention/Mention.ts create mode 100644 packages/fluent-editor/src/mention/MentionLink.ts create mode 100644 packages/fluent-editor/src/mention/constants.ts create mode 100644 packages/fluent-editor/src/quick-menu/index.ts create mode 100644 packages/fluent-editor/src/screenshot/index.ts create mode 100644 packages/fluent-editor/src/soft-break/index.ts create mode 100644 packages/fluent-editor/src/strike/index.ts create mode 100644 packages/fluent-editor/src/styles.scss create mode 100644 packages/fluent-editor/src/syntax/index.ts create mode 100644 packages/fluent-editor/src/table/better-table.ts create mode 100644 packages/fluent-editor/src/table/formats/header.ts create mode 100644 packages/fluent-editor/src/table/formats/list.ts create mode 100644 packages/fluent-editor/src/table/formats/table.ts create mode 100644 packages/fluent-editor/src/table/modules/table-column-tool.ts create mode 100644 packages/fluent-editor/src/table/modules/table-operation-menu.ts create mode 100644 packages/fluent-editor/src/table/modules/table-scroll-bar.ts create mode 100644 packages/fluent-editor/src/table/modules/table-selection.ts create mode 100644 packages/fluent-editor/src/table/table-config.ts create mode 100644 packages/fluent-editor/src/table/utils/index.ts create mode 100644 packages/fluent-editor/src/table/utils/node-matchers.ts create mode 100644 packages/fluent-editor/src/toolbar/better-picker.ts create mode 100644 packages/fluent-editor/src/toolbar/index.ts create mode 100644 packages/fluent-editor/src/types/vue.d.ts create mode 100644 packages/fluent-editor/src/utils/debounce.ts create mode 100644 packages/fluent-editor/src/utils/method.ts create mode 100644 packages/fluent-editor/src/video/index.ts create mode 100644 packages/fluent-editor/test/setup.ts create mode 100644 packages/fluent-editor/test/unit/components/Button.spec.ts create mode 100644 packages/fluent-editor/test/unit/components/__snapshots__/Button.spec.ts.snap create mode 100644 packages/fluent-editor/tsconfig.json create mode 100644 packages/fluent-editor/verifyCommit.js create mode 100644 packages/fluent-editor/vite.config.ts delete mode 100644 packages/renderless/src/common/deps/letter-only.ts delete mode 100644 packages/renderless/src/common/deps/number-only.ts create mode 100644 packages/renderless/src/common/deps/useInstanceSlots.ts create mode 100644 packages/renderless/src/common/deps/useRelation.ts create mode 100644 packages/renderless/src/common/function.ts create mode 100644 packages/renderless/src/fluent-editor/index.ts create mode 100644 packages/renderless/src/fluent-editor/options.ts create mode 100644 packages/renderless/src/fluent-editor/vue.ts delete mode 100644 packages/theme-saas/src/images/credit-amex.png delete mode 100644 packages/theme-saas/src/images/credit-background.jpeg delete mode 100644 packages/theme-saas/src/images/credit-chip.png delete mode 100644 packages/theme-saas/src/images/credit-dinersclub.png delete mode 100644 packages/theme-saas/src/images/credit-discover.png delete mode 100644 packages/theme-saas/src/images/credit-jcb.png delete mode 100644 packages/theme-saas/src/images/credit-mastercard.png delete mode 100644 packages/theme-saas/src/images/credit-troy.png delete mode 100644 packages/theme-saas/src/images/credit-unionpay.png delete mode 100644 packages/theme-saas/src/images/credit-visa.png create mode 100644 packages/theme/src/fluent-editor/index.less create mode 100644 packages/theme/src/guide/smb-theme.js create mode 100644 packages/theme/src/images/chevron-down.svg delete mode 100644 packages/theme/src/images/credit-amex.png delete mode 100644 packages/theme/src/images/credit-background.jpeg delete mode 100644 packages/theme/src/images/credit-chip.png delete mode 100644 packages/theme/src/images/credit-dinersclub.png delete mode 100644 packages/theme/src/images/credit-discover.png delete mode 100644 packages/theme/src/images/credit-jcb.png delete mode 100644 packages/theme/src/images/credit-mastercard.png delete mode 100644 packages/theme/src/images/credit-troy.png delete mode 100644 packages/theme/src/images/credit-unionpay.png delete mode 100644 packages/theme/src/images/credit-visa.png create mode 100644 packages/theme/src/images/del.svg create mode 100644 packages/theme/src/images/share-arrow.svg rename packages/{vue/src/grid/src/button => vue-directive}/index.ts (79%) create mode 100644 packages/vue-directive/package.json create mode 100644 packages/vue-directive/src/auto-tip.ts create mode 100644 packages/vue/src/drawer/src/service.ts create mode 100644 packages/vue/src/fluent-editor/index.ts create mode 100644 packages/vue/src/fluent-editor/package.json create mode 100644 packages/vue/src/fluent-editor/src/pc.vue delete mode 100644 packages/vue/src/grid/src/button/src/button.ts create mode 100644 packages/vue/src/grid/src/composable/index.ts create mode 100644 packages/vue/src/grid/src/composable/useDrag/dnd.ts create mode 100644 packages/vue/src/grid/src/composable/useDrag/index.ts create mode 100644 packages/vue/src/grid/src/composable/useRowGroup.ts create mode 100644 packages/vue/src/tabs/src/mobile-first/tab-swipe.vue create mode 100644 packages/vue/src/year-range/src/index.ts create mode 100644 packages/vue/src/year-range/src/mobile-first.vue create mode 100644 packages/vue/src/year-table/src/index.ts create mode 100644 packages/vue/src/year-table/src/mobile-first.vue diff --git a/.eslintrc.js b/.eslintrc.js index a02787fbd..86bb789d6 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -25,6 +25,7 @@ module.exports = { 'vue/no-unused-refs': 'off', 'vue/require-component-is': 'off', 'vue/singleline-html-element-content-newline': 'off', + 'vue/no-v-for-template-key-on-child': 'off', 'curly': 'off', 'sort-imports': 'off', 'prefer-template': 'off', @@ -48,6 +49,7 @@ module.exports = { '@typescript-eslint/restrict-plus-operands': 'off', '@typescript-eslint/no-use-before-define': 'off', '@typescript-eslint/restrict-template-expressions': 'off', - '@typescript-eslint/no-invalid-this': 'off' + '@typescript-eslint/no-invalid-this': 'off', + 'vue/no-deprecated-dollar-scopedslots-api': 'off' } } diff --git a/examples/sites/demos/apis/button-group.js b/examples/sites/demos/apis/button-group.js index 5e9c7b4e9..f6b9464ab 100644 --- a/examples/sites/demos/apis/button-group.js +++ b/examples/sites/demos/apis/button-group.js @@ -185,6 +185,7 @@ interface IButtonGroupData { text: string // 显示文本 value: number | number // 选中的值 disabled?: boolean // 是否禁用 + tip?: string // 按钮悬浮提示 v3.17.0版本增加此功能 // 配置选块角标 sup?: { text: string // 角标文本 diff --git a/examples/sites/demos/apis/card.js b/examples/sites/demos/apis/card.js index 3d54e8d82..5e427175a 100644 --- a/examples/sites/demos/apis/card.js +++ b/examples/sites/demos/apis/card.js @@ -7,7 +7,7 @@ export default { props: [ { name: 'auto-width', - type: 'Boolean', + type: 'boolean', defaultValue: '', desc: { 'zh-CN': '卡片的宽度是否自动撑开,设置后将不再给卡片设置固定宽度', @@ -20,7 +20,7 @@ export default { }, { name: 'check-type', - type: 'String', + type: 'string', defaultValue: '', desc: { 'zh-CN': '设置卡片单选、多选,单选/radio;多选/checkbox,需同时设置 label。', @@ -33,7 +33,7 @@ export default { }, { name: 'custom-class', - type: 'String', + type: 'string', defaultValue: '', desc: { 'zh-CN': '卡片的class', @@ -45,8 +45,8 @@ export default { }, { name: 'disabled', - type: 'Boolean', - defaultValue: '', + type: 'boolean', + defaultValue: 'false', desc: { 'zh-CN': '卡片禁用', 'en-US': 'Card disabled' @@ -57,7 +57,7 @@ export default { }, { name: 'height', - type: 'String', + type: 'string', defaultValue: '', desc: { 'zh-CN': '卡片内容区域的高度', @@ -69,7 +69,7 @@ export default { }, { name: 'icon-more', - type: 'Object', + type: "'iconxxx' | Component", defaultValue: '', desc: { 'zh-CN': '更多按钮图标,可传入一个svg图标对象进行替换', @@ -81,7 +81,7 @@ export default { }, { name: 'label', - type: 'String / Number', + type: 'string / number', defaultValue: '', desc: { 'zh-CN': 'checkbox或radio的label', @@ -93,7 +93,8 @@ export default { }, { name: 'options', - type: 'Array', + typeAnchorName: 'IOptions', + type: 'IOptions', defaultValue: '', desc: { 'zh-CN': '操作按钮配置', @@ -105,8 +106,8 @@ export default { }, { name: 'size', - type: 'String', - defaultValue: '', + type: 'string', + defaultValue: 'medium', desc: { 'zh-CN': '尺寸,支持large、medium、small、mini 4个尺寸,默认值为medium', 'en-US': 'Size. The options are large, medium, small, and mini. The default value is medium.' @@ -117,7 +118,7 @@ export default { }, { name: 'src', - type: 'String', + type: 'string', defaultValue: '', desc: { 'zh-CN': '图片或者视频的地址', @@ -129,8 +130,8 @@ export default { }, { name: 'status', - type: 'String', - defaultValue: '', + type: 'string', + defaultValue: 'default', desc: { 'zh-CN': '卡片状态,支持 success、warning、alerting、danger 4 种状态', 'en-US': 'Card status. The value can be success, warning, alerting, or dangerous.' @@ -141,7 +142,7 @@ export default { }, { name: 'title', - type: 'String', + type: 'string', defaultValue: '', desc: { 'zh-CN': '卡片的标题', @@ -153,10 +154,10 @@ export default { }, { name: 'type', - type: 'String', - defaultValue: '', + type: 'string', + defaultValue: 'text', desc: { - 'zh-CN': '设置卡片类型,支持 text、image、video、logo 4 种类型。', + 'zh-CN': '设置卡片类型,支持 text、image、video、logo 4 种类型', 'en-US': 'Set the card type. The options are text, image, video, and logo.' }, mode: ['pc', 'mobile-first'], @@ -165,7 +166,7 @@ export default { }, { name: 'v-model', - type: 'String', + type: 'string', defaultValue: '', desc: { 'zh-CN': '绑定值,默认为空', @@ -174,12 +175,24 @@ export default { mode: ['pc', 'mobile-first'], pcDemo: 'check-type-checkbox', mfDemo: '' + }, + { + name: 'check-mode', + type: 'string', + defaultValue: 'normal', + desc: { + 'zh-CN': '卡片被选中后的呈现模式,可选值为:normal | simple | badge', + 'en-US': 'Display mode of a selected card. The options are as follows: normal | simple | badge' + }, + mode: ['pc', 'mobile-first'], + pcDemo: 'check-mode', + mfDemo: '' } ], events: [ { name: 'change', - type: 'Function()', + type: '() => {}', defaultValue: '', desc: { 'zh-CN': '组件选中/取消选中事件', @@ -191,7 +204,7 @@ export default { }, { name: 'icon-click', - type: 'Function()', + type: '() => {}', defaultValue: '', desc: { 'zh-CN': '操作栏按钮点击事件', @@ -203,7 +216,7 @@ export default { }, { name: 'click', - type: 'Function()', + type: '() => {}', defaultValue: '', desc: { 'zh-CN': '点击卡片事件', @@ -278,5 +291,33 @@ export default { } ] } + ], + types: [ + { + name: 'IOptions', + type: 'interface', + code: ` +interface IOptions [ + { + text: '删除列表', + icon: IconDel() + }, + { + text: '编辑', + icon: IconWriting(), + disabled: true + }, + { + text: '排序', + icon: IconAscending() + }, + { + text: '分享', + icon: IconShare(), + disabled: true + } +] +` + } ] } diff --git a/examples/sites/demos/apis/carousel.js b/examples/sites/demos/apis/carousel.js index fb2fcca1f..318a5fee4 100644 --- a/examples/sites/demos/apis/carousel.js +++ b/examples/sites/demos/apis/carousel.js @@ -146,6 +146,44 @@ export default { mode: ['pc', 'mobile-first'], pcDemo: 'card-mode', mfDemo: '' + }, + { + name: 'swipeable', + type: 'boolean', + defaultValue: 'false', + desc: { + 'zh-CN': '是否支持触屏轮播', + 'en-US': 'Support Touchscreen Carousel' + }, + mode: ['mobile-first'], + pcDemo: '', + mfDemo: '' + }, + { + name: 'lite', + type: 'boolean', + defaultValue: 'false', + desc: { + 'zh-CN': '是否打开精简模式,不显示切换按钮和指示器', + 'en-US': + 'Indicates whether to enable the simplified mode. The switch button and indicator are not displayed.' + }, + mode: ['pc', 'mobile-first'], + pcDemo: 'swipeable', + mfDemo: '' + }, + { + name: 'beforeSwipe', + type: '(newIndex,oldIndex) => boolean', + defaultValue: '', + desc: { + 'zh-CN': '触摸轮播前,通过返回值控制某个图是否可轮播显示', + 'en-US': + 'Controls whether a graph can be displayed in rotation based on the return value before the rotation is touched.' + }, + mode: ['pc', 'mobile-first'], + pcDemo: 'swipeable', + mfDemo: '' } ], events: [ diff --git a/examples/sites/demos/apis/collapse.js b/examples/sites/demos/apis/collapse.js index 86e8c6fbf..a22342277 100644 --- a/examples/sites/demos/apis/collapse.js +++ b/examples/sites/demos/apis/collapse.js @@ -142,6 +142,17 @@ export default { }, mode: ['pc'], pcDemo: 'title' + }, + { + name: 'expand-icon', + type: 'Component', + defaultValue: '', + desc: { + 'zh-CN': '自定义icon 图标', + 'en-US': 'Customized icon' + }, + mode: ['pc'], + pcDemo: 'icon' } ], events: [], diff --git a/examples/sites/demos/apis/currency.js b/examples/sites/demos/apis/currency.js index ea24a3b4e..03b7aa695 100644 --- a/examples/sites/demos/apis/currency.js +++ b/examples/sites/demos/apis/currency.js @@ -10,8 +10,8 @@ export default { type: 'boolean', defaultValue: '该属性的默认值为 true', desc: { - 'zh-CN': '是否显示清除按钮;是否可清空', - 'en-US': 'Whether to display the Clear button; Clearable' + 'zh-CN': '是否显示清除按钮', + 'en-US': 'Whether to display the Clear button' }, mode: ['pc', 'mobile-first'], pcDemo: 'custom-service', @@ -19,7 +19,7 @@ export default { }, { name: 'disabled', - type: 'Boolen', + type: 'boolean', defaultValue: '该属性的默认值为 false', desc: { 'zh-CN': '禁用', @@ -116,14 +116,88 @@ export default { mfDemo: '' }, { - name: 'v-model', - type: 'String / Number', + name: 'set-default', + type: 'boolean', + defaultValue: 'false', + desc: { + 'zh-CN': '是否开启设置默认币种,默认值为 false', + 'en-US': + 'Indicates whether to enable the function of setting the default currency. The default value is false.' + }, + mode: ['pc', 'mobile-first'], + pcDemo: 'set-default', + mfDemo: '' + }, + { + name: 'set-default-currency', + type: 'function', defaultValue: '', desc: { - 'zh-CN': '设置下拉框的值', - 'en-US': '' + 'zh-CN': '设置默认币种的自定义方法', + 'en-US': 'Custom Method for Setting Default Currency' }, - mode: ['mobile-first'], + mode: ['pc', 'mobile-first'], + pcDemo: 'set-default-custom-service', + mfDemo: '' + }, + { + name: 'fetch-default-currency', + type: 'function', + defaultValue: '', + desc: { + 'zh-CN': '设置默认币种的服务', + 'en-US': 'Services that set the default currency' + }, + mode: ['pc', 'mobile-first'], + pcDemo: 'set-default-custom-service', + mfDemo: '' + }, + { + name: 'label', + type: 'string', + defaultValue: '', + desc: { + 'zh-CN': `显示标题,设置 shape='filter' 属性切换至过滤器模式时有效,可参考 FilterBox 组件属性`, + 'en-US': `Display title. This parameter is valid when shape='filter' is set to switch to the filter mode. For details, see the attributes of the FilterBox component.` + }, + mode: ['pc', 'mobile-first'], + pcDemo: 'filter', + mfDemo: '' + }, + { + name: 'drop-style', + type: 'object', + defaultValue: '{}', + desc: { + 'zh-CN': '自定义下拉选项样式', + 'en-US': 'Custom drop-down options style' + }, + mode: ['pc', 'mobile-first'], + pcDemo: 'filter', + mfDemo: '' + }, + { + name: 'shape', + type: 'string', + defaultValue: '', + desc: { + 'zh-CN': `通过 shape='filter' 属性切换至过滤器模式`, + 'en-US': `Switch to the filter mode by using the shape='filter' attribute.` + }, + mode: ['pc', 'mobile-first'], + pcDemo: 'filter', + mfDemo: '' + }, + { + name: 'tip', + type: 'string', + defaultValue: '', + desc: { + 'zh-CN': `显示提示信息,设置 shape='filter' 属性切换至过滤器模式时有效,可参考 FilterBox 组件属性`, + 'en-US': `Displays a message. This parameter is valid when shape='filter' is set to switch to the filter mode. For details, see the attributes of the FilterBox component.` + }, + mode: ['pc', 'mobile-first'], + pcDemo: 'filter', mfDemo: '' } ], @@ -131,13 +205,19 @@ export default { { name: 'change', type: '', - defaultValue: '', + defaultValue: '(arg1,arg2) => void', desc: { - 'zh-CN': - 'arg1:{Any|Array 单选并且未指定渲染类型时,是选中项的值字段,此时没有arg2参数;多选并且未指定渲染类型时,是选中项值字段组成的数组,此时没有arg2参数;单选并且渲染类型为树或者表格时,是选中项对象,此时没有arg2参数;多选并且渲染类型为树或者表格时,是选中项对象值字段组成的数组,此时有arg2参数;},arg2:{Array 多选并且渲染类型为树或者表格时,是选中项对象组成的数组}', - 'en-US': '' + 'zh-CN': ` + arg1:{Any|Array 单选并且未指定渲染类型时,是选中项的值字段,此时没有arg2参数;多选并且未指定渲染类型时,是选中项值字段组成的数组,此时没有arg2参数;单选并且渲染类型为树或者表格时,是选中项对象,此时没有arg2参数;多选并且渲染类型为树或者表格时,是选中项对象值字段组成的数组,此时有arg2参数;},
+ arg2:{Array 多选并且渲染类型为树或者表格时,是选中项对象组成的数组} + `, + 'en-US': ` + When arg1:{Any|Array is selected and the rendering type is not specified, this is the value field of the selected item. In this case, the arg2 parameter is not provided. If multiple options are selected and the rendering type is not specified, the value field of the selected items is an array. In this case, the arg2 parameter is not provided. If you select a single item and the rendering type is tree or table, the object is selected. In this case, the arg2 parameter is not provided. When multiple selections are selected and the rendering type is tree or table, the array is composed of the selected object value fields. In this case, the arg2 parameter is available.},
+ arg2:{An array consisting of selected items when multiple Arrays are selected and the rendering type is tree or table} + ` }, - mode: ['mobile-first'], + mode: ['pc', 'mobile-first'], + pcDemo: '', mfDemo: '' } ], diff --git a/examples/sites/demos/apis/drawer.js b/examples/sites/demos/apis/drawer.js index 6f7ff186c..6e70186ec 100644 --- a/examples/sites/demos/apis/drawer.js +++ b/examples/sites/demos/apis/drawer.js @@ -182,28 +182,16 @@ export default { } ], events: [ - { - name: 'open', - type: '() => void', - defaultValue: '', - desc: { - 'zh-CN': '打开抽屉事件', - 'en-US': '' - }, - mode: ['pc', 'mobile-first'], - pcDemo: 'open-event', - mfDemo: '' - }, { name: 'close', - type: '() => void', + type: '(force: boolean) => void', defaultValue: '', desc: { - 'zh-CN': '关闭抽屉事件', - 'en-US': 'Close drawer event' + 'zh-CN': '关闭抽屉事件,参数 force 指定是否强制关闭', + 'en-US': 'Close drawer event, and parameter force decides force close' }, mode: ['pc', 'mobile-first'], - pcDemo: 'close-event', + pcDemo: 'events', mfDemo: '' }, { @@ -215,7 +203,19 @@ export default { 'en-US': 'Confirm event. This event is emit only when show-footer="true" is set' }, mode: ['pc', 'mobile-first'], - pcDemo: 'confirm-event', + pcDemo: 'events', + mfDemo: '' + }, + { + name: 'show', + type: '(instance: Component) => void', + defaultValue: '', + desc: { + 'zh-CN': '抽屉显示事件', + 'en-US': '' + }, + mode: ['pc'], + pcDemo: 'events', mfDemo: '' }, { @@ -252,6 +252,18 @@ export default { }, mode: ['mobile-first'], mfDemo: '' + }, + { + name: 'service', + type: '(configs: IDrawerConfigs) => Component', + typeAnchorName: 'IDrawerConfigs', + defaultValue: '', + desc: { + 'zh-CN': '配置并打开抽屉', + 'en-US': '' + }, + mode: ['pc'], + pcDemo: 'use-through-method' } ], slots: [ @@ -297,5 +309,28 @@ export default { } ] } + ], + types: [ + { + name: 'IDrawerConfigs', + type: 'interface', + code: ` +interface IDrawerConfigs extends IDrawerProps { + // 方法调用的配置参数 + events: { + // 监听事件 + close: () => void + confirm: () => void + show: (instance: Component) => void + }, + customSlots: { + // 插槽 + default: string | VNode | (h) => VNode, + header: string | VNode | (h) => VNode, + headerRight: string | VNode | (h) => VNode, + footer: string | VNode | (h) => VNode +} +` + } ] } diff --git a/examples/sites/demos/apis/grid.js b/examples/sites/demos/apis/grid.js index 3c5da42c2..67d4286f9 100644 --- a/examples/sites/demos/apis/grid.js +++ b/examples/sites/demos/apis/grid.js @@ -143,6 +143,30 @@ export default { pcDemo: 'grid-context-menu#context-menu-footer-menu', mfDemo: '' }, + { + name: 'custom-column-names', + type: 'string[]', + defaultValue: "['TinyGridColumn']", + metaData: { + experimental: { + version: '3.17.0' + } + }, + versionTipOption: { + extendTip: { + 'zh-CN': '该属性于3.17版本新增,封装 grid-column 时需要配置此字段,提供给表格收集配置', + 'en-US': + 'This field needs to be configured when encapsulating grid-column and is provided for table collection configuration' + } + }, + desc: { + 'zh-CN': '封装 grid-column 时需要配置此字段,提供给表格收集配置', + 'en-US': + 'This field needs to be configured when encapsulating grid-column and is provided for table collection configuration' + }, + mode: ['pc'], + pcDemo: 'grid-faq#custom-column' + }, { name: 'data', typeAnchorName: 'IRow', @@ -1436,6 +1460,28 @@ export default { pcDemo: 'grid-event#event-toggle-expand-change-event', mfDemo: '' }, + { + name: 'toggle-group-change', + typeAnchorName: 'IToggleGroupChangeArgs', + type: '(row: IRow)=> void', + defaultValue: '', + metaData: { + experimental: '3.17.0' + }, + versionTipOption: { + extendTip: { + 'zh-CN': '该特性于3.17版本新增', + 'en-US': 'This feature was added in version 3.17' + } + }, + desc: { + 'zh-CN': '当分组的展开和收起时会触发该事件', + 'en-US': 'This event is triggered when the group is expanded and collapsed.' + }, + mode: ['pc', 'mobile-first'], + pcDemo: 'grid-row-grouping#row-grouping-row-group-render', + mfDemo: '' + }, { name: 'toggle-tree-change', typeAnchorName: 'IToggleTreeChangeArgs', @@ -4016,8 +4062,16 @@ interface IDataHandler { type: 'type', code: ` interface IRowGroup { + // 自定义渲染内容 + render: () => Vnode // 列标识符,行分组会将具有相同值的列进行分组展示 field: string + // 3.17版本新增,配置分组行的列合并数量 + colspan: number + // 3.17版本新增,控制分组行是否可以手动折叠 + closeable: boolean + // 3.17版本新增,控制分组生成时是否默认收起 + activeMethod: (row: IRow) => boolean } ` }, diff --git a/examples/sites/demos/apis/input.js b/examples/sites/demos/apis/input.js index b4eecc802..415a6ce86 100644 --- a/examples/sites/demos/apis/input.js +++ b/examples/sites/demos/apis/input.js @@ -528,6 +528,20 @@ export default { }, mode: ['mobile'], mobileDemo: '' + }, + { + name: 'popup-more', + type: 'Boolean', + defaultValue: '', + desc: { + 'zh-CN': + '在只读的基础上增加 popup-more 属性,可使文本域超出显示更多按钮,点击更多按钮可以查看详细信息。', + 'en-US': + 'The popup-more attribute is added to enable the text field to exceed the display of more buttons. You can click more buttons to view details.' + }, + mode: ['pc', 'mobile-first'], + pcDemo: 'display-only-popup-more', + mfDemo: 'display-only-popup-more' } ], events: [ diff --git a/examples/sites/demos/apis/popover.js b/examples/sites/demos/apis/popover.js index 5bb73e44d..1a77b73df 100644 --- a/examples/sites/demos/apis/popover.js +++ b/examples/sites/demos/apis/popover.js @@ -376,6 +376,8 @@ interface IPopperOption { removeOnDestroy: boolean // 弹出层消失后,是否移除弹出层的DOM元素,布尔false updateHiddenPopperOnScroll: boolean // 滚动过程中是否更新隐藏的弹出层位置 boundariesElement: 'viewport' | 'body' | HTMLElement // 滚动过程中,弹出层的碰撞边界。 默认值为: 'viewport' + ignoreBoundaries: boolean // 忽略边界判断,弹出的位置始终是设置的 placement 值 + scrollParent: HTMLElement // 指定滚动的父节点,优化级最高。 默认为null } ` }, diff --git a/examples/sites/demos/apis/select.js b/examples/sites/demos/apis/select.js index 74fbc5d9e..e206acd28 100644 --- a/examples/sites/demos/apis/select.js +++ b/examples/sites/demos/apis/select.js @@ -18,6 +18,19 @@ export default { pcDemo: 'all-text', mfDemo: 'all-text' }, + { + name: 'show-all-text-tag', + type: 'boolean', + defaultValue: 'false', + desc: { + 'zh-CN': + '指定多选模式全选后,在输入框中,是否只显示 all-text 指定的Tag。 默认值为 false,所有选项循环显示在输入框。', + 'en-US': + 'Specifies whether only the tag specified by all-text is displayed in the text box after the multi-select mode is specified. The default value is false. All options are displayed in the text box cyclically.' + }, + mode: ['pc'], + pcDemo: 'all-text' + }, { name: 'allow-copy', type: 'boolean', @@ -625,12 +638,25 @@ export default { defaultValue: 'false', desc: { 'zh-CN': - '是否展示多选框开启多选限制选择数量时,选中条数和限制总条数的占比的文字提示。 该属性的优先级大于show-proportion 属性,同时设置只', + '是否展示多选框开启多选限制选择数量时,选中条数和限制总条数的占比的文字提示。 该属性的优先级大于show-proportion 属性。', 'en-US': 'Display the proportion of the number of selected items and the total number of items in the multiple-choice box' }, mode: ['pc'], pcDemo: 'multiple' + }, + { + name: 'init-label', + type: 'string', + defaultValue: '', + desc: { + 'zh-CN': + '通过 init-label 属性设置远程搜索或者嵌套树懒加载数据未获取到时显示的初始化 label 值。', + 'en-US': + 'Use the init-label attribute to set the initial label value displayed when remote search or nested sloth loading data is not obtained.' + }, + mode: ['pc'], + pcDemo: 'init-label' } ], events: [ diff --git a/examples/sites/demos/apis/split.js b/examples/sites/demos/apis/split.js index e794208b8..cee3d0f4b 100644 --- a/examples/sites/demos/apis/split.js +++ b/examples/sites/demos/apis/split.js @@ -87,7 +87,28 @@ export default { pcDemo: 'split-threshold' }, { - mode: [] + name: 'border', + type: 'boolean', + defaultValue: 'true', + desc: { + 'zh-CN': '是否显示边框', + 'en-US': 'Indicates whether to display the border.' + }, + mode: ['pc'], + pcDemo: '' + }, + { + name: 'right-bottom-value', + type: 'boolean', + defaultValue: 'false', + desc: { + 'zh-CN': + '默认情况下,v-model的值为左/上面板的位置。 当设置right-bottom-value 为true时,指明 v-model的值为 右/下面板的位置。 ', + 'en-US': + 'By default, the value of v-model is the position of the left/top panel. When right-bottom-value is set to true, the value of v-model is the position of the right/lower panel.' + }, + mode: ['pc'], + pcDemo: '' } ], events: [ diff --git a/examples/sites/demos/apis/time-line.js b/examples/sites/demos/apis/time-line.js index 4ca503c75..2f4678f6d 100644 --- a/examples/sites/demos/apis/time-line.js +++ b/examples/sites/demos/apis/time-line.js @@ -146,8 +146,9 @@ export default { type: 'boolean', defaultValue: 'false', desc: { - 'zh-CN': '是否显示底部分割线,适用于横向时间线', - 'en-US': 'Whether to display the bottom separator line of horizontal timeline' + 'zh-CN': '是否显示底部指标三角,适用于横向时间线', + 'en-US': + 'Indicates whether to display the bottom indicator triangle, which is applicable to the horizontal timeline.' }, mode: ['pc'], pcDemo: 'show-divider' diff --git a/examples/sites/demos/apis/tooltip.js b/examples/sites/demos/apis/tooltip.js index cfc468109..26f411085 100644 --- a/examples/sites/demos/apis/tooltip.js +++ b/examples/sites/demos/apis/tooltip.js @@ -321,6 +321,8 @@ interface IPopperOption { removeOnDestroy: boolean // 弹出层消失后,是否移除弹出层的DOM元素,布尔false updateHiddenPopperOnScroll: boolean // 滚动过程中是否更新隐藏的弹出层位置 boundariesElement: 'viewport' | 'body' | HTMLElement // 滚动过程中,弹出层的碰撞边界。 默认值为: 'viewport' + ignoreBoundaries: boolean // 忽略边界判断,弹出的位置始终是设置的 placement 值 + scrollParent: HTMLElement // 指定滚动的父节点,优化级最高。 默认为null } ` }, diff --git a/examples/sites/demos/apis/tree.js b/examples/sites/demos/apis/tree.js index d31e9d1cd..4fd2f2e74 100644 --- a/examples/sites/demos/apis/tree.js +++ b/examples/sites/demos/apis/tree.js @@ -478,6 +478,19 @@ export default { }, mode: ['pc'], pcDemo: 'filter-view' + }, + { + name: 'edit-config', + typeAnchorName: 'ITreeEditConfig', + type: 'ITreeEditConfig', + defaultValue: '{}', + desc: { + 'zh-CN': '用于编辑模式下参数配置,指示新增节点的 id ,是否显示 id 重复的警告等', + 'en-US': + 'Used for parameter configuration in editing mode, indicating the ID of a new node and whether to display a warning indicating duplicate IDs.' + }, + mode: ['pc'], + pcDemo: 'edit' } ], events: [ @@ -1193,5 +1206,19 @@ export default { } ] } + ], + types: [ + { + name: 'ITreeEditConfig', + type: 'type', + code: ` +interface ITreeEditConfig{ + // 生成新节点的id + initNodeIdMethod: (node) => string; + // 新节点id与其它id重复时,是否在控制台显示告警。 + noWarning: boolean; +} + ` + } ] } diff --git a/examples/sites/demos/mobile-first/app/date-picker/about-clear.vue b/examples/sites/demos/mobile-first/app/date-picker/about-clear.vue new file mode 100644 index 000000000..f61a96c40 --- /dev/null +++ b/examples/sites/demos/mobile-first/app/date-picker/about-clear.vue @@ -0,0 +1,25 @@ + + + diff --git a/examples/sites/demos/mobile-first/app/date-picker/basic-usage.vue b/examples/sites/demos/mobile-first/app/date-picker/basic-usage.vue new file mode 100644 index 000000000..c9dc3dc5b --- /dev/null +++ b/examples/sites/demos/mobile-first/app/date-picker/basic-usage.vue @@ -0,0 +1,20 @@ + + + diff --git a/examples/sites/demos/mobile-first/app/date-picker/date-range.vue b/examples/sites/demos/mobile-first/app/date-picker/date-range.vue new file mode 100644 index 000000000..62e0d1375 --- /dev/null +++ b/examples/sites/demos/mobile-first/app/date-picker/date-range.vue @@ -0,0 +1,35 @@ + + + diff --git a/examples/sites/demos/mobile-first/app/date-picker/datetime-range.vue b/examples/sites/demos/mobile-first/app/date-picker/datetime-range.vue new file mode 100644 index 000000000..774931a0e --- /dev/null +++ b/examples/sites/demos/mobile-first/app/date-picker/datetime-range.vue @@ -0,0 +1,21 @@ + + + diff --git a/examples/sites/demos/mobile-first/app/date-picker/datetime.vue b/examples/sites/demos/mobile-first/app/date-picker/datetime.vue new file mode 100644 index 000000000..a411958a3 --- /dev/null +++ b/examples/sites/demos/mobile-first/app/date-picker/datetime.vue @@ -0,0 +1,20 @@ + + + diff --git a/examples/sites/demos/mobile-first/app/date-picker/disabled.vue b/examples/sites/demos/mobile-first/app/date-picker/disabled.vue new file mode 100644 index 000000000..7ed934cb6 --- /dev/null +++ b/examples/sites/demos/mobile-first/app/date-picker/disabled.vue @@ -0,0 +1,32 @@ + + + diff --git a/examples/sites/demos/mobile-first/app/date-picker/placeholder.vue b/examples/sites/demos/mobile-first/app/date-picker/placeholder.vue new file mode 100644 index 000000000..5b78d3c65 --- /dev/null +++ b/examples/sites/demos/mobile-first/app/date-picker/placeholder.vue @@ -0,0 +1,32 @@ + + + diff --git a/examples/sites/demos/mobile-first/app/date-picker/step.vue b/examples/sites/demos/mobile-first/app/date-picker/step.vue new file mode 100644 index 000000000..658f00e9c --- /dev/null +++ b/examples/sites/demos/mobile-first/app/date-picker/step.vue @@ -0,0 +1,25 @@ + + + diff --git a/examples/sites/demos/mobile-first/app/date-picker/webdoc/date-picker.cn.md b/examples/sites/demos/mobile-first/app/date-picker/webdoc/date-picker.cn.md new file mode 100644 index 000000000..c2fade0fc --- /dev/null +++ b/examples/sites/demos/mobile-first/app/date-picker/webdoc/date-picker.cn.md @@ -0,0 +1,9 @@ +--- +title: DatePicker 日期选择器组件 +--- + +# DatePicker 日期选择器组件 + +
+ +
diff --git a/examples/sites/demos/mobile-first/app/date-picker/webdoc/date-picker.en.md b/examples/sites/demos/mobile-first/app/date-picker/webdoc/date-picker.en.md new file mode 100644 index 000000000..c2fade0fc --- /dev/null +++ b/examples/sites/demos/mobile-first/app/date-picker/webdoc/date-picker.en.md @@ -0,0 +1,9 @@ +--- +title: DatePicker 日期选择器组件 +--- + +# DatePicker 日期选择器组件 + +
+ +
diff --git a/examples/sites/demos/mobile-first/app/date-picker/webdoc/date-picker.js b/examples/sites/demos/mobile-first/app/date-picker/webdoc/date-picker.js new file mode 100644 index 000000000..b7e778ec2 --- /dev/null +++ b/examples/sites/demos/mobile-first/app/date-picker/webdoc/date-picker.js @@ -0,0 +1,120 @@ +export default { + column: '2', + owner: '', + demos: [ + { + demoId: 'basic-usage', + name: { + 'zh-CN': '基本用法', + 'en-US': 'basic usage' + }, + desc: { + 'zh-CN': '

设置 `type` 属性默认值为 `date`,以日期的形式进行选择。

', + 'en-US': '

button type

' + }, + codeFiles: ['basic-usage.vue'] + }, + { + demoId: 'datetime', + name: { + 'zh-CN': '选择日期时间', + 'en-US': 'events' + }, + desc: { + 'zh-CN': '

设置 `type` 属性为 `datetime`,以日期时间的形式进行选择。

', + 'en-US': '

bbutton click

' + }, + codeFiles: ['datetime.vue'] + }, + { + demoId: 'date-range', + name: { + 'zh-CN': '选择日期范围', + 'en-US': 'events' + }, + desc: { + 'zh-CN': '

设置 `type` 属性为 `daterange`,以日期范围的形式进行选择。

', + 'en-US': '

bbutton click

' + }, + codeFiles: ['date-range.vue'] + }, + { + demoId: 'datetime-range', + name: { + 'zh-CN': '选择日期时间范围', + 'en-US': 'events' + }, + desc: { + 'zh-CN': '

设置 `type` 属性为 `datetimerange`,以日期时间范围的形式进行选择。

', + 'en-US': '

bbutton click

' + }, + codeFiles: ['datetime-range.vue'] + }, + { + demoId: 'year', + name: { + 'zh-CN': '年份选择', + 'en-US': 'Year and month selector' + }, + desc: { + 'zh-CN': + '

设置 `type` 属性为 `year`,进行年份单选;设置 `type` 属性为 `years`,进行年份多选;设置 `type` 属性为 `yearrange`,进行年份范围选择。

', + 'en-US': '

Set the `type` attribute to `year-month` to select a year-month selector.

' + }, + codeFiles: ['year.vue'] + }, + { + demoId: 'placeholder', + name: { + 'zh-CN': '占位符', + 'en-US': 'Year Month Range Selector' + }, + desc: { + 'zh-CN': + '

单选可通过 `placeholder` 设置占位符。范围选择时,`start-placeholder` 和 `end-placeholder` 属性可分别指定开始日期和结束日期输入框的占位符。`range-separator` 属性指定开始日期和结束日期输入框之间的分隔符。

', + 'en-US': + '

Single choice: You can use `placeholder` to set a placeholder. When a range is selected, the `start-placeholder` and `end-placeholder` attributes specify placeholders for the start and end date input boxes, respectively. The `range-separator` property specifies the separator between the start date and end date input boxes.

' + }, + codeFiles: ['placeholder.vue'] + }, + { + demoId: 'disabled', + name: { + 'zh-CN': '禁用', + 'en-US': 'Disabled' + }, + desc: { + 'zh-CN': '

配置 `disabled` 属性设置时间选择器禁用。

', + 'en-US': '

Configure the `disabled` property to disable the time selector.

' + }, + codeFiles: ['disabled.vue'] + }, + { + demoId: 'step', + name: { + 'zh-CN': '步长', + 'en-US': 'Year Month Range Selector Limit Range' + }, + desc: { + 'zh-CN': '

通过 `step` 设置时间选择的步长,默认值为 `{ hour: 1, minute: 1, second: 1 }`。

', + 'en-US': + '

Use `step` to set the time selection step. The default value is `{hour: 1, minute: 1, second: 1}`.

' + }, + codeFiles: ['step.vue'] + }, + { + demoId: 'about-clear', + name: { + 'zh-CN': '清除输入', + 'en-US': 'Clear input' + }, + desc: { + 'zh-CN': + '

选择日期后,鼠标悬停在输入框时,默认会显示清除图标,单击图标可以清除输入框内容。设置 `clearable` 属性为 `false` 后,则不显示清除图标,不可清除。

', + 'en-US': + '

After you select a date, the clear icon is displayed by default when you hover the cursor over the text box. You can click the icon to clear the text box. After the `clearable` attribute is set to `false`, the clear icon is not displayed and cannot be cleared.

' + }, + codeFiles: ['about-clear.vue'] + } + ] +} diff --git a/examples/sites/demos/mobile-first/app/date-picker/year.vue b/examples/sites/demos/mobile-first/app/date-picker/year.vue new file mode 100644 index 000000000..f2136f8cf --- /dev/null +++ b/examples/sites/demos/mobile-first/app/date-picker/year.vue @@ -0,0 +1,63 @@ + + + diff --git a/examples/sites/demos/mobile-first/app/input/resize.vue b/examples/sites/demos/mobile-first/app/input/resize.vue index af0819e67..221727003 100644 --- a/examples/sites/demos/mobile-first/app/input/resize.vue +++ b/examples/sites/demos/mobile-first/app/input/resize.vue @@ -1,18 +1,44 @@ @@ -25,14 +51,19 @@ export default { }, data() { return { - input: '' + input: '', + textarea: '', + hoverText: '', + displayOnlyText: 'value 的内容' } } } - diff --git a/examples/sites/demos/mobile-first/app/input/webdoc/input.js b/examples/sites/demos/mobile-first/app/input/webdoc/input.js index 9ba46d3a5..97bac0f1c 100644 --- a/examples/sites/demos/mobile-first/app/input/webdoc/input.js +++ b/examples/sites/demos/mobile-first/app/input/webdoc/input.js @@ -133,8 +133,14 @@ export default { }, desc: { 'zh-CN': - '

可通过 `resize` 属性设置文本域的缩放。可选值:`none / both / horizontal / vertical`。注意:只在 `type="textarea"` 时有效。

', - 'en-US': '

bbutton click

' + '

可通过 resize 属性设置文本域的缩放。可选值:none / both / horizontal / vertical。注意:只在 type="textarea" 时有效。

\n ' + + '

可通过 autosize 属性设置文本域自适应内容高度。可传入对象,如{ minRows: 2, maxRows: 6 }

\n

' + + '

可通过 hover-expand 属性设置文本域鼠标悬浮展开/收起,只对 type=textarea 有效,最好搭配 autosize 一起使用

', + + 'en-US': + '

You can use the resize property to set the scaling of the text field. The value can be none / both / horizontal / vertical. Note: This parameter is valid only when type="textarea".

' + + '

The autosize property allows you to set the text field to adapt to the content height. You can transfer an object, for example, {minRows: 2, maxRows: 6}.

' + + '

You can use the hover-expand attribute to set the text field to be expanded or collapsed by hovering the mouse. This parameter is valid only for type=textarea. It is recommended that you use it together with autosize

' }, codeFiles: ['resize.vue'] }, diff --git a/examples/sites/demos/mobile-first/app/tabs/before-leave.vue b/examples/sites/demos/mobile-first/app/tabs/before-leave.vue index b5469930a..4d42998af 100644 --- a/examples/sites/demos/mobile-first/app/tabs/before-leave.vue +++ b/examples/sites/demos/mobile-first/app/tabs/before-leave.vue @@ -24,6 +24,9 @@ export default { }, methods: { beforeLeave() { + // 以下写法均为禁用切换 + // return Promise.resolve(false) + // return Promise.reject() return false } } diff --git a/examples/sites/demos/mobile-first/menus.js b/examples/sites/demos/mobile-first/menus.js index ac265edc6..8633f318f 100644 --- a/examples/sites/demos/mobile-first/menus.js +++ b/examples/sites/demos/mobile-first/menus.js @@ -49,6 +49,7 @@ export const cmpMenus = [ key: 'cmp_form_components', children: [ { name: 'DatePickerMobile', nameCn: '日期选择器', key: 'date-picker-mobile' }, + { name: 'DatePicker', nameCn: '日期选择器多端', key: 'date-picker' }, { name: 'TimePickerMobile', nameCn: '时间选择器', key: 'time-picker-mobile' }, { name: 'Button', nameCn: '按钮', key: 'button' }, { name: 'Checkbox', nameCn: '复选框', key: 'checkbox' }, diff --git a/examples/sites/demos/pc/app/amount/custom-service.spec.js b/examples/sites/demos/pc/app/amount/custom-service.spec.js index 99ca03a91..ff5f1f5c9 100644 --- a/examples/sites/demos/pc/app/amount/custom-service.spec.js +++ b/examples/sites/demos/pc/app/amount/custom-service.spec.js @@ -3,7 +3,8 @@ import { test, expect } from '@playwright/test' test('自定义服务', async ({ page }) => { page.on('pageerror', (exception) => expect(exception).toBeNull()) await page.goto('amount#custom-service') - await page.getByRole('img').filter({ hasText: '>' }).locator('path').click() + const demo = page.locator('#custom-service') + await demo.locator('.tiny-amount-input-icon').click() await page .locator('div') .filter({ hasText: /^币种MZNCNY$/ }) diff --git a/examples/sites/demos/pc/app/autocomplete/debounce.spec.ts b/examples/sites/demos/pc/app/autocomplete/debounce.spec.ts index 33c55c719..1f0b10a94 100644 --- a/examples/sites/demos/pc/app/autocomplete/debounce.spec.ts +++ b/examples/sites/demos/pc/app/autocomplete/debounce.spec.ts @@ -3,8 +3,7 @@ import { test, expect } from '@playwright/test' test('debounce', async ({ page }) => { page.on('pageerror', (exception) => expect(exception).toBeNull()) await page.goto('autocomplete#debounce') - await page.getByText('去抖延时').nth(3).click() - + await page.getByRole('textbox', { name: '请输入内容', exact: true }).click() await expect(page.getByRole('option', { name: 'WWWW科技YX公司' })).not.toBeVisible() await page.waitForTimeout(1000) diff --git a/examples/sites/demos/pc/app/autocomplete/size.spec.ts b/examples/sites/demos/pc/app/autocomplete/size.spec.ts index 9aaa8e89f..2ab011840 100644 --- a/examples/sites/demos/pc/app/autocomplete/size.spec.ts +++ b/examples/sites/demos/pc/app/autocomplete/size.spec.ts @@ -3,7 +3,6 @@ import { test, expect } from '@playwright/test' test('size', async ({ page }) => { page.on('pageerror', (exception) => expect(exception).toBeNull()) await page.goto('autocomplete#size') - await page.getByText('输入框大小').nth(1).click() await page.getByRole('textbox', { name: '请输入内容', exact: true }).click() await page.getByRole('option', { name: 'WWWW科技YX公司' }).click() await expect(page.locator('//div[@class="tiny-input tiny-input-medium"]')).toHaveClass(/tiny-input-medium/) diff --git a/examples/sites/demos/pc/app/button-group/disabled-composition-api.vue b/examples/sites/demos/pc/app/button-group/disabled-composition-api.vue index 51cb313ad..734c3193c 100644 --- a/examples/sites/demos/pc/app/button-group/disabled-composition-api.vue +++ b/examples/sites/demos/pc/app/button-group/disabled-composition-api.vue @@ -25,7 +25,7 @@ const groupData = ref([ const disabledGroup = ref([ { text: 'Button1', value: 1 }, - { text: 'Button2', value: 2, disabled: true }, + { text: 'Button2', value: 2, disabled: true, tip: '因为xxx原因被禁用' }, { text: 'Button3', value: 3 } ]) diff --git a/examples/sites/demos/pc/app/button-group/disabled.spec.ts b/examples/sites/demos/pc/app/button-group/disabled.spec.ts index e323702f0..4a2e360cd 100644 --- a/examples/sites/demos/pc/app/button-group/disabled.spec.ts +++ b/examples/sites/demos/pc/app/button-group/disabled.spec.ts @@ -38,4 +38,8 @@ test('测试按钮是否禁用', async ({ page }) => { await expect(buttonGroup3.locator('button').nth(1)).toHaveCSS('background-color', 'rgb(245, 245, 246)') await expect(buttonGroup3.locator('button').nth(1)).toHaveCSS('border-bottom-color', 'rgb(173, 176, 184)') await expect(buttonGroup3.locator('button').nth(1)).toHaveCSS('color', 'rgb(173, 176, 184)') + + // 按钮悬浮提示 + await buttonGroup3.locator('button').nth(1).hover() + await expect(page.getByText('因为xxx原因被禁用')).toBeVisible() }) diff --git a/examples/sites/demos/pc/app/button-group/disabled.vue b/examples/sites/demos/pc/app/button-group/disabled.vue index 873b42f9e..33c16a5f4 100644 --- a/examples/sites/demos/pc/app/button-group/disabled.vue +++ b/examples/sites/demos/pc/app/button-group/disabled.vue @@ -29,7 +29,7 @@ export default { ], disabledGroup: [ { text: 'Button1', value: 1 }, - { text: 'Button2', value: 2, disabled: true }, + { text: 'Button2', value: 2, disabled: true, tip: '因为xxx原因被禁用' }, { text: 'Button3', value: 3 } ] } diff --git a/examples/sites/demos/pc/app/button-group/webdoc/button-group.js b/examples/sites/demos/pc/app/button-group/webdoc/button-group.js index 5f5c63d1e..554ad8b3c 100644 --- a/examples/sites/demos/pc/app/button-group/webdoc/button-group.js +++ b/examples/sites/demos/pc/app/button-group/webdoc/button-group.js @@ -37,9 +37,9 @@ export default { }, desc: { 'zh-CN': - '

通过 disabled 设置按钮组是否禁用,数据项设置 disabled 属性可以禁用单个按钮。

', + '

通过 disabled 设置按钮组是否禁用,数据项设置 disabled 属性可以禁用单个按钮,数据项设置 tip 属性(v3.17.0版本增加此功能)增加按钮悬浮提示功能。

', 'en-US': - '

By setting whether the button group is disabled through disabled , and setting the disabled property of the data item, individual buttons can be disabled.

' + '

You can set whether to disable the button group through disabled. You can set the disabled attribute to disable a single button. You can set the tip attribute to add the reason for disabling the button.

' }, codeFiles: ['disabled.vue'] }, diff --git a/examples/sites/demos/pc/app/calendar-view/set-working-day-composition-api.vue b/examples/sites/demos/pc/app/calendar-view/set-working-day-composition-api.vue index fc4c70368..9ca8cda40 100644 --- a/examples/sites/demos/pc/app/calendar-view/set-working-day-composition-api.vue +++ b/examples/sites/demos/pc/app/calendar-view/set-working-day-composition-api.vue @@ -39,10 +39,30 @@ const setDays = (type) => { return } map[type].value.push(...selectedDate.value) + + selectedDate.value.forEach((date) => { + if (type === 'workingDays') { + removeFromArray(offDays.value, date) + removeFromArray(holidays.value, date) + } else if (type === 'offDays') { + removeFromArray(holidays.value, date) + removeFromArray(workingDays.value, date) + } else { + removeFromArray(offDays.value, date) + removeFromArray(workingDays.value, date) + } + }) selectedDates.value = [] selectedDate.value = [] } +const removeFromArray = (array, item) => { + const index = array.indexOf(item) + if (index !== -1) { + array.splice(index, 1) + } +} + const setDayBgColor = (date) => { if (workingDays.value.includes(date)) { return 'blue' diff --git a/examples/sites/demos/pc/app/calendar-view/set-working-day.vue b/examples/sites/demos/pc/app/calendar-view/set-working-day.vue index 6ce20f095..33fb4fbcf 100644 --- a/examples/sites/demos/pc/app/calendar-view/set-working-day.vue +++ b/examples/sites/demos/pc/app/calendar-view/set-working-day.vue @@ -41,9 +41,29 @@ export default { return } this[type].push(...this.selectedDate) + + this.selectedDate.forEach((date) => { + if (type === 'workingDays') { + this.removeFromArray(this.offDays, date) + this.removeFromArray(this.holidays, date) + } else if (type === 'offDays') { + this.removeFromArray(this.holidays, date) + this.removeFromArray(this.workingDays, date) + } else { + this.removeFromArray(this.offDays, date) + this.removeFromArray(this.workingDays, date) + } + }) this.selectedDates = [] this.selectedDate = [] }, + removeFromArray(array, item) { + const index = array.indexOf(item) + if (index !== -1) { + array.splice(index, 1) + } + }, + setDayBgColor(date) { if (this.workingDays.includes(date)) { return 'blue' diff --git a/examples/sites/demos/pc/app/calendar/dynamic-add-schedule.spec.ts b/examples/sites/demos/pc/app/calendar/dynamic-add-schedule.spec.ts index f41c5abbe..65336c8f8 100644 --- a/examples/sites/demos/pc/app/calendar/dynamic-add-schedule.spec.ts +++ b/examples/sites/demos/pc/app/calendar/dynamic-add-schedule.spec.ts @@ -3,24 +3,11 @@ import { test, expect } from '@playwright/test' test('添加日程事件', async ({ page }) => { page.on('pageerror', (exception) => expect(exception).toBeNull()) await page.goto('calendar#dynamic-add-schedule') + const selectedDay4 = page.getByText('通知事项通知事项A', { exact: true }) const dayFun4 = page.locator('.tiny-calendar__tip-content').filter({ hasText: '请注意该通知事项A' }) - const selectedDay13 = page.getByRole('listitem').filter({ hasText: '这是一条警告' }) - const dayFun13 = page.locator('.tiny-calendar__tip-content').filter({ hasText: '这是一条警告消息这是一条警告' }) - - const selectedDay14 = page.getByRole('listitem').filter({ hasText: '这是一条错误' }) - const datFun14 = page.locator('.tiny-calendar__tip-content').filter({ hasText: '这是一条错误,还有错误' }) - await selectedDay4.hover() await page.waitForTimeout(200) await expect(dayFun4).toBeVisible() - - await selectedDay13.hover() - await page.waitForTimeout(200) - await expect(dayFun13).toBeVisible() - - await selectedDay14.hover() - await page.waitForTimeout(200) - await expect(datFun14).toBeVisible() }) diff --git a/examples/sites/demos/pc/app/card/card-select-composition-api.vue b/examples/sites/demos/pc/app/card/card-select-composition-api.vue new file mode 100644 index 000000000..bc933e11b --- /dev/null +++ b/examples/sites/demos/pc/app/card/card-select-composition-api.vue @@ -0,0 +1,165 @@ + + + + + + + diff --git a/examples/sites/demos/pc/app/card/card-select.vue b/examples/sites/demos/pc/app/card/card-select.vue new file mode 100644 index 000000000..c28b0776f --- /dev/null +++ b/examples/sites/demos/pc/app/card/card-select.vue @@ -0,0 +1,175 @@ + + + + + + + diff --git a/examples/sites/demos/pc/app/card/check-mode-composition-api.vue b/examples/sites/demos/pc/app/card/check-mode-composition-api.vue new file mode 100644 index 000000000..2f2d8e83b --- /dev/null +++ b/examples/sites/demos/pc/app/card/check-mode-composition-api.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/examples/sites/demos/pc/app/card/check-mode.vue b/examples/sites/demos/pc/app/card/check-mode.vue new file mode 100644 index 000000000..1cd5eacbf --- /dev/null +++ b/examples/sites/demos/pc/app/card/check-mode.vue @@ -0,0 +1,111 @@ + + + + + diff --git a/examples/sites/demos/pc/app/card/custom-class-composition-api.vue b/examples/sites/demos/pc/app/card/custom-class-composition-api.vue index 13169b8fa..b39215682 100644 --- a/examples/sites/demos/pc/app/card/custom-class-composition-api.vue +++ b/examples/sites/demos/pc/app/card/custom-class-composition-api.vue @@ -1,6 +1,6 @@