{"version":3,"file":"cropper-modal.vue2.mjs","sources":["../../../../../../packages/components/cropper/src/cropper-modal.vue"],"sourcesContent":["<template>\r\n  <div :style=\"{ display: 'inline-block' }\" v-bind=\"filteredAttrs\">\r\n    <div\r\n      :class=\"[\r\n        bem.e('cropper-avatar'),\r\n        props.disabled ? bem.is('disabled') : '',\r\n      ]\"\r\n      :style=\"{\r\n        cursor: props.disabled ? 'not-allowed' : 'pointer',\r\n        display: 'inline-flex',\r\n        borderRadius: borderRadius,\r\n        border: `1px var(--color-border) ${borderType}`,\r\n      }\"\r\n      @click=\"handleOpen\"\r\n      @mouseenter=\"mouseenter\"\r\n      @mouseleave=\"mouseleave\"\r\n    >\r\n      <a-spin :spinning=\"loading\" style=\"display: inline-block\">\r\n        <slot :src=\"avatar\">\r\n          <template v-if=\"avatar\">\r\n            <ll-image\r\n              v-bind=\"getImgBindValue\"\r\n              :src=\"avatar\"\r\n              :width=\"avatarSize\"\r\n              :height=\"avatarSize\"\r\n              :is-show-border=\"false\"\r\n              :border-radius=\"borderRadius\"\r\n              :preview=\"{ visible: false }\"\r\n            >\r\n              <template #previewMaskContent>\r\n                <div\r\n                  v-if=\"maskMode === 'default'\"\r\n                  :class=\"bem.m('preview-mask-default')\"\r\n                >\r\n                  <ll-icon\r\n                    :icon-name=\"`icon-pwd-look`\"\r\n                    :class=\"bem.e('image-icon')\"\r\n                    @click.stop=\"imageVisible = true\"\r\n                  />\r\n\r\n                  <ll-icon\r\n                    :icon-name=\"`icon-delete`\"\r\n                    :class=\"bem.e('image-icon')\"\r\n                    @click.stop=\"handleRemoveImage\"\r\n                  />\r\n                </div>\r\n                <!-- 渐入式 -->\r\n                <div\r\n                  v-else\r\n                  :class=\"bem.m('preview-mask-fade-in')\"\r\n                  :style=\"{ height: isHover ? maskHeight : '0' }\"\r\n                >\r\n                  <div\r\n                    :class=\"bem.m('mask-text')\"\r\n                    :style=\"{ fontSize: maskTextSize }\"\r\n                  >\r\n                    {{ maskText }}\r\n                  </div>\r\n                </div>\r\n              </template>\r\n            </ll-image>\r\n          </template>\r\n          <template v-else>\r\n            <div\r\n              :class=\"bem.e('cropper-upload')\"\r\n              :style=\"{ width: sizeStyle, height: sizeStyle }\"\r\n            >\r\n              <ll-icon\r\n                :icon-name=\"uploadIcon || 'icon-add'\"\r\n                :size=\"uploadIconSize\"\r\n              />\r\n\r\n              <!-- 上传标题 -->\r\n              <div v-if=\"uploadTitle\" :class=\"bem.m('upload-title')\">\r\n                {{ uploadTitle }}\r\n              </div>\r\n              <!-- 上传提示 -->\r\n              <div v-if=\"uploadTip\" :class=\"bem.m('upload-tip')\">\r\n                {{ uploadTip }}\r\n              </div>\r\n            </div>\r\n          </template>\r\n        </slot>\r\n      </a-spin>\r\n      <div style=\"display: none\">\r\n        <a-image-preview-group\r\n          :preview=\"{\r\n            visible: imageVisible,\r\n            onVisibleChange: (vis: boolean) => (imageVisible = vis),\r\n          }\"\r\n        >\r\n          <a-image :src=\"avatar\" />\r\n        </a-image-preview-group>\r\n      </div>\r\n    </div>\r\n    <ll-new-modal\r\n      :open=\"open\"\r\n      :title=\"props.title\"\r\n      :width=\"800\"\r\n      :keyboard=\"false\"\r\n      :mask-closable=\"false\"\r\n      :ok-text=\"'确定'\"\r\n      :loading=\"uploadLoading\"\r\n      @cancel=\"handleCancel\"\r\n      @ok=\"handleOk\"\r\n    >\r\n      <div :class=\"bem.b()\">\r\n        <div :class=\"bem.e('left')\">\r\n          <div :class=\"bem.e('cropper')\">\r\n            <cropper-image\r\n              v-if=\"src && open\"\r\n              :src=\"src\"\r\n              height=\"300px\"\r\n              :circled=\"circled\"\r\n              :loading=\"uploadLoading\"\r\n              @cropend=\"handleCropend\"\r\n              @on-ready=\"handleReady\"\r\n            />\r\n          </div>\r\n          <div :class=\"bem.e('toolbar')\">\r\n            <ll-space>\r\n              <a-upload\r\n                :file-list=\"[]\"\r\n                accept=\"image/*\"\r\n                :before-upload=\"handleBeforeUpload\"\r\n              >\r\n                <ll-tooltip :title=\"'选择图片'\" placement=\"bottom\">\r\n                  <ll-button\r\n                    type=\"primary\"\r\n                    size=\"small\"\r\n                    :disabled=\"uploadLoading\"\r\n                    @click=\"handlerToolbar('reset')\"\r\n                  >\r\n                    <ll-icon icon-name=\"icon-upload\" />\r\n                  </ll-button>\r\n                </ll-tooltip>\r\n              </a-upload>\r\n              <ll-tooltip :tip=\"'重置'\" placement=\"bottom\">\r\n                <ll-button\r\n                  type=\"primary\"\r\n                  size=\"small\"\r\n                  :disabled=\"!src || uploadLoading\"\r\n                  @click=\"handlerToolbar('reset')\"\r\n                >\r\n                  <ll-icon icon-name=\"icon-refresh\" />\r\n                </ll-button>\r\n              </ll-tooltip>\r\n              <ll-tooltip :tip=\"'逆时针旋转'\" placement=\"bottom\">\r\n                <ll-button\r\n                  type=\"primary\"\r\n                  size=\"small\"\r\n                  :disabled=\"!src || uploadLoading\"\r\n                  @click=\"handlerToolbar('rotate', -45)\"\r\n                >\r\n                  <ll-icon icon-name=\"icon-counter-clockwise\" />\r\n                </ll-button>\r\n              </ll-tooltip>\r\n              <ll-tooltip :tip=\"'顺时针旋转'\" placement=\"bottom\">\r\n                <ll-button\r\n                  type=\"primary\"\r\n                  size=\"small\"\r\n                  :disabled=\"!src || uploadLoading\"\r\n                  @click=\"handlerToolbar('rotate', 45)\"\r\n                >\r\n                  <ll-icon icon-name=\"icon-clockwise-rotation\" />\r\n                </ll-button>\r\n              </ll-tooltip>\r\n              <ll-tooltip :tip=\"'水平翻转'\" placement=\"bottom\">\r\n                <ll-button\r\n                  type=\"primary\"\r\n                  size=\"small\"\r\n                  :disabled=\"!src || uploadLoading\"\r\n                  @click=\"handlerToolbar('scaleX')\"\r\n                >\r\n                  <ll-icon icon-name=\"icon-flip-horizontal\" />\r\n                </ll-button>\r\n              </ll-tooltip>\r\n              <ll-tooltip :tip=\"'垂直翻转'\" placement=\"bottom\">\r\n                <ll-button\r\n                  type=\"primary\"\r\n                  size=\"small\"\r\n                  :disabled=\"!src || uploadLoading\"\r\n                  @click=\"handlerToolbar('scaleY')\"\r\n                >\r\n                  <ll-icon icon-name=\"icon-flip-vertical\" />\r\n                </ll-button>\r\n              </ll-tooltip>\r\n              <ll-tooltip :tip=\"'放大'\" placement=\"bottom\">\r\n                <ll-button\r\n                  type=\"primary\"\r\n                  size=\"small\"\r\n                  :disabled=\"!src || uploadLoading\"\r\n                  @click=\"handlerToolbar('zoom', 0.1)\"\r\n                >\r\n                  <ll-icon icon-name=\"icon-amplify1\" />\r\n                </ll-button>\r\n              </ll-tooltip>\r\n              <ll-tooltip :tip=\"'缩小'\" placement=\"bottom\">\r\n                <ll-button\r\n                  type=\"primary\"\r\n                  size=\"small\"\r\n                  :disabled=\"!src || uploadLoading\"\r\n                  @click=\"handlerToolbar('zoom', -0.1)\"\r\n                >\r\n                  <ll-icon icon-name=\"icon-scale\" />\r\n                </ll-button>\r\n              </ll-tooltip>\r\n            </ll-space>\r\n          </div>\r\n        </div>\r\n        <div :class=\"bem.e('right')\">\r\n          <a-spin :spinning=\"uploadLoading\">\r\n            <div :class=\"bem.e('preview')\">\r\n              <img v-if=\"previewSource\" :src=\"previewSource\" :alt=\"'预览'\" />\r\n            </div>\r\n            <template v-if=\"previewSource\">\r\n              <div :class=\"bem.e('group')\">\r\n                <ll-image\r\n                  :preview=\"false\"\r\n                  :src=\"previewSource\"\r\n                  :width=\"32\"\r\n                  :height=\"32\"\r\n                />\r\n                <ll-image\r\n                  :preview=\"false\"\r\n                  :src=\"previewSource\"\r\n                  :width=\"48\"\r\n                  :height=\"48\"\r\n                />\r\n                <ll-image\r\n                  :preview=\"false\"\r\n                  :src=\"previewSource\"\r\n                  :width=\"64\"\r\n                  :height=\"64\"\r\n                />\r\n                <ll-image\r\n                  :preview=\"false\"\r\n                  :src=\"previewSource\"\r\n                  :width=\"80\"\r\n                  :height=\"80\"\r\n                />\r\n              </div>\r\n            </template>\r\n          </a-spin>\r\n        </div>\r\n      </div>\r\n    </ll-new-modal>\r\n  </div>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { createNamespace, dataURLtoBlob, type Nullable } from '@ll-plus/utils'\r\nimport { computed, ref, useAttrs, watch, watchEffect } from 'vue'\r\nimport {\r\n  cropperModalEmits,\r\n  cropperModalProps,\r\n  type CropendResult,\r\n} from './cropper-image'\r\nimport CropperImage from './cropper-image.vue'\r\n//@ts-ignore\r\nimport type Cropper from 'cropperjs'\r\nimport { imageProps } from '../../image'\r\nimport { watermarkProps } from '../../watermark'\r\n\r\ndefineOptions({ name: 'LlCropperModal' })\r\n\r\nconst props = defineProps(cropperModalProps)\r\nconst emits = defineEmits(cropperModalEmits)\r\nconst bem = createNamespace('cropper-modal')\r\n\r\nconst attrs = useAttrs()\r\n\r\nconst src = ref<string>(props.avatar || '')\r\nconst previewSource = ref<string>('')\r\nconst open = ref<boolean>(false)\r\nconst loading = ref<boolean>(props.loading)\r\nconst uploadLoading = ref<boolean>(false)\r\nconst imageVisible = ref<boolean>(false)\r\n\r\nconst isHover = ref(false)\r\n\r\nconst cropper = ref<Nullable<Cropper>>()\r\nlet scaleX = 1\r\nlet scaleY = 1\r\n\r\n// 获取图片宽高（适配单位）\r\nconst sizeStyle = computed(() => {\r\n  if (typeof props.avatarSize === 'number') {\r\n    return `${props.avatarSize}px`\r\n  } else if (typeof props.avatarSize === 'string') {\r\n    return props.avatarSize\r\n  } else return undefined\r\n})\r\n\r\n// 获取绑定给图片组件的属性\r\nconst getImgBindValue = computed(() => {\r\n  const imagePropKeys = Object.keys({ ...imageProps, ...watermarkProps })\r\n  return Object.fromEntries(\r\n    Object.entries(attrs).filter(([key]) => imagePropKeys.includes(key)),\r\n  )\r\n})\r\n\r\nconst filteredAttrs = computed(() => {\r\n  // 获取 watermarkProps 的所有键名\r\n  const watermarkKeys = Object.keys(watermarkProps)\r\n\r\n  // 过滤 attrs 对象\r\n  return Object.fromEntries(\r\n    Object.entries(attrs).filter(([key]) => !watermarkKeys.includes(key)),\r\n  )\r\n})\r\n\r\n// Block upload\r\nconst handleBeforeUpload = (file: File) => {\r\n  const reader = new FileReader()\r\n  reader.readAsDataURL(file)\r\n  uploadLoading.value = true\r\n  src.value = ''\r\n  previewSource.value = ''\r\n  reader.onload = function (e) {\r\n    src.value = (e.target?.result as string) ?? ''\r\n    uploadLoading.value = false\r\n    // filename = file.name\r\n  }\r\n  reader.onerror = () => {\r\n    uploadLoading.value = false\r\n  }\r\n  return false\r\n}\r\nconst handleOpen = () => {\r\n  if (props.disabled) return\r\n  open.value = true\r\n}\r\nconst handleCropend = ({ imgBase64 }: CropendResult) => {\r\n  previewSource.value = imgBase64\r\n}\r\n\r\nconst handleReady = (cropperInstance: Cropper) => {\r\n  cropper.value = cropperInstance\r\n}\r\nconst handlerToolbar = (event: string, arg?: number) => {\r\n  if (event === 'scaleX') {\r\n    scaleX = arg = scaleX === -1 ? 1 : -1\r\n  }\r\n  if (event === 'scaleY') {\r\n    scaleY = arg = scaleY === -1 ? 1 : -1\r\n  }\r\n  cropper?.value?.[event]?.(arg)\r\n}\r\n\r\nconst handleOk = async () => {\r\n  const blob = dataURLtoBlob(previewSource.value)\r\n  emits('confirm', { blob, previewSource: previewSource.value })\r\n  emits('update:avatar', previewSource.value)\r\n  src.value = previewSource.value\r\n  open.value = false\r\n}\r\n\r\nconst handleCancel = async () => {\r\n  await cleanValue()\r\n  open.value = false\r\n}\r\n\r\nconst handleRemoveImage = () => {\r\n  src.value = ''\r\n  previewSource.value = ''\r\n  emits('update:avatar', '')\r\n}\r\n\r\nconst mouseenter = () => {\r\n  isHover.value = true\r\n}\r\nconst mouseleave = () => {\r\n  isHover.value = false\r\n}\r\n\r\nconst cleanValue = () => {\r\n  src.value = ''\r\n  previewSource.value = ''\r\n}\r\n\r\nwatch(open, (val) => {\r\n  if (val) {\r\n    src.value = props.avatar\r\n    previewSource.value = props.avatar\r\n  }\r\n})\r\n\r\nwatchEffect(() => {\r\n  loading.value = props.loading\r\n})\r\ndefineExpose({\r\n  cleanValue,\r\n})\r\n</script>\r\n"],"names":["_openBlock","_createElementBlock","_mergeProps","_createElementVNode","_normalizeClass","_unref","_normalizeStyle","borderRadius","borderType","_createVNode","_renderSlot","avatar","_createBlock","avatarSize","maskMode","_Fragment","_createCommentVNode","maskHeight","maskTextSize","maskText","uploadIcon","uploadIconSize","uploadTitle","uploadTip","CropperImage","circled"],"mappings":"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"}