awing-library 2.1.161-dev → 2.1.162-dev

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.
@@ -125,7 +125,7 @@ function SubCampaignDetail(props) {
125
125
  ? subCampaign.bonusAmount < 0
126
126
  ? translationText.notNegative
127
127
  : translationText.helperText
128
- : '' }) }), service.attributesGetByObjectTypeCode ? ((0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 4, style: { padding: 8 }, children: (0, jsx_runtime_1.jsx)(material_1.TextField, { id: "billingUnit", required: true, select: true, variant: "standard", fullWidth: true, label: translationText.BillingUnit, value: String(subCampaign.billingUnit), onChange: function (e) {
128
+ : '' }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 4, style: { padding: 8 }, children: (0, jsx_runtime_1.jsx)(material_1.TextField, { id: "billingUnit", required: true, select: true, variant: "standard", fullWidth: true, label: translationText.BillingUnit, value: String(subCampaign.billingUnit), onChange: function (e) {
129
129
  onSubCampaignChange(function (pre) { return (__assign(__assign({}, pre), { billingUnit: Number(e.target.value) })); });
130
130
  }, error: subValid.billingUnit !== undefined &&
131
131
  !subValid.billingUnit, helperText: subValid.billingUnit !== undefined &&
@@ -133,7 +133,7 @@ function SubCampaignDetail(props) {
133
133
  ? translationText.helperText
134
134
  : '', children: Object.values(Enum_2.AnalyticType)
135
135
  .filter(function (item) { return !isNaN(Number(item)); })
136
- .map(function (type) { return ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: type, children: t("Campaign.BillingUnit.".concat((0, lodash_1.capitalize)((0, lodash_1.camelCase)(Enum_2.AnalyticType[type])))) }, type)); }) }) })) : null] })), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 4, style: { padding: 8 }, children: (0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { control: (0, jsx_runtime_1.jsx)(material_1.Checkbox, { checked: subCampaign.isReserved, onChange: function (e) {
136
+ .map(function (type) { return ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: type, children: t("Campaign.BillingUnit.".concat((0, lodash_1.capitalize)((0, lodash_1.camelCase)(Enum_2.AnalyticType[type])))) }, type)); }) }) })] })), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 4, style: { padding: 8 }, children: (0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { control: (0, jsx_runtime_1.jsx)(material_1.Checkbox, { checked: subCampaign.isReserved, onChange: function (e) {
137
137
  e.persist();
138
138
  onSubCampaignChange(function (pre) { return (__assign(__assign({}, pre), { isReserved: e.target.checked })); });
139
139
  }, name: "isReserved", color: "primary" }), label: translationText.reserved, style: { marginTop: 6 } }) })] })] }));
