@kp-ui/lowcode 1.0.2 → 1.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +24 -24
- package/tmgc-form.style.css +7 -6647
- package/tmgc-form.umd.js +14 -0
- package/AttachmentRender-DrVXpYQp.mjs +0 -783
- package/AttachmentRender-DrVXpYQp.mjs.map +0 -1
- package/install-2qAQyqq8.mjs +0 -93042
- package/install-2qAQyqq8.mjs.map +0 -1
- package/tmgc-form.es.js +0 -11
- package/tmgc-form.es.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AttachmentRender-DrVXpYQp.mjs","sources":["../../../node_modules/.pnpm/@ant-design+icons-svg@4.4.2/node_modules/@ant-design/icons-svg/es/asn/DownloadOutlined.js","../../../node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.13_typescript@5.7.3_/node_modules/@ant-design/icons-vue/es/icons/DownloadOutlined.js","../../../node_modules/.pnpm/@ant-design+icons-svg@4.4.2/node_modules/@ant-design/icons-svg/es/asn/EyeOutlined.js","../../../node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.13_typescript@5.7.3_/node_modules/@ant-design/icons-vue/es/icons/EyeOutlined.js","../../../node_modules/.pnpm/@ant-design+icons-svg@4.4.2/node_modules/@ant-design/icons-svg/es/asn/FileOutlined.js","../../../node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.13_typescript@5.7.3_/node_modules/@ant-design/icons-vue/es/icons/FileOutlined.js","../../../node_modules/.pnpm/decode-uri-component@0.4.1/node_modules/decode-uri-component/index.js","../../../node_modules/.pnpm/filter-obj@5.1.0/node_modules/filter-obj/index.js","../../../node_modules/.pnpm/split-on-first@3.0.0/node_modules/split-on-first/index.js","../../../node_modules/.pnpm/query-string@9.1.1/node_modules/query-string/base.js","../src/hooks/useFilePreview.ts","../src/components/svg-icon/FileIcon.tsx","../src/components/CustomRender/components/AttachmentRender.vue"],"sourcesContent":["// This icon file is generated automatically.\nvar DownloadOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"download\", \"theme\": \"outlined\" };\nexport default DownloadOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport DownloadOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownloadOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar DownloadOutlined = function DownloadOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": DownloadOutlinedSvg\n }), null);\n};\n\nDownloadOutlined.displayName = 'DownloadOutlined';\nDownloadOutlined.inheritAttrs = false;\nexport default DownloadOutlined;","// This icon file is generated automatically.\nvar EyeOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z\" } }] }, \"name\": \"eye\", \"theme\": \"outlined\" };\nexport default EyeOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport EyeOutlinedSvg from \"@ant-design/icons-svg/es/asn/EyeOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar EyeOutlined = function EyeOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": EyeOutlinedSvg\n }), null);\n};\n\nEyeOutlined.displayName = 'EyeOutlined';\nEyeOutlined.inheritAttrs = false;\nexport default EyeOutlined;","// This icon file is generated automatically.\nvar FileOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z\" } }] }, \"name\": \"file\", \"theme\": \"outlined\" };\nexport default FileOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport FileOutlinedSvg from \"@ant-design/icons-svg/es/asn/FileOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar FileOutlined = function FileOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": FileOutlinedSvg\n }), null);\n};\n\nFileOutlined.displayName = 'FileOutlined';\nFileOutlined.inheritAttrs = false;\nexport default FileOutlined;","const token = '%[a-f0-9]{2}';\nconst singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nconst multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tconst left = components.slice(0, split);\n\tconst right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch {\n\t\tlet tokens = input.match(singleMatcher) || [];\n\n\t\tfor (let i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tconst replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD',\n\t};\n\n\tlet match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch {\n\t\t\tconst result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tconst entries = Object.keys(replaceMap);\n\n\tfor (const key of entries) {\n\t\t// Replace all decoded components\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nexport default function decodeUriComponent(encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n}\n","export function includeKeys(object, predicate) {\n\tconst result = {};\n\n\tif (Array.isArray(predicate)) {\n\t\tfor (const key of predicate) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(object, key);\n\t\t\tif (descriptor?.enumerable) {\n\t\t\t\tObject.defineProperty(result, key, descriptor);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// `Reflect.ownKeys()` is required to retrieve symbol properties\n\t\tfor (const key of Reflect.ownKeys(object)) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(object, key);\n\t\t\tif (descriptor.enumerable) {\n\t\t\t\tconst value = object[key];\n\t\t\t\tif (predicate(key, value, object)) {\n\t\t\t\t\tObject.defineProperty(result, key, descriptor);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\nexport function excludeKeys(object, predicate) {\n\tif (Array.isArray(predicate)) {\n\t\tconst set = new Set(predicate);\n\t\treturn includeKeys(object, key => !set.has(key));\n\t}\n\n\treturn includeKeys(object, (key, value, object) => !predicate(key, value, object));\n}\n","export default function splitOnFirst(string, separator) {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (string === '' || separator === '') {\n\t\treturn [];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n}\n","import decodeComponent from 'decode-uri-component';\nimport {includeKeys} from 'filter-obj';\nimport splitOnFirst from 'split-on-first';\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\n// eslint-disable-next-line unicorn/prefer-code-point\nconst strictUriEncode = string => encodeURIComponent(string).replaceAll(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result, [encode(key, options), '[', index, ']'].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t[encode(key, options), '[]'].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[]=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t[encode(key, options), ':list='].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), ':list=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSeparator = options.arrayFormat === 'bracket-separator'\n\t\t\t\t? '[]='\n\t\t\t\t: '=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSeparator, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\tencode(key, options),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], value];\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], value];\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : (value === null ? value : decode(value, options));\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null\n\t\t\t\t\t? []\n\t\t\t\t\t: decode(value, options).split(options.arrayFormatSeparator);\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], ...arrayValue];\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...[accumulator[key]].flat(), value];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction parseValue(value, options, type) {\n\tif (type === 'string' && typeof value === 'string') {\n\t\treturn value;\n\t}\n\n\tif (typeof type === 'function' && typeof value === 'string') {\n\t\treturn type(value);\n\t}\n\n\tif (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\treturn value.toLowerCase() === 'true';\n\t}\n\n\tif (type === 'number' && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\treturn Number(value);\n\t}\n\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\treturn Number(value);\n\t}\n\n\treturn value;\n}\n\nexport function extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nexport function parse(query, options) {\n\toptions = {\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false,\n\t\ttypes: Object.create(null),\n\t\t...options,\n\t};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst returnValue = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn returnValue;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn returnValue;\n\t}\n\n\tfor (const parameter of query.split('&')) {\n\t\tif (parameter === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst parameter_ = options.decode ? parameter.replaceAll('+', ' ') : parameter;\n\n\t\tlet [key, value] = splitOnFirst(parameter_, '=');\n\n\t\tif (key === undefined) {\n\t\t\tkey = parameter_;\n\t\t}\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : (['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options));\n\t\tformatter(decode(key, options), value, returnValue);\n\t}\n\n\tfor (const [key, value] of Object.entries(returnValue)) {\n\t\tif (typeof value === 'object' && value !== null && options.types[key] !== 'string') {\n\t\t\tfor (const [key2, value2] of Object.entries(value)) {\n\t\t\t\tconst type = options.types[key] ? options.types[key].replace('[]', '') : undefined;\n\t\t\t\tvalue[key2] = parseValue(value2, options, type);\n\t\t\t}\n\t\t} else if (typeof value === 'object' && value !== null && options.types[key] === 'string') {\n\t\t\treturnValue[key] = Object.values(value).join(options.arrayFormatSeparator);\n\t\t} else {\n\t\t\treturnValue[key] = parseValue(value, options, options.types[key]);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn returnValue;\n\t}\n\n\t// TODO: Remove the use of `reduce`.\n\t// eslint-disable-next-line unicorn/no-array-reduce\n\treturn (options.sort === true ? Object.keys(returnValue).sort() : Object.keys(returnValue).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = returnValue[key];\n\t\tresult[key] = Boolean(value) && typeof value === 'object' && !Array.isArray(value) ? keysSorter(value) : value;\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexport function stringify(object, options) {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\t...options,\n\t};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key]))\n\t\t|| (options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = value;\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n}\n\nexport function parseUrl(url, options) {\n\toptions = {\n\t\tdecode: true,\n\t\t...options,\n\t};\n\n\tlet [url_, hash] = splitOnFirst(url, '#');\n\n\tif (url_ === undefined) {\n\t\turl_ = url;\n\t}\n\n\treturn {\n\t\turl: url_?.split('?')?.[0] ?? '',\n\t\tquery: parse(extract(url), options),\n\t\t...(options && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}),\n\t};\n}\n\nexport function stringifyUrl(object, options) {\n\toptions = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true,\n\t\t...options,\n\t};\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = extract(object.url);\n\n\tconst query = {\n\t\t...parse(queryFromUrl, {sort: false}),\n\t\t...object.query,\n\t};\n\n\tlet queryString = stringify(query, options);\n\tqueryString &&= `?${queryString}`;\n\n\tlet hash = getHash(object.url);\n\tif (typeof object.fragmentIdentifier === 'string') {\n\t\tconst urlObjectForFragmentEncode = new URL(url);\n\t\turlObjectForFragmentEncode.hash = object.fragmentIdentifier;\n\t\thash = options[encodeFragmentIdentifier] ? urlObjectForFragmentEncode.hash : `#${object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n}\n\nexport function pick(input, filter, options) {\n\toptions = {\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false,\n\t\t...options,\n\t};\n\n\tconst {url, query, fragmentIdentifier} = parseUrl(input, options);\n\n\treturn stringifyUrl({\n\t\turl,\n\t\tquery: includeKeys(query, filter),\n\t\tfragmentIdentifier,\n\t}, options);\n}\n\nexport function exclude(input, filter, options) {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn pick(input, exclusionFilter, options);\n}\n","import { useFilesystemApi } from '@/api/useFilesystemApi';\nimport { IFileObjectType } from '@/types/fileObject';\nimport { ref } from 'vue';\nimport { getUserInfo } from '@/utils/request/useGetUseInfo';\nimport queryString from 'query-string';\n\n/**\n * 获取当前前端的域名\n * @returns\n */\nconst getDoMain = () => {\n const VITE_APP_DO_MAIN = import.meta.env.VITE_APP_DO_MAIN;\n if (import.meta.env.VITE_NODE_ENV === 'development') {\n return VITE_APP_DO_MAIN;\n }\n return window.location.origin;\n};\n\nexport function useFilePreview() {\n const fileUrlCache = ref(new Map<string, string>());\n\n const filesystemApi = useFilesystemApi();\n\n const getPreviewFileUrl = async (fileCode: string) => {\n if (fileUrlCache.value.has(fileCode)) {\n return fileUrlCache.value.get(fileCode);\n }\n const fileUrlObj = await filesystemApi.getPreviewFileUrl({ fileCode: fileCode });\n fileUrlCache.value.set(fileCode, fileUrlObj.data.value);\n return fileUrlObj.data.value;\n };\n\n const getPreviewData = async (data: IFileObjectType[]) => {\n const res = data.map(async item => {\n return {\n ...item,\n previewUrl: await getPreviewFileUrl(item.fileCode as string)\n };\n });\n return Promise.all(res);\n };\n\n const handlePreview = async (file: IFileObjectType) => {\n if (!['.png', '.jpg', '.jpeg', '.gif'].includes(file.fileType || '')) {\n const localUserInfo = getUserInfo();\n const employeeId = localUserInfo?.loginInfo?.employeeId;\n const { tokenId, tenantId } = localUserInfo?.loginInfo?.userToken as any;\n const doMain = getDoMain();\n const obj = {\n tenantId,\n tokenId,\n employeeId,\n fileCode: file.fileCode\n };\n\n console.log({ doMain });\n\n window.open(`${doMain}/view-file/preview?${queryString.stringify(obj)}`);\n }\n };\n\n // 处理文件下载\n const handleDownload = async (file: IFileObjectType) => {\n try {\n await filesystemApi.downloadFileObject({ fileCode: file.fileCode });\n } catch (error) {\n console.error('下载文件失败:', error);\n }\n };\n\n return {\n fileUrlCache,\n handleDownload,\n handlePreview,\n getPreviewData,\n getPreviewFileUrl\n };\n}\n","import { defineComponent, PropType } from 'vue';\nimport { IFileObjectType } from '@/types/fileObject';\nimport SvgIcon from './index.vue';\nimport { FileOutlined } from '@ant-design/icons-vue';\n\nexport default defineComponent({\n name: 'FileIcon',\n props: {\n file: {\n type: Object as PropType<IFileObjectType>,\n required: true\n }\n },\n setup(props) {\n return () => {\n const fieldTypes = props.file.fileType || '';\n try {\n if (['.xls', '.xlsx'].includes(fieldTypes.toLowerCase())) {\n return <SvgIcon icon-class=\"excel\" />;\n }\n if (['.doc', '.docx'].includes(fieldTypes.toLowerCase())) {\n return <SvgIcon icon-class=\"word\" />;\n }\n if (['.pdf'].includes(fieldTypes.toLowerCase())) {\n return <SvgIcon icon-class=\"pdf\" />;\n }\n } catch {}\n return <FileOutlined />;\n };\n }\n});\n","<template>\n <div class=\"attachment-render\" v-if=\"attachmentList.length\">\n <div class=\"file-list\">\n <div class=\"image-preview\">\n <a-image-preview-group>\n <template v-for=\"file in imageList\" :key=\"file.fileCode\">\n <a-image :src=\"file.previewUrl\" class=\"preview-image\" />\n </template>\n </a-image-preview-group>\n </div>\n <template v-for=\"(file, index) in fileList\" :key=\"index\">\n <div class=\"file-item\">\n <FileIcon :file=\"file\" />\n <span class=\"file-name\">{{ file.fileName }}</span>\n <a-button type=\"link\" @click=\"() => handleDownload(file)\">\n <template #icon><DownloadOutlined /></template>\n </a-button>\n <a-button type=\"link\" @click=\"() => handlePreview(file)\">\n <template #icon><EyeOutlined /></template>\n </a-button>\n </div>\n </template>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, ref, onMounted } from 'vue';\n import { Image as AImage, Button as AButton } from 'ant-design-vue';\n import { DownloadOutlined, EyeOutlined } from '@ant-design/icons-vue';\n import { useFilePreview } from '@/hooks';\n import { useFilesystemApi } from '@/api/useFilesystemApi';\n import { IFileObjectType } from '@/types/fileObject';\n import FileIcon from '@/components/svg-icon/FileIcon';\n\n interface Props {\n data: IFileObjectType[];\n }\n\n const props = withDefaults(defineProps<Props>(), {\n data: () => []\n });\n\n const { getPreviewData, handlePreview, handleDownload } = useFilePreview();\n\n const attachmentList = ref<IFileObjectType[]>([]);\n\n const visible = ref(false);\n\n const setVisible = (value: boolean) => {\n visible.value = value;\n };\n\n onMounted(async () => {\n let data = props.data || [];\n if (typeof data === 'string') {\n data = JSON.parse(data);\n }\n if (data?.length === 0) {\n attachmentList.value = [];\n return;\n }\n\n attachmentList.value = await getPreviewData(data);\n });\n\n // 判断是否为图片文件\n const isImageFile = (file: IFileObjectType) => {\n const imageExtensions = ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp'];\n return imageExtensions.some(ext => file.fileType!.toLowerCase().endsWith(ext));\n };\n\n // 文件列表\n const fileList = computed(() => {\n return attachmentList.value.filter(file => !isImageFile(file));\n });\n\n // 图片列表\n const imageList = computed(() => {\n return attachmentList.value.filter(file => isImageFile(file));\n });\n</script>\n\n<style lang=\"less\" scoped>\n .attachment-render {\n display: inline-block;\n width: 100%;\n }\n\n .file-list {\n }\n\n .image-preview {\n display: flex;\n }\n .image-preview {\n --image-size: 60px;\n :deep(.ant-image) {\n border-radius: 5px;\n border: 1px solid #eee;\n margin: 2px;\n height: var(--image-size);\n width: var(--image-size);\n display: flex;\n align-items: center;\n }\n }\n\n :deep(.preview-image) {\n padding: 3px;\n max-width: 100%;\n max-height: 100%;\n object-fit: cover;\n border-radius: 4px;\n }\n\n .file-item {\n display: flex;\n align-items: center;\n padding: 2px;\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n background-color: #fafafa;\n margin-bottom: 4px;\n :deep(.ant-btn-link) {\n padding: 0;\n width: 22px;\n line-height: 22px;\n height: 22px;\n font-size: 12px;\n color: #666;\n &:hover {\n color: #1890ff;\n }\n }\n }\n\n .file-icon {\n font-size: 20px;\n color: #909399;\n margin-right: 8px;\n }\n\n .file-name {\n flex: 1;\n margin-right: 8px;\n overflow: hidden;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n</style>\n"],"names":["DownloadOutlined","_objectSpread","_defineProperty","_createVNode","AntdIcon","DownloadOutlinedSvg","EyeOutlined","EyeOutlinedSvg","FileOutlined","FileOutlinedSvg","decode","decodeComponent","queryString","defineComponent","name","props","file","type","Object","required","setup","fieldTypes","fileType","includes","toLowerCase","SvgIcon"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]}
|