awing-library 2.1.138-beta → 2.1.138

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 (215) 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 +6 -1
  23. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.js +3 -22
  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 -3
  26. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.d.ts +22 -42
  27. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.js +317 -104
  28. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/component.js +1 -1
  29. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.d.ts +3 -0
  30. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.js +119 -54
  31. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.d.ts +1 -1
  32. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.js +46 -8
  33. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/component.js +8 -6
  34. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/container.js +1 -1
  35. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/PasswordDialog.d.ts +9 -0
  36. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/PasswordDialog.js +56 -0
  37. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Table.js +5 -1
  38. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.d.ts +12 -0
  39. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.js +23 -8
  40. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/component.js +3 -3
  41. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/container.js +63 -12
  42. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.d.ts +1 -0
  43. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.js +17 -4
  44. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Types.d.ts +10 -0
  45. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Utils.js +4 -1
  46. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.d.ts +1 -0
  47. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.js +3 -2
  48. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/component.js +6 -2
  49. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/container.js +31 -29
  50. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdList.js +1 -1
  51. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdRow.js +1 -1
  52. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/LimitEvent.js +16 -11
  53. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/TargetOS/container.js +2 -2
  54. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.js +1 -1
  55. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/EditAds.js +5 -5
  56. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.js +69 -124
  57. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.test.js +3 -13
  58. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignList.js +45 -20
  59. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.js +3 -2
  60. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/index.js +3 -2
  61. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/useSearchPage.js +33 -8
  62. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.d.ts +5 -1
  63. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.js +176 -59
  64. package/lib/ACM-AXN/Campaign/Enum.d.ts +24 -6
  65. package/lib/ACM-AXN/Campaign/Enum.js +30 -11
  66. package/lib/ACM-AXN/Campaign/Types.d.ts +53 -5
  67. package/lib/ACM-AXN/Campaign/Utils.d.ts +6 -1
  68. package/lib/ACM-AXN/Campaign/Utils.js +50 -3
  69. package/lib/ACM-AXN/Campaign/index.js +2 -2
  70. package/lib/ACM-AXN/CampaignPlan/Container.js +4 -6
  71. package/lib/ACM-AXN/CampaignPlan/Detail.js +3 -3
  72. package/lib/ACM-AXN/CampaignPlan/Filter.js +1 -1
  73. package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/Filter.js +14 -10
  74. package/lib/ACM-AXN/CampaignSchedule/Components/EnhancedPagination/index.js +3 -2
  75. package/lib/ACM-AXN/CampaignSchedule/Components/RowAdvance/component.js +7 -5
  76. package/lib/ACM-AXN/CampaignSchedule/DataConfig.js +4 -4
  77. package/lib/ACM-AXN/CampaignSchedule/DataConfigAXN.js +5 -4
  78. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.d.ts +1 -2
  79. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.js +1 -5
  80. package/lib/ACM-AXN/Common/Constant.d.ts +3 -0
  81. package/lib/ACM-AXN/Common/Constant.js +2 -0
  82. package/lib/ACM-AXN/Common/Enum.d.ts +8 -3
  83. package/lib/ACM-AXN/Common/Enum.js +19 -4
  84. package/lib/ACM-AXN/Common/Types.d.ts +5 -0
  85. package/lib/ACM-AXN/GeoFencing/GoongMap/index.d.ts +8 -9
  86. package/lib/ACM-AXN/GeoFencing/component.js +7 -7
  87. package/lib/ACM-AXN/GeoFencing/interface.d.ts +1 -2
  88. package/lib/ACM-AXN/Holiday/FormHoliday.js +1 -0
  89. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.d.ts +0 -5
  90. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.js +7 -90
  91. package/lib/ACM-AXN/Notifications/NotificationPopover/index.d.ts +0 -5
  92. package/lib/ACM-AXN/Notifications/Types.d.ts +2 -0
  93. package/lib/ACM-AXN/Page/Constant.js +2 -0
  94. package/lib/ACM-AXN/Page/Container.js +3 -3
  95. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.d.ts +6 -0
  96. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.js +63 -0
  97. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.d.ts +11 -2
  98. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.js +16 -12
  99. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/TrackingCode.js +1 -1
  100. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/Utils.js +1 -1
  101. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/index.js +1 -0
  102. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.d.ts +1 -9
  103. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.js +0 -9
  104. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewContent.js +11 -44
  105. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.d.ts +2 -3
  106. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.js +39 -61
  107. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/index.js +29 -32
  108. package/lib/ACM-AXN/Page/CreateOrEdit/Utils.js +10 -9
  109. package/lib/ACM-AXN/Page/CreateOrEdit/index.js +19 -4
  110. package/lib/ACM-AXN/Page/Types.d.ts +3 -0
  111. package/lib/ACM-AXN/Page/enums.d.ts +5 -0
  112. package/lib/ACM-AXN/Page/enums.js +7 -1
  113. package/lib/ACM-AXN/Permission/Components/Styles.d.ts +1 -2
  114. package/lib/ACM-AXN/PlaceFilter/DataTable/component/index.js +2 -5
  115. package/lib/ACM-AXN/PlaceFilter/Input/component/index.js +1 -2
  116. package/lib/ACM-AXN/PlaceFilter/interface.d.ts +1 -0
  117. package/lib/ACM-AXN/ScheduleCompletionRate/Container.js +16 -16
  118. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.d.ts +14 -9
  119. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.js +19 -18
  120. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRate.js +16 -6
  121. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRateDate.js +17 -10
  122. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.d.ts +2 -1
  123. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.js +30 -51
  124. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.test.js +1 -1
  125. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.d.ts +2 -2
  126. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.js +3 -9
  127. package/lib/ACM-AXN/ScheduleCompletionRate/Types.d.ts +16 -36
  128. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.d.ts +5 -5
  129. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.js +13 -10
  130. package/lib/ACM-AXN/Statistics/ControlPanel.js +17 -5
  131. package/lib/ACM-AXN/Statistics/Enums.d.ts +2 -1
  132. package/lib/ACM-AXN/Statistics/Enums.js +1 -0
  133. package/lib/ACM-AXN/StatisticsAudienceDemographic/Tabs/AgeRange.js +1 -0
  134. package/lib/ACM-AXN/StatisticsByProvince/DataTable.js +1 -1
  135. package/lib/ACM-AXN/TaskScheduler/CreateOrEdit.js +4 -4
  136. package/lib/ACM-AXN/Template/Container.js +2 -2
  137. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.d.ts +1 -0
  138. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.js +5 -1
  139. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.d.ts +2 -2
  140. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.js +56 -39
  141. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.d.ts +1 -1
  142. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.js +62 -51
  143. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.d.ts +28 -4
  144. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.js +43 -15
  145. package/lib/ACM-AXN/Template/CreateOrEdit/index.js +8 -4
  146. package/lib/ACM-AXN/Template/Import.js +2 -2
  147. package/lib/ACM-AXN/Template/Types.d.ts +9 -9
  148. package/lib/ACM-AXN/TransactionLog/Detail.js +1 -1
  149. package/lib/ACM-AXN/ViewTemplate/Preview.js +5 -6
  150. package/lib/ACM-AXN/ViewTemplate/TemplateField/Event.js +23 -11
  151. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.d.ts +18 -0
  152. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.js +170 -0
  153. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/index.js +46 -160
  154. package/lib/ACM-AXN/ViewTemplate/common.d.ts +2 -1
  155. package/lib/ACM-AXN/ViewTemplate/common.js +48 -9
  156. package/lib/ACM-AXN/ViewTemplate/container.js +23 -24
  157. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.d.ts +3 -1
  158. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.js +18 -28
  159. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.test.js +2 -0
  160. package/lib/ACM-AXN/Wizard/CreateOrEdit/RowTemplate.js +1 -1
  161. package/lib/ACM-AXN/Wizard/CreateOrEdit/index.js +17 -1
  162. package/lib/ACM-AXN/index.d.ts +1 -0
  163. package/lib/ACM-AXN/index.js +1 -0
  164. package/lib/AWING/AsyncAutocomplete/index.js +2 -2
  165. package/lib/AWING/BasicDataForm/BasicDataForm.js +9 -6
  166. package/lib/AWING/BasicDataForm/interface.d.ts +3 -0
  167. package/lib/AWING/Chart/BarLineComponent.js +20 -25
  168. package/lib/AWING/Chart/PieComponent.d.ts +3 -4
  169. package/lib/AWING/Chart/PieComponent.js +16 -16
  170. package/lib/AWING/Chart/Styles.js +51 -16
  171. package/lib/AWING/DataForm/DataInput.js +104 -22
  172. package/lib/AWING/DataForm/interface.d.ts +2 -0
  173. package/lib/AWING/DataGrid/index.js +8 -13
  174. package/lib/AWING/DateRangePicker/component.js +58 -30
  175. package/lib/AWING/DateRangePicker/configDate.d.ts +1 -2
  176. package/lib/AWING/DateRangePicker/configDate.js +12 -12
  177. package/lib/AWING/DateRangePicker/interface.d.ts +1 -0
  178. package/lib/AWING/Form/useForm.js +3 -2
  179. package/lib/AWING/GoogleMap/GGMap.d.ts +3 -0
  180. package/lib/AWING/GoogleMap/GGMap.js +256 -0
  181. package/lib/AWING/GoogleMap/index.d.ts +4 -0
  182. package/lib/AWING/GoogleMap/index.js +41 -0
  183. package/lib/AWING/GoogleMap/interface.d.ts +21 -0
  184. package/lib/AWING/GoogleMap/interface.js +2 -0
  185. package/lib/AWING/GoogleMap/utils.d.ts +25 -0
  186. package/lib/AWING/GoogleMap/utils.js +135 -0
  187. package/lib/AWING/GroupTable/GroupTable.js +4 -5
  188. package/lib/AWING/GroupTable/component.d.ts +1 -0
  189. package/lib/AWING/GroupTable/component.js +2 -2
  190. package/lib/AWING/NumberFormat/index.d.ts +3 -1
  191. package/lib/AWING/NumberFormat/index.js +2 -2
  192. package/lib/AWING/PageManagement/PageManagement.js +4 -3
  193. package/lib/AWING/Pagination/index.js +11 -3
  194. package/lib/AWING/index.d.ts +1 -0
  195. package/lib/AWING/index.js +1 -0
  196. package/lib/AWING/ultis/validation.d.ts +1 -0
  197. package/lib/AWING/ultis/validation.js +25 -6
  198. package/lib/Commons/Components/ClassicDrawer.js +5 -4
  199. package/lib/Commons/Components/DeprecatedEnhancedDialog.js +1 -1
  200. package/lib/Commons/Components/HighlightedCode/MarkdownElement.js +6 -1
  201. package/lib/Commons/Hooks/usePath.js +3 -3
  202. package/lib/Utils/Helpers.d.ts +3 -2
  203. package/lib/Utils/Helpers.js +48 -8
  204. package/lib/i18n.js +27 -2
  205. package/lib/translate/en/translation.json +132 -71
  206. package/lib/translate/id/translation.json +893 -0
  207. package/lib/translate/ind/translation.json +893 -0
  208. package/lib/translate/ja/translation.json +893 -0
  209. package/lib/translate/mys/translation.json +893 -0
  210. package/lib/translate/phl/translation.json +893 -0
  211. package/lib/translate/th/translation.json +893 -0
  212. package/lib/translate/vi/translation.json +92 -31
  213. package/package.json +131 -126
  214. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.d.ts +0 -5
  215. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.js +0 -14
