ll-plus 2.4.7 → 2.4.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/component.mjs +3 -0
- package/es/component.mjs.map +1 -1
- package/es/components/advanced-filtering/index.d.ts +336 -318
- package/es/components/advanced-filtering/src/advanced-filtering.vue.d.ts +170 -161
- package/es/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +163 -153
- package/es/components/advanced-filtering/src/components/advanced-filtering-tags.vue.d.ts +4 -4
- package/es/components/api-component/index.d.ts +32 -32
- package/es/components/api-component/src/api-component.vue.d.ts +32 -32
- package/es/components/api-component/src/components/api-modal.vue.d.ts +6 -6
- package/es/components/api-component/src/components/body-component.vue.d.ts +14 -14
- package/es/components/api-component/src/components/click-input.vue.d.ts +10 -10
- package/es/components/api-component/src/components/params-table-row.vue.d.ts +12 -12
- package/es/components/api-component/src/components/params-table.vue.d.ts +14 -14
- package/es/components/api-component/src/config/api-modal.d.ts +1 -1
- package/es/components/api-component/src/config/click-input.d.ts +1 -1
- package/es/components/avatar/index.d.ts +19 -51
- package/es/components/avatar/src/avatar.d.ts +8 -38
- package/es/components/avatar/src/avatar.vue.d.ts +19 -51
- package/es/components/checkbox/index.d.ts +217 -217
- package/es/components/checkbox/src/checkbox-group.vue.d.ts +217 -217
- package/es/components/checkbox/src/checkbox.d.ts +56 -56
- package/es/components/code-editor/index.d.ts +2 -2
- package/es/components/code-editor/src/code-editor.vue.d.ts +2 -2
- package/es/components/cropper/index.d.ts +1485 -0
- package/es/components/cropper/src/cropper-image.d.ts +51 -0
- package/es/components/cropper/src/cropper-image.vue.d.ts +93 -0
- package/es/components/cropper/src/cropper-modal.vue.d.ts +1391 -0
- package/es/components/drawer/index.d.ts +11 -11
- package/es/components/drawer/src/components/second-confirmation/index.d.ts +9 -9
- package/es/components/drawer/src/components/second-confirmation/src/second-confirmation.vue.d.ts +9 -9
- package/es/components/drawer/src/drawer.vue.d.ts +11 -11
- package/es/components/easy-cron/index.d.ts +82 -82
- package/es/components/easy-cron/src/components/easy-cron-inner.vue.d.ts +77 -77
- package/es/components/easy-cron/src/components/easy-cron-modal.vue.d.ts +77 -77
- package/es/components/easy-cron/src/easy-cron.vue.d.ts +82 -82
- package/es/components/empty/index.d.ts +4 -0
- package/es/components/empty/src/empty.d.ts +1 -0
- package/es/components/empty/src/empty.vue.d.ts +4 -0
- package/es/components/form/index.d.ts +166 -150
- package/es/components/form/src/components/form-component.vue.d.ts +9 -2
- package/es/components/form/src/config/form-component.d.ts +4 -1
- package/es/components/form/src/config/form.d.ts +63 -57
- package/es/components/form/src/form.vue.d.ts +157 -148
- package/es/components/index.d.ts +1 -0
- package/es/components/input/index.d.ts +31 -31
- package/es/components/input/src/input.vue.d.ts +31 -31
- package/es/components/key-value/index.d.ts +774 -720
- package/es/components/key-value/src/components/key-value-item.vue.d.ts +258 -240
- package/es/components/key-value/src/key-value.vue.d.ts +774 -720
- package/es/components/modal/index.d.ts +4 -4
- package/es/components/modal/src/modal.vue.d.ts +4 -4
- package/es/components/rich-text-editor/index.d.ts +1 -1
- package/es/components/rich-text-editor/src/rich-text-editor.vue.d.ts +1 -1
- package/es/components/select/index.d.ts +11 -11
- package/es/components/select/src/select.vue.d.ts +11 -11
- package/es/components/select-group/index.d.ts +6 -6
- package/es/components/select-group/src/select-group.d.ts +1 -1
- package/es/components/select-group/src/select-group.vue.d.ts +6 -6
- package/es/components/table/index.d.ts +6 -23
- package/es/components/table/src/components/main-table.vue.d.ts +2 -15
- package/es/components/table/src/config/main-table.d.ts +0 -10
- package/es/components/table/src/config/table.d.ts +2 -4
- package/es/components/table/src/table.vue.d.ts +6 -23
- package/es/components/textarea/index.d.ts +5 -5
- package/es/components/textarea/src/textarea.vue.d.ts +5 -5
- package/es/components/tooltip/index.d.ts +4 -4
- package/es/components/tooltip/src/tooltip.d.ts +1 -1
- package/es/components/tooltip/src/tooltip.vue.d.ts +4 -4
- package/es/components/tree-search/index.d.ts +15 -15
- package/es/components/tree-search/src/config/tree-search.d.ts +4 -4
- package/es/components/tree-search/src/tree-search.vue.d.ts +15 -15
- package/es/components/upload-drag/index.d.ts +4 -4
- package/es/components/upload-drag/src/upload-drag.vue.d.ts +4 -4
- package/es/index.mjs +3 -1
- package/es/index.mjs.map +1 -1
- package/es/node_modules/.pnpm/@vueuse_shared@10.9.0_vue@3.4.25/node_modules/@vueuse/shared/index.mjs +1576 -0
- package/es/node_modules/.pnpm/@vueuse_shared@10.9.0_vue@3.4.25/node_modules/@vueuse/shared/index.mjs.map +1 -0
- package/es/node_modules/.pnpm/vue-demi@0.14.7_vue@3.4.25/node_modules/vue-demi/lib/index.mjs +30 -0
- package/es/node_modules/.pnpm/vue-demi@0.14.7_vue@3.4.25/node_modules/vue-demi/lib/index.mjs.map +1 -0
- package/es/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue2.mjs +5 -15
- package/es/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue2.mjs.map +1 -1
- package/es/packages/components/avatar/src/avatar.mjs +2 -15
- package/es/packages/components/avatar/src/avatar.mjs.map +1 -1
- package/es/packages/components/avatar/src/avatar.vue2.mjs +40 -103
- package/es/packages/components/avatar/src/avatar.vue2.mjs.map +1 -1
- package/es/packages/components/checkbox/index.mjs.map +1 -1
- package/es/packages/components/cropper/index.mjs +12 -0
- package/es/packages/components/cropper/index.mjs.map +1 -0
- package/es/packages/components/cropper/src/cropper-image.mjs +77 -0
- package/es/packages/components/cropper/src/cropper-image.mjs.map +1 -0
- package/es/packages/components/cropper/src/cropper-image.vue.mjs +8 -0
- package/es/packages/components/cropper/src/cropper-image.vue.mjs.map +1 -0
- package/es/packages/components/cropper/src/cropper-image.vue2.mjs +137 -0
- package/es/packages/components/cropper/src/cropper-image.vue2.mjs.map +1 -0
- package/es/packages/components/cropper/src/cropper-modal.vue.mjs +8 -0
- package/es/packages/components/cropper/src/cropper-modal.vue.mjs.map +1 -0
- package/es/packages/components/cropper/src/cropper-modal.vue2.mjs +407 -0
- package/es/packages/components/cropper/src/cropper-modal.vue2.mjs.map +1 -0
- package/es/packages/components/empty/src/empty.mjs +7 -0
- package/es/packages/components/empty/src/empty.mjs.map +1 -1
- package/es/packages/components/empty/src/empty.vue2.mjs +4 -4
- package/es/packages/components/empty/src/empty.vue2.mjs.map +1 -1
- package/es/packages/components/form/index.mjs +1 -1
- package/es/packages/components/form/src/components/form-component.vue2.mjs +14 -9
- package/es/packages/components/form/src/components/form-component.vue2.mjs.map +1 -1
- package/es/packages/components/form/src/config/form-component.mjs +4 -1
- package/es/packages/components/form/src/config/form-component.mjs.map +1 -1
- package/es/packages/components/form/src/config/form.mjs +1 -1
- package/es/packages/components/form/src/config/form.mjs.map +1 -1
- package/es/packages/components/form/src/config/index.mjs +1 -1
- package/es/packages/components/form/src/form.vue2.mjs +12 -15
- package/es/packages/components/form/src/form.vue2.mjs.map +1 -1
- package/es/packages/components/index.mjs +3 -1
- package/es/packages/components/index.mjs.map +1 -1
- package/es/packages/components/select-group/src/select-group.mjs.map +1 -1
- package/es/packages/components/select-group/src/select-group.vue2.mjs +1 -0
- package/es/packages/components/select-group/src/select-group.vue2.mjs.map +1 -1
- package/es/packages/components/table/src/components/main-table.vue2.mjs +1 -6
- package/es/packages/components/table/src/components/main-table.vue2.mjs.map +1 -1
- package/es/packages/components/table/src/config/main-table.mjs +3 -3
- package/es/packages/components/table/src/config/main-table.mjs.map +1 -1
- package/es/packages/utils/file.mjs +13 -1
- package/es/packages/utils/file.mjs.map +1 -1
- package/es/packages/utils/index.mjs +1 -1
- package/es/utils/file.d.ts +4 -0
- package/global.d.ts +2 -0
- package/index.full.js +3907 -619
- package/index.full.min.js +41 -28
- package/index.full.min.js.map +1 -1
- package/index.full.min.mjs +40 -27
- package/index.full.min.mjs.map +1 -1
- package/index.full.mjs +3901 -621
- package/lib/component.js +92 -89
- package/lib/component.js.map +1 -1
- package/lib/components/advanced-filtering/index.d.ts +336 -318
- package/lib/components/advanced-filtering/src/advanced-filtering.vue.d.ts +170 -161
- package/lib/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +163 -153
- package/lib/components/advanced-filtering/src/components/advanced-filtering-tags.vue.d.ts +4 -4
- package/lib/components/api-component/index.d.ts +32 -32
- package/lib/components/api-component/src/api-component.vue.d.ts +32 -32
- package/lib/components/api-component/src/components/api-modal.vue.d.ts +6 -6
- package/lib/components/api-component/src/components/body-component.vue.d.ts +14 -14
- package/lib/components/api-component/src/components/click-input.vue.d.ts +10 -10
- package/lib/components/api-component/src/components/params-table-row.vue.d.ts +12 -12
- package/lib/components/api-component/src/components/params-table.vue.d.ts +14 -14
- package/lib/components/api-component/src/config/api-modal.d.ts +1 -1
- package/lib/components/api-component/src/config/click-input.d.ts +1 -1
- package/lib/components/avatar/index.d.ts +19 -51
- package/lib/components/avatar/src/avatar.d.ts +8 -38
- package/lib/components/avatar/src/avatar.vue.d.ts +19 -51
- package/lib/components/checkbox/index.d.ts +217 -217
- package/lib/components/checkbox/src/checkbox-group.vue.d.ts +217 -217
- package/lib/components/checkbox/src/checkbox.d.ts +56 -56
- package/lib/components/code-editor/index.d.ts +2 -2
- package/lib/components/code-editor/src/code-editor.vue.d.ts +2 -2
- package/lib/components/cropper/index.d.ts +1485 -0
- package/lib/components/cropper/src/cropper-image.d.ts +51 -0
- package/lib/components/cropper/src/cropper-image.vue.d.ts +93 -0
- package/lib/components/cropper/src/cropper-modal.vue.d.ts +1391 -0
- package/lib/components/drawer/index.d.ts +11 -11
- package/lib/components/drawer/src/components/second-confirmation/index.d.ts +9 -9
- package/lib/components/drawer/src/components/second-confirmation/src/second-confirmation.vue.d.ts +9 -9
- package/lib/components/drawer/src/drawer.vue.d.ts +11 -11
- package/lib/components/easy-cron/index.d.ts +82 -82
- package/lib/components/easy-cron/src/components/easy-cron-inner.vue.d.ts +77 -77
- package/lib/components/easy-cron/src/components/easy-cron-modal.vue.d.ts +77 -77
- package/lib/components/easy-cron/src/easy-cron.vue.d.ts +82 -82
- package/lib/components/empty/index.d.ts +4 -0
- package/lib/components/empty/src/empty.d.ts +1 -0
- package/lib/components/empty/src/empty.vue.d.ts +4 -0
- package/lib/components/form/index.d.ts +166 -150
- package/lib/components/form/src/components/form-component.vue.d.ts +9 -2
- package/lib/components/form/src/config/form-component.d.ts +4 -1
- package/lib/components/form/src/config/form.d.ts +63 -57
- package/lib/components/form/src/form.vue.d.ts +157 -148
- package/lib/components/index.d.ts +1 -0
- package/lib/components/input/index.d.ts +31 -31
- package/lib/components/input/src/input.vue.d.ts +31 -31
- package/lib/components/key-value/index.d.ts +774 -720
- package/lib/components/key-value/src/components/key-value-item.vue.d.ts +258 -240
- package/lib/components/key-value/src/key-value.vue.d.ts +774 -720
- package/lib/components/modal/index.d.ts +4 -4
- package/lib/components/modal/src/modal.vue.d.ts +4 -4
- package/lib/components/rich-text-editor/index.d.ts +1 -1
- package/lib/components/rich-text-editor/src/rich-text-editor.vue.d.ts +1 -1
- package/lib/components/select/index.d.ts +11 -11
- package/lib/components/select/src/select.vue.d.ts +11 -11
- package/lib/components/select-group/index.d.ts +6 -6
- package/lib/components/select-group/src/select-group.d.ts +1 -1
- package/lib/components/select-group/src/select-group.vue.d.ts +6 -6
- package/lib/components/table/index.d.ts +6 -23
- package/lib/components/table/src/components/main-table.vue.d.ts +2 -15
- package/lib/components/table/src/config/main-table.d.ts +0 -10
- package/lib/components/table/src/config/table.d.ts +2 -4
- package/lib/components/table/src/table.vue.d.ts +6 -23
- package/lib/components/textarea/index.d.ts +5 -5
- package/lib/components/textarea/src/textarea.vue.d.ts +5 -5
- package/lib/components/tooltip/index.d.ts +4 -4
- package/lib/components/tooltip/src/tooltip.d.ts +1 -1
- package/lib/components/tooltip/src/tooltip.vue.d.ts +4 -4
- package/lib/components/tree-search/index.d.ts +15 -15
- package/lib/components/tree-search/src/config/tree-search.d.ts +4 -4
- package/lib/components/tree-search/src/tree-search.vue.d.ts +15 -15
- package/lib/components/upload-drag/index.d.ts +4 -4
- package/lib/components/upload-drag/src/upload-drag.vue.d.ts +4 -4
- package/lib/index.js +101 -91
- package/lib/index.js.map +1 -1
- package/lib/node_modules/.pnpm/@vueuse_shared@10.9.0_vue@3.4.25/node_modules/@vueuse/shared/index.js +1696 -0
- package/lib/node_modules/.pnpm/@vueuse_shared@10.9.0_vue@3.4.25/node_modules/@vueuse/shared/index.js.map +1 -0
- package/lib/node_modules/.pnpm/vue-demi@0.14.7_vue@3.4.25/node_modules/vue-demi/lib/index.js +61 -0
- package/lib/node_modules/.pnpm/vue-demi@0.14.7_vue@3.4.25/node_modules/vue-demi/lib/index.js.map +1 -0
- package/lib/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue2.js +5 -15
- package/lib/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue2.js.map +1 -1
- package/lib/packages/components/avatar/src/avatar.js +2 -15
- package/lib/packages/components/avatar/src/avatar.js.map +1 -1
- package/lib/packages/components/avatar/src/avatar.vue2.js +39 -102
- package/lib/packages/components/avatar/src/avatar.vue2.js.map +1 -1
- package/lib/packages/components/checkbox/index.js.map +1 -1
- package/lib/packages/components/cropper/index.js +20 -0
- package/lib/packages/components/cropper/index.js.map +1 -0
- package/lib/packages/components/cropper/src/cropper-image.js +83 -0
- package/lib/packages/components/cropper/src/cropper-image.js.map +1 -0
- package/lib/packages/components/cropper/src/cropper-image.vue.js +12 -0
- package/lib/packages/components/cropper/src/cropper-image.vue.js.map +1 -0
- package/lib/packages/components/cropper/src/cropper-image.vue2.js +141 -0
- package/lib/packages/components/cropper/src/cropper-image.vue2.js.map +1 -0
- package/lib/packages/components/cropper/src/cropper-modal.vue.js +12 -0
- package/lib/packages/components/cropper/src/cropper-modal.vue.js.map +1 -0
- package/lib/packages/components/cropper/src/cropper-modal.vue2.js +411 -0
- package/lib/packages/components/cropper/src/cropper-modal.vue2.js.map +1 -0
- package/lib/packages/components/empty/src/empty.js +7 -0
- package/lib/packages/components/empty/src/empty.js.map +1 -1
- package/lib/packages/components/empty/src/empty.vue2.js +3 -3
- package/lib/packages/components/empty/src/empty.vue2.js.map +1 -1
- package/lib/packages/components/form/index.js +1 -0
- package/lib/packages/components/form/index.js.map +1 -1
- package/lib/packages/components/form/src/components/form-component.vue2.js +12 -7
- package/lib/packages/components/form/src/components/form-component.vue2.js.map +1 -1
- package/lib/packages/components/form/src/config/form-component.js +4 -0
- package/lib/packages/components/form/src/config/form-component.js.map +1 -1
- package/lib/packages/components/form/src/config/form.js +1 -1
- package/lib/packages/components/form/src/config/form.js.map +1 -1
- package/lib/packages/components/form/src/config/index.js +1 -0
- package/lib/packages/components/form/src/config/index.js.map +1 -1
- package/lib/packages/components/form/src/form.vue2.js +12 -15
- package/lib/packages/components/form/src/form.vue2.js.map +1 -1
- package/lib/packages/components/index.js +101 -91
- package/lib/packages/components/index.js.map +1 -1
- package/lib/packages/components/select-group/src/select-group.js.map +1 -1
- package/lib/packages/components/select-group/src/select-group.vue2.js +1 -0
- package/lib/packages/components/select-group/src/select-group.vue2.js.map +1 -1
- package/lib/packages/components/table/src/components/main-table.vue2.js +1 -6
- package/lib/packages/components/table/src/components/main-table.vue2.js.map +1 -1
- package/lib/packages/components/table/src/config/main-table.js +3 -3
- package/lib/packages/components/table/src/config/main-table.js.map +1 -1
- package/lib/packages/utils/file.js +13 -0
- package/lib/packages/utils/file.js.map +1 -1
- package/lib/packages/utils/index.js +1 -0
- package/lib/packages/utils/index.js.map +1 -1
- package/lib/utils/file.d.ts +4 -0
- package/package.json +2 -1
- package/theme-chalk/css/cropper.css +13 -0
- package/theme-chalk/css/index.css +9 -1
- package/types/packages/components/advanced-filtering/index.d.ts +336 -318
- package/types/packages/components/advanced-filtering/src/advanced-filtering.vue.d.ts +170 -161
- package/types/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +163 -153
- package/types/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue.d.ts +4 -4
- package/types/packages/components/api-component/index.d.ts +32 -32
- package/types/packages/components/api-component/src/api-component.vue.d.ts +32 -32
- package/types/packages/components/api-component/src/components/api-modal.vue.d.ts +6 -6
- package/types/packages/components/api-component/src/components/body-component.vue.d.ts +14 -14
- package/types/packages/components/api-component/src/components/click-input.vue.d.ts +10 -10
- package/types/packages/components/api-component/src/components/params-table-row.vue.d.ts +12 -12
- package/types/packages/components/api-component/src/components/params-table.vue.d.ts +14 -14
- package/types/packages/components/api-component/src/config/api-modal.d.ts +1 -1
- package/types/packages/components/api-component/src/config/click-input.d.ts +1 -1
- package/types/packages/components/avatar/index.d.ts +19 -51
- package/types/packages/components/avatar/src/avatar.d.ts +8 -38
- package/types/packages/components/avatar/src/avatar.vue.d.ts +19 -51
- package/types/packages/components/checkbox/index.d.ts +217 -217
- package/types/packages/components/checkbox/src/checkbox-group.vue.d.ts +217 -217
- package/types/packages/components/checkbox/src/checkbox.d.ts +56 -56
- package/types/packages/components/code-editor/index.d.ts +2 -2
- package/types/packages/components/code-editor/src/code-editor.vue.d.ts +2 -2
- package/types/packages/components/cropper/index.d.ts +1485 -0
- package/types/packages/components/cropper/src/cropper-image.d.ts +51 -0
- package/types/packages/components/cropper/src/cropper-image.vue.d.ts +93 -0
- package/types/packages/components/cropper/src/cropper-modal.vue.d.ts +1391 -0
- package/types/packages/components/drawer/index.d.ts +11 -11
- package/types/packages/components/drawer/src/components/second-confirmation/index.d.ts +9 -9
- package/types/packages/components/drawer/src/components/second-confirmation/src/second-confirmation.vue.d.ts +9 -9
- package/types/packages/components/drawer/src/drawer.vue.d.ts +11 -11
- package/types/packages/components/easy-cron/index.d.ts +82 -82
- package/types/packages/components/easy-cron/src/components/easy-cron-inner.vue.d.ts +77 -77
- package/types/packages/components/easy-cron/src/components/easy-cron-modal.vue.d.ts +77 -77
- package/types/packages/components/easy-cron/src/easy-cron.vue.d.ts +82 -82
- package/types/packages/components/empty/index.d.ts +4 -0
- package/types/packages/components/empty/src/empty.d.ts +1 -0
- package/types/packages/components/empty/src/empty.vue.d.ts +4 -0
- package/types/packages/components/form/index.d.ts +166 -150
- package/types/packages/components/form/src/components/form-component.vue.d.ts +9 -2
- package/types/packages/components/form/src/config/form-component.d.ts +4 -1
- package/types/packages/components/form/src/config/form.d.ts +63 -57
- package/types/packages/components/form/src/form.vue.d.ts +157 -148
- package/types/packages/components/index.d.ts +1 -0
- package/types/packages/components/input/index.d.ts +31 -31
- package/types/packages/components/input/src/input.vue.d.ts +31 -31
- package/types/packages/components/key-value/index.d.ts +774 -720
- package/types/packages/components/key-value/src/components/key-value-item.vue.d.ts +258 -240
- package/types/packages/components/key-value/src/key-value.vue.d.ts +774 -720
- package/types/packages/components/modal/index.d.ts +4 -4
- package/types/packages/components/modal/src/modal.vue.d.ts +4 -4
- package/types/packages/components/rich-text-editor/index.d.ts +1 -1
- package/types/packages/components/rich-text-editor/src/rich-text-editor.vue.d.ts +1 -1
- package/types/packages/components/select/index.d.ts +11 -11
- package/types/packages/components/select/src/select.vue.d.ts +11 -11
- package/types/packages/components/select-group/index.d.ts +6 -6
- package/types/packages/components/select-group/src/select-group.d.ts +1 -1
- package/types/packages/components/select-group/src/select-group.vue.d.ts +6 -6
- package/types/packages/components/table/index.d.ts +6 -23
- package/types/packages/components/table/src/components/main-table.vue.d.ts +2 -15
- package/types/packages/components/table/src/config/main-table.d.ts +0 -10
- package/types/packages/components/table/src/config/table.d.ts +2 -4
- package/types/packages/components/table/src/table.vue.d.ts +6 -23
- package/types/packages/components/textarea/index.d.ts +5 -5
- package/types/packages/components/textarea/src/textarea.vue.d.ts +5 -5
- package/types/packages/components/tooltip/index.d.ts +4 -4
- package/types/packages/components/tooltip/src/tooltip.d.ts +1 -1
- package/types/packages/components/tooltip/src/tooltip.vue.d.ts +4 -4
- package/types/packages/components/tree-search/index.d.ts +15 -15
- package/types/packages/components/tree-search/src/config/tree-search.d.ts +4 -4
- package/types/packages/components/tree-search/src/tree-search.vue.d.ts +15 -15
- package/types/packages/components/upload-drag/index.d.ts +4 -4
- package/types/packages/components/upload-drag/src/upload-drag.vue.d.ts +4 -4
- package/types/packages/utils/file.d.ts +4 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cropper-image.js","sources":["../../../../../../packages/components/cropper/src/cropper-image.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\n\nimport type { ExtractPropTypes, CSSProperties } from 'vue'\nimport type Cropper from 'cropperjs'\nimport type CropperImage from './cropper-image.vue'\nimport type CropperModal from './cropper-modal.vue'\n\nexport interface CropendResult {\n imgBase64: string\n imgInfo: Cropper.Data\n}\n\nexport const defaultCropperOptions: Cropper.Options = {\n aspectRatio: 1,\n zoomable: true,\n zoomOnTouch: true,\n zoomOnWheel: true,\n cropBoxMovable: true,\n cropBoxResizable: true,\n toggleDragModeOnDblclick: true,\n autoCrop: true,\n background: true,\n highlight: true,\n center: true,\n responsive: true,\n restore: true,\n checkCrossOrigin: true,\n checkOrientation: true,\n scalable: true,\n modal: true,\n guides: true,\n movable: true,\n rotatable: true\n}\n\nexport const cropperImageProps = buildProps({\n src: {\n type: String,\n required: true\n },\n alt: {\n type: String\n },\n circled: {\n type: Boolean,\n default: false\n },\n realTimePreview: {\n type: Boolean,\n default: true\n },\n height: {\n type: [String, Number],\n default: '360px'\n },\n crossorigin: {\n type: definePropType<'' | 'anonymous' | 'use-credentials' | undefined>(\n String\n ),\n default: undefined\n },\n imageStyle: {\n type: definePropType<CSSProperties>(Object),\n default: () => ({})\n },\n options: {\n type: definePropType<Cropper.Options>(Object),\n default: () => ({})\n }\n} as const)\n\nexport const cropperImageEmits = {\n cropend: (params: CropendResult) => !!params,\n onReady: (cropper: Cropper) => !!cropper,\n cropendError: () => true\n} as const\n\nexport const cropperModalProps = buildProps({\n circled: { type: Boolean, default: true },\n disabled: { type: Boolean, default: false },\n avatar: { type: String, default: '' }\n} as const)\n\nexport const cropperModalEmits = {\n confirm: (params: { blob: Blob; previewSource: string }) => !!params\n} as const\n\n// props\nexport type CropperImageProps = ExtractPropTypes<typeof cropperImageProps>\nexport type CropperModalProps = ExtractPropTypes<typeof cropperModalProps>\n\n// emits\nexport type CropperImageEmits = typeof cropperImageEmits\nexport type CropperModalEmits = typeof cropperModalEmits\n\n// instance\nexport type CropperImageInstance = InstanceType<typeof CropperImage>\nexport type CropperModalInstance = InstanceType<typeof CropperModal>\n"],"names":["buildProps","definePropType"],"mappings":";;;;;;AAYO,MAAM,qBAAyC,GAAA;AAAA,EACpD,WAAa,EAAA,CAAA;AAAA,EACb,QAAU,EAAA,IAAA;AAAA,EACV,WAAa,EAAA,IAAA;AAAA,EACb,WAAa,EAAA,IAAA;AAAA,EACb,cAAgB,EAAA,IAAA;AAAA,EAChB,gBAAkB,EAAA,IAAA;AAAA,EAClB,wBAA0B,EAAA,IAAA;AAAA,EAC1B,QAAU,EAAA,IAAA;AAAA,EACV,UAAY,EAAA,IAAA;AAAA,EACZ,SAAW,EAAA,IAAA;AAAA,EACX,MAAQ,EAAA,IAAA;AAAA,EACR,UAAY,EAAA,IAAA;AAAA,EACZ,OAAS,EAAA,IAAA;AAAA,EACT,gBAAkB,EAAA,IAAA;AAAA,EAClB,gBAAkB,EAAA,IAAA;AAAA,EAClB,QAAU,EAAA,IAAA;AAAA,EACV,KAAO,EAAA,IAAA;AAAA,EACP,MAAQ,EAAA,IAAA;AAAA,EACR,OAAS,EAAA,IAAA;AAAA,EACT,SAAW,EAAA,IAAA;AACb,EAAA;AAEO,MAAM,oBAAoBA,kBAAW,CAAA;AAAA,EAC1C,GAAK,EAAA;AAAA,IACH,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EACA,GAAK,EAAA;AAAA,IACH,IAAM,EAAA,MAAA;AAAA,GACR;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EACA,MAAQ,EAAA;AAAA,IACN,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,OAAA;AAAA,GACX;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAM,EAAAC,sBAAA;AAAA,MACJ,MAAA;AAAA,KACF;AAAA,IACA,OAAS,EAAA,KAAA,CAAA;AAAA,GACX;AAAA,EACA,UAAY,EAAA;AAAA,IACV,IAAA,EAAMA,uBAA8B,MAAM,CAAA;AAAA,IAC1C,OAAA,EAAS,OAAO,EAAC,CAAA;AAAA,GACnB;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAA,EAAMA,uBAAgC,MAAM,CAAA;AAAA,IAC5C,OAAA,EAAS,OAAO,EAAC,CAAA;AAAA,GACnB;AACF,CAAU,EAAA;AAEH,MAAM,iBAAoB,GAAA;AAAA,EAC/B,OAAS,EAAA,CAAC,MAA0B,KAAA,CAAC,CAAC,MAAA;AAAA,EACtC,OAAS,EAAA,CAAC,OAAqB,KAAA,CAAC,CAAC,OAAA;AAAA,EACjC,cAAc,MAAM,IAAA;AACtB,EAAA;AAEO,MAAM,oBAAoBD,kBAAW,CAAA;AAAA,EAC1C,OAAS,EAAA,EAAE,IAAM,EAAA,OAAA,EAAS,SAAS,IAAK,EAAA;AAAA,EACxC,QAAU,EAAA,EAAE,IAAM,EAAA,OAAA,EAAS,SAAS,KAAM,EAAA;AAAA,EAC1C,MAAQ,EAAA,EAAE,IAAM,EAAA,MAAA,EAAQ,SAAS,EAAG,EAAA;AACtC,CAAU,EAAA;AAEH,MAAM,iBAAoB,GAAA;AAAA,EAC/B,OAAS,EAAA,CAAC,MAAkD,KAAA,CAAC,CAAC,MAAA;AAChE;;;;;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var cropperImage_vue_vue_type_script_setup_true_lang = require('./cropper-image.vue2.js');
|
|
6
|
+
var _pluginVue_exportHelper = require('../../../../_virtual/_plugin-vue_export-helper.js');
|
|
7
|
+
|
|
8
|
+
"use strict";
|
|
9
|
+
var CropperImage = /* @__PURE__ */ _pluginVue_exportHelper.default(cropperImage_vue_vue_type_script_setup_true_lang.default, [["__file", "cropper-image.vue"]]);
|
|
10
|
+
|
|
11
|
+
exports.default = CropperImage;
|
|
12
|
+
//# sourceMappingURL=cropper-image.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cropper-image.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var vue = require('vue');
|
|
6
|
+
require('../../../utils/index.js');
|
|
7
|
+
var Cropper = require('cropperjs');
|
|
8
|
+
var index = require('../../../../node_modules/.pnpm/@vueuse_shared@10.9.0_vue@3.4.25/node_modules/@vueuse/shared/index.js');
|
|
9
|
+
var cropperImage = require('./cropper-image.js');
|
|
10
|
+
var createNamespace = require('../../../utils/create-namespace.js');
|
|
11
|
+
|
|
12
|
+
"use strict";
|
|
13
|
+
const _hoisted_1 = ["src", "alt", "crossorigin"];
|
|
14
|
+
var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
15
|
+
...{ name: "CropperImage" },
|
|
16
|
+
__name: "cropper-image",
|
|
17
|
+
props: cropperImage.cropperImageProps,
|
|
18
|
+
emits: cropperImage.cropperImageEmits,
|
|
19
|
+
setup(__props, { emit: __emit }) {
|
|
20
|
+
const props = __props;
|
|
21
|
+
const emits = __emit;
|
|
22
|
+
const bem = createNamespace.createNamespace("cropper-image");
|
|
23
|
+
const imgElRef = vue.ref();
|
|
24
|
+
const cropper = vue.ref();
|
|
25
|
+
const isReady = vue.ref(false);
|
|
26
|
+
const getImageStyle = vue.computed(() => {
|
|
27
|
+
return {
|
|
28
|
+
height: props.height,
|
|
29
|
+
maxWidth: "100%",
|
|
30
|
+
...props.imageStyle
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
const getWrapperStyle = vue.computed(() => {
|
|
34
|
+
return { height: `${props.height}`.replace(/px/, "") + "px" };
|
|
35
|
+
});
|
|
36
|
+
const init = async () => {
|
|
37
|
+
const imgEl = imgElRef.value;
|
|
38
|
+
if (!imgEl) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
cropper.value = new Cropper(imgEl, {
|
|
42
|
+
...cropperImage.defaultCropperOptions,
|
|
43
|
+
ready() {
|
|
44
|
+
isReady.value = true;
|
|
45
|
+
realTimeCroppered();
|
|
46
|
+
emits("onReady", cropper.value);
|
|
47
|
+
},
|
|
48
|
+
crop() {
|
|
49
|
+
debounceRealTimeCroppered();
|
|
50
|
+
},
|
|
51
|
+
zoom() {
|
|
52
|
+
debounceRealTimeCroppered();
|
|
53
|
+
},
|
|
54
|
+
cropmove() {
|
|
55
|
+
debounceRealTimeCroppered();
|
|
56
|
+
},
|
|
57
|
+
...props.options
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
const realTimeCroppered = () => {
|
|
61
|
+
props.realTimePreview && croppered();
|
|
62
|
+
};
|
|
63
|
+
const debounceRealTimeCroppered = index.useDebounceFn(realTimeCroppered, 80);
|
|
64
|
+
const croppered = () => {
|
|
65
|
+
if (!cropper.value) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const imgInfo = cropper.value.getData();
|
|
69
|
+
const canvas = props.circled ? getRoundedCanvas() : cropper.value.getCroppedCanvas();
|
|
70
|
+
canvas.toBlob((blob) => {
|
|
71
|
+
if (!blob) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const fileReader = new FileReader();
|
|
75
|
+
fileReader.readAsDataURL(blob);
|
|
76
|
+
fileReader.onloadend = (e) => {
|
|
77
|
+
emits("cropend", {
|
|
78
|
+
imgBase64: e.target?.result ?? "",
|
|
79
|
+
imgInfo
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
fileReader.onerror = () => {
|
|
83
|
+
emits("cropendError");
|
|
84
|
+
};
|
|
85
|
+
}, "image/png");
|
|
86
|
+
};
|
|
87
|
+
const getRoundedCanvas = () => {
|
|
88
|
+
const sourceCanvas = cropper.value.getCroppedCanvas();
|
|
89
|
+
const canvas = document.createElement("canvas");
|
|
90
|
+
const context = canvas.getContext("2d");
|
|
91
|
+
const width = sourceCanvas.width;
|
|
92
|
+
const height = sourceCanvas.height;
|
|
93
|
+
canvas.width = width;
|
|
94
|
+
canvas.height = height;
|
|
95
|
+
context.imageSmoothingEnabled = true;
|
|
96
|
+
context.drawImage(sourceCanvas, 0, 0, width, height);
|
|
97
|
+
context.globalCompositeOperation = "destination-in";
|
|
98
|
+
context.beginPath();
|
|
99
|
+
context.arc(
|
|
100
|
+
width / 2,
|
|
101
|
+
height / 2,
|
|
102
|
+
Math.min(width, height) / 2,
|
|
103
|
+
0,
|
|
104
|
+
2 * Math.PI,
|
|
105
|
+
true
|
|
106
|
+
);
|
|
107
|
+
context.fill();
|
|
108
|
+
return canvas;
|
|
109
|
+
};
|
|
110
|
+
vue.onMounted(init);
|
|
111
|
+
vue.onUnmounted(() => {
|
|
112
|
+
cropper.value?.destroy();
|
|
113
|
+
});
|
|
114
|
+
return (_ctx, _cache) => {
|
|
115
|
+
return vue.openBlock(), vue.createElementBlock(
|
|
116
|
+
"div",
|
|
117
|
+
{
|
|
118
|
+
class: vue.normalizeClass([vue.unref(bem).b(), props.circled ? vue.unref(bem).is("circled") : ""]),
|
|
119
|
+
style: vue.normalizeStyle(getWrapperStyle.value)
|
|
120
|
+
},
|
|
121
|
+
[
|
|
122
|
+
vue.withDirectives(vue.createElementVNode("img", {
|
|
123
|
+
ref_key: "imgElRef",
|
|
124
|
+
ref: imgElRef,
|
|
125
|
+
src: _ctx.src,
|
|
126
|
+
alt: _ctx.alt,
|
|
127
|
+
crossorigin: _ctx.crossorigin,
|
|
128
|
+
style: vue.normalizeStyle(getImageStyle.value)
|
|
129
|
+
}, null, 12, _hoisted_1), [
|
|
130
|
+
[vue.vShow, isReady.value]
|
|
131
|
+
])
|
|
132
|
+
],
|
|
133
|
+
6
|
|
134
|
+
/* CLASS, STYLE */
|
|
135
|
+
);
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
exports.default = _sfc_main;
|
|
141
|
+
//# sourceMappingURL=cropper-image.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cropper-image.vue2.js","sources":["../../../../../../packages/components/cropper/src/cropper-image.vue"],"sourcesContent":["<template>\n <div\n :class=\"[bem.b(), props.circled ? bem.is('circled') : '']\"\n :style=\"getWrapperStyle\"\n >\n <img\n v-show=\"isReady\"\n ref=\"imgElRef\"\n :src=\"src\"\n :alt=\"alt\"\n :crossorigin=\"crossorigin\"\n :style=\"getImageStyle\"\n />\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { onMounted, ref, computed, onUnmounted, type CSSProperties } from 'vue'\nimport { createNamespace } from '@ll-plus/utils'\n//@ts-ignore\nimport Cropper from 'cropperjs'\n// import 'cropperjs/dist/cropper.css'\nimport { useDebounceFn } from '@vueuse/shared'\nimport {\n cropperImageProps,\n cropperImageEmits,\n defaultCropperOptions,\n type CropendResult\n} from './cropper-image'\n\ndefineOptions({ name: 'CropperImage' })\nconst props = defineProps(cropperImageProps)\nconst emits = defineEmits(cropperImageEmits)\n\nconst bem = createNamespace('cropper-image')\n\nconst imgElRef = ref<HTMLImageElement>()\nconst cropper = ref<Cropper>()\nconst isReady = ref(false)\nconst getImageStyle = computed((): CSSProperties => {\n return {\n height: props.height,\n maxWidth: '100%',\n ...props.imageStyle\n }\n})\nconst getWrapperStyle = computed((): CSSProperties => {\n return { height: `${props.height}`.replace(/px/, '') + 'px' }\n})\n\nconst init = async () => {\n const imgEl = imgElRef.value\n if (!imgEl) {\n return\n }\n cropper.value = new Cropper(imgEl, {\n ...defaultCropperOptions,\n ready() {\n isReady.value = true\n realTimeCroppered()\n //@ts-ignore\n emits('onReady', cropper.value)\n },\n crop() {\n debounceRealTimeCroppered()\n },\n zoom() {\n debounceRealTimeCroppered()\n },\n cropmove() {\n debounceRealTimeCroppered()\n },\n ...props.options\n })\n}\n\n// Real-time display preview\nconst realTimeCroppered = () => {\n props.realTimePreview && croppered()\n}\n\nconst debounceRealTimeCroppered = useDebounceFn(realTimeCroppered, 80)\n\n// event: return base64 and width and height information after cropping\nconst croppered = () => {\n if (!cropper.value) {\n return\n }\n const imgInfo = cropper.value.getData()\n const canvas = props.circled\n ? getRoundedCanvas()\n : cropper.value.getCroppedCanvas()\n canvas.toBlob(blob => {\n if (!blob) {\n return\n }\n const fileReader: FileReader = new FileReader()\n fileReader.readAsDataURL(blob)\n fileReader.onloadend = e => {\n emits('cropend', {\n imgBase64: e.target?.result ?? '',\n imgInfo\n } as CropendResult)\n }\n fileReader.onerror = () => {\n emits('cropendError')\n }\n }, 'image/png')\n}\n\n// Get a circular picture canvas\nconst getRoundedCanvas = () => {\n const sourceCanvas = cropper.value!.getCroppedCanvas()\n const canvas = document.createElement('canvas')\n const context = canvas.getContext('2d')!\n const width = sourceCanvas.width\n const height = sourceCanvas.height\n canvas.width = width\n canvas.height = height\n context.imageSmoothingEnabled = true\n context.drawImage(sourceCanvas, 0, 0, width, height)\n context.globalCompositeOperation = 'destination-in'\n context.beginPath()\n context.arc(\n width / 2,\n height / 2,\n Math.min(width, height) / 2,\n 0,\n 2 * Math.PI,\n true\n )\n context.fill()\n return canvas\n}\n\nonMounted(init)\n\nonUnmounted(() => {\n cropper.value?.destroy()\n})\n</script>\n"],"names":["createNamespace","ref","computed","defaultCropperOptions","useDebounceFn","onMounted","onUnmounted"],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var cropperModal_vue_vue_type_script_setup_true_lang = require('./cropper-modal.vue2.js');
|
|
6
|
+
var _pluginVue_exportHelper = require('../../../../_virtual/_plugin-vue_export-helper.js');
|
|
7
|
+
|
|
8
|
+
"use strict";
|
|
9
|
+
var CropperModal = /* @__PURE__ */ _pluginVue_exportHelper.default(cropperModal_vue_vue_type_script_setup_true_lang.default, [["__file", "cropper-modal.vue"]]);
|
|
10
|
+
|
|
11
|
+
exports.default = CropperModal;
|
|
12
|
+
//# sourceMappingURL=cropper-modal.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cropper-modal.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
|
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var vue = require('vue');
|
|
6
|
+
var antDesignVue = require('ant-design-vue');
|
|
7
|
+
require('../../../utils/index.js');
|
|
8
|
+
var cropperImage$1 = require('./cropper-image.vue.js');
|
|
9
|
+
var cropperImage = require('./cropper-image.js');
|
|
10
|
+
var createNamespace = require('../../../utils/create-namespace.js');
|
|
11
|
+
var file = require('../../../utils/file.js');
|
|
12
|
+
|
|
13
|
+
"use strict";
|
|
14
|
+
const _hoisted_1 = ["src"];
|
|
15
|
+
const _hoisted_2 = ["src"];
|
|
16
|
+
var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
17
|
+
...{ name: "LlCropperModal" },
|
|
18
|
+
__name: "cropper-modal",
|
|
19
|
+
props: cropperImage.cropperModalProps,
|
|
20
|
+
emits: cropperImage.cropperModalEmits,
|
|
21
|
+
setup(__props, { emit: __emit }) {
|
|
22
|
+
const props = __props;
|
|
23
|
+
const emits = __emit;
|
|
24
|
+
const bem = createNamespace.createNamespace("cropper-modal");
|
|
25
|
+
const src = vue.ref(props.avatar || "");
|
|
26
|
+
const avatar = vue.ref(props.avatar || "");
|
|
27
|
+
console.log(src, avatar, "avatar");
|
|
28
|
+
const open = vue.ref(false);
|
|
29
|
+
const previewSource = vue.ref("");
|
|
30
|
+
const cropper = vue.ref();
|
|
31
|
+
let scaleX = 1;
|
|
32
|
+
let scaleY = 1;
|
|
33
|
+
function handleBeforeUpload(file) {
|
|
34
|
+
const reader = new FileReader();
|
|
35
|
+
reader.readAsDataURL(file);
|
|
36
|
+
src.value = "";
|
|
37
|
+
previewSource.value = "";
|
|
38
|
+
reader.onload = function(e) {
|
|
39
|
+
src.value = e.target?.result ?? "";
|
|
40
|
+
};
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
function handleOpen() {
|
|
44
|
+
open.value = true;
|
|
45
|
+
}
|
|
46
|
+
function handleCropend({ imgBase64 }) {
|
|
47
|
+
previewSource.value = imgBase64;
|
|
48
|
+
}
|
|
49
|
+
function handleReady(cropperInstance) {
|
|
50
|
+
cropper.value = cropperInstance;
|
|
51
|
+
}
|
|
52
|
+
function handlerToolbar(event, arg) {
|
|
53
|
+
if (event === "scaleX") {
|
|
54
|
+
scaleX = arg = scaleX === -1 ? 1 : -1;
|
|
55
|
+
}
|
|
56
|
+
if (event === "scaleY") {
|
|
57
|
+
scaleY = arg = scaleY === -1 ? 1 : -1;
|
|
58
|
+
}
|
|
59
|
+
cropper?.value?.[event]?.(arg);
|
|
60
|
+
}
|
|
61
|
+
async function handleOk() {
|
|
62
|
+
const blob = file.dataURLtoBlob(previewSource.value);
|
|
63
|
+
emits("confirm", { blob, previewSource: previewSource.value });
|
|
64
|
+
avatar.value = previewSource.value;
|
|
65
|
+
open.value = false;
|
|
66
|
+
}
|
|
67
|
+
const handleAvatarClick = (_, avatarSrc) => {
|
|
68
|
+
src.value = avatarSrc;
|
|
69
|
+
avatar.value = avatarSrc;
|
|
70
|
+
};
|
|
71
|
+
return (_ctx, _cache) => {
|
|
72
|
+
const _component_ll_icon = vue.resolveComponent("ll-icon");
|
|
73
|
+
const _component_ll_button = vue.resolveComponent("ll-button");
|
|
74
|
+
const _component_ll_tooltip = vue.resolveComponent("ll-tooltip");
|
|
75
|
+
const _component_ll_space = vue.resolveComponent("ll-space");
|
|
76
|
+
const _component_ll_avatar = vue.resolveComponent("ll-avatar");
|
|
77
|
+
const _component_ll_modal = vue.resolveComponent("ll-modal");
|
|
78
|
+
return vue.openBlock(), vue.createElementBlock(
|
|
79
|
+
vue.Fragment,
|
|
80
|
+
null,
|
|
81
|
+
[
|
|
82
|
+
vue.createVNode(_component_ll_modal, {
|
|
83
|
+
open: open.value,
|
|
84
|
+
title: "\u56FE\u7247\u88C1\u526A",
|
|
85
|
+
width: "800px",
|
|
86
|
+
keyboard: false,
|
|
87
|
+
"mask-closable": false,
|
|
88
|
+
"ok-text": "\u786E\u5B9A",
|
|
89
|
+
onCancel: _cache[8] || (_cache[8] = ($event) => open.value = false),
|
|
90
|
+
onOk: handleOk
|
|
91
|
+
}, {
|
|
92
|
+
default: vue.withCtx(() => [
|
|
93
|
+
vue.createElementVNode(
|
|
94
|
+
"div",
|
|
95
|
+
{
|
|
96
|
+
class: vue.normalizeClass(vue.unref(bem).b())
|
|
97
|
+
},
|
|
98
|
+
[
|
|
99
|
+
vue.createElementVNode(
|
|
100
|
+
"div",
|
|
101
|
+
{
|
|
102
|
+
class: vue.normalizeClass(vue.unref(bem).e("left"))
|
|
103
|
+
},
|
|
104
|
+
[
|
|
105
|
+
vue.createElementVNode(
|
|
106
|
+
"div",
|
|
107
|
+
{
|
|
108
|
+
class: vue.normalizeClass(vue.unref(bem).e("cropper"))
|
|
109
|
+
},
|
|
110
|
+
[
|
|
111
|
+
src.value ? (vue.openBlock(), vue.createBlock(cropperImage$1.default, {
|
|
112
|
+
key: 0,
|
|
113
|
+
src: src.value,
|
|
114
|
+
height: "300px",
|
|
115
|
+
circled: _ctx.circled,
|
|
116
|
+
onCropend: handleCropend,
|
|
117
|
+
onOnReady: handleReady
|
|
118
|
+
}, null, 8, ["src", "circled"])) : vue.createCommentVNode("v-if", true)
|
|
119
|
+
],
|
|
120
|
+
2
|
|
121
|
+
/* CLASS */
|
|
122
|
+
),
|
|
123
|
+
vue.createElementVNode(
|
|
124
|
+
"div",
|
|
125
|
+
{
|
|
126
|
+
class: vue.normalizeClass(vue.unref(bem).e("toolbar"))
|
|
127
|
+
},
|
|
128
|
+
[
|
|
129
|
+
vue.createVNode(vue.unref(antDesignVue.Upload), {
|
|
130
|
+
"file-list": [],
|
|
131
|
+
accept: "image/*",
|
|
132
|
+
"before-upload": handleBeforeUpload
|
|
133
|
+
}, {
|
|
134
|
+
default: vue.withCtx(() => [
|
|
135
|
+
vue.createVNode(_component_ll_tooltip, {
|
|
136
|
+
title: "\u9009\u62E9\u56FE\u7247",
|
|
137
|
+
placement: "bottom"
|
|
138
|
+
}, {
|
|
139
|
+
default: vue.withCtx(() => [
|
|
140
|
+
vue.createVNode(_component_ll_button, {
|
|
141
|
+
type: "primary",
|
|
142
|
+
size: "small",
|
|
143
|
+
onClick: _cache[0] || (_cache[0] = ($event) => handlerToolbar("reset"))
|
|
144
|
+
}, {
|
|
145
|
+
default: vue.withCtx(() => [
|
|
146
|
+
vue.createVNode(_component_ll_icon, { "icon-name": "icon-upload" })
|
|
147
|
+
]),
|
|
148
|
+
_: 1
|
|
149
|
+
/* STABLE */
|
|
150
|
+
})
|
|
151
|
+
]),
|
|
152
|
+
_: 1
|
|
153
|
+
/* STABLE */
|
|
154
|
+
})
|
|
155
|
+
]),
|
|
156
|
+
_: 1
|
|
157
|
+
/* STABLE */
|
|
158
|
+
}),
|
|
159
|
+
vue.createVNode(_component_ll_space, null, {
|
|
160
|
+
default: vue.withCtx(() => [
|
|
161
|
+
vue.createVNode(_component_ll_tooltip, {
|
|
162
|
+
tip: "\u91CD\u7F6E",
|
|
163
|
+
placement: "bottom"
|
|
164
|
+
}, {
|
|
165
|
+
default: vue.withCtx(() => [
|
|
166
|
+
vue.createVNode(_component_ll_button, {
|
|
167
|
+
type: "primary",
|
|
168
|
+
size: "small",
|
|
169
|
+
disabled: !src.value,
|
|
170
|
+
onClick: _cache[1] || (_cache[1] = ($event) => handlerToolbar("reset"))
|
|
171
|
+
}, {
|
|
172
|
+
default: vue.withCtx(() => [
|
|
173
|
+
vue.createVNode(_component_ll_icon, { "icon-name": "icon-refresh" })
|
|
174
|
+
]),
|
|
175
|
+
_: 1
|
|
176
|
+
/* STABLE */
|
|
177
|
+
}, 8, ["disabled"])
|
|
178
|
+
]),
|
|
179
|
+
_: 1
|
|
180
|
+
/* STABLE */
|
|
181
|
+
}),
|
|
182
|
+
vue.createVNode(_component_ll_tooltip, {
|
|
183
|
+
tip: "\u9006\u65F6\u9488\u65CB\u8F6C",
|
|
184
|
+
placement: "bottom"
|
|
185
|
+
}, {
|
|
186
|
+
default: vue.withCtx(() => [
|
|
187
|
+
vue.createVNode(_component_ll_button, {
|
|
188
|
+
type: "primary",
|
|
189
|
+
size: "small",
|
|
190
|
+
disabled: !src.value,
|
|
191
|
+
onClick: _cache[2] || (_cache[2] = ($event) => handlerToolbar("rotate", -45))
|
|
192
|
+
}, {
|
|
193
|
+
default: vue.withCtx(() => [
|
|
194
|
+
vue.createVNode(_component_ll_icon, { "icon-name": "icon-counter-clockwise" })
|
|
195
|
+
]),
|
|
196
|
+
_: 1
|
|
197
|
+
/* STABLE */
|
|
198
|
+
}, 8, ["disabled"])
|
|
199
|
+
]),
|
|
200
|
+
_: 1
|
|
201
|
+
/* STABLE */
|
|
202
|
+
}),
|
|
203
|
+
vue.createVNode(_component_ll_tooltip, {
|
|
204
|
+
tip: "\u987A\u65F6\u9488\u65CB\u8F6C",
|
|
205
|
+
placement: "bottom"
|
|
206
|
+
}, {
|
|
207
|
+
default: vue.withCtx(() => [
|
|
208
|
+
vue.createVNode(_component_ll_button, {
|
|
209
|
+
type: "primary",
|
|
210
|
+
size: "small",
|
|
211
|
+
disabled: !src.value,
|
|
212
|
+
onClick: _cache[3] || (_cache[3] = ($event) => handlerToolbar("rotate", 45))
|
|
213
|
+
}, {
|
|
214
|
+
default: vue.withCtx(() => [
|
|
215
|
+
vue.createVNode(_component_ll_icon, { "icon-name": "icon-flip-horizontal" })
|
|
216
|
+
]),
|
|
217
|
+
_: 1
|
|
218
|
+
/* STABLE */
|
|
219
|
+
}, 8, ["disabled"])
|
|
220
|
+
]),
|
|
221
|
+
_: 1
|
|
222
|
+
/* STABLE */
|
|
223
|
+
}),
|
|
224
|
+
vue.createVNode(_component_ll_tooltip, {
|
|
225
|
+
tip: "\u6C34\u5E73\u7FFB\u8F6C",
|
|
226
|
+
placement: "bottom"
|
|
227
|
+
}, {
|
|
228
|
+
default: vue.withCtx(() => [
|
|
229
|
+
vue.createVNode(_component_ll_button, {
|
|
230
|
+
type: "primary",
|
|
231
|
+
size: "small",
|
|
232
|
+
disabled: !src.value,
|
|
233
|
+
onClick: _cache[4] || (_cache[4] = ($event) => handlerToolbar("scaleX"))
|
|
234
|
+
}, {
|
|
235
|
+
default: vue.withCtx(() => [
|
|
236
|
+
vue.createVNode(_component_ll_icon, { "icon-name": "icon-flip-horizontal" })
|
|
237
|
+
]),
|
|
238
|
+
_: 1
|
|
239
|
+
/* STABLE */
|
|
240
|
+
}, 8, ["disabled"])
|
|
241
|
+
]),
|
|
242
|
+
_: 1
|
|
243
|
+
/* STABLE */
|
|
244
|
+
}),
|
|
245
|
+
vue.createVNode(_component_ll_tooltip, {
|
|
246
|
+
tip: "\u5782\u76F4\u7FFB\u8F6C",
|
|
247
|
+
placement: "bottom"
|
|
248
|
+
}, {
|
|
249
|
+
default: vue.withCtx(() => [
|
|
250
|
+
vue.createVNode(_component_ll_button, {
|
|
251
|
+
type: "primary",
|
|
252
|
+
size: "small",
|
|
253
|
+
disabled: !src.value,
|
|
254
|
+
onClick: _cache[5] || (_cache[5] = ($event) => handlerToolbar("scaleY"))
|
|
255
|
+
}, {
|
|
256
|
+
default: vue.withCtx(() => [
|
|
257
|
+
vue.createVNode(_component_ll_icon, { "icon-name": "icon-flip-vertical" })
|
|
258
|
+
]),
|
|
259
|
+
_: 1
|
|
260
|
+
/* STABLE */
|
|
261
|
+
}, 8, ["disabled"])
|
|
262
|
+
]),
|
|
263
|
+
_: 1
|
|
264
|
+
/* STABLE */
|
|
265
|
+
}),
|
|
266
|
+
vue.createVNode(_component_ll_tooltip, {
|
|
267
|
+
tip: "\u653E\u5927",
|
|
268
|
+
placement: "bottom"
|
|
269
|
+
}, {
|
|
270
|
+
default: vue.withCtx(() => [
|
|
271
|
+
vue.createVNode(_component_ll_button, {
|
|
272
|
+
type: "primary",
|
|
273
|
+
size: "small",
|
|
274
|
+
disabled: !src.value,
|
|
275
|
+
onClick: _cache[6] || (_cache[6] = ($event) => handlerToolbar("zoom", 0.1))
|
|
276
|
+
}, {
|
|
277
|
+
default: vue.withCtx(() => [
|
|
278
|
+
vue.createVNode(_component_ll_icon, { "icon-name": "icon-amplify1" })
|
|
279
|
+
]),
|
|
280
|
+
_: 1
|
|
281
|
+
/* STABLE */
|
|
282
|
+
}, 8, ["disabled"])
|
|
283
|
+
]),
|
|
284
|
+
_: 1
|
|
285
|
+
/* STABLE */
|
|
286
|
+
}),
|
|
287
|
+
vue.createVNode(_component_ll_tooltip, {
|
|
288
|
+
tip: "\u7F29\u5C0F",
|
|
289
|
+
placement: "bottom"
|
|
290
|
+
}, {
|
|
291
|
+
default: vue.withCtx(() => [
|
|
292
|
+
vue.createVNode(_component_ll_button, {
|
|
293
|
+
type: "primary",
|
|
294
|
+
size: "small",
|
|
295
|
+
disabled: !src.value,
|
|
296
|
+
onClick: _cache[7] || (_cache[7] = ($event) => handlerToolbar("zoom", -0.1))
|
|
297
|
+
}, {
|
|
298
|
+
default: vue.withCtx(() => [
|
|
299
|
+
vue.createVNode(_component_ll_icon, { "icon-name": "icon-scale" })
|
|
300
|
+
]),
|
|
301
|
+
_: 1
|
|
302
|
+
/* STABLE */
|
|
303
|
+
}, 8, ["disabled"])
|
|
304
|
+
]),
|
|
305
|
+
_: 1
|
|
306
|
+
/* STABLE */
|
|
307
|
+
})
|
|
308
|
+
]),
|
|
309
|
+
_: 1
|
|
310
|
+
/* STABLE */
|
|
311
|
+
})
|
|
312
|
+
],
|
|
313
|
+
2
|
|
314
|
+
/* CLASS */
|
|
315
|
+
)
|
|
316
|
+
],
|
|
317
|
+
2
|
|
318
|
+
/* CLASS */
|
|
319
|
+
),
|
|
320
|
+
vue.createElementVNode(
|
|
321
|
+
"div",
|
|
322
|
+
{
|
|
323
|
+
class: vue.normalizeClass(vue.unref(bem).e("right"))
|
|
324
|
+
},
|
|
325
|
+
[
|
|
326
|
+
vue.createElementVNode(
|
|
327
|
+
"div",
|
|
328
|
+
{
|
|
329
|
+
class: vue.normalizeClass(vue.unref(bem).e("preview"))
|
|
330
|
+
},
|
|
331
|
+
[
|
|
332
|
+
previewSource.value ? (vue.openBlock(), vue.createElementBlock("img", {
|
|
333
|
+
key: 0,
|
|
334
|
+
src: previewSource.value,
|
|
335
|
+
alt: "\u9884\u89C8"
|
|
336
|
+
}, null, 8, _hoisted_1)) : vue.createCommentVNode("v-if", true)
|
|
337
|
+
],
|
|
338
|
+
2
|
|
339
|
+
/* CLASS */
|
|
340
|
+
),
|
|
341
|
+
previewSource.value ? (vue.openBlock(), vue.createElementBlock(
|
|
342
|
+
"div",
|
|
343
|
+
{
|
|
344
|
+
key: 0,
|
|
345
|
+
class: vue.normalizeClass(vue.unref(bem).e("group"))
|
|
346
|
+
},
|
|
347
|
+
[
|
|
348
|
+
vue.createVNode(_component_ll_avatar, {
|
|
349
|
+
src: previewSource.value,
|
|
350
|
+
size: "large"
|
|
351
|
+
}, null, 8, ["src"]),
|
|
352
|
+
vue.createVNode(_component_ll_avatar, {
|
|
353
|
+
src: previewSource.value,
|
|
354
|
+
size: 48
|
|
355
|
+
}, null, 8, ["src"]),
|
|
356
|
+
vue.createVNode(_component_ll_avatar, {
|
|
357
|
+
src: previewSource.value,
|
|
358
|
+
size: 64
|
|
359
|
+
}, null, 8, ["src"]),
|
|
360
|
+
vue.createVNode(_component_ll_avatar, {
|
|
361
|
+
src: previewSource.value,
|
|
362
|
+
size: 80
|
|
363
|
+
}, null, 8, ["src"])
|
|
364
|
+
],
|
|
365
|
+
2
|
|
366
|
+
/* CLASS */
|
|
367
|
+
)) : vue.createCommentVNode("v-if", true)
|
|
368
|
+
],
|
|
369
|
+
2
|
|
370
|
+
/* CLASS */
|
|
371
|
+
)
|
|
372
|
+
],
|
|
373
|
+
2
|
|
374
|
+
/* CLASS */
|
|
375
|
+
)
|
|
376
|
+
]),
|
|
377
|
+
_: 1
|
|
378
|
+
/* STABLE */
|
|
379
|
+
}, 8, ["open"]),
|
|
380
|
+
vue.renderSlot(_ctx.$slots, "default", {}, () => [
|
|
381
|
+
vue.createElementVNode(
|
|
382
|
+
"div",
|
|
383
|
+
{
|
|
384
|
+
class: vue.normalizeClass(vue.unref(bem).e("cropper-avatar")),
|
|
385
|
+
onClick: handleOpen
|
|
386
|
+
},
|
|
387
|
+
[
|
|
388
|
+
!avatar.value ? (vue.openBlock(), vue.createBlock(_component_ll_avatar, {
|
|
389
|
+
key: 0,
|
|
390
|
+
size: 64,
|
|
391
|
+
onClick: handleAvatarClick
|
|
392
|
+
})) : (vue.openBlock(), vue.createElementBlock("img", {
|
|
393
|
+
key: 1,
|
|
394
|
+
src: avatar.value,
|
|
395
|
+
alt: ""
|
|
396
|
+
}, null, 8, _hoisted_2))
|
|
397
|
+
],
|
|
398
|
+
2
|
|
399
|
+
/* CLASS */
|
|
400
|
+
)
|
|
401
|
+
])
|
|
402
|
+
],
|
|
403
|
+
64
|
|
404
|
+
/* STABLE_FRAGMENT */
|
|
405
|
+
);
|
|
406
|
+
};
|
|
407
|
+
}
|
|
408
|
+
});
|
|
409
|
+
|
|
410
|
+
exports.default = _sfc_main;
|
|
411
|
+
//# sourceMappingURL=cropper-modal.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cropper-modal.vue2.js","sources":["../../../../../../packages/components/cropper/src/cropper-modal.vue"],"sourcesContent":["<template>\n <ll-modal\n :open=\"open\"\n :title=\"'图片裁剪'\"\n width=\"800px\"\n :keyboard=\"false\"\n :mask-closable=\"false\"\n :ok-text=\"'确定'\"\n @cancel=\"open = false\"\n @ok=\"handleOk\"\n >\n <div :class=\"bem.b()\">\n <div :class=\"bem.e('left')\">\n <div :class=\"bem.e('cropper')\">\n <cropper-image\n v-if=\"src\"\n :src=\"src\"\n height=\"300px\"\n :circled=\"circled\"\n @cropend=\"handleCropend\"\n @on-ready=\"handleReady\"\n />\n </div>\n <div :class=\"bem.e('toolbar')\">\n <Upload\n :file-list=\"[]\"\n accept=\"image/*\"\n :before-upload=\"handleBeforeUpload\"\n >\n <ll-tooltip :title=\"'选择图片'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n @click=\"handlerToolbar('reset')\"\n >\n <ll-icon icon-name=\"icon-upload\" />\n </ll-button>\n </ll-tooltip>\n </Upload>\n <ll-space>\n <ll-tooltip :tip=\"'重置'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('reset')\"\n >\n <ll-icon icon-name=\"icon-refresh\" />\n </ll-button>\n </ll-tooltip>\n <ll-tooltip :tip=\"'逆时针旋转'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('rotate', -45)\"\n >\n <ll-icon icon-name=\"icon-counter-clockwise\" />\n </ll-button>\n </ll-tooltip>\n <ll-tooltip :tip=\"'顺时针旋转'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('rotate', 45)\"\n >\n <ll-icon icon-name=\"icon-flip-horizontal\" />\n </ll-button>\n </ll-tooltip>\n <ll-tooltip :tip=\"'水平翻转'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('scaleX')\"\n >\n <ll-icon icon-name=\"icon-flip-horizontal\" />\n </ll-button>\n </ll-tooltip>\n <ll-tooltip :tip=\"'垂直翻转'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('scaleY')\"\n >\n <ll-icon icon-name=\"icon-flip-vertical\" />\n </ll-button>\n </ll-tooltip>\n <ll-tooltip :tip=\"'放大'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('zoom', 0.1)\"\n >\n <ll-icon icon-name=\"icon-amplify1\" />\n </ll-button>\n </ll-tooltip>\n <ll-tooltip :tip=\"'缩小'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('zoom', -0.1)\"\n >\n <ll-icon icon-name=\"icon-scale\" />\n </ll-button>\n </ll-tooltip>\n </ll-space>\n </div>\n </div>\n <div :class=\"bem.e('right')\">\n <div :class=\"bem.e('preview')\">\n <img v-if=\"previewSource\" :src=\"previewSource\" :alt=\"'预览'\" />\n </div>\n <template v-if=\"previewSource\">\n <div :class=\"bem.e('group')\">\n <ll-avatar :src=\"previewSource\" size=\"large\" />\n <ll-avatar :src=\"previewSource\" :size=\"48\" />\n <ll-avatar :src=\"previewSource\" :size=\"64\" />\n <ll-avatar :src=\"previewSource\" :size=\"80\" />\n </div>\n </template>\n </div>\n </div>\n </ll-modal>\n <slot>\n <div :class=\"bem.e('cropper-avatar')\" @click=\"handleOpen\">\n <ll-avatar v-if=\"!avatar\" :size=\"64\" @click=\"handleAvatarClick\">\n </ll-avatar>\n\n <img v-else :src=\"avatar\" alt=\"\" />\n </div>\n </slot>\n</template>\n<script lang=\"ts\" setup>\n//@ts-ignore\nimport type Cropper from 'cropperjs'\n\nimport { ref } from 'vue'\nimport { Upload } from 'ant-design-vue'\nimport { createNamespace, dataURLtoBlob, type Nullable } from '@ll-plus/utils'\nimport CropperImage from './cropper-image.vue'\nimport {\n cropperModalProps,\n cropperModalEmits,\n type CropendResult\n} from './cropper-image'\n\ndefineOptions({ name: 'LlCropperModal' })\nconst props = defineProps(cropperModalProps)\nconst emits = defineEmits(cropperModalEmits)\nconst bem = createNamespace('cropper-modal')\nconst src = ref(props.avatar || '')\nconst avatar = ref(props.avatar || '')\nconsole.log(src, avatar, 'avatar')\nconst open = ref(false)\nconst previewSource = ref('')\nconst cropper = ref<Nullable<Cropper>>()\nlet scaleX = 1\nlet scaleY = 1\n\n// Block upload\nfunction handleBeforeUpload(file: File) {\n const reader = new FileReader()\n reader.readAsDataURL(file)\n src.value = ''\n previewSource.value = ''\n reader.onload = function (e) {\n src.value = (e.target?.result as string) ?? ''\n // filename = file.name\n }\n return false\n}\nfunction handleOpen() {\n open.value = true\n}\nfunction handleCropend({ imgBase64 }: CropendResult) {\n previewSource.value = imgBase64\n}\n\nfunction handleReady(cropperInstance: Cropper) {\n cropper.value = cropperInstance\n}\nfunction handlerToolbar(event: string, arg?: number) {\n if (event === 'scaleX') {\n scaleX = arg = scaleX === -1 ? 1 : -1\n }\n if (event === 'scaleY') {\n scaleY = arg = scaleY === -1 ? 1 : -1\n }\n cropper?.value?.[event]?.(arg)\n}\n\nasync function handleOk() {\n const blob = dataURLtoBlob(previewSource.value)\n emits('confirm', { blob, previewSource: previewSource.value })\n avatar.value = previewSource.value\n open.value = false\n}\nconst handleAvatarClick = (_: any, avatarSrc: string) => {\n src.value = avatarSrc\n avatar.value = avatarSrc\n}\n</script>\n"],"names":["createNamespace","ref","dataURLtoBlob"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwJA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AACd,IAAM,MAAA,GAAA,GAAMA,gCAAgB,eAAe,CAAA,CAAA;AAC3C,IAAA,MAAM,GAAM,GAAAC,OAAA,CAAI,KAAM,CAAA,MAAA,IAAU,EAAE,CAAA,CAAA;AAClC,IAAA,MAAM,MAAS,GAAAA,OAAA,CAAI,KAAM,CAAA,MAAA,IAAU,EAAE,CAAA,CAAA;AACrC,IAAQ,OAAA,CAAA,GAAA,CAAI,GAAK,EAAA,MAAA,EAAQ,QAAQ,CAAA,CAAA;AACjC,IAAM,MAAA,IAAA,GAAOA,QAAI,KAAK,CAAA,CAAA;AACtB,IAAM,MAAA,aAAA,GAAgBA,QAAI,EAAE,CAAA,CAAA;AAC5B,IAAA,MAAM,UAAUA,OAAuB,EAAA,CAAA;AACvC,IAAA,IAAI,MAAS,GAAA,CAAA,CAAA;AACb,IAAA,IAAI,MAAS,GAAA,CAAA,CAAA;AAGb,IAAA,SAAS,mBAAmB,IAAY,EAAA;AACtC,MAAM,MAAA,MAAA,GAAS,IAAI,UAAW,EAAA,CAAA;AAC9B,MAAA,MAAA,CAAO,cAAc,IAAI,CAAA,CAAA;AACzB,MAAA,GAAA,CAAI,KAAQ,GAAA,EAAA,CAAA;AACZ,MAAA,aAAA,CAAc,KAAQ,GAAA,EAAA,CAAA;AACtB,MAAO,MAAA,CAAA,MAAA,GAAS,SAAU,CAAG,EAAA;AAC3B,QAAI,GAAA,CAAA,KAAA,GAAS,CAAE,CAAA,MAAA,EAAQ,MAAqB,IAAA,EAAA,CAAA;AAAA,OAE9C,CAAA;AACA,MAAO,OAAA,KAAA,CAAA;AAAA,KACT;AACA,IAAA,SAAS,UAAa,GAAA;AACpB,MAAA,IAAA,CAAK,KAAQ,GAAA,IAAA,CAAA;AAAA,KACf;AACA,IAAS,SAAA,aAAA,CAAc,EAAE,SAAA,EAA4B,EAAA;AACnD,MAAA,aAAA,CAAc,KAAQ,GAAA,SAAA,CAAA;AAAA,KACxB;AAEA,IAAA,SAAS,YAAY,eAA0B,EAAA;AAC7C,MAAA,OAAA,CAAQ,KAAQ,GAAA,eAAA,CAAA;AAAA,KAClB;AACA,IAAS,SAAA,cAAA,CAAe,OAAe,GAAc,EAAA;AACnD,MAAA,IAAI,UAAU,QAAU,EAAA;AACtB,QAAS,MAAA,GAAA,GAAA,GAAM,MAAW,KAAA,CAAA,CAAA,GAAK,CAAI,GAAA,CAAA,CAAA,CAAA;AAAA,OACrC;AACA,MAAA,IAAI,UAAU,QAAU,EAAA;AACtB,QAAS,MAAA,GAAA,GAAA,GAAM,MAAW,KAAA,CAAA,CAAA,GAAK,CAAI,GAAA,CAAA,CAAA,CAAA;AAAA,OACrC;AACA,MAAS,OAAA,EAAA,KAAA,GAAQ,KAAK,CAAA,GAAI,GAAG,CAAA,CAAA;AAAA,KAC/B;AAEA,IAAA,eAAe,QAAW,GAAA;AACxB,MAAM,MAAA,IAAA,GAAOC,kBAAc,CAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAC9C,MAAA,KAAA,CAAM,WAAW,EAAE,IAAA,EAAM,aAAe,EAAA,aAAA,CAAc,OAAO,CAAA,CAAA;AAC7D,MAAA,MAAA,CAAO,QAAQ,aAAc,CAAA,KAAA,CAAA;AAC7B,MAAA,IAAA,CAAK,KAAQ,GAAA,KAAA,CAAA;AAAA,KACf;AACA,IAAM,MAAA,iBAAA,GAAoB,CAAC,CAAA,EAAQ,SAAsB,KAAA;AACvD,MAAA,GAAA,CAAI,KAAQ,GAAA,SAAA,CAAA;AACZ,MAAA,MAAA,CAAO,KAAQ,GAAA,SAAA,CAAA;AAAA,KACjB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -6,6 +6,13 @@ var runtime = require('../../../utils/props/runtime.js');
|
|
|
6
6
|
"use strict";
|
|
7
7
|
const url = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuWbvuWxgl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjAwIDEyMS43IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyMDAgMTIxLjc7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7b3BhY2l0eTowLjg7ZmlsbDp1cmwoI1NWR0lEXzFfKTtlbmFibGUtYmFja2dyb3VuZDpuZXcgICAgO30KCS5zdDF7ZmlsbDp1cmwoI1NWR0lEXzJfKTt9Cgkuc3Qye29wYWNpdHk6MC42NzU7ZmlsbDp1cmwoI1NWR0lEXzNfKTtlbmFibGUtYmFja2dyb3VuZDpuZXcgICAgO30KCS5zdDN7ZmlsbDp1cmwoI1NWR0lEXzRfKTt9Cgkuc3Q0e2ZpbGw6dXJsKCNTVkdJRF81Xyk7fQoJLnN0NXtmaWxsOnVybCgjU1ZHSURfNl8pO30KPC9zdHlsZT4KPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEuODY2IC4zNjQpIj4KCQoJCTxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iLTgxMC4zODgxIiB5MT0iLTI0LjczNDEiIHgyPSItODEwLjM4ODEiIHkyPSItMjYuMTM5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDExNi4xMzQ2IDAgMCA0OS41MjM2IDk0MjE1LjE2NDEgMTI4MS4zOTk5KSI+CgkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0RFREVERTtzdG9wLW9wYWNpdHk6MCIvPgoJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNBOUE5QTk7c3RvcC1vcGFjaXR5OjAuMyIvPgoJPC9saW5lYXJHcmFkaWVudD4KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00My4yLDIyLjljMi02LjQsMy45LTEwLjQsNS42LTExLjljNC44LTQuMywxMS41LTIsMTIuOS0xLjZjNSwxLjIsMy40LTYuNiw3LjYtOC4yYzIuOC0xLjEsNS4yLDAuMiw3LDMuOQoJCWMxLjYtMy40LDQuMS01LDcuNC00LjdjNSwwLjQsNi43LDE3LjMsMTMuNiwxMy42YzYuOC0zLjcsMTUuMi00LjUsMTguOCwwLjljMC44LDEuMiwxLjEtMC43LDYuMy02LjljNS4zLTYuMywxMC41LTksMjEuMy01LjQKCQljNC45LDEuNyw4LjksNi4yLDEyLjEsMTMuNWMwLDEwLjUsNy43LDE2LjcsMjMuMSwxOC42YzIzLjEsMi45LDUuMiwyNy43LTIzLjEsMzVDMTI3LjUsNzcsNjIuNCw4MC45LDI3LDYyLjUKCQlDMy41LDUwLjIsOC45LDM3LDQzLjIsMjIuOUw0My4yLDIyLjl6Ii8+CgkKCQk8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzJfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ii04MDIuNDU1NSIgeTE9IjI3LjUxNTMiIHgyPSItODAyLjQ1NTUiIHkyPSIyNS45OTIxIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDU1Ljk3NCAwIDAgMTIuOTU2IDQ1MDE3Ljc0NjEgLTI0MS4wMzcxKSI+CgkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRjtzdG9wLW9wYWNpdHk6MCIvPgoJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiM5NkExQzU7c3RvcC1vcGFjaXR5OjAuMzczIi8+Cgk8L2xpbmVhckdyYWRpZW50PgoJPGVsbGlwc2UgY2xhc3M9InN0MSIgY3g9IjEwMS4xIiBjeT0iMTA1LjYiIHJ4PSI0Mi42IiByeT0iOS45Ii8+CgkKCQk8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzNfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ii04MTEuMTE4OCIgeTE9IjguNjczMiIgeDI9Ii04MTEuMTE4OCIgeTI9IjYuODUwNCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxMjguOTQ4OSAwIDAgMTcuNzc4NCAxMDQ2OTQuODIwMyAtMzMuMTI0KSI+CgkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRjtzdG9wLW9wYWNpdHk6MCIvPgoJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiM5MTkxOTE7c3RvcC1vcGFjaXR5OjAuMTUiLz4KCTwvbGluZWFyR3JhZGllbnQ+Cgk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTczLjEsMTE3LjljLTMyLjEsOC0xNDEuNC0xLjItMTUzLjEtNS40Yy01LjctMi0xMC44LTUuOS0xNS4zLTExLjVjLTEuNS0xLjgtMS4yLTQuNiwwLjYtNgoJCUM2LjEsOTQuNCw3LDk0LDgsOTRoMTkxLjJDMjAzLjIsMTA0LjYsMTk0LjUsMTEyLjYsMTczLjEsMTE3Ljl6Ii8+Cgk8Zz4KCQkKCQkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF80XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSItNzk4LjAyMDMiIHkxPSI1LjM2NDIiIHgyPSItNzk4LjAyMDMiIHkyPSI2LjA0ODciIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNDMuMzk2IDAgMCAxOC4xOTYgMzQ3MzEuNjM2NyAtMzYuODI0NSkiPgoJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojNTM4OUY1Ii8+CgkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiM0MTZGREMiLz4KCQk8L2xpbmVhckdyYWRpZW50PgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0xMzMuOCw3OS4ybC0xNC42LTE3Yy0wLjctMC44LTEuNy0xLjMtMi44LTEuM0g4NS4xYy0xLjEsMC0yLjEsMC41LTIuOCwxLjNsLTE0LjYsMTd2OS40aDY2LjEKCQkJQzEzMy44LDg4LjUsMTMzLjgsNzkuMiwxMzMuOCw3OS4yeiIvPgoJCQoJCQk8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzVfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ii03OTUuMTk5NSIgeTE9IjE0LjQ0MSIgeDI9Ii03OTUuMTk5NSIgeTI9IjEyLjgzNjkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMzcuOTcyIDAgMCAxNS44MjcxIDMwMjk2LjA2NDUgLTEzMS41Nzc3KSI+CgkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNEQ0U5RkYiLz4KCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0I2Q0ZGRiIvPgoJCTwvbGluZWFyR3JhZGllbnQ+CgkJPHBhdGggY2xhc3M9InN0NCIgZD0iTTEyOS43LDg4LjlsLTEyLjgtMTQuOGMtMC42LTAuNy0xLjUtMS4xLTIuNS0xLjFIODcuMWMtMC45LDAtMS45LDAuNC0yLjUsMS4xTDcxLjgsODguOXY4LjJoNTcuOAoJCQlDMTI5LjcsOTcsMTI5LjcsODguOSwxMjkuNyw4OC45eiIvPgoJCQoJCQk8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzZfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ii03OTguMDE5NiIgeTE9IjEyLjc1NDYiIHgyPSItNzk4LjAxOTYiIHkyPSIxNC4yNzc3IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDQzLjM5NyAwIDAgMTUuOTEyIDM0NzMyLjQ1NyAtMTIzLjcxMTkpIj4KCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzdDQTVGNyIvPgoJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojQzRENkZDIi8+CgkJPC9saW5lYXJHcmFkaWVudD4KCQk8cGF0aCBjbGFzcz0ic3Q1IiBkPSJNMTMzLjgsOTkuM2MwLDEuMy0wLjYsMi41LTEuNSwzLjNsLTAuMiwwLjJjLTAuNywwLjYtMS42LDAuOS0yLjUsMC45SDcyYy0wLjUsMC0xLTAuMS0xLjUtMC4zbC0wLjItMC4xCgkJCWMtMS41LTAuNy0yLjUtMi4yLTIuNS0zLjl2LTIwaDE2YzEuOCwwLDMuMiwxLjUsMy4yLDMuMmwwLDBjMCwxLjgsMS40LDMuMiwzLjIsMy4yaDIxLjJjMS44LDAsMy4yLTEuNCwzLjItMy4yCgkJCWMwLTEuOCwxLjQtMy4yLDMuMi0zLjJoMTZMMTMzLjgsOTkuM3oiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K";
|
|
8
8
|
const emptyProps = runtime.buildProps({
|
|
9
|
+
/**
|
|
10
|
+
* @description 文字标题内容
|
|
11
|
+
*/
|
|
12
|
+
title: {
|
|
13
|
+
type: runtime.definePropType(String),
|
|
14
|
+
default: ""
|
|
15
|
+
},
|
|
9
16
|
/**
|
|
10
17
|
* @description 容器的宽度
|
|
11
18
|
*/
|