{"version":3,"sources":["jsdelivr-header.js","/npm/@opentiny/vue-crop@3.31.0/lib/index.js"],"names":[],"mappings":"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","file":"/npm/@opentiny/vue-crop@3.31.0/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.48.0.\n * Original file: /npm/@opentiny/vue-crop@3.31.0/lib/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { defineComponent, $prefix, setup } from '@opentiny/vue-common';\nimport { renderless, api } from '@opentiny/vue-renderless/crop/vue';\nimport { iconConmentRefresh, iconNew, iconZoomIn, iconZoomOut, iconRepeat, iconRefres, iconClose, iconYes, iconCrop } from '@opentiny/vue-icon';\nimport Cropper from 'cropperjs';\nimport 'cropperjs/dist/cropper.css';\nimport { openBlock, createElementBlock, withDirectives, createElementVNode, Fragment, renderList, createBlock, resolveDynamicComponent, withModifiers, vShow } from 'vue';\nimport '@opentiny/vue-theme/crop/index.css';\n\nfunction _createForOfIteratorHelperLoose(r, e) {\n  var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (t) return (t = t.call(r)).next.bind(t);\n  if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n    t && (r = t);\n    var o = 0;\n    return function() {\n      return o >= r.length ? { done: true } : { done: false, value: r[o++] };\n    };\n  }\n  throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n  }\n}\nfunction _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nvar _export_sfc = function _export_sfc2(sfc, props) {\n  var target = sfc.__vccOpts || sfc;\n  for (var _iterator = _createForOfIteratorHelperLoose(props), _step; !(_step = _iterator()).done; ) {\n    var _step$value = _step.value, key = _step$value[0], val = _step$value[1];\n    target[key] = val;\n  }\n  return target;\n};\n\nvar _sfc_main = defineComponent({\n  name: $prefix + \"Crop\",\n  components: {\n    IconConmentRefresh: iconConmentRefresh(),\n    IconNew: iconNew(),\n    IconZoomIn: iconZoomIn(),\n    IconZoomOut: iconZoomOut(),\n    IconRepeat: iconRepeat(),\n    IconRefres: iconRefres(),\n    IconClose: iconClose(),\n    IconYes: iconYes(),\n    IconCrop: iconCrop()\n  },\n  props: {\n    /** 设置图片上的alt属性 */\n    alt: {\n      type: String,\n      default: \"image\"\n    },\n    /** 裁剪框的宽高比，默认 16/9 */\n    aspectRatio: {\n      type: Number,\n      default: 16 / 9\n    },\n    /** 初始化时，是否自动显示裁剪框，默认 true */\n    autoCrop: {\n      type: Boolean,\n      default: true\n    },\n    /** 定义自动裁剪面积大小（百分比） 默认0.8 */\n    autoCropArea: {\n      type: Number,\n      default: 0.8\n    },\n    /** 是否显示容器的网格背景 默认true */\n    background: {\n      type: Boolean,\n      default: true\n    },\n    /** 裁剪框是否在图片正中心,并显示一个 + 号 默认false */\n    center: {\n      type: Boolean,\n      default: false\n    },\n    /** 设置图片裁剪后返回的类型，可配置为 blob 和 base64  默认 base64 */\n    cropType: {\n      type: String,\n      default: \"base64\"\n    },\n    /** 设置裁剪弹框是否可见 默认false */\n    cropvisible: {\n      type: Boolean,\n      default: false\n    },\n    /** 定义 cropper 的拖拽模式，默认 crop ;'crop'： 可以产生一个新的裁剪框 3 。'move'：只可以移动图片 3 。'none'： 什么也不处理   */\n    dragMode: {\n      type: String,\n      default: \"crop\"\n    },\n    /** 是否在裁剪框上方显示虚线 默认true */\n    guides: {\n      type: Boolean,\n      default: true\n    },\n    /** 设置待裁剪图片的最大大小，默认为 1M */\n    maxSize: {\n      type: String,\n      default: \"1M\"\n    },\n    /** 容器的最小高度 默认 300 */\n    minContainerHeight: {\n      type: Number,\n      default: 300\n    },\n    /** 容器的最小宽度 默认 652 */\n    minContainerWidth: {\n      type: Number,\n      default: 652\n    },\n    /** 裁剪层的最小高度  默认0 */\n    minCropBoxHeight: {\n      type: Number,\n      default: 0\n    },\n    /** 裁剪层的最小宽度 默认0 */\n    minCropBoxWidth: {\n      type: Number,\n      default: 0\n    },\n    /** 是否显示图片上方裁剪框下方的黑色模态 默认true */\n    modal: {\n      type: Boolean,\n      default: true\n    },\n    /** 是否允许可以移动后面的图片 默认true */\n    movable: {\n      type: Boolean,\n      default: true\n    },\n    plugin: {\n      type: [Object, Function],\n      default: function _default() {\n        return Cropper;\n      }\n    },\n    /** 设置图片裁剪后的压缩比例，值在 0-1 之间 默认0.92 */\n    quality: {\n      type: Number,\n      default: 0.92,\n      validator: function validator(value) {\n        return value <= 1 && value > 0;\n      }\n    },\n    /** 是否允许旋转图像;默认为 true */\n    rotatable: {\n      type: Boolean,\n      default: true\n    },\n    /** 默认裁剪的源图片 */\n    src: {\n      type: String,\n      default: \"\"\n    },\n    /** 定义 cropper 的视图模式,默认 0 ;0：没有限制，3 可以移动到 2 外。1：3 只能在 2 内移动。2：2 图片不全部铺满 1 （即缩小时可以有一边出现空隙）。3：2 图片填充整个 1 */\n    viewMode: {\n      type: Number,\n      default: 0\n    },\n    /** 用鼠标移动图像时，定义缩放比例 默认 0.1 */\n    wheelZoomRatio: {\n      type: Number,\n      default: 0.1\n    },\n    /** 是否可以通过滚动鼠标滚轮来缩放图像 默认true */\n    zoomOnWheel: {\n      type: Boolean,\n      default: true\n    },\n    /** 是否允许放大图像 默认true */\n    zoomable: {\n      type: Boolean,\n      default: true\n    }\n  },\n  emits: [\"update:cropvisible\", \"update:visible\", \"ready\", \"cropstart\", \"cropmove\", \"cropend\", \"crop\", \"cropdata\"],\n  setup: function setup$1(props, context) {\n    return setup({\n      props,\n      context,\n      renderless,\n      api,\n      mono: true\n    });\n  }\n});\nvar _hoisted_1 = {\n  class: \"tiny-crop__wrapper\"\n};\nvar _hoisted_2 = {\n  class: \"tiny-crop\"\n};\nvar _hoisted_3 = {\n  class: \"tiny-crop__dialog\"\n};\nvar _hoisted_4 = {\n  class: \"tiny-crop__dialog-cropper\"\n};\nvar _hoisted_5 = [\"src\", \"alt\"];\nvar _hoisted_6 = {\n  class: \"tiny-crop__dialog-content__handle\"\n};\nvar _hoisted_7 = {\n  class: \"tiny-crop__dialog-content__handle__button\"\n};\nvar _hoisted_8 = [\"title\"];\nvar _hoisted_9 = {\n  key: 1,\n  class: \"iconButton__split\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n  return openBlock(), createElementBlock(\"div\", _hoisted_1, [withDirectives(createElementVNode(\n    \"div\",\n    _hoisted_2,\n    [createElementVNode(\"div\", _hoisted_3, [createElementVNode(\n      \"input\",\n      {\n        ref: \"cropInput\",\n        type: \"file\",\n        name: \"image\",\n        accept: \"image/*\",\n        onChange: _cache[0] || (_cache[0] = function() {\n          return _ctx.setImage && _ctx.setImage.apply(_ctx, arguments);\n        })\n      },\n      null,\n      544\n      /* NEED_HYDRATION, NEED_PATCH */\n    ), createElementVNode(\"div\", _hoisted_4, [createElementVNode(\"img\", {\n      src: _ctx.state.src,\n      ref: \"cropImageRef\",\n      id: \"crops\",\n      alt: _ctx.alt\n    }, null, 8, _hoisted_5)]), createElementVNode(\"div\", _hoisted_6, [createElementVNode(\"div\", _hoisted_7, [(openBlock(true), createElementBlock(\n      Fragment,\n      null,\n      renderList(_ctx.state.renderIcon, function(item, index) {\n        return openBlock(), createElementBlock(\"div\", {\n          class: \"iconButton\",\n          key: index\n        }, [!item.split ? (openBlock(), createElementBlock(\"div\", {\n          key: 0,\n          title: item.title\n        }, [(openBlock(), createBlock(resolveDynamicComponent(item.icon), {\n          onClick: withModifiers(item.method, [\"prevent\"]),\n          class: \"iconButtonset\"\n        }, null, 8, [\"onClick\"]))], 8, _hoisted_8)) : (openBlock(), createElementBlock(\"div\", _hoisted_9))]);\n      }),\n      128\n      /* KEYED_FRAGMENT */\n    ))])])])],\n    512\n    /* NEED_PATCH */\n  ), [[vShow, _ctx.state.cropvisible]])]);\n}\nvar Crop = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nvar version = \"3.undefined\";\nCrop.install = function(Vue) {\n  Vue.component(Crop.name, Crop);\n};\nCrop.version = version;\n\nexport { Crop as default };\n"]}