@ibiz-template/core 0.6.0 → 0.6.1-dev.2

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 (85) hide show
  1. package/package.json +4 -6
  2. package/src/command/command-register.ts +0 -135
  3. package/src/command/command.ts +0 -79
  4. package/src/command/index.ts +0 -11
  5. package/src/command/interface/command/command-option.ts +0 -22
  6. package/src/command/interface/command/command.ts +0 -86
  7. package/src/command/interface/disposable/disposable.ts +0 -3
  8. package/src/command/interface/index.ts +0 -9
  9. package/src/command/utils/index.ts +0 -2
  10. package/src/command/utils/linked-list.ts +0 -136
  11. package/src/command/utils/util.ts +0 -95
  12. package/src/constant/core/core.ts +0 -63
  13. package/src/constant/http-status-message/http-status-message.ts +0 -20
  14. package/src/constant/index.ts +0 -5
  15. package/src/constant/login-mode/login-mode.ts +0 -23
  16. package/src/constant/menu-permission-mode/menu-permission-mode.ts +0 -23
  17. package/src/constant/util/util.ts +0 -5
  18. package/src/context/index.ts +0 -231
  19. package/src/environment/environment.ts +0 -39
  20. package/src/error/http-error/http-error.ts +0 -45
  21. package/src/error/index.ts +0 -5
  22. package/src/error/model-error/model-error.ts +0 -26
  23. package/src/error/notice-error/notice-error.ts +0 -19
  24. package/src/error/runtime-error/runtime-error.ts +0 -16
  25. package/src/error/runtime-model-error/runtime-model-error.ts +0 -27
  26. package/src/ibizsys.ts +0 -78
  27. package/src/index.ts +0 -14
  28. package/src/install.ts +0 -15
  29. package/src/interface/click-outside/click-outside.ts +0 -71
  30. package/src/interface/i-18n/i-18n.ts +0 -68
  31. package/src/interface/i-chat-message/i-chat-message.ts +0 -83
  32. package/src/interface/i-devtool-config/i-devtool-config.ts +0 -16
  33. package/src/interface/i-environment/i-environment.ts +0 -289
  34. package/src/interface/i-internal-message/i-internal-message.ts +0 -151
  35. package/src/interface/i-mark-open-data/i-mark-open-data.ts +0 -39
  36. package/src/interface/i-portal-async-action/i-portal-async-action.ts +0 -177
  37. package/src/interface/i-portal-message/i-portal-message.ts +0 -84
  38. package/src/interface/index.ts +0 -14
  39. package/src/interface/org-data/org-data.ts +0 -42
  40. package/src/params/params.ts +0 -134
  41. package/src/types.ts +0 -110
  42. package/src/utils/bit-mask/bit-mask.ts +0 -85
  43. package/src/utils/click-outside/click-outside.ts +0 -110
  44. package/src/utils/clone/clone.ts +0 -43
  45. package/src/utils/color/color.ts +0 -84
  46. package/src/utils/data-type/data-types.ts +0 -99
  47. package/src/utils/download-file/download-file.ts +0 -109
  48. package/src/utils/event/event.ts +0 -77
  49. package/src/utils/history-list/history-item.ts +0 -45
  50. package/src/utils/history-list/history-list.ts +0 -151
  51. package/src/utils/index.ts +0 -24
  52. package/src/utils/interceptor/core-interceptor.ts +0 -40
  53. package/src/utils/interceptor/index.ts +0 -2
  54. package/src/utils/interceptor/interceptor.ts +0 -126
  55. package/src/utils/logger/logger.ts +0 -10
  56. package/src/utils/message-center/base/message-all.ts +0 -12
  57. package/src/utils/message-center/base/message-base.ts +0 -86
  58. package/src/utils/message-center/command/async-action/command-async-action.ts +0 -24
  59. package/src/utils/message-center/command/change/command-change.ts +0 -12
  60. package/src/utils/message-center/command/command-base/command-base.ts +0 -30
  61. package/src/utils/message-center/command/create/command-create.ts +0 -24
  62. package/src/utils/message-center/command/internal-message/command-internal-message.ts +0 -24
  63. package/src/utils/message-center/command/mark-open-data/command-mark-open-data.ts +0 -24
  64. package/src/utils/message-center/command/message-command.ts +0 -158
  65. package/src/utils/message-center/command/remove/command-remove.ts +0 -24
  66. package/src/utils/message-center/command/update/command-update.ts +0 -24
  67. package/src/utils/message-center/console/message-console.ts +0 -31
  68. package/src/utils/message-center/index.ts +0 -1
  69. package/src/utils/message-center/interface/i-app-data-entity.ts +0 -19
  70. package/src/utils/message-center/interface/index.ts +0 -1
  71. package/src/utils/message-center/message-center.ts +0 -82
  72. package/src/utils/namespace/namespace.ts +0 -247
  73. package/src/utils/net/http-response.ts +0 -106
  74. package/src/utils/net/net.ts +0 -469
  75. package/src/utils/recursive/find-recursive-child.ts +0 -133
  76. package/src/utils/string-util/string-util.ts +0 -60
  77. package/src/utils/style/remote-style.ts +0 -20
  78. package/src/utils/sync/await-timeout.ts +0 -27
  79. package/src/utils/sync/count-latch.ts +0 -95
  80. package/src/utils/sync/index.ts +0 -2
  81. package/src/utils/types/types.ts +0 -22
  82. package/src/utils/upload/select-file.ts +0 -86
  83. package/src/utils/upload/upload-file.ts +0 -208
  84. package/src/utils/url-helper/url-helper.ts +0 -63
  85. package/src/utils/util/util.ts +0 -376