@@ -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',
@@ -65,6 +63,7 @@ function BasicField(props) {
65
63
  register = hookControl.register, errors = hookControl.formState.errors, getValues = hookControl.getValues, setFormValue = hookControl.setFormValue;
66
64
  (0, react_1.useEffect)(function () {
67
65
  var isNotSubField = fieldPath.split('.').length === 3;
66
+ var timeOut;
68
67
  if (isNotSubField) {
69
68
  if (fieldType === Enum_1.TYPE_FIELD_TEMPLATE.CHECKBOX) {
70
69
  if (defaultValue === 'true' &&
@@ -77,13 +76,17 @@ function BasicField(props) {
77
76
  }
78
77
  else {
79
78
  if (defaultValue && !fieldValue) {
80
- setTimeout(function () {
79
+ timeOut = setTimeout(function () {
81
80
  setFormValue(fieldPath, defaultValue);
82
81
  onChange(fieldPath);
83
82
  }, 0);
84
83
  }
85
84
  }
86
85
  }
86
+ return function () {
87
+ if (timeOut)
88
+ clearTimeout(timeOut);
89
+ };
87
90
  // eslint-disable-next-line react-hooks/exhaustive-deps
88
91
  }, []);
89
92
  var handleChange = function (newValue) {
@@ -93,8 +96,8 @@ function BasicField(props) {
93
96
  if (scriptValidate) {
94
97
  onChangeValidateProcess(Enum_1.VALIDATE_PROCESS_CODE.NOT_VALIDATE);
95
98
  }
96
- runValidate(scriptValidate || '', fields, pagePath, onNotifyError, onChangeViewValid, onChangeValidateProcess, configs);
97
- 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) {
98
101
  setFormValue(needUpdateFieldPath, newValue);
99
102
  onChange(needUpdateFieldPath);
100
103
  }, configs);
@@ -102,12 +105,15 @@ function BasicField(props) {
102
105
  var renderField = function () {
103
106
  // const isError = !!getValueByPath(/*errors*/ {}, fieldPath)
104
107
  var isError = errors.includes(fieldPath);
105
- var field = register(fieldPath, __assign({ required: isRequired }, fieldType === Enum_1.TYPE_FIELD_TEMPLATE.URL && {
106
- 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
107
112
  }));
113
+ // onChangeViewValid(isError)
108
114
  switch (fieldType) {
115
+ // return renderNumberField(field, isError)
109
116
  case Enum_1.TYPE_FIELD_TEMPLATE.TEXT_FIELD_NUMBER:
110
- return renderTextField(field, isError);
111
117
  case Enum_1.TYPE_FIELD_TEMPLATE.TEXT_FIELD:
112
118
  case Enum_1.TYPE_FIELD_TEMPLATE.URL:
113
119
  return renderTextField(field, isError);
@@ -128,42 +134,35 @@ function BasicField(props) {
128
134
  default:
129
135
  return null;
130
136
  }
131
- // return (
132
- // <Controller
133
- // name={fieldPath}
134
- // {...register(fieldPath, { required: isRequired })}
135
- // ref={null}
136
- // control={control}
137
- // render={({ field }) => {
138
- // switch (fieldType) {
139
- // case TYPE_FIELD_TEMPLATE.TEXT_FIELD_NUMBER:
140
- // return renderTextField(field, isError)
141
- // case TYPE_FIELD_TEMPLATE.TEXT_FIELD:
142
- // return renderTextField(field, isError)
143
- // case TYPE_FIELD_TEMPLATE.TEXTAREA:
144
- // return renderTextField(field, isError)
145
- // case TYPE_FIELD_TEMPLATE.DROPDOWN_LIST:
146
- // return renderDropdownListField(field, isError)
147
- // case TYPE_FIELD_TEMPLATE.CHECKBOX:
148
- // return renderCheckboxField(field)
149
- // case TYPE_FIELD_TEMPLATE.COLOR:
150
- // return renderColorField(field, isError)
151
- // case TYPE_FIELD_TEMPLATE.IMAGE:
152
- // return renderImageOrVideoField(isError)
153
- // case TYPE_FIELD_TEMPLATE.VIDEO:
154
- // return renderImageOrVideoField(isError)
155
- // case TYPE_FIELD_TEMPLATE.HTML:
156
- // return renderHTMLField()
157
- // default:
158
- // return null
159
- // }
160
- // }}
161
- // ></Controller>
162
- // )
163
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])
164
160
  var renderTextField = function (field, isError) {
165
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
166
- ? { type: 'number' }
162
+ ? { inputProps: {
163
+ min: 0,
164
+ type: 'number',
165
+ } }
167
166
  : {}), (fieldType === Enum_1.TYPE_FIELD_TEMPLATE.TEXTAREA
168
167
  ? { multiline: true, rows: 4 }
169
168
  : {}), { variant: "standard", label: labelName || fieldName, onChange: function (e) {
@@ -240,116 +239,3 @@ function BasicField(props) {
240
239
  return renderField();
241
240
  }
242
241
  exports.default = BasicField;
243
- var getValidationParams = function (templateDatas, pagePath, configs) {
244
- var fields = templateDatas.map(function (dt) {
245
- // Convert all video, image link
246
- var fieldValue = dt.fieldValue;
247
- if ([
248
- Enum_1.TYPE_FIELD_TEMPLATE.IMAGE,
249
- Enum_1.TYPE_FIELD_TEMPLATE.VIDEO,
250
- Enum_1.TYPE_FIELD_TEMPLATE.OBJECT,
251
- Enum_1.TYPE_FIELD_TEMPLATE.LIST,
252
- ].includes(dt.fieldType)) {
253
- var jsonValue = JSON.stringify(fieldValue);
254
- if (jsonValue.includes(constant_1.ACM_TEMPLATE_PATH)) {
255
- jsonValue = jsonValue.replaceAll('/' + constant_1.ACM_TEMPLATE_PATH, "".concat(configs.TEMPLATE_FILE_PATH, "/").concat(dt.templateId));
256
- }
257
- if (jsonValue.includes(configs.FILE_RELATIVE_PATH || '')) {
258
- jsonValue = jsonValue.replaceAll(configs.FILE_RELATIVE_PATH || '', pagePath);
259
- }
260
- fieldValue = JSON.parse(jsonValue);
261
- }
262
- return __assign(__assign({}, dt), { fieldValue: fieldValue });
263
- });
264
- return [fields];
265
- };
266
- var runValidate = debounce(function (scriptValidate, fields, pagePath, notifyError, changeViewValidStatus, changeViewValidProcess, configs) {
267
- if (scriptValidate) {
268
- changeViewValidProcess(Enum_1.VALIDATE_PROCESS_CODE.VALIDATING);
269
- var params = getValidationParams(fields, pagePath, configs);
270
- (0, common_1.runScript)(
271
- // getValidationParams(fields, pagePath, configs),
272
- params, scriptValidate).then(function (result) {
273
- if (result) {
274
- var fieldsError_1 = [];
275
- var newAnswer = result.map(function (validInfo) {
276
- var _a;
277
- if (validInfo.code === Enum_1.VALID_TEMPLATE_CODE.SUCCESS) {
278
- return true;
279
- }
280
- else {
281
- var displayName = ((_a = fields.find(function (dt) {
282
- return validInfo.fieldName === dt.fieldName;
283
- })) === null || _a === void 0 ? void 0 : _a.labelName) || validInfo.fieldName;
284
- fieldsError_1.push("".concat(displayName).concat(validInfo.errorMessage
285
- ? ": ".concat(validInfo.errorMessage)
286
- : ''));
287
- return false;
288
- }
289
- });
290
- if (fieldsError_1.length > 0) {
291
- notifyError(fieldsError_1.toString());
292
- }
293
- changeViewValidStatus(newAnswer.length === 0 || !newAnswer.includes(false));
294
- }
295
- changeViewValidProcess(Enum_1.VALIDATE_PROCESS_CODE.VALIDATED);
296
- });
297
- }
298
- }, constant_1.DELAY_TIME_RUN_SCRIPT);
299
- var getAutoFieldParams = function (templateDatas, fieldPath, pagePath, configs) {
300
- var fields = templateDatas.map(function (dt) {
301
- // Convert all video, image link
302
- var fieldValue = dt.fieldValue;
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(dt.fieldType)) {
309
- var jsonValue = JSON.stringify(fieldValue);
310
- if (jsonValue.includes(constant_1.ACM_TEMPLATE_PATH)) {
311
- jsonValue = jsonValue.replaceAll('/' + constant_1.ACM_TEMPLATE_PATH, "".concat(configs.TEMPLATE_FILE_PATH, "/").concat(dt.templateId));
312
- }
313
- if (jsonValue.includes(configs.FILE_RELATIVE_PATH || '')) {
314
- jsonValue = jsonValue.replaceAll(configs.FILE_RELATIVE_PATH || '', pagePath);
315
- }
316
- fieldValue = JSON.parse(jsonValue);
317
- }
318
- return __assign(__assign({}, dt), { fieldValue: fieldValue });
319
- });
320
- var keys = fieldPath.split('.');
321
- var fieldChange = fields[Number(keys[1])];
322
- return [fields, __assign(__assign({}, fieldChange), { changePath: fieldPath })];
323
- };
324
- var runAutoField = debounce(function (scriptAutoField, fields, fieldPath, pagePath, updateNewValue, configs) {
325
- if (scriptAutoField) {
326
- (0, common_1.runScript)(getAutoFieldParams(fields, fieldPath, pagePath, configs), scriptAutoField).then(function (result) {
327
- if (result) {
328
- result === null || result === void 0 ? void 0 : result.map(function (r) {
329
- var _a;
330
- var idx = fields.findIndex(function (f) { return f.fieldName === r.fieldName; });
331
- if ([
332
- Enum_1.TYPE_FIELD_TEMPLATE.IMAGE,
333
- Enum_1.TYPE_FIELD_TEMPLATE.VIDEO,
334
- Enum_1.TYPE_FIELD_TEMPLATE.OBJECT,
335
- Enum_1.TYPE_FIELD_TEMPLATE.LIST,
336
- ].includes(fields[idx].fieldType)) {
337
- var jsonValue = JSON.stringify(r.newValue);
338
- if (jsonValue.includes(pagePath)) {
339
- jsonValue = jsonValue.replaceAll(pagePath, configs.FILE_RELATIVE_PATH || '');
340
- }
341
- if (configs.TEMPLATE_FILE_PATH &&
342
- jsonValue.includes(configs.TEMPLATE_FILE_PATH)) {
343
- 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);
344
- jsonValue = jsonValue.replaceAll(templatePath, "\"/".concat(constant_1.ACM_TEMPLATE_PATH));
345
- }
346
- r.newValue = JSON.parse(jsonValue);
347
- }
348
- var needUpdateFieldPath = "templateDatas.".concat(idx, ".fieldValue");
349
- updateNewValue(needUpdateFieldPath, r.newValue);
350
- return r;
351
- });
352
- }
353
- });
354
- }
355
- }, 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 {
@@ -58,12 +96,13 @@ var runScript = function (params, script) {
58
96
  };
59
97
  exports.runScript = runScript;
60
98
  var convertRelativeLink = function (link, pagePath, templateId, configs) {
61
- var isTemplatePath = (link === null || link === void 0 ? void 0 : link.includes(constant_1.ACM_TEMPLATE_PATH)) || (link === null || link === void 0 ? void 0 : link.includes(constant_1.ACM_PAGE_PATH));
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;
66
- // return `${pagePath}/${link.split("/")[link.split("/").length - 1]}` || "";
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;
67
106
  };
68
107
  exports.convertRelativeLink = convertRelativeLink;
69
108
  var generateRandomInteger = function (max) {
@@ -60,10 +60,6 @@ function ViewTemplate(_a) {
60
60
  control: control,
61
61
  name: "templateDatas",
62
62
  }).fields;
63
- // const { fields } = useFieldArray({
64
- // control,
65
- // name: "templateDatas",
66
- // });
67
63
  (0, react_1.useEffect)(function () {
68
64
  var language = localStorage.getItem("i18nextLng");
69
65
  i18n_1.default.changeLanguage(language || "vi");
@@ -89,7 +85,7 @@ function ViewTemplate(_a) {
89
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: {
90
86
  fontWeight: "bold",
91
87
  textTransform: "uppercase",
92
- }, 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: {
93
89
  display: "flex",
94
90
  flexDirection: "row",
95
91
  justifyContent: "space-between",
@@ -97,7 +93,13 @@ function ViewTemplate(_a) {
97
93
  cursor: "pointer",
98
94
  }, onClick: function () {
99
95
  setAdvanceOptionExpand(!advanceOptionExpand);
100
- }, 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") })] }))] }));
101
103
  }
102
104
  exports.default = ViewTemplate;
103
105
  var getChilds = function (fields, fieldInfo) {
@@ -117,21 +119,18 @@ var addChilds = function (fields, fieldInfo) {
117
119
  }
118
120
  return result;
119
121
  };
120
- var convertToTreeData = function (data) {
121
- var treeData = data
122
- .map(function (item) { return addChilds(data, item); })
123
- .filter(function (item) { return !item.fieldName.includes("."); })
124
- .map(function (item) {
125
- if ([Enum_1.TYPE_FIELD_TEMPLATE.LIST, Enum_1.TYPE_FIELD_TEMPLATE.OBJECT].includes(item.fieldType)) {
126
- return __assign(__assign({}, item), { fieldValue: item.fieldValue && (0, common_1.isJSON)(item.fieldValue)
127
- ? JSON.parse(item.fieldValue)
128
- : item.fieldType === Enum_1.TYPE_FIELD_TEMPLATE.LIST
129
- ? []
130
- : {} });
131
- }
132
- else {
133
- return item;
134
- }
135
- });
136
- return treeData;
137
- };
122
+ var convertToTreeData = function (data) { return data
123
+ .map(function (item) { return addChilds(data, item); })
124
+ .filter(function (item) { return !item.fieldName.includes("."); })
125
+ .map(function (item) {
126
+ if ([Enum_1.TYPE_FIELD_TEMPLATE.LIST, Enum_1.TYPE_FIELD_TEMPLATE.OBJECT].includes(item.fieldType)) {
127
+ return __assign(__assign({}, item), { fieldValue: item.fieldValue && (0, common_1.isJSON)(item.fieldValue)
128
+ ? JSON.parse(item.fieldValue)
129
+ : item.fieldType === Enum_1.TYPE_FIELD_TEMPLATE.LIST
130
+ ? []
131
+ : {} });
132
+ }
133
+ else {
134
+ return item;
135
+ }
136
+ }); };
@@ -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) {