awing-library 2.1.147-beta → 2.1.147

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 (212) hide show
  1. package/lib/ACM-AXN/AuthenticationProfile/Container.js +4 -4
  2. package/lib/ACM-AXN/AuthenticationProfile/CreateOrEdit/index.js +2 -2
  3. package/lib/ACM-AXN/Campaign/Container.js +52 -54
  4. package/lib/ACM-AXN/Campaign/Container.test.js +1 -3
  5. package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.d.ts +8 -1
  6. package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.js +27 -3
  7. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.d.ts +17 -0
  8. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.js +121 -0
  9. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.test.d.ts +1 -0
  10. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.test.js +219 -0
  11. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.d.ts +2 -0
  12. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.js +306 -0
  13. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.test.d.ts +1 -0
  14. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.test.js +230 -0
  15. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.d.ts +1 -0
  16. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.js +123 -0
  17. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.test.d.ts +1 -0
  18. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.test.js +253 -0
  19. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabInfomation.js +21 -5
  20. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabPartner.d.ts +1 -1
  21. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabPartner.js +47 -78
  22. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.d.ts +2 -1
  23. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.js +2 -2
  24. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/ControlPanel.js +2 -1
  25. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/index.js +2 -1
  26. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.d.ts +19 -42
  27. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.js +298 -96
  28. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.d.ts +3 -0
  29. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.js +119 -54
  30. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.d.ts +1 -1
  31. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.js +46 -8
  32. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/component.js +6 -4
  33. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/container.js +1 -1
  34. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/PasswordDialog.d.ts +9 -0
  35. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/PasswordDialog.js +56 -0
  36. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Table.js +5 -1
  37. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.d.ts +12 -0
  38. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.js +22 -7
  39. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/container.js +63 -12
  40. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.d.ts +1 -0
  41. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.js +17 -4
  42. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Types.d.ts +10 -0
  43. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Utils.js +4 -1
  44. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.d.ts +1 -0
  45. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.js +3 -2
  46. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/component.js +6 -2
  47. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/container.js +31 -29
  48. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdList.js +1 -1
  49. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdRow.js +1 -1
  50. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/TargetOS/container.js +2 -2
  51. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.js +1 -1
  52. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/EditAds.js +5 -5
  53. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.js +44 -33
  54. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.test.js +3 -13
  55. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignList.js +45 -20
  56. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.js +3 -2
  57. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/index.js +3 -2
  58. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/useSearchPage.js +33 -8
  59. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.d.ts +5 -1
  60. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.js +172 -59
  61. package/lib/ACM-AXN/Campaign/Enum.d.ts +24 -6
  62. package/lib/ACM-AXN/Campaign/Enum.js +30 -11
  63. package/lib/ACM-AXN/Campaign/Types.d.ts +53 -5
  64. package/lib/ACM-AXN/Campaign/Utils.d.ts +6 -1
  65. package/lib/ACM-AXN/Campaign/Utils.js +50 -3
  66. package/lib/ACM-AXN/Campaign/index.js +2 -2
  67. package/lib/ACM-AXN/CampaignPlan/Container.js +4 -6
  68. package/lib/ACM-AXN/CampaignPlan/Detail.js +3 -3
  69. package/lib/ACM-AXN/CampaignPlan/Filter.js +3 -3
  70. package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/Filter.js +14 -10
  71. package/lib/ACM-AXN/CampaignSchedule/Components/EnhancedPagination/index.js +3 -2
  72. package/lib/ACM-AXN/CampaignSchedule/Components/RowAdvance/component.js +5 -7
  73. package/lib/ACM-AXN/CampaignSchedule/DataConfig.js +4 -4
  74. package/lib/ACM-AXN/CampaignSchedule/DataConfigAXN.js +5 -4
  75. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.d.ts +1 -2
  76. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.js +1 -5
  77. package/lib/ACM-AXN/Common/Constant.d.ts +3 -0
  78. package/lib/ACM-AXN/Common/Constant.js +2 -0
  79. package/lib/ACM-AXN/Common/Enum.d.ts +8 -3
  80. package/lib/ACM-AXN/Common/Enum.js +19 -4
  81. package/lib/ACM-AXN/Common/Types.d.ts +5 -0
  82. package/lib/ACM-AXN/GeoFencing/GoongMap/index.d.ts +8 -9
  83. package/lib/ACM-AXN/GeoFencing/component.js +7 -7
  84. package/lib/ACM-AXN/GeoFencing/interface.d.ts +1 -2
  85. package/lib/ACM-AXN/Holiday/FormHoliday.js +1 -0
  86. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.d.ts +0 -5
  87. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.js +7 -90
  88. package/lib/ACM-AXN/Notifications/NotificationPopover/index.d.ts +0 -5
  89. package/lib/ACM-AXN/Notifications/Types.d.ts +2 -0
  90. package/lib/ACM-AXN/Page/Constant.js +2 -0
  91. package/lib/ACM-AXN/Page/Container.js +3 -3
  92. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.d.ts +6 -0
  93. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.js +63 -0
  94. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.d.ts +11 -2
  95. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.js +16 -12
  96. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/TrackingCode.js +1 -1
  97. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/Utils.js +1 -1
  98. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/index.js +1 -0
  99. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.d.ts +1 -9
  100. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.js +0 -9
  101. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewContent.js +11 -44
  102. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.d.ts +2 -3
  103. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.js +39 -61
  104. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/index.js +29 -32
  105. package/lib/ACM-AXN/Page/CreateOrEdit/Utils.js +6 -6
  106. package/lib/ACM-AXN/Page/CreateOrEdit/index.js +19 -4
  107. package/lib/ACM-AXN/Page/Import/index.js +2 -2
  108. package/lib/ACM-AXN/Page/Types.d.ts +3 -0
  109. package/lib/ACM-AXN/Page/enums.d.ts +5 -0
  110. package/lib/ACM-AXN/Page/enums.js +7 -1
  111. package/lib/ACM-AXN/Permission/Components/Styles.d.ts +1 -2
  112. package/lib/ACM-AXN/PlaceFilter/DataTable/component/index.js +2 -5
  113. package/lib/ACM-AXN/PlaceFilter/Input/component/index.js +1 -2
  114. package/lib/ACM-AXN/PlaceFilter/Tag/component/TagChip.js +1 -1
  115. package/lib/ACM-AXN/PlaceFilter/interface.d.ts +1 -0
  116. package/lib/ACM-AXN/ScheduleCompletionRate/Container.js +16 -16
  117. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.d.ts +14 -9
  118. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.js +19 -18
  119. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRate.js +16 -6
  120. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRateDate.js +17 -10
  121. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.d.ts +2 -1
  122. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.js +30 -51
  123. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.test.js +1 -1
  124. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.d.ts +2 -2
  125. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.js +3 -9
  126. package/lib/ACM-AXN/ScheduleCompletionRate/Types.d.ts +16 -36
  127. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.d.ts +5 -5
  128. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.js +13 -10
  129. package/lib/ACM-AXN/Statistics/ControlPanel.js +17 -5
  130. package/lib/ACM-AXN/Statistics/Enums.d.ts +2 -1
  131. package/lib/ACM-AXN/Statistics/Enums.js +1 -0
  132. package/lib/ACM-AXN/StatisticsAudienceDemographic/Tabs/AgeRange.js +1 -0
  133. package/lib/ACM-AXN/StatisticsByProvince/DataTable.js +1 -1
  134. package/lib/ACM-AXN/TaskScheduler/CreateOrEdit.js +4 -4
  135. package/lib/ACM-AXN/Template/Container.js +2 -2
  136. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.d.ts +1 -0
  137. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.js +5 -1
  138. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.d.ts +2 -2
  139. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.js +56 -37
  140. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.d.ts +1 -1
  141. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.js +62 -51
  142. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.d.ts +28 -4
  143. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.js +43 -15
  144. package/lib/ACM-AXN/Template/CreateOrEdit/index.js +8 -4
  145. package/lib/ACM-AXN/Template/Import.js +2 -2
  146. package/lib/ACM-AXN/Template/Types.d.ts +9 -9
  147. package/lib/ACM-AXN/TransactionLog/Detail.js +1 -1
  148. package/lib/ACM-AXN/ViewTemplate/Preview.js +5 -6
  149. package/lib/ACM-AXN/ViewTemplate/TemplateField/Event.js +23 -11
  150. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.d.ts +18 -0
  151. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.js +170 -0
  152. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/index.js +42 -129
  153. package/lib/ACM-AXN/ViewTemplate/common.d.ts +2 -1
  154. package/lib/ACM-AXN/ViewTemplate/common.js +47 -7
  155. package/lib/ACM-AXN/ViewTemplate/container.js +8 -2
  156. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.d.ts +3 -1
  157. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.js +18 -28
  158. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.test.js +2 -0
  159. package/lib/ACM-AXN/Wizard/CreateOrEdit/RowTemplate.js +1 -1
  160. package/lib/ACM-AXN/Wizard/CreateOrEdit/index.js +17 -1
  161. package/lib/ACM-AXN/index.d.ts +1 -0
  162. package/lib/ACM-AXN/index.js +1 -0
  163. package/lib/AWING/AsyncAutocomplete/index.js +2 -2
  164. package/lib/AWING/BasicDataForm/BasicDataForm.js +9 -6
  165. package/lib/AWING/BasicDataForm/interface.d.ts +3 -0
  166. package/lib/AWING/Chart/BarLineComponent.js +20 -24
  167. package/lib/AWING/Chart/PieComponent.d.ts +3 -4
  168. package/lib/AWING/Chart/PieComponent.js +16 -16
  169. package/lib/AWING/Chart/Styles.js +51 -16
  170. package/lib/AWING/DataForm/DataInput.js +105 -23
  171. package/lib/AWING/DataForm/interface.d.ts +2 -0
  172. package/lib/AWING/DataGrid/index.js +8 -13
  173. package/lib/AWING/DateRangePicker/component.js +81 -33
  174. package/lib/AWING/DateRangePicker/configDate.d.ts +1 -2
  175. package/lib/AWING/DateRangePicker/configDate.js +12 -12
  176. package/lib/AWING/DateRangePicker/interface.d.ts +1 -0
  177. package/lib/AWING/Form/useForm.js +3 -2
  178. package/lib/AWING/GoogleMap/GGMap.d.ts +3 -0
  179. package/lib/AWING/GoogleMap/GGMap.js +256 -0
  180. package/lib/AWING/GoogleMap/index.d.ts +4 -0
  181. package/lib/AWING/GoogleMap/index.js +41 -0
  182. package/lib/AWING/GoogleMap/interface.d.ts +21 -0
  183. package/lib/AWING/GoogleMap/interface.js +2 -0
  184. package/lib/AWING/GoogleMap/utils.d.ts +25 -0
  185. package/lib/AWING/GoogleMap/utils.js +135 -0
  186. package/lib/AWING/GroupTable/GroupTable.js +2 -2
  187. package/lib/AWING/GroupTable/component.d.ts +1 -0
  188. package/lib/AWING/GroupTable/component.js +2 -2
  189. package/lib/AWING/NumberFormat/index.d.ts +3 -1
  190. package/lib/AWING/NumberFormat/index.js +2 -2
  191. package/lib/AWING/PageManagement/PageManagement.js +4 -3
  192. package/lib/AWING/Pagination/index.js +11 -3
  193. package/lib/AWING/index.d.ts +1 -0
  194. package/lib/AWING/index.js +1 -0
  195. package/lib/AWING/ultis/validation.d.ts +1 -0
  196. package/lib/AWING/ultis/validation.js +25 -6
  197. package/lib/Commons/Components/ClassicDrawer.js +5 -4
  198. package/lib/Commons/Components/HighlightedCode/MarkdownElement.js +6 -1
  199. package/lib/Commons/Hooks/usePath.js +3 -3
  200. package/lib/Utils/Helpers.d.ts +4 -3
  201. package/lib/Utils/Helpers.js +54 -23
  202. package/lib/i18n.js +31 -2
  203. package/lib/translate/en/translation.json +131 -71
  204. package/lib/translate/id/translation.json +893 -0
  205. package/lib/translate/ind/translation.json +893 -0
  206. package/lib/translate/ja/translation.json +893 -0
  207. package/lib/translate/lao/translation.json +893 -0
  208. package/lib/translate/mys/translation.json +893 -0
  209. package/lib/translate/phl/translation.json +893 -0
  210. package/lib/translate/th/translation.json +893 -0
  211. package/lib/translate/vi/translation.json +91 -31
  212. package/package.json +9 -4
