From 1654c9c685c265ac3a96a4b1b9e9b0192ebe1f0c Mon Sep 17 00:00:00 2001
From: dev <710328466@qq.com>
Date: Tue, 16 Jan 2024 20:40:10 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=B5?=
=?UTF-8?q?=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.dumi/global.less | 7 +
.dumi/loading.svg | 30 +
.dumi/loading.tsx | 8 +-
packages/meta/es/index.js | 9 +-
.../lib/BigImagePreview/BigImagePreview.js | 487 ---
.../BigImagePreview/bigImagePreviewHelper.js | 0
.../components/BtnGroup/index.js | 83 -
.../components/BtnGroup/index.less | 51 -
.../components/ScreenhotButtons/index.js | 126 -
.../components/ScreenhotButtons/index.less | 21 -
packages/meta/lib/BigImagePreview/index.js | 36 -
packages/meta/lib/BigImagePreview/index.less | 129 -
.../meta/lib/CompareImage/CompareImage.js | 157 -
.../components/CornerScore/index.js | 52 -
.../components/CornerScore/index.less | 21 -
.../lib/CompareImage/images/emptyImage.png | Bin 5786 -> 0 bytes
.../images/percent_background.png | Bin 514 -> 0 bytes
packages/meta/lib/CompareImage/index.js | 36 -
packages/meta/lib/CompareImage/index.less | 147 -
.../meta/lib/ImageEditor/cropper/constants.js | 105 -
.../meta/lib/ImageEditor/cropper/event.js | 419 ---
.../meta/lib/ImageEditor/cropper/index.js | 136 -
.../lib/ImageEditor/cropper/index.module.scss | 194 --
.../meta/lib/ImageEditor/cropper/preview.js | 75 -
.../meta/lib/ImageEditor/cropper/render.js | 164 -
.../meta/lib/ImageEditor/cropper/template.js | 46 -
.../lib/ImageEditor/cropper/viewerBridge.js | 93 -
packages/meta/lib/ImageEditor/index.js | 60 -
packages/meta/lib/ImageEditor/interface.d.ts | 3 -
packages/meta/lib/ImageEditor/utils.js | 149 -
.../meta/lib/ImageEditor/viewer/constants.js | 105 -
packages/meta/lib/ImageEditor/viewer/event.js | 202 --
.../meta/lib/ImageEditor/viewer/helper.js | 161 -
packages/meta/lib/ImageEditor/viewer/index.js | 93 -
.../meta/lib/ImageEditor/viewer/index.scss | 44 -
.../meta/lib/ImageEditor/viewer/render.js | 284 --
packages/meta/lib/ImageEditor/viewer/shape.js | 262 --
packages/meta/lib/Temp/index.js | 41 -
packages/meta/lib/VideoPlayer/VideoPlayer.js | 611 ----
.../VideoPlayer/components/FlvPlayer/index.js | 144 -
.../VideoPlayer/components/Loading/index.js | 84 -
.../VideoPlayer/components/Loading/index.less | 53 -
.../VideoPlayer/components/Progress/index.js | 60 -
.../components/Progress/index.less | 49 -
packages/meta/lib/VideoPlayer/index.js | 36 -
packages/meta/lib/VideoPlayer/index.less | 75 -
.../meta/lib/VideoPlayer/videoPlayerHelper.js | 41 -
packages/meta/lib/doubleClick/index.js | 70 -
packages/meta/lib/iconfont/iconfont.css | 1679 ---------
packages/meta/lib/iconfont/iconfont.js | 36 -
packages/meta/lib/iconfont/iconfont.ttf | Bin 105116 -> 0 bytes
packages/meta/lib/iconfont/iconfont.woff | Bin 58376 -> 0 bytes
packages/meta/lib/iconfont/iconfont.woff2 | Bin 48900 -> 0 bytes
packages/meta/lib/iconfont/index.js | 69 -
packages/meta/lib/index.js | 102 -
packages/meta/lib/utils/constants.js | 42 -
packages/meta/lib/utils/index.js | 0
packages/meta/package.json | 6 +
packages/meta/src/descriptions/Cell.tsx | 85 +
.../src/descriptions/DescriptionsContext.ts | 10 +
packages/meta/src/descriptions/Item.ts | 16 +
packages/meta/src/descriptions/Row.tsx | 138 +
.../__snapshots__/demo-extend.test.ts.snap | 2748 +++++++++++++++
.../__tests__/__snapshots__/demo.test.ts.snap | 2504 ++++++++++++++
.../__snapshots__/index.test.tsx.snap | 686 ++++
.../__tests__/demo-extend.test.ts | 3 +
.../src/descriptions/__tests__/demo.test.ts | 3 +
.../src/descriptions/__tests__/hooks.test.tsx | 26 +
.../src/descriptions/__tests__/image.test.ts | 5 +
.../src/descriptions/__tests__/index.test.tsx | 380 ++
packages/meta/src/descriptions/constant.ts | 12 +
packages/meta/src/descriptions/demo/basic.md | 7 +
packages/meta/src/descriptions/demo/basic.tsx | 35 +
packages/meta/src/descriptions/demo/border.md | 7 +
.../meta/src/descriptions/demo/border.tsx | 77 +
.../src/descriptions/demo/component-token.md | 7 +
.../src/descriptions/demo/component-token.tsx | 143 +
packages/meta/src/descriptions/demo/jsx.md | 7 +
packages/meta/src/descriptions/demo/jsx.tsx | 16 +
.../meta/src/descriptions/demo/responsive.md | 7 +
.../meta/src/descriptions/demo/responsive.tsx | 71 +
packages/meta/src/descriptions/demo/size.md | 7 +
packages/meta/src/descriptions/demo/size.tsx | 127 +
packages/meta/src/descriptions/demo/style.md | 7 +
packages/meta/src/descriptions/demo/style.tsx | 82 +
packages/meta/src/descriptions/demo/text.md | 7 +
packages/meta/src/descriptions/demo/text.tsx | 120 +
.../src/descriptions/demo/vertical-border.md | 7 +
.../src/descriptions/demo/vertical-border.tsx | 79 +
.../meta/src/descriptions/demo/vertical.md | 7 +
.../meta/src/descriptions/demo/vertical.tsx | 36 +
.../meta/src/descriptions/hooks/useItems.ts | 33 +
.../meta/src/descriptions/hooks/useRow.ts | 80 +
packages/meta/src/descriptions/index.tsx | 161 +
packages/meta/src/descriptions/index.zh-CN.md | 108 +
packages/meta/src/descriptions/style/index.ts | 238 ++
.../__snapshots__/demo-extend.test.ts.snap | 307 ++
.../__tests__/__snapshots__/demo.test.ts.snap | 295 ++
.../src/divider/__tests__/demo-extend.test.ts | 3 +
.../meta/src/divider/__tests__/demo.test.ts | 3 +
.../meta/src/divider/__tests__/image.test.ts | 5 +
.../meta/src/divider/__tests__/index.test.tsx | 28 +
.../meta/src/divider/demo/component-token.md | 7 +
.../meta/src/divider/demo/component-token.tsx | 58 +
.../meta/src/divider/demo/customize-style.md | 7 +
.../meta/src/divider/demo/customize-style.tsx | 22 +
packages/meta/src/divider/demo/horizontal.md | 7 +
packages/meta/src/divider/demo/horizontal.tsx | 23 +
packages/meta/src/divider/demo/plain.md | 7 +
packages/meta/src/divider/demo/plain.tsx | 32 +
packages/meta/src/divider/demo/vertical.md | 7 +
packages/meta/src/divider/demo/vertical.tsx | 14 +
packages/meta/src/divider/demo/with-text.md | 7 +
packages/meta/src/divider/demo/with-text.tsx | 42 +
packages/meta/src/divider/index.tsx | 110 +
packages/meta/src/divider/index.zh-CN.md | 48 +
packages/meta/src/divider/style/index.ts | 201 ++
.../__snapshots__/demo-extend.test.ts.snap | 676 ++++
.../__tests__/__snapshots__/demo.test.ts.snap | 664 ++++
.../__snapshots__/index.test.tsx.snap | 14 +
.../src/flex/__tests__/demo-extend.test.ts | 3 +
packages/meta/src/flex/__tests__/demo.test.ts | 3 +
.../meta/src/flex/__tests__/image.test.ts | 5 +
.../meta/src/flex/__tests__/index.test.tsx | 70 +
packages/meta/src/flex/demo/align.md | 7 +
packages/meta/src/flex/demo/align.tsx | 43 +
packages/meta/src/flex/demo/basic.md | 7 +
packages/meta/src/flex/demo/basic.tsx | 27 +
packages/meta/src/flex/demo/combination.md | 7 +
packages/meta/src/flex/demo/combination.tsx | 33 +
packages/meta/src/flex/demo/debug.md | 7 +
packages/meta/src/flex/demo/debug.tsx | 33 +
packages/meta/src/flex/demo/gap.md | 7 +
packages/meta/src/flex/demo/gap.tsx | 28 +
packages/meta/src/flex/demo/wrap.md | 7 +
packages/meta/src/flex/demo/wrap.tsx | 14 +
packages/meta/src/flex/index.tsx | 79 +
packages/meta/src/flex/index.zh-CN.md | 43 +
packages/meta/src/flex/interface.ts | 17 +
packages/meta/src/flex/style/index.ts | 123 +
packages/meta/src/flex/utils.ts | 68 +
packages/meta/src/grid/index.zh-CN.md | 81 +
packages/meta/src/index.tsx | 27 +-
.../__snapshots__/demo-extend.test.ts.snap | 3062 +++++++++++++++++
.../__snapshots__/demo.test.tsx.snap | 2765 +++++++++++++++
.../__snapshots__/index.test.tsx.snap | 255 ++
.../src/input-number/__tests__/addon.test.tsx | 39 +
.../__tests__/demo-extend.test.ts | 3 +
.../src/input-number/__tests__/demo.test.tsx | 15 +
.../src/input-number/__tests__/image.test.ts | 5 +
.../src/input-number/__tests__/index.test.tsx | 99 +
.../input-number/__tests__/prefix.test.tsx | 27 +
packages/meta/src/input-number/demo/addon.md | 7 +
packages/meta/src/input-number/demo/addon.tsx | 49 +
packages/meta/src/input-number/demo/basic.md | 7 +
packages/meta/src/input-number/demo/basic.tsx | 10 +
.../meta/src/input-number/demo/borderless.md | 7 +
.../meta/src/input-number/demo/borderless.tsx | 6 +
.../meta/src/input-number/demo/controls.md | 7 +
.../meta/src/input-number/demo/controls.tsx | 9 +
.../meta/src/input-number/demo/debug-token.md | 1 +
.../src/input-number/demo/debug-token.tsx | 30 +
packages/meta/src/input-number/demo/digit.md | 7 +
packages/meta/src/input-number/demo/digit.tsx | 20 +
.../meta/src/input-number/demo/disabled.md | 7 +
.../meta/src/input-number/demo/disabled.tsx | 23 +
.../meta/src/input-number/demo/formatter.md | 11 +
.../meta/src/input-number/demo/formatter.tsx | 27 +
.../meta/src/input-number/demo/keyboard.md | 7 +
.../meta/src/input-number/demo/keyboard.tsx | 22 +
.../src/input-number/demo/out-of-range.md | 7 +
.../src/input-number/demo/out-of-range.tsx | 22 +
packages/meta/src/input-number/demo/prefix.md | 7 +
.../meta/src/input-number/demo/prefix.tsx | 17 +
.../src/input-number/demo/render-panel.md | 7 +
.../src/input-number/demo/render-panel.tsx | 11 +
packages/meta/src/input-number/demo/size.md | 7 +
packages/meta/src/input-number/demo/size.tsx | 16 +
packages/meta/src/input-number/demo/status.md | 7 +
.../meta/src/input-number/demo/status.tsx | 14 +
packages/meta/src/input-number/index.tsx | 200 ++
packages/meta/src/input-number/index.zh-CN.md | 86 +
packages/meta/src/input-number/style/index.ts | 519 +++
packages/meta/src/modal/ConfirmDialog.tsx | 296 ++
packages/meta/src/modal/Modal.tsx | 163 +
packages/meta/src/modal/PurePanel.tsx | 90 +
.../meta/src/modal/__tests__/Modal.test.tsx | 185 +
.../__snapshots__/Modal.test.tsx.snap | 291 ++
.../__snapshots__/confirm.test.tsx.snap | 49 +
.../__snapshots__/demo-extend.test.ts.snap | 1489 ++++++++
.../__snapshots__/demo.test.tsx.snap | 1447 ++++++++
.../meta/src/modal/__tests__/confirm.test.tsx | 880 +++++
.../src/modal/__tests__/demo-extend.test.ts | 3 +
.../meta/src/modal/__tests__/demo.test.tsx | 11 +
.../meta/src/modal/__tests__/hook.test.tsx | 497 +++
.../meta/src/modal/__tests__/image.test.ts | 5 +
.../modal/__tests__/static-warning.test.tsx | 49 +
.../meta/src/modal/__tests__/type.test.tsx | 10 +
.../src/modal/components/ConfirmCancelBtn.tsx | 52 +
.../src/modal/components/ConfirmOkBtn.tsx | 52 +
.../src/modal/components/NormalCancelBtn.tsx | 26 +
.../meta/src/modal/components/NormalOkBtn.tsx | 33 +
packages/meta/src/modal/confirm.tsx | 187 +
packages/meta/src/modal/context.ts | 15 +
packages/meta/src/modal/demo/async.md | 7 +
packages/meta/src/modal/demo/async.tsx | 45 +
packages/meta/src/modal/demo/basic.md | 7 +
packages/meta/src/modal/demo/basic.tsx | 33 +
packages/meta/src/modal/demo/button-props.md | 7 +
packages/meta/src/modal/demo/button-props.tsx | 42 +
packages/meta/src/modal/demo/classNames.md | 7 +
packages/meta/src/modal/demo/classNames.tsx | 110 +
.../meta/src/modal/demo/component-token.md | 7 +
.../meta/src/modal/demo/component-token.tsx | 39 +
.../meta/src/modal/demo/confirm-router.md | 7 +
.../meta/src/modal/demo/confirm-router.tsx | 30 +
packages/meta/src/modal/demo/confirm.md | 7 +
packages/meta/src/modal/demo/confirm.tsx | 85 +
.../src/modal/demo/custom-mouse-position.md | 7 +
.../src/modal/demo/custom-mouse-position.tsx | 39 +
packages/meta/src/modal/demo/dark.md | 7 +
packages/meta/src/modal/demo/dark.tsx | 563 +++
packages/meta/src/modal/demo/footer-render.md | 7 +
.../meta/src/modal/demo/footer-render.tsx | 65 +
packages/meta/src/modal/demo/footer.md | 11 +
packages/meta/src/modal/demo/footer.tsx | 62 +
packages/meta/src/modal/demo/hooks.md | 7 +
packages/meta/src/modal/demo/hooks.tsx | 63 +
packages/meta/src/modal/demo/locale.md | 7 +
packages/meta/src/modal/demo/locale.tsx | 61 +
packages/meta/src/modal/demo/manual.md | 7 +
packages/meta/src/modal/demo/manual.tsx | 36 +
packages/meta/src/modal/demo/modal-render.md | 7 +
packages/meta/src/modal/demo/modal-render.tsx | 91 +
packages/meta/src/modal/demo/nested.md | 7 +
packages/meta/src/modal/demo/nested.tsx | 137 +
packages/meta/src/modal/demo/position.md | 7 +
packages/meta/src/modal/demo/position.tsx | 44 +
packages/meta/src/modal/demo/render-panel.md | 7 +
packages/meta/src/modal/demo/render-panel.tsx | 45 +
packages/meta/src/modal/demo/static-info.md | 7 +
packages/meta/src/modal/demo/static-info.tsx | 46 +
packages/meta/src/modal/demo/width.md | 7 +
packages/meta/src/modal/demo/width.tsx | 28 +
packages/meta/src/modal/demo/wireframe.md | 7 +
packages/meta/src/modal/demo/wireframe.tsx | 21 +
packages/meta/src/modal/destroyFns.ts | 2 +
packages/meta/src/modal/index.ts | 72 +
packages/meta/src/modal/index.zh-CN.md | 190 +
packages/meta/src/modal/interface.ts | 130 +
packages/meta/src/modal/locale.ts | 40 +
packages/meta/src/modal/shared.tsx | 93 +
packages/meta/src/modal/style/confirm.ts | 128 +
packages/meta/src/modal/style/index.ts | 420 +++
.../meta/src/modal/useModal/HookModal.tsx | 79 +
packages/meta/src/modal/useModal/index.tsx | 139 +
packages/meta/src/space/demo/align.tsx | 4 +-
packages/meta/src/space/index.zh-CN.md | 85 +
packages/meta/src/tabs/demo/card.tsx | 2 +-
packages/meta/src/tabs/demo/centered.tsx | 2 +-
.../meta/src/tabs/demo/component-token.tsx | 2 +-
.../meta/src/tabs/demo/custom-add-trigger.tsx | 2 +-
.../meta/src/tabs/demo/custom-indicator.tsx | 4 +-
.../meta/src/tabs/demo/custom-tab-bar.tsx | 4 +-
packages/meta/src/tabs/demo/disabled.tsx | 2 +-
packages/meta/src/tabs/demo/editable-card.tsx | 2 +-
packages/meta/src/tabs/demo/extra.tsx | 2 +-
packages/meta/src/tabs/demo/icon.tsx | 2 +-
packages/meta/src/tabs/demo/nest.tsx | 2 +-
packages/meta/src/tabs/demo/position.tsx | 4 +-
packages/meta/src/tabs/demo/size.tsx | 4 +-
packages/meta/src/tabs/demo/slide.tsx | 4 +-
.../meta/src/typography/Base/Ellipsis.tsx | 231 ++
.../src/typography/Base/EllipsisTooltip.tsx | 33 +
packages/meta/src/typography/Base/index.tsx | 572 +++
packages/meta/src/typography/Editable.tsx | 155 +
packages/meta/src/typography/Link.tsx | 31 +
packages/meta/src/typography/Paragraph.tsx | 13 +
packages/meta/src/typography/Text.tsx | 41 +
packages/meta/src/typography/Title.tsx | 41 +
packages/meta/src/typography/Typography.tsx | 96 +
.../__snapshots__/demo-extend.test.ts.snap | 2754 +++++++++++++++
.../__snapshots__/demo.test.tsx.snap | 2243 ++++++++++++
.../__snapshots__/index.test.tsx.snap | 25 +
.../src/typography/__tests__/copy.test.tsx | 267 ++
.../typography/__tests__/demo-extend.test.ts | 3 +
.../src/typography/__tests__/demo.test.tsx | 16 +
.../typography/__tests__/editable.test.tsx | 80 +
.../typography/__tests__/ellipsis.test.tsx | 542 +++
.../__tests__/enter-key-callback.test.tsx | 32 +
.../src/typography/__tests__/image.test.ts | 5 +
.../src/typography/__tests__/index.test.tsx | 481 +++
.../typography/__tests__/prefixCls.test.tsx | 20 +
packages/meta/src/typography/demo/basic.md | 7 +
packages/meta/src/typography/demo/basic.tsx | 103 +
.../typography/demo/componentToken-debug.md | 7 +
.../typography/demo/componentToken-debug.tsx | 107 +
packages/meta/src/typography/demo/copyable.md | 7 +
.../meta/src/typography/demo/copyable.tsx | 24 +
packages/meta/src/typography/demo/editable.md | 7 +
.../meta/src/typography/demo/editable.tsx | 143 +
.../src/typography/demo/ellipsis-debug.md | 7 +
.../src/typography/demo/ellipsis-debug.tsx | 87 +
.../src/typography/demo/ellipsis-middle.md | 7 +
.../src/typography/demo/ellipsis-middle.tsx | 27 +
packages/meta/src/typography/demo/ellipsis.md | 7 +
.../meta/src/typography/demo/ellipsis.tsx | 54 +
.../src/typography/demo/paragraph-debug.md | 7 +
.../src/typography/demo/paragraph-debug.tsx | 101 +
packages/meta/src/typography/demo/suffix.md | 7 +
packages/meta/src/typography/demo/suffix.tsx | 32 +
packages/meta/src/typography/demo/text.md | 7 +
packages/meta/src/typography/demo/text.tsx | 27 +
packages/meta/src/typography/demo/title.md | 7 +
packages/meta/src/typography/demo/title.tsx | 16 +
.../src/typography/hooks/useMergedConfig.ts | 18 +
.../src/typography/hooks/useUpdatedEffect.ts | 16 +
packages/meta/src/typography/index.ts | 20 +
packages/meta/src/typography/index.zh-CN.md | 174 +
packages/meta/src/typography/style/index.ts | 142 +
packages/meta/src/typography/style/mixins.ts | 278 ++
.../__snapshots__/demo-extend.test.ts.snap | 1300 +++++++
.../__tests__/__snapshots__/demo.test.ts.snap | 852 +++++
.../__snapshots__/index.test.tsx.snap | 103 +
.../watermark/__tests__/demo-extend.test.ts | 3 +
.../meta/src/watermark/__tests__/demo.test.ts | 3 +
.../src/watermark/__tests__/index.test.tsx | 162 +
packages/meta/src/watermark/context.ts | 33 +
packages/meta/src/watermark/demo/basic.md | 7 +
packages/meta/src/watermark/demo/basic.tsx | 10 +
packages/meta/src/watermark/demo/custom.md | 7 +
packages/meta/src/watermark/demo/custom.tsx | 139 +
packages/meta/src/watermark/demo/image.md | 7 +
packages/meta/src/watermark/demo/image.tsx | 14 +
.../meta/src/watermark/demo/multi-line.md | 7 +
.../meta/src/watermark/demo/multi-line.tsx | 10 +
packages/meta/src/watermark/demo/portal.md | 7 +
packages/meta/src/watermark/demo/portal.tsx | 58 +
packages/meta/src/watermark/index.tsx | 296 ++
packages/meta/src/watermark/index.zh-CN.md | 75 +
packages/meta/src/watermark/useClips.ts | 138 +
packages/meta/src/watermark/useRafDebounce.ts | 26 +
packages/meta/src/watermark/useWatermark.ts | 70 +
packages/meta/src/watermark/utils.ts | 29 +
pnpm-lock.yaml | 56 +-
public/loading.svg | 31 +
tsconfig.json | 21 +-
347 files changed, 40570 insertions(+), 7165 deletions(-)
create mode 100644 .dumi/loading.svg
delete mode 100644 packages/meta/lib/BigImagePreview/BigImagePreview.js
delete mode 100644 packages/meta/lib/BigImagePreview/bigImagePreviewHelper.js
delete mode 100644 packages/meta/lib/BigImagePreview/components/BtnGroup/index.js
delete mode 100644 packages/meta/lib/BigImagePreview/components/BtnGroup/index.less
delete mode 100644 packages/meta/lib/BigImagePreview/components/ScreenhotButtons/index.js
delete mode 100644 packages/meta/lib/BigImagePreview/components/ScreenhotButtons/index.less
delete mode 100644 packages/meta/lib/BigImagePreview/index.js
delete mode 100644 packages/meta/lib/BigImagePreview/index.less
delete mode 100644 packages/meta/lib/CompareImage/CompareImage.js
delete mode 100644 packages/meta/lib/CompareImage/components/CornerScore/index.js
delete mode 100644 packages/meta/lib/CompareImage/components/CornerScore/index.less
delete mode 100644 packages/meta/lib/CompareImage/images/emptyImage.png
delete mode 100644 packages/meta/lib/CompareImage/images/percent_background.png
delete mode 100644 packages/meta/lib/CompareImage/index.js
delete mode 100644 packages/meta/lib/CompareImage/index.less
delete mode 100644 packages/meta/lib/ImageEditor/cropper/constants.js
delete mode 100644 packages/meta/lib/ImageEditor/cropper/event.js
delete mode 100644 packages/meta/lib/ImageEditor/cropper/index.js
delete mode 100644 packages/meta/lib/ImageEditor/cropper/index.module.scss
delete mode 100644 packages/meta/lib/ImageEditor/cropper/preview.js
delete mode 100644 packages/meta/lib/ImageEditor/cropper/render.js
delete mode 100644 packages/meta/lib/ImageEditor/cropper/template.js
delete mode 100644 packages/meta/lib/ImageEditor/cropper/viewerBridge.js
delete mode 100644 packages/meta/lib/ImageEditor/index.js
delete mode 100644 packages/meta/lib/ImageEditor/interface.d.ts
delete mode 100644 packages/meta/lib/ImageEditor/utils.js
delete mode 100644 packages/meta/lib/ImageEditor/viewer/constants.js
delete mode 100644 packages/meta/lib/ImageEditor/viewer/event.js
delete mode 100644 packages/meta/lib/ImageEditor/viewer/helper.js
delete mode 100644 packages/meta/lib/ImageEditor/viewer/index.js
delete mode 100644 packages/meta/lib/ImageEditor/viewer/index.scss
delete mode 100644 packages/meta/lib/ImageEditor/viewer/render.js
delete mode 100644 packages/meta/lib/ImageEditor/viewer/shape.js
delete mode 100644 packages/meta/lib/Temp/index.js
delete mode 100644 packages/meta/lib/VideoPlayer/VideoPlayer.js
delete mode 100644 packages/meta/lib/VideoPlayer/components/FlvPlayer/index.js
delete mode 100644 packages/meta/lib/VideoPlayer/components/Loading/index.js
delete mode 100644 packages/meta/lib/VideoPlayer/components/Loading/index.less
delete mode 100644 packages/meta/lib/VideoPlayer/components/Progress/index.js
delete mode 100644 packages/meta/lib/VideoPlayer/components/Progress/index.less
delete mode 100644 packages/meta/lib/VideoPlayer/index.js
delete mode 100644 packages/meta/lib/VideoPlayer/index.less
delete mode 100644 packages/meta/lib/VideoPlayer/videoPlayerHelper.js
delete mode 100644 packages/meta/lib/doubleClick/index.js
delete mode 100644 packages/meta/lib/iconfont/iconfont.css
delete mode 100644 packages/meta/lib/iconfont/iconfont.js
delete mode 100644 packages/meta/lib/iconfont/iconfont.ttf
delete mode 100644 packages/meta/lib/iconfont/iconfont.woff
delete mode 100644 packages/meta/lib/iconfont/iconfont.woff2
delete mode 100644 packages/meta/lib/iconfont/index.js
delete mode 100644 packages/meta/lib/index.js
delete mode 100644 packages/meta/lib/utils/constants.js
delete mode 100644 packages/meta/lib/utils/index.js
create mode 100644 packages/meta/src/descriptions/Cell.tsx
create mode 100644 packages/meta/src/descriptions/DescriptionsContext.ts
create mode 100644 packages/meta/src/descriptions/Item.ts
create mode 100644 packages/meta/src/descriptions/Row.tsx
create mode 100644 packages/meta/src/descriptions/__tests__/__snapshots__/demo-extend.test.ts.snap
create mode 100644 packages/meta/src/descriptions/__tests__/__snapshots__/demo.test.ts.snap
create mode 100644 packages/meta/src/descriptions/__tests__/__snapshots__/index.test.tsx.snap
create mode 100644 packages/meta/src/descriptions/__tests__/demo-extend.test.ts
create mode 100644 packages/meta/src/descriptions/__tests__/demo.test.ts
create mode 100644 packages/meta/src/descriptions/__tests__/hooks.test.tsx
create mode 100644 packages/meta/src/descriptions/__tests__/image.test.ts
create mode 100644 packages/meta/src/descriptions/__tests__/index.test.tsx
create mode 100644 packages/meta/src/descriptions/constant.ts
create mode 100644 packages/meta/src/descriptions/demo/basic.md
create mode 100644 packages/meta/src/descriptions/demo/basic.tsx
create mode 100644 packages/meta/src/descriptions/demo/border.md
create mode 100644 packages/meta/src/descriptions/demo/border.tsx
create mode 100644 packages/meta/src/descriptions/demo/component-token.md
create mode 100644 packages/meta/src/descriptions/demo/component-token.tsx
create mode 100644 packages/meta/src/descriptions/demo/jsx.md
create mode 100644 packages/meta/src/descriptions/demo/jsx.tsx
create mode 100644 packages/meta/src/descriptions/demo/responsive.md
create mode 100644 packages/meta/src/descriptions/demo/responsive.tsx
create mode 100644 packages/meta/src/descriptions/demo/size.md
create mode 100644 packages/meta/src/descriptions/demo/size.tsx
create mode 100644 packages/meta/src/descriptions/demo/style.md
create mode 100644 packages/meta/src/descriptions/demo/style.tsx
create mode 100644 packages/meta/src/descriptions/demo/text.md
create mode 100644 packages/meta/src/descriptions/demo/text.tsx
create mode 100644 packages/meta/src/descriptions/demo/vertical-border.md
create mode 100644 packages/meta/src/descriptions/demo/vertical-border.tsx
create mode 100644 packages/meta/src/descriptions/demo/vertical.md
create mode 100644 packages/meta/src/descriptions/demo/vertical.tsx
create mode 100644 packages/meta/src/descriptions/hooks/useItems.ts
create mode 100644 packages/meta/src/descriptions/hooks/useRow.ts
create mode 100644 packages/meta/src/descriptions/index.tsx
create mode 100644 packages/meta/src/descriptions/index.zh-CN.md
create mode 100644 packages/meta/src/descriptions/style/index.ts
create mode 100644 packages/meta/src/divider/__tests__/__snapshots__/demo-extend.test.ts.snap
create mode 100644 packages/meta/src/divider/__tests__/__snapshots__/demo.test.ts.snap
create mode 100644 packages/meta/src/divider/__tests__/demo-extend.test.ts
create mode 100644 packages/meta/src/divider/__tests__/demo.test.ts
create mode 100644 packages/meta/src/divider/__tests__/image.test.ts
create mode 100644 packages/meta/src/divider/__tests__/index.test.tsx
create mode 100644 packages/meta/src/divider/demo/component-token.md
create mode 100644 packages/meta/src/divider/demo/component-token.tsx
create mode 100644 packages/meta/src/divider/demo/customize-style.md
create mode 100644 packages/meta/src/divider/demo/customize-style.tsx
create mode 100644 packages/meta/src/divider/demo/horizontal.md
create mode 100644 packages/meta/src/divider/demo/horizontal.tsx
create mode 100644 packages/meta/src/divider/demo/plain.md
create mode 100644 packages/meta/src/divider/demo/plain.tsx
create mode 100644 packages/meta/src/divider/demo/vertical.md
create mode 100644 packages/meta/src/divider/demo/vertical.tsx
create mode 100644 packages/meta/src/divider/demo/with-text.md
create mode 100644 packages/meta/src/divider/demo/with-text.tsx
create mode 100644 packages/meta/src/divider/index.tsx
create mode 100644 packages/meta/src/divider/index.zh-CN.md
create mode 100644 packages/meta/src/divider/style/index.ts
create mode 100644 packages/meta/src/flex/__tests__/__snapshots__/demo-extend.test.ts.snap
create mode 100644 packages/meta/src/flex/__tests__/__snapshots__/demo.test.ts.snap
create mode 100644 packages/meta/src/flex/__tests__/__snapshots__/index.test.tsx.snap
create mode 100644 packages/meta/src/flex/__tests__/demo-extend.test.ts
create mode 100644 packages/meta/src/flex/__tests__/demo.test.ts
create mode 100644 packages/meta/src/flex/__tests__/image.test.ts
create mode 100644 packages/meta/src/flex/__tests__/index.test.tsx
create mode 100644 packages/meta/src/flex/demo/align.md
create mode 100644 packages/meta/src/flex/demo/align.tsx
create mode 100644 packages/meta/src/flex/demo/basic.md
create mode 100644 packages/meta/src/flex/demo/basic.tsx
create mode 100644 packages/meta/src/flex/demo/combination.md
create mode 100644 packages/meta/src/flex/demo/combination.tsx
create mode 100644 packages/meta/src/flex/demo/debug.md
create mode 100644 packages/meta/src/flex/demo/debug.tsx
create mode 100644 packages/meta/src/flex/demo/gap.md
create mode 100644 packages/meta/src/flex/demo/gap.tsx
create mode 100644 packages/meta/src/flex/demo/wrap.md
create mode 100644 packages/meta/src/flex/demo/wrap.tsx
create mode 100644 packages/meta/src/flex/index.tsx
create mode 100644 packages/meta/src/flex/index.zh-CN.md
create mode 100644 packages/meta/src/flex/interface.ts
create mode 100644 packages/meta/src/flex/style/index.ts
create mode 100644 packages/meta/src/flex/utils.ts
create mode 100644 packages/meta/src/grid/index.zh-CN.md
create mode 100644 packages/meta/src/input-number/__tests__/__snapshots__/demo-extend.test.ts.snap
create mode 100644 packages/meta/src/input-number/__tests__/__snapshots__/demo.test.tsx.snap
create mode 100644 packages/meta/src/input-number/__tests__/__snapshots__/index.test.tsx.snap
create mode 100644 packages/meta/src/input-number/__tests__/addon.test.tsx
create mode 100644 packages/meta/src/input-number/__tests__/demo-extend.test.ts
create mode 100644 packages/meta/src/input-number/__tests__/demo.test.tsx
create mode 100644 packages/meta/src/input-number/__tests__/image.test.ts
create mode 100644 packages/meta/src/input-number/__tests__/index.test.tsx
create mode 100644 packages/meta/src/input-number/__tests__/prefix.test.tsx
create mode 100644 packages/meta/src/input-number/demo/addon.md
create mode 100644 packages/meta/src/input-number/demo/addon.tsx
create mode 100644 packages/meta/src/input-number/demo/basic.md
create mode 100644 packages/meta/src/input-number/demo/basic.tsx
create mode 100644 packages/meta/src/input-number/demo/borderless.md
create mode 100644 packages/meta/src/input-number/demo/borderless.tsx
create mode 100644 packages/meta/src/input-number/demo/controls.md
create mode 100644 packages/meta/src/input-number/demo/controls.tsx
create mode 100644 packages/meta/src/input-number/demo/debug-token.md
create mode 100644 packages/meta/src/input-number/demo/debug-token.tsx
create mode 100644 packages/meta/src/input-number/demo/digit.md
create mode 100644 packages/meta/src/input-number/demo/digit.tsx
create mode 100644 packages/meta/src/input-number/demo/disabled.md
create mode 100644 packages/meta/src/input-number/demo/disabled.tsx
create mode 100644 packages/meta/src/input-number/demo/formatter.md
create mode 100644 packages/meta/src/input-number/demo/formatter.tsx
create mode 100644 packages/meta/src/input-number/demo/keyboard.md
create mode 100644 packages/meta/src/input-number/demo/keyboard.tsx
create mode 100644 packages/meta/src/input-number/demo/out-of-range.md
create mode 100644 packages/meta/src/input-number/demo/out-of-range.tsx
create mode 100644 packages/meta/src/input-number/demo/prefix.md
create mode 100644 packages/meta/src/input-number/demo/prefix.tsx
create mode 100644 packages/meta/src/input-number/demo/render-panel.md
create mode 100644 packages/meta/src/input-number/demo/render-panel.tsx
create mode 100644 packages/meta/src/input-number/demo/size.md
create mode 100644 packages/meta/src/input-number/demo/size.tsx
create mode 100644 packages/meta/src/input-number/demo/status.md
create mode 100644 packages/meta/src/input-number/demo/status.tsx
create mode 100644 packages/meta/src/input-number/index.tsx
create mode 100644 packages/meta/src/input-number/index.zh-CN.md
create mode 100644 packages/meta/src/input-number/style/index.ts
create mode 100644 packages/meta/src/modal/ConfirmDialog.tsx
create mode 100644 packages/meta/src/modal/Modal.tsx
create mode 100644 packages/meta/src/modal/PurePanel.tsx
create mode 100644 packages/meta/src/modal/__tests__/Modal.test.tsx
create mode 100644 packages/meta/src/modal/__tests__/__snapshots__/Modal.test.tsx.snap
create mode 100644 packages/meta/src/modal/__tests__/__snapshots__/confirm.test.tsx.snap
create mode 100644 packages/meta/src/modal/__tests__/__snapshots__/demo-extend.test.ts.snap
create mode 100644 packages/meta/src/modal/__tests__/__snapshots__/demo.test.tsx.snap
create mode 100644 packages/meta/src/modal/__tests__/confirm.test.tsx
create mode 100644 packages/meta/src/modal/__tests__/demo-extend.test.ts
create mode 100644 packages/meta/src/modal/__tests__/demo.test.tsx
create mode 100644 packages/meta/src/modal/__tests__/hook.test.tsx
create mode 100644 packages/meta/src/modal/__tests__/image.test.ts
create mode 100644 packages/meta/src/modal/__tests__/static-warning.test.tsx
create mode 100644 packages/meta/src/modal/__tests__/type.test.tsx
create mode 100644 packages/meta/src/modal/components/ConfirmCancelBtn.tsx
create mode 100644 packages/meta/src/modal/components/ConfirmOkBtn.tsx
create mode 100644 packages/meta/src/modal/components/NormalCancelBtn.tsx
create mode 100644 packages/meta/src/modal/components/NormalOkBtn.tsx
create mode 100644 packages/meta/src/modal/confirm.tsx
create mode 100644 packages/meta/src/modal/context.ts
create mode 100644 packages/meta/src/modal/demo/async.md
create mode 100644 packages/meta/src/modal/demo/async.tsx
create mode 100644 packages/meta/src/modal/demo/basic.md
create mode 100644 packages/meta/src/modal/demo/basic.tsx
create mode 100644 packages/meta/src/modal/demo/button-props.md
create mode 100644 packages/meta/src/modal/demo/button-props.tsx
create mode 100644 packages/meta/src/modal/demo/classNames.md
create mode 100644 packages/meta/src/modal/demo/classNames.tsx
create mode 100644 packages/meta/src/modal/demo/component-token.md
create mode 100644 packages/meta/src/modal/demo/component-token.tsx
create mode 100644 packages/meta/src/modal/demo/confirm-router.md
create mode 100644 packages/meta/src/modal/demo/confirm-router.tsx
create mode 100644 packages/meta/src/modal/demo/confirm.md
create mode 100644 packages/meta/src/modal/demo/confirm.tsx
create mode 100644 packages/meta/src/modal/demo/custom-mouse-position.md
create mode 100644 packages/meta/src/modal/demo/custom-mouse-position.tsx
create mode 100644 packages/meta/src/modal/demo/dark.md
create mode 100644 packages/meta/src/modal/demo/dark.tsx
create mode 100644 packages/meta/src/modal/demo/footer-render.md
create mode 100644 packages/meta/src/modal/demo/footer-render.tsx
create mode 100644 packages/meta/src/modal/demo/footer.md
create mode 100644 packages/meta/src/modal/demo/footer.tsx
create mode 100644 packages/meta/src/modal/demo/hooks.md
create mode 100644 packages/meta/src/modal/demo/hooks.tsx
create mode 100644 packages/meta/src/modal/demo/locale.md
create mode 100644 packages/meta/src/modal/demo/locale.tsx
create mode 100644 packages/meta/src/modal/demo/manual.md
create mode 100644 packages/meta/src/modal/demo/manual.tsx
create mode 100644 packages/meta/src/modal/demo/modal-render.md
create mode 100644 packages/meta/src/modal/demo/modal-render.tsx
create mode 100644 packages/meta/src/modal/demo/nested.md
create mode 100644 packages/meta/src/modal/demo/nested.tsx
create mode 100644 packages/meta/src/modal/demo/position.md
create mode 100644 packages/meta/src/modal/demo/position.tsx
create mode 100644 packages/meta/src/modal/demo/render-panel.md
create mode 100644 packages/meta/src/modal/demo/render-panel.tsx
create mode 100644 packages/meta/src/modal/demo/static-info.md
create mode 100644 packages/meta/src/modal/demo/static-info.tsx
create mode 100644 packages/meta/src/modal/demo/width.md
create mode 100644 packages/meta/src/modal/demo/width.tsx
create mode 100644 packages/meta/src/modal/demo/wireframe.md
create mode 100644 packages/meta/src/modal/demo/wireframe.tsx
create mode 100644 packages/meta/src/modal/destroyFns.ts
create mode 100644 packages/meta/src/modal/index.ts
create mode 100644 packages/meta/src/modal/index.zh-CN.md
create mode 100644 packages/meta/src/modal/interface.ts
create mode 100644 packages/meta/src/modal/locale.ts
create mode 100644 packages/meta/src/modal/shared.tsx
create mode 100644 packages/meta/src/modal/style/confirm.ts
create mode 100644 packages/meta/src/modal/style/index.ts
create mode 100644 packages/meta/src/modal/useModal/HookModal.tsx
create mode 100644 packages/meta/src/modal/useModal/index.tsx
create mode 100644 packages/meta/src/space/index.zh-CN.md
create mode 100644 packages/meta/src/typography/Base/Ellipsis.tsx
create mode 100644 packages/meta/src/typography/Base/EllipsisTooltip.tsx
create mode 100644 packages/meta/src/typography/Base/index.tsx
create mode 100644 packages/meta/src/typography/Editable.tsx
create mode 100644 packages/meta/src/typography/Link.tsx
create mode 100644 packages/meta/src/typography/Paragraph.tsx
create mode 100644 packages/meta/src/typography/Text.tsx
create mode 100644 packages/meta/src/typography/Title.tsx
create mode 100644 packages/meta/src/typography/Typography.tsx
create mode 100644 packages/meta/src/typography/__tests__/__snapshots__/demo-extend.test.ts.snap
create mode 100644 packages/meta/src/typography/__tests__/__snapshots__/demo.test.tsx.snap
create mode 100644 packages/meta/src/typography/__tests__/__snapshots__/index.test.tsx.snap
create mode 100644 packages/meta/src/typography/__tests__/copy.test.tsx
create mode 100644 packages/meta/src/typography/__tests__/demo-extend.test.ts
create mode 100644 packages/meta/src/typography/__tests__/demo.test.tsx
create mode 100644 packages/meta/src/typography/__tests__/editable.test.tsx
create mode 100644 packages/meta/src/typography/__tests__/ellipsis.test.tsx
create mode 100644 packages/meta/src/typography/__tests__/enter-key-callback.test.tsx
create mode 100644 packages/meta/src/typography/__tests__/image.test.ts
create mode 100644 packages/meta/src/typography/__tests__/index.test.tsx
create mode 100644 packages/meta/src/typography/__tests__/prefixCls.test.tsx
create mode 100644 packages/meta/src/typography/demo/basic.md
create mode 100644 packages/meta/src/typography/demo/basic.tsx
create mode 100644 packages/meta/src/typography/demo/componentToken-debug.md
create mode 100644 packages/meta/src/typography/demo/componentToken-debug.tsx
create mode 100644 packages/meta/src/typography/demo/copyable.md
create mode 100644 packages/meta/src/typography/demo/copyable.tsx
create mode 100644 packages/meta/src/typography/demo/editable.md
create mode 100644 packages/meta/src/typography/demo/editable.tsx
create mode 100644 packages/meta/src/typography/demo/ellipsis-debug.md
create mode 100644 packages/meta/src/typography/demo/ellipsis-debug.tsx
create mode 100644 packages/meta/src/typography/demo/ellipsis-middle.md
create mode 100644 packages/meta/src/typography/demo/ellipsis-middle.tsx
create mode 100644 packages/meta/src/typography/demo/ellipsis.md
create mode 100644 packages/meta/src/typography/demo/ellipsis.tsx
create mode 100644 packages/meta/src/typography/demo/paragraph-debug.md
create mode 100644 packages/meta/src/typography/demo/paragraph-debug.tsx
create mode 100644 packages/meta/src/typography/demo/suffix.md
create mode 100644 packages/meta/src/typography/demo/suffix.tsx
create mode 100644 packages/meta/src/typography/demo/text.md
create mode 100644 packages/meta/src/typography/demo/text.tsx
create mode 100644 packages/meta/src/typography/demo/title.md
create mode 100644 packages/meta/src/typography/demo/title.tsx
create mode 100644 packages/meta/src/typography/hooks/useMergedConfig.ts
create mode 100644 packages/meta/src/typography/hooks/useUpdatedEffect.ts
create mode 100644 packages/meta/src/typography/index.ts
create mode 100644 packages/meta/src/typography/index.zh-CN.md
create mode 100644 packages/meta/src/typography/style/index.ts
create mode 100644 packages/meta/src/typography/style/mixins.ts
create mode 100644 packages/meta/src/watermark/__tests__/__snapshots__/demo-extend.test.ts.snap
create mode 100644 packages/meta/src/watermark/__tests__/__snapshots__/demo.test.ts.snap
create mode 100644 packages/meta/src/watermark/__tests__/__snapshots__/index.test.tsx.snap
create mode 100644 packages/meta/src/watermark/__tests__/demo-extend.test.ts
create mode 100644 packages/meta/src/watermark/__tests__/demo.test.ts
create mode 100644 packages/meta/src/watermark/__tests__/index.test.tsx
create mode 100644 packages/meta/src/watermark/context.ts
create mode 100644 packages/meta/src/watermark/demo/basic.md
create mode 100644 packages/meta/src/watermark/demo/basic.tsx
create mode 100644 packages/meta/src/watermark/demo/custom.md
create mode 100644 packages/meta/src/watermark/demo/custom.tsx
create mode 100644 packages/meta/src/watermark/demo/image.md
create mode 100644 packages/meta/src/watermark/demo/image.tsx
create mode 100644 packages/meta/src/watermark/demo/multi-line.md
create mode 100644 packages/meta/src/watermark/demo/multi-line.tsx
create mode 100644 packages/meta/src/watermark/demo/portal.md
create mode 100644 packages/meta/src/watermark/demo/portal.tsx
create mode 100644 packages/meta/src/watermark/index.tsx
create mode 100644 packages/meta/src/watermark/index.zh-CN.md
create mode 100644 packages/meta/src/watermark/useClips.ts
create mode 100644 packages/meta/src/watermark/useRafDebounce.ts
create mode 100644 packages/meta/src/watermark/useWatermark.ts
create mode 100644 packages/meta/src/watermark/utils.ts
create mode 100644 public/loading.svg
diff --git a/.dumi/global.less b/.dumi/global.less
index 52ffc4b..1cf30d9 100644
--- a/.dumi/global.less
+++ b/.dumi/global.less
@@ -4,3 +4,10 @@
#root .dumi-default-doc-layout > main {
max-width: none;
}
+
+#root .dumi-default-sidebar {
+ overflow-y: hidden;
+ &:hover {
+ overflow-y: auto;
+ }
+}
diff --git a/.dumi/loading.svg b/.dumi/loading.svg
new file mode 100644
index 0000000..84ed65f
--- /dev/null
+++ b/.dumi/loading.svg
@@ -0,0 +1,30 @@
+
+
diff --git a/.dumi/loading.tsx b/.dumi/loading.tsx
index 086748a..cbcaeda 100644
--- a/.dumi/loading.tsx
+++ b/.dumi/loading.tsx
@@ -1,5 +1,11 @@
import React from 'react';
+import loading from './loading.svg'
export default () => {
- return
客官,您慢点儿...
;
+ return (
+
+ );
};
diff --git a/packages/meta/es/index.js b/packages/meta/es/index.js
index 8743d40..4d5931a 100644
--- a/packages/meta/es/index.js
+++ b/packages/meta/es/index.js
@@ -15,8 +15,13 @@ export { default as Empty } from "./empty";
export { default as Form } from "./form";
export { default as Select } from "./select";
export { default as Radio } from "./radio";
-export { default as CheckBox } from "./checkbox";
+export { default as Checkbox } from "./checkbox";
export { default as Input } from "./input";
export { default as ConfigProvider } from "./config-provider";
export { default as Theme } from "./theme";
-export { default as Locale } from "./locale";
\ No newline at end of file
+export { default as Locale } from "./locale";
+export { default as Watermark } from "./watermark";
+export { default as Typography } from "./typography";
+export { default as InputNumber } from "./input-number";
+export { default as Modal } from "./modal";
+export { default as Divider } from "./divider";
\ No newline at end of file
diff --git a/packages/meta/lib/BigImagePreview/BigImagePreview.js b/packages/meta/lib/BigImagePreview/BigImagePreview.js
deleted file mode 100644
index af9f764..0000000
--- a/packages/meta/lib/BigImagePreview/BigImagePreview.js
+++ /dev/null
@@ -1,487 +0,0 @@
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/BigImagePreview/BigImagePreview.tsx
-var BigImagePreview_exports = {};
-__export(BigImagePreview_exports, {
- BigImagePreview: () => BigImagePreview,
- default: () => BigImagePreview_default
-});
-module.exports = __toCommonJS(BigImagePreview_exports);
-var import_react = __toESM(require("react"));
-var import_classnames = __toESM(require("classnames"));
-var import_hooks = require("@zhst/hooks");
-var import_func = require("@zhst/func");
-var import_rc_align = __toESM(require("rc-align"));
-var import_antd = require("antd");
-var import_iconfont = __toESM(require("../iconfont"));
-var import_ImageEditor = require("../ImageEditor");
-var import_BtnGroup = __toESM(require("./components/BtnGroup"));
-var import_index = require("./index.less");
-var import_ScreenhotButtons = __toESM(require("./components/ScreenhotButtons"));
-var import_constants = require("../utils/constants");
-var componentName = `zhst-image__img-view`;
-var cropBtnDataSource = [
- {
- key: "close",
- icon: "icon-danchuangguanbi",
- title: "退出"
- },
- {
- key: "autoCrop",
- icon: "icon-zidong",
- title: "智能框选"
- },
- {
- key: "customCrop",
- icon: "icon-shoudong",
- title: "手动框选"
- }
-];
-var operateBtnDataSource = [
- {
- key: "zoomOut",
- icon: "icon-fangda",
- title: "放大"
- },
- {
- key: "zoomIn",
- icon: "icon-suoxiao",
- title: "缩小"
- },
- {
- key: "reset",
- icon: "icon-zhongzhi3",
- title: "重置图片"
- }
-];
-var BigImagePreview = import_react.default.forwardRef((props, ref) => {
- var _a, _b;
- const {
- dataSource = [],
- width,
- height,
- showScore = true,
- objects = [],
- showOpt = false,
- showAttachImgLabel = true,
- screenshotButtonAlign = import_constants.defaultAlignOption,
- screenshotButtonRender = (0, import_ScreenhotButtons.default)({
- onBigImageActionClick: () => {
- },
- disableBtn: []
- }),
- hideLeftTopBtn = true,
- viewOption = {}
- } = props;
- const imgContainerRef = import_react.default.useRef(null);
- const [isReady, setIsReady] = (0, import_react.useState)(false);
- const [currentIndex, setCurrentIndex] = (0, import_react.useState)(0);
- console.log("props", props);
- const init = (0, import_react.useCallback)(($container) => {
- imgContainerRef.current = $container;
- setIsReady(true);
- }, []);
- const imgInsRef = (0, import_react.useRef)(null);
- const [isImgReady, setIsImgReady] = (0, import_react.useState)(false);
- (0, import_react.useEffect)(() => {
- var _a2;
- console.log("123", 123);
- if (!isReady || !(imgContainerRef == null ? void 0 : imgContainerRef.current))
- return;
- const handleReady = (0, import_func.addEventListenerWrapper)(imgContainerRef.current, import_ImageEditor.EVENT_VIEWER_READY, () => {
- setIsImgReady(true);
- });
- const handleTransformChange = (0, import_func.addEventListenerWrapper)(
- imgContainerRef.current,
- import_ImageEditor.EVENT_VIEWER_TRANSFORM_CHANGE,
- () => {
- }
- );
- imgInsRef.current = new import_ImageEditor.Viewer(imgContainerRef.current, {
- ...viewOption,
- fitScaleAsMinScale: true,
- image: (0, import_func.generateImg)((_a2 = dataSource[currentIndex]) == null ? void 0 : _a2.imageKey)
- });
- return () => {
- var _a3, _b2;
- handleReady == null ? void 0 : handleReady.remove();
- handleTransformChange == null ? void 0 : handleTransformChange.remove();
- (_b2 = (_a3 = imgInsRef == null ? void 0 : imgInsRef.current) == null ? void 0 : _a3.destroy) == null ? void 0 : _b2.call(_a3);
- imgInsRef.current = null;
- };
- }, [isReady, currentIndex]);
- const handleOptClick = (v) => {
- var _a2, _b2, _c, _d, _e, _f;
- switch (v) {
- case "zoomOut":
- (_b2 = (_a2 = imgInsRef == null ? void 0 : imgInsRef.current) == null ? void 0 : _a2.scaleTo) == null ? void 0 : _b2.call(_a2, 0.1);
- break;
- case "zoomIn":
- (_d = (_c = imgInsRef == null ? void 0 : imgInsRef.current) == null ? void 0 : _c.scaleTo) == null ? void 0 : _d.call(_c, -0.1);
- break;
- case "reset":
- (_f = (_e = imgInsRef == null ? void 0 : imgInsRef.current) == null ? void 0 : _e.reset) == null ? void 0 : _f.call(_e, -0.1);
- break;
- }
- };
- const cropInsRef = (0, import_react.useRef)(null);
- const [showCrop, setShowCrop] = (0, import_react.useState)(showOpt);
- const [cropType, setCropType] = (0, import_react.useState)(import_constants.CROP_TYPE["AUTO"]);
- const [odList, setOdList] = (0, import_react.useState)([]);
- const [extendOdList, setExtendOdList] = (0, import_react.useState)([]);
- const [selectRectId, setSelectRectId] = (0, import_react.useState)(null);
- const alginContainerRef = (0, import_react.useRef)(null);
- const alignRef = (0, import_react.useRef)(null);
- const [cropRect, setCropRect] = (0, import_react.useState)(null);
- const [selectAlgorithmVersion, setSelectAlgorithmVersion] = (0, import_react.useState)(null);
- const handlerCropStartRef = (0, import_react.useRef)(null);
- const handlerCropEndRef = (0, import_react.useRef)(null);
- const handleShapeSelectRef = (0, import_react.useRef)(null);
- (0, import_react.useEffect)(() => {
- initData(dataSource[currentIndex].objects || objects);
- return () => {
- var _a2, _b2, _c, _d, _e, _f, _g;
- (_b2 = (_a2 = imgInsRef.current) == null ? void 0 : _a2.clearShape) == null ? void 0 : _b2.call(_a2);
- (_c = handlerCropStartRef.current) == null ? void 0 : _c.remove();
- (_d = handlerCropEndRef.current) == null ? void 0 : _d.remove();
- (_e = handleShapeSelectRef.current) == null ? void 0 : _e.remove();
- (_g = (_f = cropInsRef == null ? void 0 : cropInsRef.current) == null ? void 0 : _f.destroy) == null ? void 0 : _g.call(_f);
- cropInsRef.current = null;
- };
- }, [isImgReady, showCrop, cropType, currentIndex]);
- const initData = (_objects) => {
- var _a2, _b2;
- const imgIns = imgInsRef.current;
- const _odRect = dataSource[currentIndex].odRect;
- setCropRect(null);
- if (!isImgReady)
- return;
- if (!showCrop) {
- (_a2 = imgIns == null ? void 0 : imgIns.addShape) == null ? void 0 : _a2.call(imgIns, {
- x: (0, import_func.get)(_odRect, "x", 0),
- y: (0, import_func.get)(_odRect, "y", 0),
- w: (0, import_func.get)(_odRect, "w", 0),
- h: (0, import_func.get)(_odRect, "h", 0),
- selectAble: false
- });
- return;
- }
- if (cropType === import_constants.CROP_TYPE["AUTO"]) {
- const handleGetOD = (odList2) => {
- const imgSize = imgIns.getImgSize();
- const shapeList = odList2.map((rect2) => ({
- ...rect2,
- selectAble: true,
- id: rect2["id"],
- algorithmVersion: rect2.algorithmVersion
- }));
- imgIns.replaceShape(shapeList);
- const extendRect = shapeList.map((rect2) => {
- const _extendRect = (0, import_func.getExtendRect)(rect2, imgSize.w, imgSize.h, rect2.algorithmVersion);
- return { ...rect2, ..._extendRect };
- });
- setExtendOdList(extendRect);
- imgIns.replaceShape(shapeList);
- handleShapeSelectRef.current = (0, import_func.addEventListenerWrapper)(imgContainerRef.current, "shape-select", (e) => {
- const id = e.detail;
- setSelectRectId(id);
- const selectShape = shapeList.find((v) => v["id"] === id);
- if (selectShape) {
- setSelectAlgorithmVersion(selectShape["algorithmVersion"]);
- const axisRect = imgIns.imgRectAxisToCanvasAxisRect(selectShape);
- const rect2 = {
- x: axisRect.x2 > axisRect.x ? axisRect.x : axisRect.x2,
- y: axisRect.y2 > axisRect.y ? axisRect.y : axisRect.y2,
- w: Math.abs(axisRect.x2 - axisRect.x),
- h: Math.abs(axisRect.y2 - axisRect.y)
- };
- setCropRect(rect2);
- } else {
- setCropRect(null);
- }
- });
- };
- const rect = (0, import_func.getOdRect)({ objects: _objects });
- setOdList(rect);
- handleGetOD(rect);
- }
- if (cropType === import_constants.CROP_TYPE["CUSTOM"]) {
- (_b2 = imgIns == null ? void 0 : imgIns.clearShape) == null ? void 0 : _b2.call(imgIns);
- handlerCropStartRef.current = (0, import_func.addEventListenerWrapper)(imgContainerRef.current, import_ImageEditor.EVENT_CROP_START, () => {
- setSelectAlgorithmVersion(null);
- setCropRect(null);
- });
- handlerCropEndRef.current = (0, import_func.addEventListenerWrapper)(imgContainerRef.current, import_ImageEditor.EVENT_CROP_END, (event) => {
- var _a3, _b3;
- const data = event.detail;
- setSelectAlgorithmVersion(null);
- setCropRect({
- x: data.left,
- y: data.top,
- w: data.width,
- h: data.height
- });
- (_b3 = (_a3 = alignRef == null ? void 0 : alignRef.current) == null ? void 0 : _a3.forceAlign) == null ? void 0 : _b3.call(_a3);
- });
- cropInsRef.current = new import_ImageEditor.Cropper(imgContainerRef.current, {
- showMask: true,
- viewer: imgIns
- });
- }
- };
- const latestCropType = (0, import_hooks.useLatest)(cropType);
- const latestImgKey = (0, import_hooks.useLatest)(dataSource[currentIndex].imageKey);
- const latestCropRect = (0, import_hooks.useLatest)(cropRect);
- const getCropInfo = async () => {
- const cropType2 = latestCropType.current;
- const cropRect2 = latestCropRect.current;
- const imgIns = imgInsRef.current;
- const transform = imgIns.targetTransform;
- let newImgKey = latestImgKey.current;
- let rectList = [];
- let extendRectList = [];
- let selectIndex = 0;
- switch (cropType2) {
- case import_constants.CROP_TYPE["AUTO"]:
- const shapes = imgIns.getSelectShape();
- const shapeIds = shapes.map((v) => v["id"]);
- rectList = odList.filter((v) => shapeIds.includes(v["id"])).map((item) => {
- if (item.algorithmVersion === "OBJECT_TYPE_FACE" || item.objectType === "OBJECT_TYPE_FACE") {
- if (!(0, import_func.isNull)(item.extendBox)) {
- return {
- ...item,
- w: (0, import_func.get)(item, "extendBox.w"),
- h: (0, import_func.get)(item, "extendBox.h"),
- x: (0, import_func.get)(item, "extendBox.x"),
- y: (0, import_func.get)(item, "extendBox.y")
- };
- }
- } else {
- return item;
- }
- });
- extendRectList = extendOdList.filter((v) => shapeIds.includes(v["id"])).map((v) => (0, import_func.pick)(v, ["x", "y", "w", "h", "algorithmVersion", "id"]));
- selectIndex = rectList.findIndex((v) => v["id"] === selectRectId);
- break;
- default:
- const newRect = (0, import_func.getTransformRect)(imgIns.image, transform, cropRect2);
- if ((0, import_func.get)(transform, "rotate", 0) % 360 != 0) {
- const data = (0, import_func.getRotateImg)(imgIns.image, (0, import_func.get)(transform, "rotate", 0));
- newImgKey = await (0, import_func.upload)(data);
- }
- rectList.push(newRect);
- extendRectList.push(newRect);
- break;
- }
- await Promise.all(
- extendRectList.map(async (rect, index) => {
- const file = await (0, import_func.getFileByRect)(imgIns.image, rect);
- const imgKey = await (0, import_func.upload)(file);
- extendRectList[index] = { ...rect, imgKey };
- })
- );
- await Promise.all(
- rectList.map(async (rect, index) => {
- const faceCorrectImage = rect["faceCorrectImage"];
- let faceCorrectImageKey;
- if (faceCorrectImage) {
- const base64 = `data:image/jpg;base64,${faceCorrectImage}`;
- const blobData = (0, import_func.dataURLToBlob)(base64);
- const file = new window.File([blobData], `${(/* @__PURE__ */ new Date()).getTime()}`);
- faceCorrectImageKey = await (0, import_func.upload)(file);
- }
- const newRect = {
- ...rect,
- ...faceCorrectImageKey ? { faceCorrectImageKey } : {}
- };
- delete newRect["faceCorrectImage"];
- rectList[index] = newRect;
- })
- );
- return { rectList, extendRectList, selectIndex, imgKey: newImgKey };
- };
- const handleCropBtnClick = (v) => {
- switch (v) {
- case "close":
- setShowCrop(false);
- break;
- case "autoCrop":
- setCropType(import_constants.CROP_TYPE["AUTO"]);
- break;
- case "customCrop":
- setCropType(import_constants.CROP_TYPE["CUSTOM"]);
- break;
- }
- };
- const [selectAttachImgIndex, setSelectAttachImgIndex] = (0, import_react.useState)(0);
- const [isZoomin, setIsZoomin] = (0, import_react.useState)(false);
- const handleChangeIndex = (diff) => {
- var _a2;
- const _index = currentIndex + diff;
- if (!((_a2 = dataSource == null ? void 0 : dataSource[_index]) == null ? void 0 : _a2.imageKey))
- return;
- setCurrentIndex(_index);
- };
- (0, import_react.useImperativeHandle)(ref, () => ({
- imgInsRef,
- setShowCrop,
- initData,
- getCropInfo,
- handleChangeIndex
- }));
- return /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}`), style: { height, width } }, dataSource.length ? /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
- "div",
- {
- className: (0, import_classnames.default)(
- `${componentName}-main`,
- cropType === import_constants.CROP_TYPE["AUTO"] && `${componentName}-main--cursor`
- ),
- ref: init
- }
- ), !hideLeftTopBtn && /* @__PURE__ */ import_react.default.createElement(
- import_BtnGroup.default,
- {
- className: (0, import_classnames.default)(`${componentName}-opt`),
- dataSource: operateBtnDataSource,
- onClick: handleOptClick,
- placement: "left"
- }
- ), showCrop && /* @__PURE__ */ import_react.default.createElement(
- import_BtnGroup.default,
- {
- circle: true,
- className: (0, import_classnames.default)(`${componentName}-crop-opt`),
- dataSource: cropBtnDataSource,
- onClick: handleCropBtnClick,
- selectKey: cropType === import_constants.CROP_TYPE["AUTO"] ? "autoCrop" : "customCrop"
- }
- ), showCrop && cropRect && screenshotButtonRender && /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
- "div",
- {
- ref: alginContainerRef,
- className: (0, import_classnames.default)(`${componentName}-align`),
- style: Object.assign(
- {
- width: cropRect.w,
- height: cropRect.h
- },
- (0, import_func.getTransforms)({
- translateX: cropRect.x,
- translateY: cropRect.y
- })
- )
- }
- ), /* @__PURE__ */ import_react.default.createElement(
- import_rc_align.default,
- {
- ref: alignRef,
- monitorWindowResize: true,
- align: screenshotButtonAlign,
- target: function() {
- return alginContainerRef.current;
- }
- },
- screenshotButtonRender({
- model: "IMAGE",
- getCropInfo,
- setShowCrop,
- cropType,
- selectAlgorithmVersion
- })
- )), ((_a = dataSource[currentIndex].attachImg) == null ? void 0 : _a.length) && !showCrop && /* @__PURE__ */ import_react.default.createElement(
- "div",
- {
- className: (0, import_classnames.default)(
- `${componentName}-attach`,
- isZoomin && `${componentName}-attach--zoomin`,
- `${componentName}-attach--fixed`,
- isZoomin && `${componentName}-attach--zoomin--fixed`
- )
- },
- /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}-attach__tab`) }, showAttachImgLabel ? (_b = dataSource[currentIndex].attachImg) == null ? void 0 : _b.map(({ label }, index) => /* @__PURE__ */ import_react.default.createElement(
- "div",
- {
- key: index,
- className: (0, import_classnames.default)(
- `${componentName}-attach__tab-item`,
- selectAttachImgIndex === index && `${componentName}-attach__tab-item--select`
- ),
- onMouseEnter: () => {
- setSelectAttachImgIndex(index);
- }
- },
- label
- )) : null),
- /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}-attach__scale`) }, /* @__PURE__ */ import_react.default.createElement(
- import_antd.Button,
- {
- type: "text",
- onMouseDown: (e) => {
- if (e.button == 0) {
- setIsZoomin((pre) => !pre);
- }
- },
- style: {
- color: "#fff"
- }
- },
- /* @__PURE__ */ import_react.default.createElement(
- import_iconfont.default,
- {
- styles: { display: "flex" },
- icon: isZoomin ? "icon-cancle_fullscreen" : "icon-fullscreen"
- }
- )
- )),
- /* @__PURE__ */ import_react.default.createElement(
- "img",
- {
- draggable: "false",
- className: (0, import_classnames.default)(
- `${componentName}-attach__img`,
- `${componentName}-attach__img--fixed`
- ),
- src: (0, import_func.get)(dataSource[currentIndex].attachImg, `${selectAttachImgIndex}.url`, "")
- }
- )
- ), showScore && /* @__PURE__ */ import_react.default.createElement(
- "div",
- {
- style: { bottom: 20 },
- className: (0, import_classnames.default)(`${componentName}__face-score`)
- },
- `人脸质量分:${Number(dataSource[currentIndex].score).toFixed(2)}`
- )) : /* @__PURE__ */ import_react.default.createElement(import_antd.Empty, { image: import_antd.Empty.PRESENTED_IMAGE_SIMPLE, description: "暂无数据" }));
-});
-BigImagePreview.displayName = "BigImagePreview";
-var BigImagePreview_default = BigImagePreview;
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
- BigImagePreview
-});
diff --git a/packages/meta/lib/BigImagePreview/bigImagePreviewHelper.js b/packages/meta/lib/BigImagePreview/bigImagePreviewHelper.js
deleted file mode 100644
index e69de29..0000000
diff --git a/packages/meta/lib/BigImagePreview/components/BtnGroup/index.js b/packages/meta/lib/BigImagePreview/components/BtnGroup/index.js
deleted file mode 100644
index 8413f3f..0000000
--- a/packages/meta/lib/BigImagePreview/components/BtnGroup/index.js
+++ /dev/null
@@ -1,83 +0,0 @@
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/BigImagePreview/components/BtnGroup/index.tsx
-var BtnGroup_exports = {};
-__export(BtnGroup_exports, {
- BtnGroup: () => BtnGroup,
- default: () => BtnGroup_default
-});
-module.exports = __toCommonJS(BtnGroup_exports);
-var import_react = __toESM(require("react"));
-var import_classnames = __toESM(require("classnames"));
-var import_antd = require("antd");
-var import_iconfont = __toESM(require("../../../iconfont"));
-var import_index = require("./index.less");
-var componentName = `zhst-image__btn-group`;
-var BtnGroup = (props) => {
- const { dataSource, onClick, className, circle, selectKey = "", placement = "right" } = props;
- return /* @__PURE__ */ import_react.default.createElement(
- "div",
- {
- className: (0, import_classnames.default)(
- componentName,
- circle && `${componentName}--circle`,
- className
- )
- },
- dataSource.map(({ key, icon, title }) => {
- const isSelect = key === selectKey;
- return /* @__PURE__ */ import_react.default.createElement(import_antd.Tooltip, { key, placement, title }, /* @__PURE__ */ import_react.default.createElement(
- "div",
- {
- key,
- className: (0, import_classnames.default)(
- `${componentName}__item`,
- isSelect && `${componentName}__item--active`
- )
- },
- /* @__PURE__ */ import_react.default.createElement(
- import_antd.Button,
- {
- type: "text",
- onClick: (e) => {
- onClick(key, e);
- }
- },
- /* @__PURE__ */ import_react.default.createElement(import_iconfont.default, { size: 18, icon })
- )
- ));
- })
- );
-};
-BtnGroup.displayName = "BtnGroup";
-var BtnGroup_default = BtnGroup;
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
- BtnGroup
-});
diff --git a/packages/meta/lib/BigImagePreview/components/BtnGroup/index.less b/packages/meta/lib/BigImagePreview/components/BtnGroup/index.less
deleted file mode 100644
index db03187..0000000
--- a/packages/meta/lib/BigImagePreview/components/BtnGroup/index.less
+++ /dev/null
@@ -1,51 +0,0 @@
-.zhst-image__btn-group {
- // display: flex;
- width: 30px;
- box-shadow: 0 2px 6px 0 rgb(0 0 0 / 40%);
-
- &__item {
- display: flex;
- width: 30px;
- height: 30px;
- align-items: center;
- justify-content: center;
- background: #000;
-
- &>button {
- padding: 0;
- color: #fff;
-
- &:hover {
- color: #09f;
- }
-
- &:active {
- color: #09f;
- }
-
- &:focus {
- color: #fff;
- }
-
- &>span {
- display: flex;
- }
- }
-
- &--active {
- &>button {
- color: #09f;
- }
- }
- }
-
- &--circle {
- background-color: none;
- box-shadow: none;
- }
-
- &--circle &__item {
- margin-bottom: 4px;
- border-radius: 50%;
- }
-}
diff --git a/packages/meta/lib/BigImagePreview/components/ScreenhotButtons/index.js b/packages/meta/lib/BigImagePreview/components/ScreenhotButtons/index.js
deleted file mode 100644
index d39af2e..0000000
--- a/packages/meta/lib/BigImagePreview/components/ScreenhotButtons/index.js
+++ /dev/null
@@ -1,126 +0,0 @@
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/BigImagePreview/components/ScreenhotButtons/index.tsx
-var ScreenhotButtons_exports = {};
-__export(ScreenhotButtons_exports, {
- default: () => ScreenhotButtons_default
-});
-module.exports = __toCommonJS(ScreenhotButtons_exports);
-var import_react = __toESM(require("react"));
-var import_antd = require("antd");
-var import_classnames = __toESM(require("classnames"));
-var import_BigImageModal = require("@zhst/types/BigImageModal");
-var import_index = require("./index.less");
-var componentName = "bigImageWrapper--v2";
-var getScreenshotButtonRender = (arg) => {
- const { disableBtn = [], onBigImageActionClick } = arg;
- return (param) => {
- const { getCropInfo, setShowCrop, cropType, selectAlgorithmVersion } = param;
- let isAuto = cropType === "AUTO";
- return /* @__PURE__ */ import_react.default.createElement(
- "div",
- {
- className: (0, import_classnames.default)(`${componentName}__screenshot`),
- style: {
- zIndex: 100,
- position: "absolute",
- width: "86px"
- }
- },
- !disableBtn.includes(import_BigImageModal.IBigImageOpt["ADD_HISTORY_WITH_CROP"]) && isAuto && /* @__PURE__ */ import_react.default.createElement(
- import_antd.Button,
- {
- type: "text",
- onClick: async (e) => {
- e.stopPropagation();
- const image = await getCropInfo();
- setShowCrop(false);
- onBigImageActionClick(import_BigImageModal.IBigImageOpt["ADD_HISTORY_WITH_CROP"], image);
- }
- },
- "目标检索"
- ),
- !disableBtn.includes(import_BigImageModal.IBigImageOpt["ADD_HISTORY_WITH_CROP_BODY"]) && !isAuto && /* @__PURE__ */ import_react.default.createElement(
- import_antd.Button,
- {
- type: "text",
- onClick: async (e) => {
- e.stopPropagation();
- const image = await getCropInfo();
- setShowCrop(false);
- onBigImageActionClick(import_BigImageModal.IBigImageOpt["ADD_HISTORY_WITH_CROP_BODY"], image);
- }
- },
- "搜形体"
- ),
- !disableBtn.includes(import_BigImageModal.IBigImageOpt["ADD_HISTORY_WITH_CROP_VEHICLE"]) && !isAuto && /* @__PURE__ */ import_react.default.createElement(
- import_antd.Button,
- {
- type: "text",
- onClick: async (e) => {
- e.stopPropagation();
- const image = await getCropInfo();
- setShowCrop(false);
- onBigImageActionClick(import_BigImageModal.IBigImageOpt["ADD_HISTORY_WITH_CROP_VEHICLE"], image);
- }
- },
- "搜非机动车"
- ),
- !disableBtn.includes(import_BigImageModal.IBigImageOpt["ADD_HISTORY_WITH_CROP_ARCHIVE"]) && selectAlgorithmVersion !== 0 && /* @__PURE__ */ import_react.default.createElement(
- import_antd.Button,
- {
- type: "text",
- onClick: (e) => {
- e.stopPropagation();
- let image = getCropInfo();
- setShowCrop(false);
- if (!image.rectList[0].algorithmVersion) {
- image.rectList[0].algorithmVersion = 0;
- image.extendRectList[0].algorithmVersion = 0;
- }
- onBigImageActionClick(import_BigImageModal.IBigImageOpt["ADD_HISTORY_WITH_CROP_ARCHIVE"], image);
- }
- },
- "档案检索"
- ),
- /* @__PURE__ */ import_react.default.createElement(
- import_antd.Button,
- {
- type: "text",
- onClick: (e) => {
- e.stopPropagation();
- setShowCrop(false);
- }
- },
- "退出框选"
- )
- );
- };
-};
-var ScreenhotButtons_default = getScreenshotButtonRender;
diff --git a/packages/meta/lib/BigImagePreview/components/ScreenhotButtons/index.less b/packages/meta/lib/BigImagePreview/components/ScreenhotButtons/index.less
deleted file mode 100644
index ca407fa..0000000
--- a/packages/meta/lib/BigImagePreview/components/ScreenhotButtons/index.less
+++ /dev/null
@@ -1,21 +0,0 @@
-.bigImageWrapper--v2__screenshot {
- min-width: 90px;
- background: rgb(0 0 0 / 50%);
- border-radius: 0;
-
- &>button {
- width: 100%;
- color: #fff !important;
- font-family: 'Microsoft YaHei';
- font-size: 12px !important;
- border-radius: 0;
-
- &>span {
- color: #fff;
- }
-
- &:hover {
- background-color: #09f !important;
- }
- }
-}
diff --git a/packages/meta/lib/BigImagePreview/index.js b/packages/meta/lib/BigImagePreview/index.js
deleted file mode 100644
index 3944af4..0000000
--- a/packages/meta/lib/BigImagePreview/index.js
+++ /dev/null
@@ -1,36 +0,0 @@
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/BigImagePreview/index.tsx
-var BigImagePreview_exports = {};
-__export(BigImagePreview_exports, {
- default: () => BigImagePreview_default
-});
-module.exports = __toCommonJS(BigImagePreview_exports);
-var import_BigImagePreview = __toESM(require("./BigImagePreview"));
-var BigImagePreview_default = import_BigImagePreview.default;
diff --git a/packages/meta/lib/BigImagePreview/index.less b/packages/meta/lib/BigImagePreview/index.less
deleted file mode 100644
index 829ebe1..0000000
--- a/packages/meta/lib/BigImagePreview/index.less
+++ /dev/null
@@ -1,129 +0,0 @@
-.zhst-image__img-view {
- position: relative;
- width: calc(100%);
- height: 100%;
-
- &__face-score {
- position: absolute;
- right: 20px;
- bottom: 80px;
- color: red;
- font-family: 'Microsoft YaHei';
- font-size: 19px;
- font-weight: bold;
- }
-
- &-opt {
- position: absolute;
- z-index: 99;
- top: 0;
- }
-
- &-crop-opt {
- position: absolute;
- z-index: 99;
- top: 0;
- right: 0;
- }
-
- &-align {
- position: absolute;
- top: 0;
- left: 0;
- pointer-events: none;
- }
-
- &-main {
- width: 100%;
- height: 100%;
- font-size: 0;
-
- &--cursor {
- & canvas {
- min-height: 320px;
- cursor: pointer;
- }
- }
- }
-
- &-screenshot {
- position: absolute;
- z-index: 10;
- }
-
- &-attach {
- position: absolute;
- z-index: 11;
- bottom: 0;
-
- // left: 78px;
- left: 0;
- min-width: 120px;
- height: 202px;
- transition: all 200ms;
-
- &--fixed {
- }
-
- &--zoomin {
- height: 100%;
-
- &--fixed {
- }
- }
-
- &__tab {
- position: absolute;
- top: 0;
- left: 0;
- display: flex;
-
- &-item {
- display: flex;
- width: 30px;
- height: 24px;
- align-items: center;
- justify-content: center;
- background: #000;
- color: #fff;
- cursor: pointer;
- font-size: 12px;
- opacity: 0.5;
- transition: all 200ms;
-
- &--select {
- width: 48px;
- height: 34px;
- background: #09f;
- opacity: 1;
- }
- }
- }
-
- &__scale {
- position: absolute;
- top: 4px;
- right: 4px;
- display: flex;
- width: 30px;
- height: 30px;
- align-items: center;
- justify-content: center;
- background: rgb(0 0 0 / 60%);
- border-radius: 100%;
- cursor: pointer;
- line-height: 30px;
- text-align: center;
- }
-
- &__img {
- height: 100%;
- object-fit: contain;
-
- &--fixed {
- width: 100%;
- object-fit: contain;
- }
- }
- }
-}
diff --git a/packages/meta/lib/CompareImage/CompareImage.js b/packages/meta/lib/CompareImage/CompareImage.js
deleted file mode 100644
index 78f4153..0000000
--- a/packages/meta/lib/CompareImage/CompareImage.js
+++ /dev/null
@@ -1,157 +0,0 @@
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/CompareImage/CompareImage.tsx
-var CompareImage_exports = {};
-__export(CompareImage_exports, {
- default: () => CompareImage_default
-});
-module.exports = __toCommonJS(CompareImage_exports);
-var import_react = __toESM(require("react"));
-var import_func = require("@zhst/func");
-var import_hooks = require("@zhst/hooks");
-var import_antd = require("antd");
-var import_classnames = __toESM(require("classnames"));
-var import_viewer = __toESM(require("../ImageEditor/viewer"));
-var import_iconfont = __toESM(require("../iconfont"));
-var import_CornerScore = __toESM(require("./components/CornerScore"));
-var import_index = require("./index.less");
-var componentName = `zhst-image__compater-view`;
-var CompareImage = (0, import_react.forwardRef)((props, ref) => {
- const { label, openRoll = false, dataSource = [], showScore = true, current = 0 } = props;
- const imgContainerRef = (0, import_react.useRef)(null);
- const imgInsRef = (0, import_react.useRef)(null);
- const [scale, setScale] = (0, import_react.useState)(0);
- const [currentIndex, setCurrentIndex] = (0, import_react.useState)(current);
- (0, import_react.useEffect)(() => {
- const handleTransformChange = (0, import_func.addEventListenerWrapper)(
- imgContainerRef.current,
- "viewer-transform-change",
- (event) => {
- const data = event.detail;
- setScale((0, import_func.get)(data, "scale", 0));
- }
- );
- if ((0, import_func.generateImg)(dataSource[currentIndex].url)) {
- imgInsRef.current = new import_viewer.default(imgContainerRef.current, {
- image: (0, import_func.generateImg)(dataSource[currentIndex].url)
- });
- }
- return () => {
- var _a, _b;
- handleTransformChange == null ? void 0 : handleTransformChange.remove();
- (_b = (_a = imgInsRef == null ? void 0 : imgInsRef.current) == null ? void 0 : _a.destroy) == null ? void 0 : _b.call(_a);
- imgInsRef.current = null;
- };
- }, []);
- (0, import_hooks.useUpdateEffect)(() => {
- var _a;
- if (imgInsRef.current) {
- (_a = imgInsRef.current) == null ? void 0 : _a.refleshImage({
- image: (0, import_func.generateImg)(dataSource[currentIndex].url)
- });
- }
- }, [currentIndex]);
- const handleIndexChange = (changeVal) => {
- var _a, _b;
- const _index = currentIndex + changeVal;
- if (!((_a = dataSource == null ? void 0 : dataSource[_index]) == null ? void 0 : _a.url))
- return;
- (_b = imgInsRef.current) == null ? void 0 : _b.refleshImage({
- image: (0, import_func.generateImg)(dataSource[_index].url)
- });
- setCurrentIndex(_index);
- };
- (0, import_react.useImperativeHandle)(ref, () => ({
- imgInsRef,
- handleIndexChange
- }));
- return /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}__container`) }, /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}__label`) }, label), /* @__PURE__ */ import_react.default.createElement("div", { ref: imgContainerRef, className: (0, import_classnames.default)(`${componentName}__view`) }), !dataSource.length && /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}__empty`) }, /* @__PURE__ */ import_react.default.createElement(
- "img",
- {
- src: "data:image/png;base64,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",
- title: "暂无数据"
- }
- ), /* @__PURE__ */ import_react.default.createElement("span", { className: (0, import_classnames.default)(`${componentName}__empty--text`) }, "暂无匹配数据")), !!dataSource.length && openRoll && /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}__scoll-module`) }, /* @__PURE__ */ import_react.default.createElement(
- import_antd.Button,
- {
- type: "default",
- className: (0, import_classnames.default)(`${componentName}__scoll-module__btn`),
- disabled: currentIndex <= 0,
- onClick: () => {
- handleIndexChange(-1);
- }
- },
- /* @__PURE__ */ import_react.default.createElement(import_iconfont.default, { icon: "icon-qiehuanzuo", size: 40 })
- ), /* @__PURE__ */ import_react.default.createElement(
- import_antd.Button,
- {
- type: "default",
- className: (0, import_classnames.default)(`${componentName}__scoll-module__btn`),
- disabled: currentIndex >= dataSource.length - 1,
- onClick: () => {
- handleIndexChange(1);
- }
- },
- /* @__PURE__ */ import_react.default.createElement(import_iconfont.default, { icon: "icon-qiehuanyou", size: 40 })
- )), showScore && /* @__PURE__ */ import_react.default.createElement(import_CornerScore.default, { scoreTxt: dataSource[currentIndex].score }), /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}__tool`) }, /* @__PURE__ */ import_react.default.createElement(
- import_antd.Button,
- {
- type: "text",
- onClick: () => {
- var _a, _b;
- (_b = (_a = imgInsRef == null ? void 0 : imgInsRef.current) == null ? void 0 : _a.scaleTo) == null ? void 0 : _b.call(_a, 0.1);
- }
- },
- /* @__PURE__ */ import_react.default.createElement(import_iconfont.default, { size: 16, icon: "icon-fangda" }),
- /* @__PURE__ */ import_react.default.createElement("span", null, "放大")
- ), /* @__PURE__ */ import_react.default.createElement(
- import_antd.Button,
- {
- type: "text",
- onClick: () => {
- var _a, _b;
- (_b = (_a = imgInsRef == null ? void 0 : imgInsRef.current) == null ? void 0 : _a.scaleTo) == null ? void 0 : _b.call(_a, -0.1);
- }
- },
- /* @__PURE__ */ import_react.default.createElement(import_iconfont.default, { size: 16, icon: "icon-suoxiao" }),
- /* @__PURE__ */ import_react.default.createElement("span", null, "缩小")
- ), /* @__PURE__ */ import_react.default.createElement("span", { className: (0, import_classnames.default)(`${componentName}__tool__scale`) }, Math.round(scale * 100) + "%"), /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}__tool__line`) }), /* @__PURE__ */ import_react.default.createElement(
- import_antd.Button,
- {
- type: "text",
- onClick: () => {
- var _a, _b;
- (_b = (_a = imgInsRef == null ? void 0 : imgInsRef.current) == null ? void 0 : _a.reset) == null ? void 0 : _b.call(_a);
- }
- },
- /* @__PURE__ */ import_react.default.createElement(import_iconfont.default, { size: 16, icon: "icon-zhongzhi3" }),
- /* @__PURE__ */ import_react.default.createElement("span", null, "重置")
- )));
-});
-var CompareImage_default = CompareImage;
diff --git a/packages/meta/lib/CompareImage/components/CornerScore/index.js b/packages/meta/lib/CompareImage/components/CornerScore/index.js
deleted file mode 100644
index 916d94f..0000000
--- a/packages/meta/lib/CompareImage/components/CornerScore/index.js
+++ /dev/null
@@ -1,52 +0,0 @@
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/CompareImage/components/CornerScore/index.tsx
-var CornerScore_exports = {};
-__export(CornerScore_exports, {
- CornerScore: () => CornerScore,
- default: () => CornerScore_default
-});
-module.exports = __toCommonJS(CornerScore_exports);
-var import_react = __toESM(require("react"));
-var import_classnames = __toESM(require("classnames"));
-var import_index = require("./index.less");
-var componentName = `zhst-image__CornerScore`;
-var CornerScore = (props) => {
- const { scoreTxt } = props;
- return (0, import_react.useMemo)(
- () => /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}`) }, /* @__PURE__ */ import_react.default.createElement("span", null, ~~(scoreTxt * 100), "%")),
- [scoreTxt]
- );
-};
-CornerScore.displayName = componentName;
-var CornerScore_default = CornerScore;
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
- CornerScore
-});
diff --git a/packages/meta/lib/CompareImage/components/CornerScore/index.less b/packages/meta/lib/CompareImage/components/CornerScore/index.less
deleted file mode 100644
index cb8bf35..0000000
--- a/packages/meta/lib/CompareImage/components/CornerScore/index.less
+++ /dev/null
@@ -1,21 +0,0 @@
-.zhst-image__CornerScore {
- position: absolute;
- right: 0;
- bottom: 0;
- width: 56px;
- height: 22px;
- line-height: 22px;
- text-align: right;
- padding-right: 1px;
- background-size: 100%;
- background-image: url('data: image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAAAsCAYAAAC9rDzHAAAByUlEQVR4Xu2cO08DMRCEJy0tlNBCSwmU0EIJLbS0UEILLTX/Fo3kk1AUHrrsjB3dWIoUnZTdvfnOZ6+1mxXGGHsADgEcA9hvnyMAvJ7xiwKrjuoQ0HmDxu8ZMxToAZDQrgAE2gxg6z9xAjwFcAvgoCDumGgKuADeA7iI6vUKqAFyE/KU12U9uMmiGuBr4Ong0bIS4A2Aa234sa4CyFzuPfLqFVABfGg5nv4OFu5BAZAbl4+F62q7fQVAJul3tjtYuCMFwEcATNozDAooAL7ltMVATngS8+kLP54UMzAAjc9VABrFVrgKQIWqRpsBaBRb4SoAFaoabQagUWyFqwBUqGq0GYBGsRWuAlChqtFmABrFVrgKQIWqRpsBaBRb4SoAFaoabVYDZLU1K9EyTApUA2RzyrMp9rgRlBWylIIlFRkmBapnIIuZ0hJmgkc3lQBTzGQEN7mqApjNSwd4VTOQr8yXFDL1IbjtDOTMY/dR1r0+/LZaA1n7yb6/wOsEb+4rlMDYdZR0oSO4uZuYtEkPAO17CP9dA3nCwll3Mlj8iw/nL4ABN/gj8hPAgBsc3KY1kJuTs7Y5yV+B7BBA5nKXrSUsKcGOgJvC/ALSJBp5mBHCFAAAAABJRU5ErkJggg==');
- z-index: 99;
-
- &>span {
- padding-right: 6px;
- line-height: 22px;
- font-size: 12px;
- vertical-align: middle;
- color: rgba(255, 255, 255, 100%);
- }
-}
diff --git a/packages/meta/lib/CompareImage/images/emptyImage.png b/packages/meta/lib/CompareImage/images/emptyImage.png
deleted file mode 100644
index 97629573a5196529f63a8365baeeadab76209c1a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 5786
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
YKZ_v3%v7MbF#rGn07*qoM6N<$g4h-+kpKVy
diff --git a/packages/meta/lib/CompareImage/images/percent_background.png b/packages/meta/lib/CompareImage/images/percent_background.png
deleted file mode 100644
index ebde317c473fda46d686dce6ffba98db676f331e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 514
zcmeAS@N?(olHy`uVBq!ia0vp^1wgFB!3HGvuCY1Jz`%IY)5S5QBJS-RYky`#ffjXL
z-6Hmn8Q4;CoAn~}k_
zgW(?Yj*eGfxmGY134fY$J=J!{$wg8RvLC#BaB-8+1Kx)0+#eg)F`bBcXZz`uXaHkP
zhUL6}d}8k$87D|j?{9sbwY!$pLG5MvHtUET%B%<68GLRT^KfY}?0dT9sDodH(C3%j
z_VYxH4H$aQhcZYV4co!x(7MWPHe-fJ^g}HM(N$8pYzqQ&T30iKtjO9T+2FQObRAQ`
z!c`a3uqzH@PT6XzebLB=D}*_v_|#_2Z#x91h;EwFq$(<@#=0t9p?l^fp|mD<^QjEM
zXHrQ%!{C#rY{sXUB^51Ds
zIdG$NO36ay9Xn^w*y730@V1)ce=Kw5p+k}7MiGCy`Jd}IFq;2R{v>>$L0aa{GSdmO
yCvV {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/CompareImage/index.tsx
-var CompareImage_exports = {};
-__export(CompareImage_exports, {
- default: () => CompareImage_default
-});
-module.exports = __toCommonJS(CompareImage_exports);
-var import_CompareImage = __toESM(require("./CompareImage"));
-var CompareImage_default = import_CompareImage.default;
diff --git a/packages/meta/lib/CompareImage/index.less b/packages/meta/lib/CompareImage/index.less
deleted file mode 100644
index 378f365..0000000
--- a/packages/meta/lib/CompareImage/index.less
+++ /dev/null
@@ -1,147 +0,0 @@
-.zhst-image__compater-view {
- display: flex;
- width: 100%;
- align-items: center;
- justify-content: center;
-
- &>div:first-child {
- margin-right: 25px;
- }
-
- &>div:last-child {
- margin-left: 25px;
- }
-
- &__container {
- position: relative;
- width: 345px;
- height: 460px;
- box-sizing: content-box;
- border: 1px solid #f0f0f0;
- }
-
- &__view {
- width: 345px;
- height: 460px;
- }
-
- &__label {
- position: absolute;
- z-index: 99;
- top: 0;
- left: 0;
- display: flex;
- height: 34px;
- align-items: center;
- justify-content: center;
-
- // width: 48px;
- padding: 0 6px;
- background: #09f;
- color: #fff;
- }
-
- &__tool {
- display: flex;
- width: 345px;
- height: 40px;
- align-items: center;
- justify-content: center;
- background: #f9f9f9;
-
- i,
- span {
- color: #333 !important;
- }
-
- i {
- margin-right: 4px;
- }
-
- &>*:not(:last-child) {
- margin-right: 20px;
- }
-
- &__scale {
- display: inline-block;
- width: 38px;
- height: 16px;
-
- // margin-left: 15px;
- box-sizing: content-box;
- border: 1px solid rgb(77 77 77 / 100%);
- background: rgb(255 255 255 / 100%);
- border-radius: 2px;
- color: #4d4d4d;
- cursor: default;
- font-size: 12px;
- line-height: 16px;
- text-align: center;
- }
-
- &__line {
- width: 1px;
- height: 14px;
- background: #e6e6e6;
- }
- }
-
- &__empty {
- position: absolute;
- z-index: 9;
- display: flex;
- width: 100%;
- height: 100%;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- background: #f9f9f9;
- transform: translateY(-100%);
-
- &>img {
- width: 140px;
- height: 80px;
- }
-
- &--text {
- color: #999;
- font-size: 14px;
- line-height: 22px;
- }
- }
-
- &__scoll-module {
- position: absolute;
- top: 0%;
- left: 0%;
- display: flex;
- width: 100%;
- height: 100%;
- align-items: flex-end;
- justify-content: space-between;
- pointer-events: none;
-
- &__btn {
- display: flex;
- width: 50px;
- height: 50px;
- align-items: center;
- justify-content: center;
- margin: 6px;
- border-radius: 50%;
- opacity: 0.5;
- pointer-events: all;
-
- &>span {
- display: flex;
- align-items: center;
- justify-content: center;
- }
- }
-
- &__btn:hover {
- background-color: #09f !important;
- color: #fff !important;
- }
- }
-}
diff --git a/packages/meta/lib/ImageEditor/cropper/constants.js b/packages/meta/lib/ImageEditor/cropper/constants.js
deleted file mode 100644
index c9d9350..0000000
--- a/packages/meta/lib/ImageEditor/cropper/constants.js
+++ /dev/null
@@ -1,105 +0,0 @@
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/ImageEditor/cropper/constants.ts
-var constants_exports = {};
-__export(constants_exports, {
- ACTION_CROP: () => ACTION_CROP,
- ACTION_EAST: () => ACTION_EAST,
- ACTION_MOVE: () => ACTION_MOVE,
- ACTION_NORTH: () => ACTION_NORTH,
- ACTION_NORTH_EAST: () => ACTION_NORTH_EAST,
- ACTION_NORTH_WEST: () => ACTION_NORTH_WEST,
- ACTION_SOUTH: () => ACTION_SOUTH,
- ACTION_SOUTH_EAST: () => ACTION_SOUTH_EAST,
- ACTION_SOUTH_WEST: () => ACTION_SOUTH_WEST,
- ACTION_WEST: () => ACTION_WEST,
- CLASS_HIDDEN: () => CLASS_HIDDEN,
- CLASS_MASK: () => CLASS_MASK,
- DATA_ACTION: () => DATA_ACTION,
- EVENT_CROP_CHANGE: () => EVENT_CROP_CHANGE,
- EVENT_CROP_END: () => EVENT_CROP_END,
- EVENT_CROP_START: () => EVENT_CROP_START,
- EVENT_POINTER_DOWN: () => EVENT_POINTER_DOWN,
- EVENT_POINTER_MOVE: () => EVENT_POINTER_MOVE,
- EVENT_POINTER_UP: () => EVENT_POINTER_UP,
- EVENT_TOUCH_END: () => EVENT_TOUCH_END,
- EVENT_TOUCH_MOVE: () => EVENT_TOUCH_MOVE,
- EVENT_TOUCH_START: () => EVENT_TOUCH_START,
- EVENT_WHEEL: () => EVENT_WHEEL,
- NAMESPACE: () => NAMESPACE,
- REGEXP_ACTIONS: () => REGEXP_ACTIONS,
- REGEXP_SPACES: () => REGEXP_SPACES
-});
-module.exports = __toCommonJS(constants_exports);
-var import_utils = require("../utils");
-var NAMESPACE = "zhst-cropper";
-var ACTION_MOVE = "move";
-var ACTION_CROP = "crop";
-var ACTION_EAST = "e";
-var ACTION_WEST = "w";
-var ACTION_SOUTH = "s";
-var ACTION_NORTH = "n";
-var ACTION_NORTH_EAST = "ne";
-var ACTION_NORTH_WEST = "nw";
-var ACTION_SOUTH_EAST = "se";
-var ACTION_SOUTH_WEST = "sw";
-var CLASS_HIDDEN = `${NAMESPACE}-hidden`;
-var CLASS_MASK = `${NAMESPACE}-mask`;
-var DATA_ACTION = `${NAMESPACE}-action`;
-var EVENT_TOUCH_START = import_utils.IS_TOUCH_DEVICE ? "touchstart" : "mousedown";
-var EVENT_TOUCH_MOVE = import_utils.IS_TOUCH_DEVICE ? "touchmove" : "mousemove";
-var EVENT_TOUCH_END = import_utils.IS_TOUCH_DEVICE ? "touchend touchcancel" : "mouseup";
-var EVENT_POINTER_DOWN = import_utils.HAS_POINTER_EVENT ? "pointerdown" : EVENT_TOUCH_START;
-var EVENT_POINTER_MOVE = import_utils.HAS_POINTER_EVENT ? "pointermove" : EVENT_TOUCH_MOVE;
-var EVENT_POINTER_UP = import_utils.HAS_POINTER_EVENT ? "pointerup pointercancel" : EVENT_TOUCH_END;
-var EVENT_WHEEL = "wheel";
-var EVENT_CROP_CHANGE = "crop-change";
-var EVENT_CROP_START = "crop-start";
-var EVENT_CROP_END = "crop-end";
-var REGEXP_SPACES = /\s\s*/;
-var REGEXP_ACTIONS = /^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/;
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
- ACTION_CROP,
- ACTION_EAST,
- ACTION_MOVE,
- ACTION_NORTH,
- ACTION_NORTH_EAST,
- ACTION_NORTH_WEST,
- ACTION_SOUTH,
- ACTION_SOUTH_EAST,
- ACTION_SOUTH_WEST,
- ACTION_WEST,
- CLASS_HIDDEN,
- CLASS_MASK,
- DATA_ACTION,
- EVENT_CROP_CHANGE,
- EVENT_CROP_END,
- EVENT_CROP_START,
- EVENT_POINTER_DOWN,
- EVENT_POINTER_MOVE,
- EVENT_POINTER_UP,
- EVENT_TOUCH_END,
- EVENT_TOUCH_MOVE,
- EVENT_TOUCH_START,
- EVENT_WHEEL,
- NAMESPACE,
- REGEXP_ACTIONS,
- REGEXP_SPACES
-});
diff --git a/packages/meta/lib/ImageEditor/cropper/event.js b/packages/meta/lib/ImageEditor/cropper/event.js
deleted file mode 100644
index d47e644..0000000
--- a/packages/meta/lib/ImageEditor/cropper/event.js
+++ /dev/null
@@ -1,419 +0,0 @@
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/ImageEditor/cropper/event.ts
-var event_exports = {};
-__export(event_exports, {
- default: () => event_default
-});
-module.exports = __toCommonJS(event_exports);
-var import_class = require("rc-util/lib/Dom/class");
-var import_func = require("@zhst/func");
-var import_warn = __toESM(require("rc-util/lib/warn"));
-var import_utils = require("../utils");
-var import_constants = require("./constants");
-var event_default = {
- bind() {
- const { container, element, eventHandleList = [], option } = this;
- const handleCropStart = (0, import_func.addEventListenerWrapper)(
- container,
- import_constants.EVENT_POINTER_DOWN,
- this.onCropStart.bind(this)
- );
- eventHandleList.push(handleCropStart);
- const handleCropMove = (0, import_func.addEventListenerWrapper)(
- element.ownerDocument,
- import_constants.EVENT_POINTER_MOVE,
- this.onCropMove.bind(this)
- );
- eventHandleList.push(handleCropMove);
- import_constants.EVENT_POINTER_UP.trim().split(import_constants.REGEXP_SPACES).forEach((eventName) => {
- const handleCropEnd = (0, import_func.addEventListenerWrapper)(
- element.ownerDocument,
- eventName,
- this.onCropEnd.bind(this)
- );
- eventHandleList.push(handleCropEnd);
- });
- },
- unbind() {
- const { eventHandleList } = this;
- for (let index = eventHandleList.length; index > 0; index--) {
- const handler = eventHandleList.shift;
- try {
- handler.remove();
- } catch (error) {
- (0, import_warn.default)("CROP:REMOVE_EVENT_FAIL,", error);
- }
- }
- },
- onCropStart(event) {
- const { buttons, button } = event;
- if (this.disabled || // Handle mouse event and pointer event and ignore touch event
- (event.type === "mousedown" || event.type === "pointerdown" && event.pointerType === "mouse") && // No primary button (Usually the left button)
- ((0, import_func.isNumber)(buttons) && buttons !== 1 || (0, import_func.isNumber)(button) && button !== 0 || // Open context menu
- event.ctrlKey)) {
- return;
- }
- const action = (0, import_utils.getData)(event.target, import_constants.DATA_ACTION);
- this.pointer = (0, import_utils.getPointer)(event);
- if (!import_constants.REGEXP_ACTIONS.test(action)) {
- return;
- }
- event.preventDefault();
- this.action = action;
- this.cropping = false;
- if (action === import_constants.ACTION_CROP) {
- this.cropping = true;
- const { showMask } = this.options;
- if (showMask) {
- (0, import_class.addClass)(this.dragBox, import_constants.CLASS_MASK);
- }
- }
- const hasCrop = (0, import_func.get)(this, "cropBoxData.width", 0) !== 0 && (0, import_func.get)(this, "cropBoxData.height", 0) !== 0;
- (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_CROP_START, hasCrop ? this == null ? void 0 : this.cropBoxData : null);
- (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_CROP_CHANGE, hasCrop ? this == null ? void 0 : this.cropBoxData : null);
- },
- onCropMove(event) {
- const { action } = this;
- if (!action) {
- return;
- }
- this.pointer = Object.assign({}, this.pointer, (0, import_utils.getPointer)(event, true));
- event.preventDefault();
- this.change(event);
- },
- onCropEnd(event) {
- const { action } = this;
- if (!action) {
- return;
- }
- event.preventDefault();
- this.action = null;
- this.point = null;
- if (this.cropping) {
- this.cropping = false;
- }
- const hasCrop = (0, import_func.get)(this, "cropBoxData.width", 0) !== 0 && (0, import_func.get)(this, "cropBoxData.height", 0) !== 0;
- (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_CROP_CHANGE, hasCrop ? this == null ? void 0 : this.cropBoxData : null);
- hasCrop && (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_CROP_END, hasCrop ? this == null ? void 0 : this.cropBoxData : null);
- },
- change(event) {
- const { options, containerData, cropBoxData = {}, pointer = {}, wrapper } = this;
- let { action } = this;
- let { left, top, width, height } = cropBoxData;
- const right = left + width;
- const bottom = top + height;
- const minLeft = 0;
- const minTop = 0;
- const maxWidth = containerData.width;
- const maxHeight = containerData.height;
- let renderable = true;
- let offset;
- const range = {
- x: pointer.endX - pointer.startX,
- y: pointer.endY - pointer.startY
- };
- const check = (side) => {
- switch (side) {
- case import_constants.ACTION_EAST:
- if (right + range.x > maxWidth) {
- range.x = maxWidth - right;
- }
- break;
- case import_constants.ACTION_WEST:
- if (left + range.x < minLeft) {
- range.x = minLeft - left;
- }
- break;
- case import_constants.ACTION_NORTH:
- if (top + range.y < minTop) {
- range.y = minTop - top;
- }
- break;
- case import_constants.ACTION_SOUTH:
- if (bottom + range.y > maxHeight) {
- range.y = maxHeight - bottom;
- }
- break;
- default:
- }
- };
- switch (action) {
- case import_constants.ACTION_CROP:
- if (!range.x || !range.y) {
- renderable = false;
- break;
- }
- offset = (0, import_utils.getOffset)(this.container);
- left = pointer.startX - offset.left;
- top = pointer.startY - offset.top;
- width = cropBoxData.minWidth;
- height = cropBoxData.minHeight;
- if (!left) {
- debugger;
- }
- if (range.x > 0) {
- action = range.y > 0 ? import_constants.ACTION_SOUTH_EAST : import_constants.ACTION_NORTH_EAST;
- } else if (range.x < 0) {
- left -= width;
- action = range.y > 0 ? import_constants.ACTION_SOUTH_WEST : import_constants.ACTION_NORTH_WEST;
- }
- if (range.y < 0) {
- top -= height;
- }
- if (!this.cropped) {
- (0, import_class.removeClass)(this.cropBox, import_constants.CLASS_HIDDEN);
- this.cropped = true;
- if (this.limited) {
- this.limitCropBox(true, true);
- }
- }
- break;
- case import_constants.ACTION_MOVE:
- left += range.x;
- top += range.y;
- break;
- case import_constants.ACTION_EAST:
- if (range.x >= 0 && right >= maxWidth) {
- renderable = false;
- break;
- }
- check(import_constants.ACTION_EAST);
- width += range.x;
- if (width < 0) {
- action = import_constants.ACTION_WEST;
- width = -width;
- left -= width;
- }
- break;
- case import_constants.ACTION_NORTH:
- if (range.y <= 0 && top <= minTop) {
- renderable = false;
- break;
- }
- check(import_constants.ACTION_NORTH);
- height -= range.y;
- top += range.y;
- if (height < 0) {
- action = import_constants.ACTION_SOUTH;
- height = -height;
- top -= height;
- }
- break;
- case import_constants.ACTION_WEST:
- if (range.x <= 0 && left <= minLeft) {
- renderable = false;
- break;
- }
- check(import_constants.ACTION_WEST);
- width -= range.x;
- left += range.x;
- if (width < 0) {
- action = import_constants.ACTION_EAST;
- width = -width;
- left -= width;
- }
- break;
- case import_constants.ACTION_SOUTH:
- if (range.y >= 0 && bottom >= maxHeight) {
- renderable = false;
- break;
- }
- check(import_constants.ACTION_SOUTH);
- height += range.y;
- if (height < 0) {
- action = import_constants.ACTION_NORTH;
- height = -height;
- top -= height;
- }
- break;
- case import_constants.ACTION_NORTH_EAST:
- check(import_constants.ACTION_NORTH);
- check(import_constants.ACTION_EAST);
- if (range.x >= 0) {
- if (right < maxWidth) {
- width += range.x;
- } else if (range.y <= 0 && top <= minTop) {
- renderable = false;
- }
- } else {
- width += range.x;
- }
- if (range.y <= 0) {
- if (top > minTop) {
- height -= range.y;
- top += range.y;
- }
- } else {
- height -= range.y;
- top += range.y;
- }
- if (width < 0 && height < 0) {
- action = import_constants.ACTION_SOUTH_WEST;
- height = -height;
- width = -width;
- top -= height;
- left -= width;
- } else if (width < 0) {
- action = import_constants.ACTION_NORTH_WEST;
- width = -width;
- left -= width;
- } else if (height < 0) {
- action = import_constants.ACTION_SOUTH_EAST;
- height = -height;
- top -= height;
- }
- break;
- case import_constants.ACTION_NORTH_WEST:
- check(import_constants.ACTION_NORTH);
- check(import_constants.ACTION_WEST);
- if (range.x <= 0) {
- if (left > minLeft) {
- width -= range.x;
- left += range.x;
- } else if (range.y <= 0 && top <= minTop) {
- renderable = false;
- }
- } else {
- width -= range.x;
- left += range.x;
- }
- if (range.y <= 0) {
- if (top > minTop) {
- height -= range.y;
- top += range.y;
- }
- } else {
- height -= range.y;
- top += range.y;
- }
- if (width < 0 && height < 0) {
- action = import_constants.ACTION_SOUTH_EAST;
- height = -height;
- width = -width;
- top -= height;
- left -= width;
- } else if (width < 0) {
- action = import_constants.ACTION_NORTH_EAST;
- width = -width;
- left -= width;
- } else if (height < 0) {
- action = import_constants.ACTION_SOUTH_WEST;
- height = -height;
- top -= height;
- }
- break;
- case import_constants.ACTION_SOUTH_WEST:
- check(import_constants.ACTION_SOUTH);
- check(import_constants.ACTION_WEST);
- if (range.x <= 0) {
- if (left > minLeft) {
- width -= range.x;
- left += range.x;
- } else if (range.y >= 0 && bottom >= maxHeight) {
- renderable = false;
- }
- } else {
- width -= range.x;
- left += range.x;
- }
- if (range.y >= 0) {
- if (bottom < maxHeight) {
- height += range.y;
- }
- } else {
- height += range.y;
- }
- if (width < 0 && height < 0) {
- action = import_constants.ACTION_NORTH_EAST;
- height = -height;
- width = -width;
- top -= height;
- left -= width;
- } else if (width < 0) {
- action = import_constants.ACTION_SOUTH_EAST;
- width = -width;
- left -= width;
- } else if (height < 0) {
- action = import_constants.ACTION_NORTH_WEST;
- height = -height;
- top -= height;
- }
- break;
- case import_constants.ACTION_SOUTH_EAST:
- check(import_constants.ACTION_SOUTH);
- check(import_constants.ACTION_EAST);
- if (range.x >= 0) {
- if (right < maxWidth) {
- width += range.x;
- } else if (range.y >= 0 && bottom >= maxHeight) {
- renderable = false;
- }
- } else {
- width += range.x;
- }
- if (range.y >= 0) {
- if (bottom < maxHeight) {
- height += range.y;
- }
- } else {
- height += range.y;
- }
- if (width < 0 && height < 0) {
- action = import_constants.ACTION_NORTH_WEST;
- height = -height;
- width = -width;
- top -= height;
- left -= width;
- } else if (width < 0) {
- action = import_constants.ACTION_SOUTH_WEST;
- width = -width;
- left -= width;
- } else if (height < 0) {
- action = import_constants.ACTION_NORTH_EAST;
- height = -height;
- top -= height;
- }
- break;
- default:
- break;
- }
- if (renderable) {
- cropBoxData.width = width;
- cropBoxData.height = height;
- cropBoxData.left = left;
- cropBoxData.top = top;
- this.action = action;
- this.cropBoxData = cropBoxData;
- this.renderCropBox();
- }
- this.pointer.startX = this.pointer.endX;
- this.pointer.startY = this.pointer.endY;
- }
-};
diff --git a/packages/meta/lib/ImageEditor/cropper/index.js b/packages/meta/lib/ImageEditor/cropper/index.js
deleted file mode 100644
index 8a89a76..0000000
--- a/packages/meta/lib/ImageEditor/cropper/index.js
+++ /dev/null
@@ -1,136 +0,0 @@
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-var __decorateClass = (decorators, target, key, kind) => {
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
- if (decorator = decorators[i])
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
- if (kind && result)
- __defProp(target, key, result);
- return result;
-};
-
-// src/ImageEditor/cropper/index.ts
-var cropper_exports = {};
-__export(cropper_exports, {
- default: () => cropper_default
-});
-module.exports = __toCommonJS(cropper_exports);
-var import_func = require("@zhst/func");
-var import_class = require("rc-util/lib/Dom/class");
-var import_utils = require("../utils");
-var import_constants = require("./constants");
-var import_template = __toESM(require("./template"));
-var import_render = __toESM(require("./render"));
-var import_event = __toESM(require("./event"));
-var import_viewerBridge = __toESM(require("./viewerBridge"));
-var import_preview = __toESM(require("./preview"));
-var import_index_module = require("./index.module.scss");
-var Cropper = class {
- constructor(element, options) {
- /* 所有事件 */
- // eventHandleList: Array;
- this.eventHandleList = [];
- this.element = element;
- this.options = Object.assign({}, (0, import_func.isPlainObject)(options) && options);
- this.limited = (0, import_func.isNil)(this.options.cropBoxLimited) ? false : true;
- this.cropped = false;
- this.init();
- }
- async init() {
- this.build();
- this.bind();
- this.render();
- this.initPreview();
- if (this.options.viewer) {
- this.initBridge();
- }
- this.initDefaultCropBox();
- }
- initDefaultCropBox() {
- const { initialCropBoxData } = this.options || {};
- if (initialCropBoxData) {
- this.cropped = true;
- const { showMask } = this.options;
- showMask && (0, import_class.addClass)(this.dragBox, import_constants.CLASS_MASK);
- (0, import_class.removeClass)(this.cropBox, import_constants.CLASS_HIDDEN);
- this.cropBoxData = { ...this.cropBoxData, ...initialCropBoxData };
- this.renderCropBox();
- const hasCrop = (0, import_func.get)(this, "cropBoxData.width", 0) !== 0 && (0, import_func.get)(this, "cropBoxData.height", 0) !== 0;
- (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_CROP_CHANGE, hasCrop ? this == null ? void 0 : this.cropBoxData : null);
- hasCrop && (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_CROP_END, hasCrop ? this == null ? void 0 : this.cropBoxData : null);
- }
- }
- load() {
- return new Promise((resolve, reject) => {
- const { image: propImage } = this.options;
- if ((0, import_func.isString)(propImage)) {
- const image = new Image();
- const imgUrl = propImage;
- image.crossOrigin = "anonymous";
- image.src = imgUrl;
- image.onload = () => {
- this.image = image;
- resolve(image);
- };
- image.onerror = (err) => {
- reject(err);
- };
- } else {
- this.image = propImage;
- resolve(propImage);
- }
- });
- }
- build() {
- const template = document.createElement("div");
- template.innerHTML = import_template.default;
- const container = template.querySelector(`.${import_constants.NAMESPACE}-container`);
- const dragBox = container.querySelector(`.${import_constants.NAMESPACE}-drag-box`);
- const cropBox = container.querySelector(`.${import_constants.NAMESPACE}-crop-box`);
- const viewBox = container.querySelector(`.${import_constants.NAMESPACE}-view-box`);
- this.element.appendChild(container);
- this.container = container;
- this.dragBox = dragBox;
- this.cropBox = cropBox;
- this.viewBox = viewBox;
- (0, import_class.addClass)(cropBox, import_constants.CLASS_HIDDEN);
- }
- destroy() {
- var _a, _b;
- if (this.options.viewer) {
- this.clearBridge();
- }
- this.unbind();
- (_b = (_a = this.element) == null ? void 0 : _a.removeChild) == null ? void 0 : _b.call(_a, this.container);
- }
-};
-Cropper = __decorateClass([
- (0, import_utils.Mixin)(import_render.default, import_event.default, import_viewerBridge.default, import_preview.default)
-], Cropper);
-var cropper_default = Cropper;
diff --git a/packages/meta/lib/ImageEditor/cropper/index.module.scss b/packages/meta/lib/ImageEditor/cropper/index.module.scss
deleted file mode 100644
index f341aee..0000000
--- a/packages/meta/lib/ImageEditor/cropper/index.module.scss
+++ /dev/null
@@ -1,194 +0,0 @@
-$prefix: zhst;
-
-:global {
- // .zhst-cropper-container {
- // width: 100px;
- // }
- .zhst-cropper {
- &-container {
- position: relative;
- direction: ltr;
- font-size: 0;
- line-height: 0;
- touch-action: none;
- user-select: none;
- }
-
- &-container,
- &-wrap-box,
- &-canvas,
- &-drag-box,
- &-crop-box,
- &-face,
- &-modal {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- }
-
- &-drag-box {
- cursor: crosshair;
- }
-
- &-view-box {
- display: block;
- overflow: hidden;
- width: 100%;
- height: 100%;
- outline: 1px solid #39f;
- outline-color: rgb(51 153 255 / 75%);
- }
-
- //mask
- &-mask {
- background-color: rgb(0 0 0 / 50%);
- }
-
- //拖拽
- &-face {
- background-color: #fff;
- cursor: move;
- opacity: 0;
- }
-
- //点
- &-point {
- position: absolute;
- width: 6px;
- height: 6px;
-
- // background: #fff;
- background-color: #39f;
- border-radius: 50%;
-
- // border: 0.2px solid #000;
-
- // 北n
- // 东w 西e
- // 南s
-
- &.point-nw {
- top: -3px;
- left: -3px;
- cursor: nwse-resize;
- }
-
- &.point-n {
- top: -3px;
- left: 50%;
- cursor: ns-resize;
- transform: translateX(-50%);
- }
-
- &.point-ne {
- top: -3px;
- right: -3px;
- cursor: nesw-resize;
- }
-
- &.point-w {
- top: 50%;
- left: -3px;
- cursor: ew-resize;
- transform: translateY(-50%);
- }
-
- &.point-e {
- top: 50%;
- right: -3px;
- cursor: ew-resize;
- transform: translateY(-50%);
- }
-
- &.point-sw {
- bottom: -3px;
- left: -3px;
- cursor: nesw-resize;
- }
-
- &.point-s {
- bottom: -3px;
- left: 50%;
- cursor: ns-resize;
- transform: translateX(-50%);
- }
-
- &.point-se {
- right: -3px;
- bottom: -3px;
- cursor: nwse-resize;
- }
- }
-
- //线
- &-line {
- // opacity: 0.1;
- position: absolute;
- display: block;
- width: 100%;
- height: 100%;
- background-color: #39f;
-
- &.line-e {
- top: 0;
- right: -1px;
- width: 2px;
- cursor: ew-resize;
- }
-
- &.line-n {
- top: -1px;
- left: 0;
- height: 2px;
- cursor: ns-resize;
- }
-
- &.line-w {
- top: 0;
- left: -1px;
- width: 2px;
- cursor: ew-resize;
- }
-
- &.line-s {
- bottom: -1px;
- left: 0;
- height: 2px;
- cursor: ns-resize;
- }
- }
-
- //辅助class
- &-invisible {
- opacity: 0;
- }
-
- &-hide {
- position: absolute;
- display: block;
- width: 0;
- height: 0;
- }
-
- &-hidden {
- display: none !important;
- }
-
- &-move {
- cursor: move;
- }
-
- &-crop {
- cursor: crosshair;
- }
-
- &-disabled &-drag-box,
- &-disabled &-face,
- &-disabled &-line,
- &-disabled &-point {
- cursor: not-allowed;
- }
- }
-}
diff --git a/packages/meta/lib/ImageEditor/cropper/preview.js b/packages/meta/lib/ImageEditor/cropper/preview.js
deleted file mode 100644
index 300bf87..0000000
--- a/packages/meta/lib/ImageEditor/cropper/preview.js
+++ /dev/null
@@ -1,75 +0,0 @@
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/ImageEditor/cropper/preview.ts
-var preview_exports = {};
-__export(preview_exports, {
- default: () => preview_default
-});
-module.exports = __toCommonJS(preview_exports);
-var import_css = require("rc-util/lib/Dom/css");
-var import_utils = require("../utils");
-var preview_default = {
- //var
- previewBox: null,
- //method
- initPreview() {
- const { showMask, img, viewer } = this.options;
- if (!showMask)
- return;
- if (viewer) {
- const canvas = document.createElement("canvas");
- canvas.width = this.containerData.width;
- canvas.height = this.containerData.height;
- this.viewBox.appendChild(canvas);
- this.previewBox = canvas;
- } else {
- const image = document.createElement("img");
- image.src = img;
- this.viewBox.appendChild(image);
- this.previewBox = image;
- }
- },
- renderPreview() {
- const { showMask, img, viewer } = this.options;
- if (!showMask)
- return;
- const { containerData, cropBoxData } = this;
- const { width, height } = containerData;
- const left = cropBoxData.left;
- const top = cropBoxData.top;
- if (!this.cropped || this.disabled) {
- return;
- }
- (0, import_css.set)(
- this.previewBox,
- Object.assign(
- {
- width,
- height
- },
- (0, import_utils.getTransforms)(
- Object.assign({
- translateX: -left,
- translateY: -top
- })
- )
- )
- );
- }
-};
diff --git a/packages/meta/lib/ImageEditor/cropper/render.js b/packages/meta/lib/ImageEditor/cropper/render.js
deleted file mode 100644
index 1ea134c..0000000
--- a/packages/meta/lib/ImageEditor/cropper/render.js
+++ /dev/null
@@ -1,164 +0,0 @@
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/ImageEditor/cropper/render.ts
-var render_exports = {};
-__export(render_exports, {
- default: () => render_default
-});
-module.exports = __toCommonJS(render_exports);
-var import_css = require("rc-util/lib/Dom/css");
-var import_class = require("rc-util/lib/Dom/class");
-var import_utils = require("../utils");
-var import_constants = require("./constants");
-var render_default = {
- cropBoxData: null,
- viewBoxImage: null,
- render() {
- this.initContainer();
- this.initCropBox();
- this.limitCropBox(true, true);
- },
- initContainer() {
- const { element, container } = this;
- const containerData = {
- width: (0, import_css.getOuterWidth)(element),
- height: (0, import_css.getOuterHeight)(element)
- };
- this.containerData = containerData;
- (0, import_css.set)(container, containerData);
- },
- initCropBox() {
- const { containerData, options } = this;
- const cropBoxData = {
- // width: containerData.width,
- // height: containerData.height,
- width: 0,
- height: 0,
- left: 0,
- top: 0,
- minWidth: 0,
- minHeight: 0,
- maxWidth: containerData.width,
- maxHeight: containerData.height,
- minLeft: 0,
- maxLeft: containerData.width,
- minTop: 0,
- maxTop: containerData.height,
- oldLeft: 0,
- oldTop: 0
- };
- this.cropBoxData = cropBoxData;
- this.limitCropBox(true, true);
- },
- renderCropBox() {
- const { cropBoxData } = this;
- if (cropBoxData.width > cropBoxData.maxWidth || cropBoxData.width < cropBoxData.minWidth) {
- cropBoxData.left = cropBoxData.oldLeft;
- }
- if (cropBoxData.height > cropBoxData.maxHeight || cropBoxData.height < cropBoxData.minHeight) {
- cropBoxData.top = cropBoxData.oldTop;
- }
- cropBoxData.width = Math.min(
- Math.max(cropBoxData.width, cropBoxData.minWidth),
- cropBoxData.maxWidth
- );
- cropBoxData.height = Math.min(
- Math.max(cropBoxData.height, cropBoxData.minHeight),
- cropBoxData.maxHeight
- );
- this.limitCropBox(false, true);
- cropBoxData.left = Math.min(
- Math.max(cropBoxData.left, cropBoxData.minLeft),
- cropBoxData.maxLeft
- );
- cropBoxData.top = Math.min(Math.max(cropBoxData.top, cropBoxData.minTop), cropBoxData.maxTop);
- cropBoxData.oldLeft = cropBoxData.left;
- cropBoxData.oldTop = cropBoxData.top;
- (0, import_css.set)(
- this.cropBox,
- Object.assign(
- {
- width: cropBoxData.width,
- height: cropBoxData.height
- },
- (0, import_utils.getTransforms)({
- translateX: cropBoxData.left,
- translateY: cropBoxData.top
- })
- )
- );
- if (this.options.showMask) {
- this.renderPreview();
- }
- },
- clearCropBox() {
- if (this.cropped && !this.disabled) {
- Object.assign(this.cropBoxData, {
- left: 0,
- top: 0,
- width: 0,
- height: 0
- });
- this.cropped = false;
- this.renderCropBox();
- (0, import_class.removeClass)(this.dragBox, import_constants.CLASS_MASK);
- (0, import_class.addClass)(this.cropBox, import_constants.CLASS_HIDDEN);
- }
- return this;
- },
- limitCropBox(sizeLimited, positionLimited) {
- const { options, containerData, cropBoxData, limited } = this;
- const { cropBoxLimited = {} } = options;
- if (sizeLimited) {
- let minCropBoxWidth = Number(options.minCropBoxWidth) || 0;
- let minCropBoxHeight = Number(options.minCropBoxHeight) || 0;
- const maxCropBoxWidth = limited ? Math.min(
- containerData.width,
- cropBoxLimited.width,
- cropBoxLimited.width + cropBoxLimited.left,
- containerData.width - cropBoxLimited.left
- ) : containerData.width;
- const maxCropBoxHeight = limited ? Math.min(
- containerData.height,
- cropBoxLimited.height,
- cropBoxLimited.height + cropBoxLimited.top,
- containerData.height - cropBoxLimited.top
- ) : containerData.height;
- minCropBoxWidth = Math.min(minCropBoxWidth, containerData.width);
- minCropBoxHeight = Math.min(minCropBoxHeight, containerData.height);
- cropBoxData.minWidth = Math.min(minCropBoxWidth, maxCropBoxWidth);
- cropBoxData.minHeight = Math.min(minCropBoxHeight, maxCropBoxHeight);
- cropBoxData.maxWidth = maxCropBoxWidth;
- cropBoxData.maxHeight = maxCropBoxHeight;
- }
- if (positionLimited) {
- if (limited) {
- cropBoxData.minLeft = Math.max(0, cropBoxLimited.left);
- cropBoxData.minTop = Math.max(0, cropBoxLimited.top);
- cropBoxData.maxLeft = Math.min(containerData.width, cropBoxLimited.left + cropBoxLimited.width) - cropBoxData.width;
- cropBoxData.maxTop = Math.min(containerData.height, cropBoxLimited.top + cropBoxLimited.height) - cropBoxData.height;
- } else {
- cropBoxData.minLeft = 0;
- cropBoxData.minTop = 0;
- cropBoxData.maxLeft = containerData.width - cropBoxData.width;
- cropBoxData.maxTop = containerData.height - cropBoxData.height;
- }
- }
- }
-};
diff --git a/packages/meta/lib/ImageEditor/cropper/template.js b/packages/meta/lib/ImageEditor/cropper/template.js
deleted file mode 100644
index ed19710..0000000
--- a/packages/meta/lib/ImageEditor/cropper/template.js
+++ /dev/null
@@ -1,46 +0,0 @@
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/ImageEditor/cropper/template.js
-var template_exports = {};
-__export(template_exports, {
- default: () => template_default
-});
-module.exports = __toCommonJS(template_exports);
-var import_constants = require("./constants");
-var template_default = `
-
-
-
-
- >
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-`;
diff --git a/packages/meta/lib/ImageEditor/cropper/viewerBridge.js b/packages/meta/lib/ImageEditor/cropper/viewerBridge.js
deleted file mode 100644
index f0ac94d..0000000
--- a/packages/meta/lib/ImageEditor/cropper/viewerBridge.js
+++ /dev/null
@@ -1,93 +0,0 @@
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/ImageEditor/cropper/viewerBridge.ts
-var viewerBridge_exports = {};
-__export(viewerBridge_exports, {
- default: () => viewerBridge_default
-});
-module.exports = __toCommonJS(viewerBridge_exports);
-var import_func = require("@zhst/func");
-var import_constants = require("./constants");
-var import_constants2 = require("../viewer/constants");
-var viewerBridge_default = {
- initBridge() {
- const { container, element, eventHandleList = [], option } = this;
- if (this.options.viewer) {
- const viewer = this.options.viewer;
- const handleWhele = (0, import_func.addEventListenerWrapper)(container, import_constants.EVENT_WHEEL, this.onWheel.bind(this));
- eventHandleList.push(handleWhele);
- this.onTransformChange(viewer);
- this.limited = true;
- const handleTransformChange = (0, import_func.addEventListenerWrapper)(
- viewer.element,
- import_constants2.EVENT_VIEWER_TRANSFORM_CHANGE,
- (event) => {
- this.onTransformChange(viewer);
- }
- );
- eventHandleList.push(handleTransformChange);
- }
- },
- onTransformChange(viewer) {
- if (!viewer.image)
- return;
- const { width: imgWidth, height: imgHeight } = viewer.image;
- const { rotate = 0 } = viewer.targetTransform || {};
- let imgLeftTop = { x: 0, y: 0 };
- let imgRightBottom = { x: imgWidth, y: imgHeight };
- if (rotate % 180 !== 0) {
- const diffx = (imgWidth - imgHeight) / 2;
- const diffy = (imgHeight - imgWidth) / 2;
- imgLeftTop = {
- x: imgLeftTop.x + diffx,
- y: imgLeftTop.y + diffy
- };
- imgRightBottom = {
- x: imgRightBottom.x - diffx,
- y: imgRightBottom.y - diffy
- };
- }
- const { x: x1, y: y1 } = viewer.originAxisToCanvasAxis({ x: imgLeftTop.x, y: imgLeftTop.y });
- const { x: x2, y: y2 } = viewer.originAxisToCanvasAxis({
- x: imgRightBottom.x,
- y: imgRightBottom.y
- });
- const limitCropBox = {
- left: x1,
- top: y1,
- width: x2 - x1,
- height: y2 - y1
- };
- this.options.cropBoxLimited = limitCropBox;
- this.limitCropBox(true, true);
- if (this.previewBox) {
- const canvas = this.previewBox;
- const ctx = canvas.getContext("2d");
- const viewerRender = viewer.renderCanvas.bind(viewer);
- viewerRender(ctx);
- }
- },
- onWheel(event) {
- const viewer = this.options.viewer;
- const onViewerWheelHandler = viewer.onWheel.bind(viewer);
- onViewerWheelHandler(event, this.cropped ? this.cropBoxData : null);
- },
- clearBridge() {
- }
-};
diff --git a/packages/meta/lib/ImageEditor/index.js b/packages/meta/lib/ImageEditor/index.js
deleted file mode 100644
index 9925e60..0000000
--- a/packages/meta/lib/ImageEditor/index.js
+++ /dev/null
@@ -1,60 +0,0 @@
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/ImageEditor/index.ts
-var ImageEditor_exports = {};
-__export(ImageEditor_exports, {
- Cropper: () => import_cropper.default,
- EVENT_CROP_CHANGE: () => import_constants.EVENT_CROP_CHANGE,
- EVENT_CROP_END: () => import_constants.EVENT_CROP_END,
- EVENT_CROP_START: () => import_constants.EVENT_CROP_START,
- EVENT_EYE_DONE: () => import_constants2.EVENT_EYE_DONE,
- EVENT_SHAPE_SELECT: () => import_constants2.EVENT_SHAPE_SELECT,
- EVENT_VIEWER_ERROR: () => import_constants2.EVENT_VIEWER_ERROR,
- EVENT_VIEWER_READY: () => import_constants2.EVENT_VIEWER_READY,
- EVENT_VIEWER_TRANSFORM_CHANGE: () => import_constants2.EVENT_VIEWER_TRANSFORM_CHANGE,
- Viewer: () => import_viewer.default
-});
-module.exports = __toCommonJS(ImageEditor_exports);
-var import_cropper = __toESM(require("./cropper"));
-var import_viewer = __toESM(require("./viewer"));
-var import_constants = require("./cropper/constants");
-var import_constants2 = require("./viewer/constants");
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
- Cropper,
- EVENT_CROP_CHANGE,
- EVENT_CROP_END,
- EVENT_CROP_START,
- EVENT_EYE_DONE,
- EVENT_SHAPE_SELECT,
- EVENT_VIEWER_ERROR,
- EVENT_VIEWER_READY,
- EVENT_VIEWER_TRANSFORM_CHANGE,
- Viewer
-});
diff --git a/packages/meta/lib/ImageEditor/interface.d.ts b/packages/meta/lib/ImageEditor/interface.d.ts
deleted file mode 100644
index 54ccf05..0000000
--- a/packages/meta/lib/ImageEditor/interface.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-//@ts-nocheck
-export { Option as CropOption } from './cropper';
-export { Option as ViewOption } from './viewer';
diff --git a/packages/meta/lib/ImageEditor/utils.js b/packages/meta/lib/ImageEditor/utils.js
deleted file mode 100644
index d3c9226..0000000
--- a/packages/meta/lib/ImageEditor/utils.js
+++ /dev/null
@@ -1,149 +0,0 @@
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/ImageEditor/utils.ts
-var utils_exports = {};
-__export(utils_exports, {
- HAS_POINTER_EVENT: () => HAS_POINTER_EVENT,
- IS_BROWSER: () => IS_BROWSER,
- IS_TOUCH_DEVICE: () => IS_TOUCH_DEVICE,
- Mixin: () => Mixin,
- WINDOW: () => WINDOW,
- dispatchEvent: () => dispatchEvent,
- getData: () => getData,
- getOffset: () => getOffset,
- getPointer: () => getPointer,
- getTransforms: () => getTransforms,
- toParamCase: () => toParamCase,
- toggleClass: () => toggleClass
-});
-module.exports = __toCommonJS(utils_exports);
-var import_func = require("@zhst/func");
-var import_class = require("rc-util/lib/Dom/class");
-var IS_BROWSER = typeof window !== "undefined" && typeof window.document !== "undefined";
-var WINDOW = IS_BROWSER ? window : {};
-var IS_TOUCH_DEVICE = IS_BROWSER && WINDOW.document.documentElement ? "ontouchstart" in WINDOW.document.documentElement : false;
-var HAS_POINTER_EVENT = IS_BROWSER ? "PointerEvent" in WINDOW : false;
-function toHump(name) {
- return name.replace(/\-(\w)/g, function(all, letter) {
- return letter.toUpperCase();
- });
-}
-var REGEXP_CAMEL_CASE = /([a-z\d])([A-Z])/g;
-function toParamCase(value) {
- return value.replace(REGEXP_CAMEL_CASE, "$1-$2").toLowerCase();
-}
-function getData(element, name) {
- if ((0, import_func.isObject)(element[name])) {
- return element[name];
- }
- if (element.dataset) {
- return element.dataset[toHump(name)];
- }
- return element.getAttribute(`data-${toParamCase(name)}`);
-}
-function toggleClass(node, className) {
- if ((0, import_class.hasClass)(node, className)) {
- (0, import_class.addClass)(node, className);
- } else {
- (0, import_class.removeClass)(node, className);
- }
-}
-function getPointer({ pageX, pageY }, endOnly) {
- const end = {
- endX: pageX,
- endY: pageY
- };
- return endOnly ? end : {
- startX: pageX,
- startY: pageY,
- ...end
- };
-}
-function getOffset(element) {
- const box = element.getBoundingClientRect();
- return {
- left: box.left + (window.pageXOffset - document.documentElement.clientLeft),
- top: box.top + (window.pageYOffset - document.documentElement.clientTop)
- };
-}
-function getTransforms({
- rotate,
- scaleX,
- scaleY,
- translateX,
- translateY
-}) {
- const values = [];
- if ((0, import_func.isNumber)(translateX) && translateX !== 0) {
- values.push(`translateX(${translateX}px)`);
- }
- if ((0, import_func.isNumber)(translateY) && translateY !== 0) {
- values.push(`translateY(${translateY}px)`);
- }
- if ((0, import_func.isNumber)(rotate) && rotate !== 0) {
- values.push(`rotate(${rotate}deg)`);
- }
- if ((0, import_func.isNumber)(scaleX) && scaleX !== 1) {
- values.push(`scaleX(${scaleX})`);
- }
- if ((0, import_func.isNumber)(scaleY) && scaleY !== 1) {
- values.push(`scaleY(${scaleY})`);
- }
- const transform = values.length ? values.join(" ") : "none";
- return {
- WebkitTransform: transform,
- msTransform: transform,
- transform
- };
-}
-function Mixin(...srcs) {
- return (target) => {
- (0, import_func.assign)(target.prototype, ...srcs);
- return target;
- };
-}
-function dispatchEvent(element, type, data) {
- let event;
- if ((0, import_func.isFunction)(Event) && (0, import_func.isFunction)(CustomEvent)) {
- event = new CustomEvent(type, {
- detail: data,
- bubbles: true,
- cancelable: true
- });
- } else {
- event = document.createEvent("CustomEvent");
- event.initCustomEvent(type, true, true, data);
- }
- return element.dispatchEvent(event);
-}
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
- HAS_POINTER_EVENT,
- IS_BROWSER,
- IS_TOUCH_DEVICE,
- Mixin,
- WINDOW,
- dispatchEvent,
- getData,
- getOffset,
- getPointer,
- getTransforms,
- toParamCase,
- toggleClass
-});
diff --git a/packages/meta/lib/ImageEditor/viewer/constants.js b/packages/meta/lib/ImageEditor/viewer/constants.js
deleted file mode 100644
index d36fb1e..0000000
--- a/packages/meta/lib/ImageEditor/viewer/constants.js
+++ /dev/null
@@ -1,105 +0,0 @@
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/ImageEditor/viewer/constants.ts
-var constants_exports = {};
-__export(constants_exports, {
- ACTION_DRAG: () => ACTION_DRAG,
- AXIS_TYPE_CANVAS: () => AXIS_TYPE_CANVAS,
- AXIS_TYPE_IMAGE: () => AXIS_TYPE_IMAGE,
- AXIS_TYPE_ORIGIN: () => AXIS_TYPE_ORIGIN,
- CLASS_CANVAS: () => CLASS_CANVAS,
- CLASS_MOVE: () => CLASS_MOVE,
- EVENT_CLICK: () => EVENT_CLICK,
- EVENT_ENTER: () => EVENT_ENTER,
- EVENT_EYE_DONE: () => EVENT_EYE_DONE,
- EVENT_LEAVEL: () => EVENT_LEAVEL,
- EVENT_POINTER_DOWN: () => EVENT_POINTER_DOWN,
- EVENT_POINTER_MOVE: () => EVENT_POINTER_MOVE,
- EVENT_POINTER_UP: () => EVENT_POINTER_UP,
- EVENT_SHAPE_SELECT: () => EVENT_SHAPE_SELECT,
- EVENT_TOUCH_END: () => EVENT_TOUCH_END,
- EVENT_TOUCH_MOVE: () => EVENT_TOUCH_MOVE,
- EVENT_TOUCH_START: () => EVENT_TOUCH_START,
- EVENT_VIEWER_ERROR: () => EVENT_VIEWER_ERROR,
- EVENT_VIEWER_READY: () => EVENT_VIEWER_READY,
- EVENT_VIEWER_TRANSFORM_CHANGE: () => EVENT_VIEWER_TRANSFORM_CHANGE,
- EVENT_WHEEL: () => EVENT_WHEEL,
- NAMESPACE: () => NAMESPACE,
- REGEXP_SPACES: () => REGEXP_SPACES,
- SHAPE_TYPE_CIRCLE: () => SHAPE_TYPE_CIRCLE,
- SHAPE_TYPE_CUSTOM: () => SHAPE_TYPE_CUSTOM,
- SHAPE_TYPE_RECT: () => SHAPE_TYPE_RECT
-});
-module.exports = __toCommonJS(constants_exports);
-var import_utils = require("../utils");
-var NAMESPACE = "zhst-viewer";
-var ACTION_DRAG = "drag";
-var CLASS_CANVAS = `${NAMESPACE}-canvas`;
-var CLASS_MOVE = `${NAMESPACE}-move`;
-var EVENT_CLICK = "click";
-var EVENT_TOUCH_START = import_utils.IS_TOUCH_DEVICE ? "touchstart" : "mousedown";
-var EVENT_TOUCH_MOVE = import_utils.IS_TOUCH_DEVICE ? "touchmove" : "mousemove";
-var EVENT_TOUCH_END = import_utils.IS_TOUCH_DEVICE ? "touchend touchcancel" : "mouseup";
-var EVENT_POINTER_DOWN = import_utils.HAS_POINTER_EVENT ? "pointerdown" : EVENT_TOUCH_START;
-var EVENT_POINTER_MOVE = import_utils.HAS_POINTER_EVENT ? "pointermove" : EVENT_TOUCH_MOVE;
-var EVENT_POINTER_UP = import_utils.HAS_POINTER_EVENT ? "pointerup pointercancel" : EVENT_TOUCH_END;
-var EVENT_WHEEL = "wheel";
-var EVENT_LEAVEL = "mouseleave";
-var EVENT_ENTER = "mouseenter";
-var EVENT_VIEWER_TRANSFORM_CHANGE = "viewer-transform-change";
-var EVENT_VIEWER_READY = "viewer-ready";
-var EVENT_VIEWER_ERROR = "viewer-error";
-var EVENT_SHAPE_SELECT = "shape-select";
-var EVENT_EYE_DONE = "eye-done";
-var REGEXP_SPACES = /\s\s*/;
-var AXIS_TYPE_ORIGIN = 1;
-var AXIS_TYPE_CANVAS = 2;
-var AXIS_TYPE_IMAGE = 3;
-var SHAPE_TYPE_CUSTOM = 1;
-var SHAPE_TYPE_RECT = 2;
-var SHAPE_TYPE_CIRCLE = 3;
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
- ACTION_DRAG,
- AXIS_TYPE_CANVAS,
- AXIS_TYPE_IMAGE,
- AXIS_TYPE_ORIGIN,
- CLASS_CANVAS,
- CLASS_MOVE,
- EVENT_CLICK,
- EVENT_ENTER,
- EVENT_EYE_DONE,
- EVENT_LEAVEL,
- EVENT_POINTER_DOWN,
- EVENT_POINTER_MOVE,
- EVENT_POINTER_UP,
- EVENT_SHAPE_SELECT,
- EVENT_TOUCH_END,
- EVENT_TOUCH_MOVE,
- EVENT_TOUCH_START,
- EVENT_VIEWER_ERROR,
- EVENT_VIEWER_READY,
- EVENT_VIEWER_TRANSFORM_CHANGE,
- EVENT_WHEEL,
- NAMESPACE,
- REGEXP_SPACES,
- SHAPE_TYPE_CIRCLE,
- SHAPE_TYPE_CUSTOM,
- SHAPE_TYPE_RECT
-});
diff --git a/packages/meta/lib/ImageEditor/viewer/event.js b/packages/meta/lib/ImageEditor/viewer/event.js
deleted file mode 100644
index d830963..0000000
--- a/packages/meta/lib/ImageEditor/viewer/event.js
+++ /dev/null
@@ -1,202 +0,0 @@
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/ImageEditor/viewer/event.ts
-var event_exports = {};
-__export(event_exports, {
- default: () => event_default
-});
-module.exports = __toCommonJS(event_exports);
-var import_func = require("@zhst/func");
-var import_class = require("rc-util/lib/Dom/class.js");
-var import_guid = __toESM(require("rc-util/lib/guid"));
-var import_warn = __toESM(require("rc-util/lib/warn"));
-var import_utils = require("../utils");
-var import_constants = require("./constants");
-var event_default = {
- //store
- disabled: false,
- eventHandleList: [],
- wheeling: false,
- pointer: null,
- action: null,
- //method
- bind() {
- const { canvas, element, eventHandleList = [], options } = this;
- const scaleAble = (0, import_func.get)(options, "scaleAble", true);
- if (scaleAble) {
- const handleWhele = (0, import_func.addEventListenerWrapper)(canvas, import_constants.EVENT_WHEEL, this.onWheel.bind(this));
- eventHandleList.push(handleWhele);
- }
- const dragAble = (0, import_func.get)(options, "dragAble", true);
- if (dragAble) {
- const handleDragStart = (0, import_func.addEventListenerWrapper)(
- canvas,
- import_constants.EVENT_POINTER_DOWN,
- this.onDragStart.bind(this)
- );
- eventHandleList.push(import_func.addEventListenerWrapper);
- const handleDragMove = (0, import_func.addEventListenerWrapper)(
- element.ownerDocument,
- import_constants.EVENT_POINTER_MOVE,
- this.onDragMove.bind(this)
- );
- eventHandleList.push(handleDragMove);
- import_constants.EVENT_POINTER_UP.trim().split(import_constants.REGEXP_SPACES).forEach((eventName) => {
- const handleDragEnd = (0, import_func.addEventListenerWrapper)(
- element.ownerDocument,
- eventName,
- this.onDragEnd.bind(this)
- );
- eventHandleList.push(handleDragEnd);
- });
- }
- const handleClick = (0, import_func.addEventListenerWrapper)(canvas, import_constants.EVENT_CLICK, this.onClick.bind(this));
- eventHandleList.push(handleClick);
- },
- unbind() {
- const { eventHandleList } = this;
- for (let index = eventHandleList.length; index > 0; index--) {
- const handler = eventHandleList.shift();
- try {
- handler.remove();
- } catch (error) {
- (0, import_warn.default)("VIEWER:REMOVE_EVENT_FAIL,", error);
- }
- }
- },
- /* 图片事件 */
- onWheel(event, cropBox) {
- event.stopPropagation();
- event.preventDefault();
- if (this.wheeling || !this.zoomable) {
- return;
- }
- this.wheeling = true;
- setTimeout(() => {
- this.wheeling = false;
- }, 16);
- const ratio = Number(this.options.zoomRatio) || 0.1;
- let delta = 1;
- if (event.deltaY) {
- delta = event.deltaY > 0 ? 1 : -1;
- } else if (event.wheelDelta) {
- delta = -event.wheelDelta / 120;
- } else if (event.detail) {
- delta = event.detail > 0 ? 1 : -1;
- }
- const step = -delta * ratio;
- const pos = this.windowToCanvasAxis(event);
- this.calcTransform(
- {
- scaleCenter: {
- ...pos,
- step
- }
- },
- cropBox
- );
- },
- onDragStart(event) {
- event.stopPropagation();
- event.preventDefault();
- const { buttons, button } = event;
- if (!this.movable) {
- return;
- }
- if (this.disabled || // Handle mouse event and pointer event and ignore touch event
- (event.type === "mousedown" || event.type === "pointerdown" && event.pointerType === "mouse") && // No primary button (Usually the left button)
- ((0, import_func.isNumber)(buttons) && buttons !== 1 || (0, import_func.isNumber)(button) && button !== 0 || // Open context menu
- event.ctrlKey)) {
- return;
- }
- this.pointer = (0, import_utils.getPointer)(event);
- this.action = import_constants.ACTION_DRAG;
- (0, import_class.addClass)(this.canvas, import_constants.CLASS_MOVE);
- },
- onDragMove(event) {
- event.stopPropagation();
- const pointerCenter = this.windowToCanvasAxis(event);
- const id = this.calcSelectShape(pointerCenter);
- this.hoverShapId = id;
- const { action } = this;
- if (!action) {
- return;
- }
- this.pointer = Object.assign({}, this.pointer, (0, import_utils.getPointer)(event, true));
- event.preventDefault();
- const range = {
- x: this.pointer.endX - this.pointer.startX,
- y: this.pointer.endY - this.pointer.startY
- };
- this.calcTransform({ translateX: range.x, translateY: range.y });
- this.pointer.startX = this.pointer.endX;
- this.pointer.startY = this.pointer.endY;
- },
- onDragEnd(event) {
- event.stopPropagation();
- const { action } = this;
- if (!action) {
- return;
- }
- event.preventDefault();
- this.action = null;
- this.point = null;
- (0, import_class.removeClass)(this.canvas, import_constants.CLASS_MOVE);
- },
- /* rect事件 */
- // onLeavel(event) {
- // const pointerCenter = this.windowToCanvasAxis(event);
- // this.highlightShape(pointerCenter);
- // },
- // onEnter(event) {
- // this.highlightShape(null);
- // },
- onClick(event) {
- event.stopPropagation();
- const pointerCenter = this.windowToCanvasAxis(event);
- if (!this.isEyeOpen) {
- const id = this.calcSelectShape(pointerCenter);
- this.setSelectShapId(id);
- } else {
- let pointShapeList = this.shapeList.filter((v) => !v["w"]);
- if (pointShapeList.length === 5)
- return;
- const originAxis = this.canvasAxisToOriginAxis(pointerCenter);
- const imageAxis = this.originAxisToImgAxis(originAxis);
- this.addShape(
- { id: `pointer_${(0, import_guid.default)()}`, selectAble: false, ...imageAxis },
- import_constants.SHAPE_TYPE_CIRCLE
- );
- pointShapeList = this.shapeList.filter((v) => !v["w"]);
- if (pointShapeList.length === 5) {
- (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_EYE_DONE);
- }
- }
- }
-};
diff --git a/packages/meta/lib/ImageEditor/viewer/helper.js b/packages/meta/lib/ImageEditor/viewer/helper.js
deleted file mode 100644
index ac3da56..0000000
--- a/packages/meta/lib/ImageEditor/viewer/helper.js
+++ /dev/null
@@ -1,161 +0,0 @@
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/ImageEditor/viewer/helper.ts
-var helper_exports = {};
-__export(helper_exports, {
- default: () => helper_default,
- setNumberAccuracy: () => setNumberAccuracy
-});
-module.exports = __toCommonJS(helper_exports);
-var import_constants = require("./constants");
-var setNumberAccuracy = (originNumber, accuracy = 0, isCeil = true) => {
- if (originNumber === 0) {
- return 0;
- }
- let returnData = 0;
- if (isCeil) {
- returnData = Math.ceil(originNumber / Math.pow(10, accuracy)) * Math.pow(10, accuracy);
- } else {
- returnData = Math.floor(originNumber / Math.pow(10, accuracy)) * Math.pow(10, accuracy);
- }
- if (accuracy < 0) {
- returnData = Number(returnData.toFixed(-accuracy));
- } else {
- returnData = Number(returnData.toFixed(0));
- }
- return returnData;
-};
-var helper_default = {
- windowToCanvasAxis(event) {
- const { x, y } = this.canvas.getBoundingClientRect();
- return {
- x: event.pageX - x,
- y: event.pageY - y,
- __AXIS_TYPE__: import_constants.AXIS_TYPE_CANVAS
- };
- },
- offsetAxisToCanvasAxis({ x, y }) {
- const { targetTransform } = this;
- const { translateX, translateY, scale } = targetTransform;
- return {
- x: (x + translateX) / scale + translateX / scale,
- y: y / scale + translateY / scale,
- __AXIS_TYPE__: import_constants.AXIS_TYPE_CANVAS
- };
- },
- originAxisToCanvasAxis({ x, y, ...others }) {
- const { targetTransform } = this;
- const { translateX, translateY, scale } = targetTransform;
- const axis = {
- x: translateX + x * scale,
- y: translateY + y * scale,
- ...others,
- __AXIS_TYPE__: import_constants.AXIS_TYPE_CANVAS
- };
- return axis;
- },
- canvasAxisToOriginAxis({ x, y, ...others }) {
- const { targetTransform } = this;
- const { translateX, translateY, scale } = targetTransform;
- const axis = {
- x: (x - translateX) / scale,
- y: (y - translateY) / scale,
- ...others,
- __AXIS_TYPE__: import_constants.AXIS_TYPE_ORIGIN
- };
- return axis;
- },
- imgRectAxisToCanvasAxisRect({ x = 0, y = 0, w = 0, h = 0, ...others }) {
- const { width, height } = this.image;
- const { targetTransform } = this;
- const { rotate } = targetTransform;
- const theta = Math.PI / 180 * rotate;
- const offsetRect = {
- x: width * x,
- y: height * y,
- x2: width * w + width * x,
- y2: height * h + height * y
- };
- const newX = (offsetRect.x - width / 2) * Math.cos(theta) - (offsetRect.y - height / 2) * Math.sin(theta) + width / 2;
- const newY = (offsetRect.x - width / 2) * Math.sin(theta) + (offsetRect.y - height / 2) * Math.cos(theta) + height / 2;
- const newX2 = (offsetRect.x2 - width / 2) * Math.cos(theta) - (offsetRect.y2 - height / 2) * Math.sin(theta) + width / 2;
- const newY2 = (offsetRect.x2 - width / 2) * Math.sin(theta) + (offsetRect.y2 - height / 2) * Math.cos(theta) + height / 2;
- const newAxis1 = this.originAxisToCanvasAxis({ x: newX, y: newY });
- const newAxis2 = this.originAxisToCanvasAxis({
- x: newX2,
- y: newY2
- });
- return {
- x: newAxis1.x,
- y: newAxis1.y,
- x2: newAxis2.x,
- y2: newAxis2.y,
- ...others,
- __AXIS_TYPE__: import_constants.AXIS_TYPE_CANVAS
- };
- },
- originAxisToImgAxis({ x, y, ...others }) {
- const { width, height } = this.image;
- const { targetTransform } = this;
- const { rotate } = targetTransform;
- const theta = Math.PI / 180 * (360 - rotate);
- const newX = (x - width / 2) * Math.cos(theta) - (y - height / 2) * Math.sin(theta) + width / 2;
- const newY = (x - width / 2) * Math.sin(theta) + (y - height / 2) * Math.cos(theta) + height / 2;
- return {
- x: newX / width,
- y: newY / height,
- ...others,
- __AXIS_TYPE__: import_constants.AXIS_TYPE_IMAGE
- };
- },
- imgAxisToOriginAxis({ x: _x, y: _y, ...others }) {
- const { width, height } = this.image;
- const x = width * _x;
- const y = height * _y;
- const { targetTransform } = this;
- const { rotate } = targetTransform;
- const theta = Math.PI / 180 * rotate;
- const newX = (x - width / 2) * Math.cos(theta) - (y - height / 2) * Math.sin(theta) + width / 2;
- const newY = (x - width / 2) * Math.sin(theta) + (y - height / 2) * Math.cos(theta) + height / 2;
- return {
- x: newX,
- y: newY,
- ...others,
- __AXIS_TYPE__: import_constants.AXIS_TYPE_ORIGIN
- };
- },
- getDataUrlbyOriginAxis({ x = 0, y = 0, w = 0, h = 0, ...others }) {
- const ctx = this.canvas.getContext("2d");
- const commonCanvas = document.createElement("canvas");
- commonCanvas.width = w;
- commonCanvas.height = h;
- commonCanvas.style.display = "none";
- document.body.appendChild(commonCanvas);
- const commonCtx = commonCanvas.getContext("2d");
- const imageData = ctx.getImageData(x, y, w, h);
- commonCtx.putImageData(imageData, 0, 0);
- const dataUrl = commonCanvas.toDataURL("image/jpeg");
- commonCanvas.parentNode.removeChild(commonCanvas);
- return dataUrl;
- }
-};
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
- setNumberAccuracy
-});
diff --git a/packages/meta/lib/ImageEditor/viewer/index.js b/packages/meta/lib/ImageEditor/viewer/index.js
deleted file mode 100644
index 741d084..0000000
--- a/packages/meta/lib/ImageEditor/viewer/index.js
+++ /dev/null
@@ -1,93 +0,0 @@
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-var __decorateClass = (decorators, target, key, kind) => {
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
- if (decorator = decorators[i])
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
- if (kind && result)
- __defProp(target, key, result);
- return result;
-};
-
-// src/ImageEditor/viewer/index.ts
-var viewer_exports = {};
-__export(viewer_exports, {
- default: () => viewer_default
-});
-module.exports = __toCommonJS(viewer_exports);
-var import_func = require("@zhst/func");
-var import_class = require("rc-util/lib/Dom/class");
-var import_utils = require("../utils");
-var import_render = __toESM(require("./render"));
-var import_event = __toESM(require("./event"));
-var import_shape = __toESM(require("./shape"));
-var import_helper = __toESM(require("./helper"));
-var import_constants = require("./constants");
-var import_index = require("./index.scss");
-var Viewer = class {
- constructor(element, options) {
- this.element = element;
- this.options = Object.assign({}, (0, import_func.isPlainObject)(options) && options);
- this.ready = false;
- this.init();
- }
- async init() {
- try {
- this.build();
- this.bind();
- await this.render();
- this.ready = true;
- (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_VIEWER_READY);
- } catch (error) {
- (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_VIEWER_ERROR);
- }
- }
- build() {
- const canvas = document.createElement("canvas");
- (0, import_class.addClass)(canvas, import_constants.CLASS_CANVAS);
- this.element.appendChild(canvas);
- this.canvas = canvas;
- }
- refleshImage(options) {
- this.options = Object.assign({}, (0, import_func.isPlainObject)(options) && options);
- this.ready = false;
- this.element.removeChild(this.canvas);
- this.init();
- }
- destroy() {
- var _a, _b;
- window.cancelAnimationFrame(this.animationFrame);
- this.unbind();
- (_b = (_a = this.element) == null ? void 0 : _a.removeChild) == null ? void 0 : _b.call(_a, this.canvas);
- }
-};
-Viewer = __decorateClass([
- (0, import_utils.Mixin)(import_render.default, import_event.default, import_shape.default, import_helper.default)
-], Viewer);
-var viewer_default = Viewer;
diff --git a/packages/meta/lib/ImageEditor/viewer/index.scss b/packages/meta/lib/ImageEditor/viewer/index.scss
deleted file mode 100644
index fcc2881..0000000
--- a/packages/meta/lib/ImageEditor/viewer/index.scss
+++ /dev/null
@@ -1,44 +0,0 @@
-$prefix: zhst;
-
-:global {
- // .zhst-cropper-container {
- // width: 100px;
- // }
- .zhst-viewer {
- &-canvas {
- // cursor: grab;
- cursor: pointer;
- }
-
- //辅助class
- &-invisible {
- opacity: 0;
- }
-
- &-hide {
- position: absolute;
- display: block;
- width: 0;
- height: 0;
- }
-
- &-hidden {
- display: none !important;
- }
-
- &-move {
- cursor: move;
- }
-
- &-crop {
- cursor: crosshair;
- }
-
- &-disabled &-drag-box,
- &-disabled &-face,
- &-disabled &-line,
- &-disabled &-point {
- cursor: not-allowed;
- }
- }
-}
diff --git a/packages/meta/lib/ImageEditor/viewer/render.js b/packages/meta/lib/ImageEditor/viewer/render.js
deleted file mode 100644
index 24b7822..0000000
--- a/packages/meta/lib/ImageEditor/viewer/render.js
+++ /dev/null
@@ -1,284 +0,0 @@
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/ImageEditor/viewer/render.ts
-var render_exports = {};
-__export(render_exports, {
- default: () => render_default
-});
-module.exports = __toCommonJS(render_exports);
-var import_css = require("rc-util/lib/Dom/css");
-var import_func = require("@zhst/func");
-var import_utils = require("../utils");
-var import_constants = require("./constants");
-var render_default = {
- // store
- image: null,
- canvas: null,
- containerData: {
- width: 0,
- height: 0
- },
- animationFrame: null,
- backgroundColor: "#fff",
- targetTransform: {
- translateX: 0,
- translateY: 0,
- scale: 0,
- rotate: 0
- // rotate: 90,
- },
- //method
- async render() {
- await this.initImg();
- this.initCanvas();
- this.startRaf();
- },
- initImg() {
- return new Promise((resolve, reject) => {
- const { image: propImage } = this.options;
- if ((0, import_func.isString)(propImage)) {
- const image = new Image();
- image.crossOrigin = "anonymous";
- image.src = propImage;
- image.onload = () => {
- this.image = image;
- resolve(image);
- };
- image.onerror = (err) => {
- reject(err);
- };
- } else {
- this.image = propImage;
- resolve(propImage);
- }
- });
- },
- initCanvas() {
- if (!this.image)
- return;
- const { element, canvas, limit = {}, options } = this;
- const containerData = {
- width: (0, import_css.getOuterWidth)(element),
- height: (0, import_css.getOuterHeight)(element)
- };
- this.containerData = containerData;
- (0, import_css.set)(canvas, containerData);
- canvas.width = containerData.width;
- canvas.height = containerData.height;
- const fitTransform = this.calcFitScreen();
- this.targetTransform = Object.assign({}, this.targetTransform, fitTransform);
- (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_VIEWER_TRANSFORM_CHANGE, (0, import_func.cloneDeep)(this.targetTransform));
- const { fitScaleAsMinScale = false } = options;
- if (fitScaleAsMinScale) {
- this.limit = Object.assign({ minScale: this.targetTransform.scale }, this.limit);
- }
- },
- startRaf() {
- window.cancelAnimationFrame(this.animationFrame);
- const loop = () => {
- this.renderCanvas();
- window.cancelAnimationFrame(this.animationFrame);
- this.animationFrame = window.requestAnimationFrame(loop);
- };
- loop();
- },
- renderCanvas(_ctx) {
- if (!this.image || !this.canvas)
- return;
- const { containerData, canvas, targetTransform, options } = this;
- const { translateX, translateY, scale, rotate } = targetTransform;
- const ctx = _ctx ? _ctx : canvas.getContext("2d");
- ctx.clearRect(0, 0, containerData.width, containerData.height);
- ctx.fillStyle = options.backgroundColor;
- ctx.fillRect(0, 0, canvas.width, canvas.height);
- ctx.save();
- ctx.setTransform(scale, 0, 0, scale, translateX, translateY);
- const centerX = this.image.width / 2;
- const centerY = this.image.height / 2;
- ctx.translate(centerX, centerY);
- ctx.rotate(rotate / 180 * Math.PI);
- ctx.translate(-centerX, -centerY);
- ctx.drawImage(this.image, 0, 0);
- ctx.restore();
- ctx.save();
- this.renderShape(ctx);
- ctx.restore();
- },
- scaleTo(offsetScale) {
- const { containerData } = this;
- this.calcTransform({
- scaleCenter: {
- x: containerData.width / 2,
- y: containerData.height / 2,
- step: offsetScale
- }
- });
- },
- //暂时只支持90deg旋转 否则limit 不能做
- rotateTo(T) {
- if (!this.image)
- return;
- const { targetTransform } = this;
- const { rotate } = targetTransform;
- const newDeg = (0, import_func.isFunction)(T) ? T(rotate) : T;
- this.calcTransform({
- rotate: newDeg
- });
- },
- reset() {
- this.targetTransform.rotate = 0;
- const fitTransform = this.calcFitScreen();
- this.targetTransform = Object.assign({}, this.targetTransform, fitTransform);
- (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_VIEWER_TRANSFORM_CHANGE, (0, import_func.cloneDeep)(this.targetTransform));
- },
- getImgSize() {
- if (!this.image)
- return;
- return { w: this.image.width, h: this.image.height };
- },
- calcFitScreen() {
- if (!this.image)
- return;
- const w = this.containerData.width;
- const h = this.containerData.height;
- const iw = this.image.width;
- const ih = this.image.height;
- const { rotate = 0 } = this.targetTransform;
- const wToh = w / h;
- let imgwToh = iw / ih;
- if (rotate % 180 !== 0) {
- imgwToh = ih / iw;
- }
- let scale;
- let translateX = 0;
- let translateY = 0;
- if (imgwToh > wToh) {
- scale = w / iw;
- translateX = 0;
- translateY = (h - ih * scale) / 2;
- if (rotate % 180 !== 0) {
- scale = w / ih;
- translateX = (ih - iw) / 2 * scale;
- translateY = (h - iw * scale) / 2 + (iw - ih) / 2 * scale;
- }
- } else {
- scale = h / ih;
- translateX = (w - iw * scale) / 2;
- translateY = 0;
- if (rotate % 180 !== 0) {
- scale = h / iw;
- translateX = (w - ih * scale) / 2 + (ih - iw) / 2 * scale;
- translateY = (iw - ih) / 2 * scale;
- }
- }
- const fitTransform = {
- translateX,
- translateY,
- scale
- };
- return fitTransform;
- },
- calcTransform(newTransform, cropBox) {
- if (!this.image)
- return;
- const { translateX, translateY, scaleCenter, rotate } = newTransform;
- if (!(0, import_func.isNil)(scaleCenter)) {
- const { targetTransform: targetTransform2, limit = {} } = this;
- let { minScale = 0.1, maxScale = Number.MAX_VALUE } = limit;
- if (cropBox) {
- let { width: iw, height: ih } = this.image;
- if (targetTransform2.rotate % 180 !== 0)
- [iw, ih] = [ih, iw];
- const { width: cw, height: ch } = cropBox;
- const corpMinScale = Math.max(cw / iw, ch / ih);
- minScale = Math.max(corpMinScale, minScale);
- }
- const { x, y, step } = scaleCenter;
- const preScale = targetTransform2.scale;
- let newScale = targetTransform2.scale + step;
- newScale = Math.min(maxScale, Math.max(newScale, minScale));
- const newStep = newScale - preScale;
- if (newScale != preScale) {
- const offsetX = (x - targetTransform2.translateX) / targetTransform2.scale * newStep;
- const offsetY = (y - targetTransform2.translateY) / targetTransform2.scale * newStep;
- this.targetTransform.translateX = this.targetTransform.translateX - offsetX;
- this.targetTransform.translateY = this.targetTransform.translateY - offsetY;
- }
- this.targetTransform.scale = newScale;
- }
- if (!(0, import_func.isNil)(translateX)) {
- this.targetTransform.translateX += translateX;
- }
- if (!(0, import_func.isNil)(translateY)) {
- this.targetTransform.translateY += translateY;
- }
- if (!(0, import_func.isNil)(rotate)) {
- this.targetTransform.rotate = rotate;
- }
- const { targetTransform, containerData } = this;
- const minMargin = 50;
- let imgWidth = this.image.width;
- let imgHeight = this.image.height;
- if (this.targetTransform.rotate % 180 !== 0) {
- imgWidth = this.image.height;
- imgHeight = this.image.width;
- }
- const minX = minMargin - imgWidth * targetTransform.scale;
- const maxX = containerData.width - minMargin;
- const minY = minMargin - imgHeight * targetTransform.scale;
- const maxY = containerData.height - minMargin;
- this.targetTransform.translateX = Math.min(
- maxX,
- Math.max(this.targetTransform.translateX, minX)
- );
- this.targetTransform.translateY = Math.min(
- maxY,
- Math.max(this.targetTransform.translateY, minY)
- );
- if (cropBox) {
- const { width: cw, height: ch, top, left } = cropBox;
- const { width: iw, height: ih } = this.image;
- let imgLeftTop = { x: 0, y: 0 };
- let imgRightBottom = { x: iw, y: ih };
- if (this.targetTransform.rotate % 180 !== 0) {
- imgLeftTop = {
- x: (iw - ih) / 2,
- y: (ih - iw) / 2
- };
- imgRightBottom = {
- x: (iw + ih) / 2,
- y: (iw + ih) / 2
- };
- }
- const maxX2 = left - imgLeftTop.x * this.targetTransform.scale;
- const maxY2 = top - imgLeftTop.y * this.targetTransform.scale;
- const minX2 = left + cw - imgRightBottom.x * this.targetTransform.scale;
- const minY2 = top + ch - imgRightBottom.y * this.targetTransform.scale;
- this.targetTransform.translateX = Math.min(
- maxX2,
- Math.max(this.targetTransform.translateX, minX2)
- );
- this.targetTransform.translateY = Math.min(
- maxY2,
- Math.max(this.targetTransform.translateY, minY2)
- );
- }
- (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_VIEWER_TRANSFORM_CHANGE, (0, import_func.cloneDeep)(this.targetTransform));
- }
-};
diff --git a/packages/meta/lib/ImageEditor/viewer/shape.js b/packages/meta/lib/ImageEditor/viewer/shape.js
deleted file mode 100644
index 5c24cdf..0000000
--- a/packages/meta/lib/ImageEditor/viewer/shape.js
+++ /dev/null
@@ -1,262 +0,0 @@
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/ImageEditor/viewer/shape.ts
-var shape_exports = {};
-__export(shape_exports, {
- default: () => shape_default
-});
-module.exports = __toCommonJS(shape_exports);
-var import_func = require("@zhst/func");
-var turf = __toESM(require("@turf/turf"));
-var import_boolean_point_in_polygon = __toESM(require("@turf/boolean-point-in-polygon"));
-var import_helper = require("./helper");
-var import_constants = require("./constants");
-var import_utils = require("../utils");
-function rectToPolygon(axisRect) {
- const polygon2 = turf.polygon([
- [
- [(0, import_helper.setNumberAccuracy)(axisRect.x, -2), (0, import_helper.setNumberAccuracy)(axisRect.y, -2)],
- [(0, import_helper.setNumberAccuracy)(axisRect.x2, -2), (0, import_helper.setNumberAccuracy)(axisRect.y, -2)],
- [(0, import_helper.setNumberAccuracy)(axisRect.x2, -2), (0, import_helper.setNumberAccuracy)(axisRect.y2, -2)],
- [(0, import_helper.setNumberAccuracy)(axisRect.x, -2), (0, import_helper.setNumberAccuracy)(axisRect.y2, -2)],
- [(0, import_helper.setNumberAccuracy)(axisRect.x, -2), (0, import_helper.setNumberAccuracy)(axisRect.y, -2)]
- ]
- ]);
- return polygon2;
-}
-var shape_default = {
- //store
- shapeList: [],
- hoverShapId: null,
- selectShapId: null,
- //是否开启人脸
- isEyeOpen: false,
- //是否移动
- movable: true,
- //是否放大缩小
- zoomable: true,
- //禁止添加shap
- disableAdd: false,
- //自定义画框的颜色
- color: "",
- changeEyeModel(isOpen) {
- if (isOpen) {
- this.isEyeOpen = true;
- this.changeMoveAble(false);
- this.changeZoonAble(false);
- } else {
- this.isEyeOpen = false;
- this.changeMoveAble(true);
- this.changeZoonAble(true);
- }
- },
- //method
- addShape(shap, type = import_constants.SHAPE_TYPE_RECT) {
- this.color = shap.color ? shap.color : "";
- if ((0, import_func.isNil)(shap) || this.disableAdd)
- return;
- const { shapeList: preShapeList = [] } = this;
- let shapList = (0, import_func.isArray)(shap) ? shap : [shap];
- shapList = shapList.map((v) => ({ ...v, __SHAPE_TYPE__: type }));
- this.shapeList = [...preShapeList, ...shapList];
- },
- //
- setSelectShapId(id) {
- this.selectShapId = id;
- (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_SHAPE_SELECT, id);
- },
- getSelectShape(contain = true) {
- const selectShapeList = [];
- const selectShape = this.shapeList.find((v) => v["id"] === this.selectShapId);
- selectShape && selectShapeList.push(selectShape);
- if (contain && selectShape) {
- const originFeature = rectToPolygon(this.imgRectAxisToCanvasAxisRect(selectShape));
- for (let i = 0; i < this.shapeList.length; i++) {
- const shape = this.shapeList[i];
- if (shape["id"] !== this.selectShapId) {
- const feature = rectToPolygon(this.imgRectAxisToCanvasAxisRect(shape));
- const isContain = turf.booleanContains(originFeature, feature);
- isContain && selectShapeList.push(shape);
- }
- }
- }
- return selectShapeList;
- },
- replaceShape(shape, type = import_constants.SHAPE_TYPE_RECT) {
- if ((0, import_func.isNil)(shape))
- return;
- const { shapeList: preShapeList = [] } = this;
- let _shape;
- if ((0, import_func.isFunction)(shape)) {
- _shape = shape(preShapeList);
- } else {
- _shape = shape;
- }
- let shapList = (0, import_func.isArray)(_shape) ? _shape : [_shape];
- shapList = shapList.map((v) => ({ ...v, __SHAPE_TYPE__: type }));
- this.shapeList = [...shapList];
- },
- clearShape() {
- this.shapeList = [];
- },
- calcSelectShape(canvasPoint) {
- const { shapeList, image } = this;
- const selectAbleShape = shapeList.filter(({ selectAble = true }) => !!selectAble);
- let minId = null;
- let minDis = Number.MAX_VALUE;
- const pt = turf.point([canvasPoint.x, canvasPoint.y]);
- for (let i = 0; i < selectAbleShape.length; i++) {
- const shape = selectAbleShape[i];
- const axisRect = this.imgRectAxisToCanvasAxisRect(shape);
- const polygon2 = turf.polygon([
- [
- [axisRect.x, axisRect.y],
- [axisRect.x2, axisRect.y],
- [axisRect.x2, axisRect.y2],
- [axisRect.x, axisRect.y2],
- [axisRect.x, axisRect.y]
- ]
- ]);
- const isPtInPolygon = (0, import_boolean_point_in_polygon.default)(pt, polygon2);
- if (isPtInPolygon) {
- const line = turf.polygonToLine(polygon2);
- const distance = turf.pointToLineDistance(pt, line, { method: "planar" });
- if (distance < minDis) {
- minDis = distance;
- minId = shape["id"];
- }
- }
- }
- return minId;
- },
- clearSelectShape() {
- this.setSelectShapId(null);
- },
- changeMoveAble(movable = true) {
- this.movable = movable;
- },
- changeZoonAble(zoomable = true) {
- this.zoomable = zoomable;
- },
- disabledAddShap(value = false) {
- this.disableAdd = value;
- },
- renderShape(ctx) {
- const { shapeList } = this;
- const selectShapeList = [];
- const hoverShapeList = [];
- const normalShapeList = [];
- for (let i = 0; i < shapeList.length; i++) {
- const shape = shapeList[i];
- const isSelectShape = this.selectShapId === shape["id"];
- const isHoverShape = this.hoverShapId === shape["id"];
- if (isSelectShape) {
- selectShapeList.push(shape);
- } else if (isHoverShape) {
- hoverShapeList.push(shape);
- } else {
- normalShapeList.push(shape);
- }
- }
- for (let i = 0; i < normalShapeList.length; i++) {
- const shape = normalShapeList[i];
- const { __SHAPE_TYPE__ } = shape;
- switch (__SHAPE_TYPE__) {
- case import_constants.SHAPE_TYPE_RECT:
- this.renderRect(ctx, shape, "normal");
- break;
- case import_constants.SHAPE_TYPE_CIRCLE:
- this.renderPoint(ctx, shape, "normal");
- break;
- default:
- break;
- }
- }
- for (let i = 0; i < hoverShapeList.length; i++) {
- const shape = hoverShapeList[i];
- const { __SHAPE_TYPE__ } = shape;
- switch (__SHAPE_TYPE__) {
- case import_constants.SHAPE_TYPE_RECT:
- this.renderRect(ctx, shape, "hover");
- break;
- default:
- break;
- }
- }
- for (let i = 0; i < selectShapeList.length; i++) {
- const shape = selectShapeList[i];
- const { __SHAPE_TYPE__ } = shape;
- switch (__SHAPE_TYPE__) {
- case import_constants.SHAPE_TYPE_RECT:
- this.renderRect(ctx, shape, "select");
- break;
- default:
- break;
- }
- }
- },
- renderRect(ctx, shape, type) {
- const axisRect = this.imgRectAxisToCanvasAxisRect(shape);
- const rect = {
- x: axisRect.x2 > axisRect.x ? axisRect.x : axisRect.x2,
- y: axisRect.y2 > axisRect.y ? axisRect.y : axisRect.y2,
- w: Math.abs(axisRect.x2 - axisRect.x),
- h: Math.abs(axisRect.y2 - axisRect.y)
- };
- ctx.save();
- if (type === "normal") {
- ctx.strokeStyle = this.color ? this.color : "#FFF566";
- ctx.lineWidth = 2;
- ctx.strokeRect(...Object.values(rect));
- }
- if (type === "hover") {
- ctx.fillStyle = "rgba(0, 153, 255, 0.3)";
- ctx.fillRect(...Object.values(rect));
- ctx.strokeStyle = "rgba(92, 219, 211, 1)";
- ctx.lineWidth = 2;
- ctx.strokeRect(...Object.values(rect));
- }
- if (type === "select") {
- ctx.strokeStyle = "rgba(255, 0, 0, 1)";
- ctx.lineWidth = 2;
- ctx.strokeRect(...Object.values(rect));
- }
- ctx.restore();
- },
- renderPoint(ctx, shape) {
- const originAxis = this.imgAxisToOriginAxis(shape);
- const canvasAxis = this.originAxisToCanvasAxis(originAxis);
- ctx.save();
- ctx.beginPath();
- ctx.arc(canvasAxis.x, canvasAxis.y, 2, 0, 2 * Math.PI);
- ctx.fillStyle = "#DF0101";
- ctx.fill();
- ctx.restore();
- }
-};
diff --git a/packages/meta/lib/Temp/index.js b/packages/meta/lib/Temp/index.js
deleted file mode 100644
index cb6c11d..0000000
--- a/packages/meta/lib/Temp/index.js
+++ /dev/null
@@ -1,41 +0,0 @@
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/Temp/index.tsx
-var Temp_exports = {};
-__export(Temp_exports, {
- default: () => Temp_default
-});
-module.exports = __toCommonJS(Temp_exports);
-var import_react = __toESM(require("react"));
-var import_antd = require("antd");
-var ButtonDemo = (props) => {
- const { children } = props;
- return /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { ...props }, children);
-};
-var Temp_default = ButtonDemo;
diff --git a/packages/meta/lib/VideoPlayer/VideoPlayer.js b/packages/meta/lib/VideoPlayer/VideoPlayer.js
deleted file mode 100644
index e1fbe2f..0000000
--- a/packages/meta/lib/VideoPlayer/VideoPlayer.js
+++ /dev/null
@@ -1,611 +0,0 @@
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/VideoPlayer/VideoPlayer.tsx
-var VideoPlayer_exports = {};
-__export(VideoPlayer_exports, {
- default: () => VideoPlayer_default
-});
-module.exports = __toCommonJS(VideoPlayer_exports);
-var import_react = __toESM(require("react"));
-var import_func = require("@zhst/func");
-var import_rc_align = __toESM(require("rc-align"));
-var import_hooks = require("@zhst/hooks");
-var import_classnames = __toESM(require("classnames"));
-var import_downloadjs = __toESM(require("downloadjs"));
-var import_antd = require("antd");
-var import_iconfont = __toESM(require("../iconfont"));
-var import_ImageEditor = require("../ImageEditor");
-var import_FlvPlayer = __toESM(require("./components/FlvPlayer"));
-var import_Progress = __toESM(require("./components/Progress"));
-var import_Loading = __toESM(require("./components/Loading"));
-var import_ScreenhotButtons = __toESM(require("../BigImagePreview/components/ScreenhotButtons"));
-var import_constants = require("../utils/constants");
-var import_videoPlayerHelper = require("./videoPlayerHelper");
-var import_index = require("./index.less");
-var componentName = `zhst-image__video-view`;
-var VideoPlayer = (0, import_react.forwardRef)((props, ref) => {
- const {
- url,
- maxDuration = 20,
- screenshotButtonAlign = {
- points: ["bl", "br"],
- offset: [6, 0],
- overflow: {
- adjustX: true,
- adjustY: true
- }
- },
- screenshotButtonRender = (0, import_ScreenhotButtons.default)({
- onBigImageActionClick: () => {
- },
- disableBtn: []
- }),
- onCropChange,
- defautlNormalizationRect: defaultNormalizationRect
- } = props;
- const videoType = (0, import_react.useMemo)(() => url && url.startsWith("http") ? "mp4" : "flv", [url]);
- const containerRef = (0, import_react.useRef)(null);
- const videoRef = (0, import_react.useRef)(null);
- const videoInsRef = (0, import_react.useRef)(null);
- const [playSeq, setPlaySeq] = (0, import_react.useState)(0);
- const videoRemoveListener = (0, import_react.useRef)(import_func.noop);
- const loadingTimeRef = (0, import_react.useRef)(0);
- const delayLoadingTimer = (0, import_react.useRef)(null);
- const [isReady, setIsReady] = (0, import_react.useState)(false);
- const [isPlay, setIsPlay] = (0, import_react.useState)(false);
- const [isEnd, setIsEnd] = (0, import_react.useState)(false);
- const [isError, setIsError] = (0, import_react.useState)(false);
- const [isVideoLoadFinished, setIsVideoLoadFinish] = (0, import_react.useState)(false);
- const [playTime, setPlayTime] = (0, import_react.useState)(0);
- const [isLoadingVideo, setIsLoadingVideo] = (0, import_react.useState)(true);
- const [isDelayLoading, setIsDelayLoading] = (0, import_react.useState)(false);
- const latestIsLoadingVideo = (0, import_hooks.useLatest)(isLoadingVideo);
- const setIsLoadingVideoWrapper = (isLoading) => {
- setIsLoadingVideo((preLoading) => {
- if (!preLoading && isLoading) {
- loadingTimeRef.current = (/* @__PURE__ */ new Date()).getTime();
- }
- if (!isLoading) {
- loadingTimeRef.current = null;
- }
- if (!isLoading) {
- setIsDelayLoading(false);
- }
- if (!delayLoadingTimer.current && preLoading) {
- delayLoadingTimer.current = setTimeout(() => {
- if (latestIsLoadingVideo.current) {
- setIsDelayLoading(true);
- }
- delayLoadingTimer.current = null;
- }, 200);
- }
- return isLoading;
- });
- };
- (0, import_react.useEffect)(() => {
- let timer = setInterval(() => {
- if (loadingTimeRef.current) {
- if ((/* @__PURE__ */ new Date()).getTime() - loadingTimeRef.current > 1e3 * 30) {
- checkIsErr();
- }
- }
- }, 1e3);
- return () => {
- clearInterval(timer);
- };
- }, []);
- (0, import_hooks.useUpdateEffect)(() => {
- var _a, _b;
- if (isEnd) {
- (_b = (_a = videoInsRef == null ? void 0 : videoInsRef.current) == null ? void 0 : _a.pause) == null ? void 0 : _b.call(_a);
- }
- }, [isEnd]);
- const checkIsErr = () => {
- var _a, _b;
- setIsError(true);
- try {
- (_b = (_a = videoInsRef == null ? void 0 : videoInsRef.current) == null ? void 0 : _a.destroy) == null ? void 0 : _b.call(_a);
- } catch (error) {
- console.error(error);
- }
- };
- const latestMaxDuration = (0, import_hooks.useLatest)(maxDuration);
- const initPlayer = (0, import_react.useCallback)((ins, dom) => {
- videoRef.current = dom;
- videoInsRef.current = ins;
- const maxDuration2 = latestMaxDuration.current || 0;
- let video = dom;
- let errorLister = (e) => {
- checkIsErr();
- console.error("视频出错了", e, video.currentTime);
- };
- let waitingListener = (e) => {
- setIsLoadingVideoWrapper(true);
- console.debug("视频加载等待", e, video.currentTime);
- };
- let playingListener = (e) => {
- setIsLoadingVideoWrapper(false);
- setIsError(false);
- console.debug("视频从等待中播放", e, video.currentTime);
- };
- let playLister = (e) => {
- setIsPlay(true);
- setIsError(false);
- console.debug("提示该视频正在播放中", e, video.currentTime);
- };
- let pauseListener = (e) => {
- setIsPlay(false);
- console.debug("暂停播放", e, video.currentTime);
- };
- let endedListner = (e) => {
- setIsEnd(true);
- setIsVideoLoadFinish(true);
- console.debug("视频播放完了", e, video.currentTime);
- };
- let timeupdateListner = (e) => {
- var _a;
- console.debug(
- "视频播放时间更新",
- e,
- video.currentTime,
- (_a = videoRef.current) == null ? void 0 : _a.duration,
- maxDuration2
- );
- let nowTime = video.currentTime;
- if (nowTime >= maxDuration2) {
- setIsEnd(true);
- setIsVideoLoadFinish(true);
- }
- setPlayTime(nowTime);
- };
- let windowErrorHandle = (errorEvent) => {
- try {
- if (errorEvent["message"] == "Uncaught TypeError: Cannot read property 'flushStashedSamples' of null") {
- checkIsErr();
- console.error("视频出错了 window监听", errorEvent);
- }
- } catch (error) {
- console.error(error);
- }
- };
- video.addEventListener("error", errorLister);
- video.addEventListener("waiting", waitingListener);
- video.addEventListener("playing", playingListener);
- video.addEventListener("play", playLister);
- video.addEventListener("pause", pauseListener);
- video.addEventListener("ended", endedListner);
- video.addEventListener("timeupdate", timeupdateListner);
- window.addEventListener("error", windowErrorHandle);
- videoRemoveListener.current = () => {
- video.removeEventListener("error", errorLister);
- video.removeEventListener("waiting", waitingListener);
- video.removeEventListener("playing", playingListener);
- video.removeEventListener("play", playLister);
- video.removeEventListener("pause", pauseListener);
- video.removeEventListener("ended", endedListner);
- video.removeEventListener("timeupdate", timeupdateListner);
- window.removeEventListener("error", windowErrorHandle);
- };
- videoInsRef == null ? void 0 : videoInsRef.current.on(import_FlvPlayer.FLV_EVENT.ERROR, (type, errDetail, info) => {
- checkIsErr();
- console.error("videoInsRef 错误", type, errDetail, info, video.currentTime);
- });
- let playPromise = videoInsRef == null ? void 0 : videoInsRef.current.play();
- setIsReady(true);
- playPromise.then(() => {
- setIsReady(true);
- }).catch((...arg) => {
- try {
- } catch (error) {
- }
- console.error("playPromise视频出错了", arg);
- });
- }, []);
- (0, import_hooks.useUnmount)(() => {
- try {
- videoRemoveListener.current();
- } catch (e) {
- console.error(e);
- }
- });
- const reload = async () => {
- if (videoInsRef.current) {
- let oldTime = videoInsRef.current.currentTime;
- videoInsRef.current.currentTime = 0;
- if (oldTime === videoInsRef.current.currentTime) {
- setIsReady(false);
- setIsPlay(false);
- setIsLoadingVideoWrapper(false);
- setIsReady(false);
- setIsEnd(false);
- setIsVideoLoadFinish(false);
- setPlayTime(0);
- try {
- videoRemoveListener.current();
- } catch (error) {
- console.error(error);
- }
- setPlaySeq((pre) => pre + 1);
- return;
- }
- videoInsRef.current.play();
- }
- setPlayTime(0);
- setIsEnd(false);
- };
- const seek = (v) => {
- if (videoInsRef.current && isVideoLoadFinished) {
- setPlayTime(parseFloat(v));
- videoInsRef.current.currentTime = parseFloat(v);
- } else {
- import_antd.message.warning("待视频加载完,才可操作进度条");
- }
- };
- const [isFullscreen, { toggleFullscreen }] = (0, import_hooks.useFullscreen)(containerRef, {
- pageFullscreen: true
- });
- const showMaxDuration = !!maxDuration ? maxDuration : (0, import_func.toRealNumber)((0, import_func.get)(videoRef, "current.duration", 0));
- const showSlider = videoInsRef.current && isVideoLoadFinished;
- const showStatus = (0, import_videoPlayerHelper.getShowStatus)(isDelayLoading, isEnd, isError);
- const corpContainerRef = (0, import_react.useRef)();
- const cropInsRef = (0, import_react.useRef)(null);
- const [showCrop, setShowCrop] = (0, import_react.useState)(false);
- const isFirstFlagRef = (0, import_react.useRef)(true);
- (0, import_react.useEffect)(() => {
- const isFirst = isFirstFlagRef.current;
- if (!isLoadingVideo && isReady && isFirst && defaultNormalizationRect && !showStatus) {
- (0, import_func.nextTick)(() => {
- setShowCrop(true);
- });
- }
- }, [isLoadingVideo, showStatus]);
- const alginContainerRef = (0, import_react.useRef)(null);
- const alignRef = (0, import_react.useRef)(null);
- const [cropRect, setCropRect] = (0, import_react.useState)(null);
- (0, import_react.useEffect)(() => {
- var _a, _b;
- showCrop ? (_a = videoInsRef == null ? void 0 : videoInsRef.current) == null ? void 0 : _a.pause() : (_b = videoInsRef == null ? void 0 : videoInsRef.current) == null ? void 0 : _b.play();
- }, [showCrop]);
- (0, import_react.useEffect)(() => {
- var _a;
- let handlerCropStart;
- let handlerCropEnd;
- setCropRect(null);
- if (!isReady)
- return;
- if (showCrop) {
- handlerCropStart = (0, import_func.addEventListenerWrapper)(corpContainerRef.current, import_ImageEditor.EVENT_CROP_START, () => {
- setCropRect(null);
- });
- handlerCropEnd = (0, import_func.addEventListenerWrapper)(corpContainerRef.current, import_ImageEditor.EVENT_CROP_END, (event) => {
- var _a2, _b;
- const data = event.detail;
- setCropRect({
- x: data.left,
- y: data.top,
- w: data.width,
- h: data.height
- });
- (_b = (_a2 = alignRef == null ? void 0 : alignRef.current) == null ? void 0 : _a2.forceAlign) == null ? void 0 : _b.call(_a2);
- });
- let video = videoRef.current;
- let scale = Math.min(
- video.offsetWidth / video.videoWidth,
- video.offsetHeight / video.videoHeight
- );
- let finalVideoWidth = video.videoWidth * scale;
- let finalVideoHeight = video.videoHeight * scale;
- let cropBoxLimited = {
- width: finalVideoWidth,
- height: finalVideoHeight,
- top: (video.offsetHeight - finalVideoHeight) / 2,
- left: (video.offsetWidth - finalVideoWidth) / 2
- };
- let canvas = document.createElement("canvas");
- canvas.width = video.offsetWidth;
- canvas.height = video.offsetHeight;
- canvas.style.display = "none";
- document.body.appendChild(canvas);
- let ctx = canvas.getContext("2d");
- ctx == null ? void 0 : ctx.drawImage(
- video,
- (video.offsetWidth - finalVideoWidth) / 2,
- (video.offsetHeight - finalVideoHeight) / 2,
- finalVideoWidth,
- finalVideoHeight
- );
- let imageData = canvas.toDataURL("image/png");
- (_a = canvas.parentNode) == null ? void 0 : _a.removeChild(canvas);
- const isFirst = isFirstFlagRef.current;
- let initialCropBoxData = null;
- if (isFirst && defaultNormalizationRect) {
- initialCropBoxData = {
- left: defaultNormalizationRect.x * finalVideoWidth + cropBoxLimited.left,
- top: defaultNormalizationRect.y * finalVideoHeight + cropBoxLimited.top,
- width: defaultNormalizationRect.w * finalVideoWidth,
- height: defaultNormalizationRect.h * finalVideoHeight
- };
- }
- isFirstFlagRef.current = false;
- cropInsRef.current = new import_ImageEditor.Cropper(corpContainerRef.current, {
- showMask: true,
- cropBoxLimited,
- img: imageData,
- initialCropBoxData
- });
- }
- return () => {
- var _a2, _b;
- handlerCropStart == null ? void 0 : handlerCropStart.remove();
- handlerCropEnd == null ? void 0 : handlerCropEnd.remove();
- (_b = (_a2 = cropInsRef == null ? void 0 : cropInsRef.current) == null ? void 0 : _a2.destroy) == null ? void 0 : _b.call(_a2);
- cropInsRef.current = null;
- };
- }, [showCrop, isReady]);
- const latestCropRect = (0, import_hooks.useLatest)(cropRect);
- const getCropInfo = async () => {
- var _a;
- const cropRect2 = latestCropRect.current;
- let video = videoRef.current;
- if (!video)
- return;
- let rectList = [];
- let extendRectList = [];
- let selectIndex = 0;
- let scale = Math.min(
- video.offsetWidth / video.videoWidth,
- video.offsetHeight / video.videoHeight
- );
- let finalVideoWidth = video.videoWidth * scale;
- let finalVideoHeight = video.videoHeight * scale;
- let canvas = document.createElement("canvas");
- canvas.width = finalVideoWidth;
- canvas.height = finalVideoHeight;
- canvas.style.display = "none";
- document.body.appendChild(canvas);
- let ctx = canvas.getContext("2d");
- ctx.drawImage(
- video,
- 0,
- 0,
- finalVideoWidth,
- finalVideoHeight
- );
- let base64 = canvas.toDataURL("image/jpeg");
- const blobData = (0, import_func.dataURLToBlob)(base64);
- (_a = canvas.parentNode) == null ? void 0 : _a.removeChild(canvas);
- const file = new window.File([blobData], `${(/* @__PURE__ */ new Date()).getTime()}`);
- let newRect = {
- w: cropRect2.w / finalVideoWidth,
- h: cropRect2.h / finalVideoHeight,
- x: (cropRect2.x - (video.offsetWidth - finalVideoWidth) / 2) / finalVideoWidth,
- y: (cropRect2.y - (video.offsetHeight - finalVideoHeight) / 2) / finalVideoHeight
- };
- rectList.push(newRect);
- extendRectList.push(newRect);
- extendRectList.forEach(async (rect, index) => {
- extendRectList[index] = {
- ...rect
- };
- });
- return {
- rectList,
- extendRectList,
- selectIndex,
- file
- };
- };
- (0, import_react.useEffect)(() => {
- let normalizationRect = null;
- if (showCrop && cropRect) {
- let video = videoRef.current;
- let scale = Math.min(
- video.offsetWidth / video.videoWidth,
- video.offsetHeight / video.videoHeight
- );
- let finalVideoWidth = video.videoWidth * scale;
- let finalVideoHeight = video.videoHeight * scale;
- let cropBoxLimited = {
- width: finalVideoWidth,
- height: finalVideoHeight,
- top: (video.offsetHeight - finalVideoHeight) / 2,
- left: (video.offsetWidth - finalVideoWidth) / 2
- };
- normalizationRect = {
- x: (cropRect.x - cropBoxLimited.left) / cropBoxLimited.width,
- y: (cropRect.y - cropBoxLimited.top) / cropBoxLimited.height,
- w: cropRect.w / cropBoxLimited.width,
- h: cropRect.h / cropBoxLimited.height
- };
- }
- onCropChange == null ? void 0 : onCropChange(showCrop, normalizationRect);
- }, [showCrop, cropRect]);
- const downloadVideoframe = (0, import_react.useCallback)(async () => {
- var _a, _b;
- try {
- (_b = (_a = videoInsRef == null ? void 0 : videoInsRef.current) == null ? void 0 : _a.pause) == null ? void 0 : _b.call(_a);
- let video = videoRef.current;
- var canvas = document.createElement("canvas");
- const ctx = canvas.getContext("2d");
- let base64;
- if (video.readyState === 0) {
- ctx == null ? void 0 : ctx.clearRect(0, 0, canvas.width, canvas.height);
- canvas.width = video.offsetWidth;
- canvas.height = video.offsetHeight;
- ctx.fillStyle = "black";
- ctx == null ? void 0 : ctx.fillRect(0, 0, canvas.width, canvas.height);
- base64 = canvas.toDataURL();
- } else {
- canvas.width = video.videoWidth;
- canvas.height = video.videoHeight;
- ctx == null ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
- base64 = canvas.toDataURL("image/png");
- }
- (0, import_downloadjs.default)(base64);
- } catch (error) {
- console.error(error);
- }
- }, []);
- const latestIsReady = (0, import_hooks.useLatest)(isReady);
- const cropAble = !showStatus && isReady;
- (0, import_react.useImperativeHandle)(ref, () => ({
- cropAble,
- setShowCrop: (dispatch) => {
- const isReady2 = latestIsReady.current;
- if (!isReady2)
- return;
- setShowCrop(dispatch);
- },
- downloadVideoframe
- }));
- return /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}`), ref: containerRef }, url && /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
- import_FlvPlayer.default,
- {
- playId: playSeq,
- autoPlay: true,
- className: (0, import_classnames.default)(`${componentName}-flv`),
- type: videoType,
- url,
- config: {
- enableStashBuffer: true,
- stashInitialSize: 1024 * 700,
- isLive: true,
- hasAudio: false,
- hasVideo: true
- },
- onCreat: initPlayer
- }
- ), /* @__PURE__ */ import_react.default.createElement(
- "div",
- {
- className: (0, import_classnames.default)(`${componentName}-crop-container`),
- ref: corpContainerRef,
- style: {
- display: isFullscreen ? "none" : "block"
- }
- }
- ), showCrop && cropRect && screenshotButtonRender && /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
- "div",
- {
- ref: alginContainerRef,
- className: (0, import_classnames.default)(`${componentName}-align`),
- style: Object.assign(
- {
- width: cropRect.w,
- height: cropRect.h
- },
- (0, import_func.getTransforms)({
- translateX: cropRect.x,
- translateY: cropRect.y
- })
- )
- }
- ), /* @__PURE__ */ import_react.default.createElement(
- import_rc_align.default,
- {
- ref: alignRef,
- monitorWindowResize: true,
- align: screenshotButtonAlign,
- target: function() {
- return alginContainerRef.current;
- }
- },
- screenshotButtonRender({
- model: "IMAGE",
- getCropInfo,
- setShowCrop,
- cropType: import_constants.CROP_TYPE["CUSTOM"]
- })
- )), !showCrop && /* @__PURE__ */ import_react.default.createElement("div", { className: `${componentName}-opt` }, /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement(
- import_antd.Button,
- {
- type: "text",
- onClick: (e) => {
- var _a, _b;
- if (!isPlay) {
- (_a = videoInsRef == null ? void 0 : videoInsRef.current) == null ? void 0 : _a.play();
- setShowCrop(false);
- } else {
- (_b = videoInsRef == null ? void 0 : videoInsRef.current) == null ? void 0 : _b.pause();
- }
- }
- },
- /* @__PURE__ */ import_react.default.createElement(
- import_iconfont.default,
- {
- styles: {
- color: "#fff",
- display: "flex"
- },
- color: "#1890ff",
- icon: !isPlay ? "icon-shipinbofang" : "icon-shipinzanting"
- }
- )
- )), /* @__PURE__ */ import_react.default.createElement(
- "div",
- {
- className: `${componentName}-opt-range`,
- onClick: (e) => {
- e.stopPropagation();
- }
- },
- /* @__PURE__ */ import_react.default.createElement(
- import_Progress.default,
- {
- value: playTime,
- min: 0,
- max: showMaxDuration,
- showSlider,
- onChange: seek
- }
- ),
- /* @__PURE__ */ import_react.default.createElement("div", null, (0, import_func.formatDurationTime)(playTime), "/", (0, import_func.formatDurationTime)(showMaxDuration))
- ), /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement(
- import_antd.Button,
- {
- type: "text",
- onClick: (e) => {
- e.stopPropagation();
- toggleFullscreen();
- }
- },
- /* @__PURE__ */ import_react.default.createElement(
- import_iconfont.default,
- {
- styles: {
- color: "#fff",
- display: "flex"
- },
- size: 18,
- icon: isFullscreen ? "icon-cancle_fullscreen" : "icon-fullscreen"
- }
- )
- ))), !!showStatus && /* @__PURE__ */ import_react.default.createElement(import_Loading.default, { status: showStatus, reload: () => reload() })));
-});
-var VideoPlayer_default = VideoPlayer;
diff --git a/packages/meta/lib/VideoPlayer/components/FlvPlayer/index.js b/packages/meta/lib/VideoPlayer/components/FlvPlayer/index.js
deleted file mode 100644
index 38230d2..0000000
--- a/packages/meta/lib/VideoPlayer/components/FlvPlayer/index.js
+++ /dev/null
@@ -1,144 +0,0 @@
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/VideoPlayer/components/FlvPlayer/index.tsx
-var FlvPlayer_exports = {};
-__export(FlvPlayer_exports, {
- FLV_EVENT: () => FLV_EVENT,
- default: () => VideoPlayer
-});
-module.exports = __toCommonJS(FlvPlayer_exports);
-var import_react = __toESM(require("react"));
-var import_flv = __toESM(require("flv.js"));
-var import_func = require("@zhst/func");
-var FLV_EVENT = import_flv.default.Events;
-var VideoPlayer = class extends import_react.Component {
- constructor() {
- super(...arguments);
- this.state = {
- curPlayUrl: "",
- shouldReinit: false
- };
- this.flvPlayer = null;
- this.videoElement = null;
- this.initFlv = ($video) => {
- this.videoElement = $video;
- const { className, autoPlay = true, config = {}, onCreat, playId, ...others } = this.props;
- if ($video) {
- if (import_flv.default.isSupported() && this.props.url && this.props.url) {
- const reload = () => {
- if (this.flvPlayer && this.flvPlayer.destroy) {
- try {
- this.flvPlayer.destroy();
- } catch (error) {
- console.error(error);
- }
- }
- let flvPlayer = import_flv.default.createPlayer({ ...others }, {
- deferLoadAfterSourceOpen: false,
- ...config
- });
- flvPlayer.attachMediaElement($video);
- flvPlayer.load();
- this.flvPlayer = flvPlayer;
- let controller = this.flvPlayer._transmuxer._controller;
- let wsLoader = controller._ioctl._loader;
- const oldWsOnCompleteFunc = wsLoader._onComplete;
- wsLoader._onComplete = function() {
- if (!controller._remuxer) {
- controller._remuxer = {
- destroy: () => {
- console.log("组件销毁");
- },
- flushStashedSamples: () => {
- console.log("flushStashedSamples");
- }
- };
- }
- oldWsOnCompleteFunc();
- };
- this.flvPlayer.reload = reload;
- onCreat && onCreat(this.flvPlayer, $video);
- };
- reload();
- onCreat && onCreat(this.flvPlayer, $video);
- }
- }
- };
- }
- componentWillUnmount() {
- var _a, _b;
- if (this.flvPlayer) {
- (_a = this.flvPlayer) == null ? void 0 : _a.unload();
- (_b = this.flvPlayer) == null ? void 0 : _b.detachMediaElement();
- }
- }
- componentDidUpdate() {
- if (this.state.shouldReinit) {
- this.setState({ shouldReinit: false });
- this.initFlv(this.videoElement);
- }
- }
- render() {
- const { className, style } = this.props;
- return /* @__PURE__ */ import_react.default.createElement(
- "video",
- {
- muted: true,
- preload: "metadata",
- className,
- style: Object.assign(
- {
- width: "100%",
- height: "100%"
- },
- style ? style : {}
- ),
- ref: this.initFlv
- }
- );
- }
-};
-VideoPlayer.getDerivedStateFromProps = (nextProps, prevState) => {
- const { playId = 0 } = nextProps;
- const { playId: prePlayId = 0 } = prevState;
- if (nextProps.url !== void 0) {
- if (!(0, import_func.isEqual)(nextProps.url, prevState.curPlayUrl) || !(0, import_func.isEqual)(playId, prePlayId)) {
- return {
- playId,
- curPlayUrl: nextProps.url,
- shouldReinit: true
- };
- }
- }
- return null;
-};
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
- FLV_EVENT
-});
diff --git a/packages/meta/lib/VideoPlayer/components/Loading/index.js b/packages/meta/lib/VideoPlayer/components/Loading/index.js
deleted file mode 100644
index 150c54d..0000000
--- a/packages/meta/lib/VideoPlayer/components/Loading/index.js
+++ /dev/null
@@ -1,84 +0,0 @@
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/VideoPlayer/components/Loading/index.tsx
-var Loading_exports = {};
-__export(Loading_exports, {
- default: () => Loading_default
-});
-module.exports = __toCommonJS(Loading_exports);
-var import_react = __toESM(require("react"));
-var import_antd = require("antd");
-var import_classnames = __toESM(require("classnames"));
-var import_iconfont = __toESM(require("../../../iconfont"));
-var import_index = require("./index.less");
-var componentName = `zhst-image__video-view`;
-var Loading = (props) => {
- const { status, reload } = props;
- return /* @__PURE__ */ import_react.default.createElement(
- "div",
- {
- className: (0, import_classnames.default)(`${componentName}__player-mask`),
- onClick: (e) => {
- e.stopPropagation();
- }
- },
- status === "LOADING" && /* @__PURE__ */ import_react.default.createElement(import_antd.Spin, { tip: "加载中...", spinning: status === "LOADING" }),
- status === "END" && /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
- "div",
- {
- onClick: () => {
- reload();
- },
- className: (0, import_classnames.default)(`${componentName}__icon-wraper`)
- },
- /* @__PURE__ */ import_react.default.createElement(
- import_iconfont.default,
- {
- styles: {
- fill: "#ffffff",
- color: "#ffffff"
- },
- size: 54,
- icon: "icon-shuaxin"
- }
- )
- ), /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}__player-mask-title`) }, "点击刷新后,将重新播放")),
- status === "ERROR" && /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}__icon-wraper`) }, /* @__PURE__ */ import_react.default.createElement(
- import_iconfont.default,
- {
- styles: {
- color: "#ffffff"
- },
- size: 54,
- icon: "icon-jiazaishibai"
- }
- )), /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}__player-mask-title`) }, "视频加载失败,", /* @__PURE__ */ import_react.default.createElement("a", { onClick: reload }, " ", "刷新")))
- );
-};
-var Loading_default = Loading;
diff --git a/packages/meta/lib/VideoPlayer/components/Loading/index.less b/packages/meta/lib/VideoPlayer/components/Loading/index.less
deleted file mode 100644
index b6c11a2..0000000
--- a/packages/meta/lib/VideoPlayer/components/Loading/index.less
+++ /dev/null
@@ -1,53 +0,0 @@
-.zhst-image__video-view__player-mask {
- position: absolute;
- width: 100%;
- height: 100%;
- z-index: 99;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- background-color: rgb(4 4 4 / 70%);
-
- &--bg {
- z-index: 999;
- background-color: rgb(4 4 4 / 100%);
- }
-
- i {
- cursor: pointer;
- }
-
- &-title {
- margin-top: 12px;
- color: #fff;
- text-align: center;
-
- & a {
- color: #09f;
- cursor: pointer;
- text-decoration: underline;
- }
- }
-}
-
-.zhst-image__video-view__icon-wraper {
- display: flex;
- width: 80px;
- height: 80px;
- align-items: center;
- justify-content: center;
- background-color: rgb(255 255 255 / 10%);
- border-radius: 50%;
- cursor: pointer;
- line-height: 80px;
- text-align: center;
-
- // &:hover {
- // background: #0099ff;
- // }
-}
diff --git a/packages/meta/lib/VideoPlayer/components/Progress/index.js b/packages/meta/lib/VideoPlayer/components/Progress/index.js
deleted file mode 100644
index 92e0d85..0000000
--- a/packages/meta/lib/VideoPlayer/components/Progress/index.js
+++ /dev/null
@@ -1,60 +0,0 @@
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/VideoPlayer/components/Progress/index.tsx
-var Progress_exports = {};
-__export(Progress_exports, {
- Range: () => Range,
- default: () => Progress_default
-});
-module.exports = __toCommonJS(Progress_exports);
-var import_react = __toESM(require("react"));
-var import_classnames = __toESM(require("classnames"));
-var import_antd = require("antd");
-var import_index = require("./index.less");
-var componentName = `zhst-image__range`;
-var Range = (props) => {
- const { className, style, showSlider = true, ...others } = props;
- return /* @__PURE__ */ import_react.default.createElement(
- "div",
- {
- style,
- className: (0, import_classnames.default)(
- `${componentName}`,
- !showSlider && `${componentName}--no-slider`,
- className
- )
- },
- /* @__PURE__ */ import_react.default.createElement(import_antd.Slider, { ...others })
- );
-};
-var Progress_default = Range;
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
- Range
-});
diff --git a/packages/meta/lib/VideoPlayer/components/Progress/index.less b/packages/meta/lib/VideoPlayer/components/Progress/index.less
deleted file mode 100644
index e922211..0000000
--- a/packages/meta/lib/VideoPlayer/components/Progress/index.less
+++ /dev/null
@@ -1,49 +0,0 @@
-.zhst-image__range {
- position: relative;
-
- &--no-slider {
- .next-range-slider {
- display: none;
- }
- }
-
- & .next-range .next-range-track {
- height: 8px;
- margin-top: -4px;
- border-radius: 8px;
- }
-
- & .next-range .next-range-selected {
- height: 8px;
- margin-top: -4px;
- border-radius: 8px;
- }
-
- & .next-range .next-range-slider-inner {
- width: 14px;
- height: 14px;
- border-color: #fff;
- margin-top: -7px;
- margin-left: -7px;
- background-color: #0098ff;
- }
-
- & .next-range .next-range-slider {
- width: 14px;
- height: 14px;
- margin-top: -7px;
- margin-left: -7px;
- }
-
- & .next-range.simulation-click>.next-range-slider-inner {
- border: 2px solid #fff !important;
- }
-
- & .next-range .next-range-frag.next-range-active .next-range-slider .next-range-slider-inner {
- border: 2px solid #fff !important;
- }
-
- & .next-range .next-range-slider.next-range-slider-moving .next-range-slider-inner {
- border: 2px solid #fff !important;
- }
-}
diff --git a/packages/meta/lib/VideoPlayer/index.js b/packages/meta/lib/VideoPlayer/index.js
deleted file mode 100644
index 7d136ea..0000000
--- a/packages/meta/lib/VideoPlayer/index.js
+++ /dev/null
@@ -1,36 +0,0 @@
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/VideoPlayer/index.tsx
-var VideoPlayer_exports = {};
-__export(VideoPlayer_exports, {
- default: () => VideoPlayer_default
-});
-module.exports = __toCommonJS(VideoPlayer_exports);
-var import_VideoPlayer = __toESM(require("./VideoPlayer"));
-var VideoPlayer_default = import_VideoPlayer.default;
diff --git a/packages/meta/lib/VideoPlayer/index.less b/packages/meta/lib/VideoPlayer/index.less
deleted file mode 100644
index 181e65c..0000000
--- a/packages/meta/lib/VideoPlayer/index.less
+++ /dev/null
@@ -1,75 +0,0 @@
-.zhst-image__video-view {
- position: relative;
- overflow: hidden;
- width: 100%;
- height: 532px;
- background-color: #333;
-
- // &-flv {
- // width: 85%;
- // }
- &-screenshot {
- position: absolute;
- z-index: 10;
- }
-
- &-crop-container {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- }
-
- &-align {
- position: absolute;
- top: 0;
- left: 0;
- pointer-events: none;
- }
-
- &-opt {
- position: absolute;
- z-index: 99;
- bottom: 0;
- display: flex;
- width: 100%;
- height: 32px;
- box-sizing: border-box;
- align-items: center;
- padding: 0 12px;
- background-color: rgb(0 0 0 / 80%);
- line-height: 32px;
-
- &>div:first-child {
- display: flex;
- align-items: center;
- margin-right: 12px;
- }
-
- &>div:last-child {
- display: flex;
- align-items: center;
- margin-left: 12px;
- }
-
- &-range {
- display: flex;
- height: 32px;
- flex: 1;
- align-items: center;
- line-height: 32px;
- text-align: center;
-
- &>div:first-child {
- flex: 1;
- }
-
- &>div:last-child {
- width: 100px;
- margin-left: 8px;
- color: #fff;
- }
- }
- }
-}
diff --git a/packages/meta/lib/VideoPlayer/videoPlayerHelper.js b/packages/meta/lib/VideoPlayer/videoPlayerHelper.js
deleted file mode 100644
index 6ef0b97..0000000
--- a/packages/meta/lib/VideoPlayer/videoPlayerHelper.js
+++ /dev/null
@@ -1,41 +0,0 @@
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/VideoPlayer/videoPlayerHelper.ts
-var videoPlayerHelper_exports = {};
-__export(videoPlayerHelper_exports, {
- getShowStatus: () => getShowStatus
-});
-module.exports = __toCommonJS(videoPlayerHelper_exports);
-function getShowStatus(isLoadingVideo, isEnd, isError) {
- let status = null;
- if (isLoadingVideo) {
- status = "LOADING";
- }
- if (isError) {
- status = "ERROR";
- }
- if (isEnd) {
- status = "END";
- }
- return status;
-}
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
- getShowStatus
-});
diff --git a/packages/meta/lib/doubleClick/index.js b/packages/meta/lib/doubleClick/index.js
deleted file mode 100644
index 91b93b1..0000000
--- a/packages/meta/lib/doubleClick/index.js
+++ /dev/null
@@ -1,70 +0,0 @@
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/doubleClick/index.tsx
-var doubleClick_exports = {};
-__export(doubleClick_exports, {
- default: () => doubleClick_default,
- doubleCheck: () => doubleCheck
-});
-module.exports = __toCommonJS(doubleClick_exports);
-var import_func = require("@zhst/func");
-var import_antd = require("antd");
-var import_hooks = require("@zhst/hooks");
-var { confirm } = import_antd.Modal;
-var doubleCheck = (title = "警告", option) => {
- const {
- okFunc = import_func.noop,
- cancelFunc = import_func.noop,
- doubleCheckKey,
- doubleCheckTitle = "不再询问",
- ...others
- } = option || {};
- return confirm({
- title,
- // type: 'warning',
- onCancel: async (isOk) => {
- if (isOk) {
- await okFunc();
- } else {
- await cancelFunc();
- }
- },
- ...doubleCheckKey ? {
- renderFooterRight: () => {
- const [value, setValue] = (0, import_hooks.useDoubleCheck)(doubleCheckKey);
- return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(
- import_antd.Checkbox,
- {
- checked: value,
- onChange: (v) => {
- setValue(v);
- }
- },
- doubleCheckTitle
- ));
- }
- } : {},
- ...others
- });
-};
-var doubleClick_default = doubleCheck;
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
- doubleCheck
-});
diff --git a/packages/meta/lib/iconfont/iconfont.css b/packages/meta/lib/iconfont/iconfont.css
deleted file mode 100644
index f97863a..0000000
--- a/packages/meta/lib/iconfont/iconfont.css
+++ /dev/null
@@ -1,1679 +0,0 @@
-@font-face {
- font-family: "iconfont"; /* Project id 1739270 */
- src: url('iconfont.woff2?t=1689583241972') format('woff2'),
- url('iconfont.woff?t=1689583241972') format('woff'),
- url('iconfont.ttf?t=1689583241972') format('truetype');
-}
-
-.iconfont {
- font-family: "iconfont" !important;
- font-size: 16px;
- font-style: normal;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-
-.icon-danganxiangqing_hangweifenxi:before {
- content: "\e78d";
-}
-
-.icon-danganxiangqing_shujuganzhi:before {
- content: "\e78e";
-}
-
-.icon-danganxiangqing_huodongguiji:before {
- content: "\e78f";
-}
-
-.icon-danganxiangqing_jibenxinxi:before {
- content: "\e7ea";
-}
-
-.icon-danganxiangqing_fushuwupin:before {
- content: "\e7eb";
-}
-
-.icon-danganxiangqing_jizhanyingyong:before {
- content: "\e7ec";
-}
-
-.icon-jiarudanganku:before {
- content: "\e787";
-}
-
-.icon-dangankunor:before {
- content: "\e793";
-}
-
-.icon-bukongrenwuselect:before {
- content: "\e799";
-}
-
-.icon-bukongrenwunor1:before {
- content: "\e79a";
-}
-
-.icon-dangankuselect:before {
- content: "\e79b";
-}
-
-.icon-jizhanfanor:before {
- content: "\e79c";
-}
-
-.icon-feijidongchechaxunnor:before {
- content: "\e79d";
-}
-
-.icon-jidongchechaxunselect:before {
- content: "\e79e";
-}
-
-.icon-a-lixianfenxiselect2:before {
- content: "\e7a1";
-}
-
-.icon-huisufenxiselect:before {
- content: "\e7a2";
-}
-
-.icon-jizhanfaselect:before {
- content: "\e7a3";
-}
-
-.icon-mubiaojiansuonor:before {
- content: "\e7ae";
-}
-
-.icon-lurenkuselect:before {
- content: "\e7b1";
-}
-
-.icon-shujujiashicangselect:before {
- content: "\e7b2";
-}
-
-.icon-shishijiexiselect:before {
- content: "\e7b4";
-}
-
-.icon-shishijiexinor:before {
- content: "\e7b9";
-}
-
-.icon-jidongchechaxunnor:before {
- content: "\e7c1";
-}
-
-.icon-lurenkunor1:before {
- content: "\e7cf";
-}
-
-.icon-mubiaotezhengchaxunnor:before {
- content: "\e7e1";
-}
-
-.icon-yujingjiluselect:before {
- content: "\e7e2";
-}
-
-.icon-mubiaotezhengchaxunselect:before {
- content: "\e7e3";
-}
-
-.icon-feijidongchechaxunselect:before {
- content: "\e7e4";
-}
-
-.icon-yujingjilunor:before {
- content: "\e7e5";
-}
-
-.icon-lixianfenxiselect:before {
- content: "\e7e6";
-}
-
-.icon-huisufenxinor:before {
- content: "\e7e7";
-}
-
-.icon-shujujiashicangnor:before {
- content: "\e7e8";
-}
-
-.icon-mubiaojiansuoselect:before {
- content: "\e7e9";
-}
-
-.icon-kuangxuangongju:before {
- content: "\e796";
-}
-
-.icon-fengniao:before {
- content: "\e792";
-}
-
-.icon-zhankai:before {
- content: "\e790";
-}
-
-.icon-shouqi:before {
- content: "\e791";
-}
-
-.icon-shijian:before {
- content: "\e786";
-}
-
-.icon-dingwei2:before {
- content: "\e613";
-}
-
-.icon-renyuan:before {
- content: "\e784";
-}
-
-.icon-houtai:before {
- content: "\e785";
-}
-
-.icon-zuo:before {
- content: "\e781";
-}
-
-.icon-you:before {
- content: "\e783";
-}
-
-.icon-kakou:before {
- content: "\e780";
-}
-
-.icon-yujing1:before {
- content: "\e77e";
-}
-
-.icon-yuan2:before {
- content: "\e77d";
-}
-
-.icon-moxingpengzhuang:before {
- content: "\e777";
-}
-
-.icon-moxingpengzhuangnor:before {
- content: "\e778";
-}
-
-.icon-lurenku:before {
- content: "\e77b";
-}
-
-.icon-lurenkunor:before {
- content: "\e77c";
-}
-
-.icon-shiming:before {
- content: "\e776";
-}
-
-.icon-suoxiao2:before {
- content: "\e774";
-}
-
-.icon-fangda1:before {
- content: "\e775";
-}
-
-.icon-guanbi2:before {
- content: "\e772";
-}
-
-.icon-fanhui1:before {
- content: "\e773";
-}
-
-.icon-xiansuomopai:before {
- content: "\e76f";
-}
-
-.icon-xiansuomopainor:before {
- content: "\e76e";
-}
-
-.icon-zhajiyujing:before {
- content: "\e770";
-}
-
-.icon-zhajiyujingnor:before {
- content: "\e771";
-}
-
-.icon-zhuizongpeizhi:before {
- content: "\e76c";
-}
-
-.icon-zhuizongpeizhinor:before {
- content: "\e76d";
-}
-
-.icon-dapingqiehuan:before {
- content: "\e76b";
-}
-
-.icon-xuanze:before {
- content: "\e769";
-}
-
-.icon-shaixuan1:before {
- content: "\e76a";
-}
-
-.icon-chekashebei:before {
- content: "\e764";
-}
-
-.icon-imsishebei:before {
- content: "\e765";
-}
-
-.icon-xingtishebei:before {
- content: "\e766";
-}
-
-.icon-renlianshebei:before {
- content: "\e767";
-}
-
-.icon-wifishebei:before {
- content: "\e768";
-}
-
-.icon-a-miaozhun2:before {
- content: "\e762";
-}
-
-.icon-a-bianzu19:before {
- content: "\e763";
-}
-
-.icon-fanye:before {
- content: "\e75e";
-}
-
-.icon-shenfenzheng:before {
- content: "\e75f";
-}
-
-.icon-dizhi:before {
- content: "\e760";
-}
-
-.icon-guanbi:before {
- content: "\e761";
-}
-
-.icon-dianwei1:before {
- content: "\e75b";
-}
-
-.icon-weikakou:before {
- content: "\e757";
-}
-
-.icon-weikakounor:before {
- content: "\e758";
-}
-
-.icon-changsuoma:before {
- content: "\e759";
-}
-
-.icon-changsuomanor:before {
- content: "\e75a";
-}
-
-.icon-yujing:before {
- content: "\e756";
-}
-
-.icon-jiansuonor:before {
- content: "\e747";
-}
-
-.icon-tonghangrenfenxinor1:before {
- content: "\e748";
-}
-
-.icon-zhinengyanpannor:before {
- content: "\e749";
-}
-
-.icon-bukongyujingnor:before {
- content: "\e74a";
-}
-
-.icon-bukongrenwunor:before {
- content: "\e74b";
-}
-
-.icon-dianziditunor:before {
- content: "\e754";
-}
-
-.icon-zhuizongnor1:before {
- content: "\e755";
-}
-
-.icon-zhuizong1:before {
- content: "\e746";
-}
-
-.icon-bukongrenwu3:before {
- content: "\e74c";
-}
-
-.icon-dianziditu:before {
- content: "\e74d";
-}
-
-.icon-bukongyujing:before {
- content: "\e750";
-}
-
-.icon-tonghangrenfenxi1:before {
- content: "\e751";
-}
-
-.icon-zhinengyanpan:before {
- content: "\e752";
-}
-
-.icon-jiansuo1:before {
- content: "\e753";
-}
-
-.icon-kaiqijulei:before {
- content: "\e745";
-}
-
-.icon-tongbu:before {
- content: "\e744";
-}
-
-.icon-tonghangrenfenxi:before {
- content: "\e743";
-}
-
-.icon-tonghangrenfenxinor:before {
- content: "\e742";
-}
-
-.icon-jizhanyingyong:before {
- content: "\e741";
-}
-
-.icon-haikangrenlianbukongnor:before {
- content: "\e740";
-}
-
-.icon-haikangrenlianbukong:before {
- content: "\e73f";
-}
-
-.icon-tuozhanshouduantishi:before {
- content: "\e73e";
-}
-
-.icon-fanhuimopailiebiao:before {
- content: "\e73d";
-}
-
-.icon-toukuijiancenor:before {
- content: "\e73c";
-}
-
-.icon-toukuijiance:before {
- content: "\e718";
-}
-
-.icon-zhuixing:before {
- content: "\e717";
-}
-
-.icon-tishi4:before {
- content: "\e73b";
-}
-
-.icon-a-shaixuanfeiji:before {
- content: "\e733";
-}
-
-.icon-a-zidongtiaozhengfanweifeiji:before {
- content: "\e73a";
-}
-
-.icon-heziyunwei:before {
- content: "\e739";
-}
-
-.icon-qiehuan:before {
- content: "\e738";
-}
-
-.icon-disanfangxiaoxinor:before {
- content: "\e737";
-}
-
-.icon-disanfangxiaoxi:before {
- content: "\e736";
-}
-
-.icon-daohang:before {
- content: "\e735";
-}
-
-.icon-yonghu:before {
- content: "\e734";
-}
-
-.icon-feiji:before {
- content: "\e732";
-}
-
-.icon-jieshuzhuizong:before {
- content: "\e730";
-}
-
-.icon-huisuzhoubian:before {
- content: "\e731";
-}
-
-.icon-jixuzhuizong:before {
- content: "\e72d";
-}
-
-.icon-tiaozhengfanwei:before {
- content: "\e72e";
-}
-
-.icon-jiansuo:before {
- content: "\e72f";
-}
-
-.icon-guiji:before {
- content: "\e72c";
-}
-
-.icon-jichuxinxi:before {
- content: "\e72b";
-}
-
-.icon-danganzhaiyao:before {
- content: "\e72a";
-}
-
-.icon-jingzhunbukongicon_on:before {
- content: "\e728";
-}
-
-.icon-jingzhunbukongicon_off:before {
- content: "\e729";
-}
-
-.icon-tiaozhuan:before {
- content: "\e727";
-}
-
-.icon-shezhi:before {
- content: "\e726";
-}
-
-.icon-bangzhu1:before {
- content: "\e725";
-}
-
-.icon-shuaxin1:before {
- content: "\e724";
-}
-
-.icon-duosucaibeifen:before {
- content: "\e722";
-}
-
-.icon-duosucai:before {
- content: "\e723";
-}
-
-.icon-shujutongji:before {
- content: "\e721";
-}
-
-.icon-renlian:before {
- content: "\e71c";
-}
-
-.icon-xingti:before {
- content: "\e71d";
-}
-
-.icon-jidongche:before {
- content: "\e71e";
-}
-
-.icon-huisufenxi4:before {
- content: "\e71f";
-}
-
-.icon-lixianfenxi4:before {
- content: "\e720";
-}
-
-.icon-feijidongche:before {
- content: "\e71b";
-}
-
-.icon-shujudaping:before {
- content: "\e71a";
-}
-
-.icon-peizhisuanfa:before {
- content: "\e719";
-}
-
-.icon-zhuizong:before {
- content: "\e715";
-}
-
-.icon-zhuizongnor:before {
- content: "\e716";
-}
-
-.icon-dianwei:before {
- content: "\e714";
-}
-
-.icon-Container:before {
- content: "\e713";
-}
-
-.icon-Attachment:before {
- content: "\e712";
-}
-
-.icon-cha:before {
- content: "\e711";
-}
-
-.icon-gou:before {
- content: "\e710";
-}
-
-.icon-daoru:before {
- content: "\e70f";
-}
-
-.icon-quanxijiansuo:before {
- content: "\e70e";
-}
-
-.icon-chakanjiankong:before {
- content: "\e70c";
-}
-
-.icon-tishi3:before {
- content: "\e70d";
-}
-
-.icon-heiyemoshi:before {
- content: "\e70b";
-}
-
-.icon-zhengchangmoshi:before {
- content: "\e70a";
-}
-
-.icon-dingwei1:before {
- content: "\e709";
-}
-
-.icon-paixu:before {
- content: "\e708";
-}
-
-.icon-tianjiayuan:before {
- content: "\e707";
-}
-
-.icon-juleidangankunor:before {
- content: "\e705";
-}
-
-.icon-juleidanganku:before {
- content: "\e706";
-}
-
-.icon-guanlian:before {
- content: "\e704";
-}
-
-.icon-renlianbiaozhu:before {
- content: "\e703";
-}
-
-.icon-juleijieguo:before {
- content: "\e6ec";
-}
-
-.icon-juleirenwunor:before {
- content: "\e6fb";
-}
-
-.icon-juleijieguonor:before {
- content: "\e701";
-}
-
-.icon-juleirenwu:before {
- content: "\e702";
-}
-
-.icon-zhongzhi3:before {
- content: "\e8ff";
-}
-
-.icon-xuanzhuan1:before {
- content: "\e6fd";
-}
-
-.icon-shuangmubiaozhu1:before {
- content: "\e700";
-}
-
-.icon-shoudongkuangxuan:before {
- content: "\e6f9";
-}
-
-.icon-zanting1:before {
- content: "\e6fe";
-}
-
-.icon-zhongzhi1:before {
- content: "\e6ff";
-}
-
-.icon-shoudong:before {
- content: "\e6fa";
-}
-
-.icon-zidong:before {
- content: "\e6fc";
-}
-
-.icon-zhenduan:before {
- content: "\e6f8";
-}
-
-.icon-Check-Circle-Fill1:before {
- content: "\e6f3";
-}
-
-.icon-Info--Circle-Fill:before {
- content: "\e6f4";
-}
-
-.icon-Close-Circle-Fill:before {
- content: "\e6f5";
-}
-
-.icon-Warning-Circle-Fill:before {
- content: "\e6f6";
-}
-
-.icon-Question-Circle-Fill:before {
- content: "\e6f7";
-}
-
-.icon-zancunjia:before {
- content: "\e6f2";
-}
-
-.icon-Check-Circle-Fill:before {
- content: "\e6f1";
-}
-
-.icon-tupianji:before {
- content: "\e6f0";
-}
-
-.icon-quanping1:before {
- content: "\e6ed";
-}
-
-.icon-yinliang:before {
- content: "\e6ee";
-}
-
-.icon-suoxiao1:before {
- content: "\e6ef";
-}
-
-.icon-home:before {
- content: "\e6eb";
-}
-
-.icon-zuixiaohua:before {
- content: "\e6e9";
-}
-
-.icon-zuidahua:before {
- content: "\e6ea";
-}
-
-.icon-biaozhunhua:before {
- content: "\e6e6";
-}
-
-.icon-julei:before {
- content: "\e6e5";
-}
-
-.icon-bianzu:before {
- content: "\e6e7";
-}
-
-.icon-bianzu3:before {
- content: "\e6e8";
-}
-
-.icon-bianzu7:before {
- content: "\e6e3";
-}
-
-.icon-bianzu2:before {
- content: "\e6e4";
-}
-
-.icon-kapianqiehuan:before {
- content: "\e6e2";
-}
-
-.icon-duobianxing1:before {
- content: "\e6e0";
-}
-
-.icon-fang1:before {
- content: "\e6e1";
-}
-
-.icon-yuan1:before {
- content: "\e6df";
-}
-
-.icon-cejuli:before {
- content: "\e6de";
-}
-
-.icon-wanggekuangxuannor:before {
- content: "\e6dc";
-}
-
-.icon-lujingkuangxuannor:before {
- content: "\e6dd";
-}
-
-.icon-chuansuo:before {
- content: "\e6db";
-}
-
-.icon-bianyuanhezinor:before {
- content: "\e6d8";
-}
-
-.icon-wujiankuhov:before {
- content: "\e6d9";
-}
-
-.icon-caozuorizhinor:before {
- content: "\e6da";
-}
-
-.icon-collect_dot:before {
- content: "\e619";
-}
-
-.icon-chuxiandingweibg:before {
- content: "\e6d4";
-}
-
-.icon-chuxiandingweiicon:before {
- content: "\e6d5";
-}
-
-.icon-shexiangtoudingweibg:before {
- content: "\e6d6";
-}
-
-.icon-shexiangtoudingweiicon:before {
- content: "\e6d7";
-}
-
-.icon-xiafajieguo:before {
- content: "\e6d2";
-}
-
-.icon-daochu1:before {
- content: "\e6d3";
-}
-
-.icon-zuijinchuxian:before {
- content: "\e6cc";
-}
-
-.icon-leijizhuapai:before {
- content: "\e6d0";
-}
-
-.icon-yichangshijian:before {
- content: "\e6d1";
-}
-
-.icon-dingwei:before {
- content: "\e6cb";
-}
-
-.icon-tupian:before {
- content: "\e6ad";
-}
-
-.icon-wenti:before {
- content: "\e6ac";
-}
-
-.icon-lixian1:before {
- content: "\e6ab";
-}
-
-.icon-yichang:before {
- content: "\e6a8";
-}
-
-.icon-zhuixing-xiugaidianwei:before {
- content: "\e6a7";
-}
-
-.icon-wenhao1:before {
- content: "\e69e";
-}
-
-.icon-ditu_dingwei:before {
- content: "\e69d";
-}
-
-.icon-ditu_fangda:before {
- content: "\e689";
-}
-
-.icon-ditu_suoxiao:before {
- content: "\e69a";
-}
-
-.icon-chakanbukongrenwu:before {
- content: "\e688";
-}
-
-.icon-lietu:before {
- content: "\e687";
-}
-
-.icon-zhongzhi:before {
- content: "\e67e";
-}
-
-.icon-xialada:before {
- content: "\e67f";
-}
-
-.icon-zhinengguanlian_xingti:before {
- content: "\e67b";
-}
-
-.icon-zhinengguanlian_renlian:before {
- content: "\e67c";
-}
-
-.icon-xiajiantou:before {
- content: "\e75c";
-}
-
-.icon-zhinengguanlian_xiaojiantou:before {
- content: "\e67d";
-}
-
-.icon-zhinengguanlian_jiantou:before {
- content: "\e67a";
-}
-
-.icon-shangjiantou:before {
- content: "\e75d";
-}
-
-.icon-banbenxinxi:before {
- content: "\e679";
-}
-
-.icon-wenhao:before {
- content: "\e61f";
-}
-
-.icon-bianjirenyuan:before {
- content: "\e7e0";
-}
-
-.icon-tishi2:before {
- content: "\e7df";
-}
-
-.icon-shexiangji2:before {
- content: "\e7de";
-}
-
-.icon-guijizhuizong:before {
- content: "\e7dd";
-}
-
-.icon-jiezhen1:before {
- content: "\e7dc";
-}
-
-.icon-tianjiaguijihuisu:before {
- content: "\e7db";
-}
-
-.icon-tingzhi:before {
- content: "\e7cd";
-}
-
-.icon-baoweiquan:before {
- content: "\e7ce";
-}
-
-.icon-shangchuanshipin:before {
- content: "\e7d0";
-}
-
-.icon-yidong:before {
- content: "\e7d1";
-}
-
-.icon-chuangjianxinbukong1:before {
- content: "\e7d2";
-}
-
-.icon-yichu1:before {
- content: "\e7d3";
-}
-
-.icon-tishi1:before {
- content: "\e7d4";
-}
-
-.icon-VS:before {
- content: "\e7d5";
-}
-
-.icon-quanjuzonglan:before {
- content: "\e7d6";
-}
-
-.icon-chakanfenxirenwu1:before {
- content: "\e7d7";
-}
-
-.icon-xiaoxi:before {
- content: "\e7d8";
-}
-
-.icon-yonghuming:before {
- content: "\e7d9";
-}
-
-.icon-tuichu:before {
- content: "\e7da";
-}
-
-.icon-guijizhuizongnor:before {
- content: "\e7cb";
-}
-
-.icon-guijizhuizong2:before {
- content: "\e7cc";
-}
-
-.icon-bukongrenwu1:before {
- content: "\e7b7";
-}
-
-.icon-shexiangji:before {
- content: "\e7b8";
-}
-
-.icon-yujingditu:before {
- content: "\e7ba";
-}
-
-.icon-lixianfenxi2:before {
- content: "\e7bb";
-}
-
-.icon-yuanguanli1:before {
- content: "\e7bc";
-}
-
-.icon-danganku:before {
- content: "\e7bd";
-}
-
-.icon-huisufenxi2:before {
- content: "\e7be";
-}
-
-.icon-kuneijiansuo:before {
- content: "\e7bf";
-}
-
-.icon-jiegouhuachaxun:before {
- content: "\e7c0";
-}
-
-.icon-bukongrenwu2:before {
- content: "\e7c2";
-}
-
-.icon-yuanguanli2:before {
- content: "\e7c3";
-}
-
-.icon-shexiangji1:before {
- content: "\e7c4";
-}
-
-.icon-kuneijiansuo1:before {
- content: "\e7c5";
-}
-
-.icon-lixianfenxi3:before {
- content: "\e7c6";
-}
-
-.icon-danganku1:before {
- content: "\e7c7";
-}
-
-.icon-yujingditu1:before {
- content: "\e7c8";
-}
-
-.icon-huisufenxi3:before {
- content: "\e7c9";
-}
-
-.icon-jiegouhuachaxunnor:before {
- content: "\e7ca";
-}
-
-.icon-chuangjianxinbukong:before {
- content: "\e7b6";
-}
-
-.icon-kuangxuan:before {
- content: "\e77f";
-}
-
-.icon-gaojishaixuan:before {
- content: "\e779";
-}
-
-.icon-gaojishaixuanshouqi:before {
- content: "\e77a";
-}
-
-.icon-bukongrenwu:before {
- content: "\e7b5";
-}
-
-.icon-riqi:before {
- content: "\e74f";
-}
-
-.icon-shijianqiehuan:before {
- content: "\e797";
-}
-
-.icon-shouquan1:before {
- content: "\e7b3";
-}
-
-.icon-video-play:before {
- content: "\e653";
-}
-
-.icon-shishifenxi:before {
- content: "\e7af";
-}
-
-.icon-chakanfenxirenwu:before {
- content: "\e7b0";
-}
-
-.icon-jiegouhuafenxi:before {
- content: "\e7ad";
-}
-
-.icon-tianjiaguiji2:before {
- content: "\e6aa";
-}
-
-.icon-tianjiajiansuomubiao:before {
- content: "\e6b0";
-}
-
-.icon-add:before {
- content: "\e661";
-}
-
-.icon-didian:before {
- content: "\e798";
-}
-
-.icon-bofanghov:before {
- content: "\e79f";
-}
-
-.icon-bofang3:before {
- content: "\e7a0";
-}
-
-.icon-jinggao:before {
- content: "\e788";
-}
-
-.icon-tishi:before {
- content: "\e789";
-}
-
-.icon-bangzhu:before {
- content: "\e78a";
-}
-
-.icon-guanbi1:before {
- content: "\e78b";
-}
-
-.icon-chenggong:before {
- content: "\e78c";
-}
-
-.icon-qianwang:before {
- content: "\e7ac";
-}
-
-.icon-shouquan:before {
- content: "\e7ab";
-}
-
-.icon-jingweidu:before {
- content: "\e7aa";
-}
-
-.icon-shanchu1:before {
- content: "\e74e";
-}
-
-.icon-daochu:before {
- content: "\e782";
-}
-
-.icon-ziyuanguanli:before {
- content: "\e7a4";
-}
-
-.icon-fuwuqishouquan:before {
- content: "\e7a5";
-}
-
-.icon-xiugaimima:before {
- content: "\e7a6";
-}
-
-.icon-zhanghaoguanli:before {
- content: "\e7a7";
-}
-
-.icon-suanlipeie:before {
- content: "\e7a8";
-}
-
-.icon-VMSpeizhi:before {
- content: "\e7a9";
-}
-
-.icon-tianjia1:before {
- content: "\e794";
-}
-
-.icon-yichu:before {
- content: "\e795";
-}
-
-.icon-lujing:before {
- content: "\e6cf";
-}
-
-.icon-jiankongxinxi:before {
- content: "\e6c8";
-}
-
-.icon-fanwei:before {
- content: "\e6c9";
-}
-
-.icon-anfadidian:before {
- content: "\e6ca";
-}
-
-.icon-gongjuxiang:before {
- content: "\e6cd";
-}
-
-.icon-gongjuxiangguanbi1:before {
- content: "\e6ce";
-}
-
-.icon-jiezhen:before {
- content: "\e6c2";
-}
-
-.icon-huisufenxi1:before {
- content: "\e6c6";
-}
-
-.icon-huisufenxi:before {
- content: "\e6c7";
-}
-
-.icon-tianjiashipinwenjian1:before {
- content: "\e6c5";
-}
-
-.icon-jiazaishibai:before {
- content: "\e6c3";
-}
-
-.icon-shuaxin:before {
- content: "\e6c4";
-}
-
-.icon-quanping:before {
- content: "\e6c0";
-}
-
-.icon-quxiaoquanping:before {
- content: "\e6c1";
-}
-
-.icon-shipinbofang:before {
- content: "\e6be";
-}
-
-.icon-shipinzanting:before {
- content: "\e6bf";
-}
-
-.icon-lixianguiji:before {
- content: "\e6bd";
-}
-
-.icon-lixian:before {
- content: "\e6bc";
-}
-
-.icon-xiaojiaobiao:before {
- content: "\e6bb";
-}
-
-.icon-shangchuan1:before {
- content: "\e6ba";
-}
-
-.icon-tianjiaweijiansuoduixiang:before {
- content: "\e6b8";
-}
-
-.icon-tianjiaweijiansuojilu:before {
- content: "\e6b9";
-}
-
-.icon-lixianfenxi1:before {
- content: "\e6b7";
-}
-
-.icon-kuaisujiansuohov:before {
- content: "\e6b5";
-}
-
-.icon-kuaisujiansuo1:before {
- content: "\e6b6";
-}
-
-.icon-kuaisujiansuo:before {
- content: "\e6b4";
-}
-
-.icon-yuanguanli:before {
- content: "\e6b1";
-}
-
-.icon-shexiangtou:before {
- content: "\e6b2";
-}
-
-.icon-lixianfenxi:before {
- content: "\e6b3";
-}
-
-.icon-filter:before {
- content: "\e61a";
-}
-
-.icon-tianjiaweizhuizongduixiang2:before {
- content: "\e6af";
-}
-
-.icon-tianjiaweizhuizongduixiang1:before {
- content: "\e6ae";
-}
-
-.icon-baocun1:before {
- content: "\e6a9";
-}
-
-.icon-tianjiashipinwenjianjia:before {
- content: "\e6a5";
-}
-
-.icon-tianjiashipinwenjian:before {
- content: "\e6a6";
-}
-
-.icon-ditu:before {
- content: "\e6a4";
-}
-
-.icon-xinjianshexiangtou:before {
- content: "\e6a3";
-}
-
-.icon-lishihuisu:before {
- content: "\e6a2";
-}
-
-.icon-decoyitianjiaweiguiji:before {
- content: "\e69f";
-}
-
-.icon-bofangqiehuan:before {
- content: "\e6a0";
-}
-
-.icon-tianjia:before {
- content: "\e6a1";
-}
-
-.icon-baocun:before {
- content: "\e698";
-}
-
-.icon-gongjuxiangguanbi:before {
- content: "\e699";
-}
-
-.icon-shangchuan:before {
- content: "\e69b";
-}
-
-.icon-gongjuxiang1:before {
- content: "\e69c";
-}
-
-.icon-logo:before {
- content: "\e692";
-}
-
-.icon-setting:before {
- content: "\e627";
-}
-
-.icon-user:before {
- content: "\e628";
-}
-
-.icon-quit:before {
- content: "\e629";
-}
-
-.icon-arrowzhankaimeixuanzhong:before {
- content: "\e693";
-}
-
-.icon-arrowzhankaixuanzhong:before {
- content: "\e694";
-}
-
-.icon-xuanzexuanzhong:before {
- content: "\e695";
-}
-
-.icon-xuanzebanxuan:before {
- content: "\e696";
-}
-
-.icon-xuanzenor:before {
- content: "\e697";
-}
-
-.icon-shaixuanguanbinor:before {
- content: "\e691";
-}
-
-.icon-gengduo:before {
- content: "\e68e";
-}
-
-.icon-youzhankai:before {
- content: "\e68f";
-}
-
-.icon-zuoshouqi:before {
- content: "\e690";
-}
-
-.icon-yuan:before {
- content: "\e68a";
-}
-
-.icon-duobianxing:before {
- content: "\e68b";
-}
-
-.icon-fang:before {
- content: "\e68c";
-}
-
-.icon-ceju:before {
- content: "\e68d";
-}
-
-.icon-shishizhuizong1:before {
- content: "\e683";
-}
-
-.icon-guijihuisu1:before {
- content: "\e684";
-}
-
-.icon-tianjiaguiji:before {
- content: "\e685";
-}
-
-.icon-yichuguiji:before {
- content: "\e686";
-}
-
-.icon-fangda:before {
- content: "\e680";
-}
-
-.icon-suoxiao:before {
- content: "\e681";
-}
-
-.icon-xiazai:before {
- content: "\e682";
-}
-
-.icon-fanhui:before {
- content: "\e678";
-}
-
-.icon-sousuo:before {
- content: "\e669";
-}
-
-.icon-quxiaoxuanzhong:before {
- content: "\e66a";
-}
-
-.icon-piliangxuanzenor:before {
- content: "\e66b";
-}
-
-.icon-kaiqifenxi:before {
- content: "\e66c";
-}
-
-.icon-quxiaofenxi:before {
- content: "\e66d";
-}
-
-.icon-shaixuan:before {
- content: "\e66e";
-}
-
-.icon-dangan:before {
- content: "\e66f";
-}
-
-.icon-bofang:before {
- content: "\e670";
-}
-
-.icon-zanting:before {
- content: "\e671";
-}
-
-.icon-shanchu:before {
- content: "\e672";
-}
-
-.icon-tianjiaweizhuizongduixiang:before {
- content: "\e673";
-}
-
-.icon-chakandatu:before {
- content: "\e674";
-}
-
-.icon-jiansuojilu:before {
- content: "\e675";
-}
-
-.icon-yuzhi:before {
- content: "\e676";
-}
-
-.icon-chakanxiangqing:before {
- content: "\e677";
-}
-
-.icon-guijihuisu:before {
- content: "\e65c";
-}
-
-.icon-dianweipeizhinor:before {
- content: "\e65d";
-}
-
-.icon-yirenyidang:before {
- content: "\e65e";
-}
-
-.icon-tongbanfenxi:before {
- content: "\e65f";
-}
-
-.icon-qiehuanzuo:before {
- content: "\e662";
-}
-
-.icon-qiehuanyou:before {
- content: "\e663";
-}
-
-.icon-tingzhidengdai:before {
- content: "\e664";
-}
-
-.icon-yiguanbi:before {
- content: "\e665";
-}
-
-.icon-danchuangguanbi:before {
- content: "\e666";
-}
-
-.icon-lishijilu:before {
- content: "\e64a";
-}
-
-.icon-xuanzhuan:before {
- content: "\e648";
-}
-
-.icon-qingchu:before {
- content: "\e649";
-}
-
-.icon-dangantianjia:before {
- content: "\e63d";
-}
-
-.icon-bianji:before {
- content: "\e63e";
-}
-
-.icon-fullscreen:before {
- content: "\e63b";
-}
-
-.icon-cancle_fullscreen:before {
- content: "\e63c";
-}
-
-.icon-quanyujiansuo_nor:before {
- content: "\e639";
-}
-
-.icon-guijihuisu_nor:before {
- content: "\e63a";
-}
-
diff --git a/packages/meta/lib/iconfont/iconfont.js b/packages/meta/lib/iconfont/iconfont.js
deleted file mode 100644
index 16d543e..0000000
--- a/packages/meta/lib/iconfont/iconfont.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// src/iconfont/iconfont.js
-window._iconfont_svg_string_1739270 = '', function(h) {
- var a = (a = document.getElementsByTagName("script"))[a.length - 1], l = a.getAttribute("data-injectcss"), a = a.getAttribute("data-disable-injectsvg");
- if (!a) {
- var i, c, o, t, z, v = function(a2, l2) {
- l2.parentNode.insertBefore(a2, l2);
- };
- if (l && !h.__iconfont__svg__cssinject__) {
- h.__iconfont__svg__cssinject__ = true;
- try {
- document.write("");
- } catch (a2) {
- console && console.log(a2);
- }
- }
- i = function() {
- var a2, l2 = document.createElement("div");
- l2.innerHTML = h._iconfont_svg_string_1739270, (l2 = l2.getElementsByTagName("svg")[0]) && (l2.setAttribute("aria-hidden", "true"), l2.style.position = "absolute", l2.style.width = 0, l2.style.height = 0, l2.style.overflow = "hidden", l2 = l2, (a2 = document.body).firstChild ? v(l2, a2.firstChild) : a2.appendChild(l2));
- }, document.addEventListener ? ~["complete", "loaded", "interactive"].indexOf(document.readyState) ? setTimeout(i, 0) : (c = function() {
- document.removeEventListener("DOMContentLoaded", c, false), i();
- }, document.addEventListener("DOMContentLoaded", c, false)) : document.attachEvent && (o = i, t = h.document, z = false, p(), t.onreadystatechange = function() {
- "complete" == t.readyState && (t.onreadystatechange = null, m());
- });
- }
- function m() {
- z || (z = true, o());
- }
- function p() {
- try {
- t.documentElement.doScroll("left");
- } catch (a2) {
- return void setTimeout(p, 50);
- }
- m();
- }
-}(window);
diff --git a/packages/meta/lib/iconfont/iconfont.ttf b/packages/meta/lib/iconfont/iconfont.ttf
deleted file mode 100644
index 0043e6adb470d27d9eb668a85699dab6ac06590f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 105116
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