@qxs-bns/components 0.0.90 → 0.0.91
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -15
- package/es/base/define.mjs +2 -0
- package/es/base/define.mjs.map +1 -0
- package/es/base/uid.mjs +2 -0
- package/es/base/uid.mjs.map +1 -0
- package/es/data-chart.mjs +142 -0
- package/es/data-chart.mjs.map +1 -0
- package/es/editor/blocksuite-editor.mjs +1115 -0
- package/es/editor/blocksuite-editor.mjs.map +1 -0
- package/es/editor/content-format.mjs +2 -0
- package/es/editor/content-format.mjs.map +1 -0
- package/es/editor/index.mjs +2 -0
- package/es/editor/index.mjs.map +1 -0
- package/es/editor/toolbar.mjs +2 -0
- package/es/editor/toolbar.mjs.map +1 -0
- package/es/entry-data-chart.mjs +2 -0
- package/es/entry-data-chart.mjs.map +1 -0
- package/es/entry-editor.mjs +2 -0
- package/es/entry-editor.mjs.map +1 -0
- package/es/entry-file-upload.mjs +2 -0
- package/es/entry-file-upload.mjs.map +1 -0
- package/es/entry-fixed-action-bar.mjs +2 -0
- package/es/entry-fixed-action-bar.mjs.map +1 -0
- package/es/entry-icon.mjs +2 -0
- package/es/entry-icon.mjs.map +1 -0
- package/es/entry-image-upload.mjs +2 -0
- package/es/entry-image-upload.mjs.map +1 -0
- package/es/entry-photo-crop-tool.mjs +2 -0
- package/es/entry-photo-crop-tool.mjs.map +1 -0
- package/es/entry-subject.mjs +2 -0
- package/es/entry-subject.mjs.map +1 -0
- package/es/file-upload.mjs +157 -0
- package/es/file-upload.mjs.map +1 -0
- package/es/fixed-action-bar.mjs +39 -0
- package/es/fixed-action-bar.mjs.map +1 -0
- package/es/icon.mjs +20 -0
- package/es/icon.mjs.map +1 -0
- package/es/image-upload.mjs +333 -0
- package/es/image-upload.mjs.map +1 -0
- package/es/index.mjs +1 -1
- package/es/index.mjs.map +1 -1
- package/es/node_modules/.pnpm/marked@17.0.6/node_modules/marked/lib/marked.esm.mjs +2 -0
- package/es/node_modules/.pnpm/marked@17.0.6/node_modules/marked/lib/marked.esm.mjs.map +1 -0
- package/es/node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.mjs +2 -0
- package/es/node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.mjs.map +1 -0
- package/es/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.es.mjs +2 -0
- package/es/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.es.mjs.map +1 -0
- package/es/photo-crop-tool.mjs +147 -0
- package/es/photo-crop-tool.mjs.map +1 -0
- package/es/src/alert/src/alert.mjs.map +1 -1
- package/es/src/components.mjs +1 -1
- package/es/src/data-chart/index.mjs +1 -1
- package/es/src/data-chart/index.mjs.map +1 -1
- package/es/src/dialog/src/dialog.mjs +1 -1
- package/es/src/dialog/src/dialog.mjs.map +1 -1
- package/es/src/file-upload/index.mjs +1 -1
- package/es/src/file-upload/index.mjs.map +1 -1
- package/es/src/image-upload/index.mjs +1 -1
- package/es/src/image-upload/index.mjs.map +1 -1
- package/es/src/message/src/message.mjs +1 -1
- package/es/src/message/src/message.mjs.map +1 -1
- package/es/src/photo-crop-tool/index.mjs +1 -1
- package/es/src/photo-crop-tool/index.mjs.map +1 -1
- package/es/src/ui/button/index.mjs.map +1 -1
- package/es/src/ui/checkbox/index.mjs.map +1 -1
- package/es/src/ui/dialog/index.mjs.map +1 -1
- package/es/src/ui/input/index.mjs +1 -1
- package/es/src/ui/input/index.mjs.map +1 -1
- package/es/src/ui/input-number/index.mjs.map +1 -1
- package/es/src/ui/layout/index.mjs.map +1 -1
- package/es/src/ui/popover/index.mjs.map +1 -1
- package/es/src/ui/radio/index.mjs.map +1 -1
- package/es/src/ui/scrollbar/index.mjs.map +1 -1
- package/es/src/ui/select/index.mjs +1 -1
- package/es/src/ui/select/index.mjs.map +1 -1
- package/es/src/ui/table/index.mjs.map +1 -1
- package/es/src/ui/tag/index.mjs.map +1 -1
- package/es/src/wc-bridge.mjs +2 -0
- package/es/src/wc-bridge.mjs.map +1 -0
- package/es/subject/action.mjs +171 -0
- package/es/subject/action.mjs.map +1 -0
- package/es/subject/blank-fill.mjs +385 -0
- package/es/subject/blank-fill.mjs.map +1 -0
- package/es/subject/draft.mjs +2 -0
- package/es/subject/draft.mjs.map +1 -0
- package/es/subject/layout.mjs +21 -0
- package/es/subject/layout.mjs.map +1 -0
- package/es/subject/page-end.mjs +28 -0
- package/es/subject/page-end.mjs.map +1 -0
- package/es/subject/pagination.mjs +2 -0
- package/es/subject/pagination.mjs.map +1 -0
- package/es/subject/runtime.mjs +2 -0
- package/es/subject/runtime.mjs.map +1 -0
- package/es/subject/scale.mjs +267 -0
- package/es/subject/scale.mjs.map +1 -0
- package/es/subject/shared-methods.mjs +2 -0
- package/es/subject/shared-methods.mjs.map +1 -0
- package/es/subject/shared-styles.mjs +75 -0
- package/es/subject/shared-styles.mjs.map +1 -0
- package/es/subject/single.mjs +600 -0
- package/es/subject/single.mjs.map +1 -0
- package/es/subject/sort-controller.mjs +2 -0
- package/es/subject/sort-controller.mjs.map +1 -0
- package/es/subject/sortable.mjs +30 -0
- package/es/subject/sortable.mjs.map +1 -0
- package/es/subject/sorting-card.mjs +52 -0
- package/es/subject/sorting-card.mjs.map +1 -0
- package/es/subject/text-fill.mjs +395 -0
- package/es/subject/text-fill.mjs.map +1 -0
- package/es/subject/title-prefix.mjs +2 -0
- package/es/subject/title-prefix.mjs.map +1 -0
- package/es/subject/types.mjs +2 -0
- package/es/subject/types.mjs.map +1 -0
- package/lib/base/define.cjs +2 -0
- package/lib/base/define.cjs.map +1 -0
- package/lib/base/uid.cjs +2 -0
- package/lib/base/uid.cjs.map +1 -0
- package/lib/data-chart.cjs +142 -0
- package/lib/data-chart.cjs.map +1 -0
- package/lib/editor/blocksuite-editor.cjs +1115 -0
- package/lib/editor/blocksuite-editor.cjs.map +1 -0
- package/lib/editor/content-format.cjs +2 -0
- package/lib/editor/content-format.cjs.map +1 -0
- package/lib/editor/index.cjs +2 -0
- package/lib/editor/index.cjs.map +1 -0
- package/lib/editor/toolbar.cjs +2 -0
- package/lib/editor/toolbar.cjs.map +1 -0
- package/lib/entry-data-chart.cjs +2 -0
- package/lib/entry-data-chart.cjs.map +1 -0
- package/lib/entry-editor.cjs +2 -0
- package/lib/entry-editor.cjs.map +1 -0
- package/lib/entry-file-upload.cjs +2 -0
- package/lib/entry-file-upload.cjs.map +1 -0
- package/lib/entry-fixed-action-bar.cjs +2 -0
- package/lib/entry-fixed-action-bar.cjs.map +1 -0
- package/lib/entry-icon.cjs +2 -0
- package/lib/entry-icon.cjs.map +1 -0
- package/lib/entry-image-upload.cjs +2 -0
- package/lib/entry-image-upload.cjs.map +1 -0
- package/lib/entry-photo-crop-tool.cjs +2 -0
- package/lib/entry-photo-crop-tool.cjs.map +1 -0
- package/lib/entry-subject.cjs +2 -0
- package/lib/entry-subject.cjs.map +1 -0
- package/lib/file-upload.cjs +157 -0
- package/lib/file-upload.cjs.map +1 -0
- package/lib/fixed-action-bar.cjs +39 -0
- package/lib/fixed-action-bar.cjs.map +1 -0
- package/lib/icon.cjs +20 -0
- package/lib/icon.cjs.map +1 -0
- package/lib/image-upload.cjs +333 -0
- package/lib/image-upload.cjs.map +1 -0
- package/lib/index.cjs +1 -1
- package/lib/index.cjs.map +1 -1
- package/lib/node_modules/.pnpm/marked@17.0.6/node_modules/marked/lib/marked.esm.cjs +2 -0
- package/lib/node_modules/.pnpm/marked@17.0.6/node_modules/marked/lib/marked.esm.cjs.map +1 -0
- package/lib/node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.cjs +2 -0
- package/lib/node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.cjs.map +1 -0
- package/lib/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.es.cjs +2 -0
- package/lib/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.es.cjs.map +1 -0
- package/lib/photo-crop-tool.cjs +147 -0
- package/lib/photo-crop-tool.cjs.map +1 -0
- package/lib/src/alert/src/alert.cjs.map +1 -1
- package/lib/src/components.cjs +1 -1
- package/lib/src/data-chart/index.cjs +1 -1
- package/lib/src/data-chart/index.cjs.map +1 -1
- package/lib/src/dialog/src/dialog.cjs +1 -1
- package/lib/src/dialog/src/dialog.cjs.map +1 -1
- package/lib/src/file-upload/index.cjs +1 -1
- package/lib/src/file-upload/index.cjs.map +1 -1
- package/lib/src/image-upload/index.cjs +1 -1
- package/lib/src/image-upload/index.cjs.map +1 -1
- package/lib/src/message/src/message.cjs +1 -1
- package/lib/src/message/src/message.cjs.map +1 -1
- package/lib/src/photo-crop-tool/index.cjs +1 -1
- package/lib/src/photo-crop-tool/index.cjs.map +1 -1
- package/lib/src/ui/button/index.cjs.map +1 -1
- package/lib/src/ui/checkbox/index.cjs.map +1 -1
- package/lib/src/ui/dialog/index.cjs.map +1 -1
- package/lib/src/ui/input/index.cjs +1 -1
- package/lib/src/ui/input/index.cjs.map +1 -1
- package/lib/src/ui/input-number/index.cjs.map +1 -1
- package/lib/src/ui/layout/index.cjs.map +1 -1
- package/lib/src/ui/popover/index.cjs.map +1 -1
- package/lib/src/ui/radio/index.cjs.map +1 -1
- package/lib/src/ui/scrollbar/index.cjs.map +1 -1
- package/lib/src/ui/select/index.cjs +1 -1
- package/lib/src/ui/select/index.cjs.map +1 -1
- package/lib/src/ui/table/index.cjs.map +1 -1
- package/lib/src/ui/tag/index.cjs.map +1 -1
- package/lib/src/wc-bridge.cjs +2 -0
- package/lib/src/wc-bridge.cjs.map +1 -0
- package/lib/subject/action.cjs +171 -0
- package/lib/subject/action.cjs.map +1 -0
- package/lib/subject/blank-fill.cjs +385 -0
- package/lib/subject/blank-fill.cjs.map +1 -0
- package/lib/subject/draft.cjs +2 -0
- package/lib/subject/draft.cjs.map +1 -0
- package/lib/subject/layout.cjs +21 -0
- package/lib/subject/layout.cjs.map +1 -0
- package/lib/subject/page-end.cjs +28 -0
- package/lib/subject/page-end.cjs.map +1 -0
- package/lib/subject/pagination.cjs +2 -0
- package/lib/subject/pagination.cjs.map +1 -0
- package/lib/subject/runtime.cjs +2 -0
- package/lib/subject/runtime.cjs.map +1 -0
- package/lib/subject/scale.cjs +267 -0
- package/lib/subject/scale.cjs.map +1 -0
- package/lib/subject/shared-methods.cjs +2 -0
- package/lib/subject/shared-methods.cjs.map +1 -0
- package/lib/subject/shared-styles.cjs +75 -0
- package/lib/subject/shared-styles.cjs.map +1 -0
- package/lib/subject/single.cjs +600 -0
- package/lib/subject/single.cjs.map +1 -0
- package/lib/subject/sort-controller.cjs +2 -0
- package/lib/subject/sort-controller.cjs.map +1 -0
- package/lib/subject/sortable.cjs +30 -0
- package/lib/subject/sortable.cjs.map +1 -0
- package/lib/subject/sorting-card.cjs +52 -0
- package/lib/subject/sorting-card.cjs.map +1 -0
- package/lib/subject/text-fill.cjs +395 -0
- package/lib/subject/text-fill.cjs.map +1 -0
- package/lib/subject/title-prefix.cjs +2 -0
- package/lib/subject/title-prefix.cjs.map +1 -0
- package/lib/subject/types.cjs +2 -0
- package/lib/subject/types.cjs.map +1 -0
- package/package.json +94 -32
- package/types/base/define.d.ts +1 -0
- package/types/base/uid.d.ts +1 -0
- package/types/data-chart.d.ts +65 -0
- package/types/editor/blocksuite-editor.d.ts +191 -0
- package/types/editor/content-format.d.ts +4 -0
- package/types/editor/index.d.ts +4 -0
- package/types/editor/toolbar.d.ts +6 -0
- package/types/editor/types.d.ts +42 -0
- package/types/entry-data-chart.d.ts +1 -0
- package/types/entry-editor.d.ts +2 -0
- package/types/entry-file-upload.d.ts +1 -0
- package/types/entry-fixed-action-bar.d.ts +1 -0
- package/types/entry-icon.d.ts +2 -0
- package/types/entry-image-upload.d.ts +1 -0
- package/types/entry-photo-crop-tool.d.ts +1 -0
- package/types/entry-subject.d.ts +2 -0
- package/types/file-upload.d.ts +48 -0
- package/types/fixed-action-bar.d.ts +25 -0
- package/types/icon.d.ts +30 -0
- package/types/image-upload.d.ts +68 -0
- package/types/index.d.ts +21 -6
- package/types/photo-crop-tool.d.ts +43 -0
- package/types/src/components.d.ts +2 -7
- package/types/src/components.d.ts.map +1 -1
- package/types/src/data-chart/index.d.ts +11 -27
- package/types/src/data-chart/index.d.ts.map +1 -1
- package/types/src/dialog/src/dialog.d.ts.map +1 -1
- package/types/src/file-upload/index.d.ts +10 -17
- package/types/src/file-upload/index.d.ts.map +1 -1
- package/types/src/icon/index.d.ts +1 -1
- package/types/src/icon/src/icon.d.ts +1 -1
- package/types/src/image-upload/index.d.ts +10 -25
- package/types/src/image-upload/index.d.ts.map +1 -1
- package/types/src/message/index.d.ts +2 -2
- package/types/src/message/index.d.ts.map +1 -1
- package/types/src/message/src/message.d.ts.map +1 -1
- package/types/src/photo-crop-tool/index.d.ts +9 -52
- package/types/src/photo-crop-tool/index.d.ts.map +1 -1
- package/types/src/subject-action/src/subject-action.vue.d.ts.map +1 -1
- package/types/src/subject-list/src/components/SubjectPageEnd.vue.d.ts +2 -2
- package/types/src/subject-list/src/components/subject-blank-fill.vue.d.ts +2 -2
- package/types/src/subject-list/src/components/subject-scale.vue.d.ts +2 -2
- package/types/src/subject-list/src/components/subject-scale.vue.d.ts.map +1 -1
- package/types/src/subject-list/src/components/subject-single.vue.d.ts +2 -2
- package/types/src/subject-list/src/components/subject-single.vue.d.ts.map +1 -1
- package/types/src/subject-list/src/components/subject-text-fill.vue.d.ts +2 -2
- package/types/src/subject-list/src/subject-list.vue.d.ts.map +1 -1
- package/types/src/subject-type/src/subject-type.vue.d.ts.map +1 -1
- package/types/src/ui/button/index.d.ts +4 -4
- package/types/src/ui/checkbox/index.d.ts +2 -2
- package/types/src/ui/checkbox/index.d.ts.map +1 -1
- package/types/src/ui/dialog/index.d.ts +2 -2
- package/types/src/ui/dialog/index.d.ts.map +1 -1
- package/types/src/ui/index.d.ts +9 -9
- package/types/src/ui/index.d.ts.map +1 -1
- package/types/src/ui/input/index.d.ts +4 -4
- package/types/src/ui/input-number/index.d.ts +4 -4
- package/types/src/ui/input-number/index.d.ts.map +1 -1
- package/types/src/ui/layout/index.d.ts +6 -6
- package/types/src/ui/layout/index.d.ts.map +1 -1
- package/types/src/ui/popover/index.d.ts +4 -4
- package/types/src/ui/popover/index.d.ts.map +1 -1
- package/types/src/ui/radio/index.d.ts.map +1 -1
- package/types/src/ui/scrollbar/index.d.ts.map +1 -1
- package/types/src/ui/select/index.d.ts +4 -4
- package/types/src/ui/select/index.d.ts.map +1 -1
- package/types/src/ui/table/index.d.ts +3 -3
- package/types/src/ui/table/index.d.ts.map +1 -1
- package/types/src/ui/tag/index.d.ts +2 -2
- package/types/src/ui/tag/index.d.ts.map +1 -1
- package/types/src/wc-bridge.d.ts +23 -0
- package/types/src/wc-bridge.d.ts.map +1 -0
- package/types/subject/action.d.ts +37 -0
- package/types/subject/blank-fill.d.ts +79 -0
- package/types/subject/draft.d.ts +63 -0
- package/types/subject/index.d.ts +13 -0
- package/types/subject/layout.d.ts +7 -0
- package/types/subject/page-end.d.ts +16 -0
- package/types/subject/pagination.d.ts +23 -0
- package/types/subject/runtime.d.ts +12 -0
- package/types/subject/scale.d.ts +55 -0
- package/types/subject/shared-methods.d.ts +8 -0
- package/types/subject/shared-styles.d.ts +5 -0
- package/types/subject/single.d.ts +288 -0
- package/types/subject/sort-controller.d.ts +3 -0
- package/types/subject/sortable.d.ts +19 -0
- package/types/subject/sorting-card.d.ts +2 -0
- package/types/subject/text-fill.d.ts +88 -0
- package/types/subject/title-prefix.d.ts +2 -0
- package/types/subject/types.d.ts +12 -0
- package/types/tsconfig.tsbuildinfo +1 -1
- package/es/_virtual/_commonjsHelpers.mjs +0 -2
- package/es/_virtual/_commonjsHelpers.mjs.map +0 -1
- package/es/_virtual/_plugin-vue_export-helper.mjs +0 -2
- package/es/_virtual/_plugin-vue_export-helper.mjs.map +0 -1
- package/es/_virtual/sortable.esm.mjs +0 -2
- package/es/_virtual/sortable.esm.mjs.map +0 -1
- package/es/_virtual/vuedraggable.umd.mjs +0 -2
- package/es/_virtual/vuedraggable.umd.mjs.map +0 -1
- package/es/_virtual/vuedraggable.umd2.mjs +0 -2
- package/es/_virtual/vuedraggable.umd2.mjs.map +0 -1
- package/es/node_modules/.pnpm/sortablejs@1.14.0/node_modules/sortablejs/modular/sortable.esm.mjs +0 -8
- package/es/node_modules/.pnpm/sortablejs@1.14.0/node_modules/sortablejs/modular/sortable.esm.mjs.map +0 -1
- package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs +0 -2
- package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs.map +0 -1
- package/es/node_modules/.pnpm/vuedraggable@4.1.0_vue@3.5.18_typescript@5.9.2_/node_modules/vuedraggable/dist/vuedraggable.umd.mjs +0 -2
- package/es/node_modules/.pnpm/vuedraggable@4.1.0_vue@3.5.18_typescript@5.9.2_/node_modules/vuedraggable/dist/vuedraggable.umd.mjs.map +0 -1
- package/es/src/data-chart/src/analyze.mjs +0 -2
- package/es/src/data-chart/src/analyze.mjs.map +0 -1
- package/es/src/data-chart/src/components/area.vue.mjs +0 -2
- package/es/src/data-chart/src/components/area.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/area.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/area.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/components/area.vue3.mjs +0 -2
- package/es/src/data-chart/src/components/area.vue3.mjs.map +0 -1
- package/es/src/data-chart/src/components/bar.vue.mjs +0 -2
- package/es/src/data-chart/src/components/bar.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/bar.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/bar.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/components/bar.vue3.mjs +0 -2
- package/es/src/data-chart/src/components/bar.vue3.mjs.map +0 -1
- package/es/src/data-chart/src/components/card.vue.mjs +0 -2
- package/es/src/data-chart/src/components/card.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/card.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/card.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/components/card.vue3.mjs +0 -2
- package/es/src/data-chart/src/components/card.vue3.mjs.map +0 -1
- package/es/src/data-chart/src/components/data-chart-card-bg-left.svg.mjs +0 -2
- package/es/src/data-chart/src/components/data-chart-card-bg-left.svg.mjs.map +0 -1
- package/es/src/data-chart/src/components/data-chart-card-bg-right.svg.mjs +0 -2
- package/es/src/data-chart/src/components/data-chart-card-bg-right.svg.mjs.map +0 -1
- package/es/src/data-chart/src/components/empty.svg.mjs +0 -2
- package/es/src/data-chart/src/components/empty.svg.mjs.map +0 -1
- package/es/src/data-chart/src/components/empty.vue.mjs +0 -2
- package/es/src/data-chart/src/components/empty.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/empty.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/empty.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/components/funnel.vue.mjs +0 -2
- package/es/src/data-chart/src/components/funnel.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/funnel.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/funnel.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/components/funnel.vue3.mjs +0 -2
- package/es/src/data-chart/src/components/funnel.vue3.mjs.map +0 -1
- package/es/src/data-chart/src/components/line.vue.mjs +0 -2
- package/es/src/data-chart/src/components/line.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/line.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/line.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/components/line.vue3.mjs +0 -2
- package/es/src/data-chart/src/components/line.vue3.mjs.map +0 -1
- package/es/src/data-chart/src/components/pie.vue.mjs +0 -2
- package/es/src/data-chart/src/components/pie.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/pie.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/pie.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/components/pie.vue3.mjs +0 -2
- package/es/src/data-chart/src/components/pie.vue3.mjs.map +0 -1
- package/es/src/data-chart/src/components/radar.vue.mjs +0 -2
- package/es/src/data-chart/src/components/radar.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/radar.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/radar.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/components/radar.vue3.mjs +0 -2
- package/es/src/data-chart/src/components/radar.vue3.mjs.map +0 -1
- package/es/src/data-chart/src/components/scatter-simple.vue.mjs +0 -2
- package/es/src/data-chart/src/components/scatter-simple.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/scatter-simple.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/scatter-simple.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/components/scatter-simple.vue3.mjs +0 -2
- package/es/src/data-chart/src/components/scatter-simple.vue3.mjs.map +0 -1
- package/es/src/data-chart/src/components/scatter.vue.mjs +0 -2
- package/es/src/data-chart/src/components/scatter.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/scatter.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/scatter.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/components/scatter.vue3.mjs +0 -2
- package/es/src/data-chart/src/components/scatter.vue3.mjs.map +0 -1
- package/es/src/data-chart/src/components/table.vue.mjs +0 -2
- package/es/src/data-chart/src/components/table.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/table.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/table.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/data-chart.vue.mjs +0 -2
- package/es/src/data-chart/src/data-chart.vue.mjs.map +0 -1
- package/es/src/data-chart/src/data-chart.vue2.mjs +0 -2
- package/es/src/data-chart/src/data-chart.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/utils/config.mjs +0 -2
- package/es/src/data-chart/src/utils/config.mjs.map +0 -1
- package/es/src/data-chart/src/utils/injectionKeys.mjs +0 -2
- package/es/src/data-chart/src/utils/injectionKeys.mjs.map +0 -1
- package/es/src/data-chart/src/utils/mapData.mjs +0 -2
- package/es/src/data-chart/src/utils/mapData.mjs.map +0 -1
- package/es/src/data-chart/src/utils/safe-eval.mjs +0 -2
- package/es/src/data-chart/src/utils/safe-eval.mjs.map +0 -1
- package/es/src/data-chart/src/utils/types.mjs +0 -2
- package/es/src/data-chart/src/utils/types.mjs.map +0 -1
- package/es/src/data-chart/src/utils/useCharts.mjs +0 -2
- package/es/src/data-chart/src/utils/useCharts.mjs.map +0 -1
- package/es/src/file-upload/src/file-upload.vue.mjs +0 -2
- package/es/src/file-upload/src/file-upload.vue.mjs.map +0 -1
- package/es/src/file-upload/src/file-upload.vue2.mjs +0 -2
- package/es/src/file-upload/src/file-upload.vue2.mjs.map +0 -1
- package/es/src/file-upload/src/file-upload.vue3.mjs +0 -2
- package/es/src/file-upload/src/file-upload.vue3.mjs.map +0 -1
- package/es/src/fixed-action-bar/index.mjs +0 -2
- package/es/src/fixed-action-bar/index.mjs.map +0 -1
- package/es/src/fixed-action-bar/src/fixed-action-bar.vue.mjs +0 -2
- package/es/src/fixed-action-bar/src/fixed-action-bar.vue.mjs.map +0 -1
- package/es/src/fixed-action-bar/src/fixed-action-bar.vue2.mjs +0 -2
- package/es/src/fixed-action-bar/src/fixed-action-bar.vue2.mjs.map +0 -1
- package/es/src/image-upload/src/image-upload.vue.mjs +0 -2
- package/es/src/image-upload/src/image-upload.vue.mjs.map +0 -1
- package/es/src/image-upload/src/image-upload.vue2.mjs +0 -2
- package/es/src/image-upload/src/image-upload.vue2.mjs.map +0 -1
- package/es/src/image-upload/src/image-upload.vue3.mjs +0 -2
- package/es/src/image-upload/src/image-upload.vue3.mjs.map +0 -1
- package/es/src/photo-crop-tool/src/composables.mjs +0 -2
- package/es/src/photo-crop-tool/src/composables.mjs.map +0 -1
- package/es/src/photo-crop-tool/src/photo-crop-tool.vue.mjs +0 -2
- package/es/src/photo-crop-tool/src/photo-crop-tool.vue.mjs.map +0 -1
- package/es/src/photo-crop-tool/src/photo-crop-tool.vue2.mjs +0 -2
- package/es/src/photo-crop-tool/src/photo-crop-tool.vue2.mjs.map +0 -1
- package/es/src/subject-action/index.mjs +0 -2
- package/es/src/subject-action/index.mjs.map +0 -1
- package/es/src/subject-action/src/subject-action.vue.mjs +0 -2
- package/es/src/subject-action/src/subject-action.vue.mjs.map +0 -1
- package/es/src/subject-action/src/subject-action.vue2.mjs +0 -2
- package/es/src/subject-action/src/subject-action.vue2.mjs.map +0 -1
- package/es/src/subject-layout/index.mjs +0 -2
- package/es/src/subject-layout/index.mjs.map +0 -1
- package/es/src/subject-layout/src/subject-layout.vue.mjs +0 -2
- package/es/src/subject-layout/src/subject-layout.vue.mjs.map +0 -1
- package/es/src/subject-layout/src/subject-layout.vue2.mjs +0 -2
- package/es/src/subject-layout/src/subject-layout.vue2.mjs.map +0 -1
- package/es/src/subject-list/index.mjs +0 -2
- package/es/src/subject-list/index.mjs.map +0 -1
- package/es/src/subject-list/src/components/SubjectPageEnd.vue.mjs +0 -2
- package/es/src/subject-list/src/components/SubjectPageEnd.vue.mjs.map +0 -1
- package/es/src/subject-list/src/components/SubjectPageEnd.vue2.mjs +0 -2
- package/es/src/subject-list/src/components/SubjectPageEnd.vue2.mjs.map +0 -1
- package/es/src/subject-list/src/components/SubjectRichText.vue.mjs +0 -2
- package/es/src/subject-list/src/components/SubjectRichText.vue.mjs.map +0 -1
- package/es/src/subject-list/src/components/SubjectRichText.vue2.mjs +0 -2
- package/es/src/subject-list/src/components/SubjectRichText.vue2.mjs.map +0 -1
- package/es/src/subject-list/src/components/subject-blank-fill.vue.mjs +0 -2
- package/es/src/subject-list/src/components/subject-blank-fill.vue.mjs.map +0 -1
- package/es/src/subject-list/src/components/subject-blank-fill.vue2.mjs +0 -2
- package/es/src/subject-list/src/components/subject-blank-fill.vue2.mjs.map +0 -1
- package/es/src/subject-list/src/components/subject-scale.vue.mjs +0 -2
- package/es/src/subject-list/src/components/subject-scale.vue.mjs.map +0 -1
- package/es/src/subject-list/src/components/subject-scale.vue2.mjs +0 -2
- package/es/src/subject-list/src/components/subject-scale.vue2.mjs.map +0 -1
- package/es/src/subject-list/src/components/subject-single.vue.mjs +0 -2
- package/es/src/subject-list/src/components/subject-single.vue.mjs.map +0 -1
- package/es/src/subject-list/src/components/subject-single.vue2.mjs +0 -2
- package/es/src/subject-list/src/components/subject-single.vue2.mjs.map +0 -1
- package/es/src/subject-list/src/components/subject-text-fill.vue.mjs +0 -2
- package/es/src/subject-list/src/components/subject-text-fill.vue.mjs.map +0 -1
- package/es/src/subject-list/src/components/subject-text-fill.vue2.mjs +0 -2
- package/es/src/subject-list/src/components/subject-text-fill.vue2.mjs.map +0 -1
- package/es/src/subject-list/src/subject-list.vue.mjs +0 -2
- package/es/src/subject-list/src/subject-list.vue.mjs.map +0 -1
- package/es/src/subject-list/src/subject-list.vue2.mjs +0 -2
- package/es/src/subject-list/src/subject-list.vue2.mjs.map +0 -1
- package/es/src/subject-type/index.mjs +0 -2
- package/es/src/subject-type/index.mjs.map +0 -1
- package/es/src/subject-type/src/subject-type.vue.mjs +0 -2
- package/es/src/subject-type/src/subject-type.vue.mjs.map +0 -1
- package/es/src/subject-type/src/subject-type.vue2.mjs +0 -2
- package/es/src/subject-type/src/subject-type.vue2.mjs.map +0 -1
- package/lib/_virtual/_commonjsHelpers.cjs +0 -2
- package/lib/_virtual/_commonjsHelpers.cjs.map +0 -1
- package/lib/_virtual/_plugin-vue_export-helper.cjs +0 -2
- package/lib/_virtual/_plugin-vue_export-helper.cjs.map +0 -1
- package/lib/_virtual/sortable.esm.cjs +0 -2
- package/lib/_virtual/sortable.esm.cjs.map +0 -1
- package/lib/_virtual/vuedraggable.umd.cjs +0 -2
- package/lib/_virtual/vuedraggable.umd.cjs.map +0 -1
- package/lib/_virtual/vuedraggable.umd2.cjs +0 -2
- package/lib/_virtual/vuedraggable.umd2.cjs.map +0 -1
- package/lib/node_modules/.pnpm/sortablejs@1.14.0/node_modules/sortablejs/modular/sortable.esm.cjs +0 -9
- package/lib/node_modules/.pnpm/sortablejs@1.14.0/node_modules/sortablejs/modular/sortable.esm.cjs.map +0 -1
- package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.cjs +0 -2
- package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.cjs.map +0 -1
- package/lib/node_modules/.pnpm/vuedraggable@4.1.0_vue@3.5.18_typescript@5.9.2_/node_modules/vuedraggable/dist/vuedraggable.umd.cjs +0 -2
- package/lib/node_modules/.pnpm/vuedraggable@4.1.0_vue@3.5.18_typescript@5.9.2_/node_modules/vuedraggable/dist/vuedraggable.umd.cjs.map +0 -1
- package/lib/src/data-chart/src/analyze.cjs +0 -2
- package/lib/src/data-chart/src/analyze.cjs.map +0 -1
- package/lib/src/data-chart/src/components/area.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/area.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/area.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/area.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/components/area.vue3.cjs +0 -2
- package/lib/src/data-chart/src/components/area.vue3.cjs.map +0 -1
- package/lib/src/data-chart/src/components/bar.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/bar.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/bar.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/bar.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/components/bar.vue3.cjs +0 -2
- package/lib/src/data-chart/src/components/bar.vue3.cjs.map +0 -1
- package/lib/src/data-chart/src/components/card.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/card.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/card.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/card.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/components/card.vue3.cjs +0 -2
- package/lib/src/data-chart/src/components/card.vue3.cjs.map +0 -1
- package/lib/src/data-chart/src/components/data-chart-card-bg-left.svg.cjs +0 -2
- package/lib/src/data-chart/src/components/data-chart-card-bg-left.svg.cjs.map +0 -1
- package/lib/src/data-chart/src/components/data-chart-card-bg-right.svg.cjs +0 -2
- package/lib/src/data-chart/src/components/data-chart-card-bg-right.svg.cjs.map +0 -1
- package/lib/src/data-chart/src/components/empty.svg.cjs +0 -2
- package/lib/src/data-chart/src/components/empty.svg.cjs.map +0 -1
- package/lib/src/data-chart/src/components/empty.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/empty.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/empty.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/empty.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/components/funnel.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/funnel.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/funnel.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/funnel.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/components/funnel.vue3.cjs +0 -2
- package/lib/src/data-chart/src/components/funnel.vue3.cjs.map +0 -1
- package/lib/src/data-chart/src/components/line.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/line.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/line.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/line.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/components/line.vue3.cjs +0 -2
- package/lib/src/data-chart/src/components/line.vue3.cjs.map +0 -1
- package/lib/src/data-chart/src/components/pie.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/pie.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/pie.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/pie.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/components/pie.vue3.cjs +0 -2
- package/lib/src/data-chart/src/components/pie.vue3.cjs.map +0 -1
- package/lib/src/data-chart/src/components/radar.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/radar.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/radar.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/radar.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/components/radar.vue3.cjs +0 -2
- package/lib/src/data-chart/src/components/radar.vue3.cjs.map +0 -1
- package/lib/src/data-chart/src/components/scatter-simple.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/scatter-simple.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/scatter-simple.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/scatter-simple.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/components/scatter-simple.vue3.cjs +0 -2
- package/lib/src/data-chart/src/components/scatter-simple.vue3.cjs.map +0 -1
- package/lib/src/data-chart/src/components/scatter.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/scatter.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/scatter.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/scatter.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/components/scatter.vue3.cjs +0 -2
- package/lib/src/data-chart/src/components/scatter.vue3.cjs.map +0 -1
- package/lib/src/data-chart/src/components/table.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/table.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/table.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/table.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/data-chart.vue.cjs +0 -2
- package/lib/src/data-chart/src/data-chart.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/data-chart.vue2.cjs +0 -2
- package/lib/src/data-chart/src/data-chart.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/utils/config.cjs +0 -2
- package/lib/src/data-chart/src/utils/config.cjs.map +0 -1
- package/lib/src/data-chart/src/utils/injectionKeys.cjs +0 -2
- package/lib/src/data-chart/src/utils/injectionKeys.cjs.map +0 -1
- package/lib/src/data-chart/src/utils/mapData.cjs +0 -2
- package/lib/src/data-chart/src/utils/mapData.cjs.map +0 -1
- package/lib/src/data-chart/src/utils/safe-eval.cjs +0 -2
- package/lib/src/data-chart/src/utils/safe-eval.cjs.map +0 -1
- package/lib/src/data-chart/src/utils/types.cjs +0 -2
- package/lib/src/data-chart/src/utils/types.cjs.map +0 -1
- package/lib/src/data-chart/src/utils/useCharts.cjs +0 -2
- package/lib/src/data-chart/src/utils/useCharts.cjs.map +0 -1
- package/lib/src/file-upload/src/file-upload.vue.cjs +0 -2
- package/lib/src/file-upload/src/file-upload.vue.cjs.map +0 -1
- package/lib/src/file-upload/src/file-upload.vue2.cjs +0 -2
- package/lib/src/file-upload/src/file-upload.vue2.cjs.map +0 -1
- package/lib/src/file-upload/src/file-upload.vue3.cjs +0 -2
- package/lib/src/file-upload/src/file-upload.vue3.cjs.map +0 -1
- package/lib/src/fixed-action-bar/index.cjs +0 -2
- package/lib/src/fixed-action-bar/index.cjs.map +0 -1
- package/lib/src/fixed-action-bar/src/fixed-action-bar.vue.cjs +0 -2
- package/lib/src/fixed-action-bar/src/fixed-action-bar.vue.cjs.map +0 -1
- package/lib/src/fixed-action-bar/src/fixed-action-bar.vue2.cjs +0 -2
- package/lib/src/fixed-action-bar/src/fixed-action-bar.vue2.cjs.map +0 -1
- package/lib/src/image-upload/src/image-upload.vue.cjs +0 -2
- package/lib/src/image-upload/src/image-upload.vue.cjs.map +0 -1
- package/lib/src/image-upload/src/image-upload.vue2.cjs +0 -2
- package/lib/src/image-upload/src/image-upload.vue2.cjs.map +0 -1
- package/lib/src/image-upload/src/image-upload.vue3.cjs +0 -2
- package/lib/src/image-upload/src/image-upload.vue3.cjs.map +0 -1
- package/lib/src/photo-crop-tool/src/composables.cjs +0 -2
- package/lib/src/photo-crop-tool/src/composables.cjs.map +0 -1
- package/lib/src/photo-crop-tool/src/photo-crop-tool.vue.cjs +0 -2
- package/lib/src/photo-crop-tool/src/photo-crop-tool.vue.cjs.map +0 -1
- package/lib/src/photo-crop-tool/src/photo-crop-tool.vue2.cjs +0 -2
- package/lib/src/photo-crop-tool/src/photo-crop-tool.vue2.cjs.map +0 -1
- package/lib/src/subject-action/index.cjs +0 -2
- package/lib/src/subject-action/index.cjs.map +0 -1
- package/lib/src/subject-action/src/subject-action.vue.cjs +0 -2
- package/lib/src/subject-action/src/subject-action.vue.cjs.map +0 -1
- package/lib/src/subject-action/src/subject-action.vue2.cjs +0 -2
- package/lib/src/subject-action/src/subject-action.vue2.cjs.map +0 -1
- package/lib/src/subject-layout/index.cjs +0 -2
- package/lib/src/subject-layout/index.cjs.map +0 -1
- package/lib/src/subject-layout/src/subject-layout.vue.cjs +0 -2
- package/lib/src/subject-layout/src/subject-layout.vue.cjs.map +0 -1
- package/lib/src/subject-layout/src/subject-layout.vue2.cjs +0 -2
- package/lib/src/subject-layout/src/subject-layout.vue2.cjs.map +0 -1
- package/lib/src/subject-list/index.cjs +0 -2
- package/lib/src/subject-list/index.cjs.map +0 -1
- package/lib/src/subject-list/src/components/SubjectPageEnd.vue.cjs +0 -2
- package/lib/src/subject-list/src/components/SubjectPageEnd.vue.cjs.map +0 -1
- package/lib/src/subject-list/src/components/SubjectPageEnd.vue2.cjs +0 -2
- package/lib/src/subject-list/src/components/SubjectPageEnd.vue2.cjs.map +0 -1
- package/lib/src/subject-list/src/components/SubjectRichText.vue.cjs +0 -2
- package/lib/src/subject-list/src/components/SubjectRichText.vue.cjs.map +0 -1
- package/lib/src/subject-list/src/components/SubjectRichText.vue2.cjs +0 -2
- package/lib/src/subject-list/src/components/SubjectRichText.vue2.cjs.map +0 -1
- package/lib/src/subject-list/src/components/subject-blank-fill.vue.cjs +0 -2
- package/lib/src/subject-list/src/components/subject-blank-fill.vue.cjs.map +0 -1
- package/lib/src/subject-list/src/components/subject-blank-fill.vue2.cjs +0 -2
- package/lib/src/subject-list/src/components/subject-blank-fill.vue2.cjs.map +0 -1
- package/lib/src/subject-list/src/components/subject-scale.vue.cjs +0 -2
- package/lib/src/subject-list/src/components/subject-scale.vue.cjs.map +0 -1
- package/lib/src/subject-list/src/components/subject-scale.vue2.cjs +0 -2
- package/lib/src/subject-list/src/components/subject-scale.vue2.cjs.map +0 -1
- package/lib/src/subject-list/src/components/subject-single.vue.cjs +0 -2
- package/lib/src/subject-list/src/components/subject-single.vue.cjs.map +0 -1
- package/lib/src/subject-list/src/components/subject-single.vue2.cjs +0 -2
- package/lib/src/subject-list/src/components/subject-single.vue2.cjs.map +0 -1
- package/lib/src/subject-list/src/components/subject-text-fill.vue.cjs +0 -2
- package/lib/src/subject-list/src/components/subject-text-fill.vue.cjs.map +0 -1
- package/lib/src/subject-list/src/components/subject-text-fill.vue2.cjs +0 -2
- package/lib/src/subject-list/src/components/subject-text-fill.vue2.cjs.map +0 -1
- package/lib/src/subject-list/src/subject-list.vue.cjs +0 -2
- package/lib/src/subject-list/src/subject-list.vue.cjs.map +0 -1
- package/lib/src/subject-list/src/subject-list.vue2.cjs +0 -2
- package/lib/src/subject-list/src/subject-list.vue2.cjs.map +0 -1
- package/lib/src/subject-type/index.cjs +0 -2
- package/lib/src/subject-type/index.cjs.map +0 -1
- package/lib/src/subject-type/src/subject-type.vue.cjs +0 -2
- package/lib/src/subject-type/src/subject-type.vue.cjs.map +0 -1
- package/lib/src/subject-type/src/subject-type.vue2.cjs +0 -2
- package/lib/src/subject-type/src/subject-type.vue2.cjs.map +0 -1
- package/theme-chalk/index.css +0 -1
- package/theme-chalk/index.scss +0 -21
- package/theme-chalk/src/base.css +0 -1
- package/theme-chalk/src/base.scss +0 -16
- package/theme-chalk/src/common/qxs-components.css +0 -1
- package/theme-chalk/src/common/qxs-components.scss +0 -4
- package/theme-chalk/src/common/qxs-variables.css +0 -1
- package/theme-chalk/src/common/qxs-variables.scss +0 -81
- package/theme-chalk/src/data-chart/empty.css +0 -1
- package/theme-chalk/src/data-chart/empty.scss +0 -24
- package/theme-chalk/src/data-chart/index.css +0 -1
- package/theme-chalk/src/data-chart/index.scss +0 -11
- package/theme-chalk/src/data-chart/table.css +0 -1
- package/theme-chalk/src/data-chart/table.scss +0 -43
- package/theme-chalk/src/dialog.css +0 -1
- package/theme-chalk/src/dialog.scss +0 -122
- package/theme-chalk/src/file-upload.css +0 -0
- package/theme-chalk/src/file-upload.scss +0 -7
- package/theme-chalk/src/fixed-action-bar.css +0 -1
- package/theme-chalk/src/fixed-action-bar.scss +0 -18
- package/theme-chalk/src/icon.css +0 -1
- package/theme-chalk/src/icon.scss +0 -35
- package/theme-chalk/src/image-upload.css +0 -1
- package/theme-chalk/src/image-upload.scss +0 -149
- package/theme-chalk/src/mixins/_var.css +0 -0
- package/theme-chalk/src/mixins/_var.scss +0 -24
- package/theme-chalk/src/mixins/config.css +0 -0
- package/theme-chalk/src/mixins/config.scss +0 -12
- package/theme-chalk/src/mixins/function.css +0 -0
- package/theme-chalk/src/mixins/function.scss +0 -95
- package/theme-chalk/src/mixins/mixins.css +0 -0
- package/theme-chalk/src/mixins/mixins.scss +0 -102
- package/theme-chalk/src/normalize.css +0 -1
- package/theme-chalk/src/normalize.scss +0 -11
- package/theme-chalk/src/photo-crop-tool.css +0 -1
- package/theme-chalk/src/photo-crop-tool.scss +0 -98
- package/theme-chalk/src/subject-action.css +0 -1
- package/theme-chalk/src/subject-action.scss +0 -78
- package/theme-chalk/src/subject-layout.css +0 -1
- package/theme-chalk/src/subject-layout.scss +0 -28
- package/theme-chalk/src/subject-list.css +0 -1
- package/theme-chalk/src/subject-list.scss +0 -568
- package/theme-chalk/src/subject-template.css +0 -1
- package/theme-chalk/src/subject-template.scss +0 -5
- package/theme-chalk/src/subject-type.css +0 -1
- package/theme-chalk/src/subject-type.scss +0 -42
- package/theme-chalk/src/tiny-mce-editor.css +0 -1
- package/theme-chalk/src/tiny-mce-editor.scss +0 -29
- package/theme-chalk/src/ui/button.css +0 -1
- package/theme-chalk/src/ui/button.scss +0 -173
- package/theme-chalk/src/ui/input.css +0 -1
- package/theme-chalk/src/ui/input.scss +0 -128
- package/theme-chalk/src/ui/table.css +0 -1
- package/theme-chalk/src/ui/table.scss +0 -166
- package/types/src/data-chart/src/analyze.d.ts +0 -23
- package/types/src/data-chart/src/analyze.d.ts.map +0 -1
- package/types/src/data-chart/src/components/area.vue.d.ts +0 -12
- package/types/src/data-chart/src/components/area.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/components/bar.vue.d.ts +0 -12
- package/types/src/data-chart/src/components/bar.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/components/card.vue.d.ts +0 -27
- package/types/src/data-chart/src/components/card.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/components/empty.vue.d.ts +0 -11
- package/types/src/data-chart/src/components/empty.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/components/funnel.vue.d.ts +0 -11
- package/types/src/data-chart/src/components/funnel.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/components/line.vue.d.ts +0 -12
- package/types/src/data-chart/src/components/line.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/components/pie.vue.d.ts +0 -12
- package/types/src/data-chart/src/components/pie.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/components/radar.vue.d.ts +0 -11
- package/types/src/data-chart/src/components/radar.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/components/scatter-simple.vue.d.ts +0 -11
- package/types/src/data-chart/src/components/scatter-simple.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/components/scatter.vue.d.ts +0 -11
- package/types/src/data-chart/src/components/scatter.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/components/table.vue.d.ts +0 -27
- package/types/src/data-chart/src/components/table.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/data-chart.vue.d.ts +0 -28
- package/types/src/data-chart/src/data-chart.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/utils/config.d.ts +0 -41
- package/types/src/data-chart/src/utils/config.d.ts.map +0 -1
- package/types/src/data-chart/src/utils/injectionKeys.d.ts +0 -3
- package/types/src/data-chart/src/utils/injectionKeys.d.ts.map +0 -1
- package/types/src/data-chart/src/utils/mapData.d.ts +0 -64
- package/types/src/data-chart/src/utils/mapData.d.ts.map +0 -1
- package/types/src/data-chart/src/utils/safe-eval.d.ts +0 -9
- package/types/src/data-chart/src/utils/safe-eval.d.ts.map +0 -1
- package/types/src/data-chart/src/utils/types.d.ts +0 -72
- package/types/src/data-chart/src/utils/types.d.ts.map +0 -1
- package/types/src/data-chart/src/utils/useCharts.d.ts +0 -16
- package/types/src/data-chart/src/utils/useCharts.d.ts.map +0 -1
- package/types/src/file-upload/src/file-upload.vue.d.ts +0 -34
- package/types/src/file-upload/src/file-upload.vue.d.ts.map +0 -1
- package/types/src/fixed-action-bar/index.d.ts +0 -56
- package/types/src/fixed-action-bar/index.d.ts.map +0 -1
- package/types/src/fixed-action-bar/src/fixed-action-bar.vue.d.ts +0 -31
- package/types/src/fixed-action-bar/src/fixed-action-bar.vue.d.ts.map +0 -1
- package/types/src/image-upload/src/image-upload.vue.d.ts +0 -49
- package/types/src/image-upload/src/image-upload.vue.d.ts.map +0 -1
- package/types/src/photo-crop-tool/src/composables.d.ts +0 -7
- package/types/src/photo-crop-tool/src/composables.d.ts.map +0 -1
- package/types/src/photo-crop-tool/src/photo-crop-tool.vue.d.ts +0 -65
- package/types/src/photo-crop-tool/src/photo-crop-tool.vue.d.ts.map +0 -1
- package/types/src/subject-list/src/components/SubjectRichText.vue.d.ts +0 -25
- package/types/src/subject-list/src/components/SubjectRichText.vue.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../../../packages/components/src/ui/scrollbar/index.ts"],"sourcesContent":["import { defineComponent, h
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../../../packages/components/src/ui/scrollbar/index.ts"],"sourcesContent":["import { type CSSProperties, defineComponent, h } from 'vue'\n\nexport const QxsScrollbar = defineComponent({\n name: 'QxsScrollbar',\n props: {\n height: { type: [String, Number], default: '' },\n maxHeight: { type: [String, Number], default: '' },\n always: { type: Boolean, default: false },\n },\n setup(props, { slots }) {\n const getHeight = (value: string | number) => {\n if (typeof value === 'number') { return `${value}px` }\n return value\n }\n\n const wrapperStyle: CSSProperties = {\n overflow: 'auto',\n position: 'relative',\n }\n\n if (props.height) {\n wrapperStyle.height = getHeight(props.height)\n }\n\n if (props.maxHeight) {\n wrapperStyle.maxHeight = getHeight(props.maxHeight)\n }\n\n const scrollbarStyles = `\n .qxs-scrollbar__wrapper::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n .qxs-scrollbar__wrapper::-webkit-scrollbar-thumb {\n background-color: rgba(144, 147, 153, 0.3);\n border-radius: 4px;\n }\n .qxs-scrollbar__wrapper::-webkit-scrollbar-thumb:hover {\n background-color: rgba(144, 147, 153, 0.5);\n }\n .qxs-scrollbar__wrapper::-webkit-scrollbar-track {\n background-color: transparent;\n }\n ${props.always\n ? ''\n : `\n .qxs-scrollbar__wrapper::-webkit-scrollbar {\n display: none;\n }\n .qxs-scrollbar__wrapper:hover::-webkit-scrollbar {\n display: block;\n }\n `}\n `\n\n return () => h('div', {\n class: 'qxs-scrollbar',\n style: { position: 'relative' },\n }, [\n h('style', scrollbarStyles),\n h('div', {\n class: 'qxs-scrollbar__wrapper',\n style: wrapperStyle,\n }, slots.default?.()),\n ])\n },\n})\n\nexport default QxsScrollbar\n"],"names":["QxsScrollbar","defineComponent","name","props","height","type","String","Number","default","maxHeight","always","Boolean","setup","_ref","slots","getHeight","value","wrapperStyle","overflow","position","scrollbarStyles","h","class","style"],"mappings":"yFAEO,MAAMA,EAAeC,EAAAA,gBAAgB,CAC1CC,KAAM,eACNC,MAAO,CACLC,OAAQ,CAAEC,KAAM,CAACC,OAAQC,QAASC,QAAS,IAC3CC,UAAW,CAAEJ,KAAM,CAACC,OAAQC,QAASC,QAAS,IAC9CE,OAAQ,CAAEL,KAAMM,QAASH,SAAS,IAEpCI,KAAAA,CAAMT,EAAAU,GAAkB,IAAXC,MAAEA,GAAMD,EACnB,MAAME,EAAaC,GACI,iBAAVA,EAA6B,GAAGA,MACpCA,EAGHC,EAA8B,CAClCC,SAAU,OACVC,SAAU,YAGRhB,EAAMC,SACRa,EAAab,OAASW,EAAUZ,EAAMC,SAGpCD,EAAMM,YACRQ,EAAaR,UAAYM,EAAUZ,EAAMM,YAG3C,MAAMW,EAAkB,ifAepBjB,EAAMO,OACJ,GACA,gNAUN,MAAO,IAAMW,EAAAA,EAAE,MAAO,CACpBC,MAAO,gBACPC,MAAO,CAAEJ,SAAU,aAClB,CACDE,EAAAA,EAAE,QAASD,GACXC,EAAAA,EAAE,MAAO,CACPC,MAAO,yBACPC,MAAON,GACNH,EAAMN,cAEb"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue");const l=Symbol("QxsSelect"),a=e.defineComponent({name:"QxsOption",props:{value:{type:[String,Number,Boolean,Object],required:!0},label:{type:String,default:""},disabled:{type:Boolean,default:!1}},setup(a,t){let{slots:o}=t;const s=e.inject(l);if(!s)return()=>null;s.registerOption(a.value,a.label||String(a.value));const r=e.computed(()=>s.multiple.value?Array.isArray(s.modelValue.value)&&s.modelValue.value.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue");const l=Symbol("QxsSelect"),a=e.defineComponent({name:"QxsOption",props:{value:{type:[String,Number,Boolean,Object],required:!0},label:{type:String,default:""},disabled:{type:Boolean,default:!1}},setup(a,t){let{slots:o}=t;const s=e.inject(l);if(!s)return()=>null;s.registerOption(a.value,a.label||String(a.value));const r=e.computed(()=>s.multiple.value?Array.isArray(s.modelValue.value)&&s.modelValue.value.includes(a.value):s.modelValue.value===a.value),i=()=>{a.disabled||s.handleSelect(a.value,a.label||String(a.value))};return()=>e.h("div",{class:["qxs-option",{"is-selected":r.value,"is-disabled":a.disabled}],onClick:i,style:{padding:"4px 8px",cursor:a.disabled?"not-allowed":"pointer",backgroundColor:r.value?"rgba(61, 97, 227, 0.1)":"transparent",color:r.value?"var(--qxs-color-primary, #3D61E3)":a.disabled?"#c0c4cc":"#606266",fontSize:"14px",lineHeight:"1.25",borderRadius:"4px",fontWeight:r.value?"500":"400",marginBottom:"2px"},onMouseenter:e=>{a.disabled||(e.currentTarget.style.backgroundColor=r.value?"rgba(61, 97, 227, 0.1)":"#f5f7fa")},onMouseleave:e=>{a.disabled||(e.currentTarget.style.backgroundColor=r.value?"rgba(61, 97, 227, 0.1)":"transparent")}},o.default?.()||a.label)}}),t=e.defineComponent({name:"QxsSelect",props:{modelValue:{type:[String,Number,Boolean,Array,Object],default:""},disabled:{type:Boolean,default:!1},placeholder:{type:String,default:"请选择"},clearable:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},size:{type:String,default:"default"},filterable:{type:Boolean,default:!1}},emits:["update:modelValue","change","clear","visible-change","remove-tag","focus","blur"],setup(a,t){let{slots:o,emit:s}=t;const r=e.ref(!1),i=e.ref(""),n=e.ref(),d=e.ref([]),u=e.ref(new Map);e.watch(()=>a.modelValue,e=>{a.multiple&&Array.isArray(e)&&(d.value=e.map(e=>({value:e,label:u.value.get(e)||String(e)})))},{immediate:!0,deep:!0});const p=e.computed(()=>a.multiple&&Array.isArray(a.modelValue)?a.modelValue.length>0?`已选择 ${a.modelValue.length} 项`:"":i.value),c=e=>{e.stopPropagation(),a.multiple?(s("update:modelValue",[]),d.value=[]):(s("update:modelValue",""),i.value=""),s("clear")},x=()=>{a.disabled||(r.value=!r.value,s("visible-change",r.value))},f=e=>{s("focus",e)},g=e=>{s("blur",e)};e.provide(l,{modelValue:e.computed(()=>a.modelValue),multiple:e.computed(()=>a.multiple),handleSelect:(e,l)=>{if(a.multiple){const t=Array.isArray(a.modelValue)?[...a.modelValue]:[],o=t.findIndex(l=>l===e);if(o>-1){t.splice(o,1);const l=d.value.findIndex(l=>l.value===e);l>-1&&d.value.splice(l,1),s("remove-tag",e)}else t.push(e),d.value.push({value:e,label:l});s("update:modelValue",t),s("change",t)}else i.value=l,s("update:modelValue",e),s("change",e),r.value=!1},registerOption:(e,l)=>{u.value.set(e,l)}});const b=e.computed(()=>"large"===a.size?"40px":"small"===a.size?"24px":"32px");return()=>e.h("div",{class:["qxs-select",`qxs-select--${a.size}`,{"is-disabled":a.disabled,"is-focus":r.value}],style:{position:"relative",display:"inline-block",width:"100%"}},[e.h("div",{class:"qxs-select__wrapper",onClick:x,style:{position:"relative",cursor:a.disabled?"not-allowed":"pointer"}},[a.multiple?e.h("div",{class:"qxs-select__tags",style:{display:"flex",flexWrap:"wrap",gap:"4px",padding:"4px 30px 4px 8px",minHeight:b.value,border:"1px solid hsl(214.3 31.8% 91.4%)",borderRadius:"6px",backgroundColor:a.disabled?"hsl(210 40% 96.1%)":"#fff",cursor:a.disabled?"not-allowed":"pointer",alignItems:"center"}},[...d.value.map(l=>e.h("span",{class:"qxs-select__tag",style:{display:"inline-flex",alignItems:"center",gap:"2px",padding:"1px 6px",backgroundColor:"var(--qxs-color-primary, #3D61E3)",border:"none",borderRadius:"4px",fontSize:"12px",color:"#fff",fontWeight:"500",lineHeight:"1.2"}},[e.h("span",null,l.label),!a.disabled&&e.h("span",{class:"qxs-select__tag-close",onClick:e=>((e,l)=>{if(l.stopPropagation(),a.multiple){const l=Array.isArray(a.modelValue)?[...a.modelValue]:[],t=l.findIndex(l=>l===e);if(t>-1){l.splice(t,1);const a=d.value.findIndex(l=>l.value===e);a>-1&&d.value.splice(a,1),s("remove-tag",e),s("update:modelValue",l),s("change",l)}}})(l.value,e),style:{cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",width:"12px",height:"12px",borderRadius:"50%",fontSize:"9px",color:"#fff",transition:"all 0.2s"},onMouseenter:e=>{e.currentTarget.style.backgroundColor="rgba(255, 255, 255, 0.2)"},onMouseleave:e=>{e.currentTarget.style.backgroundColor="transparent"}},"×")])),0===d.value.length&&e.h("span",{style:{color:"hsl(215 20.2% 65.1%)",fontSize:"14px"}},a.placeholder)]):e.h("input",{ref:n,class:"qxs-select__inner",type:"text",readonly:!a.filterable,value:p.value,placeholder:a.placeholder,disabled:a.disabled,onFocus:f,onBlur:g,style:{width:"100%",height:b.value,padding:"0 30px 0 12px",border:"1px solid hsl(214.3 31.8% 91.4%)",borderRadius:"6px",outline:"none",fontSize:"14px",backgroundColor:a.disabled?"hsl(210 40% 96.1%)":"#fff",cursor:a.disabled?"not-allowed":"pointer",transition:"border-color 0.2s"}}),e.h("span",{class:"qxs-select__suffix",style:{position:"absolute",right:"10px",top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",gap:"4px"}},[a.clearable&&p.value&&!a.disabled&&e.h("span",{class:"qxs-select__clear",onClick:c,style:{fontSize:"14px",cursor:"pointer"}},"×"),e.h("span",{class:"qxs-select__caret",style:{fontSize:"12px",transform:r.value?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.3s"}},"▼")])]),r.value&&e.h("div",{class:"qxs-select__dropdown",style:{position:"absolute",top:"100%",left:"0",right:"0",marginTop:"4px",backgroundColor:"#fff",border:"1px solid hsl(214.3 31.8% 91.4%)",borderRadius:"6px",boxShadow:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)",zIndex:2e3,maxHeight:"274px",overflowY:"auto",padding:"4px"}},o.default?.())])}});exports.QxsOption=a,exports.QxsSelect=t,exports.default=t;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../../../packages/components/src/ui/select/index.ts"],"sourcesContent":["import { defineComponent, h, ref, computed, provide, inject, watch, type PropType, type InjectionKey, type Ref } from 'vue'\n\nexport type SelectSize = 'large' | 'default' | 'small'\n\ninterface SelectContext {\n modelValue: Ref<any>\n multiple: Ref<boolean>\n handleSelect: (value: any, label: string) => void\n registerOption: (value: any, label: string) => void\n}\n\nconst SELECT_INJECTION_KEY: InjectionKey<SelectContext> = Symbol('QxsSelect')\n\nexport const QxsOption = defineComponent({\n name: 'QxsOption',\n props: {\n value: { type: [String, Number, Boolean, Object], required: true },\n label: { type: String, default: '' },\n disabled: { type: Boolean, default: false },\n },\n setup(props, { slots }) {\n const select = inject(SELECT_INJECTION_KEY)\n \n if (!select) {\n console.warn('QxsOption must be used inside QxsSelect')\n return () => null\n }\n\n select.registerOption(props.value, props.label || String(props.value))\n\n const isSelected = computed(() => {\n if (select.multiple.value) {\n return Array.isArray(select.modelValue.value) && \n select.modelValue.value.some(v => v === props.value)\n }\n return select.modelValue.value === props.value\n })\n\n const handleClick = () => {\n if (props.disabled) return\n select.handleSelect(props.value, props.label || String(props.value))\n }\n\n return () => h('div', {\n class: [\n 'qxs-option',\n {\n 'is-selected': isSelected.value,\n 'is-disabled': props.disabled,\n },\n ],\n onClick: handleClick,\n style: {\n padding: '4px 8px',\n cursor: props.disabled ? 'not-allowed' : 'pointer',\n backgroundColor: isSelected.value ? 'rgba(61, 97, 227, 0.1)' : 'transparent',\n color: isSelected.value ? 'var(--qxs-color-primary, #3D61E3)' : props.disabled ? '#c0c4cc' : '#606266',\n fontSize: '14px',\n lineHeight: '1.25',\n borderRadius: '4px',\n fontWeight: isSelected.value ? '500' : '400',\n marginBottom: '2px',\n },\n onMouseenter: (e: MouseEvent) => {\n if (!props.disabled) {\n (e.currentTarget as HTMLElement).style.backgroundColor = \n isSelected.value ? 'rgba(61, 97, 227, 0.1)' : '#f5f7fa'\n }\n },\n onMouseleave: (e: MouseEvent) => {\n if (!props.disabled) {\n (e.currentTarget as HTMLElement).style.backgroundColor = \n isSelected.value ? 'rgba(61, 97, 227, 0.1)' : 'transparent'\n }\n },\n }, slots.default?.() || props.label)\n },\n})\n\nexport const QxsSelect = defineComponent({\n name: 'QxsSelect',\n props: {\n modelValue: { type: [String, Number, Boolean, Array, Object], default: '' },\n disabled: { type: Boolean, default: false },\n placeholder: { type: String, default: '请选择' },\n clearable: { type: Boolean, default: false },\n multiple: { type: Boolean, default: false },\n size: { type: String as PropType<SelectSize>, default: 'default' },\n filterable: { type: Boolean, default: false },\n },\n emits: ['update:modelValue', 'change', 'clear', 'visible-change', 'remove-tag', 'focus', 'blur'],\n setup(props, { slots, emit }) {\n const visible = ref(false)\n const selectedLabel = ref('')\n const inputRef = ref<HTMLInputElement>()\n const selectedTags = ref<{value: any, label: string}[]>([])\n const optionsMap = ref<Map<any, string>>(new Map())\n\n const registerOption = (value: any, label: string) => {\n optionsMap.value.set(value, label)\n }\n\n watch(() => props.modelValue, (newVal) => {\n if (props.multiple && Array.isArray(newVal)) {\n selectedTags.value = newVal.map(v => ({\n value: v,\n label: optionsMap.value.get(v) || String(v)\n }))\n }\n }, { immediate: true, deep: true })\n\n const displayValue = computed(() => {\n if (props.multiple && Array.isArray(props.modelValue)) {\n return props.modelValue.length > 0 ? `已选择 ${props.modelValue.length} 项` : ''\n }\n return selectedLabel.value\n })\n\n const handleSelect = (value: any, label: string) => {\n if (props.multiple) {\n const values = Array.isArray(props.modelValue) ? [...props.modelValue] : []\n const index = values.findIndex(v => v === value)\n \n if (index > -1) {\n values.splice(index, 1)\n const tagIndex = selectedTags.value.findIndex(t => t.value === value)\n if (tagIndex > -1) {\n selectedTags.value.splice(tagIndex, 1)\n }\n emit('remove-tag', value)\n } else {\n values.push(value)\n selectedTags.value.push({ value, label })\n }\n \n emit('update:modelValue', values)\n emit('change', values)\n } else {\n selectedLabel.value = label\n emit('update:modelValue', value)\n emit('change', value)\n visible.value = false\n }\n }\n\n const removeTag = (value: any, e: MouseEvent) => {\n e.stopPropagation()\n if (props.multiple) {\n const values = Array.isArray(props.modelValue) ? [...props.modelValue] : []\n const index = values.findIndex(v => v === value)\n \n if (index > -1) {\n values.splice(index, 1)\n const tagIndex = selectedTags.value.findIndex(t => t.value === value)\n if (tagIndex > -1) {\n selectedTags.value.splice(tagIndex, 1)\n }\n emit('remove-tag', value)\n emit('update:modelValue', values)\n emit('change', values)\n }\n }\n }\n\n const handleClear = (e: MouseEvent) => {\n e.stopPropagation()\n if (props.multiple) {\n emit('update:modelValue', [])\n selectedTags.value = []\n } else {\n emit('update:modelValue', '')\n selectedLabel.value = ''\n }\n emit('clear')\n }\n\n const toggleDropdown = () => {\n if (props.disabled) return\n visible.value = !visible.value\n emit('visible-change', visible.value)\n }\n\n const handleFocus = (e: FocusEvent) => {\n emit('focus', e)\n }\n\n const handleBlur = (e: FocusEvent) => {\n emit('blur', e)\n }\n\n provide(SELECT_INJECTION_KEY, {\n modelValue: computed(() => props.modelValue),\n multiple: computed(() => props.multiple),\n handleSelect,\n registerOption,\n })\n\n const inputHeight = computed(() => {\n return props.size === 'large' ? '40px' : props.size === 'small' ? '24px' : '32px'\n })\n\n return () => h('div', {\n class: [\n 'qxs-select',\n `qxs-select--${props.size}`,\n {\n 'is-disabled': props.disabled,\n 'is-focus': visible.value,\n },\n ],\n style: {\n position: 'relative',\n display: 'inline-block',\n width: '100%',\n },\n }, [\n h('div', {\n class: 'qxs-select__wrapper',\n onClick: toggleDropdown,\n style: {\n position: 'relative',\n cursor: props.disabled ? 'not-allowed' : 'pointer',\n },\n }, [\n props.multiple ? h('div', {\n class: 'qxs-select__tags',\n style: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '4px',\n padding: '4px 30px 4px 8px',\n minHeight: inputHeight.value,\n border: '1px solid hsl(214.3 31.8% 91.4%)',\n borderRadius: '6px',\n backgroundColor: props.disabled ? 'hsl(210 40% 96.1%)' : '#fff',\n cursor: props.disabled ? 'not-allowed' : 'pointer',\n alignItems: 'center',\n },\n }, [\n ...selectedTags.value.map(tag => h('span', {\n class: 'qxs-select__tag',\n style: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '2px',\n padding: '1px 6px',\n backgroundColor: 'var(--qxs-color-primary, #3D61E3)',\n border: 'none',\n borderRadius: '4px',\n fontSize: '12px',\n color: '#fff',\n fontWeight: '500',\n lineHeight: '1.2',\n },\n }, [\n h('span', null, tag.label),\n !props.disabled && h('span', {\n class: 'qxs-select__tag-close',\n onClick: (e: MouseEvent) => removeTag(tag.value, e),\n style: {\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '12px',\n height: '12px',\n borderRadius: '50%',\n fontSize: '9px',\n color: '#fff',\n transition: 'all 0.2s',\n },\n onMouseenter: (e: MouseEvent) => {\n const el = e.currentTarget as HTMLElement\n el.style.backgroundColor = 'rgba(255, 255, 255, 0.2)'\n },\n onMouseleave: (e: MouseEvent) => {\n const el = e.currentTarget as HTMLElement\n el.style.backgroundColor = 'transparent'\n },\n }, '×'),\n ])),\n selectedTags.value.length === 0 && h('span', {\n style: {\n color: 'hsl(215 20.2% 65.1%)',\n fontSize: '14px',\n },\n }, props.placeholder),\n ]) : h('input', {\n ref: inputRef,\n class: 'qxs-select__inner',\n type: 'text',\n readonly: !props.filterable,\n value: displayValue.value,\n placeholder: props.placeholder,\n disabled: props.disabled,\n onFocus: handleFocus,\n onBlur: handleBlur,\n style: {\n width: '100%',\n height: inputHeight.value,\n padding: '0 30px 0 12px',\n border: '1px solid hsl(214.3 31.8% 91.4%)',\n borderRadius: '6px',\n outline: 'none',\n fontSize: '14px',\n backgroundColor: props.disabled ? 'hsl(210 40% 96.1%)' : '#fff',\n cursor: props.disabled ? 'not-allowed' : 'pointer',\n transition: 'border-color 0.2s',\n },\n }),\n h('span', {\n class: 'qxs-select__suffix',\n style: {\n position: 'absolute',\n right: '10px',\n top: '50%',\n transform: 'translateY(-50%)',\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n },\n }, [\n props.clearable && displayValue.value && !props.disabled && h('span', {\n class: 'qxs-select__clear',\n onClick: handleClear,\n style: {\n fontSize: '14px',\n cursor: 'pointer',\n },\n }, '×'),\n h('span', {\n class: 'qxs-select__caret',\n style: {\n fontSize: '12px',\n transform: visible.value ? 'rotate(180deg)' : 'rotate(0deg)',\n transition: 'transform 0.3s',\n },\n }, '▼'),\n ]),\n ]),\n visible.value && h('div', {\n class: 'qxs-select__dropdown',\n style: {\n position: 'absolute',\n top: '100%',\n left: '0',\n right: '0',\n marginTop: '4px',\n backgroundColor: '#fff',\n border: '1px solid hsl(214.3 31.8% 91.4%)',\n borderRadius: '6px',\n boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)',\n zIndex: 2000,\n maxHeight: '274px',\n overflowY: 'auto',\n padding: '4px',\n },\n }, slots.default?.()),\n ])\n },\n})\n\nexport default QxsSelect\n"],"names":["SELECT_INJECTION_KEY","Symbol","QxsOption","defineComponent","name","props","value","type","String","Number","Boolean","Object","required","label","default","disabled","setup","_ref","slots","select","inject","registerOption","isSelected","computed","multiple","Array","isArray","modelValue","some","v","handleClick","handleSelect","h","class","onClick","style","padding","cursor","backgroundColor","color","fontSize","lineHeight","borderRadius","fontWeight","marginBottom","onMouseenter","e","currentTarget","onMouseleave","QxsSelect","placeholder","clearable","size","filterable","emits","_ref2","emit","visible","ref","selectedLabel","inputRef","selectedTags","optionsMap","Map","watch","newVal","map","get","immediate","deep","displayValue","length","handleClear","stopPropagation","toggleDropdown","handleFocus","handleBlur","provide","values","index","findIndex","splice","tagIndex","t","push","set","inputHeight","position","display","width","flexWrap","gap","minHeight","border","alignItems","tag","removeTag","justifyContent","height","transition","readonly","onFocus","onBlur","outline","right","top","transform","left","marginTop","boxShadow","zIndex","maxHeight","overflowY"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../../../packages/components/src/ui/select/index.ts"],"sourcesContent":["import { computed, defineComponent, h, inject, type InjectionKey, type PropType, provide, ref, type Ref, watch } from 'vue'\n\nexport type SelectSize = 'large' | 'default' | 'small'\n\ninterface SelectContext {\n modelValue: Ref<any>\n multiple: Ref<boolean>\n handleSelect: (value: any, label: string) => void\n registerOption: (value: any, label: string) => void\n}\n\nconst SELECT_INJECTION_KEY: InjectionKey<SelectContext> = Symbol('QxsSelect')\n\nexport const QxsOption = defineComponent({\n name: 'QxsOption',\n props: {\n value: { type: [String, Number, Boolean, Object], required: true },\n label: { type: String, default: '' },\n disabled: { type: Boolean, default: false },\n },\n setup(props, { slots }) {\n const select = inject(SELECT_INJECTION_KEY)\n\n if (!select) {\n console.warn('QxsOption must be used inside QxsSelect')\n return () => null\n }\n\n select.registerOption(props.value, props.label || String(props.value))\n\n const isSelected = computed(() => {\n if (select.multiple.value) {\n return Array.isArray(select.modelValue.value)\n && select.modelValue.value.includes(props.value)\n }\n return select.modelValue.value === props.value\n })\n\n const handleClick = () => {\n if (props.disabled) { return }\n select.handleSelect(props.value, props.label || String(props.value))\n }\n\n return () => h('div', {\n class: [\n 'qxs-option',\n {\n 'is-selected': isSelected.value,\n 'is-disabled': props.disabled,\n },\n ],\n onClick: handleClick,\n style: {\n padding: '4px 8px',\n cursor: props.disabled ? 'not-allowed' : 'pointer',\n backgroundColor: isSelected.value ? 'rgba(61, 97, 227, 0.1)' : 'transparent',\n color: isSelected.value ? 'var(--qxs-color-primary, #3D61E3)' : props.disabled ? '#c0c4cc' : '#606266',\n fontSize: '14px',\n lineHeight: '1.25',\n borderRadius: '4px',\n fontWeight: isSelected.value ? '500' : '400',\n marginBottom: '2px',\n },\n onMouseenter: (e: MouseEvent) => {\n if (!props.disabled) {\n (e.currentTarget as HTMLElement).style.backgroundColor\n = isSelected.value ? 'rgba(61, 97, 227, 0.1)' : '#f5f7fa'\n }\n },\n onMouseleave: (e: MouseEvent) => {\n if (!props.disabled) {\n (e.currentTarget as HTMLElement).style.backgroundColor\n = isSelected.value ? 'rgba(61, 97, 227, 0.1)' : 'transparent'\n }\n },\n }, slots.default?.() || props.label)\n },\n})\n\nexport const QxsSelect = defineComponent({\n name: 'QxsSelect',\n props: {\n modelValue: { type: [String, Number, Boolean, Array, Object], default: '' },\n disabled: { type: Boolean, default: false },\n placeholder: { type: String, default: '请选择' },\n clearable: { type: Boolean, default: false },\n multiple: { type: Boolean, default: false },\n size: { type: String as PropType<SelectSize>, default: 'default' },\n filterable: { type: Boolean, default: false },\n },\n emits: ['update:modelValue', 'change', 'clear', 'visible-change', 'remove-tag', 'focus', 'blur'],\n setup(props, { slots, emit }) {\n const visible = ref(false)\n const selectedLabel = ref('')\n const inputRef = ref<HTMLInputElement>()\n const selectedTags = ref<{ value: any, label: string }[]>([])\n const optionsMap = ref<Map<any, string>>(new Map())\n\n const registerOption = (value: any, label: string) => {\n optionsMap.value.set(value, label)\n }\n\n watch(() => props.modelValue, (newVal) => {\n if (props.multiple && Array.isArray(newVal)) {\n selectedTags.value = newVal.map(v => ({\n value: v,\n label: optionsMap.value.get(v) || String(v),\n }))\n }\n }, { immediate: true, deep: true })\n\n const displayValue = computed(() => {\n if (props.multiple && Array.isArray(props.modelValue)) {\n return props.modelValue.length > 0 ? `已选择 ${props.modelValue.length} 项` : ''\n }\n return selectedLabel.value\n })\n\n const handleSelect = (value: any, label: string) => {\n if (props.multiple) {\n const values = Array.isArray(props.modelValue) ? [...props.modelValue] : []\n const index = values.findIndex(v => v === value)\n\n if (index > -1) {\n values.splice(index, 1)\n const tagIndex = selectedTags.value.findIndex(t => t.value === value)\n if (tagIndex > -1) {\n selectedTags.value.splice(tagIndex, 1)\n }\n emit('remove-tag', value)\n }\n else {\n values.push(value)\n selectedTags.value.push({ value, label })\n }\n\n emit('update:modelValue', values)\n emit('change', values)\n }\n else {\n selectedLabel.value = label\n emit('update:modelValue', value)\n emit('change', value)\n visible.value = false\n }\n }\n\n const removeTag = (value: any, e: MouseEvent) => {\n e.stopPropagation()\n if (props.multiple) {\n const values = Array.isArray(props.modelValue) ? [...props.modelValue] : []\n const index = values.findIndex(v => v === value)\n\n if (index > -1) {\n values.splice(index, 1)\n const tagIndex = selectedTags.value.findIndex(t => t.value === value)\n if (tagIndex > -1) {\n selectedTags.value.splice(tagIndex, 1)\n }\n emit('remove-tag', value)\n emit('update:modelValue', values)\n emit('change', values)\n }\n }\n }\n\n const handleClear = (e: MouseEvent) => {\n e.stopPropagation()\n if (props.multiple) {\n emit('update:modelValue', [])\n selectedTags.value = []\n }\n else {\n emit('update:modelValue', '')\n selectedLabel.value = ''\n }\n emit('clear')\n }\n\n const toggleDropdown = () => {\n if (props.disabled) { return }\n visible.value = !visible.value\n emit('visible-change', visible.value)\n }\n\n const handleFocus = (e: FocusEvent) => {\n emit('focus', e)\n }\n\n const handleBlur = (e: FocusEvent) => {\n emit('blur', e)\n }\n\n provide(SELECT_INJECTION_KEY, {\n modelValue: computed(() => props.modelValue),\n multiple: computed(() => props.multiple),\n handleSelect,\n registerOption,\n })\n\n const inputHeight = computed(() => {\n return props.size === 'large' ? '40px' : props.size === 'small' ? '24px' : '32px'\n })\n\n return () => h('div', {\n class: [\n 'qxs-select',\n `qxs-select--${props.size}`,\n {\n 'is-disabled': props.disabled,\n 'is-focus': visible.value,\n },\n ],\n style: {\n position: 'relative',\n display: 'inline-block',\n width: '100%',\n },\n }, [\n h('div', {\n class: 'qxs-select__wrapper',\n onClick: toggleDropdown,\n style: {\n position: 'relative',\n cursor: props.disabled ? 'not-allowed' : 'pointer',\n },\n }, [\n props.multiple\n ? h('div', {\n class: 'qxs-select__tags',\n style: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '4px',\n padding: '4px 30px 4px 8px',\n minHeight: inputHeight.value,\n border: '1px solid hsl(214.3 31.8% 91.4%)',\n borderRadius: '6px',\n backgroundColor: props.disabled ? 'hsl(210 40% 96.1%)' : '#fff',\n cursor: props.disabled ? 'not-allowed' : 'pointer',\n alignItems: 'center',\n },\n }, [\n ...selectedTags.value.map(tag => h('span', {\n class: 'qxs-select__tag',\n style: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '2px',\n padding: '1px 6px',\n backgroundColor: 'var(--qxs-color-primary, #3D61E3)',\n border: 'none',\n borderRadius: '4px',\n fontSize: '12px',\n color: '#fff',\n fontWeight: '500',\n lineHeight: '1.2',\n },\n }, [\n h('span', null, tag.label),\n !props.disabled && h('span', {\n class: 'qxs-select__tag-close',\n onClick: (e: MouseEvent) => removeTag(tag.value, e),\n style: {\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '12px',\n height: '12px',\n borderRadius: '50%',\n fontSize: '9px',\n color: '#fff',\n transition: 'all 0.2s',\n },\n onMouseenter: (e: MouseEvent) => {\n const el = e.currentTarget as HTMLElement\n el.style.backgroundColor = 'rgba(255, 255, 255, 0.2)'\n },\n onMouseleave: (e: MouseEvent) => {\n const el = e.currentTarget as HTMLElement\n el.style.backgroundColor = 'transparent'\n },\n }, '×'),\n ])),\n selectedTags.value.length === 0 && h('span', {\n style: {\n color: 'hsl(215 20.2% 65.1%)',\n fontSize: '14px',\n },\n }, props.placeholder),\n ])\n : h('input', {\n ref: inputRef,\n class: 'qxs-select__inner',\n type: 'text',\n readonly: !props.filterable,\n value: displayValue.value,\n placeholder: props.placeholder,\n disabled: props.disabled,\n onFocus: handleFocus,\n onBlur: handleBlur,\n style: {\n width: '100%',\n height: inputHeight.value,\n padding: '0 30px 0 12px',\n border: '1px solid hsl(214.3 31.8% 91.4%)',\n borderRadius: '6px',\n outline: 'none',\n fontSize: '14px',\n backgroundColor: props.disabled ? 'hsl(210 40% 96.1%)' : '#fff',\n cursor: props.disabled ? 'not-allowed' : 'pointer',\n transition: 'border-color 0.2s',\n },\n }),\n h('span', {\n class: 'qxs-select__suffix',\n style: {\n position: 'absolute',\n right: '10px',\n top: '50%',\n transform: 'translateY(-50%)',\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n },\n }, [\n props.clearable && displayValue.value && !props.disabled && h('span', {\n class: 'qxs-select__clear',\n onClick: handleClear,\n style: {\n fontSize: '14px',\n cursor: 'pointer',\n },\n }, '×'),\n h('span', {\n class: 'qxs-select__caret',\n style: {\n fontSize: '12px',\n transform: visible.value ? 'rotate(180deg)' : 'rotate(0deg)',\n transition: 'transform 0.3s',\n },\n }, '▼'),\n ]),\n ]),\n visible.value && h('div', {\n class: 'qxs-select__dropdown',\n style: {\n position: 'absolute',\n top: '100%',\n left: '0',\n right: '0',\n marginTop: '4px',\n backgroundColor: '#fff',\n border: '1px solid hsl(214.3 31.8% 91.4%)',\n borderRadius: '6px',\n boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)',\n zIndex: 2000,\n maxHeight: '274px',\n overflowY: 'auto',\n padding: '4px',\n },\n }, slots.default?.()),\n ])\n },\n})\n\nexport default QxsSelect\n"],"names":["SELECT_INJECTION_KEY","Symbol","QxsOption","defineComponent","name","props","value","type","String","Number","Boolean","Object","required","label","default","disabled","setup","_ref","slots","select","inject","registerOption","isSelected","computed","multiple","Array","isArray","modelValue","includes","handleClick","handleSelect","h","class","onClick","style","padding","cursor","backgroundColor","color","fontSize","lineHeight","borderRadius","fontWeight","marginBottom","onMouseenter","e","currentTarget","onMouseleave","QxsSelect","placeholder","clearable","size","filterable","emits","_ref2","emit","visible","ref","selectedLabel","inputRef","selectedTags","optionsMap","Map","watch","newVal","map","v","get","immediate","deep","displayValue","length","handleClear","stopPropagation","toggleDropdown","handleFocus","handleBlur","provide","values","index","findIndex","splice","tagIndex","t","push","set","inputHeight","position","display","width","flexWrap","gap","minHeight","border","alignItems","tag","removeTag","justifyContent","height","transition","readonly","onFocus","onBlur","outline","right","top","transform","left","marginTop","boxShadow","zIndex","maxHeight","overflowY"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../../../packages/components/src/ui/table/index.ts"],"sourcesContent":["import { computed, defineComponent, h, inject, provide, reactive, ref, type PropType, type Ref, type VNode } from 'vue'\n\n// Types\nexport type TableColumnAlign = 'left' | 'center' | 'right'\nexport type TableColumnFixed = 'left' | 'right' | boolean\n\nexport interface TableColumnConfig {\n prop?: string\n label?: string\n width?: string | number\n minWidth?: string | number\n align?: TableColumnAlign\n sortable?: boolean\n fixed?: TableColumnFixed\n renderHeader?: () => VNode | string\n renderCell?: (row: any, index: number) => VNode | string\n}\n\ninterface SortState {\n prop: string | null\n order: 'ascending' | 'descending' | null\n}\n\n// Provide/Inject keys\nconst TABLE_COLUMNS_KEY = Symbol('tableColumns')\nconst TABLE_REGISTER_COLUMN_KEY = Symbol('tableRegisterColumn')\n\n// QxsTableColumn Component\nexport const QxsTableColumn = defineComponent({\n name: 'QxsTableColumn',\n props: {\n prop: { type: String, default: '' },\n label: { type: String, default: '' },\n width: { type: [String, Number], default: '' },\n minWidth: { type: [String, Number], default: '' },\n align: { type: String as PropType<TableColumnAlign>, default: 'left' },\n sortable: { type: Boolean, default: false },\n fixed: { type: [String, Boolean] as PropType<TableColumnFixed>, default: false },\n showOverflowTooltip: { type: Boolean, default: false },\n },\n setup(props, { slots }) {\n const registerColumn = inject<(config: TableColumnConfig) => void>(TABLE_REGISTER_COLUMN_KEY)\n\n const columnConfig: TableColumnConfig = {\n prop: props.prop,\n label: props.label,\n width: props.width,\n minWidth: props.minWidth,\n align: props.align,\n sortable: props.sortable,\n fixed: props.fixed,\n renderHeader: () => {\n if (slots.header) {\n return h('div', {}, slots.header())\n }\n return props.label\n },\n renderCell: (row: any) => {\n if (slots.default) {\n return h('div', {}, slots.default({ row }))\n }\n return props.prop ? (row[props.prop] ?? '--') : '--'\n },\n }\n\n if (registerColumn) {\n registerColumn(columnConfig)\n }\n\n return () => null\n },\n})\n\n// QxsTable Component\nexport const QxsTable = defineComponent({\n name: 'QxsTable',\n props: {\n data: { type: Array as PropType<any[]>, default: () => [] },\n stripe: { type: Boolean, default: false },\n border: { type: Boolean, default: false },\n height: { type: [String, Number], default: '' },\n rowKey: { type: [String, Function] as PropType<string | ((row: any) => string)>, default: '' },\n emptyText: { type: String, default: '暂无数据' },\n },\n setup(props, { slots }) {\n const columns: Ref<TableColumnConfig[]> = ref([])\n const sortState = reactive<SortState>({ prop: null, order: null })\n\n // Register column\n const registerColumn = (config: TableColumnConfig) => {\n columns.value.push(config)\n }\n\n provide(TABLE_REGISTER_COLUMN_KEY, registerColumn)\n provide(TABLE_COLUMNS_KEY, columns)\n\n // Sorted data\n const sortedData = computed(() => {\n if (!sortState.prop || !sortState.order) {\n return props.data\n }\n\n const data = [...props.data]\n const { prop, order } = sortState\n\n return data.sort((a, b) => {\n const aVal = a[prop]\n const bVal = b[prop]\n\n if (aVal === bVal) return 0\n\n const result = aVal > bVal ? 1 : -1\n return order === 'ascending' ? result : -result\n })\n })\n\n // Handle sort\n const handleSort = (column: TableColumnConfig) => {\n if (!column.sortable || !column.prop) return\n\n if (sortState.prop === column.prop) {\n if (sortState.order === 'ascending') {\n sortState.order = 'descending'\n }\n else if (sortState.order === 'descending') {\n sortState.prop = null\n sortState.order = null\n }\n else {\n sortState.order = 'ascending'\n }\n }\n else {\n sortState.prop = column.prop\n sortState.order = 'ascending'\n }\n }\n\n // Get row key\n const getRowKey = (row: any, index: number): string => {\n if (typeof props.rowKey === 'function') {\n return props.rowKey(row)\n }\n if (typeof props.rowKey === 'string' && props.rowKey) {\n return row[props.rowKey]\n }\n return String(index)\n }\n\n // Render table header\n const renderHeader = () => {\n return h('thead', { class: 'qxs-table__header' }, [\n h('tr', {}, columns.value.map((column) => {\n const thClass = [\n 'qxs-table__cell',\n `qxs-table__cell--${column.align || 'left'}`,\n {\n 'qxs-table__cell--sortable': column.sortable,\n 'is-sorting': sortState.prop === column.prop,\n },\n ]\n\n const thStyle: Record<string, string> = {}\n if (column.width) {\n thStyle.width = typeof column.width === 'number' ? `${column.width}px` : column.width\n }\n if (column.minWidth) {\n thStyle.minWidth = typeof column.minWidth === 'number' ? `${column.minWidth}px` : column.minWidth\n }\n\n const headerContent = column.renderHeader ? column.renderHeader() : column.label\n\n const sortIcon = column.sortable\n ? h('span', { class: 'qxs-table__sort-icon' }, [\n h('i', {\n class: [\n 'qxs-table__sort-caret',\n 'ascending',\n { 'is-active': sortState.prop === column.prop && sortState.order === 'ascending' },\n ],\n }),\n h('i', {\n class: [\n 'qxs-table__sort-caret',\n 'descending',\n { 'is-active': sortState.prop === column.prop && sortState.order === 'descending' },\n ],\n }),\n ])\n : null\n\n return h('th', {\n class: thClass,\n style: thStyle,\n onClick: () => handleSort(column),\n }, [\n h('div', { class: 'qxs-table__cell-content' }, [\n headerContent,\n sortIcon,\n ]),\n ])\n })),\n ])\n }\n\n // Render table body\n const renderBody = () => {\n if (!sortedData.value.length) {\n return h('tbody', { class: 'qxs-table__body' }, [\n h('tr', { class: 'qxs-table__empty-row' }, [\n h('td', {\n class: 'qxs-table__empty-cell',\n colspan: columns.value.length,\n }, [\n h('div', { class: 'qxs-table__empty-text' }, [\n slots.empty ? slots.empty() : props.emptyText,\n ]),\n ]),\n ]),\n ])\n }\n\n return h('tbody', { class: 'qxs-table__body' }, sortedData.value.map((row, rowIndex) => {\n const rowClass = [\n 'qxs-table__row',\n {\n 'qxs-table__row--striped': props.stripe && rowIndex % 2 === 1,\n },\n ]\n\n return h('tr', {\n class: rowClass,\n key: getRowKey(row, rowIndex),\n }, columns.value.map((column) => {\n const tdClass = [\n 'qxs-table__cell',\n `qxs-table__cell--${column.align || 'left'}`,\n ]\n\n const tdStyle: Record<string, string> = {}\n if (column.width) {\n tdStyle.width = typeof column.width === 'number' ? `${column.width}px` : column.width\n }\n if (column.minWidth) {\n tdStyle.minWidth = typeof column.minWidth === 'number' ? `${column.minWidth}px` : column.minWidth\n }\n\n const cellContent = column.renderCell ? column.renderCell(row, rowIndex) : '--'\n\n return h('td', {\n class: tdClass,\n style: tdStyle,\n }, [\n h('div', { class: 'qxs-table__cell-content' }, [cellContent]),\n ])\n }))\n }))\n }\n\n return () => {\n // Render default slot to collect columns\n if (slots.default) {\n slots.default()\n }\n\n const tableClass = [\n 'qxs-table',\n {\n 'qxs-table--striped': props.stripe,\n 'qxs-table--border': props.border,\n },\n ]\n\n const tableStyle: Record<string, string> = {}\n if (props.height) {\n tableStyle.height = typeof props.height === 'number' ? `${props.height}px` : props.height\n }\n\n return h('div', {\n class: 'qxs-table-wrapper',\n style: tableStyle,\n }, [\n h('table', { class: tableClass }, [\n renderHeader(),\n renderBody(),\n ]),\n ])\n }\n },\n})\n\nexport default QxsTable\n"],"names":["TABLE_COLUMNS_KEY","Symbol","TABLE_REGISTER_COLUMN_KEY","QxsTableColumn","defineComponent","name","props","prop","type","String","default","label","width","Number","minWidth","align","sortable","Boolean","fixed","showOverflowTooltip","setup","_ref","slots","registerColumn","inject","columnConfig","renderHeader","header","h","renderCell","row","QxsTable","data","Array","stripe","border","height","rowKey","Function","emptyText","_ref2","columns","ref","sortState","reactive","order","provide","config","value","push","sortedData","computed","sort","a","b","aVal","bVal","result","getRowKey","index","class","map","column","thClass","thStyle","headerContent","sortIcon","style","onClick","handleSort","tableClass","tableStyle","length","rowIndex","rowClass","key","tdClass","tdStyle","cellContent","colspan","empty"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../../../packages/components/src/ui/table/index.ts"],"sourcesContent":["import { computed, defineComponent, h, inject, type PropType, provide, reactive, ref, type Ref, type VNode } from 'vue'\n\n// Types\nexport type TableColumnAlign = 'left' | 'center' | 'right'\nexport type TableColumnFixed = 'left' | 'right' | boolean\n\nexport interface TableColumnConfig {\n prop?: string\n label?: string\n width?: string | number\n minWidth?: string | number\n align?: TableColumnAlign\n sortable?: boolean\n fixed?: TableColumnFixed\n renderHeader?: () => VNode | string\n renderCell?: (row: any, index: number) => VNode | string\n}\n\ninterface SortState {\n prop: string | null\n order: 'ascending' | 'descending' | null\n}\n\n// Provide/Inject keys\nconst TABLE_COLUMNS_KEY = Symbol('tableColumns')\nconst TABLE_REGISTER_COLUMN_KEY = Symbol('tableRegisterColumn')\n\n// QxsTableColumn Component\nexport const QxsTableColumn = defineComponent({\n name: 'QxsTableColumn',\n props: {\n prop: { type: String, default: '' },\n label: { type: String, default: '' },\n width: { type: [String, Number], default: '' },\n minWidth: { type: [String, Number], default: '' },\n align: { type: String as PropType<TableColumnAlign>, default: 'left' },\n sortable: { type: Boolean, default: false },\n fixed: { type: [String, Boolean] as PropType<TableColumnFixed>, default: false },\n showOverflowTooltip: { type: Boolean, default: false },\n },\n setup(props, { slots }) {\n const registerColumn = inject<(config: TableColumnConfig) => void>(TABLE_REGISTER_COLUMN_KEY)\n\n const columnConfig: TableColumnConfig = {\n prop: props.prop,\n label: props.label,\n width: props.width,\n minWidth: props.minWidth,\n align: props.align,\n sortable: props.sortable,\n fixed: props.fixed,\n renderHeader: () => {\n if (slots.header) {\n return h('div', {}, slots.header())\n }\n return props.label\n },\n renderCell: (row: any) => {\n if (slots.default) {\n return h('div', {}, slots.default({ row }))\n }\n return props.prop ? (row[props.prop] ?? '--') : '--'\n },\n }\n\n if (registerColumn) {\n registerColumn(columnConfig)\n }\n\n return () => null\n },\n})\n\n// QxsTable Component\nexport const QxsTable = defineComponent({\n name: 'QxsTable',\n props: {\n data: { type: Array as PropType<any[]>, default: () => [] },\n stripe: { type: Boolean, default: false },\n border: { type: Boolean, default: false },\n height: { type: [String, Number], default: '' },\n rowKey: { type: [String, Function] as PropType<string | ((row: any) => string)>, default: '' },\n emptyText: { type: String, default: '暂无数据' },\n },\n setup(props, { slots }) {\n const columns: Ref<TableColumnConfig[]> = ref([])\n const sortState = reactive<SortState>({ prop: null, order: null })\n\n // Register column\n const registerColumn = (config: TableColumnConfig) => {\n columns.value.push(config)\n }\n\n provide(TABLE_REGISTER_COLUMN_KEY, registerColumn)\n provide(TABLE_COLUMNS_KEY, columns)\n\n // Sorted data\n const sortedData = computed(() => {\n if (!sortState.prop || !sortState.order) {\n return props.data\n }\n\n const data = [...props.data]\n const { prop, order } = sortState\n\n return data.sort((a, b) => {\n const aVal = a[prop]\n const bVal = b[prop]\n\n if (aVal === bVal) { return 0 }\n\n const result = aVal > bVal ? 1 : -1\n return order === 'ascending' ? result : -result\n })\n })\n\n // Handle sort\n const handleSort = (column: TableColumnConfig) => {\n if (!column.sortable || !column.prop) { return }\n\n if (sortState.prop === column.prop) {\n if (sortState.order === 'ascending') {\n sortState.order = 'descending'\n }\n else if (sortState.order === 'descending') {\n sortState.prop = null\n sortState.order = null\n }\n else {\n sortState.order = 'ascending'\n }\n }\n else {\n sortState.prop = column.prop\n sortState.order = 'ascending'\n }\n }\n\n // Get row key\n const getRowKey = (row: any, index: number): string => {\n if (typeof props.rowKey === 'function') {\n return props.rowKey(row)\n }\n if (typeof props.rowKey === 'string' && props.rowKey) {\n return row[props.rowKey]\n }\n return String(index)\n }\n\n // Render table header\n const renderHeader = () => {\n return h('thead', { class: 'qxs-table__header' }, [\n h('tr', {}, columns.value.map((column) => {\n const thClass = [\n 'qxs-table__cell',\n `qxs-table__cell--${column.align || 'left'}`,\n {\n 'qxs-table__cell--sortable': column.sortable,\n 'is-sorting': sortState.prop === column.prop,\n },\n ]\n\n const thStyle: Record<string, string> = {}\n if (column.width) {\n thStyle.width = typeof column.width === 'number' ? `${column.width}px` : column.width\n }\n if (column.minWidth) {\n thStyle.minWidth = typeof column.minWidth === 'number' ? `${column.minWidth}px` : column.minWidth\n }\n\n const headerContent = column.renderHeader ? column.renderHeader() : column.label\n\n const sortIcon = column.sortable\n ? h('span', { class: 'qxs-table__sort-icon' }, [\n h('i', {\n class: [\n 'qxs-table__sort-caret',\n 'ascending',\n { 'is-active': sortState.prop === column.prop && sortState.order === 'ascending' },\n ],\n }),\n h('i', {\n class: [\n 'qxs-table__sort-caret',\n 'descending',\n { 'is-active': sortState.prop === column.prop && sortState.order === 'descending' },\n ],\n }),\n ])\n : null\n\n return h('th', {\n class: thClass,\n style: thStyle,\n onClick: () => handleSort(column),\n }, [\n h('div', { class: 'qxs-table__cell-content' }, [\n headerContent,\n sortIcon,\n ]),\n ])\n })),\n ])\n }\n\n // Render table body\n const renderBody = () => {\n if (!sortedData.value.length) {\n return h('tbody', { class: 'qxs-table__body' }, [\n h('tr', { class: 'qxs-table__empty-row' }, [\n h('td', {\n class: 'qxs-table__empty-cell',\n colspan: columns.value.length,\n }, [\n h('div', { class: 'qxs-table__empty-text' }, [\n slots.empty ? slots.empty() : props.emptyText,\n ]),\n ]),\n ]),\n ])\n }\n\n return h('tbody', { class: 'qxs-table__body' }, sortedData.value.map((row, rowIndex) => {\n const rowClass = [\n 'qxs-table__row',\n {\n 'qxs-table__row--striped': props.stripe && rowIndex % 2 === 1,\n },\n ]\n\n return h('tr', {\n class: rowClass,\n key: getRowKey(row, rowIndex),\n }, columns.value.map((column) => {\n const tdClass = [\n 'qxs-table__cell',\n `qxs-table__cell--${column.align || 'left'}`,\n ]\n\n const tdStyle: Record<string, string> = {}\n if (column.width) {\n tdStyle.width = typeof column.width === 'number' ? `${column.width}px` : column.width\n }\n if (column.minWidth) {\n tdStyle.minWidth = typeof column.minWidth === 'number' ? `${column.minWidth}px` : column.minWidth\n }\n\n const cellContent = column.renderCell ? column.renderCell(row, rowIndex) : '--'\n\n return h('td', {\n class: tdClass,\n style: tdStyle,\n }, [\n h('div', { class: 'qxs-table__cell-content' }, [cellContent]),\n ])\n }))\n }))\n }\n\n return () => {\n // Render default slot to collect columns\n if (slots.default) {\n slots.default()\n }\n\n const tableClass = [\n 'qxs-table',\n {\n 'qxs-table--striped': props.stripe,\n 'qxs-table--border': props.border,\n },\n ]\n\n const tableStyle: Record<string, string> = {}\n if (props.height) {\n tableStyle.height = typeof props.height === 'number' ? `${props.height}px` : props.height\n }\n\n return h('div', {\n class: 'qxs-table-wrapper',\n style: tableStyle,\n }, [\n h('table', { class: tableClass }, [\n renderHeader(),\n renderBody(),\n ]),\n ])\n }\n },\n})\n\nexport default QxsTable\n"],"names":["TABLE_COLUMNS_KEY","Symbol","TABLE_REGISTER_COLUMN_KEY","QxsTableColumn","defineComponent","name","props","prop","type","String","default","label","width","Number","minWidth","align","sortable","Boolean","fixed","showOverflowTooltip","setup","_ref","slots","registerColumn","inject","columnConfig","renderHeader","header","h","renderCell","row","QxsTable","data","Array","stripe","border","height","rowKey","Function","emptyText","_ref2","columns","ref","sortState","reactive","order","provide","config","value","push","sortedData","computed","sort","a","b","aVal","bVal","result","getRowKey","index","class","map","column","thClass","thStyle","headerContent","sortIcon","style","onClick","handleSort","tableClass","tableStyle","length","rowIndex","rowClass","key","tdClass","tdStyle","cellContent","colspan","empty"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../../../packages/components/src/ui/tag/index.ts"],"sourcesContent":["import { defineComponent, h, type PropType } from 'vue'\n\nexport type TagType = 'primary' | 'success' | 'warning' | 'danger' | 'info'\nexport type TagSize = 'large' | 'default' | 'small'\nexport type TagEffect = 'dark' | 'light' | 'plain'\n\nexport const QxsTag = defineComponent({\n name: 'QxsTag',\n props: {\n type: { type: String as PropType<TagType>, default: 'primary' },\n size: { type: String as PropType<TagSize>, default: 'default' },\n effect: { type: String as PropType<TagEffect>, default: 'light' },\n closable: { type: Boolean, default: false },\n round: { type: Boolean, default: false },\n color: { type: String, default: '' },\n },\n emits: ['close', 'click'],\n setup(props, { slots, emit }) {\n const handleClose = (e: MouseEvent) => {\n e.stopPropagation()\n emit('close', e)\n }\n\n const handleClick = (e: MouseEvent) => {\n emit('click', e)\n }\n\n const getColorStyles = () => {\n if (!props.color) return {}\n
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../../../packages/components/src/ui/tag/index.ts"],"sourcesContent":["import { defineComponent, h, type PropType } from 'vue'\n\nexport type TagType = 'primary' | 'success' | 'warning' | 'danger' | 'info'\nexport type TagSize = 'large' | 'default' | 'small'\nexport type TagEffect = 'dark' | 'light' | 'plain'\n\nexport const QxsTag = defineComponent({\n name: 'QxsTag',\n props: {\n type: { type: String as PropType<TagType>, default: 'primary' },\n size: { type: String as PropType<TagSize>, default: 'default' },\n effect: { type: String as PropType<TagEffect>, default: 'light' },\n closable: { type: Boolean, default: false },\n round: { type: Boolean, default: false },\n color: { type: String, default: '' },\n },\n emits: ['close', 'click'],\n setup(props, { slots, emit }) {\n const handleClose = (e: MouseEvent) => {\n e.stopPropagation()\n emit('close', e)\n }\n\n const handleClick = (e: MouseEvent) => {\n emit('click', e)\n }\n\n const getColorStyles = () => {\n if (!props.color) { return {} }\n\n if (props.effect === 'dark') {\n return {\n backgroundColor: props.color,\n borderColor: props.color,\n color: '#fff',\n }\n }\n else if (props.effect === 'light') {\n return {\n backgroundColor: `${props.color}1a`,\n borderColor: `${props.color}4d`,\n color: props.color,\n }\n }\n else {\n return {\n backgroundColor: 'transparent',\n borderColor: props.color,\n color: props.color,\n }\n }\n }\n\n return () => h('span', {\n class: [\n 'qxs-tag',\n `qxs-tag--${props.type}`,\n `qxs-tag--${props.size}`,\n `qxs-tag--${props.effect}`,\n {\n 'is-round': props.round,\n 'is-closable': props.closable,\n },\n ],\n style: {\n display: 'inline-flex',\n alignItems: 'center',\n padding: props.size === 'large' ? '8px 16px' : props.size === 'small' ? '2px 8px' : '4px 12px',\n fontSize: props.size === 'large' ? '14px' : props.size === 'small' ? '12px' : '13px',\n borderRadius: props.round ? '9999px' : '4px',\n border: '1px solid',\n lineHeight: '1',\n whiteSpace: 'nowrap',\n ...getColorStyles(),\n },\n onClick: handleClick,\n }, [\n slots.default?.(),\n props.closable && h('span', {\n class: 'qxs-tag__close',\n onClick: handleClose,\n style: {\n marginLeft: '6px',\n cursor: 'pointer',\n fontSize: '12px',\n fontWeight: 'bold',\n },\n }, '×'),\n ])\n },\n})\n\nexport default QxsTag\n"],"names":["QxsTag","defineComponent","name","props","type","String","default","size","effect","closable","Boolean","round","color","emits","setup","_ref","slots","emit","handleClose","e","stopPropagation","handleClick","h","class","style","display","alignItems","padding","fontSize","borderRadius","border","lineHeight","whiteSpace","backgroundColor","borderColor","onClick","marginLeft","cursor","fontWeight"],"mappings":"yFAMO,MAAMA,EAASC,EAAAA,gBAAgB,CACpCC,KAAM,SACNC,MAAO,CACLC,KAAM,CAAEA,KAAMC,OAA6BC,QAAS,WACpDC,KAAM,CAAEH,KAAMC,OAA6BC,QAAS,WACpDE,OAAQ,CAAEJ,KAAMC,OAA+BC,QAAS,SACxDG,SAAU,CAAEL,KAAMM,QAASJ,SAAS,GACpCK,MAAO,CAAEP,KAAMM,QAASJ,SAAS,GACjCM,MAAO,CAAER,KAAMC,OAAQC,QAAS,KAElCO,MAAO,CAAC,QAAS,SACjBC,KAAAA,CAAMX,EAAAY,GAAwB,IAAjBC,MAAEA,EAAAC,KAAOA,GAAKF,EACzB,MAAMG,EAAeC,IACnBA,EAAEC,kBACFH,EAAK,QAASE,IAGVE,EAAeF,IACnBF,EAAK,QAASE,IA6BhB,MAAO,IAAMG,EAAAA,EAAE,OAAQ,CACrBC,MAAO,CACL,UACA,YAAYpB,EAAMC,OAClB,YAAYD,EAAMI,OAClB,YAAYJ,EAAMK,SAClB,CACE,WAAYL,EAAMQ,MAClB,cAAeR,EAAMM,WAGzBe,MAAO,CACLC,QAAS,cACTC,WAAY,SACZC,QAAwB,UAAfxB,EAAMI,KAAmB,WAA4B,UAAfJ,EAAMI,KAAmB,UAAY,WACpFqB,SAAyB,UAAfzB,EAAMI,KAAmB,OAAwB,UAAfJ,EAAMI,KAAmB,OAAS,OAC9EsB,aAAc1B,EAAMQ,MAAQ,SAAW,MACvCmB,OAAQ,YACRC,WAAY,IACZC,WAAY,YA5CT7B,EAAMS,MAEU,SAAjBT,EAAMK,OACD,CACLyB,gBAAiB9B,EAAMS,MACvBsB,YAAa/B,EAAMS,MACnBA,MAAO,QAGe,UAAjBT,EAAMK,OACN,CACLyB,gBAAiB,GAAG9B,EAAMS,UAC1BsB,YAAa,GAAG/B,EAAMS,UACtBA,MAAOT,EAAMS,OAIR,CACLqB,gBAAiB,cACjBC,YAAa/B,EAAMS,MACnBA,MAAOT,EAAMS,OApBU,CAAA,GA+C3BuB,QAASd,GACR,CACDL,EAAMV,YACNH,EAAMM,UAAYa,EAAAA,EAAE,OAAQ,CAC1BC,MAAO,iBACPY,QAASjB,EACTM,MAAO,CACLY,WAAY,MACZC,OAAQ,UACRT,SAAU,OACVU,WAAY,SAEb,MAEP"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("vue");exports.createCustomElementBridge=function(t){return e.defineComponent({name:t.name,inheritAttrs:!1,props:t.props,setup(o,r){let{attrs:n,slots:s,expose:u}=r;const l=e.ref(null);return t.createExpose&&u(t.createExpose(l)),()=>{const r={...n,ref:l};for(const e of Object.keys(t.props)){const t=o[e];void 0!==t&&(r[e]=t)}return e.h(t.tag,r,function(t){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const r=[];t.default&&r.push(...t.default());for(const n of o)"default"!==n&&t[n]&&r.push(...t[n]().map(t=>e.cloneVNode(t,{slot:n})));return r}(s,t.slotNames))}}})},exports.createNullableProp=function(){return{type:null,default:void 0}};
|
|
2
|
+
//# sourceMappingURL=wc-bridge.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wc-bridge.cjs","sources":["../../../../packages/components/src/wc-bridge.ts"],"sourcesContent":["import { cloneVNode, defineComponent, h, ref, type PropType, type SetupContext, type Slots, type VNode } from 'vue'\n\ntype ExposeFactory = (elRef: ReturnType<typeof ref<HTMLElement | null>>) => Record<string, unknown>\n\nfunction collectSlotChildren(slots: Slots, slotNames: string[] = []) {\n const children: VNode[] = []\n\n if (slots.default) {\n children.push(...slots.default())\n }\n\n for (const slotName of slotNames) {\n if (slotName === 'default' || !slots[slotName]) {\n continue\n }\n children.push(...slots[slotName]!().map(vnode => cloneVNode(vnode, { slot: slotName })))\n }\n\n return children\n}\n\nexport function createNullableProp<T>() {\n return {\n type: null as unknown as PropType<T>,\n default: undefined,\n }\n}\n\nexport function createCustomElementBridge(options: {\n name: string\n tag: string\n props: Record<string, any>\n slotNames?: string[]\n createExpose?: ExposeFactory\n}) {\n return defineComponent({\n name: options.name,\n inheritAttrs: false,\n props: options.props as any,\n setup(props: Record<string, unknown>, { attrs, slots, expose }: SetupContext) {\n const elementRef = ref<HTMLElement | null>(null)\n\n if (options.createExpose) {\n expose(options.createExpose(elementRef))\n }\n\n return () => {\n const bindings: Record<string, unknown> = {\n ...attrs,\n ref: elementRef,\n }\n\n for (const key of Object.keys(options.props)) {\n const value = (props as Record<string, unknown>)[key]\n if (value !== undefined) {\n bindings[key] = value\n }\n }\n\n return h(options.tag, bindings, collectSlotChildren(slots, options.slotNames))\n }\n },\n })\n}\n"],"names":["options","defineComponent","name","inheritAttrs","props","setup","_ref","attrs","slots","expose","elementRef","ref","createExpose","bindings","key","Object","keys","value","h","tag","slotNames","arguments","length","undefined","children","default","push","slotName","map","vnode","cloneVNode","slot","collectSlotChildren","type"],"mappings":"oEA4BO,SAAmCA,GAOxC,OAAOC,kBAAgB,CACrBC,KAAMF,EAAQE,KACdC,cAAc,EACdC,MAAOJ,EAAQI,MACfC,KAAAA,CAAMD,EAAAE,GAAwE,IAAxCC,MAAEA,EAAAC,MAAOA,EAAAC,OAAOA,GAAOH,EAC3D,MAAMI,EAAaC,EAAAA,IAAwB,MAM3C,OAJIX,EAAQY,cACVH,EAAOT,EAAQY,aAAaF,IAGvB,KACL,MAAMG,EAAoC,IACrCN,EACHI,IAAKD,GAGP,IAAA,MAAWI,KAAOC,OAAOC,KAAKhB,EAAQI,OAAQ,CAC5C,MAAMa,EAASb,EAAkCU,QACnC,IAAVG,IACFJ,EAASC,GAAOG,EAEpB,CAEA,OAAOC,EAAAA,EAAElB,EAAQmB,IAAKN,EAvD9B,SAA6BL,GAAwC,IAA1BY,EAAAC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAsB,GAC/D,MAAMG,EAAoB,GAEtBhB,EAAMiB,SACRD,EAASE,QAAQlB,EAAMiB,WAGzB,IAAA,MAAWE,KAAYP,EACJ,YAAbO,GAA2BnB,EAAMmB,IAGrCH,EAASE,QAAQlB,EAAMmB,KAAaC,IAAIC,GAASC,EAAAA,WAAWD,EAAO,CAAEE,KAAMJ,MAG7E,OAAOH,CACT,CAwCwCQ,CAAoBxB,EAAOR,EAAQoB,YAEvE,GAEJ,6BA1CO,WACL,MAAO,CACLa,KAAM,KACNR,aAAS,EAEb"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"use strict";var t=require("lit"),e=require("lit/decorators.js"),o=require("../base/define.cjs"),s=require("./shared-styles.cjs"),i=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=(t,e,o,s)=>{for(var r,a=s>1?void 0:s?n(e,o):e,l=t.length-1;l>=0;l--)(r=t[l])&&(a=(s?r(e,o,a):r(a))||a);return s&&a&&i(e,o,a),a};const a=[{value:2,label:"必须全部都是支持选项,方可下一步"},{value:1,label:"无需判断是否是支持选项"},{value:3,label:"包含全部支持选项,即可下一步"}],l=[{type:"single",label:"单选题"},{type:"multiple",label:"多选题"},{type:"blank_fill",label:"填空题"},{type:"text_fill",label:"问答题"},{type:"scale",label:"量表题"},{type:"sort",label:"排序题"},{type:"page_end",label:"分页符"}];exports.QxsSubjectAction=class extends t.LitElement{constructor(){super(...arguments),this["is-edit"]=!1,this["is-set"]=!1,this["is-key"]=!1,this["answer-check-type"]=1,this["show-other-option"]=!1,this["show-answer-setting"]=!1,this["show-key"]=!1,this["show-rich-text"]=!1,this["hide-add-rich-text"]=!1,this["show-delete-action"]=!0,this["show-save-action"]=!0,this["page-end"]=!1,this["show-move"]=!1,this["show-add"]=!0,this["show-jump"]=!1,this["exam-answer-relation-type"]=0,this._modalOpen=!1,this._currentCheckType=1,this._addMenuOpen=!1,this._handleDocumentClick=t=>{const e=t.composedPath(),o=this.shadowRoot?.querySelector(".add-menu-wrap");o&&!e.includes(o)&&(this._addMenuOpen=!1)}}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this._handleDocumentClick)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("click",this._handleDocumentClick)}updated(t){t.has("answer-check-type")&&(this._currentCheckType=this["answer-check-type"])}_emit(t,e){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:e??null}))}get _answerText(){return a.find(t=>t.value===this["answer-check-type"])?.label??""}get _showAnswerSetting(){return this["show-other-option"]||this["show-answer-setting"]}get _showKey(){return this["show-other-option"]||this["show-key"]}_renderEditMode(){return t.html`
|
|
2
|
+
<div class="left">
|
|
3
|
+
<span class="inline-actions">
|
|
4
|
+
${this["show-add"]?t.html`
|
|
5
|
+
<span class="add-menu-wrap">
|
|
6
|
+
<span class="link-btn" @click=${()=>{this._addMenuOpen=!this._addMenuOpen}}>在此题后加入新题</span>
|
|
7
|
+
${this._renderAddMenu()}
|
|
8
|
+
</span>
|
|
9
|
+
`:""}
|
|
10
|
+
${this["hide-add-rich-text"]?"":t.html`
|
|
11
|
+
<span class="link-btn" @click=${()=>this._emit("on-show-rich-text")}>
|
|
12
|
+
${this["show-rich-text"]?"删除题目描述(图文)":"+添加题目描述(图文)"}
|
|
13
|
+
</span>
|
|
14
|
+
`}
|
|
15
|
+
${this["show-jump"]?t.html`
|
|
16
|
+
<span class="link-btn" @click=${()=>this._emit("jump")}>${this["is-set"]?"编辑跳题逻辑":"设置跳题逻辑"}</span>
|
|
17
|
+
`:""}
|
|
18
|
+
${this._showAnswerSetting?t.html`
|
|
19
|
+
<span class="link-btn" @click=${()=>{this._modalOpen=!0}}>答题设置</span>
|
|
20
|
+
`:""}
|
|
21
|
+
${this._showKey?t.html`
|
|
22
|
+
<label class="checkbox-label">
|
|
23
|
+
<input type="checkbox" .checked=${this["is-key"]} @change=${t=>this._emit("set-key",{value:t.target.checked})} />
|
|
24
|
+
核心题
|
|
25
|
+
</label>
|
|
26
|
+
`:""}
|
|
27
|
+
</span>
|
|
28
|
+
</div>
|
|
29
|
+
<div class="right">
|
|
30
|
+
${this["show-delete-action"]?t.html`<button class="text-btn text-btn--danger btn-margin" @click=${()=>this._emit("delete")}>删除</button>`:""}
|
|
31
|
+
${this["show-save-action"]?t.html`<button class="text-btn text-btn--primary" @click=${()=>this._emit("save")}>完成编辑</button>`:""}
|
|
32
|
+
</div>
|
|
33
|
+
`}_renderViewMode(){return t.html`
|
|
34
|
+
<div class="left">
|
|
35
|
+
<span class="inline-actions">
|
|
36
|
+
${this._showKey?t.html`
|
|
37
|
+
<label class="checkbox-label disabled">
|
|
38
|
+
<input type="checkbox" disabled .checked=${this["is-key"]} /> 核心题
|
|
39
|
+
</label>
|
|
40
|
+
`:""}
|
|
41
|
+
${this._showAnswerSetting?t.html`
|
|
42
|
+
<span class="answer-text">${this._answerText}</span>
|
|
43
|
+
`:""}
|
|
44
|
+
${this["show-add"]?t.html`
|
|
45
|
+
<span class="add-menu-wrap">
|
|
46
|
+
<span class="link-btn" @click=${()=>{this._addMenuOpen=!this._addMenuOpen}}>在此题后加入新题</span>
|
|
47
|
+
${this._renderAddMenu()}
|
|
48
|
+
</span>
|
|
49
|
+
`:""}
|
|
50
|
+
${this["show-jump"]?t.html`
|
|
51
|
+
<span class="link-btn" @click=${()=>this._emit("jump")}>${this["is-set"]?"编辑跳题逻辑":"设置跳题逻辑"}</span>
|
|
52
|
+
`:""}
|
|
53
|
+
</span>
|
|
54
|
+
</div>
|
|
55
|
+
<div class="right">
|
|
56
|
+
${!this["is-set"]&&this["show-move"]?t.html`
|
|
57
|
+
<button class="text-btn text-btn--default" @click=${()=>this._emit("move","up")}>上移</button>
|
|
58
|
+
<button class="text-btn text-btn--default btn-margin" @click=${()=>this._emit("move","down")}>下移</button>
|
|
59
|
+
`:""}
|
|
60
|
+
${!this["is-set"]&&this["show-delete-action"]?t.html`<button class="text-btn text-btn--danger btn-margin" @click=${()=>this._emit("delete")}>删除</button>`:""}
|
|
61
|
+
${this["page-end"]||this["is-set"]?"":t.html`
|
|
62
|
+
<button class="text-btn text-btn--default" @click=${()=>this._emit("edit")}>编辑</button>
|
|
63
|
+
`}
|
|
64
|
+
</div>
|
|
65
|
+
`}_renderModal(){return this._modalOpen?t.html`
|
|
66
|
+
<div class="modal-backdrop" @click=${()=>{this._modalOpen=!1}}>
|
|
67
|
+
<div class="modal" @click=${t=>t.stopPropagation()}>
|
|
68
|
+
<div class="modal-header">
|
|
69
|
+
<span class="modal-title">答题设置</span>
|
|
70
|
+
<button class="modal-close" @click=${()=>{this._modalOpen=!1}}>✕</button>
|
|
71
|
+
</div>
|
|
72
|
+
<div class="modal-body">
|
|
73
|
+
${a.map(e=>t.html`
|
|
74
|
+
<label class="radio-item">
|
|
75
|
+
<input type="radio" name="answer-check-type" .value=${String(e.value)}
|
|
76
|
+
.checked=${this._currentCheckType===e.value}
|
|
77
|
+
@change=${()=>{this._currentCheckType=e.value}} />
|
|
78
|
+
${e.label}
|
|
79
|
+
</label>
|
|
80
|
+
`)}
|
|
81
|
+
</div>
|
|
82
|
+
<div class="modal-footer">
|
|
83
|
+
<button @click=${()=>{this._modalOpen=!1}}>取消</button>
|
|
84
|
+
<button class="primary" @click=${()=>{this._emit("set-answer-setting",{value:this._currentCheckType}),this._modalOpen=!1}}>保存</button>
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
`:""}_renderAddMenu(){return this._addMenuOpen?t.html`
|
|
89
|
+
<div class="add-menu">
|
|
90
|
+
${l.map(e=>t.html`
|
|
91
|
+
<button class="add-item" @click=${()=>{this._addMenuOpen=!1,this._emit("add",e.type)}}>${e.label}</button>
|
|
92
|
+
`)}
|
|
93
|
+
</div>
|
|
94
|
+
`:""}render(){return t.html`
|
|
95
|
+
<div class="action ${this["is-edit"]?"active":""}">
|
|
96
|
+
${this["is-edit"]?this._renderEditMode():this._renderViewMode()}
|
|
97
|
+
${this["is-set"]?t.html`<div class="has-set">*此题设置了跳题逻辑</div>`:""}
|
|
98
|
+
</div>
|
|
99
|
+
${this._renderModal()}
|
|
100
|
+
`}},exports.QxsSubjectAction.styles=[s.subjectControlResetStyles,t.css`
|
|
101
|
+
:host { display: block; font-family: inherit; font-size: 12px; }
|
|
102
|
+
|
|
103
|
+
.action { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; flex-wrap: wrap; gap: 8px; }
|
|
104
|
+
.action.active { background: transparent; }
|
|
105
|
+
.left { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
|
|
106
|
+
.right { display: flex; align-items: center; gap: 4px; }
|
|
107
|
+
|
|
108
|
+
.action-icon {
|
|
109
|
+
display: inline-flex; align-items: center; justify-content: center;
|
|
110
|
+
width: 32px; height: 32px; font-size: 18px; color: #303133;
|
|
111
|
+
cursor: pointer; border-radius: 6px; border: 1px solid #dcdfe6;
|
|
112
|
+
background: #fff; transition: all 0.2s;
|
|
113
|
+
}
|
|
114
|
+
.action-icon:hover { color: #3D61E3; border-color: #3D61E3; background: #ecf5ff; }
|
|
115
|
+
.action-icon--danger:hover { color: #f56c6c; border-color: #f56c6c; background: #fef0f0; }
|
|
116
|
+
.action-icon:disabled { color: #c0c4cc; cursor: not-allowed; opacity: 0.6; }
|
|
117
|
+
|
|
118
|
+
.text-btn {
|
|
119
|
+
display: inline-flex; align-items: center; gap: 4px;
|
|
120
|
+
padding: 6px 12px; font-size: 12px; border-radius: 3px;
|
|
121
|
+
cursor: pointer; border: 1px solid; transition: all 0.2s;
|
|
122
|
+
}
|
|
123
|
+
.text-btn--primary { background: #3D61E3; border-color: #3D61E3; color: #fff; }
|
|
124
|
+
.text-btn--primary:hover { background: #2D4CB8; border-color: #2D4CB8; }
|
|
125
|
+
.text-btn--default { background: #fff; border-color: #dcdfe6; color: #606266; }
|
|
126
|
+
.text-btn--default:hover { color: #3D61E3; border-color: #a0cfff; }
|
|
127
|
+
.text-btn--danger { background: #f56c6c; border-color: #f56c6c; color: #fff; }
|
|
128
|
+
.text-btn--danger:hover { background: #e05252; border-color: #e05252; }
|
|
129
|
+
|
|
130
|
+
.link-btn { background: none; border: none; color: #3D61E3; cursor: pointer; font-size: 12px; }
|
|
131
|
+
.link-btn:hover { color: #2D4CB8; }
|
|
132
|
+
|
|
133
|
+
.checkbox-label { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; color: #606266; user-select: none; font-size: 12px; }
|
|
134
|
+
.checkbox-label.disabled { cursor: not-allowed; opacity: 0.6; }
|
|
135
|
+
.has-set { display: flex; align-items: center; font-size: 12px; color: #bbb; }
|
|
136
|
+
.answer-text { font-size: 11px; color: #909399; max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
137
|
+
|
|
138
|
+
.btn-margin { margin-right: 10px; }
|
|
139
|
+
|
|
140
|
+
.modal-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 2000; display: flex; align-items: center; justify-content: center; }
|
|
141
|
+
.modal { background: #fff; border-radius: 4px; min-width: 360px; max-width: 460px; box-shadow: 0 12px 32px rgba(0,0,0,.1); }
|
|
142
|
+
.modal-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px 12px; border-bottom: 1px solid #e4e7ed; }
|
|
143
|
+
.modal-title { font-size: 14px; font-weight: 600; color: #303133; }
|
|
144
|
+
.modal-close { background: none; border: none; font-size: 16px; cursor: pointer; color: #909399; padding: 0; line-height: 1; }
|
|
145
|
+
.modal-close:hover { color: #3D61E3; }
|
|
146
|
+
.modal-body { padding: 20px; }
|
|
147
|
+
.modal-footer { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 20px; border-top: 1px solid #e4e7ed; }
|
|
148
|
+
.modal-footer button { padding: 6px 16px; font-size: 12px; border-radius: 3px; cursor: pointer; border: 1px solid #dcdfe6; background: #fff; color: #606266; }
|
|
149
|
+
.modal-footer button:hover { color: #3D61E3; border-color: #a0cfff; }
|
|
150
|
+
.modal-footer button.primary { background: #3D61E3; border-color: #3D61E3; color: #fff; }
|
|
151
|
+
.modal-footer button.primary:hover { background: #2D4CB8; border-color: #2D4CB8; }
|
|
152
|
+
|
|
153
|
+
.radio-item { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; cursor: pointer; font-size: 13px; color: #606266; }
|
|
154
|
+
.radio-item:last-child { margin-bottom: 0; }
|
|
155
|
+
|
|
156
|
+
.inline-actions { display: inline-flex; align-items: center; gap: 12px; flex-wrap: wrap; }
|
|
157
|
+
.add-menu-wrap { position: relative; display: inline-flex; }
|
|
158
|
+
.add-menu {
|
|
159
|
+
position: absolute; top: calc(100% + 6px); left: 0; z-index: 50;
|
|
160
|
+
display: grid; grid-template-columns: repeat(2, minmax(84px, 1fr)); gap: 8px;
|
|
161
|
+
min-width: 196px; padding: 10px; background: #fff; border: 1px solid #e4e7ed;
|
|
162
|
+
border-radius: 6px; box-shadow: 0 8px 20px rgba(0,0,0,.12);
|
|
163
|
+
}
|
|
164
|
+
.add-item {
|
|
165
|
+
display: inline-flex; align-items: center; justify-content: center;
|
|
166
|
+
min-height: 30px; padding: 0 10px; border: 1px solid #dcdfe6; border-radius: 4px;
|
|
167
|
+
background: #fff; color: #606266; font-size: 12px; cursor: pointer; transition: all .2s;
|
|
168
|
+
}
|
|
169
|
+
.add-item:hover { color: #3D61E3; border-color: #3D61E3; background: #ecf5ff; }
|
|
170
|
+
`],r([e.property({type:Boolean,attribute:"is-edit"})],exports.QxsSubjectAction.prototype,"is-edit",2),r([e.property({type:Boolean,attribute:"is-set"})],exports.QxsSubjectAction.prototype,"is-set",2),r([e.property({type:Boolean,attribute:"is-key"})],exports.QxsSubjectAction.prototype,"is-key",2),r([e.property({type:Number,attribute:"answer-check-type"})],exports.QxsSubjectAction.prototype,"answer-check-type",2),r([e.property({type:Boolean,attribute:"show-other-option"})],exports.QxsSubjectAction.prototype,"show-other-option",2),r([e.property({type:Boolean,attribute:"show-answer-setting"})],exports.QxsSubjectAction.prototype,"show-answer-setting",2),r([e.property({type:Boolean,attribute:"show-key"})],exports.QxsSubjectAction.prototype,"show-key",2),r([e.property({type:Boolean,attribute:"show-rich-text"})],exports.QxsSubjectAction.prototype,"show-rich-text",2),r([e.property({type:Boolean,attribute:"hide-add-rich-text"})],exports.QxsSubjectAction.prototype,"hide-add-rich-text",2),r([e.property({type:Boolean,attribute:"show-delete-action"})],exports.QxsSubjectAction.prototype,"show-delete-action",2),r([e.property({type:Boolean,attribute:"show-save-action"})],exports.QxsSubjectAction.prototype,"show-save-action",2),r([e.property({type:Boolean,attribute:"page-end"})],exports.QxsSubjectAction.prototype,"page-end",2),r([e.property({type:Boolean,attribute:"show-move"})],exports.QxsSubjectAction.prototype,"show-move",2),r([e.property({type:Boolean,attribute:"show-add"})],exports.QxsSubjectAction.prototype,"show-add",2),r([e.property({type:Boolean,attribute:"show-jump"})],exports.QxsSubjectAction.prototype,"show-jump",2),r([e.property({type:Number,attribute:"exam-answer-relation-type"})],exports.QxsSubjectAction.prototype,"exam-answer-relation-type",2),r([e.state()],exports.QxsSubjectAction.prototype,"_modalOpen",2),r([e.state()],exports.QxsSubjectAction.prototype,"_currentCheckType",2),r([e.state()],exports.QxsSubjectAction.prototype,"_addMenuOpen",2),exports.QxsSubjectAction=r([o.safeCustomElement("qxs-subject-action")],exports.QxsSubjectAction);
|
|
171
|
+
//# sourceMappingURL=action.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.cjs","sources":["../../../../packages/components/src/subject/action.ts"],"sourcesContent":["import { css, html, LitElement } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { safeCustomElement } from '../base/define'\nimport { subjectControlResetStyles } from './shared-styles'\n\nconst answerTextList = [\n { value: 2, label: '必须全部都是支持选项,方可下一步' },\n { value: 1, label: '无需判断是否是支持选项' },\n { value: 3, label: '包含全部支持选项,即可下一步' },\n]\n\nconst addSubjectOptions = [\n { type: 'single', label: '单选题' },\n { type: 'multiple', label: '多选题' },\n { type: 'blank_fill', label: '填空题' },\n { type: 'text_fill', label: '问答题' },\n { type: 'scale', label: '量表题' },\n { type: 'sort', label: '排序题' },\n { type: 'page_end', label: '分页符' },\n]\n\n@safeCustomElement('qxs-subject-action')\nexport class QxsSubjectAction extends LitElement {\n static styles = [subjectControlResetStyles, css`\n :host { display: block; font-family: inherit; font-size: 12px; }\n\n .action { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; flex-wrap: wrap; gap: 8px; }\n .action.active { background: transparent; }\n .left { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }\n .right { display: flex; align-items: center; gap: 4px; }\n\n .action-icon {\n display: inline-flex; align-items: center; justify-content: center;\n width: 32px; height: 32px; font-size: 18px; color: #303133;\n cursor: pointer; border-radius: 6px; border: 1px solid #dcdfe6;\n background: #fff; transition: all 0.2s;\n }\n .action-icon:hover { color: #3D61E3; border-color: #3D61E3; background: #ecf5ff; }\n .action-icon--danger:hover { color: #f56c6c; border-color: #f56c6c; background: #fef0f0; }\n .action-icon:disabled { color: #c0c4cc; cursor: not-allowed; opacity: 0.6; }\n\n .text-btn {\n display: inline-flex; align-items: center; gap: 4px;\n padding: 6px 12px; font-size: 12px; border-radius: 3px;\n cursor: pointer; border: 1px solid; transition: all 0.2s;\n }\n .text-btn--primary { background: #3D61E3; border-color: #3D61E3; color: #fff; }\n .text-btn--primary:hover { background: #2D4CB8; border-color: #2D4CB8; }\n .text-btn--default { background: #fff; border-color: #dcdfe6; color: #606266; }\n .text-btn--default:hover { color: #3D61E3; border-color: #a0cfff; }\n .text-btn--danger { background: #f56c6c; border-color: #f56c6c; color: #fff; }\n .text-btn--danger:hover { background: #e05252; border-color: #e05252; }\n\n .link-btn { background: none; border: none; color: #3D61E3; cursor: pointer; font-size: 12px; }\n .link-btn:hover { color: #2D4CB8; }\n\n .checkbox-label { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; color: #606266; user-select: none; font-size: 12px; }\n .checkbox-label.disabled { cursor: not-allowed; opacity: 0.6; }\n .has-set { display: flex; align-items: center; font-size: 12px; color: #bbb; }\n .answer-text { font-size: 11px; color: #909399; max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n\n .btn-margin { margin-right: 10px; }\n\n .modal-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 2000; display: flex; align-items: center; justify-content: center; }\n .modal { background: #fff; border-radius: 4px; min-width: 360px; max-width: 460px; box-shadow: 0 12px 32px rgba(0,0,0,.1); }\n .modal-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px 12px; border-bottom: 1px solid #e4e7ed; }\n .modal-title { font-size: 14px; font-weight: 600; color: #303133; }\n .modal-close { background: none; border: none; font-size: 16px; cursor: pointer; color: #909399; padding: 0; line-height: 1; }\n .modal-close:hover { color: #3D61E3; }\n .modal-body { padding: 20px; }\n .modal-footer { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 20px; border-top: 1px solid #e4e7ed; }\n .modal-footer button { padding: 6px 16px; font-size: 12px; border-radius: 3px; cursor: pointer; border: 1px solid #dcdfe6; background: #fff; color: #606266; }\n .modal-footer button:hover { color: #3D61E3; border-color: #a0cfff; }\n .modal-footer button.primary { background: #3D61E3; border-color: #3D61E3; color: #fff; }\n .modal-footer button.primary:hover { background: #2D4CB8; border-color: #2D4CB8; }\n\n .radio-item { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; cursor: pointer; font-size: 13px; color: #606266; }\n .radio-item:last-child { margin-bottom: 0; }\n\n .inline-actions { display: inline-flex; align-items: center; gap: 12px; flex-wrap: wrap; }\n .add-menu-wrap { position: relative; display: inline-flex; }\n .add-menu {\n position: absolute; top: calc(100% + 6px); left: 0; z-index: 50;\n display: grid; grid-template-columns: repeat(2, minmax(84px, 1fr)); gap: 8px;\n min-width: 196px; padding: 10px; background: #fff; border: 1px solid #e4e7ed;\n border-radius: 6px; box-shadow: 0 8px 20px rgba(0,0,0,.12);\n }\n .add-item {\n display: inline-flex; align-items: center; justify-content: center;\n min-height: 30px; padding: 0 10px; border: 1px solid #dcdfe6; border-radius: 4px;\n background: #fff; color: #606266; font-size: 12px; cursor: pointer; transition: all .2s;\n }\n .add-item:hover { color: #3D61E3; border-color: #3D61E3; background: #ecf5ff; }\n `]\n\n @property({ type: Boolean, attribute: 'is-edit' }) 'is-edit' = false\n @property({ type: Boolean, attribute: 'is-set' }) 'is-set' = false\n @property({ type: Boolean, attribute: 'is-key' }) 'is-key' = false\n @property({ type: Number, attribute: 'answer-check-type' }) 'answer-check-type' = 1\n @property({ type: Boolean, attribute: 'show-other-option' }) 'show-other-option' = false\n @property({ type: Boolean, attribute: 'show-answer-setting' }) 'show-answer-setting' = false\n @property({ type: Boolean, attribute: 'show-key' }) 'show-key' = false\n @property({ type: Boolean, attribute: 'show-rich-text' }) 'show-rich-text' = false\n @property({ type: Boolean, attribute: 'hide-add-rich-text' }) 'hide-add-rich-text' = false\n @property({ type: Boolean, attribute: 'show-delete-action' }) 'show-delete-action' = true\n @property({ type: Boolean, attribute: 'show-save-action' }) 'show-save-action' = true\n @property({ type: Boolean, attribute: 'page-end' }) 'page-end' = false\n @property({ type: Boolean, attribute: 'show-move' }) 'show-move' = false\n @property({ type: Boolean, attribute: 'show-add' }) 'show-add' = true\n @property({ type: Boolean, attribute: 'show-jump' }) 'show-jump' = false\n @property({ type: Number, attribute: 'exam-answer-relation-type' }) 'exam-answer-relation-type' = 0\n\n @state() private _modalOpen = false\n @state() private _currentCheckType = 1\n @state() private _addMenuOpen = false\n\n connectedCallback() {\n super.connectedCallback()\n document.addEventListener('click', this._handleDocumentClick)\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n document.removeEventListener('click', this._handleDocumentClick)\n }\n\n updated(changed: Map<string, unknown>) {\n if (changed.has('answer-check-type')) {\n this._currentCheckType = this['answer-check-type']\n }\n }\n\n private _handleDocumentClick = (e: MouseEvent) => {\n const path = e.composedPath()\n const wrap = this.shadowRoot?.querySelector('.add-menu-wrap')\n if (wrap && !path.includes(wrap)) {\n this._addMenuOpen = false\n }\n }\n\n private _emit(name: string, detail?: unknown) {\n this.dispatchEvent(new CustomEvent(name, { bubbles: true, composed: true, detail: detail ?? null }))\n }\n\n private get _answerText() {\n return answerTextList.find(i => i.value === this['answer-check-type'])?.label ?? ''\n }\n\n private get _showAnswerSetting() {\n return this['show-other-option'] || this['show-answer-setting']\n }\n\n private get _showKey() {\n return this['show-other-option'] || this['show-key']\n }\n\n private _renderEditMode() {\n return html`\n <div class=\"left\">\n <span class=\"inline-actions\">\n ${this['show-add']\n ? html`\n <span class=\"add-menu-wrap\">\n <span class=\"link-btn\" @click=${() => { this._addMenuOpen = !this._addMenuOpen }}>在此题后加入新题</span>\n ${this._renderAddMenu()}\n </span>\n `\n : ''}\n ${!this['hide-add-rich-text']\n ? html`\n <span class=\"link-btn\" @click=${() => this._emit('on-show-rich-text')}>\n ${this['show-rich-text'] ? '删除题目描述(图文)' : '+添加题目描述(图文)'}\n </span>\n `\n : ''}\n ${this['show-jump']\n ? html`\n <span class=\"link-btn\" @click=${() => this._emit('jump')}>${this['is-set'] ? '编辑跳题逻辑' : '设置跳题逻辑'}</span>\n `\n : ''}\n ${this._showAnswerSetting\n ? html`\n <span class=\"link-btn\" @click=${() => { this._modalOpen = true }}>答题设置</span>\n `\n : ''}\n ${this._showKey\n ? html`\n <label class=\"checkbox-label\">\n <input type=\"checkbox\" .checked=${this['is-key']} @change=${(e: Event) => this._emit('set-key', { value: (e.target as HTMLInputElement).checked })} />\n 核心题\n </label>\n `\n : ''}\n </span>\n </div>\n <div class=\"right\">\n ${this['show-delete-action']\n ? html`<button class=\"text-btn text-btn--danger btn-margin\" @click=${() => this._emit('delete')}>删除</button>`\n : ''}\n ${this['show-save-action']\n ? html`<button class=\"text-btn text-btn--primary\" @click=${() => this._emit('save')}>完成编辑</button>`\n : ''}\n </div>\n `\n }\n\n private _renderViewMode() {\n return html`\n <div class=\"left\">\n <span class=\"inline-actions\">\n ${this._showKey\n ? html`\n <label class=\"checkbox-label disabled\">\n <input type=\"checkbox\" disabled .checked=${this['is-key']} /> 核心题\n </label>\n `\n : ''}\n ${this._showAnswerSetting\n ? html`\n <span class=\"answer-text\">${this._answerText}</span>\n `\n : ''}\n ${this['show-add']\n ? html`\n <span class=\"add-menu-wrap\">\n <span class=\"link-btn\" @click=${() => { this._addMenuOpen = !this._addMenuOpen }}>在此题后加入新题</span>\n ${this._renderAddMenu()}\n </span>\n `\n : ''}\n ${this['show-jump']\n ? html`\n <span class=\"link-btn\" @click=${() => this._emit('jump')}>${this['is-set'] ? '编辑跳题逻辑' : '设置跳题逻辑'}</span>\n `\n : ''}\n </span>\n </div>\n <div class=\"right\">\n ${!this['is-set'] && this['show-move']\n ? html`\n <button class=\"text-btn text-btn--default\" @click=${() => this._emit('move', 'up')}>上移</button>\n <button class=\"text-btn text-btn--default btn-margin\" @click=${() => this._emit('move', 'down')}>下移</button>\n `\n : ''}\n ${!this['is-set'] && this['show-delete-action']\n ? html`<button class=\"text-btn text-btn--danger btn-margin\" @click=${() => this._emit('delete')}>删除</button>`\n : ''}\n ${!this['page-end'] && !this['is-set']\n ? html`\n <button class=\"text-btn text-btn--default\" @click=${() => this._emit('edit')}>编辑</button>\n `\n : ''}\n </div>\n `\n }\n\n private _renderModal() {\n if (!this._modalOpen) { return '' }\n return html`\n <div class=\"modal-backdrop\" @click=${() => { this._modalOpen = false }}>\n <div class=\"modal\" @click=${(e: Event) => e.stopPropagation()}>\n <div class=\"modal-header\">\n <span class=\"modal-title\">答题设置</span>\n <button class=\"modal-close\" @click=${() => { this._modalOpen = false }}>✕</button>\n </div>\n <div class=\"modal-body\">\n ${answerTextList.map(item => html`\n <label class=\"radio-item\">\n <input type=\"radio\" name=\"answer-check-type\" .value=${String(item.value)}\n .checked=${this._currentCheckType === item.value}\n @change=${() => { this._currentCheckType = item.value }} />\n ${item.label}\n </label>\n `)}\n </div>\n <div class=\"modal-footer\">\n <button @click=${() => { this._modalOpen = false }}>取消</button>\n <button class=\"primary\" @click=${() => {\n this._emit('set-answer-setting', { value: this._currentCheckType })\n this._modalOpen = false\n }}>保存</button>\n </div>\n </div>\n </div>\n `\n }\n\n private _renderAddMenu() {\n if (!this._addMenuOpen) { return '' }\n return html`\n <div class=\"add-menu\">\n ${addSubjectOptions.map(item => html`\n <button class=\"add-item\" @click=${() => {\n this._addMenuOpen = false\n this._emit('add', item.type)\n }}>${item.label}</button>\n `)}\n </div>\n `\n }\n\n render() {\n return html`\n <div class=\"action ${this['is-edit'] ? 'active' : ''}\">\n ${this['is-edit'] ? this._renderEditMode() : this._renderViewMode()}\n ${this['is-set'] ? html`<div class=\"has-set\">*此题设置了跳题逻辑</div>` : ''}\n </div>\n ${this._renderModal()}\n `\n }\n}\n\nexport function register() {}\n"],"names":["answerTextList","value","label","addSubjectOptions","type","QxsSubjectAction","LitElement","constructor","super","arguments","this","_modalOpen","_currentCheckType","_addMenuOpen","_handleDocumentClick","e","path","composedPath","wrap","shadowRoot","querySelector","includes","connectedCallback","document","addEventListener","disconnectedCallback","removeEventListener","updated","changed","has","_emit","name","detail","dispatchEvent","CustomEvent","bubbles","composed","_answerText","find","i","_showAnswerSetting","_showKey","_renderEditMode","html","_renderAddMenu","target","checked","_renderViewMode","_renderModal","stopPropagation","map","item","String","render","styles","subjectControlResetStyles","css","__decorateClass","property","Boolean","attribute","prototype","Number","state","safeCustomElement"],"mappings":"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"}
|