@@ -17,16 +17,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  var jsx_runtime_1 = require("react/jsx-runtime");
18
18
  var material_1 = require("@mui/material");
19
19
  var styles_1 = require("@mui/styles");
20
- var ImageField_1 = __importDefault(require("./ImageField"));
21
- var VideoField_1 = __importDefault(require("./VideoField"));
22
- var MonacoEditor_1 = __importDefault(require("./MonacoEditor"));
23
- var common_1 = require("../../../common");
24
- var constant_1 = require("../../../constant");
25
- var Enum_1 = require("../../../Enum");
20
+ var validation_1 = require("../../../../../AWING/ultis/validation");
26
21
  var react_1 = require("react");
27
22
  var react_i18next_1 = require("react-i18next");
28
- var validation_1 = require("../../../../../AWING/ultis/validation");
29
- var debounce = require('lodash/debounce');
23
+ var Enum_1 = require("../../../Enum");
24
+ var ImageField_1 = __importDefault(require("./ImageField"));
25
+ var MonacoEditor_1 = __importDefault(require("./MonacoEditor"));
26
+ var Utils_1 = require("./Utils");
27
+ var VideoField_1 = __importDefault(require("./VideoField"));
30
28
  var useStyles = (0, styles_1.makeStyles)(function (theme) { return ({
31
29
  paper: {
32
30
  padding: '16px',
@@ -77,7 +75,6 @@ function BasicField(props) {
77
75
  }
78
76
  }
79
77
  else {
80
- console.log("fieldValue", { fieldValue: fieldValue });
81
78
  if (defaultValue && !fieldValue) {
82
79
  timeOut = setTimeout(function () {
83
80
  setFormValue(fieldPath, defaultValue);
@@ -99,8 +96,8 @@ function BasicField(props) {
99
96
  if (scriptValidate) {
100
97
  onChangeValidateProcess(Enum_1.VALIDATE_PROCESS_CODE.NOT_VALIDATE);
101
98
  }
102
- runValidate(scriptValidate || '', fields, pagePath, onNotifyError, onChangeViewValid, onChangeValidateProcess, configs);
103
- runAutoField(scriptAutoField || '', fields, fieldPath, pagePath, function (needUpdateFieldPath, newValue) {
99
+ (0, Utils_1.runValidate)(scriptValidate || '', fields, pagePath, onNotifyError, onChangeViewValid, onChangeValidateProcess, configs);
100
+ (0, Utils_1.runAutoField)(scriptAutoField || '', fields, fieldPath, pagePath, function (needUpdateFieldPath, newValue) {
104
101
  setFormValue(needUpdateFieldPath, newValue);
105
102
  onChange(needUpdateFieldPath);
106
103
  }, configs);
@@ -108,10 +105,14 @@ function BasicField(props) {
108
105
  var renderField = function () {
109
106
  // const isError = !!getValueByPath(/*errors*/ {}, fieldPath)
110
107
  var isError = errors.includes(fieldPath);
111
- var field = register(fieldPath, __assign({ required: isRequired }, fieldType === Enum_1.TYPE_FIELD_TEMPLATE.URL && {
112
- onValidate: function (value) { return (0, validation_1.urlValid)(value); }
108
+ var field = register(fieldPath, __assign(__assign({ required: isRequired }, fieldType === Enum_1.TYPE_FIELD_TEMPLATE.URL && {
109
+ onValidate: validation_1.urlValid
110
+ }), fieldType === Enum_1.TYPE_FIELD_TEMPLATE.COLOR && {
111
+ onValidate: validation_1.colorValid
113
112
  }));
113
+ // onChangeViewValid(isError)
114
114
  switch (fieldType) {
115
+ // return renderNumberField(field, isError)
115
116
  case Enum_1.TYPE_FIELD_TEMPLATE.TEXT_FIELD_NUMBER:
116
117
  case Enum_1.TYPE_FIELD_TEMPLATE.TEXT_FIELD:
117
118
  case Enum_1.TYPE_FIELD_TEMPLATE.URL:
@@ -134,10 +135,35 @@ function BasicField(props) {
134
135
  return null;
135
136
  }
136
137
  };
138
+ // const renderNumberField = React.useCallback((field: any, isError: boolean) => {
139
+ // return (
140
+ // <NumberFormat
141
+ // {...field}
142
+ // inputProps={{ min: 0 }}
143
+ // className={classes.text}
144
+ // required={isRequired}
145
+ // min={0}
146
+ // fullWidth
147
+ // variant="standard"
148
+ // label={labelName || fieldName}
149
+ // onChange={(e) => {
150
+ // let newValue = Number(e.target.value)
151
+ // console.log('newValue', newValue)
152
+ // handleChange(newValue)
153
+ // }}
154
+ // error={isError}
155
+ // helperText={isError ? t('Common.Required') : ''}
156
+ // />
157
+ // )
158
+ // // eslint-disable-next-line react-hooks/exhaustive-deps
159
+ // }, [classes, fieldName, isRequired, labelName, t])
137
160
  var renderTextField = function (field, isError) {
138
- 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
139
- ? { type: 'number' }
140
- : {} }, (fieldType === Enum_1.TYPE_FIELD_TEMPLATE.TEXTAREA
161
+ return ((0, jsx_runtime_1.jsx)(material_1.TextField, __assign({}, field, { className: classes.text, required: isRequired, fullWidth: true }, (fieldType === Enum_1.TYPE_FIELD_TEMPLATE.TEXT_FIELD_NUMBER
162
+ ? { inputProps: {
163
+ min: 0,
164
+ type: 'number',
165
+ } }
166
+ : {}), (fieldType === Enum_1.TYPE_FIELD_TEMPLATE.TEXTAREA
141
167
  ? { multiline: true, rows: 4 }
142
168
  : {}), { variant: "standard", label: labelName || fieldName, onChange: function (e) {
143
169
  handleChange(e.target.value);
@@ -213,116 +239,3 @@ function BasicField(props) {
213
239
  return renderField();
214
240
  }
215
241
  exports.default = BasicField;
216
- var getValidationParams = function (templateDatas, pagePath, configs) {
217
- var fields = templateDatas.map(function (dt) {
218
- // Convert all video, image link
219
- var fieldValue = dt.fieldValue;
220
- if ([
221
- Enum_1.TYPE_FIELD_TEMPLATE.IMAGE,
222
- Enum_1.TYPE_FIELD_TEMPLATE.VIDEO,
223
- Enum_1.TYPE_FIELD_TEMPLATE.OBJECT,
224
- Enum_1.TYPE_FIELD_TEMPLATE.LIST,
225
- ].includes(dt.fieldType)) {
226
- var jsonValue = JSON.stringify(fieldValue);
227
- if (jsonValue.includes(constant_1.ACM_TEMPLATE_PATH)) {
228
- jsonValue = jsonValue.replaceAll('/' + constant_1.ACM_TEMPLATE_PATH, "".concat(configs.TEMPLATE_FILE_PATH, "/").concat(dt.templateId));
229
- }
230
- if (jsonValue.includes(configs.FILE_RELATIVE_PATH || '')) {
231
- jsonValue = jsonValue.replaceAll(configs.FILE_RELATIVE_PATH || '', pagePath);
232
- }
233
- fieldValue = JSON.parse(jsonValue);
234
- }
235
- return __assign(__assign({}, dt), { fieldValue: fieldValue });
236
- });
237
- return [fields];
238
- };
239
- var runValidate = debounce(function (scriptValidate, fields, pagePath, notifyError, changeViewValidStatus, changeViewValidProcess, configs) {
240
- if (scriptValidate) {
241
- changeViewValidProcess(Enum_1.VALIDATE_PROCESS_CODE.VALIDATING);
242
- var params = getValidationParams(fields, pagePath, configs);
243
- (0, common_1.runScript)(
244
- // getValidationParams(fields, pagePath, configs),
245
- params, scriptValidate).then(function (result) {
246
- if (result) {
247
- var fieldsError_1 = [];
248
- var newAnswer = result.map(function (validInfo) {
249
- var _a;
250
- if (validInfo.code === Enum_1.VALID_TEMPLATE_CODE.SUCCESS) {
251
- return true;
252
- }
253
- else {
254
- var displayName = ((_a = fields.find(function (dt) {
255
- return validInfo.fieldName === dt.fieldName;
256
- })) === null || _a === void 0 ? void 0 : _a.labelName) || validInfo.fieldName;
257
- fieldsError_1.push("".concat(displayName).concat(validInfo.errorMessage
258
- ? ": ".concat(validInfo.errorMessage)
259
- : ''));
260
- return false;
261
- }
262
- });
263
- if (fieldsError_1.length > 0) {
264
- notifyError(fieldsError_1.toString());
265
- }
266
- changeViewValidStatus(newAnswer.length === 0 || !newAnswer.includes(false));
267
- }
268
- changeViewValidProcess(Enum_1.VALIDATE_PROCESS_CODE.VALIDATED);
269
- });
270
- }
271
- }, constant_1.DELAY_TIME_RUN_SCRIPT);
272
- var getAutoFieldParams = function (templateDatas, fieldPath, pagePath, configs) {
273
- var fields = templateDatas.map(function (dt) {
274
- // Convert all video, image link
275
- var fieldValue = dt.fieldValue;
276
- if ([
277
- Enum_1.TYPE_FIELD_TEMPLATE.IMAGE,
278
- Enum_1.TYPE_FIELD_TEMPLATE.VIDEO,
279
- Enum_1.TYPE_FIELD_TEMPLATE.OBJECT,
280
- Enum_1.TYPE_FIELD_TEMPLATE.LIST,
281
- ].includes(dt.fieldType)) {
282
- var jsonValue = JSON.stringify(fieldValue);
283
- if (jsonValue.includes(constant_1.ACM_TEMPLATE_PATH)) {
284
- jsonValue = jsonValue.replaceAll('/' + constant_1.ACM_TEMPLATE_PATH, "".concat(configs.TEMPLATE_FILE_PATH, "/").concat(dt.templateId));
285
- }
286
- if (jsonValue.includes(configs.FILE_RELATIVE_PATH || '')) {
287
- jsonValue = jsonValue.replaceAll(configs.FILE_RELATIVE_PATH || '', pagePath);
288
- }
289
- fieldValue = JSON.parse(jsonValue);
290
- }
291
- return __assign(__assign({}, dt), { fieldValue: fieldValue });
292
- });
293
- var keys = fieldPath.split('.');
294
- var fieldChange = fields[Number(keys[1])];
295
- return [fields, __assign(__assign({}, fieldChange), { changePath: fieldPath })];
296
- };
297
- var runAutoField = debounce(function (scriptAutoField, fields, fieldPath, pagePath, updateNewValue, configs) {
298
- if (scriptAutoField) {
299
- (0, common_1.runScript)(getAutoFieldParams(fields, fieldPath, pagePath, configs), scriptAutoField).then(function (result) {
300
- if (result) {
301
- result === null || result === void 0 ? void 0 : result.map(function (r) {
302
- var _a;
303
- var idx = fields.findIndex(function (f) { return f.fieldName === r.fieldName; });
304
- if ([
305
- Enum_1.TYPE_FIELD_TEMPLATE.IMAGE,
306
- Enum_1.TYPE_FIELD_TEMPLATE.VIDEO,
307
- Enum_1.TYPE_FIELD_TEMPLATE.OBJECT,
308
- Enum_1.TYPE_FIELD_TEMPLATE.LIST,
309
- ].includes(fields[idx].fieldType)) {
310
- var jsonValue = JSON.stringify(r.newValue);
311
- if (jsonValue.includes(pagePath)) {
312
- jsonValue = jsonValue.replaceAll(pagePath, configs.FILE_RELATIVE_PATH || '');
313
- }
314
- if (configs.TEMPLATE_FILE_PATH &&
315
- jsonValue.includes(configs.TEMPLATE_FILE_PATH)) {
316
- 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);
317
- jsonValue = jsonValue.replaceAll(templatePath, "\"/".concat(constant_1.ACM_TEMPLATE_PATH));
318
- }
319
- r.newValue = JSON.parse(jsonValue);
320
- }
321
- var needUpdateFieldPath = "templateDatas.".concat(idx, ".fieldValue");
322
- updateNewValue(needUpdateFieldPath, r.newValue);
323
- return r;
324
- });
325
- }
326
- });
327
- }
328
- }, constant_1.DELAY_TIME_RUN_SCRIPT);
@@ -1,7 +1,8 @@
1
- import { Configs } from "./interface";
1
+ import { Configs } from './interface';
2
2
  export declare const fillConfigs: (input: any) => any;
3
3
  export declare const isJSON: (value: any) => boolean;
4
4
  export declare const getValueByPath: (object: any, path: string) => any;
5
+ export declare const runScriptSandBox: (params: any[], script: string) => Promise<any>;
5
6
  export declare const runScript: (params: any[], script: string) => Promise<unknown>;
6
7
  export declare const convertRelativeLink: (link: string, pagePath: string, templateId: string, configs: Configs) => string;
7
8
  export declare const generateRandomInteger: (max: number) => number;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateRandomInteger = exports.convertRelativeLink = exports.runScript = exports.getValueByPath = exports.isJSON = exports.fillConfigs = void 0;
3
+ exports.generateRandomInteger = exports.convertRelativeLink = exports.runScript = exports.runScriptSandBox = exports.getValueByPath = exports.isJSON = exports.fillConfigs = void 0;
4
4
  var Enum_1 = require("./Enum");
5
5
  var constant_1 = require("./constant");
6
6
  var fillConfigs = function (input) {
@@ -15,12 +15,12 @@ var fillConfigs = function (input) {
15
15
  };
16
16
  exports.fillConfigs = fillConfigs;
17
17
  var isJSON = function (value) {
18
- if (typeof value !== "string")
18
+ if (typeof value !== 'string')
19
19
  return false;
20
20
  try {
21
21
  var result = JSON.parse(value);
22
22
  var type = Object.prototype.toString.call(result);
23
- return type === "[object Object]" || type === "[object Array]";
23
+ return type === '[object Object]' || type === '[object Array]';
24
24
  }
25
25
  catch (err) {
26
26
  return false;
@@ -28,14 +28,52 @@ var isJSON = function (value) {
28
28
  };
29
29
  exports.isJSON = isJSON;
30
30
  var getValueByPath = function (object, path) {
31
- var keys = path.split(".");
31
+ var keys = path.split('.');
32
32
  var result = object;
33
33
  for (var i = 0; i < keys.length; i++) {
34
- result = (result === null || result === void 0 ? void 0 : result[keys[i]]) || "";
34
+ result = (result === null || result === void 0 ? void 0 : result[keys[i]]) || '';
35
35
  }
36
36
  return result;
37
37
  };
38
38
  exports.getValueByPath = getValueByPath;
39
+ var runScriptSandBox = function (params, script) {
40
+ try {
41
+ var sandboxUrl = window.REACT_APP_API_ENDPOINT + '/api/Sandbox';
42
+ return fetch(sandboxUrl, {
43
+ method: 'POST',
44
+ headers: {
45
+ 'Content-Type': 'application/json-patch+json',
46
+ Accept: 'text/plain',
47
+ },
48
+ body: JSON.stringify({
49
+ jsCode: "\n const fn = (function func() {\n ".concat(script, "\n })();\n return fn(").concat(Array.from(params).map(function (i) { return JSON.stringify(i); }), ");\n ").trim(),
50
+ sandboxType: 0,
51
+ }).trim(),
52
+ credentials: 'include',
53
+ })
54
+ .then(function (r) { return r.json(); })
55
+ .then(function (r) { return JSON.parse(r.jsResult); });
56
+ }
57
+ catch (error) {
58
+ console.error('Error running script:', error);
59
+ return Promise.resolve([]);
60
+ }
61
+ // return new Promise((resolve, reject) => {
62
+ // try {
63
+ // // eslint-disable-next-line
64
+ // var scriptFunction = new Function(script)()
65
+ // } catch (error) {
66
+ // scriptFunction = (...params: any[]) => {
67
+ // return new Promise((resolve, reject) => resolve([]))
68
+ // }
69
+ // }
70
+ // scriptFunction(...params).then((result: any[]) => {
71
+ // console.log('Script result:', result)
72
+ // resolve(result)
73
+ // })
74
+ // })
75
+ };
76
+ exports.runScriptSandBox = runScriptSandBox;
39
77
  var runScript = function (params, script) {
40
78
  return new Promise(function (resolve, reject) {
41
79
  try {
@@ -60,9 +98,11 @@ exports.runScript = runScript;
60
98
  var convertRelativeLink = function (link, pagePath, templateId, configs) {
61
99
  var isTemplatePath = link === null || link === void 0 ? void 0 : link.includes(constant_1.ACM_TEMPLATE_PATH);
62
100
  if (isTemplatePath) {
63
- return "".concat(configs.TEMPLATE_FILE_PATH, "/").concat(templateId, "/").concat(link.split("/")[link.split("/").length - 1]);
101
+ return "".concat(configs.TEMPLATE_FILE_PATH, "/").concat(templateId, "/").concat(link.split('/')[link.split('/').length - 1]);
64
102
  }
65
- return (link === null || link === void 0 ? void 0 : link.includes(constant_1.ACM_PAGE_PATH)) ? "".concat(pagePath, "/").concat(link.split("/")[link.split("/").length - 1]) || "" : link;
103
+ return (link === null || link === void 0 ? void 0 : link.includes(constant_1.ACM_PAGE_PATH))
104
+ ? "".concat(pagePath, "/").concat(link.split('/')[link.split('/').length - 1]) || ''
105
+ : link;
66
106
  };
67
107
  exports.convertRelativeLink = convertRelativeLink;
68
108
  var generateRandomInteger = function (max) {
@@ -85,7 +85,7 @@ function ViewTemplate(_a) {
85
85
  return ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, spacing: 4, children: [(0, jsx_runtime_1.jsxs)(material_1.Grid, { item: true, xs: enablePreview ? 8 : 12, children: [templateLabelName && ((0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "body1", style: {
86
86
  fontWeight: "bold",
87
87
  textTransform: "uppercase",
88
- }, children: templateLabelName })), fields && renderFields(fields, false), (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { id: "advance-option", style: {
88
+ }, children: templateLabelName })), fields && renderFields(fields, false), enablePreview && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { id: "advance-option", style: {
89
89
  display: "flex",
90
90
  flexDirection: "row",
91
91
  justifyContent: "space-between",
@@ -93,7 +93,13 @@ function ViewTemplate(_a) {
93
93
  cursor: "pointer",
94
94
  }, onClick: function () {
95
95
  setAdvanceOptionExpand(!advanceOptionExpand);
96
- }, children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { style: { fontWeight: "bold" }, children: t("ViewTemplate.AdvanceOption") }), (0, jsx_runtime_1.jsx)(material_1.IconButton, { children: advanceOptionExpand ? ((0, jsx_runtime_1.jsx)(icons_material_1.ExpandLess, {})) : ((0, jsx_runtime_1.jsx)(icons_material_1.ExpandMore, {})) })] }), advanceOptionExpand && ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, children: [fields && advanceFields.length > 0 && renderFields(fields, true), (0, jsx_runtime_1.jsx)(Event_1.default, __assign({}, props))] }))] })] }), enablePreview && ((0, jsx_runtime_1.jsxs)(material_1.Grid, { item: true, xs: 4, children: [(0, jsx_runtime_1.jsx)(Preview_1.default, { domainId: domainId || "", validStatus: validStatus, configs: CONFIGS, pagePath: pagePath, templateDatas: templateDatas }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "caption", children: t("ViewTemplate.PreviewLoadingNote") })] }))] }));
96
+ }, children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { style: { fontWeight: "bold" }, children: t("ViewTemplate.AdvanceOption") }), (0, jsx_runtime_1.jsx)(material_1.IconButton, { children: advanceOptionExpand ? ((0, jsx_runtime_1.jsx)(icons_material_1.ExpandLess, {})) : ((0, jsx_runtime_1.jsx)(icons_material_1.ExpandMore, {})) })] }), (0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, sx: {
97
+ transition: "all 3s",
98
+ }, style: advanceOptionExpand ? {
99
+ display: "block",
100
+ } : {
101
+ display: "none",
102
+ }, children: [fields && advanceFields.length > 0 && renderFields(fields, true), (0, jsx_runtime_1.jsx)(Event_1.default, __assign({}, props))] })] }))] }), enablePreview && ((0, jsx_runtime_1.jsxs)(material_1.Grid, { item: true, xs: 4, children: [(0, jsx_runtime_1.jsx)(Preview_1.default, { domainId: domainId || "", validStatus: validStatus, configs: CONFIGS, pagePath: pagePath, templateDatas: templateDatas }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "caption", children: t("ViewTemplate.PreviewLoadingNote") })] }))] }));
97
103
  }
