@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
|
@@ -1,104 +1,6 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
-
var __pow = Math.pow;
|
|
10
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
11
|
-
var __spreadValues = (a, b) => {
|
|
12
|
-
for (var prop in b || (b = {}))
|
|
13
|
-
if (__hasOwnProp.call(b, prop))
|
|
14
|
-
__defNormalProp(a, prop, b[prop]);
|
|
15
|
-
if (__getOwnPropSymbols)
|
|
16
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
17
|
-
if (__propIsEnum.call(b, prop))
|
|
18
|
-
__defNormalProp(a, prop, b[prop]);
|
|
19
|
-
}
|
|
20
|
-
return a;
|
|
21
|
-
};
|
|
22
|
-
var __export = (target, all) => {
|
|
23
|
-
for (var name in all)
|
|
24
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
25
|
-
};
|
|
26
|
-
var __copyProps = (to, from, except, desc) => {
|
|
27
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
28
|
-
for (let key of __getOwnPropNames(from))
|
|
29
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
30
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
31
|
-
}
|
|
32
|
-
return to;
|
|
33
|
-
};
|
|
34
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
35
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
36
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
37
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
38
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
39
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
40
|
-
mod
|
|
41
|
-
));
|
|
42
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
43
|
-
var __async = (__this, __arguments, generator) => {
|
|
44
|
-
return new Promise((resolve, reject) => {
|
|
45
|
-
var fulfilled = (value) => {
|
|
46
|
-
try {
|
|
47
|
-
step(generator.next(value));
|
|
48
|
-
} catch (e) {
|
|
49
|
-
reject(e);
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
var rejected = (value) => {
|
|
53
|
-
try {
|
|
54
|
-
step(generator.throw(value));
|
|
55
|
-
} catch (e) {
|
|
56
|
-
reject(e);
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
60
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
61
|
-
});
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
// src/utils.ts
|
|
65
|
-
var utils_exports = {};
|
|
66
|
-
__export(utils_exports, {
|
|
67
|
-
WesapError: () => WesapError,
|
|
68
|
-
checkIsImageLink: () => checkIsImageLink,
|
|
69
|
-
convertFloatToTime: () => convertFloatToTime,
|
|
70
|
-
convertTimeToFloat: () => convertTimeToFloat,
|
|
71
|
-
copyTextToClipboard: () => copyTextToClipboard,
|
|
72
|
-
domainHelper: () => domainHelper,
|
|
73
|
-
evalJSONContext: () => evalJSONContext,
|
|
74
|
-
evalJSONDomain: () => evalJSONDomain,
|
|
75
|
-
filterFieldDirty: () => filterFieldDirty,
|
|
76
|
-
formatCurrency: () => formatCurrency,
|
|
77
|
-
formatDate: () => formatDate,
|
|
78
|
-
formatFileSize: () => formatFileSize,
|
|
79
|
-
formatSortingString: () => formatSortingString,
|
|
80
|
-
formatUrlPath: () => formatUrlPath,
|
|
81
|
-
getFieldsOnChange: () => getFieldsOnChange,
|
|
82
|
-
getOffSet: () => getOffSet,
|
|
83
|
-
getSubdomain: () => getSubdomain,
|
|
84
|
-
handleError: () => handleError,
|
|
85
|
-
isBase64File: () => isBase64File,
|
|
86
|
-
isBase64Image: () => isBase64Image,
|
|
87
|
-
isObjectEmpty: () => isObjectEmpty,
|
|
88
|
-
mergeObjects: () => mergeObjects,
|
|
89
|
-
removeUndefinedFields: () => removeUndefinedFields,
|
|
90
|
-
resequence: () => resequence,
|
|
91
|
-
stringToColor: () => stringToColor,
|
|
92
|
-
toQueryString: () => toQueryString,
|
|
93
|
-
updateTokenParamInOriginalRequest: () => updateTokenParamInOriginalRequest,
|
|
94
|
-
useField: () => useField,
|
|
95
|
-
useTabModel: () => useTabModel,
|
|
96
|
-
validateAndParseDate: () => validateAndParseDate
|
|
97
|
-
});
|
|
98
|
-
module.exports = __toCommonJS(utils_exports);
|
|
99
|
-
|
|
100
1
|
// src/utils/error-handler.ts
|
|
101
2
|
var WesapError = class extends Error {
|
|
3
|
+
code;
|
|
102
4
|
constructor(message, code) {
|
|
103
5
|
super(message);
|
|
104
6
|
this.code = code;
|
|
@@ -113,7 +15,7 @@ function handleError(error, env) {
|
|
|
113
15
|
}
|
|
114
16
|
|
|
115
17
|
// src/utils/format.ts
|
|
116
|
-
|
|
18
|
+
import moment from "moment";
|
|
117
19
|
var formatCurrency = (amount, currency = "USD") => {
|
|
118
20
|
const formatter = new Intl.NumberFormat("vi-VN", {
|
|
119
21
|
style: "currency",
|
|
@@ -130,13 +32,13 @@ var validateAndParseDate = (input, isDateTime = false) => {
|
|
|
130
32
|
const cleanInput = input.replace(/[^0-9-\/:\s]/g, "");
|
|
131
33
|
const dateFormat = "YYYY-MM-DD";
|
|
132
34
|
const dateTimeFormat = "YYYY-MM-DD HH:mm:ss";
|
|
133
|
-
const currentDay = (
|
|
134
|
-
const currentMonth = (
|
|
135
|
-
const currentYear = (
|
|
35
|
+
const currentDay = moment().format("DD");
|
|
36
|
+
const currentMonth = moment().format("MM");
|
|
37
|
+
const currentYear = moment().format("YYYY");
|
|
136
38
|
const defaultTime = "00:00:00";
|
|
137
39
|
const maxYear = parseInt(currentYear) + 10;
|
|
138
40
|
const isValidDate = (day, month, year) => {
|
|
139
|
-
const date = (
|
|
41
|
+
const date = moment(`${day}-${month}-${year}`, "DD-MM-YYYY", true);
|
|
140
42
|
return date.isValid();
|
|
141
43
|
};
|
|
142
44
|
const isValidTime = (hour, minute = "00", second = "00") => {
|
|
@@ -146,7 +48,7 @@ var validateAndParseDate = (input, isDateTime = false) => {
|
|
|
146
48
|
return h >= 0 && h <= 23 && m >= 0 && m <= 59 && s >= 0 && s <= 59;
|
|
147
49
|
};
|
|
148
50
|
const formatOutput = (day, month, year, time = defaultTime) => {
|
|
149
|
-
let result = (
|
|
51
|
+
let result = moment(
|
|
150
52
|
`${day}-${month}-${year} ${time}`,
|
|
151
53
|
"DD-MM-YYYY HH:mm:ss"
|
|
152
54
|
);
|
|
@@ -170,7 +72,7 @@ var validateAndParseDate = (input, isDateTime = false) => {
|
|
|
170
72
|
const minute = timeParts[1] ? timeParts[1].padStart(2, "0") : "00";
|
|
171
73
|
const second = timeParts[2] ? timeParts[2].padStart(2, "0") : "00";
|
|
172
74
|
if (isValidDate(day, month, year) && isValidTime(hour, minute, second)) {
|
|
173
|
-
let result = (
|
|
75
|
+
let result = moment(
|
|
174
76
|
`${day}-${month}-${year} ${hour}:${minute}:${second}`,
|
|
175
77
|
"DD-MM-YYYY HH:mm:ss"
|
|
176
78
|
);
|
|
@@ -233,7 +135,7 @@ var validateAndParseDate = (input, isDateTime = false) => {
|
|
|
233
135
|
}
|
|
234
136
|
if (cleanInput.startsWith("-") && /^\-\d+$/.test(cleanInput)) {
|
|
235
137
|
const daysToSubtract = Math.abs(parseInt(cleanInput, 10));
|
|
236
|
-
let result = (
|
|
138
|
+
let result = moment().subtract(daysToSubtract, "days");
|
|
237
139
|
if (isDateTime) {
|
|
238
140
|
result = result.subtract(7, "hours");
|
|
239
141
|
}
|
|
@@ -260,7 +162,7 @@ var validateAndParseDate = (input, isDateTime = false) => {
|
|
|
260
162
|
const year = cleanInput.slice(4, 8);
|
|
261
163
|
const hour = cleanInput.slice(8, 9).padStart(2, "0");
|
|
262
164
|
if (isValidDate(day, month, year) && isValidTime(hour)) {
|
|
263
|
-
let result = (
|
|
165
|
+
let result = moment(
|
|
264
166
|
`${day}-${month}-${year} ${hour}:00:00`,
|
|
265
167
|
"DD-MM-YYYY HH:mm:ss"
|
|
266
168
|
);
|
|
@@ -276,7 +178,7 @@ var validateAndParseDate = (input, isDateTime = false) => {
|
|
|
276
178
|
const year = cleanInput.slice(4, 8);
|
|
277
179
|
const hour = cleanInput.slice(8, 10);
|
|
278
180
|
if (isValidDate(day, month, year) && isValidTime(hour)) {
|
|
279
|
-
let result = (
|
|
181
|
+
let result = moment(
|
|
280
182
|
`${day}-${month}-${year} ${hour}:00:00`,
|
|
281
183
|
"DD-MM-YYYY HH:mm:ss"
|
|
282
184
|
);
|
|
@@ -293,7 +195,7 @@ var validateAndParseDate = (input, isDateTime = false) => {
|
|
|
293
195
|
const hour = cleanInput.slice(8, 10);
|
|
294
196
|
const minute = cleanInput.slice(10, 11).padStart(2, "0");
|
|
295
197
|
if (isValidDate(day, month, year) && isValidTime(hour, minute)) {
|
|
296
|
-
let result = (
|
|
198
|
+
let result = moment(
|
|
297
199
|
`${day}-${month}-${year} ${hour}:${minute}:00`,
|
|
298
200
|
"DD-MM-YYYY HH:mm:ss"
|
|
299
201
|
);
|
|
@@ -310,7 +212,7 @@ var validateAndParseDate = (input, isDateTime = false) => {
|
|
|
310
212
|
const hour = cleanInput.slice(8, 10);
|
|
311
213
|
const minute = cleanInput.slice(10, 12);
|
|
312
214
|
if (isValidDate(day, month, year) && isValidTime(hour, minute)) {
|
|
313
|
-
let result = (
|
|
215
|
+
let result = moment(
|
|
314
216
|
`${day}-${month}-${year} ${hour}:${minute}:00`,
|
|
315
217
|
"DD-MM-YYYY HH:mm:ss"
|
|
316
218
|
);
|
|
@@ -328,7 +230,7 @@ var validateAndParseDate = (input, isDateTime = false) => {
|
|
|
328
230
|
const minute = cleanInput.slice(10, 12);
|
|
329
231
|
const second = cleanInput.slice(12, 13).padStart(2, "0");
|
|
330
232
|
if (isValidDate(day, month, year) && isValidTime(hour, minute, second)) {
|
|
331
|
-
let result = (
|
|
233
|
+
let result = moment(
|
|
332
234
|
`${day}-${month}-${year} ${hour}:${minute}:${second}`,
|
|
333
235
|
"DD-MM-YYYY HH:mm:ss"
|
|
334
236
|
);
|
|
@@ -346,7 +248,7 @@ var validateAndParseDate = (input, isDateTime = false) => {
|
|
|
346
248
|
const minute = cleanInput.slice(10, 12);
|
|
347
249
|
const second = cleanInput.slice(12, 14);
|
|
348
250
|
if (isValidDate(day, month, year) && isValidTime(hour, minute, second)) {
|
|
349
|
-
let result = (
|
|
251
|
+
let result = moment(
|
|
350
252
|
`${day}-${month}-${year} ${hour}:${minute}:${second}`,
|
|
351
253
|
"DD-MM-YYYY HH:mm:ss"
|
|
352
254
|
);
|
|
@@ -1485,6 +1387,22 @@ var PyRelativeDelta = class _PyRelativeDelta {
|
|
|
1485
1387
|
this.microsecond = params.microsecond;
|
|
1486
1388
|
this.weekday = params.weekday;
|
|
1487
1389
|
}
|
|
1390
|
+
years;
|
|
1391
|
+
months;
|
|
1392
|
+
days;
|
|
1393
|
+
hours;
|
|
1394
|
+
minutes;
|
|
1395
|
+
seconds;
|
|
1396
|
+
microseconds;
|
|
1397
|
+
leapDays;
|
|
1398
|
+
year;
|
|
1399
|
+
month;
|
|
1400
|
+
day;
|
|
1401
|
+
hour;
|
|
1402
|
+
minute;
|
|
1403
|
+
second;
|
|
1404
|
+
microsecond;
|
|
1405
|
+
weekday;
|
|
1488
1406
|
negate() {
|
|
1489
1407
|
return new _PyRelativeDelta(this, -1);
|
|
1490
1408
|
}
|
|
@@ -1599,7 +1517,7 @@ function execOnIterable(iterable, func) {
|
|
|
1599
1517
|
if (typeof iterable === "object" && !Array.isArray(iterable) && !(iterable instanceof Set)) {
|
|
1600
1518
|
iterable = Object.keys(iterable);
|
|
1601
1519
|
}
|
|
1602
|
-
if (typeof
|
|
1520
|
+
if (typeof iterable?.[Symbol.iterator] !== "function") {
|
|
1603
1521
|
throw new EvaluationError("value not iterable");
|
|
1604
1522
|
}
|
|
1605
1523
|
return func(iterable);
|
|
@@ -1922,7 +1840,7 @@ function applyBinaryOp(ast, context) {
|
|
|
1922
1840
|
}
|
|
1923
1841
|
return Math.floor(left / right);
|
|
1924
1842
|
case "**":
|
|
1925
|
-
return
|
|
1843
|
+
return left ** right;
|
|
1926
1844
|
case "==":
|
|
1927
1845
|
return isEqual(left, right);
|
|
1928
1846
|
case "<>":
|
|
@@ -2044,7 +1962,7 @@ function evaluate(ast, context = {}) {
|
|
|
2044
1962
|
const dicts = /* @__PURE__ */ new Set();
|
|
2045
1963
|
let pyContext;
|
|
2046
1964
|
const evalContext = Object.create(context);
|
|
2047
|
-
if (!
|
|
1965
|
+
if (!evalContext?.context) {
|
|
2048
1966
|
Object.defineProperty(evalContext, "context", {
|
|
2049
1967
|
get() {
|
|
2050
1968
|
if (!pyContext) {
|
|
@@ -2055,18 +1973,17 @@ function evaluate(ast, context = {}) {
|
|
|
2055
1973
|
});
|
|
2056
1974
|
}
|
|
2057
1975
|
function _innerEvaluate(ast2) {
|
|
2058
|
-
|
|
2059
|
-
switch (ast2 == null ? void 0 : ast2.type) {
|
|
1976
|
+
switch (ast2?.type) {
|
|
2060
1977
|
case 0:
|
|
2061
1978
|
// Number
|
|
2062
1979
|
case 1:
|
|
2063
1980
|
return ast2.value;
|
|
2064
1981
|
case 5:
|
|
2065
1982
|
if (ast2.value in evalContext) {
|
|
2066
|
-
if (typeof evalContext[ast2.value] === "object" &&
|
|
2067
|
-
return
|
|
1983
|
+
if (typeof evalContext[ast2.value] === "object" && evalContext[ast2.value]?.id) {
|
|
1984
|
+
return evalContext[ast2.value]?.id;
|
|
2068
1985
|
}
|
|
2069
|
-
return
|
|
1986
|
+
return evalContext[ast2.value] ?? false;
|
|
2070
1987
|
} else if (ast2.value in BUILTINS) {
|
|
2071
1988
|
return BUILTINS[ast2.value];
|
|
2072
1989
|
} else {
|
|
@@ -2103,7 +2020,7 @@ function evaluate(ast, context = {}) {
|
|
|
2103
2020
|
const args = ast2.args.map(_evaluate);
|
|
2104
2021
|
const kwargs = {};
|
|
2105
2022
|
for (const kwarg in ast2.kwargs) {
|
|
2106
|
-
kwargs[kwarg] = _evaluate(ast2
|
|
2023
|
+
kwargs[kwarg] = _evaluate(ast2?.kwargs[kwarg]);
|
|
2107
2024
|
}
|
|
2108
2025
|
if (fnValue === PyDate || fnValue === PyDateTime || fnValue === PyTime || fnValue === PyRelativeDelta || fnValue === PyTimeDelta) {
|
|
2109
2026
|
return fnValue.create(...args, kwargs);
|
|
@@ -2196,7 +2113,7 @@ function evalPartialContext(_context, evaluationContext = {}) {
|
|
|
2196
2113
|
const value = ast.value[key];
|
|
2197
2114
|
try {
|
|
2198
2115
|
context[key] = evaluate(value, evaluationContext);
|
|
2199
|
-
} catch
|
|
2116
|
+
} catch {
|
|
2200
2117
|
}
|
|
2201
2118
|
}
|
|
2202
2119
|
return context;
|
|
@@ -2224,25 +2141,9 @@ function escapeRegExp(str) {
|
|
|
2224
2141
|
var InvalidDomainError = class extends Error {
|
|
2225
2142
|
};
|
|
2226
2143
|
var Domain = class _Domain {
|
|
2227
|
-
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
return new _Domain(descr.toString());
|
|
2231
|
-
} else {
|
|
2232
|
-
let rawAST;
|
|
2233
|
-
try {
|
|
2234
|
-
rawAST = typeof descr === "string" ? parseExpr(descr) : toAST(descr);
|
|
2235
|
-
} catch (error) {
|
|
2236
|
-
throw new InvalidDomainError(
|
|
2237
|
-
`Invalid domain representation: ${descr}`,
|
|
2238
|
-
{
|
|
2239
|
-
cause: error
|
|
2240
|
-
}
|
|
2241
|
-
);
|
|
2242
|
-
}
|
|
2243
|
-
this.ast = normalizeDomainAST(rawAST);
|
|
2244
|
-
}
|
|
2245
|
-
}
|
|
2144
|
+
ast = { type: -1, value: null };
|
|
2145
|
+
static TRUE;
|
|
2146
|
+
static FALSE;
|
|
2246
2147
|
static combine(domains, operator) {
|
|
2247
2148
|
if (domains.length === 0) {
|
|
2248
2149
|
return new _Domain([]);
|
|
@@ -2321,6 +2222,24 @@ var Domain = class _Domain {
|
|
|
2321
2222
|
processLeaf(d.ast.value, 0, "&", newDomain);
|
|
2322
2223
|
return newDomain;
|
|
2323
2224
|
}
|
|
2225
|
+
constructor(descr = []) {
|
|
2226
|
+
if (descr instanceof _Domain) {
|
|
2227
|
+
return new _Domain(descr.toString());
|
|
2228
|
+
} else {
|
|
2229
|
+
let rawAST;
|
|
2230
|
+
try {
|
|
2231
|
+
rawAST = typeof descr === "string" ? parseExpr(descr) : toAST(descr);
|
|
2232
|
+
} catch (error) {
|
|
2233
|
+
throw new InvalidDomainError(
|
|
2234
|
+
`Invalid domain representation: ${descr}`,
|
|
2235
|
+
{
|
|
2236
|
+
cause: error
|
|
2237
|
+
}
|
|
2238
|
+
);
|
|
2239
|
+
}
|
|
2240
|
+
this.ast = normalizeDomainAST(rawAST);
|
|
2241
|
+
}
|
|
2242
|
+
}
|
|
2324
2243
|
contains(record) {
|
|
2325
2244
|
const expr = evaluate(this.ast, record);
|
|
2326
2245
|
return matchDomain(record, expr);
|
|
@@ -2339,7 +2258,7 @@ var Domain = class _Domain {
|
|
|
2339
2258
|
return evaluatedAsList;
|
|
2340
2259
|
}
|
|
2341
2260
|
return this.toString();
|
|
2342
|
-
} catch
|
|
2261
|
+
} catch {
|
|
2343
2262
|
return this.toString();
|
|
2344
2263
|
}
|
|
2345
2264
|
}
|
|
@@ -2563,7 +2482,7 @@ var checkDomain = (context, domain) => {
|
|
|
2563
2482
|
};
|
|
2564
2483
|
var matchDomains = (context, domains) => {
|
|
2565
2484
|
if (Array.isArray(domains)) {
|
|
2566
|
-
if (
|
|
2485
|
+
if (domains?.length > 0) {
|
|
2567
2486
|
return domains && domains.some((domain) => checkDomain(context, domain));
|
|
2568
2487
|
}
|
|
2569
2488
|
} else return checkDomain(context, domains);
|
|
@@ -2571,7 +2490,7 @@ var matchDomains = (context, domains) => {
|
|
|
2571
2490
|
};
|
|
2572
2491
|
|
|
2573
2492
|
// src/utils/function.ts
|
|
2574
|
-
|
|
2493
|
+
import { useEffect, useState } from "react";
|
|
2575
2494
|
var evalJSONContext = (_context, context = {}) => {
|
|
2576
2495
|
try {
|
|
2577
2496
|
return evalPartialContext(_context, context);
|
|
@@ -2580,17 +2499,15 @@ var evalJSONContext = (_context, context = {}) => {
|
|
|
2580
2499
|
}
|
|
2581
2500
|
};
|
|
2582
2501
|
var evalJSONDomain = (domain, context) => {
|
|
2583
|
-
var _a;
|
|
2584
2502
|
try {
|
|
2585
2503
|
if (context) {
|
|
2586
|
-
|
|
2587
|
-
var _a2, _b;
|
|
2504
|
+
Object.keys(context)?.forEach((key) => {
|
|
2588
2505
|
if (Array.isArray(context[key])) {
|
|
2589
|
-
const isTypeObject =
|
|
2590
|
-
(item) => typeof item === "object" && item !== null &&
|
|
2506
|
+
const isTypeObject = context[key]?.every(
|
|
2507
|
+
(item) => typeof item === "object" && item !== null && item?.id !== void 0
|
|
2591
2508
|
);
|
|
2592
2509
|
if (isTypeObject) {
|
|
2593
|
-
context[key] =
|
|
2510
|
+
context[key] = context[key]?.map((item) => item?.id);
|
|
2594
2511
|
}
|
|
2595
2512
|
}
|
|
2596
2513
|
});
|
|
@@ -2610,7 +2527,7 @@ var formatSortingString = (input) => {
|
|
|
2610
2527
|
if (!input) return null;
|
|
2611
2528
|
return input.split(",").map((field) => {
|
|
2612
2529
|
const [key, order] = field.trim().split(/\s+/);
|
|
2613
|
-
const sortOrder =
|
|
2530
|
+
const sortOrder = order?.toUpperCase() === "DESC" ? "DESC" : "ASC";
|
|
2614
2531
|
return `${key} ${sortOrder}`;
|
|
2615
2532
|
}).join(", ");
|
|
2616
2533
|
};
|
|
@@ -2654,11 +2571,11 @@ var getFieldsOnChange = (fields) => {
|
|
|
2654
2571
|
function traverse(items) {
|
|
2655
2572
|
for (const item of items) {
|
|
2656
2573
|
if (item) {
|
|
2657
|
-
if (
|
|
2574
|
+
if (item?.type_co === "field" && matchDomains(fields, item?.on_change)) {
|
|
2658
2575
|
result.push(item.name);
|
|
2659
2576
|
}
|
|
2660
|
-
if (
|
|
2661
|
-
traverse(item
|
|
2577
|
+
if (item?.fields && Array.isArray(item?.fields)) {
|
|
2578
|
+
traverse(item?.fields);
|
|
2662
2579
|
}
|
|
2663
2580
|
}
|
|
2664
2581
|
}
|
|
@@ -2674,42 +2591,39 @@ var filterFieldDirty = ({
|
|
|
2674
2591
|
model,
|
|
2675
2592
|
defaultData
|
|
2676
2593
|
}) => {
|
|
2677
|
-
|
|
2678
|
-
const data = id ? __spreadValues({}, dirtyFields) : __spreadValues({}, formValues);
|
|
2594
|
+
const data = id ? { ...dirtyFields } : { ...formValues };
|
|
2679
2595
|
for (const key in data) {
|
|
2680
|
-
if (
|
|
2596
|
+
if (viewData?.models?.[model]?.[key]?.type === "one2many" /* ONE2MANY */) {
|
|
2681
2597
|
const lineData = [];
|
|
2682
|
-
(
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
itemData == null ? true : delete itemData.id;
|
|
2598
|
+
(formValues[key] ?? []).forEach((itemData, index) => {
|
|
2599
|
+
if (typeof itemData?.id === "string" && itemData?.id.includes("virtual")) {
|
|
2600
|
+
delete itemData?.id;
|
|
2686
2601
|
}
|
|
2687
|
-
if (!
|
|
2602
|
+
if (!itemData?.id) {
|
|
2688
2603
|
lineData.push([
|
|
2689
2604
|
0 /* CREATE */,
|
|
2690
2605
|
`virtual_${index}`,
|
|
2691
2606
|
filterFieldDirty({
|
|
2692
|
-
id: itemData
|
|
2607
|
+
id: itemData?.id,
|
|
2693
2608
|
viewData,
|
|
2694
2609
|
formValues: itemData,
|
|
2695
2610
|
dirtyFields: {},
|
|
2696
|
-
model:
|
|
2611
|
+
model: viewData?.models?.[model]?.[key]?.relation,
|
|
2697
2612
|
defaultData
|
|
2698
2613
|
})
|
|
2699
2614
|
]);
|
|
2700
|
-
} else if (
|
|
2615
|
+
} else if (dirtyFields[key]?.length) {
|
|
2701
2616
|
dirtyFields[key].forEach((itemDirty, indexDirty) => {
|
|
2702
|
-
var _a3, _b3, _c3;
|
|
2703
2617
|
if (Object.values(itemDirty).includes(true) && indexDirty === index) {
|
|
2704
2618
|
lineData.push([
|
|
2705
2619
|
1 /* UPDATE */,
|
|
2706
|
-
itemData
|
|
2620
|
+
itemData?.id,
|
|
2707
2621
|
filterFieldDirty({
|
|
2708
|
-
id: itemData
|
|
2622
|
+
id: itemData?.id,
|
|
2709
2623
|
viewData,
|
|
2710
2624
|
formValues: itemData,
|
|
2711
2625
|
dirtyFields: itemDirty,
|
|
2712
|
-
model:
|
|
2626
|
+
model: viewData?.models?.[model]?.[key]?.relation,
|
|
2713
2627
|
defaultData: {}
|
|
2714
2628
|
})
|
|
2715
2629
|
]);
|
|
@@ -2717,39 +2631,37 @@ var filterFieldDirty = ({
|
|
|
2717
2631
|
});
|
|
2718
2632
|
}
|
|
2719
2633
|
});
|
|
2720
|
-
(
|
|
2721
|
-
|
|
2722
|
-
|
|
2723
|
-
(itemData) => (itemData == null ? void 0 : itemData.id) === (item == null ? void 0 : item.id)
|
|
2634
|
+
(defaultData[key] ?? []).forEach((item) => {
|
|
2635
|
+
if (!(formValues[key] ?? []).find(
|
|
2636
|
+
(itemData) => itemData?.id === item?.id
|
|
2724
2637
|
)) {
|
|
2725
|
-
lineData.push([2 /* DELETE */, item
|
|
2638
|
+
lineData.push([2 /* DELETE */, item?.id, item]);
|
|
2726
2639
|
}
|
|
2727
2640
|
});
|
|
2728
2641
|
data[key] = lineData;
|
|
2729
|
-
} else if (
|
|
2642
|
+
} else if (viewData?.models?.[model]?.[key]?.type === "many2many" /* MANY2MANY */) {
|
|
2730
2643
|
const lineData = [];
|
|
2731
2644
|
(formValues[key] || []).forEach((itemData) => {
|
|
2732
|
-
if (itemData
|
|
2733
|
-
lineData.push([4 /* NO_CHANGE */, itemData
|
|
2645
|
+
if (itemData?.id) {
|
|
2646
|
+
lineData.push([4 /* NO_CHANGE */, itemData?.id]);
|
|
2734
2647
|
}
|
|
2735
2648
|
});
|
|
2736
|
-
(
|
|
2737
|
-
|
|
2738
|
-
|
|
2739
|
-
(itemData) => (itemData == null ? void 0 : itemData.id) === (item == null ? void 0 : item.id)
|
|
2649
|
+
(defaultData[key] ?? []).forEach((item) => {
|
|
2650
|
+
if (!(formValues[key] ?? []).find(
|
|
2651
|
+
(itemData) => itemData?.id === item?.id
|
|
2740
2652
|
)) {
|
|
2741
|
-
lineData.push([3 /* UNLINK */, item
|
|
2653
|
+
lineData.push([3 /* UNLINK */, item?.id]);
|
|
2742
2654
|
}
|
|
2743
2655
|
});
|
|
2744
2656
|
data[key] = lineData;
|
|
2745
2657
|
} else {
|
|
2746
|
-
if (id && (typeof
|
|
2658
|
+
if (id && (typeof dirtyFields?.[key] === "object" && !dirtyFields?.[key]?.id || typeof dirtyFields[key] !== "object" && !dirtyFields[key])) {
|
|
2747
2659
|
delete data[key];
|
|
2748
2660
|
} else {
|
|
2749
2661
|
if (!data[key]) {
|
|
2750
2662
|
delete data[key];
|
|
2751
2663
|
} else {
|
|
2752
|
-
data[key] =
|
|
2664
|
+
data[key] = formValues?.[key]?.display_name ? formValues?.[key]?.id : formValues?.[key];
|
|
2753
2665
|
}
|
|
2754
2666
|
}
|
|
2755
2667
|
}
|
|
@@ -2758,12 +2670,15 @@ var filterFieldDirty = ({
|
|
|
2758
2670
|
};
|
|
2759
2671
|
var mergeObjects = (object1, object2) => {
|
|
2760
2672
|
if (!object1 || !object2) return void 0;
|
|
2761
|
-
const mergedObject =
|
|
2673
|
+
const mergedObject = { ...object2 };
|
|
2762
2674
|
Object.keys(object1).forEach((key) => {
|
|
2763
2675
|
if (Array.isArray(object1[key]) && Array.isArray(object2[key])) {
|
|
2764
2676
|
mergedObject[key] = object2[key].map((item, index) => {
|
|
2765
2677
|
if (object1[key][index]) {
|
|
2766
|
-
return
|
|
2678
|
+
return {
|
|
2679
|
+
...item,
|
|
2680
|
+
...object1[key][index]
|
|
2681
|
+
};
|
|
2767
2682
|
}
|
|
2768
2683
|
return item;
|
|
2769
2684
|
});
|
|
@@ -2805,15 +2720,14 @@ var removeUndefinedFields = (obj) => {
|
|
|
2805
2720
|
return newObj;
|
|
2806
2721
|
};
|
|
2807
2722
|
var useTabModel = (viewData, onchangeData) => {
|
|
2808
|
-
|
|
2809
|
-
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) => {
|
|
2723
|
+
const tabsData = viewData?.views?.form?.tabs?.filter((val) => {
|
|
2810
2724
|
if (!val) return null;
|
|
2811
2725
|
const hide = checkDomain(onchangeData, val.invisible);
|
|
2812
2726
|
if (!hide) {
|
|
2813
2727
|
return val;
|
|
2814
2728
|
}
|
|
2815
2729
|
return false;
|
|
2816
|
-
})
|
|
2730
|
+
}) || [];
|
|
2817
2731
|
return tabsData;
|
|
2818
2732
|
};
|
|
2819
2733
|
var isBase64File = (str) => {
|
|
@@ -2854,7 +2768,7 @@ var formatFileSize = (size) => {
|
|
|
2854
2768
|
return `${(size / Math.pow(1024, i)).toFixed(2)} ${sizes[i]}`;
|
|
2855
2769
|
};
|
|
2856
2770
|
var getSubdomain = (url = window.location.href) => {
|
|
2857
|
-
const parts = url
|
|
2771
|
+
const parts = url?.split(".");
|
|
2858
2772
|
if (parts.length > 2) {
|
|
2859
2773
|
return parts[0].replace("https://", "").replace("http://", "");
|
|
2860
2774
|
}
|
|
@@ -2877,9 +2791,9 @@ var getOffSet = (arr, start, end) => {
|
|
|
2877
2791
|
}
|
|
2878
2792
|
return arr.slice(0, start).length;
|
|
2879
2793
|
};
|
|
2880
|
-
var copyTextToClipboard = (text) =>
|
|
2794
|
+
var copyTextToClipboard = async (text) => {
|
|
2881
2795
|
if ("clipboard" in navigator) {
|
|
2882
|
-
return
|
|
2796
|
+
return await navigator.clipboard.writeText(text);
|
|
2883
2797
|
} else {
|
|
2884
2798
|
const textArea = document.createElement("textarea");
|
|
2885
2799
|
textArea.value = text;
|
|
@@ -2893,7 +2807,7 @@ var copyTextToClipboard = (text) => __async(null, null, function* () {
|
|
|
2893
2807
|
document.body.removeChild(textArea);
|
|
2894
2808
|
}
|
|
2895
2809
|
}
|
|
2896
|
-
}
|
|
2810
|
+
};
|
|
2897
2811
|
var updateTokenParamInOriginalRequest = (originalRequest, newAccessToken) => {
|
|
2898
2812
|
if (!originalRequest.data) return originalRequest.data;
|
|
2899
2813
|
if (typeof originalRequest.data === "string") {
|
|
@@ -2917,9 +2831,9 @@ var isObjectEmpty = (obj) => {
|
|
|
2917
2831
|
return Object.keys(obj).length === 0;
|
|
2918
2832
|
};
|
|
2919
2833
|
var useField = (props) => {
|
|
2920
|
-
const [invisible, setInvisible] =
|
|
2921
|
-
const [required, setRequired] =
|
|
2922
|
-
const [readonly, setReadOnly] =
|
|
2834
|
+
const [invisible, setInvisible] = useState(true);
|
|
2835
|
+
const [required, setRequired] = useState(false);
|
|
2836
|
+
const [readonly, setReadOnly] = useState(false);
|
|
2923
2837
|
const {
|
|
2924
2838
|
invisible: inv,
|
|
2925
2839
|
required: req,
|
|
@@ -2929,8 +2843,8 @@ var useField = (props) => {
|
|
|
2929
2843
|
index,
|
|
2930
2844
|
name
|
|
2931
2845
|
} = props;
|
|
2932
|
-
const nameField = rootField ? `${rootField
|
|
2933
|
-
|
|
2846
|
+
const nameField = rootField ? `${rootField?.name}.${index}.${name}` : null;
|
|
2847
|
+
useEffect(() => {
|
|
2934
2848
|
if (onchangeData && Object.keys(onchangeData).length > 0) {
|
|
2935
2849
|
setRequired(
|
|
2936
2850
|
typeof req === "object" ? matchDomains(onchangeData, req) : checkDomain(onchangeData, req)
|
|
@@ -2948,8 +2862,7 @@ var useField = (props) => {
|
|
|
2948
2862
|
nameField
|
|
2949
2863
|
};
|
|
2950
2864
|
};
|
|
2951
|
-
|
|
2952
|
-
0 && (module.exports = {
|
|
2865
|
+
export {
|
|
2953
2866
|
WesapError,
|
|
2954
2867
|
checkIsImageLink,
|
|
2955
2868
|
convertFloatToTime,
|
|
@@ -2980,4 +2893,4 @@ var useField = (props) => {
|
|
|
2980
2893
|
useField,
|
|
2981
2894
|
useTabModel,
|
|
2982
2895
|
validateAndParseDate
|
|
2983
|
-
}
|
|
2896
|
+
};
|
|
@@ -110,4 +110,4 @@ interface GetViewParams {
|
|
|
110
110
|
aid?: number | string | null | boolean;
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
export type { ContextApi as C, DeleteParams as D, ForgotPasswordBody as F,
|
|
113
|
+
export type { ContextApi as C, DeleteParams as D, ForgotPasswordBody as F, GetSelectionType as G, LoginCredentialBody as L, OnChangeParams as O, ResetPasswordRequest as R, SocialTokenBody as S, UpdatePasswordRequest as U, ViewData as V, GetViewParams as a, GetListParams as b, GetDetailParams as c, SaveParams as d, GetAllParams as e, Specification as f, View as g, updatePasswordBody as u };
|
|
@@ -110,4 +110,4 @@ interface GetViewParams {
|
|
|
110
110
|
aid?: number | string | null | boolean;
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
export type { ContextApi as C, DeleteParams as D, ForgotPasswordBody as F,
|
|
113
|
+
export type { ContextApi as C, DeleteParams as D, ForgotPasswordBody as F, GetSelectionType as G, LoginCredentialBody as L, OnChangeParams as O, ResetPasswordRequest as R, SocialTokenBody as S, UpdatePasswordRequest as U, ViewData as V, GetViewParams as a, GetListParams as b, GetDetailParams as c, SaveParams as d, GetAllParams as e, Specification as f, View as g, updatePasswordBody as u };
|