@@ -0,0 +1,18 @@
1
+ /// <reference types="lodash" />
2
+ import { Configs, FieldInfo } from "../../../../../ACM-AXN/ViewTemplate/interface";
3
+ export declare const getValidationParams: (templateDatas: FieldInfo[], pagePath: string, configs: Configs) => {
4
+ fieldValue: any;
5
+ id?: string | undefined;
6
+ defaultValue?: string | undefined;
7
+ fieldName: string;
8
+ fieldType: "object" | "color" | "html" | "textarea" | "video" | "image" | "list" | "checkbox" | "url" | "textfield" | "textfield_number" | "dropdownlist" | "checkboxlist";
9
+ isRequired: boolean;
10
+ labelName?: string | undefined;
11
+ pageId?: string | undefined;
12
+ templateId?: string | undefined;
13
+ viewNumber?: number | undefined;
14
+ childrens?: FieldInfo[] | undefined;
15
+ }[][];
16
+ export declare const runValidate: import("lodash").DebouncedFunc<(scriptValidate: string, fields: FieldInfo[], pagePath: string, notifyError: (errorMessage: string) => void, changeViewValidStatus: (status: boolean) => void, changeViewValidProcess: (processValue: number) => void, configs: Configs) => void>;
17
+ export declare const getAutoFieldParams: (templateDatas: FieldInfo[], fieldPath: string, pagePath: string, configs: Configs) => any[];
18
+ export declare const runAutoField: import("lodash").DebouncedFunc<(scriptAutoField: string, fields: FieldInfo[], fieldPath: string, pagePath: string, updateNewValue: (needUpdateFieldPath: string, newValue: any) => void, configs: Configs) => void>;
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.runAutoField = exports.getAutoFieldParams = exports.runValidate = exports.getValidationParams = void 0;
18
+ var Enum_1 = require("../../../../../ACM-AXN/ViewTemplate/Enum");
19
+ var common_1 = require("../../../../../ACM-AXN/ViewTemplate/common");
20
+ var constant_1 = require("../../../../../ACM-AXN/ViewTemplate/constant");
21
+ var validation_1 = require("../../../../../AWING/ultis/validation");
22
+ var i18n_1 = __importDefault(require("../../../../../i18n"));
23
+ var lodash_1 = require("lodash");
24
+ var getValidationParams = function (templateDatas, pagePath, configs) {
25
+ var fields = templateDatas.map(function (dt) {
26
+ // Convert all video, image link
27
+ var fieldValue = dt.fieldValue;
28
+ if ([
29
+ Enum_1.TYPE_FIELD_TEMPLATE.IMAGE,
30
+ Enum_1.TYPE_FIELD_TEMPLATE.VIDEO,
31
+ Enum_1.TYPE_FIELD_TEMPLATE.OBJECT,
32
+ Enum_1.TYPE_FIELD_TEMPLATE.LIST,
33
+ ].includes(dt.fieldType)) {
34
+ var jsonValue = JSON.stringify(fieldValue);
35
+ if (jsonValue.includes(constant_1.ACM_TEMPLATE_PATH)) {
36
+ jsonValue = jsonValue.replaceAll('/' + constant_1.ACM_TEMPLATE_PATH, "".concat(configs.TEMPLATE_FILE_PATH, "/").concat(dt.templateId));
37
+ }
38
+ if (jsonValue.includes(configs.FILE_RELATIVE_PATH || '')) {
39
+ jsonValue = jsonValue.replaceAll(configs.FILE_RELATIVE_PATH || '', pagePath);
40
+ }
41
+ fieldValue = JSON.parse(jsonValue);
42
+ }
43
+ return __assign(__assign({}, dt), { fieldValue: fieldValue });
44
+ });
45
+ return [fields];
46
+ };
47
+ exports.getValidationParams = getValidationParams;
48
+ var nomalValidate = function (parmas) {
49
+ return new Promise(function (resolve, reject) {
50
+ var result = [];
51
+ parmas.flatMap(function (f) { return f; }).forEach(function (field) {
52
+ var errorObj = {
53
+ code: Enum_1.VALID_TEMPLATE_CODE.ERROR,
54
+ fieldName: field.labelName || field.fieldName,
55
+ errorMessage: i18n_1.default.t('Common.InvalidData'),
56
+ };
57
+ if (field.fieldValue)
58
+ switch (field.fieldType) {
59
+ case Enum_1.TYPE_FIELD_TEMPLATE.COLOR: {
60
+ if (!(0, validation_1.colorValid)(field.fieldValue)) {
61
+ result.push(errorObj);
62
+ }
63
+ break;
64
+ }
65
+ case Enum_1.TYPE_FIELD_TEMPLATE.URL: {
66
+ if (!(0, validation_1.urlValid)(field.fieldValue)) {
67
+ result.push(errorObj);
68
+ }
69
+ break;
70
+ }
71
+ default:
72
+ break;
73
+ }
74
+ });
75
+ resolve(result);
76
+ });
77
+ };
78
+ exports.runValidate = (0, lodash_1.debounce)(function (scriptValidate, fields, pagePath, notifyError, changeViewValidStatus, changeViewValidProcess, configs) {
79
+ changeViewValidProcess(Enum_1.VALIDATE_PROCESS_CODE.VALIDATING);
80
+ Promise.all([
81
+ scriptValidate
82
+ ? (0, common_1.runScript)((0, exports.getValidationParams)(fields, pagePath, configs), scriptValidate)
83
+ : Promise.resolve([]),
84
+ nomalValidate((0, exports.getValidationParams)(fields, pagePath, configs)),
85
+ ]).then(function (_a) {
86
+ var resultScript = _a[0], resultNormal = _a[1];
87
+ var result = Array.from(resultNormal).concat(resultScript);
88
+ if (result) {
89
+ var fieldsError_1 = [];
90
+ var newAnswer = result.map(function (validInfo) {
91
+ var _a;
92
+ if (validInfo.code === Enum_1.VALID_TEMPLATE_CODE.SUCCESS) {
93
+ return true;
94
+ }
95
+ else {
96
+ var displayName = ((_a = fields.find(function (dt) {
97
+ return validInfo.fieldName === dt.fieldName;
98
+ })) === null || _a === void 0 ? void 0 : _a.labelName) || validInfo.fieldName;
99
+ fieldsError_1.push("".concat(displayName).concat(validInfo.errorMessage
100
+ ? ": ".concat(validInfo.errorMessage)
101
+ : ''));
102
+ return false;
103
+ }
104
+ });
105
+ if (fieldsError_1.length > 0) {
106
+ notifyError(fieldsError_1.toString());
107
+ }
108
+ changeViewValidStatus(newAnswer.length === 0 || !newAnswer.includes(false));
109
+ }
110
+ changeViewValidProcess(Enum_1.VALIDATE_PROCESS_CODE.VALIDATED);
111
+ });
112
+ }, constant_1.DELAY_TIME_RUN_SCRIPT);
113
+ var getAutoFieldParams = function (templateDatas, fieldPath, pagePath, configs) {
114
+ var fields = templateDatas.map(function (dt) {
115
+ // Convert all video, image link
116
+ var fieldValue = dt.fieldValue;
117
+ if ([
118
+ Enum_1.TYPE_FIELD_TEMPLATE.IMAGE,
119
+ Enum_1.TYPE_FIELD_TEMPLATE.VIDEO,
120
+ Enum_1.TYPE_FIELD_TEMPLATE.OBJECT,
121
+ Enum_1.TYPE_FIELD_TEMPLATE.LIST,
122
+ ].includes(dt.fieldType)) {
123
+ var jsonValue = JSON.stringify(fieldValue);
124
+ if (jsonValue.includes(constant_1.ACM_TEMPLATE_PATH)) {
125
+ jsonValue = jsonValue.replaceAll('/' + constant_1.ACM_TEMPLATE_PATH, "".concat(configs.TEMPLATE_FILE_PATH, "/").concat(dt.templateId));
126
+ }
127
+ if (jsonValue.includes(configs.FILE_RELATIVE_PATH || '')) {
128
+ jsonValue = jsonValue.replaceAll(configs.FILE_RELATIVE_PATH || '', pagePath);
129
+ }
130
+ fieldValue = JSON.parse(jsonValue);
131
+ }
132
+ return __assign(__assign({}, dt), { fieldValue: fieldValue });
133
+ });
134
+ var keys = fieldPath.split('.');
135
+ var fieldChange = fields[Number(keys[1])];
136
+ return [fields, __assign(__assign({}, fieldChange), { changePath: fieldPath })];
137
+ };
138
+ exports.getAutoFieldParams = getAutoFieldParams;
139
+ exports.runAutoField = (0, lodash_1.debounce)(function (scriptAutoField, fields, fieldPath, pagePath, updateNewValue, configs) {
140
+ if (scriptAutoField) {
141
+ (0, common_1.runScript)((0, exports.getAutoFieldParams)(fields, fieldPath, pagePath, configs), scriptAutoField).then(function (result) {
142
+ if (result) {
143
+ result === null || result === void 0 ? void 0 : result.map(function (r) {
144
+ var _a;
145
+ var idx = fields.findIndex(function (f) { return f.fieldName === r.fieldName; });
146
+ if ([
147
+ Enum_1.TYPE_FIELD_TEMPLATE.IMAGE,
148
+ Enum_1.TYPE_FIELD_TEMPLATE.VIDEO,
149
+ Enum_1.TYPE_FIELD_TEMPLATE.OBJECT,
150
+ Enum_1.TYPE_FIELD_TEMPLATE.LIST,
151
+ ].includes(fields[idx].fieldType)) {
152
+ var jsonValue = JSON.stringify(r.newValue);
153
+ if (jsonValue.includes(pagePath)) {
154
+ jsonValue = jsonValue.replaceAll(pagePath, configs.FILE_RELATIVE_PATH || '');
155
+ }
156
+ if (configs.TEMPLATE_FILE_PATH &&
157
+ jsonValue.includes(configs.TEMPLATE_FILE_PATH)) {
158
+ var templatePath = "".concat(configs.TEMPLATE_FILE_PATH, "/").concat((_a = fields === null || fields === void 0 ? void 0 : fields[0]) === null || _a === void 0 ? void 0 : _a.templateId);
159
+ jsonValue = jsonValue.replaceAll(templatePath, "\"/".concat(constant_1.ACM_TEMPLATE_PATH));
160
+ }
161
+ r.newValue = JSON.parse(jsonValue);
162
+ }
163
+ var needUpdateFieldPath = "templateDatas.".concat(idx, ".fieldValue");
164
+ updateNewValue(needUpdateFieldPath, r.newValue);
165
+ return r;
166
+ });
167
+ }
168
+ });
169
+ }
170
+ }, constant_1.DELAY_TIME_RUN_SCRIPT);
@@ -10,6 +10,29 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
13
36
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
37
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
38
  };