98
104
  exports.default = ViewTemplate;
99
105
  var getChilds = function (fields, fieldInfo) {
@@ -1,7 +1,9 @@
1
1
  /// <reference types="react" />
2
- import { IWizardTemplate } from '../Types';
2
+ import { Directory, TemplateType, IWizardTemplate } from '../Types';
3
3
  interface PropsPageTemplate {
4
4
  pageCodeValue: number;
5
+ directories: Directory[];
6
+ templateTypes: TemplateType[];
5
7
  wizardTemplates: IWizardTemplate[];
6
8
  onConfirmExit: () => void;
7
9
  onChange: (wizardNew: object) => void;
@@ -19,55 +19,45 @@ var react_1 = require("react");
19
19
  var react_i18next_1 = require("react-i18next");
20
20
  var Add_1 = __importDefault(require("@mui/icons-material/Add"));
21
21
  var material_1 = require("@mui/material");
22
- var Hooks_1 = __importDefault(require("../Hooks"));
23
22
  var RowTemplate_1 = __importDefault(require("./RowTemplate"));
24
23
  var AWING_1 = require("../../../AWING");
25
24
  var enums_1 = require("../../../ACM-AXN/Page/enums");
26
25
  var Utils_1 = require("../Utils");
27
26
  function PageTemplate(props) {
28
- var pageCodeValue = props.pageCodeValue, wizardTemplates = props.wizardTemplates, onChange = props.onChange, onConfirmExit = props.onConfirmExit, _a = props.onUpdateWizardLogin, onUpdateWizardLogin = _a === void 0 ? function () { return null; } : _a;
27
+ var pageCodeValue = props.pageCodeValue, wizardTemplates = props.wizardTemplates, templateTypes = props.templateTypes, directories = props.directories, onChange = props.onChange, onConfirmExit = props.onConfirmExit, _a = props.onUpdateWizardLogin, onUpdateWizardLogin = _a === void 0 ? function () { return null; } : _a;
29
28
  var t = (0, react_i18next_1.useTranslation)().t;
30
- var service = (0, Hooks_1.default)().service;
31
29
  var isPageCodeLogin = pageCodeValue === enums_1.PageCode.Lgn;
32
30
  var pageCode = pageCodeValue === enums_1.PageCode.Lgn ? Utils_1.CPageCode.LGN : Utils_1.CPageCode.WLC;
33
31
  var _b = (0, react_1.useState)(true), loadingDirectory = _b[0], setLoadingDirectories = _b[1];
34
32
  var _c = (0, react_1.useState)(true), loadingtemplateTypes = _c[0], setLoadingTemplateTypes = _c[1];
35
33
  // DATA => Tên Thư Mục
36
- var _d = (0, react_1.useState)([]), directories = _d[0], setDirectories = _d[1];
34
+ var _d = (0, react_1.useState)([]), pageDirectories = _d[0], setPageDirectories = _d[1];
37
35
  // DATA => Kiểu template
38
- var _e = (0, react_1.useState)([]), templateTypes = _e[0], setTemplateTypes = _e[1];
39
- (0, react_1.useEffect)(function () {
40
- service
41
- .templatesGetDirectories()
42
- .then(function (directories_) {
36
+ var _e = (0, react_1.useState)([]), pageTemplateTypes = _e[0], setPageTemplateTypes = _e[1];
37
+ (0, react_1.useLayoutEffect)(function () {
38
+ if (directories.length > 0) {
43
39
  // CALL API => DATA => Tên Thư Mục
44
- var systemDirectoryIndex = directories_ === null || directories_ === void 0 ? void 0 : directories_.findIndex(function (directory) {
40
+ var systemDirectoryIndex = directories === null || directories === void 0 ? void 0 : directories.findIndex(function (directory) {
45
41
  return directory.parentDirectoryId ===
46
42
  Utils_1.ROOT_DIRECTORY.SYSTEM_DIRECTORY.toString();
47
43
  });
48
44
  if (systemDirectoryIndex !== -1) {
49
- directories_[systemDirectoryIndex].name = 'SYSTEM TEMPLATE';
45
+ directories[systemDirectoryIndex].name = 'SYSTEM TEMPLATE';
50
46
  }
51
- setDirectories(directories_);
52
- })
53
- .finally(function () {
54
- setLoadingDirectories(false);
55
- });
47
+ setPageDirectories(directories);
48
+ loadingDirectory && setLoadingDirectories(false);
49
+ }
56
50
  // eslint-disable-next-line react-hooks/exhaustive-deps
57
- }, []);
58
- (0, react_1.useEffect)(function () {
59
- service
60
- .templateTypesGet()
61
- .then(function (templateTypes_) {
62
- setTemplateTypes(templateTypes_.filter(function (itemTemplate) {
51
+ }, [directories.length]);
52
+ (0, react_1.useLayoutEffect)(function () {
53
+ if (templateTypes.length > 0) {
54
+ setPageTemplateTypes(templateTypes.filter(function (itemTemplate) {
63
55
  return itemTemplate.templateTypeCode === pageCode;
64
56
  }));
65
- })
66
- .finally(function () {
67
- setLoadingTemplateTypes(false);
68
- });
57
+ loadingtemplateTypes && setLoadingTemplateTypes(false);
58
+ }
69
59
  // eslint-disable-next-line react-hooks/exhaustive-deps
70
- }, [pageCodeValue]);
60
+ }, [templateTypes.length]);
71
61
  var handleChangeRowTemplate = function (fieldValue, sortOrder) {
72
62
  var _a;
73
63
  onConfirmExit();
@@ -93,6 +83,6 @@ function PageTemplate(props) {
93
83
  ? t('Wizard.LoginTemplate')
94
84
  : t('Wizard.WelcomeTemplate') }), isPageCodeLogin && ((0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", "aria-label": "button-add", title: t('Common.Add'), "data-testid": "button-add", onClick: function () {
95
85
  return onUpdateWizardLogin(Utils_1.TYPE_LOGIN_TEMPLATE.ADD);
96
- }, children: (0, jsx_runtime_1.jsx)(Add_1.default, {}) }))] }), loadingDirectory || loadingtemplateTypes ? ((0, jsx_runtime_1.jsx)(AWING_1.CircularProgress, {})) : ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: wizardTemplates.map(function (template, idx) { return ((0, jsx_runtime_1.jsx)(RowTemplate_1.default, { template: template, pageCode: pageCode, directories: directories, templateTypes: templateTypes, onChangeRow: handleChangeRowTemplate, onUpdateWizardLogin: onUpdateWizardLogin, disabledIconDelete: wizardTemplates.length === 1 }, idx)); }) }))] }));
86
+ }, children: (0, jsx_runtime_1.jsx)(Add_1.default, {}) }))] }), loadingDirectory || loadingtemplateTypes ? ((0, jsx_runtime_1.jsx)(AWING_1.CircularProgress, {})) : ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: wizardTemplates.map(function (template, idx) { return ((0, jsx_runtime_1.jsx)(RowTemplate_1.default, { template: template, pageCode: pageCode, directories: pageDirectories, templateTypes: pageTemplateTypes, onChangeRow: handleChangeRowTemplate, onUpdateWizardLogin: onUpdateWizardLogin, disabledIconDelete: wizardTemplates.length === 1 }, idx)); }) }))] }));
97
87
  }
