@fctc/interface-logic 1.7.2 → 1.7.4
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/dist/{configs.d.cts → configs.d.mts} +1 -4
- package/dist/configs.d.ts +1 -4
- package/dist/configs.js +146 -124
- package/dist/{configs.cjs → configs.mjs} +111 -161
- package/dist/constants.js +41 -2
- package/dist/{constants.cjs → constants.mjs} +2 -40
- package/dist/environment.d.mts +37 -0
- package/dist/environment.d.ts +35 -54
- package/dist/environment.js +2850 -2906
- package/dist/{environment.cjs → environment.mjs} +2816 -2945
- package/dist/{hooks.d.cts → hooks.d.mts} +7 -2
- package/dist/hooks.d.ts +7 -2
- package/dist/hooks.js +4181 -4520
- package/dist/{hooks.cjs → hooks.mjs} +4081 -4625
- package/dist/{provider.d.cts → provider.d.mts} +1 -1
- package/dist/provider.d.ts +1 -1
- package/dist/provider.js +530 -854
- package/dist/{provider.cjs → provider.mjs} +496 -894
- package/dist/{services.d.cts → services.d.mts} +2 -1
- package/dist/services.d.ts +2 -1
- package/dist/services.js +3866 -4282
- package/dist/{services.cjs → services.mjs} +3826 -4328
- package/dist/{store.d.cts → store.d.mts} +323 -127
- package/dist/store.d.ts +323 -127
- package/dist/store.js +147 -45
- package/dist/{store.cjs → store.mjs} +46 -150
- package/dist/{types.d.cts → types.d.mts} +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.js +18 -0
- package/dist/types.mjs +0 -0
- package/dist/{utils.d.cts → utils.d.mts} +2 -2
- package/dist/utils.d.ts +2 -2
- package/dist/utils.js +176 -135
- package/dist/{utils.cjs → utils.mjs} +115 -202
- package/dist/{view-type-BGJfDe73.d.ts → view-type-D8ukwj_2.d.mts} +1 -1
- package/dist/{view-type-BGJfDe73.d.cts → view-type-D8ukwj_2.d.ts} +1 -1
- package/package.json +81 -82
- package/dist/environment.d.cts +0 -56
- package/dist/types.cjs +0 -17
- /package/dist/{constants.d.cts → constants.d.mts} +0 -0
package/dist/utils.js
CHANGED
|
@@ -1,43 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
1
3
|
var __defProp = Object.defineProperty;
|
|
2
|
-
var
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
3
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
var __spreadValues = (a, b) => {
|
|
8
|
-
for (var prop in b || (b = {}))
|
|
9
|
-
if (__hasOwnProp.call(b, prop))
|
|
10
|
-
__defNormalProp(a, prop, b[prop]);
|
|
11
|
-
if (__getOwnPropSymbols)
|
|
12
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
13
|
-
if (__propIsEnum.call(b, prop))
|
|
14
|
-
__defNormalProp(a, prop, b[prop]);
|
|
15
|
-
}
|
|
16
|
-
return a;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
17
11
|
};
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
var rejected = (value) => {
|
|
28
|
-
try {
|
|
29
|
-
step(generator.throw(value));
|
|
30
|
-
} catch (e) {
|
|
31
|
-
reject(e);
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
35
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
36
|
-
});
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
37
19
|
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/utils.ts
|
|
31
|
+
var utils_exports = {};
|
|
32
|
+
__export(utils_exports, {
|
|
33
|
+
WesapError: () => WesapError,
|
|
34
|
+
checkIsImageLink: () => checkIsImageLink,
|
|
35
|
+
convertFloatToTime: () => convertFloatToTime,
|
|
36
|
+
convertTimeToFloat: () => convertTimeToFloat,
|
|
37
|
+
copyTextToClipboard: () => copyTextToClipboard,
|
|
38
|
+
domainHelper: () => domainHelper,
|
|
39
|
+
evalJSONContext: () => evalJSONContext,
|
|
40
|
+
evalJSONDomain: () => evalJSONDomain,
|
|
41
|
+
filterFieldDirty: () => filterFieldDirty,
|
|
42
|
+
formatCurrency: () => formatCurrency,
|
|
43
|
+
formatDate: () => formatDate,
|
|
44
|
+
formatFileSize: () => formatFileSize,
|
|
45
|
+
formatSortingString: () => formatSortingString,
|
|
46
|
+
formatUrlPath: () => formatUrlPath,
|
|
47
|
+
getFieldsOnChange: () => getFieldsOnChange,
|
|
48
|
+
getOffSet: () => getOffSet,
|
|
49
|
+
getSubdomain: () => getSubdomain,
|
|
50
|
+
handleError: () => handleError,
|
|
51
|
+
isBase64File: () => isBase64File,
|
|
52
|
+
isBase64Image: () => isBase64Image,
|
|
53
|
+
isObjectEmpty: () => isObjectEmpty,
|
|
54
|
+
mergeObjects: () => mergeObjects,
|
|
55
|
+
removeUndefinedFields: () => removeUndefinedFields,
|
|
56
|
+
resequence: () => resequence,
|
|
57
|
+
stringToColor: () => stringToColor,
|
|
58
|
+
toQueryString: () => toQueryString,
|
|
59
|
+
updateTokenParamInOriginalRequest: () => updateTokenParamInOriginalRequest,
|
|
60
|
+
useField: () => useField,
|
|
61
|
+
useTabModel: () => useTabModel,
|
|
62
|
+
validateAndParseDate: () => validateAndParseDate
|
|
63
|
+
});
|
|
64
|
+
module.exports = __toCommonJS(utils_exports);
|
|
38
65
|
|
|
39
66
|
// src/utils/error-handler.ts
|
|
40
67
|
var WesapError = class extends Error {
|
|
68
|
+
code;
|
|
41
69
|
constructor(message, code) {
|
|
42
70
|
super(message);
|
|
43
71
|
this.code = code;
|
|
@@ -52,7 +80,7 @@ function handleError(error, env) {
|
|
|
52
80
|
}
|
|
53
81
|
|
|
54
82
|
// src/utils/format.ts
|
|
55
|
-
|
|
83
|
+
var import_moment = __toESM(require("moment"));
|
|
56
84
|
var formatCurrency = (amount, currency = "USD") => {
|
|
57
85
|
const formatter = new Intl.NumberFormat("vi-VN", {
|
|
58
86
|
style: "currency",
|
|
@@ -69,13 +97,13 @@ var validateAndParseDate = (input, isDateTime = false) => {
|
|
|
69
97
|
const cleanInput = input.replace(/[^0-9-\/:\s]/g, "");
|
|
70
98
|
const dateFormat = "YYYY-MM-DD";
|
|
71
99
|
const dateTimeFormat = "YYYY-MM-DD HH:mm:ss";
|
|
72
|
-
const currentDay =
|
|
73
|
-
const currentMonth =
|
|
74
|
-
const currentYear =
|
|
100
|
+
const currentDay = (0, import_moment.default)().format("DD");
|
|
101
|
+
const currentMonth = (0, import_moment.default)().format("MM");
|
|
102
|
+
const currentYear = (0, import_moment.default)().format("YYYY");
|
|
75
103
|
const defaultTime = "00:00:00";
|
|
76
104
|
const maxYear = parseInt(currentYear) + 10;
|
|
77
105
|
const isValidDate = (day, month, year) => {
|
|
78
|
-
const date =
|
|
106
|
+
const date = (0, import_moment.default)(`${day}-${month}-${year}`, "DD-MM-YYYY", true);
|
|
79
107
|
return date.isValid();
|
|
80
108
|
};
|
|
81
109
|
const isValidTime = (hour, minute = "00", second = "00") => {
|
|
@@ -85,7 +113,7 @@ var validateAndParseDate = (input, isDateTime = false) => {
|
|
|
85
113
|
return h >= 0 && h <= 23 && m >= 0 && m <= 59 && s >= 0 && s <= 59;
|
|
86
114
|
};
|
|
87
115
|
const formatOutput = (day, month, year, time = defaultTime) => {
|
|
88
|
-
let result =
|
|
116
|
+
let result = (0, import_moment.default)(
|
|
89
117
|
`${day}-${month}-${year} ${time}`,
|
|
90
118
|
"DD-MM-YYYY HH:mm:ss"
|
|
91
119
|
);
|
|
@@ -109,7 +137,7 @@ var validateAndParseDate = (input, isDateTime = false) => {
|
|
|
109
137
|
const minute = timeParts[1] ? timeParts[1].padStart(2, "0") : "00";
|
|
110
138
|
const second = timeParts[2] ? timeParts[2].padStart(2, "0") : "00";
|
|
111
139
|
if (isValidDate(day, month, year) && isValidTime(hour, minute, second)) {
|
|
112
|
-
let result =
|
|
140
|
+
let result = (0, import_moment.default)(
|
|
113
141
|
`${day}-${month}-${year} ${hour}:${minute}:${second}`,
|
|
114
142
|
"DD-MM-YYYY HH:mm:ss"
|
|
115
143
|
);
|
|
@@ -172,7 +200,7 @@ var validateAndParseDate = (input, isDateTime = false) => {
|
|
|
172
200
|
}
|
|
173
201
|
if (cleanInput.startsWith("-") && /^\-\d+$/.test(cleanInput)) {
|
|
174
202
|
const daysToSubtract = Math.abs(parseInt(cleanInput, 10));
|
|
175
|
-
let result =
|
|
203
|
+
let result = (0, import_moment.default)().subtract(daysToSubtract, "days");
|
|
176
204
|
if (isDateTime) {
|
|
177
205
|
result = result.subtract(7, "hours");
|
|
178
206
|
}
|
|
@@ -199,7 +227,7 @@ var validateAndParseDate = (input, isDateTime = false) => {
|
|
|
199
227
|
const year = cleanInput.slice(4, 8);
|
|
200
228
|
const hour = cleanInput.slice(8, 9).padStart(2, "0");
|
|
201
229
|
if (isValidDate(day, month, year) && isValidTime(hour)) {
|
|
202
|
-
let result =
|
|
230
|
+
let result = (0, import_moment.default)(
|
|
203
231
|
`${day}-${month}-${year} ${hour}:00:00`,
|
|
204
232
|
"DD-MM-YYYY HH:mm:ss"
|
|
205
233
|
);
|
|
@@ -215,7 +243,7 @@ var validateAndParseDate = (input, isDateTime = false) => {
|
|
|
215
243
|
const year = cleanInput.slice(4, 8);
|
|
216
244
|
const hour = cleanInput.slice(8, 10);
|
|
217
245
|
if (isValidDate(day, month, year) && isValidTime(hour)) {
|
|
218
|
-
let result =
|
|
246
|
+
let result = (0, import_moment.default)(
|
|
219
247
|
`${day}-${month}-${year} ${hour}:00:00`,
|
|
220
248
|
"DD-MM-YYYY HH:mm:ss"
|
|
221
249
|
);
|
|
@@ -232,7 +260,7 @@ var validateAndParseDate = (input, isDateTime = false) => {
|
|
|
232
260
|
const hour = cleanInput.slice(8, 10);
|
|
233
261
|
const minute = cleanInput.slice(10, 11).padStart(2, "0");
|
|
234
262
|
if (isValidDate(day, month, year) && isValidTime(hour, minute)) {
|
|
235
|
-
let result =
|
|
263
|
+
let result = (0, import_moment.default)(
|
|
236
264
|
`${day}-${month}-${year} ${hour}:${minute}:00`,
|
|
237
265
|
"DD-MM-YYYY HH:mm:ss"
|
|
238
266
|
);
|
|
@@ -249,7 +277,7 @@ var validateAndParseDate = (input, isDateTime = false) => {
|
|
|
249
277
|
const hour = cleanInput.slice(8, 10);
|
|
250
278
|
const minute = cleanInput.slice(10, 12);
|
|
251
279
|
if (isValidDate(day, month, year) && isValidTime(hour, minute)) {
|
|
252
|
-
let result =
|
|
280
|
+
let result = (0, import_moment.default)(
|
|
253
281
|
`${day}-${month}-${year} ${hour}:${minute}:00`,
|
|
254
282
|
"DD-MM-YYYY HH:mm:ss"
|
|
255
283
|
);
|
|
@@ -267,7 +295,7 @@ var validateAndParseDate = (input, isDateTime = false) => {
|
|
|
267
295
|
const minute = cleanInput.slice(10, 12);
|
|
268
296
|
const second = cleanInput.slice(12, 13).padStart(2, "0");
|
|
269
297
|
if (isValidDate(day, month, year) && isValidTime(hour, minute, second)) {
|
|
270
|
-
let result =
|
|
298
|
+
let result = (0, import_moment.default)(
|
|
271
299
|
`${day}-${month}-${year} ${hour}:${minute}:${second}`,
|
|
272
300
|
"DD-MM-YYYY HH:mm:ss"
|
|
273
301
|
);
|
|
@@ -285,7 +313,7 @@ var validateAndParseDate = (input, isDateTime = false) => {
|
|
|
285
313
|
const minute = cleanInput.slice(10, 12);
|
|
286
314
|
const second = cleanInput.slice(12, 14);
|
|
287
315
|
if (isValidDate(day, month, year) && isValidTime(hour, minute, second)) {
|
|
288
|
-
let result =
|
|
316
|
+
let result = (0, import_moment.default)(
|
|
289
317
|
`${day}-${month}-${year} ${hour}:${minute}:${second}`,
|
|
290
318
|
"DD-MM-YYYY HH:mm:ss"
|
|
291
319
|
);
|
|
@@ -1424,6 +1452,22 @@ var PyRelativeDelta = class _PyRelativeDelta {
|
|
|
1424
1452
|
this.microsecond = params.microsecond;
|
|
1425
1453
|
this.weekday = params.weekday;
|
|
1426
1454
|
}
|
|
1455
|
+
years;
|
|
1456
|
+
months;
|
|
1457
|
+
days;
|
|
1458
|
+
hours;
|
|
1459
|
+
minutes;
|
|
1460
|
+
seconds;
|
|
1461
|
+
microseconds;
|
|
1462
|
+
leapDays;
|
|
1463
|
+
year;
|
|
1464
|
+
month;
|
|
1465
|
+
day;
|
|
1466
|
+
hour;
|
|
1467
|
+
minute;
|
|
1468
|
+
second;
|
|
1469
|
+
microsecond;
|
|
1470
|
+
weekday;
|
|
1427
1471
|
negate() {
|
|
1428
1472
|
return new _PyRelativeDelta(this, -1);
|
|
1429
1473
|
}
|
|
@@ -1538,7 +1582,7 @@ function execOnIterable(iterable, func) {
|
|
|
1538
1582
|
if (typeof iterable === "object" && !Array.isArray(iterable) && !(iterable instanceof Set)) {
|
|
1539
1583
|
iterable = Object.keys(iterable);
|
|
1540
1584
|
}
|
|
1541
|
-
if (typeof
|
|
1585
|
+
if (typeof iterable?.[Symbol.iterator] !== "function") {
|
|
1542
1586
|
throw new EvaluationError("value not iterable");
|
|
1543
1587
|
}
|
|
1544
1588
|
return func(iterable);
|
|
@@ -1861,7 +1905,7 @@ function applyBinaryOp(ast, context) {
|
|
|
1861
1905
|
}
|
|
1862
1906
|
return Math.floor(left / right);
|
|
1863
1907
|
case "**":
|
|
1864
|
-
return
|
|
1908
|
+
return left ** right;
|
|
1865
1909
|
case "==":
|
|
1866
1910
|
return isEqual(left, right);
|
|
1867
1911
|
case "<>":
|
|
@@ -1983,7 +2027,7 @@ function evaluate(ast, context = {}) {
|
|
|
1983
2027
|
const dicts = /* @__PURE__ */ new Set();
|
|
1984
2028
|
let pyContext;
|
|
1985
2029
|
const evalContext = Object.create(context);
|
|
1986
|
-
if (!
|
|
2030
|
+
if (!evalContext?.context) {
|
|
1987
2031
|
Object.defineProperty(evalContext, "context", {
|
|
1988
2032
|
get() {
|
|
1989
2033
|
if (!pyContext) {
|
|
@@ -1994,18 +2038,17 @@ function evaluate(ast, context = {}) {
|
|
|
1994
2038
|
});
|
|
1995
2039
|
}
|
|
1996
2040
|
function _innerEvaluate(ast2) {
|
|
1997
|
-
|
|
1998
|
-
switch (ast2 == null ? void 0 : ast2.type) {
|
|
2041
|
+
switch (ast2?.type) {
|
|
1999
2042
|
case 0:
|
|
2000
2043
|
// Number
|
|
2001
2044
|
case 1:
|
|
2002
2045
|
return ast2.value;
|
|
2003
2046
|
case 5:
|
|
2004
2047
|
if (ast2.value in evalContext) {
|
|
2005
|
-
if (typeof evalContext[ast2.value] === "object" &&
|
|
2006
|
-
return
|
|
2048
|
+
if (typeof evalContext[ast2.value] === "object" && evalContext[ast2.value]?.id) {
|
|
2049
|
+
return evalContext[ast2.value]?.id;
|
|
2007
2050
|
}
|
|
2008
|
-
return
|
|
2051
|
+
return evalContext[ast2.value] ?? false;
|
|
2009
2052
|
} else if (ast2.value in BUILTINS) {
|
|
2010
2053
|
return BUILTINS[ast2.value];
|
|
2011
2054
|
} else {
|
|
@@ -2042,7 +2085,7 @@ function evaluate(ast, context = {}) {
|
|
|
2042
2085
|
const args = ast2.args.map(_evaluate);
|
|
2043
2086
|
const kwargs = {};
|
|
2044
2087
|
for (const kwarg in ast2.kwargs) {
|
|
2045
|
-
kwargs[kwarg] = _evaluate(ast2
|
|
2088
|
+
kwargs[kwarg] = _evaluate(ast2?.kwargs[kwarg]);
|
|
2046
2089
|
}
|
|
2047
2090
|
if (fnValue === PyDate || fnValue === PyDateTime || fnValue === PyTime || fnValue === PyRelativeDelta || fnValue === PyTimeDelta) {
|
|
2048
2091
|
return fnValue.create(...args, kwargs);
|
|
@@ -2135,7 +2178,7 @@ function evalPartialContext(_context, evaluationContext = {}) {
|
|
|
2135
2178
|
const value = ast.value[key];
|
|
2136
2179
|
try {
|
|
2137
2180
|
context[key] = evaluate(value, evaluationContext);
|
|
2138
|
-
} catch
|
|
2181
|
+
} catch {
|
|
2139
2182
|
}
|
|
2140
2183
|
}
|
|
2141
2184
|
return context;
|
|
@@ -2163,25 +2206,9 @@ function escapeRegExp(str) {
|
|
|
2163
2206
|
var InvalidDomainError = class extends Error {
|
|
2164
2207
|
};
|
|
2165
2208
|
var Domain = class _Domain {
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
return new _Domain(descr.toString());
|
|
2170
|
-
} else {
|
|
2171
|
-
let rawAST;
|
|
2172
|
-
try {
|
|
2173
|
-
rawAST = typeof descr === "string" ? parseExpr(descr) : toAST(descr);
|
|
2174
|
-
} catch (error) {
|
|
2175
|
-
throw new InvalidDomainError(
|
|
2176
|
-
`Invalid domain representation: ${descr}`,
|
|
2177
|
-
{
|
|
2178
|
-
cause: error
|
|
2179
|
-
}
|
|
2180
|
-
);
|
|
2181
|
-
}
|
|
2182
|
-
this.ast = normalizeDomainAST(rawAST);
|
|
2183
|
-
}
|
|
2184
|
-
}
|
|
2209
|
+
ast = { type: -1, value: null };
|
|
2210
|
+
static TRUE;
|
|
2211
|
+
static FALSE;
|
|
2185
2212
|
static combine(domains, operator) {
|
|
2186
2213
|
if (domains.length === 0) {
|
|
2187
2214
|
return new _Domain([]);
|
|
@@ -2260,6 +2287,24 @@ var Domain = class _Domain {
|
|
|
2260
2287
|
processLeaf(d.ast.value, 0, "&", newDomain);
|
|
2261
2288
|
return newDomain;
|
|
2262
2289
|
}
|
|
2290
|
+
constructor(descr = []) {
|
|
2291
|
+
if (descr instanceof _Domain) {
|
|
2292
|
+
return new _Domain(descr.toString());
|
|
2293
|
+
} else {
|
|
2294
|
+
let rawAST;
|
|
2295
|
+
try {
|
|
2296
|
+
rawAST = typeof descr === "string" ? parseExpr(descr) : toAST(descr);
|
|
2297
|
+
} catch (error) {
|
|
2298
|
+
throw new InvalidDomainError(
|
|
2299
|
+
`Invalid domain representation: ${descr}`,
|
|
2300
|
+
{
|
|
2301
|
+
cause: error
|
|
2302
|
+
}
|
|
2303
|
+
);
|
|
2304
|
+
}
|
|
2305
|
+
this.ast = normalizeDomainAST(rawAST);
|
|
2306
|
+
}
|
|
2307
|
+
}
|
|
2263
2308
|
contains(record) {
|
|
2264
2309
|
const expr = evaluate(this.ast, record);
|
|
2265
2310
|
return matchDomain(record, expr);
|
|
@@ -2278,7 +2323,7 @@ var Domain = class _Domain {
|
|
|
2278
2323
|
return evaluatedAsList;
|
|
2279
2324
|
}
|
|
2280
2325
|
return this.toString();
|
|
2281
|
-
} catch
|
|
2326
|
+
} catch {
|
|
2282
2327
|
return this.toString();
|
|
2283
2328
|
}
|
|
2284
2329
|
}
|
|
@@ -2502,7 +2547,7 @@ var checkDomain = (context, domain) => {
|
|
|
2502
2547
|
};
|
|
2503
2548
|
var matchDomains = (context, domains) => {
|
|
2504
2549
|
if (Array.isArray(domains)) {
|
|
2505
|
-
if (
|
|
2550
|
+
if (domains?.length > 0) {
|
|
2506
2551
|
return domains && domains.some((domain) => checkDomain(context, domain));
|
|
2507
2552
|
}
|
|
2508
2553
|
} else return checkDomain(context, domains);
|
|
@@ -2510,7 +2555,7 @@ var matchDomains = (context, domains) => {
|
|
|
2510
2555
|
};
|
|
2511
2556
|
|
|
2512
2557
|
// src/utils/function.ts
|
|
2513
|
-
|
|
2558
|
+
var import_react = require("react");
|
|
2514
2559
|
var evalJSONContext = (_context, context = {}) => {
|
|
2515
2560
|
try {
|
|
2516
2561
|
return evalPartialContext(_context, context);
|
|
@@ -2519,17 +2564,15 @@ var evalJSONContext = (_context, context = {}) => {
|
|
|
2519
2564
|
}
|
|
2520
2565
|
};
|
|
2521
2566
|
var evalJSONDomain = (domain, context) => {
|
|
2522
|
-
var _a;
|
|
2523
2567
|
try {
|
|
2524
2568
|
if (context) {
|
|
2525
|
-
|
|
2526
|
-
var _a2, _b;
|
|
2569
|
+
Object.keys(context)?.forEach((key) => {
|
|
2527
2570
|
if (Array.isArray(context[key])) {
|
|
2528
|
-
const isTypeObject =
|
|
2529
|
-
(item) => typeof item === "object" && item !== null &&
|
|
2571
|
+
const isTypeObject = context[key]?.every(
|
|
2572
|
+
(item) => typeof item === "object" && item !== null && item?.id !== void 0
|
|
2530
2573
|
);
|
|
2531
2574
|
if (isTypeObject) {
|
|
2532
|
-
context[key] =
|
|
2575
|
+
context[key] = context[key]?.map((item) => item?.id);
|
|
2533
2576
|
}
|
|
2534
2577
|
}
|
|
2535
2578
|
});
|
|
@@ -2549,7 +2592,7 @@ var formatSortingString = (input) => {
|
|
|
2549
2592
|
if (!input) return null;
|
|
2550
2593
|
return input.split(",").map((field) => {
|
|
2551
2594
|
const [key, order] = field.trim().split(/\s+/);
|
|
2552
|
-
const sortOrder =
|
|
2595
|
+
const sortOrder = order?.toUpperCase() === "DESC" ? "DESC" : "ASC";
|
|
2553
2596
|
return `${key} ${sortOrder}`;
|
|
2554
2597
|
}).join(", ");
|
|
2555
2598
|
};
|
|
@@ -2593,11 +2636,11 @@ var getFieldsOnChange = (fields) => {
|
|
|
2593
2636
|
function traverse(items) {
|
|
2594
2637
|
for (const item of items) {
|
|
2595
2638
|
if (item) {
|
|
2596
|
-
if (
|
|
2639
|
+
if (item?.type_co === "field" && matchDomains(fields, item?.on_change)) {
|
|
2597
2640
|
result.push(item.name);
|
|
2598
2641
|
}
|
|
2599
|
-
if (
|
|
2600
|
-
traverse(item
|
|
2642
|
+
if (item?.fields && Array.isArray(item?.fields)) {
|
|
2643
|
+
traverse(item?.fields);
|
|
2601
2644
|
}
|
|
2602
2645
|
}
|
|
2603
2646
|
}
|
|
@@ -2613,42 +2656,39 @@ var filterFieldDirty = ({
|
|
|
2613
2656
|
model,
|
|
2614
2657
|
defaultData
|
|
2615
2658
|
}) => {
|
|
2616
|
-
|
|
2617
|
-
const data = id ? __spreadValues({}, dirtyFields) : __spreadValues({}, formValues);
|
|
2659
|
+
const data = id ? { ...dirtyFields } : { ...formValues };
|
|
2618
2660
|
for (const key in data) {
|
|
2619
|
-
if (
|
|
2661
|
+
if (viewData?.models?.[model]?.[key]?.type === "one2many" /* ONE2MANY */) {
|
|
2620
2662
|
const lineData = [];
|
|
2621
|
-
(
|
|
2622
|
-
|
|
2623
|
-
|
|
2624
|
-
itemData == null ? true : delete itemData.id;
|
|
2663
|
+
(formValues[key] ?? []).forEach((itemData, index) => {
|
|
2664
|
+
if (typeof itemData?.id === "string" && itemData?.id.includes("virtual")) {
|
|
2665
|
+
delete itemData?.id;
|
|
2625
2666
|
}
|
|
2626
|
-
if (!
|
|
2667
|
+
if (!itemData?.id) {
|
|
2627
2668
|
lineData.push([
|
|
2628
2669
|
0 /* CREATE */,
|
|
2629
2670
|
`virtual_${index}`,
|
|
2630
2671
|
filterFieldDirty({
|
|
2631
|
-
id: itemData
|
|
2672
|
+
id: itemData?.id,
|
|
2632
2673
|
viewData,
|
|
2633
2674
|
formValues: itemData,
|
|
2634
2675
|
dirtyFields: {},
|
|
2635
|
-
model:
|
|
2676
|
+
model: viewData?.models?.[model]?.[key]?.relation,
|
|
2636
2677
|
defaultData
|
|
2637
2678
|
})
|
|
2638
2679
|
]);
|
|
2639
|
-
} else if (
|
|
2680
|
+
} else if (dirtyFields[key]?.length) {
|
|
2640
2681
|
dirtyFields[key].forEach((itemDirty, indexDirty) => {
|
|
2641
|
-
var _a3, _b3, _c3;
|
|
2642
2682
|
if (Object.values(itemDirty).includes(true) && indexDirty === index) {
|
|
2643
2683
|
lineData.push([
|
|
2644
2684
|
1 /* UPDATE */,
|
|
2645
|
-
itemData
|
|
2685
|
+
itemData?.id,
|
|
2646
2686
|
filterFieldDirty({
|
|
2647
|
-
id: itemData
|
|
2687
|
+
id: itemData?.id,
|
|
2648
2688
|
viewData,
|
|
2649
2689
|
formValues: itemData,
|
|
2650
2690
|
dirtyFields: itemDirty,
|
|
2651
|
-
model:
|
|
2691
|
+
model: viewData?.models?.[model]?.[key]?.relation,
|
|
2652
2692
|
defaultData: {}
|
|
2653
2693
|
})
|
|
2654
2694
|
]);
|
|
@@ -2656,39 +2696,37 @@ var filterFieldDirty = ({
|
|
|
2656
2696
|
});
|
|
2657
2697
|
}
|
|
2658
2698
|
});
|
|
2659
|
-
(
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
(itemData) => (itemData == null ? void 0 : itemData.id) === (item == null ? void 0 : item.id)
|
|
2699
|
+
(defaultData[key] ?? []).forEach((item) => {
|
|
2700
|
+
if (!(formValues[key] ?? []).find(
|
|
2701
|
+
(itemData) => itemData?.id === item?.id
|
|
2663
2702
|
)) {
|
|
2664
|
-
lineData.push([2 /* DELETE */, item
|
|
2703
|
+
lineData.push([2 /* DELETE */, item?.id, item]);
|
|
2665
2704
|
}
|
|
2666
2705
|
});
|
|
2667
2706
|
data[key] = lineData;
|
|
2668
|
-
} else if (
|
|
2707
|
+
} else if (viewData?.models?.[model]?.[key]?.type === "many2many" /* MANY2MANY */) {
|
|
2669
2708
|
const lineData = [];
|
|
2670
2709
|
(formValues[key] || []).forEach((itemData) => {
|
|
2671
|
-
if (itemData
|
|
2672
|
-
lineData.push([4 /* NO_CHANGE */, itemData
|
|
2710
|
+
if (itemData?.id) {
|
|
2711
|
+
lineData.push([4 /* NO_CHANGE */, itemData?.id]);
|
|
2673
2712
|
}
|
|
2674
2713
|
});
|
|
2675
|
-
(
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
(itemData) => (itemData == null ? void 0 : itemData.id) === (item == null ? void 0 : item.id)
|
|
2714
|
+
(defaultData[key] ?? []).forEach((item) => {
|
|
2715
|
+
if (!(formValues[key] ?? []).find(
|
|
2716
|
+
(itemData) => itemData?.id === item?.id
|
|
2679
2717
|
)) {
|
|
2680
|
-
lineData.push([3 /* UNLINK */, item
|
|
2718
|
+
lineData.push([3 /* UNLINK */, item?.id]);
|
|
2681
2719
|
}
|
|
2682
2720
|
});
|
|
2683
2721
|
data[key] = lineData;
|
|
2684
2722
|
} else {
|
|
2685
|
-
if (id && (typeof
|
|
2723
|
+
if (id && (typeof dirtyFields?.[key] === "object" && !dirtyFields?.[key]?.id || typeof dirtyFields[key] !== "object" && !dirtyFields[key])) {
|
|
2686
2724
|
delete data[key];
|
|
2687
2725
|
} else {
|
|
2688
2726
|
if (!data[key]) {
|
|
2689
2727
|
delete data[key];
|
|
2690
2728
|
} else {
|
|
2691
|
-
data[key] =
|
|
2729
|
+
data[key] = formValues?.[key]?.display_name ? formValues?.[key]?.id : formValues?.[key];
|
|
2692
2730
|
}
|
|
2693
2731
|
}
|
|
2694
2732
|
}
|
|
@@ -2697,12 +2735,15 @@ var filterFieldDirty = ({
|
|
|
2697
2735
|
};
|
|
2698
2736
|
var mergeObjects = (object1, object2) => {
|
|
2699
2737
|
if (!object1 || !object2) return void 0;
|
|
2700
|
-
const mergedObject =
|
|
2738
|
+
const mergedObject = { ...object2 };
|
|
2701
2739
|
Object.keys(object1).forEach((key) => {
|
|
2702
2740
|
if (Array.isArray(object1[key]) && Array.isArray(object2[key])) {
|
|
2703
2741
|
mergedObject[key] = object2[key].map((item, index) => {
|
|
2704
2742
|
if (object1[key][index]) {
|
|
2705
|
-
return
|
|
2743
|
+
return {
|
|
2744
|
+
...item,
|
|
2745
|
+
...object1[key][index]
|
|
2746
|
+
};
|
|
2706
2747
|
}
|
|
2707
2748
|
return item;
|
|
2708
2749
|
});
|
|
@@ -2744,15 +2785,14 @@ var removeUndefinedFields = (obj) => {
|
|
|
2744
2785
|
return newObj;
|
|
2745
2786
|
};
|
|
2746
2787
|
var useTabModel = (viewData, onchangeData) => {
|
|
2747
|
-
|
|
2748
|
-
const tabsData = ((_c = (_b = (_a = viewData == null ? void 0 : viewData.views) == null ? void 0 : _a.form) == null ? void 0 : _b.tabs) == null ? void 0 : _c.filter((val) => {
|
|
2788
|
+
const tabsData = viewData?.views?.form?.tabs?.filter((val) => {
|
|
2749
2789
|
if (!val) return null;
|
|
2750
2790
|
const hide = checkDomain(onchangeData, val.invisible);
|
|
2751
2791
|
if (!hide) {
|
|
2752
2792
|
return val;
|
|
2753
2793
|
}
|
|
2754
2794
|
return false;
|
|
2755
|
-
})
|
|
2795
|
+
}) || [];
|
|
2756
2796
|
return tabsData;
|
|
2757
2797
|
};
|
|
2758
2798
|
var isBase64File = (str) => {
|
|
@@ -2793,7 +2833,7 @@ var formatFileSize = (size) => {
|
|
|
2793
2833
|
return `${(size / Math.pow(1024, i)).toFixed(2)} ${sizes[i]}`;
|
|
2794
2834
|
};
|
|
2795
2835
|
var getSubdomain = (url = window.location.href) => {
|
|
2796
|
-
const parts = url
|
|
2836
|
+
const parts = url?.split(".");
|
|
2797
2837
|
if (parts.length > 2) {
|
|
2798
2838
|
return parts[0].replace("https://", "").replace("http://", "");
|
|
2799
2839
|
}
|
|
@@ -2816,9 +2856,9 @@ var getOffSet = (arr, start, end) => {
|
|
|
2816
2856
|
}
|
|
2817
2857
|
return arr.slice(0, start).length;
|
|
2818
2858
|
};
|
|
2819
|
-
var copyTextToClipboard = (text) =>
|
|
2859
|
+
var copyTextToClipboard = async (text) => {
|
|
2820
2860
|
if ("clipboard" in navigator) {
|
|
2821
|
-
return
|
|
2861
|
+
return await navigator.clipboard.writeText(text);
|
|
2822
2862
|
} else {
|
|
2823
2863
|
const textArea = document.createElement("textarea");
|
|
2824
2864
|
textArea.value = text;
|
|
@@ -2832,7 +2872,7 @@ var copyTextToClipboard = (text) => __async(null, null, function* () {
|
|
|
2832
2872
|
document.body.removeChild(textArea);
|
|
2833
2873
|
}
|
|
2834
2874
|
}
|
|
2835
|
-
}
|
|
2875
|
+
};
|
|
2836
2876
|
var updateTokenParamInOriginalRequest = (originalRequest, newAccessToken) => {
|
|
2837
2877
|
if (!originalRequest.data) return originalRequest.data;
|
|
2838
2878
|
if (typeof originalRequest.data === "string") {
|
|
@@ -2856,9 +2896,9 @@ var isObjectEmpty = (obj) => {
|
|
|
2856
2896
|
return Object.keys(obj).length === 0;
|
|
2857
2897
|
};
|
|
2858
2898
|
var useField = (props) => {
|
|
2859
|
-
const [invisible, setInvisible] = useState(true);
|
|
2860
|
-
const [required, setRequired] = useState(false);
|
|
2861
|
-
const [readonly, setReadOnly] = useState(false);
|
|
2899
|
+
const [invisible, setInvisible] = (0, import_react.useState)(true);
|
|
2900
|
+
const [required, setRequired] = (0, import_react.useState)(false);
|
|
2901
|
+
const [readonly, setReadOnly] = (0, import_react.useState)(false);
|
|
2862
2902
|
const {
|
|
2863
2903
|
invisible: inv,
|
|
2864
2904
|
required: req,
|
|
@@ -2868,8 +2908,8 @@ var useField = (props) => {
|
|
|
2868
2908
|
index,
|
|
2869
2909
|
name
|
|
2870
2910
|
} = props;
|
|
2871
|
-
const nameField = rootField ? `${rootField
|
|
2872
|
-
useEffect(() => {
|
|
2911
|
+
const nameField = rootField ? `${rootField?.name}.${index}.${name}` : null;
|
|
2912
|
+
(0, import_react.useEffect)(() => {
|
|
2873
2913
|
if (onchangeData && Object.keys(onchangeData).length > 0) {
|
|
2874
2914
|
setRequired(
|
|
2875
2915
|
typeof req === "object" ? matchDomains(onchangeData, req) : checkDomain(onchangeData, req)
|
|
@@ -2887,7 +2927,8 @@ var useField = (props) => {
|
|
|
2887
2927
|
nameField
|
|
2888
2928
|
};
|
|
2889
2929
|
};
|
|
2890
|
-
export
|
|
2930
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
2931
|
+
0 && (module.exports = {
|
|
2891
2932
|
WesapError,
|
|
2892
2933
|
checkIsImageLink,
|
|
2893
2934
|
convertFloatToTime,
|
|
@@ -2918,4 +2959,4 @@ export {
|
|
|
2918
2959
|
useField,
|
|
2919
2960
|
useTabModel,
|
|
2920
2961
|
validateAndParseDate
|
|
2921
|
-
};
|
|
2962
|
+
});
|