@@ -1,376 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { debounce } from 'lodash-es';
3
- import { getCookie } from 'qx-util';
4
- import { isNotNil, isNil } from 'ramda';
5
- import { CoreConst } from '../../constant';
6
-
7
- /**
8
- * 获取认证令牌
9
- *
10
- * @author chitanda
11
- * @date 2022-07-20 18:07:39
12
- * @export
13
- * @return {*} {(string | null)}
14
- */
15
- export function getToken(): string | null {
16
- return getCookie(CoreConst.TOKEN);
17
- }
18
-
19
- /**
20
- * 判断两个数组是否有相同的元素
21
- *
22
- * @author lxm
23
- * @date 2022-09-20 19:09:29
24
- * @export
25
- * @param {any[]} arr1
26
- * @param {any[]} arr2
27
- * @returns {*} {boolean}
28
- */
29
- export function isOverlap(arr1: any[], arr2: any[]): boolean {
30
- const newArr = Array.from(new Set([...arr1, ...arr2]));
31
- return newArr.length !== arr1.length + arr2.length;
32
- }
33
-
34
- /**
35
- * 是否元素相同
36
- * @author lxm
37
- * @date 2023-05-22 12:50:53
38
- * @export
39
- * @param {any[]} arr1
40
- * @param {any[]} arr2
41
- * @param {string} [field] 比较元素里的某个固定属性
42
- * @return {*} {boolean}
43
- */
44
- export function isElementSame(
45
- arr1: any[],
46
- arr2: any[],
47
- field?: string,
48
- ): boolean {
49
- if (arr1.length !== arr2.length) {
50
- return false;
51
- }
52
- const allElements = field
53
- ? [...arr1.map(item => item[field]), ...arr2.map(item => item[field])]
54
- : [...arr1, ...arr2];
55
-
56
- const newArr = Array.from(new Set(allElements));
57
- return newArr.length === arr1.length;
58
- }
59
-
60
- /**
61
- * 防抖并合并每次的参数,
62
- * 最后一次才会执行
63
- *
64
- * @author lxm
65
- * @date 2022-09-20 21:09:53
66
- * @export
67
- * @template T
68
- * @param {T} func 要防抖的函数
69
- * @param {(
70
- * oldParams: Parameters<T>,
71
- * newParams: Parameters<T>,
72
- * ) => Parameters<T>} mergeFunc 合并的回调函数
73
- * @param {number} [wait] 防抖的延迟毫秒数
74
- * @returns {*}
75
- */
76
- export function debounceAndMerge<T extends (...args: any[]) => any>(
77
- func: T,
78
- mergeFunc: (
79
- oldParams: Parameters<T>,
80
- newParams: Parameters<T>,
81
- ) => Parameters<T>,
82
- wait?: number,
83
- ): (...args: Parameters<T>) => any {
84
- // 缓存上一次的函数参数
85
- let oldParams: Parameters<T> | undefined;
86
- const debounceFunc = debounce((...params: Parameters<T>) => {
87
- // 防抖函数执行的时候清空缓存参数
88
- oldParams = undefined;
89
- return func(...params);
90
- }, wait);
91
- return (...args: Parameters<T>) => {
92
- // 合并参数,并把参数缓存到oldParams里,用新参数调用防抖函数
93
- let newParams = args;
94
- if (oldParams) {
95
- newParams = mergeFunc(oldParams, newParams);
96
- }
97
- oldParams = newParams;
98
- return debounceFunc(...newParams);
99
- };
100
- }
101
-
102
- /**
103
- * 防抖并合并每次的参数,最后一次才会执行
104
- * 绑定方法为异步方法,给每次调用返回最终执行那次的结果
105
- *
106
- * @author lxm
107
- * @date 2022-09-20 21:09:53
108
- * @export
109
- * @template T
110
- * @param {T} func 要防抖的函数
111
- * @param {(
112
- * oldParams: Parameters<T>,
113
- * newParams: Parameters<T>,
114
- * ) => Parameters<T>} mergeFunc 合并的回调函数
115
- * @param {number} [wait] 防抖的延迟毫秒数
116
- * @returns {*}
117
- */
118
- export function debounceAndAsyncMerge<
119
- T extends (...args: any[]) => Promise<any>,
120
- >(
121
- func: T,
122
- mergeFunc: (
123
- oldParams: Parameters<T>,
124
- newParams: Parameters<T>,
125
- ) => Parameters<T>,
126
- wait?: number,
127
- ): T {
128
- // 缓存上一次的函数参数
129
- let oldParams: Parameters<T> | undefined;
130
- let promises: Array<{ resolve: any; reject: any }> = [];
131
- const debounceFunc = debounce(async (...params: Parameters<T>) => {
132
- // 防抖函数执行的时候清空缓存参数
133
- oldParams = undefined;
134
- try {
135
- const result = await func(...params);
136
- promises.forEach(promise => {
137
- promise.resolve(result);
138
- });
139
- promises = [];
140
- return result;
141
- } catch (error) {
142
- promises.forEach(promise => {
143
- promise.reject(error);
144
- });
145
- promises = [];
146
- }
147
- }, wait);
148
- const fun = async (...args: Parameters<T>): Promise<unknown> => {
149
- // 合并参数,并把参数缓存到oldParams里,用新参数调用防抖函数
150
- let newParams = args;
151
- if (oldParams) {
152
- newParams = mergeFunc(oldParams, newParams);
153
- }
154
- oldParams = newParams;
155
- // 执行防抖函数
156
- debounceFunc(...newParams);
157
- return new Promise((resolve, reject) => {
158
- // 阻塞当前调用,当防抖函数被执行后返回
159
- promises.push({ resolve, reject });
160
- });
161
- };
162
- return fun as T;
163
- }
164
-
165
- /**
166
- * 把右侧的对象里非空的属性合并到左侧对象里
167
- * @author lxm
168
- * @date 2023-05-16 02:23:39
169
- * @param {IData} l
170
- * @param {IData} r
171
- */
172
- export function mergeInLeft(l: IData, r: IData): void {
173
- Object.keys(r).forEach(key => {
174
- if (isNotNil(r[key])) {
175
- l[key] = r[key];
176
- }
177
- });
178
- }
179
-
180
- /**
181
- * 把右侧的对象里非空的属性合并到左侧对象属性为空里
182
- *
183
- * @author zk
184
- * @date 2023-06-01 02:06:36
185
- * @export
186
- * @param {IData} l
187
- * @param {IData} r
188
- */
189
- export function mergeDefaultInLeft(l: IData, r: IData): void {
190
- Object.keys(r).forEach(key => {
191
- if (isNotNil(r[key]) && isNil(l[key])) {
192
- l[key] = r[key];
193
- }
194
- });
195
- }
196
-
197
- /**
198
- * 比较两个数组集合,找出相同和不同的元素
199
- * @author lxm
200
- * @date 2023-05-29 12:33:55
201
- * @export
202
- * @param {IData[]} arr1 数组一
203
- * @param {IData[]} arr2 数组二
204
- * @param {string} [keyField] 主键属性,有主键比较主键
205
- * @return {*} {{
206
- * more: IData[]; arr1多的元素
207
- * less: IData[]; arr1少的元素
208
- * same: IData[]; 相同的元素
209
- * }}
210
- */
211
- export function compareArr(
212
- arr1: IData[],
213
- arr2: IData[],
214
- keyField?: string,
215
- ): {
216
- more: IData[];
217
- less: IData[];
218
- same: IData[];
219
- } {
220
- const all = new Set([...arr1, ...arr2]);
221
- const more: IData[] = [];
222
- const less: IData[] = [];
223
- const same: IData[] = [];
224
-
225
- if (keyField) {
226
- const arr1Keys = arr1.map(item => item[keyField]);
227
- const arr2Keys = arr2.map(item => item[keyField]);
228
- all.forEach(item => {
229
- if (!arr1Keys.includes(item[keyField])) {
230
- less.push(item);
231
- return;
232
- }
233
- if (!arr2Keys.includes(item[keyField])) {
234
- more.push(item);
235
- return;
236
- }
237
- same.push(item);
238
- });
239
- } else {
240
- all.forEach(item => {
241
- if (!arr1.includes(item)) {
242
- less.push(item);
243
- return;
244
- }
245
- if (!arr2.includes(item)) {
246
- more.push(item);
247
- return;
248
- }
249
- same.push(item);
250
- });
251
- }
252
-
253
- return {
254
- more,
255
- less,
256
- same,
257
- };
258
- }
259
-
260
- /**
261
- * 转换为数字或undefined
262
- * - 如果是undefined或null 返回undefined
263
- * - 其他情况转成数字,能转成数字的返回数字,NaN的返回undefined
264
- * @author lxm
265
- * @date 2023-06-08 06:30:57
266
- * @param {unknown} value 值
267
- * @return {*} {(number | undefined)}
268
- */
269
- export function toNumberOrNil(value: unknown): number | undefined {
270
- if (isNil(value)) {
271
- return undefined;
272
- }
273
- const num = Number(value);
274
- if (Number.isNaN(num)) {
275
- return undefined;
276
- }
277
- return num;
278
- }
279
-
280
- const SvgPattern = /<svg\b[^>]*>[\s\S]*?<\/svg>/;
281
-
282
- /**
283
- * 判断字符串是否是svg的格式
284
- * @author lxm
285
- * @date 2023-10-17 02:04:28
286
- * @export
287
- * @param {string} str
288
- * @return {*} {boolean}
289
- */
290
- export function isSvg(str: string): boolean {
291
- return SvgPattern.test(str);
292
- }
293
-
294
- /**
295
- * 处理浮点数相加
296
- * @param {number} a
297
- * @param {number} b
298
- * @return {*}
299
- * @author: zhujiamin
300
- * @Date: 2023-11-08 17:04:09
301
- */
302
- export function plus(a: number, b: number): number {
303
- let c;
304
- let d;
305
- try {
306
- c = a.toString().split('.')[1].length;
307
- } catch (f) {
308
- c = 0;
309
- }
310
- try {
311
- d = b.toString().split('.')[1].length;
312
- } catch (f) {
313
- d = 0;
314
- }
315
- const e = 10 ** Math.max(c, d);
316
- return (a * e + b * e) / e;
317
- }
318
-
319
- /**
320
- * 根据给定的属性名称集合,
321
- * 查看目标对象是否具有该属性,如果没有设置undefined的定义
322
- * @author lxm
323
- * @date 2023-12-20 05:21:47
324
- * @export
325
- * @param {IParams} target 目标对象
326
- * @param {s(string | symbol)[]} keys 需要支持的属性名称集合
327
- */
328
- export function updateKeyDefine(
329
- target: IParams,
330
- keys: (string | symbol)[],
331
- ): void {
332
- keys.forEach(key => {
333
- if (!Object.prototype.hasOwnProperty.call(target, key)) {
334
- Object.defineProperty(target, key, {
335
- enumerable: true,
336
- configurable: true,
337
- writable: true,
338
- value: undefined,
339
- });
340
- }
341
- });
342
- }
343
-
344
- /**
345
- * 判断字符串是否为Base64图片格式
346
- * @param {string} str
347
- * @return {*}
348
- * @author: zhujiamin
349
- * @Date: 2023-12-28 10:49:23
350
- */
351
- export function isBase64Image(str: string): boolean {
352
- // 使用正则表达式检查字符串是否以"data:image/"开头,后面紧跟着base64编码
353
- return /^data:image\/[a-zA-Z+]+;base64,([/+=\w\s]+|[^,]+)$/.test(str);
354
- }
355
-
356
- /**
357
- * 计算各种视图打开方式的样式
358
- * @param {number} value
359
- * @return {*}
360
- * @author: zhujiamin
361
- * @Date: 2024-01-30 09:39:03
362
- */
363
- export function calcOpenModeStyle(
364
- value: number,
365
- type: 'drawer' | 'modal' | 'popover',
366
- ): string | number {
367
- if (value >= 0 && value <= 100) {
368
- return `${value}%`;
369
- }
370
- if (value > 100) {
371
- return type === 'drawer' ? value : `${value}px`;
372
- }
373
- // 处理其他情况,例如负值等
374
- ibiz.log.error('无效输入值,必须>=0');
375
- return '';
376
- }