xmirror-components 1.0.2 → 1.0.3

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.
Files changed (53) hide show
  1. package/build/dist/xmirror-components.css +1 -0
  2. package/build/dist/xmirror-components.js +580 -243
  3. package/build/dist/xmirror-components.umd.cjs +15 -11
  4. package/build/es/AntdApp/index.d.ts +12 -0
  5. package/build/es/AntdApp/index.js +14 -0
  6. package/build/es/Button/button.js +9 -4
  7. package/build/es/Button/index.js +7 -2
  8. package/build/es/CheckboxValue/index.d.ts +40 -0
  9. package/build/es/CheckboxValue/index.js +33 -0
  10. package/build/es/ChunkUploader/FileItem.d.ts +13 -0
  11. package/build/es/ChunkUploader/FileItem.js +472 -0
  12. package/build/es/ChunkUploader/UploaderContext.d.ts +8 -0
  13. package/build/es/ChunkUploader/UploaderContext.js +65 -0
  14. package/build/es/ChunkUploader/generateFileUniqueID.d.ts +2 -0
  15. package/build/es/ChunkUploader/generateFileUniqueID.js +140 -0
  16. package/build/es/ChunkUploader/index.d.ts +4 -0
  17. package/build/es/ChunkUploader/index.js +259 -0
  18. package/build/es/GlobalLoading/index.d.ts +11 -0
  19. package/build/es/GlobalLoading/index.js +32 -0
  20. package/build/es/IconButton/index.d.ts +42 -0
  21. package/build/es/IconButton/index.js +51 -0
  22. package/build/es/IconFont/index.d.ts +21 -0
  23. package/build/es/IconFont/index.js +32 -0
  24. package/build/es/LevelGroup/index.d.ts +10 -0
  25. package/build/es/LevelGroup/index.js +33 -0
  26. package/build/es/LevelTag/index.d.ts +21 -0
  27. package/build/es/LevelTag/index.js +84 -0
  28. package/build/es/SearchArea/Item/index.d.ts +13 -0
  29. package/build/es/SearchArea/Item/index.js +38 -0
  30. package/build/es/SearchArea/ToggleButton/index.d.ts +9 -0
  31. package/build/es/SearchArea/ToggleButton/index.js +24 -0
  32. package/build/es/SearchArea/index.d.ts +13 -0
  33. package/build/es/SearchArea/index.js +153 -0
  34. package/build/es/SwitchValue/index.d.ts +30 -0
  35. package/build/es/SwitchValue/index.js +36 -0
  36. package/build/es/Table/Footer/index.d.ts +3 -0
  37. package/build/es/Table/Footer/index.js +82 -0
  38. package/build/es/Table/PopoverSetColumns/index.d.ts +11 -0
  39. package/build/es/Table/PopoverSetColumns/index.js +164 -0
  40. package/build/es/Table/index.d.ts +4 -0
  41. package/build/es/Table/index.js +230 -0
  42. package/build/es/Uploader/index.d.ts +10 -0
  43. package/build/es/Uploader/index.js +175 -0
  44. package/build/es/index.d.ts +5 -1
  45. package/build/es/index.js +5 -1
  46. package/build/lib/AntdApp/index.js +19 -0
  47. package/build/lib/CheckboxValue/index.js +38 -0
  48. package/build/lib/IconButton/index.js +91 -0
  49. package/build/lib/IconFont/index.js +67 -0
  50. package/build/lib/SwitchValue/index.js +41 -0
  51. package/build/lib/index.js +14 -3
  52. package/build/package.json +11 -4
  53. package/package.json +11 -4
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.generateFileUniqueID = void 0;
43
+ exports.getFileMD5 = getFileMD5;
44
+ var spark_md5_1 = __importDefault(require("spark-md5"));
45
+ function getFileMD5(file) {
46
+ return new Promise(function (resolve, reject) {
47
+ var reader = new FileReader();
48
+ var chunkSize = 1024 * 1024; // 以1MB为单位分割文件
49
+ var chunks = Math.ceil(file.size / chunkSize);
50
+ var currentChunk = 0;
51
+ var spark = new spark_md5_1.default.ArrayBuffer();
52
+ reader.onload = function (e) {
53
+ spark.append(e.target.result); // 将分片添加到MD5计算器
54
+ currentChunk++;
55
+ if (currentChunk < chunks) {
56
+ loadNext();
57
+ }
58
+ else {
59
+ var md5 = spark.end();
60
+ resolve(md5);
61
+ }
62
+ };
63
+ reader.onerror = function () {
64
+ reject(new Error('文件读取错误!'));
65
+ };
66
+ function loadNext() {
67
+ var start = currentChunk * chunkSize;
68
+ var end = ((start + chunkSize) >= file.size) ? file.size : start + chunkSize;
69
+ reader.readAsArrayBuffer(file.slice(start, end));
70
+ }
71
+ loadNext();
72
+ });
73
+ }
74
+ // 生成文件的唯一id
75
+ var generateFileUniqueID = function (file) { return __awaiter(void 0, void 0, void 0, function () {
76
+ return __generator(this, function (_a) {
77
+ switch (_a.label) {
78
+ case 0: return [4 /*yield*/, getFileMD5(file)
79
+ // }
80
+ //
81
+ // const size = file.size
82
+ // const hash = new SparkMD5()
83
+ // const sampleCount = 20 // 抽样数量、数值越高。精度越高。但是性能会越低。20个抽样能保证在20毫秒内生成
84
+ // const range = 10 // 样品单个大小
85
+ // const md5Task = []
86
+ // const sliceSize = size / sampleCount
87
+ //
88
+ // hash.append(size.toString())
89
+ //
90
+ // for (let i = 0; i < sampleCount; i++) {
91
+ // if (i === 0) {
92
+ // md5Task.push(getFileMD5(file.slice(0, range)))
93
+ // } else if (i + 1 === sampleCount) {
94
+ // md5Task.push(getFileMD5(file.slice(size - range, size)))
95
+ // } else {
96
+ // md5Task.push(getFileMD5(file.slice(sliceSize * i, sliceSize * i + range)))
97
+ // }
98
+ // }
99
+ //
100
+ // const md5 = await Promise.all(md5Task)
101
+ //
102
+ // hash.append(md5.join(''))
103
+ //
104
+ // return hash.end()
105
+ ];
106
+ case 1:
107
+ // size小于 200kb直接全量生成
108
+ // if (file.size <= 200 * 1024) {
109
+ return [2 /*return*/, _a.sent()
110
+ // }
111
+ //
112
+ // const size = file.size
113
+ // const hash = new SparkMD5()
114
+ // const sampleCount = 20 // 抽样数量、数值越高。精度越高。但是性能会越低。20个抽样能保证在20毫秒内生成
115
+ // const range = 10 // 样品单个大小
116
+ // const md5Task = []
117
+ // const sliceSize = size / sampleCount
118
+ //
119
+ // hash.append(size.toString())
120
+ //
121
+ // for (let i = 0; i < sampleCount; i++) {
122
+ // if (i === 0) {
123
+ // md5Task.push(getFileMD5(file.slice(0, range)))
124
+ // } else if (i + 1 === sampleCount) {
125
+ // md5Task.push(getFileMD5(file.slice(size - range, size)))
126
+ // } else {
127
+ // md5Task.push(getFileMD5(file.slice(sliceSize * i, sliceSize * i + range)))
128
+ // }
129
+ // }
130
+ //
131
+ // const md5 = await Promise.all(md5Task)
132
+ //
133
+ // hash.append(md5.join(''))
134
+ //
135
+ // return hash.end()
136
+ ];
137
+ }
138
+ });
139
+ }); };
140
+ exports.generateFileUniqueID = generateFileUniqueID;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import './index.less';
3
+ declare const _default: React.ForwardRefExoticComponent<Omit<any, "ref"> & React.RefAttributes<unknown>>;
4
+ export default _default;
@@ -0,0 +1,259 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ var __generator = (this && this.__generator) || function (thisArg, body) {
45
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
46
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
47
+ function verb(n) { return function (v) { return step([n, v]); }; }
48
+ function step(op) {
49
+ if (f) throw new TypeError("Generator is already executing.");
50
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
51
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
52
+ if (y = 0, t) op = [op[0] & 2, t.value];
53
+ switch (op[0]) {
54
+ case 0: case 1: t = op; break;
55
+ case 4: _.label++; return { value: op[1], done: false };
56
+ case 5: _.label++; y = op[1]; op = [0]; continue;
57
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
58
+ default:
59
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
60
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
61
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
62
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
63
+ if (t[2]) _.ops.pop();
64
+ _.trys.pop(); continue;
65
+ }
66
+ op = body.call(thisArg, _);
67
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
68
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
69
+ }
70
+ };
71
+ var __rest = (this && this.__rest) || function (s, e) {
72
+ var t = {};
73
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
74
+ t[p] = s[p];
75
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
76
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
77
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
78
+ t[p[i]] = s[p[i]];
79
+ }
80
+ return t;
81
+ };
82
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
83
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
84
+ if (ar || !(i in from)) {
85
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
86
+ ar[i] = from[i];
87
+ }
88
+ }
89
+ return to.concat(ar || Array.prototype.slice.call(from));
90
+ };
91
+ var __importDefault = (this && this.__importDefault) || function (mod) {
92
+ return (mod && mod.__esModule) ? mod : { "default": mod };
93
+ };
94
+ Object.defineProperty(exports, "__esModule", { value: true });
95
+ var react_1 = __importStar(require("react"));
96
+ var react_draggable_1 = __importDefault(require("react-draggable"));
97
+ var icons_1 = require("@ant-design/icons");
98
+ var AntdApp_1 = require("@/components/public/AntdApp");
99
+ var ahooks_1 = require("ahooks");
100
+ var antd_1 = require("antd");
101
+ var FileItem_1 = __importDefault(require("./FileItem"));
102
+ require("./index.less");
103
+ // 生成一个唯一id
104
+ function createId() {
105
+ var date = new Date().valueOf(); // 获取时间戳
106
+ var txt = '1234567890'; // 生成的随机机器码
107
+ var len = 13; // 机器码有多少位
108
+ var pwd = ''; // 定义空变量用来接收机器码
109
+ for (var i = 0; i < len; i++) {
110
+ pwd += txt.charAt(Math.floor(Math.random() * txt.length)); // 循环机器码位数随机填充
111
+ }
112
+ return date + pwd;
113
+ }
114
+ function ChunkUploader(props, ref) {
115
+ var _a = (0, react_1.useState)([]), fileList = _a[0], setFileList = _a[1];
116
+ var fileListRef = (0, ahooks_1.useLatest)(fileList);
117
+ var _b = (0, react_1.useState)(0), uploadingNum = _b[0], setUploadingNum = _b[1];
118
+ /**
119
+ * 声明一个 Map 用来存储所有的 FileItem 的 ref
120
+ * @type {React.MutableRefObject<Map<string, { current }>>}
121
+ */
122
+ var fileItemsRefMap = (0, react_1.useRef)(new Map());
123
+ // 新增上传文件项
124
+ var add = function (file, _a, callback) {
125
+ var uploadSource = _a.uploadSource, params = __rest(_a, ["uploadSource"]);
126
+ setShow(true);
127
+ var key = createId();
128
+ var ref = { current: null };
129
+ var item = (react_1.default.createElement(FileItem_1.default, { file: file, key: key, ref: ref, params: params, uploadSource: uploadSource, retry: retry, callback: callback, remove: function () { return remove(key); }, onChangeStatus: onChangeStatus }));
130
+ fileItemsRefMap.current.set(key, ref);
131
+ setFileList(function (prev) {
132
+ return __spreadArray([item], prev, true);
133
+ });
134
+ };
135
+ // 移除
136
+ var remove = function (key) {
137
+ setFileList(function (value) {
138
+ return value.filter(function (item) {
139
+ return item.key !== key;
140
+ });
141
+ });
142
+ };
143
+ var onChangeStatus = function () {
144
+ var map = fileItemsRefMap.current;
145
+ var count = 0;
146
+ map.forEach(function (fileItem) {
147
+ if ((fileItem === null || fileItem === void 0 ? void 0 : fileItem.current) && fileItem.current.status === 'uploading') {
148
+ count += 1;
149
+ }
150
+ });
151
+ setUploadingNum(count);
152
+ };
153
+ var next = (0, react_1.useCallback)(function () {
154
+ var map = fileItemsRefMap.current;
155
+ var maxUploadingNum = 3;
156
+ var availableNum = maxUploadingNum - uploadingNum;
157
+ if (availableNum > 0) {
158
+ for (var _i = 0, _a = fileListRef.current; _i < _a.length; _i++) {
159
+ var item = _a[_i];
160
+ var key = item.key;
161
+ var ref_1 = map.get(key);
162
+ if ((ref_1 === null || ref_1 === void 0 ? void 0 : ref_1.current) && (ref_1 === null || ref_1 === void 0 ? void 0 : ref_1.current.status) === 'waiting' && availableNum > 0) {
163
+ ref_1.current.start();
164
+ availableNum -= 1;
165
+ }
166
+ if (availableNum === 0)
167
+ return;
168
+ }
169
+ }
170
+ }, [uploadingNum]);
171
+ (0, react_1.useEffect)(function () {
172
+ next();
173
+ }, [uploadingNum, fileList]);
174
+ // 重试
175
+ var retry = function (file, params, callback) {
176
+ add(file, params, callback);
177
+ };
178
+ var draggleRef = (0, react_1.useRef)(null);
179
+ var _c = (0, react_1.useState)({
180
+ left: 0,
181
+ top: 0,
182
+ bottom: 0,
183
+ right: 0
184
+ }), bounds = _c[0], setBounds = _c[1];
185
+ var onStart = function (_event, uiData) {
186
+ var _a;
187
+ var _b = window.document.documentElement, clientWidth = _b.clientWidth, clientHeight = _b.clientHeight;
188
+ var targetRect = (_a = draggleRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
189
+ if (!targetRect) {
190
+ return;
191
+ }
192
+ setBounds({
193
+ left: -targetRect.left + uiData.x,
194
+ right: clientWidth - (targetRect.right - uiData.x),
195
+ top: -targetRect.top + uiData.y,
196
+ bottom: clientHeight - (targetRect.bottom - uiData.y)
197
+ });
198
+ };
199
+ var _d = (0, react_1.useState)(true), collapsed = _d[0], setCollapsed = _d[1];
200
+ var setCollapseFn = function () {
201
+ setCollapsed(function (prev) { return !prev; });
202
+ };
203
+ var _e = (0, react_1.useState)(false), show = _e[0], setShow = _e[1];
204
+ var close = function () {
205
+ if (uploadingNum > 0) {
206
+ AntdApp_1.modal.confirm({
207
+ title: '提示',
208
+ width: 400,
209
+ content: "\u6709".concat(uploadingNum, "\u4E2A\u6587\u4EF6\u6B63\u5728\u4E0A\u4F20\u4E2D\uFF0C\u786E\u5B9A\u5173\u95ED\u5417\uFF1F"),
210
+ type: 'warning',
211
+ onOk: function () {
212
+ return __awaiter(this, void 0, void 0, function () {
213
+ var map;
214
+ return __generator(this, function (_a) {
215
+ map = fileItemsRefMap.current;
216
+ map.forEach(function (fileItem) {
217
+ if (fileItem === null || fileItem === void 0 ? void 0 : fileItem.current) {
218
+ fileItem.current.close();
219
+ }
220
+ });
221
+ setFileList([]);
222
+ setShow(false);
223
+ return [2 /*return*/];
224
+ });
225
+ });
226
+ }
227
+ });
228
+ }
229
+ else {
230
+ setFileList([]);
231
+ setShow(false);
232
+ }
233
+ };
234
+ (0, react_1.useImperativeHandle)(ref, function () {
235
+ return {
236
+ add: add
237
+ };
238
+ }, []);
239
+ return (react_1.default.createElement(react_draggable_1.default, { nodeRef: draggleRef, bounds: bounds, onStart: function (event, uiData) { return onStart(event, uiData); } },
240
+ react_1.default.createElement("div", { style: { display: show ? 'block' : 'none' }, id: "uploader-container", ref: draggleRef },
241
+ react_1.default.createElement(antd_1.Collapse, { collapsible: "disabled", expandIcon: function () { return ''; }, defaultActiveKey: ['1'], activeKey: [collapsed ? '1' : ''], className: "uploader-collapse", ghost: true, items: [
242
+ {
243
+ key: '1',
244
+ label: (react_1.default.createElement("div", { className: "uploader-header-title" },
245
+ react_1.default.createElement("span", { onClick: setCollapseFn },
246
+ "\u5C55\u5F00/\u6536\u8D77",
247
+ react_1.default.createElement(icons_1.DownOutlined, { className: "fold-btn", rotate: collapsed ? 0 : 180 })),
248
+ react_1.default.createElement("span", null,
249
+ uploadingNum,
250
+ "\u4E2A\u6587\u4EF6\u4E0A\u4F20\u4E2D"),
251
+ react_1.default.createElement(icons_1.CloseOutlined, { className: "close-btn", onClick: close }))),
252
+ children: (react_1.default.createElement("ul", null,
253
+ fileList,
254
+ fileList.length === 0 && (react_1.default.createElement("li", { className: "uploader-empty" },
255
+ react_1.default.createElement(antd_1.Empty, { image: antd_1.Empty.PRESENTED_IMAGE_SIMPLE, description: "\u6682\u65E0\u4E0A\u4F20\u4EFB\u52A1" })))))
256
+ }
257
+ ] }))));
258
+ }
259
+ exports.default = (0, react_1.forwardRef)(ChunkUploader);
@@ -0,0 +1,11 @@
1
+ import './index.less';
2
+ /**
3
+ * 设置全局 loading
4
+ */
5
+ declare let setGlobalLoading: (value: boolean) => void;
6
+ /**
7
+ * 全局 loading 组件
8
+ */
9
+ declare function GlobalLoading(): import("react").JSX.Element;
10
+ export { setGlobalLoading };
11
+ export default GlobalLoading;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setGlobalLoading = void 0;
4
+ var react_1 = require("react");
5
+ var antd_1 = require("antd");
6
+ var react_transition_group_1 = require("react-transition-group");
7
+ var site_1 = require("@/store/site");
8
+ var hook_1 = require("@/store/hook");
9
+ require("./index.less");
10
+ /**
11
+ * 设置全局 loading
12
+ */
13
+ var setGlobalLoading = function (value) { };
14
+ exports.setGlobalLoading = setGlobalLoading;
15
+ /**
16
+ * 全局 loading 组件
17
+ */
18
+ function GlobalLoading() {
19
+ var ref = (0, react_1.useRef)(null);
20
+ var loading = (0, hook_1.useAppSelector)(function (state) { return state.site.globalLoading; });
21
+ var dispatch = (0, hook_1.useAppDispatch)();
22
+ (0, react_1.useEffect)(function () {
23
+ exports.setGlobalLoading = setGlobalLoading = function (value) {
24
+ dispatch((0, site_1.setGlobalLoading)(value));
25
+ };
26
+ }, []);
27
+ return (React.createElement(react_transition_group_1.CSSTransition, { in: loading, nodeRef: ref, timeout: 500, classNames: "global-loading-transition", unmountOnExit: true }, function () {
28
+ return (React.createElement("div", { ref: ref, className: "global-loading" },
29
+ React.createElement(antd_1.Spin, { size: "large", spinning: true })));
30
+ }));
31
+ }
32
+ exports.default = GlobalLoading;
@@ -0,0 +1,42 @@
1
+ import React, { type ForwardedRef } from 'react';
2
+ interface IconButtonProps {
3
+ /**
4
+ * 图标
5
+ */
6
+ icon?: React.ReactNode | string;
7
+ /**
8
+ * 是否禁用 tooltip
9
+ */
10
+ tooltipDisabled?: boolean;
11
+ /**
12
+ * 点击事件
13
+ */
14
+ onClick?: (e: React.MouseEvent<HTMLElement>) => void;
15
+ /**
16
+ * 是否禁用
17
+ */
18
+ disabled?: boolean;
19
+ /**
20
+ * 大小
21
+ */
22
+ size?: 'small' | 'middle' | 'large';
23
+ /**
24
+ * 样式
25
+ */
26
+ style?: React.CSSProperties;
27
+ /**
28
+ * 类名
29
+ */
30
+ className?: string;
31
+ /**
32
+ * 是否加载中
33
+ */
34
+ loading?: boolean;
35
+ /**
36
+ * 其他属性
37
+ */
38
+ [key: string]: any;
39
+ }
40
+ export declare const Icon: (props: IconButtonProps, buttonRef: ForwardedRef<any>) => React.JSX.Element;
41
+ declare const _default: React.ForwardRefExoticComponent<Omit<IconButtonProps, "ref"> & React.RefAttributes<any>>;
42
+ export default _default;
@@ -0,0 +1,51 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import React, { Fragment, useRef } from 'react';
24
+ import { Tooltip, Button } from 'antd';
25
+ import { noop, isString } from 'lodash-es';
26
+ import classNames from 'classnames';
27
+ import { useHover } from 'ahooks';
28
+ import IconFont from '@/components/IconFont';
29
+ import styles from './index.module.less';
30
+ export var Icon = function (props, buttonRef) {
31
+ var ref = useRef(null);
32
+ var Icon = props.icon, _a = props.tooltipDisabled, tooltipDisabled = _a === void 0 ? false : _a, _b = props.onClick, onClick = _b === void 0 ? noop : _b, disabled = props.disabled, _c = props.size, size = _c === void 0 ? 'middle' : _c, _d = props.style, style = _d === void 0 ? {} : _d, className = props.className, _e = props.loading, loading = _e === void 0 ? false : _e, attrs = __rest(props, ["icon", "tooltipDisabled", "onClick", "disabled", "size", "style", "className", "loading"]);
33
+ var visible = useHover(ref);
34
+ var createIcon = function () {
35
+ if (isString(Icon) && Icon.includes('icon-')) {
36
+ return React.createElement(IconFont, { type: Icon });
37
+ }
38
+ else {
39
+ return Icon;
40
+ }
41
+ };
42
+ var children = (React.createElement(Button, { onClick: onClick, size: size, disabled: disabled, style: style, ref: buttonRef, loading: loading, className: classNames([className, styles.btn_icon__warp]), icon: createIcon() }));
43
+ if (!Icon) {
44
+ throw new Error('IconButton 组件必须传入 icon 属性');
45
+ }
46
+ return (React.createElement(Fragment, null,
47
+ tooltipDisabled && children,
48
+ !tooltipDisabled && (React.createElement(Tooltip, __assign({ open: visible, trigger: 'contextMenu', destroyTooltipOnHide: true }, attrs),
49
+ React.createElement("span", { ref: ref, style: { display: 'inline-block' }, className: "icon-button-box" }, children)))));
50
+ };
51
+ export default React.forwardRef(Icon);
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ interface IconFontCommonProps {
3
+ /**
4
+ * 图标类型
5
+ */
6
+ type: string;
7
+ /**
8
+ * 类名
9
+ */
10
+ className?: string;
11
+ /**
12
+ * 是否使用 symbol 模式
13
+ */
14
+ symbol?: boolean;
15
+ }
16
+ declare const IconFont: React.ForwardRefExoticComponent<((IconFontCommonProps & React.HTMLAttributes<HTMLElement> & {
17
+ symbol?: false;
18
+ }) | Omit<IconFontCommonProps & React.SVGProps<SVGSVGElement> & {
19
+ symbol: true;
20
+ }, "ref">) & React.RefAttributes<HTMLElement | SVGSVGElement>>;
21
+ export default IconFont;
@@ -0,0 +1,32 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import React, { forwardRef } from 'react';
24
+ var IconFont = forwardRef(function (_a, ref) {
25
+ var _b = _a.type, type = _b === void 0 ? '' : _b, _c = _a.className, className = _c === void 0 ? '' : _c, _d = _a.symbol, symbol = _d === void 0 ? false : _d, attrs = __rest(_a, ["type", "className", "symbol"]);
26
+ if (symbol) {
27
+ return (React.createElement("svg", __assign({ className: "iconfont-symbol ".concat(type, " ").concat(className), "aria-hidden": "true", ref: ref }, attrs),
28
+ React.createElement("use", { xlinkHref: "#".concat(type) })));
29
+ }
30
+ return (React.createElement("i", __assign({ className: "iconfont ".concat(type, " ").concat(className), ref: ref }, attrs)));
31
+ });
32
+ export default IconFont;
@@ -0,0 +1,10 @@
1
+ import { type LevelOptions } from '@/store/static';
2
+ import './index.less';
3
+ interface Props {
4
+ type?: 'vul' | 'component' | 'license';
5
+ values: number[];
6
+ onItemClick?: (item: any, value: number) => void;
7
+ levels?: LevelOptions;
8
+ }
9
+ declare const LevelGroup: ({ type, values, onItemClick, levels }: Props) => import("react").JSX.Element;
10
+ export default LevelGroup;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var antd_1 = require("antd");
7
+ var lodash_es_1 = require("lodash-es");
8
+ var static_1 = require("@/store/static");
9
+ var ahooks_1 = require("ahooks");
10
+ var react_countup_1 = __importDefault(require("react-countup"));
11
+ require("./index.less");
12
+ var LevelGroup = function (_a) {
13
+ var _b = _a.type, type = _b === void 0 ? 'vul' : _b, _c = _a.values, values = _c === void 0 ? [] : _c, _d = _a.onItemClick, onItemClick = _d === void 0 ? lodash_es_1.noop : _d, levels = _a.levels;
14
+ var _levels = levels || static_1.LEVELS;
15
+ switch (type) {
16
+ case 'component':
17
+ _levels = static_1.COMPONENT_LEVELS;
18
+ break;
19
+ case 'license':
20
+ _levels = static_1.LICENSE_LEVELS;
21
+ break;
22
+ }
23
+ var oldValues = (0, ahooks_1.usePrevious)(values) || [0, 0, 0, 0, 0];
24
+ return (React.createElement(antd_1.Space, { className: "level-group", size: 2 }, _levels.map(function (item, index) {
25
+ return (React.createElement(antd_1.Tooltip, { key: item.value, title: React.createElement(React.Fragment, null,
26
+ item.label,
27
+ "\uFF1A",
28
+ values[index] || 0) },
29
+ React.createElement("span", { className: "level-item ".concat((values[index] || 0) > 0 ? item.color : 'default'), onClick: function () { return onItemClick(item, values[index]); } },
30
+ React.createElement(react_countup_1.default, { start: oldValues[index], end: values[index] || 0, duration: 2.5 }))));
31
+ })));
32
+ };
33
+ exports.default = LevelGroup;
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import type { ComponentLevelValue, LevelValue, LicenseLevelValue } from '@/store/static/types.ts';
3
+ interface LevelTagProps {
4
+ level: ComponentLevelValue | LevelValue | LicenseLevelValue;
5
+ type?: 'default' | 'license' | 'component' | 'url' | 'sensitive' | 'crypto' | 'asset';
6
+ children?: React.ReactNode;
7
+ theme?: 'solid';
8
+ [attrs: string]: any;
9
+ }
10
+ /**
11
+ * 等级tag
12
+ * @param level
13
+ * @param type {'default' | 'license' | 'component' | 'sensitive' | 'url'}
14
+ * @param children
15
+ * @param theme
16
+ * @param attrs
17
+ * @returns {JSX.Element}
18
+ * @constructor
19
+ */
20
+ declare const LevelTag: ({ level, type, children, theme, ...attrs }: LevelTagProps) => React.JSX.Element;
21
+ export default LevelTag;