98
88
  exports.default = (0, react_1.memo)(PageTemplate);
@@ -76,6 +76,8 @@ describe('PageTemplate component', function () {
76
76
  var mockData = {
77
77
  pageCodeValue: 1,
78
78
  wizardTemplates: [],
79
+ directories: [],
80
+ templateTypes: [],
79
81
  onConfirmExit: jest.fn(),
80
82
  onChange: jest.fn(),
81
83
  onUpdateWizardLogin: jest.fn(),
@@ -47,7 +47,7 @@ function RowTemplate(props) {
47
47
  }, [template]);
48
48
  (0, react_1.useEffect)(function () {
49
49
  if (wizardTemplate === null || wizardTemplate === void 0 ? void 0 : wizardTemplate.directoryId) {
50
- setIsLoadingParameter(true);
50
+ !isLoadingParameter && setIsLoadingParameter(true);
51
51
  service
52
52
  .templatesGetByDirectoryId(wizardTemplate.directoryId)
53
53
  .then(function (template_) {
@@ -49,6 +49,22 @@ function CreateOrEdit() {
49
49
  }), wizardData = _c[0], setWizardData = _c[1];
50
50
  // Nhóm Wizard
51
51
  var _d = (0, react_1.useState)([]), wizardGroup = _d[0], setWizardGroup = _d[1];
52
+ // DATA => Kiểu template
53
+ var _e = (0, react_1.useState)([]), templateTypes = _e[0], setTemplateTypes = _e[1];
54
+ // DATA => Tên Thư Mục
55
+ var _f = (0, react_1.useState)([]), directories = _f[0], setDirectories = _f[1];
56
+ (0, react_1.useEffect)(function () {
57
+ if (!templateTypes.length) {
58
+ service.templateTypesGet().then(setTemplateTypes);
59
+ }
60
+ // eslint-disable-next-line react-hooks/exhaustive-deps
61
+ }, [templateTypes.length]);
62
+ (0, react_1.useEffect)(function () {
63
+ if (!directories.length) {
64
+ service.templatesGetDirectories().then(setDirectories);
65
+ }
66
+ // eslint-disable-next-line react-hooks/exhaustive-deps
67
+ }, [directories.length]);
52
68
  (0, react_1.useEffect)(function () {
53
69
  if (id) {
54
70
  setLoading(true);
@@ -125,7 +141,7 @@ function CreateOrEdit() {
125
141
  hasValidData((wizardData === null || wizardData === void 0 ? void 0 : wizardData.wizardWelcomeTemplates) || []));
126
142
  };
127
143
  return ((0, jsx_runtime_1.jsx)(ClassicDrawer_1.default, { title: id ? t('Common.Edit') : t('Common.Create'), onSubmit: handleSubmit, confirmExit: confirmExit, childrenWrapperStyle: { padding: 0 }, disableButtonSubmit: !(isDisable() && confirmExit), children: loading ? ((0, jsx_runtime_1.jsx)(AWING_1.CircularProgress, {})) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(FormInformationBasic_1.default, { wizardData: wizardData, wizardGroup: wizardGroup, onChange: handleChange, onConfirmExit: handleConfirmExit }), TEMPLATES.map(function (value) {
128
- return ((0, jsx_runtime_1.jsx)(PageTemplate_1.default, { pageCodeValue: value, onChange: handleChange, onConfirmExit: handleConfirmExit, wizardTemplates: value === enums_1.PageCode.Lgn
144
+ return ((0, jsx_runtime_1.jsx)(PageTemplate_1.default, { pageCodeValue: value, onChange: handleChange, directories: directories, templateTypes: templateTypes, onConfirmExit: handleConfirmExit, wizardTemplates: value === enums_1.PageCode.Lgn
129
145
  ? (wizardData === null || wizardData === void 0 ? void 0 : wizardData.wizardLoginTemplates) || []
130
146
  : (wizardData === null || wizardData === void 0 ? void 0 : wizardData.wizardWelcomeTemplates) ||
131
147
  [], onUpdateWizardLogin: handleUpdateWizardLoginTemplate }, value));
@@ -1,2 +1,3 @@
1
1
  export * from "./PlaceFilter";
2
2
  export * from "./Permission";
3
+ export * from "./Template";
@@ -16,3 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./PlaceFilter"), exports);
18
18
  __exportStar(require("./Permission"), exports);
19
+ __exportStar(require("./Template"), exports);
@@ -33,7 +33,7 @@ var Autocomplete_1 = __importDefault(require("@mui/material/Autocomplete"));
33
33
  var Checkbox_1 = __importDefault(require("@mui/material/Checkbox"));
34
34
  var CheckBoxOutlineBlank_1 = __importDefault(require("@mui/icons-material/CheckBoxOutlineBlank"));
35
35
  var CheckBox_1 = __importDefault(require("@mui/icons-material/CheckBox"));
36
- var throttle_1 = __importDefault(require("lodash/throttle"));
36
+ var lodash_1 = require("lodash");
37
37
  function AsyncAutocomplete(props) {
38
38
  var _a;
39
39
  var multiple = props.multiple, _b = props.value, value = _b === void 0 ? null : _b, onChange = props.onChange, fetchData = props.fetchData, getOptionValue = props.getOptionValue, getOptionLabel = props.getOptionLabel, readOnly = props.readOnly, TextFieldProps = props.TextFieldProps, renderOption = props.renderOption;
@@ -41,7 +41,7 @@ function AsyncAutocomplete(props) {
41
41
  var _d = react_2.default.useState([]), options = _d[0], setOptions = _d[1];
42
42
  var _e = react_2.default.useState(false), loading = _e[0], setLoading = _e[1];
43
43
  var fetch = react_2.default.useMemo(function () {
44
- return (0, throttle_1.default)(function (input, callback) {
44
+ return (0, lodash_1.debounce)(function (input, callback) {
45
45
  setLoading(true);
46
46
  fetchData(input)
47
47
  .then(function (response) {
@@ -65,6 +65,7 @@ var BasicDataForm = function (props) {
65
65
  var _b = react_1.default.useState(function () {
66
66
  return getCurrentObj({ oldValue: oldValue, fields: fields });
67
67
  }), currentObj = _b[0], setCurrentObj = _b[1];
68
+ var renderCount = react_1.default.useRef(0);
68
69
  var _c = react_1.default.useState({}), currentValid = _c[0], setCurrentValid = _c[1];
69
70
  var errorText = react_1.default.useRef({
70
71
  default: t('Common.InvalidData'),
@@ -100,7 +101,7 @@ var BasicDataForm = function (props) {
100
101
  : (0, exports.DefaultCheckValid)(fieldType, value);
101
102
  };
102
103
  react_1.default.useEffect(function () {
103
- if (oldValue) {
104
+ if (oldValue && renderCount.current !== 0) {
104
105
  setCurrentObj(getCurrentObj({ oldValue: oldValue, fields: fields }));
105
106
  var valid = {};
106
107
  for (var i = 0; i < fields.length; i++) {
@@ -109,6 +110,7 @@ var BasicDataForm = function (props) {
109
110
  }
110
111
  setCurrentValid(valid);
111
112
  }
113
+ renderCount.current += 1;
112
114
  // eslint-disable-next-line react-hooks/exhaustive-deps
113
115
  }, []);
114
116
  var handleChange = function (fieldName, fieldValue) {
@@ -159,7 +161,7 @@ var BasicDataForm = function (props) {
159
161
  width: '100%',
160
162
  }, children: actions }))] })), (0, jsx_runtime_1.jsx)(material_1.Grid, { container: true, spacing: 2, children: fields.map(function (fieldDef, index) {
161
163
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
162
- var fieldName = fieldDef.fieldName, _t = fieldDef.type, type = _t === void 0 ? 'text' : _t, checkValid = fieldDef.checkValid, options = fieldDef.options, loading = fieldDef.loading, customeFieldChange = fieldDef.customeFieldChange, AsynchronousAutocompleteProps = fieldDef.AsynchronousAutocompleteProps, SearchProps = fieldDef.SearchProps, defaultValue = fieldDef.defaultValue, value = fieldDef.value, other = __rest(fieldDef, ["fieldName", "type", "checkValid", "options", "loading", "customeFieldChange", "AsynchronousAutocompleteProps", "SearchProps", "defaultValue", "value"]);
164
+ var fieldName = fieldDef.fieldName, _t = fieldDef.type, type = _t === void 0 ? 'text' : _t, checkValid = fieldDef.checkValid, options = fieldDef.options, loading = fieldDef.loading, customeFieldChange = fieldDef.customeFieldChange, AsynchronousAutocompleteProps = fieldDef.AsynchronousAutocompleteProps, AutocompleteBasicProps = fieldDef.AutocompleteBasicProps, SearchProps = fieldDef.SearchProps, defaultValue = fieldDef.defaultValue, value = fieldDef.value, other = __rest(fieldDef, ["fieldName", "type", "checkValid", "options", "loading", "customeFieldChange", "AsynchronousAutocompleteProps", "AutocompleteBasicProps", "SearchProps", "defaultValue", "value"]);
163
165
  var fieldValue = value !== null && value !== void 0 ? value : currentObj[fieldName];
164
166
  var showError = currentValid[fieldName] !== undefined &&
165
167
  !currentValid[fieldName];
@@ -189,7 +191,7 @@ var BasicDataForm = function (props) {
189
191
  .endAdornment] })) }), error: showError, helperText: showError
190
192
  ? (_a = fieldDef.helperText) !== null && _a !== void 0 ? _a : t('Common.InvalidData')
191
193
  : '' })));
192
- } }, index));
194
+ }, disableClearable: AutocompleteBasicProps === null || AutocompleteBasicProps === void 0 ? void 0 : AutocompleteBasicProps.disableClearable }, index));
193
195
  break;
194
196
  case 'checkbox':
195
197
  currentField = ((0, jsx_runtime_1.jsx)(material_1.FormControl, { fullWidth: true, required: fieldDef.required, children: (0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { control: (0, jsx_runtime_1.jsx)(material_1.Checkbox, { id: fieldName, name: fieldName, checked: fieldValue, onChange: function (event) {
@@ -217,7 +219,7 @@ var BasicDataForm = function (props) {
217
219
  } }, fieldDef.DateProps), fieldName));
218
220
  break;
219
221
  case 'date-range':
220
- currentField = ((0, jsx_runtime_1.jsx)(DateRangePicker_1.default, __assign({ variant: "outlined", textFieldProps: {
222
+ currentField = ((0, jsx_runtime_1.jsx)(DateRangePicker_1.default, __assign({ required: fieldDef === null || fieldDef === void 0 ? void 0 : fieldDef.required, variant: "outlined", textFieldProps: {
221
223
  fullWidth: true,
222
224
  }, value: {
223
225
  startDate: (fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue[0]) || null,
@@ -369,8 +371,9 @@ var BasicDataForm = function (props) {
369
371
  case 'geo-fencing': {
370
372
  var geoProps = (fieldDef === null || fieldDef === void 0 ? void 0 : fieldDef.GeoFencingProps) || {};
371
373
  currentField = ((0, jsx_runtime_1.jsx)("div", { style: { margin: '16px 0px' }, children: (0, jsx_runtime_1.jsx)(GeoFencing_1.default, __assign({ configs: {
372
- GOONG_API_KEY: '',
373
- GOONG_MAP_KEY: '',
374
+ // GOONG_API_KEY: '',
375
+ // GOONG_MAP_KEY: '',
376
+ GOOGLE_MAP_KEY: '',
374
377
  }, label: '' }, geoProps, { onChange: function (value) {
375
378
  return handleChange(fieldName, value ? value : null);
376
379
  } }), index) }, index));
@@ -37,6 +37,9 @@ export interface BasicFieldDefinition extends BaseTextFieldProps {
37
37
  */
38
38
  customeFieldChange?(fieldValue: any): DataObject;
39
39
  AsynchronousAutocompleteProps?: AsynchronousAutocompleteProps;
40
+ AutocompleteBasicProps?: {
41
+ disableClearable?: boolean;
42
+ };
40
43
  SearchProps?: {
41
44
  searchResult?: any;
42
45
  error: boolean;