@@ -17,16 +40,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
40
  var jsx_runtime_1 = require("react/jsx-runtime");
18
41
  var material_1 = require("@mui/material");
19
42
  var styles_1 = require("@mui/styles");
43
+ var AWING_1 = require("../../../../../AWING");
44
+ var validation_1 = require("../../../../../AWING/ultis/validation");
45
+ var react_1 = __importStar(require("react"));
46
+ var react_i18next_1 = require("react-i18next");
47
+ var Enum_1 = require("../../../Enum");
20
48
  var ImageField_1 = __importDefault(require("./ImageField"));
21
- var VideoField_1 = __importDefault(require("./VideoField"));
22
49
  var MonacoEditor_1 = __importDefault(require("./MonacoEditor"));
23
- var common_1 = require("../../../common");
24
- var constant_1 = require("../../../constant");
25
- var Enum_1 = require("../../../Enum");
26
- var react_1 = require("react");
27
- var react_i18next_1 = require("react-i18next");
28
- var validation_1 = require("../../../../../AWING/ultis/validation");
29
- var debounce = require('lodash/debounce');
50
+ var Utils_1 = require("./Utils");
51
+ var VideoField_1 = __importDefault(require("./VideoField"));
30
52
  var useStyles = (0, styles_1.makeStyles)(function (theme) { return ({
31
53
  paper: {
32
54
  padding: '16px',
@@ -98,8 +120,8 @@ function BasicField(props) {
98
120
  if (scriptValidate) {
99
121
  onChangeValidateProcess(Enum_1.VALIDATE_PROCESS_CODE.NOT_VALIDATE);
100
122
  }
101
- runValidate(scriptValidate || '', fields, pagePath, onNotifyError, onChangeViewValid, onChangeValidateProcess, configs);
102
- runAutoField(scriptAutoField || '', fields, fieldPath, pagePath, function (needUpdateFieldPath, newValue) {
123
+ (0, Utils_1.runValidate)(scriptValidate || '', fields, pagePath, onNotifyError, onChangeViewValid, onChangeValidateProcess, configs);
124
+ (0, Utils_1.runAutoField)(scriptAutoField || '', fields, fieldPath, pagePath, function (needUpdateFieldPath, newValue) {
103
125
  setFormValue(needUpdateFieldPath, newValue);
104
126
  onChange(needUpdateFieldPath);
105
127
  }, configs);
@@ -107,11 +129,15 @@ function BasicField(props) {
107
129
  var renderField = function () {
108
130
  // const isError = !!getValueByPath(/*errors*/ {}, fieldPath)
109
131
  var isError = errors.includes(fieldPath);
110
- var field = register(fieldPath, __assign({ required: isRequired }, fieldType === Enum_1.TYPE_FIELD_TEMPLATE.URL && {
111
- onValidate: function (value) { return (0, validation_1.urlValid)(value); }
132
+ var field = register(fieldPath, __assign(__assign({ required: isRequired }, fieldType === Enum_1.TYPE_FIELD_TEMPLATE.URL && {
133
+ onValidate: validation_1.urlValid
134
+ }), fieldType === Enum_1.TYPE_FIELD_TEMPLATE.COLOR && {
135
+ onValidate: validation_1.colorValid
112
136
  }));
137
+ // onChangeViewValid(isError)
113
138
  switch (fieldType) {
114
139
  case Enum_1.TYPE_FIELD_TEMPLATE.TEXT_FIELD_NUMBER:
140
+ return renderNumberField(field, isError);
115
141
  case Enum_1.TYPE_FIELD_TEMPLATE.TEXT_FIELD:
116
142
  case Enum_1.TYPE_FIELD_TEMPLATE.URL:
117
143
  return renderTextField(field, isError);
@@ -133,10 +159,16 @@ function BasicField(props) {
133
159
  return null;
134
160
  }
135
161
  };
162
+ var renderNumberField = react_1.default.useCallback(function (field, isError) {
163
+ return ((0, jsx_runtime_1.jsx)(AWING_1.NumberFormat, __assign({}, field, { inputProps: { min: 0 }, className: classes.text, required: isRequired, min: 0, fullWidth: true, variant: "standard", label: labelName || fieldName, onChange: function (e) {
164
+ var newValue = Number(e.target.value);
165
+ console.log('newValue', newValue);
166
+ handleChange(newValue);
167
+ }, error: isError, helperText: isError ? t('Common.Required') : '' })));
168
+ // eslint-disable-next-line react-hooks/exhaustive-deps
169
+ }, [classes, fieldName, isRequired, labelName, t]);
136
170
  var renderTextField = function (field, isError) {
137
- return ((0, jsx_runtime_1.jsx)(material_1.TextField, __assign({}, field, { className: classes.text, required: isRequired, fullWidth: true, inputProps: fieldType === Enum_1.TYPE_FIELD_TEMPLATE.TEXT_FIELD_NUMBER
138
- ? { type: 'number' }
139
- : {} }, (fieldType === Enum_1.TYPE_FIELD_TEMPLATE.TEXTAREA
171
+ return ((0, jsx_runtime_1.jsx)(material_1.TextField, __assign({}, field, { className: classes.text, required: isRequired, fullWidth: true }, (fieldType === Enum_1.TYPE_FIELD_TEMPLATE.TEXTAREA
140
172
  ? { multiline: true, rows: 4 }
141
173
  : {}), { variant: "standard", label: labelName || fieldName, onChange: function (e) {
142
174
  handleChange(e.target.value);
@@ -212,116 +244,3 @@ function BasicField(props) {
212
244
  return renderField();
213
245
  }
214
246
  exports.default = BasicField;
215
- var getValidationParams = function (templateDatas, pagePath, configs) {
216
- var fields = templateDatas.map(function (dt) {
217
- // Convert all video, image link
218
- var fieldValue = dt.fieldValue;
219
- if ([
220
- Enum_1.TYPE_FIELD_TEMPLATE.IMAGE,
221
- Enum_1.TYPE_FIELD_TEMPLATE.VIDEO,
222
- Enum_1.TYPE_FIELD_TEMPLATE.OBJECT,
223
- Enum_1.TYPE_FIELD_TEMPLATE.LIST,
224
- ].includes(dt.fieldType)) {
225
- var jsonValue = JSON.stringify(fieldValue);
226
- if (jsonValue.includes(constant_1.ACM_TEMPLATE_PATH)) {
227
- jsonValue = jsonValue.replaceAll('/' + constant_1.ACM_TEMPLATE_PATH, "".concat(configs.TEMPLATE_FILE_PATH, "/").concat(dt.templateId));
228
- }
229
- if (jsonValue.includes(configs.FILE_RELATIVE_PATH || '')) {
230
- jsonValue = jsonValue.replaceAll(configs.FILE_RELATIVE_PATH || '', pagePath);
231
- }
232
- fieldValue = JSON.parse(jsonValue);
233
- }
234
- return __assign(__assign({}, dt), { fieldValue: fieldValue });
235
- });
236
- return [fields];
237
- };
238
- var runValidate = debounce(function (scriptValidate, fields, pagePath, notifyError, changeViewValidStatus, changeViewValidProcess, configs) {
239
- if (scriptValidate) {
240
- changeViewValidProcess(Enum_1.VALIDATE_PROCESS_CODE.VALIDATING);
241
- var params = getValidationParams(fields, pagePath, configs);
242
- (0, common_1.runScript)(
243
- // getValidationParams(fields, pagePath, configs),
244
- params, scriptValidate).then(function (result) {
245
- if (result) {
246
- var fieldsError_1 = [];
247
- var newAnswer = result.map(function (validInfo) {
248
- var _a;
249
- if (validInfo.code === Enum_1.VALID_TEMPLATE_CODE.SUCCESS) {
250
- return true;
251
- }
252
- else {
253
- var displayName = ((_a = fields.find(function (dt) {
254
- return validInfo.fieldName === dt.fieldName;
255
- })) === null || _a === void 0 ? void 0 : _a.labelName) || validInfo.fieldName;
256
- fieldsError_1.push("".concat(displayName).concat(validInfo.errorMessage
257
- ? ": ".concat(validInfo.errorMessage)
258
- : ''));
259
- return false;
260
- }
261
- });
262
- if (fieldsError_1.length > 0) {
263
- notifyError(fieldsError_1.toString());
264
- }
265
- changeViewValidStatus(newAnswer.length === 0 || !newAnswer.includes(false));
266
- }
267
- changeViewValidProcess(Enum_1.VALIDATE_PROCESS_CODE.VALIDATED);
268
- });
269
- }
270
- }, constant_1.DELAY_TIME_RUN_SCRIPT);
271
- var getAutoFieldParams = function (templateDatas, fieldPath, pagePath, configs) {
272
- var fields = templateDatas.map(function (dt) {
273
- // Convert all video, image link
274
- var fieldValue = dt.fieldValue;
275
- if ([
276
- Enum_1.TYPE_FIELD_TEMPLATE.IMAGE,
277
- Enum_1.TYPE_FIELD_TEMPLATE.VIDEO,
278
- Enum_1.TYPE_FIELD_TEMPLATE.OBJECT,
279
- Enum_1.TYPE_FIELD_TEMPLATE.LIST,
280
- ].includes(dt.fieldType)) {
281
- var jsonValue = JSON.stringify(fieldValue);
282
- if (jsonValue.includes(constant_1.ACM_TEMPLATE_PATH)) {
283
- jsonValue = jsonValue.replaceAll('/' + constant_1.ACM_TEMPLATE_PATH, "".concat(configs.TEMPLATE_FILE_PATH, "/").concat(dt.templateId));
284
- }
285
- if (jsonValue.includes(configs.FILE_RELATIVE_PATH || '')) {
286
- jsonValue = jsonValue.replaceAll(configs.FILE_RELATIVE_PATH || '', pagePath);
287
- }
288
- fieldValue = JSON.parse(jsonValue);
289
- }
290
- return __assign(__assign({}, dt), { fieldValue: fieldValue });
291
- });
292
- var keys = fieldPath.split('.');
293
- var fieldChange = fields[Number(keys[1])];
294
- return [fields, __assign(__assign({}, fieldChange), { changePath: fieldPath })];
295
- };
296
- var runAutoField = debounce(function (scriptAutoField, fields, fieldPath, pagePath, updateNewValue, configs) {
297
- if (scriptAutoField) {
298
- (0, common_1.runScript)(getAutoFieldParams(fields, fieldPath, pagePath, configs), scriptAutoField).then(function (result) {
299
- if (result) {
300
- result === null || result === void 0 ? void 0 : result.map(function (r) {
301
- var _a;
302
- var idx = fields.findIndex(function (f) { return f.fieldName === r.fieldName; });
303
- if ([
304
- Enum_1.TYPE_FIELD_TEMPLATE.IMAGE,
305
- Enum_1.TYPE_FIELD_TEMPLATE.VIDEO,
306
- Enum_1.TYPE_FIELD_TEMPLATE.OBJECT,
307
- Enum_1.TYPE_FIELD_TEMPLATE.LIST,
308
- ].includes(fields[idx].fieldType)) {
309
- var jsonValue = JSON.stringify(r.newValue);
310
- if (jsonValue.includes(pagePath)) {
311
- jsonValue = jsonValue.replaceAll(pagePath, configs.FILE_RELATIVE_PATH || '');
312
- }
313
- if (configs.TEMPLATE_FILE_PATH &&
314
- jsonValue.includes(configs.TEMPLATE_FILE_PATH)) {
315
- var templatePath = "".concat(configs.TEMPLATE_FILE_PATH, "/").concat((_a = fields === null || fields === void 0 ? void 0 : fields[0]) === null || _a === void 0 ? void 0 : _a.templateId);
316
- jsonValue = jsonValue.replaceAll(templatePath, "\"/".concat(constant_1.ACM_TEMPLATE_PATH));
317
- }
318
- r.newValue = JSON.parse(jsonValue);
319
- }
320
- var needUpdateFieldPath = "templateDatas.".concat(idx, ".fieldValue");
321
- updateNewValue(needUpdateFieldPath, r.newValue);
322
- return r;
323
- });
324
- }
325
- });
326
- }
327
- }, constant_1.DELAY_TIME_RUN_SCRIPT);
@@ -53,7 +53,8 @@ var useForm = function (props) {
53
53
  var _updateFieldArray = function (name, value) {
54
54
  (0, set_1.default)(_formControl.current, name, value);
55
55
  };
56
- var getValues = function (fieldNames) {
56
+ // eslint-disable-next-line react-hooks/exhaustive-deps
57
+ var getValues = react_1.default.useCallback(function (fieldNames) {
57
58
  var data = (0, convertToArrayPayload_1.default)(fieldNames).map(function (fieldName) {
58
59
  return (0, cloneProxy_1.default)((0, get_1.default)(_formControl.current, fieldName));
59
60
  });
@@ -61,7 +62,7 @@ var useForm = function (props) {
61
62
  return data;
62
63
  if (data.length && data.length === 1)
63
64
  return data[0];
64
- };
65
+ }, []);
65
66
  var register = function (fieldPath, options) {
66
67
  var isRequired = options === null || options === void 0 ? void 0 : options.required;
67
68
  var onValidate = options === null || options === void 0 ? void 0 : options.onValidate;
@@ -1,3 +1,5 @@
1
1
  import { TextFieldProps } from '@mui/material';
2
- export declare const NumberFormat: (props: TextFieldProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const NumberFormat: (props: TextFieldProps & {
3
+ min?: number;
4
+ }) => import("react/jsx-runtime").JSX.Element;
3
5
  export default NumberFormat;
@@ -32,7 +32,7 @@ var helper_1 = require("../helper");
32
32
  var Context_1 = __importDefault(require("../../Context"));
33
33
  var react_1 = require("react");
34
34
  var NumberFormat = function (props) {
35
- var value = props.value, onChange = props.onChange, other = __rest(props, ["value", "onChange"]);
35
+ var value = props.value, onChange = props.onChange, min = props.min, other = __rest(props, ["value", "onChange", "min"]);
36
36
  var i18next = (0, react_1.useContext)(Context_1.default).i18next;
37
37
  var handleChange = function (event) {
38
38
  var el = event.target;
@@ -65,7 +65,7 @@ var NumberFormat = function (props) {
65
65
  .replace(new RegExp(escapeRegExp(decimalSeparator), 'g'), ''));
66
66
  }
67
67
  //add negation back
68
- if (hasNegation)
68
+ if (hasNegation && min !== 0)
69
69
  num = '-' + num;
70
70
  return num;
71
71
  }
@@ -10,6 +10,7 @@ export declare function dateRangeValid(value: (Date | null | undefined)[] | null
10
10
  export declare function emailValid(value: string | null | undefined): boolean;
11
11
  export declare function numberOnlyValid(value: string | null | undefined): boolean;
12
12
  export declare function urlValid(value: string | null | undefined): boolean;
13
+ export declare function colorValid(value: string | null | undefined): boolean;
13
14
  export declare function passwordValid(value: string | null | undefined): boolean;
14
15
  export declare function containsOnlyDigits(str: string): boolean;
15
16
  export declare function logicExpressionValid(value: string | null | undefined): boolean;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.textValidation = exports.logicExpressionValid = exports.containsOnlyDigits = exports.passwordValid = exports.urlValid = exports.numberOnlyValid = exports.emailValid = exports.dateRangeValid = exports.dateValid = exports.notNullValid = exports.stringNullableValid = exports.stringNotNullValid = exports.numberNotNullValid = exports.numberPercentageNotNullValid = exports.positiveNumberNotNullValid = exports.arrayIsNotEmptyValid = void 0;
6
+ exports.textValidation = exports.logicExpressionValid = exports.containsOnlyDigits = exports.passwordValid = exports.colorValid = exports.urlValid = exports.numberOnlyValid = exports.emailValid = exports.dateRangeValid = exports.dateValid = exports.notNullValid = exports.stringNullableValid = exports.stringNotNullValid = exports.numberNotNullValid = exports.numberPercentageNotNullValid = exports.positiveNumberNotNullValid = exports.arrayIsNotEmptyValid = void 0;
7
7
  /* eslint-disable no-useless-escape */
8
8
  var i18n_1 = __importDefault(require("../../i18n"));
9
9
  var lodash_1 = __importDefault(require("lodash"));
@@ -69,6 +69,11 @@ function urlValid(value) {
69
69
  }
70
70
  }
71
71
  exports.urlValid = urlValid;
72
+ function colorValid(value) {
73
+ var re = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;
74
+ return value !== undefined && value !== null && re.test('#' + value);
75
+ }
76
+ exports.colorValid = colorValid;
72
77
  function passwordValid(value) {
73
78
  var re = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/;
74
79
  return value === undefined && value === null && re.test(value);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "awing-library",
3
- "version": "2.1.161-dev",
3
+ "version": "2.1.162-dev",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",