django-vue3-admin-web/node_modules/@fast-crud/fast-extends/dist/index-50ffe046.mjs.map
2025-10-20 21:21:14 +08:00

1 line
101 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"file":"index-50ffe046.mjs","sources":["../src/uploader/components/fs-images-format.vue","../src/uploader/components/fs-images-format.vue","../../src/uploader/type/validators.ts","../../src/uploader/type/types.tsx","../../src/uploader/type/config.ts","../../src/uploader/type/index.ts","../../src/uploader/components/libs/index.ts","../../src/uploader/components/utils/index.ts","../../src/uploader/index.ts","../../src/editor/type/types.ts","../../src/editor/type/config.ts","../../src/editor/type/index.ts","../../src/editor/index.ts","../../src/json/type/types.ts","../../src/json/type/index.ts","../../src/json/index.ts","../../src/copyable/type/types.ts","../../src/copyable/type/index.ts","../../../node_modules/.pnpm/@soerenmartius+vue3-clipboard@0.1.2/node_modules/@soerenmartius/vue3-clipboard/dist/vue3-clipboard.esm.js","../../src/copyable/index.ts","../../src/time/type/types.ts","../../src/time/type/index.ts","../../src/time/index.ts","../../src/input/components/fs-phone-input/utils.ts","../src/input/components/fs-phone-input/fs-phone-input.vue","../../src/input/components/fs-phone-input/index.ts","../../src/input/type/types.tsx","../../src/input/type/index.ts","../../src/input/index.ts"],"sourcesContent":["<template>\n <div class=\"fs-image-format\">\n <component :is=\"ui.imageGroup.name\" v-bind=\"wrapper\">\n <component :is=\"ui.image.name\" v-for=\"item in imageListRef\" :key=\"item.src\" class=\"fs-image-item\" v-bind=\"item\">\n <template #placeholder>\n <div class=\"fs-image-slot\">\n <fs-loading :loading=\"true\" v-bind=\"errorBinding\" />\n </div>\n </template>\n <template #error>\n <div class=\"fs-image-slot\">\n <img :src=\"error\" v-bind=\"errorBinding\" />\n </div>\n </template>\n </component>\n </component>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, Ref, ref, watch } from \"vue\";\nimport { useUi } from \"@fast-crud/fast-crud\";\nimport { merge } from \"lodash-es\";\n// 图片行展示组件\nexport default defineComponent({\n name: \"FsImagesFormat\",\n inheritAttrs: false,\n props: {\n //包裹image的组件配置antdv是preview-groupelement是div\n wrapper: {\n type: Object,\n default: null\n },\n // 图片的url\n // 'url' 或 ['url','url'] 或 [{url:'url'}] 或 {url:'url'}\n modelValue: {\n type: [String, Array, Object],\n require: true\n },\n /**\n * 构建好的图片链接如果此处传值则不走buildUrl方法\n * 'url' 或 ['url1','url2'] 或 {url,previewUrl} 或 [{url,previewUrl}]\n */\n urls: {\n type: [String, Object, Array]\n },\n /**\n * 加载错误时显示的图片\n */\n error: {\n default:\n 'data:image/svg+xml,%3Csvg xmlns=\"http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"%3E%3Cpath fill=\"%23888\" d=\"M5 21q-.825 0-1.413-.588T3 19v-6.6l3 3l4-4l4 4l4-4l3 3V19q0 .825-.588 1.413T19 21H5ZM5 3h14q.825 0 1.413.588T21 5v6.575l-3-3l-4 4l-4-4l-4 4l-3-3V5q0-.825.588-1.413T5 3Z\"%2F%3E%3C%2Fsvg%3E'\n },\n /**\n * 从value构建图片下载url的方法\n * 支持异步\n * (value)=>Promise<string>\n */\n buildUrl: {\n type: Function,\n default: function (value: any) {\n return value;\n }\n },\n /**\n * (values)=>Promise<string[]>\n */\n buildUrls: {\n type: Function,\n default: null\n },\n /**\n * 从value或url构建预览大图的方法\n * (url,value)=>Promise<string>\n */\n buildPreviewUrl: {\n type: Function,\n default: function ({ url, value, index }: any) {\n return url;\n }\n },\n /**\n * (list,values)=>Promise<string[]>\n */\n buildPreviewUrls: {\n type: Function,\n default: null\n }\n },\n setup(props: any, ctx) {\n const { ui } = useUi();\n type ImageItem = {\n value?: any;\n url?: string;\n index?: number;\n previewUrl?: string;\n };\n const imageListRef: Ref<any[]> = ref([]);\n\n const errorBinding = computed(() => {\n return merge({ style: {} }, { style: ctx.attrs.style });\n });\n\n const computedValues = computed(() => {\n const urls: any = [];\n if (props.modelValue == null || props.modelValue === \"\") {\n return urls;\n }\n if (typeof props.modelValue === \"string\") {\n urls.push(props.modelValue);\n } else if (Array.isArray(props.modelValue)) {\n for (const item of props.modelValue) {\n if (item == null) {\n continue;\n }\n if (item.url != null) {\n if (item.previewUrl != null) {\n urls.push(item);\n } else {\n urls.push(item.url);\n }\n } else {\n urls.push(item);\n }\n }\n } else {\n //object\n if (props.modelValue.url != null) {\n if (props.modelValue.previewUrl != null) {\n urls.push(props.modelValue);\n } else {\n urls.push(props.modelValue.url);\n }\n } else {\n urls.push(props.modelValue);\n }\n }\n return urls;\n });\n\n function buildImageList(images: ImageItem[]) {\n const urls: string[] = [];\n const previewUrls: string[] = [];\n for (let i = 0; i < images.length; i++) {\n const image = images[i];\n urls.push(image.url as string);\n previewUrls.push(image.previewUrl as string);\n }\n const imageList: any[] = [];\n for (let i = 0; i < images.length; i++) {\n const image = images[i];\n const url = image.url;\n const previewUrl = image.previewUrl || image.url;\n const preview = ui.image.buildPreviewBind({\n url,\n urls,\n previewUrl,\n previewUrls,\n index: i\n });\n imageList.push({\n fit: \"contain\",\n src: url,\n [ui.image.fallback]: props.error,\n ...ctx.attrs,\n ...preview\n });\n }\n return imageList;\n }\n\n async function buildImageListUrls(list: ImageItem[]) {\n if (props.buildUrls) {\n const values = list.map((item) => item.value);\n const urls = await props.buildUrls(values);\n for (let i = 0; i < list.length; i++) {\n list[i].url = urls[i];\n }\n let previewUrls = urls;\n if (props.buildPreviewUrls) {\n previewUrls = await props.buildPreviewUrls(list, values);\n }\n for (let i = 0; i < list.length; i++) {\n list[i].previewUrl = previewUrls[i];\n }\n } else if (props.buildUrl) {\n for (let item of list) {\n item.url = await props.buildUrl(item.value);\n if (props.buildPreviewUrl) {\n item.previewUrl = await props.buildPreviewUrl(item, item.value);\n } else {\n item.previewUrl = item.previewUrl || item.url;\n }\n }\n } else {\n for (let i = 0; i < list.length; i++) {\n list[i].url = list[i].value;\n list[i].previewUrl = list[i].value;\n }\n }\n }\n\n async function buildImageListByValue(values: any) {\n const images: ImageItem[] = [];\n for (let i = 0; i < values.length; i++) {\n let value = values[i];\n images.push({\n value,\n index: i\n });\n }\n\n await buildImageListUrls(images);\n\n return buildImageList(images);\n }\n\n async function buildImageListByUrls(urls: any) {\n const list: ImageItem[] = [];\n if (typeof urls === \"string\") {\n list.push({\n value: urls,\n url: urls,\n index: 0,\n previewUrl: urls\n });\n } else if (urls instanceof Array) {\n if (urls.length > 0) {\n if (typeof urls[0] === \"string\") {\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n list.push({\n value: url,\n url: url,\n previewUrl: url,\n index: i\n });\n }\n } else {\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n list.push({\n value: url.url,\n ...url,\n index: i\n });\n }\n }\n }\n } else {\n // is object\n list.push({\n value: urls.url,\n ...urls,\n index: 0\n });\n }\n\n return buildImageList(list);\n }\n watch(\n () => {\n return computedValues.value;\n },\n async (values) => {\n if (!props.urls) {\n imageListRef.value = await buildImageListByValue(values);\n }\n },\n {\n immediate: true\n }\n );\n\n watch(\n () => {\n return props.urls;\n },\n async (value) => {\n if (value) {\n imageListRef.value = await buildImageListByUrls(value);\n }\n },\n {\n immediate: true\n }\n );\n\n return { imageListRef, ui, errorBinding };\n }\n});\n</script>\n<style lang=\"less\">\n.fs-image-format {\n display: flex;\n margin: 1px;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n\n .fs-box {\n display: flex;\n align-items: center;\n }\n\n .fs-image-item {\n border: 1px solid #eee;\n margin: 0 1px;\n object-fit: fill;\n background-color: #eee;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .fs-image-slot {\n display: flex;\n align-items: center;\n justify-content: center;\n // height: 100%;\n width: 100%;\n height: 100%;\n }\n\n .el-image-viewer__close {\n color: #fff;\n }\n\n .el-image__error,\n .el-image__inner,\n .el-image__placeholder {\n height: auto;\n }\n\n .el-image__wrapper {\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n}\n</style>\n","<template>\n <div class=\"fs-image-format\">\n <component :is=\"ui.imageGroup.name\" v-bind=\"wrapper\">\n <component :is=\"ui.image.name\" v-for=\"item in imageListRef\" :key=\"item.src\" class=\"fs-image-item\" v-bind=\"item\">\n <template #placeholder>\n <div class=\"fs-image-slot\">\n <fs-loading :loading=\"true\" v-bind=\"errorBinding\" />\n </div>\n </template>\n <template #error>\n <div class=\"fs-image-slot\">\n <img :src=\"error\" v-bind=\"errorBinding\" />\n </div>\n </template>\n </component>\n </component>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, Ref, ref, watch } from \"vue\";\nimport { useUi } from \"@fast-crud/fast-crud\";\nimport { merge } from \"lodash-es\";\n// 图片行展示组件\nexport default defineComponent({\n name: \"FsImagesFormat\",\n inheritAttrs: false,\n props: {\n //包裹image的组件配置antdv是preview-groupelement是div\n wrapper: {\n type: Object,\n default: null\n },\n // 图片的url\n // 'url' 或 ['url','url'] 或 [{url:'url'}] 或 {url:'url'}\n modelValue: {\n type: [String, Array, Object],\n require: true\n },\n /**\n * 构建好的图片链接如果此处传值则不走buildUrl方法\n * 'url' 或 ['url1','url2'] 或 {url,previewUrl} 或 [{url,previewUrl}]\n */\n urls: {\n type: [String, Object, Array]\n },\n /**\n * 加载错误时显示的图片\n */\n error: {\n default:\n 'data:image/svg+xml,%3Csvg xmlns=\"http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"%3E%3Cpath fill=\"%23888\" d=\"M5 21q-.825 0-1.413-.588T3 19v-6.6l3 3l4-4l4 4l4-4l3 3V19q0 .825-.588 1.413T19 21H5ZM5 3h14q.825 0 1.413.588T21 5v6.575l-3-3l-4 4l-4-4l-4 4l-3-3V5q0-.825.588-1.413T5 3Z\"%2F%3E%3C%2Fsvg%3E'\n },\n /**\n * 从value构建图片下载url的方法\n * 支持异步\n * (value)=>Promise<string>\n */\n buildUrl: {\n type: Function,\n default: function (value: any) {\n return value;\n }\n },\n /**\n * (values)=>Promise<string[]>\n */\n buildUrls: {\n type: Function,\n default: null\n },\n /**\n * 从value或url构建预览大图的方法\n * (url,value)=>Promise<string>\n */\n buildPreviewUrl: {\n type: Function,\n default: function ({ url, value, index }: any) {\n return url;\n }\n },\n /**\n * (list,values)=>Promise<string[]>\n */\n buildPreviewUrls: {\n type: Function,\n default: null\n }\n },\n setup(props: any, ctx) {\n const { ui } = useUi();\n type ImageItem = {\n value?: any;\n url?: string;\n index?: number;\n previewUrl?: string;\n };\n const imageListRef: Ref<any[]> = ref([]);\n\n const errorBinding = computed(() => {\n return merge({ style: {} }, { style: ctx.attrs.style });\n });\n\n const computedValues = computed(() => {\n const urls: any = [];\n if (props.modelValue == null || props.modelValue === \"\") {\n return urls;\n }\n if (typeof props.modelValue === \"string\") {\n urls.push(props.modelValue);\n } else if (Array.isArray(props.modelValue)) {\n for (const item of props.modelValue) {\n if (item == null) {\n continue;\n }\n if (item.url != null) {\n if (item.previewUrl != null) {\n urls.push(item);\n } else {\n urls.push(item.url);\n }\n } else {\n urls.push(item);\n }\n }\n } else {\n //object\n if (props.modelValue.url != null) {\n if (props.modelValue.previewUrl != null) {\n urls.push(props.modelValue);\n } else {\n urls.push(props.modelValue.url);\n }\n } else {\n urls.push(props.modelValue);\n }\n }\n return urls;\n });\n\n function buildImageList(images: ImageItem[]) {\n const urls: string[] = [];\n const previewUrls: string[] = [];\n for (let i = 0; i < images.length; i++) {\n const image = images[i];\n urls.push(image.url as string);\n previewUrls.push(image.previewUrl as string);\n }\n const imageList: any[] = [];\n for (let i = 0; i < images.length; i++) {\n const image = images[i];\n const url = image.url;\n const previewUrl = image.previewUrl || image.url;\n const preview = ui.image.buildPreviewBind({\n url,\n urls,\n previewUrl,\n previewUrls,\n index: i\n });\n imageList.push({\n fit: \"contain\",\n src: url,\n [ui.image.fallback]: props.error,\n ...ctx.attrs,\n ...preview\n });\n }\n return imageList;\n }\n\n async function buildImageListUrls(list: ImageItem[]) {\n if (props.buildUrls) {\n const values = list.map((item) => item.value);\n const urls = await props.buildUrls(values);\n for (let i = 0; i < list.length; i++) {\n list[i].url = urls[i];\n }\n let previewUrls = urls;\n if (props.buildPreviewUrls) {\n previewUrls = await props.buildPreviewUrls(list, values);\n }\n for (let i = 0; i < list.length; i++) {\n list[i].previewUrl = previewUrls[i];\n }\n } else if (props.buildUrl) {\n for (let item of list) {\n item.url = await props.buildUrl(item.value);\n if (props.buildPreviewUrl) {\n item.previewUrl = await props.buildPreviewUrl(item, item.value);\n } else {\n item.previewUrl = item.previewUrl || item.url;\n }\n }\n } else {\n for (let i = 0; i < list.length; i++) {\n list[i].url = list[i].value;\n list[i].previewUrl = list[i].value;\n }\n }\n }\n\n async function buildImageListByValue(values: any) {\n const images: ImageItem[] = [];\n for (let i = 0; i < values.length; i++) {\n let value = values[i];\n images.push({\n value,\n index: i\n });\n }\n\n await buildImageListUrls(images);\n\n return buildImageList(images);\n }\n\n async function buildImageListByUrls(urls: any) {\n const list: ImageItem[] = [];\n if (typeof urls === \"string\") {\n list.push({\n value: urls,\n url: urls,\n index: 0,\n previewUrl: urls\n });\n } else if (urls instanceof Array) {\n if (urls.length > 0) {\n if (typeof urls[0] === \"string\") {\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n list.push({\n value: url,\n url: url,\n previewUrl: url,\n index: i\n });\n }\n } else {\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n list.push({\n value: url.url,\n ...url,\n index: i\n });\n }\n }\n }\n } else {\n // is object\n list.push({\n value: urls.url,\n ...urls,\n index: 0\n });\n }\n\n return buildImageList(list);\n }\n watch(\n () => {\n return computedValues.value;\n },\n async (values) => {\n if (!props.urls) {\n imageListRef.value = await buildImageListByValue(values);\n }\n },\n {\n immediate: true\n }\n );\n\n watch(\n () => {\n return props.urls;\n },\n async (value) => {\n if (value) {\n imageListRef.value = await buildImageListByUrls(value);\n }\n },\n {\n immediate: true\n }\n );\n\n return { imageListRef, ui, errorBinding };\n }\n});\n</script>\n<style lang=\"less\">\n.fs-image-format {\n display: flex;\n margin: 1px;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n\n .fs-box {\n display: flex;\n align-items: center;\n }\n\n .fs-image-item {\n border: 1px solid #eee;\n margin: 0 1px;\n object-fit: fill;\n background-color: #eee;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .fs-image-slot {\n display: flex;\n align-items: center;\n justify-content: center;\n // height: 100%;\n width: 100%;\n height: 100%;\n }\n\n .el-image-viewer__close {\n color: #fff;\n }\n\n .el-image__error,\n .el-image__inner,\n .el-image__placeholder {\n height: auto;\n }\n\n .el-image__wrapper {\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n}\n</style>\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/*!\n * @soerenmartius/vue3-clipboard v0.1.2\n * (c) 2021 Soeren Martius\n * @license MIT\n */\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t\tpath: basedir,\n\t\texports: {},\n\t\trequire: function (path, base) {\n\t\t\treturn commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n\t\t}\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\nvar clipboard = createCommonjsModule(function (module, exports) {\n/*!\n * clipboard.js v2.0.6\n * https://clipboardjs.com/\n * \n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tmodule.exports = factory();\n})(commonjsGlobal, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 6);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n }\n listener._ = callback;\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar is = __webpack_require__(3);\nvar delegate = __webpack_require__(4);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar closest = __webpack_require__(5);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(0);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n\n// CONCATENATED MODULE: ./src/clipboard-action.js\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n/**\n * Inner class which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n */\n\nvar clipboard_action_ClipboardAction = function () {\n /**\n * @param {Object} options\n */\n function ClipboardAction(options) {\n _classCallCheck(this, ClipboardAction);\n\n this.resolveOptions(options);\n this.initSelection();\n }\n\n /**\n * Defines base properties passed from constructor.\n * @param {Object} options\n */\n\n\n _createClass(ClipboardAction, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n\n this.selectedText = '';\n }\n\n /**\n * Decides which selection strategy is going to be applied based\n * on the existence of `text` and `target` properties.\n */\n\n }, {\n key: 'initSelection',\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n\n /**\n * Creates a fake textarea element, sets its value from `text` property,\n * and makes a selection on it.\n */\n\n }, {\n key: 'selectFake',\n value: function selectFake() {\n var _this = this;\n\n var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n this.removeFake();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n this.fakeElem = document.createElement('textarea');\n // Prevent zooming on iOS\n this.fakeElem.style.fontSize = '12pt';\n // Reset box model\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0';\n // Move element out of screen horizontally\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n // Move element to the same position vertically\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = yPosition + 'px';\n\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n\n this.container.appendChild(this.fakeElem);\n\n this.selectedText = select_default()(this.fakeElem);\n this.copyText();\n }\n\n /**\n * Only removes the fake element after another click event, that way\n * a user can hit `Ctrl+C` to copy because selection still exists.\n */\n\n }, {\n key: 'removeFake',\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n\n /**\n * Selects the content from element passed on `target` property.\n */\n\n }, {\n key: 'selectTarget',\n value: function selectTarget() {\n this.selectedText = select_default()(this.target);\n this.copyText();\n }\n\n /**\n * Executes the copy operation based on the current selection.\n */\n\n }, {\n key: 'copyText',\n value: function copyText() {\n var succeeded = void 0;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n\n /**\n * Fires an event based on the copy operation result.\n * @param {Boolean} succeeded\n */\n\n }, {\n key: 'handleResult',\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n\n /**\n * Moves focus away from `target` and back to the trigger, removes current selection.\n */\n\n }, {\n key: 'clearSelection',\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n document.activeElement.blur();\n window.getSelection().removeAllRanges();\n }\n\n /**\n * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n * @param {String} action\n */\n\n }, {\n key: 'destroy',\n\n\n /**\n * Destroy lifecycle.\n */\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: 'action',\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n }\n\n /**\n * Gets the `action` property.\n * @return {String}\n */\n ,\n get: function get() {\n return this._action;\n }\n\n /**\n * Sets the `target` property using an element\n * that will be have its content copied.\n * @param {Element} target\n */\n\n }, {\n key: 'target',\n set: function set(target) {\n if (target !== undefined) {\n if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n }\n\n /**\n * Gets the `target` property.\n * @return {String|HTMLElement}\n */\n ,\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n}();\n\n/* harmony default export */ var clipboard_action = (clipboard_action_ClipboardAction);\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(1);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(2);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n\n// CONCATENATED MODULE: ./src/clipboard.js\nvar clipboard_typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar clipboard_createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\nvar clipboard_Clipboard = function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n clipboard_classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n _this.resolveOptions(options);\n _this.listenClick(trigger);\n return _this;\n }\n\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n clipboard_createClass(Clipboard, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: 'listenClick',\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: 'onClick',\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new clipboard_action({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultAction',\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultTarget',\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: 'defaultText',\n\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: 'isSupported',\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n\n return support;\n }\n }]);\n\n return Clipboard;\n}(tiny_emitter_default.a);\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\n\nfunction getAttributeValue(suffix, element) {\n var attribute = 'data-clipboard-' + suffix;\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (clipboard_Clipboard);\n\n/***/ })\n/******/ ])[\"default\"];\n});\n});\n\nvar ClipboardJS = /*@__PURE__*/getDefaultExportFromCjs(clipboard);\n\nconst defaultConfig = {\r\n autoSetContainer: false,\r\n appendToBody: true,\r\n};\r\nconst VueClipboard = {\r\n config: (options) => {\r\n const { autoSetContainer, appendToBody } = options;\r\n defaultConfig.autoSetContainer = autoSetContainer ? autoSetContainer : false;\r\n defaultConfig.appendToBody = appendToBody ? appendToBody : true;\r\n },\r\n install: (app) => {\r\n app.config.globalProperties.$vclipboard = toClipboard;\r\n app.directive('clipboard', {\r\n beforeMount(el, binding) {\r\n if (binding.arg === 'success') {\r\n el._vClipboard_success = binding.value;\r\n }\r\n else if (binding.arg === 'error') {\r\n el._vClipboard_error = binding.value;\r\n }\r\n else {\r\n const clipboard = new ClipboardJS(el, {\r\n text: () => binding.value,\r\n action: () => {\r\n return binding.arg === 'cut' ? 'cut' : 'copy';\r\n },\r\n container: defaultConfig.autoSetContainer ? el : undefined,\r\n });\r\n clipboard.on('success', (e) => {\r\n const callback = el._vClipboard_success;\r\n callback && callback(e);\r\n });\r\n clipboard.on('error', (e) => {\r\n const callback = el._vClipboard_error;\r\n callback && callback(e);\r\n });\r\n el._vClipboard = clipboard;\r\n }\r\n },\r\n updated(el, binding) {\r\n if (binding.arg === 'success') {\r\n el._vClipboard_success = binding.value;\r\n }\r\n else if (binding.arg === 'error') {\r\n el._vClipboard_error = binding.value;\r\n }\r\n else {\r\n el._vClipboard.text = () => {\r\n return binding.value;\r\n };\r\n el._vClipboard.action = () => {\r\n return binding.arg === 'cut' ? 'cut' : 'copy';\r\n };\r\n }\r\n },\r\n unmounted(el, binding) {\r\n if (binding.arg === 'success') {\r\n delete el._vClipboard_success;\r\n }\r\n else if (binding.arg === 'error') {\r\n delete el._vClipboard_error;\r\n }\r\n else {\r\n el._vClipboard.destroy();\r\n delete el._vClipboard;\r\n }\r\n },\r\n });\r\n },\r\n toClipboard: (text, action) => toClipboard(text, action),\r\n};\r\nconst toClipboard = (text, action = 'copy') => {\r\n return new Promise((resolve, reject) => {\r\n const fakeElement = document.createElement('button');\r\n const clipboard = new ClipboardJS(fakeElement, {\r\n text: () => text,\r\n action: () => action,\r\n });\r\n clipboard.on('success', (e) => {\r\n clipboard.destroy();\r\n resolve(e);\r\n });\r\n clipboard.on('error', (e) => {\r\n clipboard.destroy();\r\n reject(e);\r\n });\r\n if (defaultConfig.appendToBody) {\r\n document.body.appendChild(fakeElement);\r\n }\r\n fakeElement.click();\r\n if (defaultConfig.appendToBody) {\r\n document.body.removeChild(fakeElement);\r\n }\r\n });\r\n};\n\nexport { VueClipboard, toClipboard };\n",null,null,null,null,null,"<template>\n <div class=\"fs-phone-input\">\n <fs-dict-select\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :filterable=\"filterable\"\n :clearable=\"clearable\"\n :options=\"countryOptions\"\n :dict=\"countryDict\"\n :show-search=\"true\"\n :allow-clear=\"true\"\n v-bind=\"computedSelect\"\n />\n <component\n :is=\"ui.input.name\"\n type=\"text\"\n :clearable=\"clearable\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :allow-clear=\"true\"\n v-bind=\"computedInput\"\n >\n </component>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, Ref, ref, watch } from \"vue\";\nimport { dict, useUi } from \"@fast-crud/fast-crud\";\nimport { merge, cloneDeep } from \"lodash-es\";\nimport { getCountries } from \"./utils\";\nconst { ui } = useUi();\nimport { getCountryByValue as getCountryByValueFromUtil } from \"./utils\";\ntype PhoneInputValue = {\n callingCode?: string;\n countryCode?: string;\n phoneNumber?: string;\n};\n\ntype PhoneInputProps = {\n /**\n * 选择框参数\n */\n select?: {\n width?: string;\n placeholder?: string;\n [key: string]: any;\n };\n\n /**\n * 号码框参数\n */\n input?: {\n placeholder?: string;\n [key: string]: any;\n };\n /**\n * 输入输出值\n */\n modelValue?: PhoneInputValue; // 结构\n /**\n * 仅限哪些国家\n */\n onlyCountries?: string[];\n /**\n * 忽略哪些国家\n */\n ignoredCountries?: string[];\n /**\n * 优先哪些国家\n */\n priorityCountries?: string[];\n\n clearable?: boolean;\n filterable?: boolean;\n /**\n * 默认国家\n */\n defaultCountry?: string;\n disabled?: boolean;\n readonly?: boolean;\n};\nconst formValidator = ui.formItem.injectFormItemContext();\nconst props = withDefaults(defineProps<PhoneInputProps>(), {\n defaultCountry: \"CN\"\n});\n\nconst emits = defineEmits([\"change\", \"input\", \"update:modelValue\"]);\n// eslint-disable-next-line vue/no-setup-props-destructure\nconst selectValue: Ref = ref<PhoneInputValue>(\n props.modelValue || {\n callingCode: undefined, // 电话区号\n countryCode: undefined, // 国家代码\n phoneNumber: undefined // 电话号码\n }\n);\n\nconst countryDict = dict({\n value: \"iso2\",\n label: \"label\"\n});\n\nconst countriesRef = ref([]);\n\nasync function loadCountries() {\n countriesRef.value = await getCountries();\n}\nloadCountries();\n\nconst countryOptions = computed(() => {\n const countries = countriesRef.value;\n let options = [];\n if (props.onlyCountries != null && props.onlyCountries.length > 0) {\n for (let country of countries) {\n if (props.onlyCountries.find((item) => item.toLowerCase() === country.iso2.toLowerCase())) {\n options.push(country);\n }\n }\n } else {\n const priorityCountries = props.priorityCountries || [];\n const ignoredCountries = props.ignoredCountries || [];\n const priorities = [];\n const leaved = [];\n for (let country of countries) {\n if (priorityCountries.find((item) => item.toLowerCase() === country.iso2.toLowerCase())) {\n priorities.push(country);\n }\n if (!ignoredCountries.find((item) => item.toLowerCase() === country.iso2.toLowerCase())) {\n leaved.push(country);\n }\n }\n options = priorities.concat(leaved);\n }\n\n options = options.map((item) => {\n return {\n ...item,\n label: item.name + \"(\" + item.dialCode + \")\"\n };\n });\n return options;\n});\n\nconst computedSelect = computed(() => {\n const def = {\n placeholder: \"请选择\",\n [ui.select.filterable]: true,\n [ui.select.clearable]: true,\n [ui.select.modelValue]: selectValue.value.countryCode,\n [\"onUpdate:\" + ui.select.modelValue]: handleSelectInput\n };\n return merge(def, props.select);\n});\n\nconst computedInput = computed(() => {\n const def: any = {\n placeholder: \"请输入\",\n [ui.select.clearable]: true,\n [ui.input.modelValue]: selectValue.value.phoneNumber,\n [`onUpdate:${ui.input.modelValue}`]: handleNumberInput\n };\n return merge(def, props.input);\n});\n\nfunction isChanged(value: any) {\n if (value === selectValue.value) {\n return false;\n }\n return true;\n // if (value && selectValue.value) {\n // return (\n // value.callingCode !== selectValue.value.callingCode ||\n // value.countryCode !== selectValue.value.countryCode ||\n // value.phoneNumber !== selectValue.value.phoneNumber\n // );\n // } else {\n // return value !== selectValue.value;\n // }\n}\n\nasync function setValue(value: any) {\n selectValue.value = { callingCode: undefined, countryCode: undefined, phoneNumber: undefined };\n const ret = await getCountryByValue(value);\n if (ret != null) {\n selectValue.value.callingCode = ret.callingCode;\n selectValue.value.countryCode = ret.countryCode;\n }\n if (value && value.phoneNumber) {\n selectValue.value.phoneNumber = value.phoneNumber;\n } else {\n selectValue.value.phoneNumber = undefined;\n }\n}\nasync function getCountryByValue(value: any): Promise<any> {\n let ret: any = null;\n if (value != null) {\n if (value.countryCode != null) {\n ret = countryOptions.value.find((item) => item.iso2 === value.countryCode);\n } else if (value.callingCode != null) {\n ret = countryOptions.value.find((item) => item.dialCode === value.callingCode);\n }\n }\n if (ret != null) {\n ret = {\n callingCode: ret.dialCode,\n countryCode: ret.iso2\n };\n }\n if (ret == null) {\n ret = await getCountryByValueFromUtil({ countryCode: props.defaultCountry });\n }\n return ret;\n}\n\nasync function handleSelectInput(countryCode: any) {\n await changeCountry(countryCode);\n let emitValue: any = getEmitValue();\n emits(\"update:modelValue\", emitValue);\n emits(\"input\", emitValue);\n emits(\"change\", emitValue);\n await formValidator.onChange();\n await formValidator.onBlur();\n}\n\nasync function handleNumberInput(number: any) {\n selectValue.value.phoneNumber = number;\n if (selectValue.value.callingCode == null && selectValue.value.countryCode == null) {\n selectValue.value.countryCode = props.defaultCountry;\n const country = await getCountryByValue(selectValue.value);\n if (country) {\n selectValue.value.callingCode = country.callingCode;\n }\n }\n let emitValue = getEmitValue();\n emits(\"update:modelValue\", emitValue);\n emits(\"input\", emitValue);\n emits(\"change\", emitValue);\n await formValidator.onChange();\n await formValidator.onBlur();\n}\n\nfunction getEmitValue(): PhoneInputValue {\n return {\n countryCode: selectValue.value.countryCode,\n callingCode: selectValue.value.callingCode,\n phoneNumber: selectValue.value.phoneNumber\n };\n}\n\nasync function changeCountry(countryCode: any) {\n if (!countryCode) {\n selectValue.value.callingCode = undefined;\n }\n selectValue.value.countryCode = countryCode;\n let ret = await getCountryByValue(selectValue.value);\n if (ret) {\n selectValue.value.callingCode = ret.callingCode;\n }\n}\n\nwatch(\n () => {\n return props.modelValue;\n },\n async (value, oldValue) => {\n await setValue(value);\n emits(\"change\", selectValue.value);\n },\n {\n immediate: true\n }\n);\n</script>\n<style lang=\"less\">\n.fs-phone-input {\n display: flex;\n align-items: center;\n .ant-select {\n width: 120px;\n max-width: 50%;\n .ant-select-selector {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n\n .ant-input,\n .ant-input-affix-wrapper {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n border-left: 0;\n }\n\n .el-select {\n width: 100px;\n max-width: 50%;\n\n .el-input {\n border-right: 0;\n }\n .el-input__wrapper {\n border-right: 0;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n .el-input {\n border-left: 0;\n .el-input__wrapper {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n border-left: 0;\n }\n }\n\n .n-select {\n width: 100px;\n max-width: 50%;\n .n-base-selection {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .n-base-selection__border {\n border-right: 0;\n }\n }\n\n .n-input {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n }\n}\n</style>\n",null,null,null,null],"names":["_sfc_main$1","defineComponent","value","url","index","props","ctx","ui","useUi","imageListRef","ref","errorBinding","computed","merge","computedValues","urls","item","buildImageList","images","previewUrls","i","image","imageList","previewUrl","preview","buildImageListUrls","list","values","buildImageListByValue","buildImageListByUrls","watch","_hoisted_1","_resolveComponent","_createElementBlock","_openBlock","_createBlock","_resolveDynamicComponent","_ctx","_guardReactiveProps","_withCtx","_Fragment","_renderList","_mergeProps","_createElementVNode","_hoisted_2","_hoisted_3","createAllUploadSuccessValidator","getFormComponentRef","rule","AllUploadSuccessValidator","compute","getComponentRef","createUploaderRules","yourRules","uploadingWarningMessage","types$5","t","useI18n","uiContext","get","form","component","name","listType","upload","typeImageCard","accept","formItem","rules","validator","message","trigger","column","style","previewTeleported","previewMask","_createVNode","icons","eye","viewForm","height","width","limit","align","valueResolve","row","key","Array","length","cropper","aspectRatio","autoCropArea","viewMode","defaultConfig","context","resolve","reject","ret","fileName","date","fileType","keepName","ext","uploaderConfig","cloneDeep","setConfig","app","config","AllSuccessValidator","FsUploaderType","options","newTypes","types","addTypes","useTypes","loadUploader","type","module","buildKey","file","useUploader","getDefaultType","getConfig","getUploaderImpl","asyncModules","syncModules","registerMergeColumnPlugin","useColumns","columnProps","crudOptions","buildUrl","buildUrls","FsUploaderComponents","utils","FsExtendsUploader","types$4","ExtendsType","FsExtendsComponents","FsExtendsEditor","types$3","FsExtendsType$3","FsExtendsJson","FsExtendsType","types$2","FsExtendsType$2","commonjsGlobal","getDefaultExportFromCjs","x","createCommonjsModule","fn","basedir","path","base","commonjsRequire","clipboard","exports","root","factory","modules","installedModules","__webpack_require__","moduleId","getter","mode","ns","object","property","select","element","selectedText","isReadOnly","selection","range","E","callback","e","self","listener","data","evtArr","len","evts","liveEvents","is","delegate","listen","target","listenNode","listenNodeList","listenSelector","node","nodeList","selector","closest","_delegate","useCapture","listenerFn","elements","DOCUMENT_NODE_TYPE","proto","__webpack_exports__","src_select","select_default","_typeof","obj","_createClass","defineProperties","descriptor","Constructor","protoProps","staticProps","_classCallCheck","instance","clipboard_action_ClipboardAction","ClipboardAction","_this","isRTL","yPosition","succeeded","action","clipboard_action","tiny_emitter","tiny_emitter_default","listen_default","clipboard_typeof","clipboard_createClass","clipboard_classCallCheck","_possibleConstructorReturn","call","_inherits","subClass","superClass","clipboard_Clipboard","_Emitter","Clipboard","_this2","getAttributeValue","actions","support","suffix","attribute","ClipboardJS","VueClipboard","autoSetContainer","appendToBody","toClipboard","el","binding","text","fakeElement","FsExtendsCopyable","types$1","FsExtendsType$1","FsExtendsTime","getCountries","countries","getCountryByValue","formValidator","__props","emits","__emit","selectValue","countryDict","dict","countriesRef","loadCountries","countryOptions","country","priorityCountries","ignoredCountries","priorities","leaved","computedSelect","def","handleSelectInput","computedInput","handleNumberInput","setValue","getCountryByValueFromUtil","countryCode","changeCountry","emitValue","getEmitValue","number","oldValue","_component_fs_dict_select","disabled","readonly","filterable","clearable","_unref","getParsePhoneNumberFromString","phoneNumber","parsePhoneNumberFromString","parsing","phoneNumberValidator","parse","mobileValidator","mobileRequiredValidator","noCountryCode","noCallingCode","noPhoneNumber","phone","cellRender","_createTextVNode","callingCode","vModel","FsExtendsInput"],"mappings":"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","x_google_ignoreList":[18]}