awing-library 2.1.133-beta → 2.1.133

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 (216) hide show
  1. package/lib/ACM-AXN/Campaign/Container.js +52 -54
  2. package/lib/ACM-AXN/Campaign/Container.test.js +1 -3
  3. package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.d.ts +8 -1
  4. package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.js +27 -3
  5. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.d.ts +17 -0
  6. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.js +121 -0
  7. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.test.d.ts +1 -0
  8. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.test.js +219 -0
  9. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.d.ts +2 -0
  10. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.js +306 -0
  11. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.test.d.ts +1 -0
  12. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.test.js +230 -0
  13. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.d.ts +1 -0
  14. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.js +123 -0
  15. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.test.d.ts +1 -0
  16. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.test.js +253 -0
  17. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabInfomation.js +2 -2
  18. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabPartner.d.ts +1 -1
  19. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabPartner.js +47 -78
  20. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.d.ts +6 -1
  21. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.js +3 -22
  22. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/ControlPanel.js +2 -1
  23. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/index.js +2 -3
  24. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.d.ts +22 -42
  25. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.js +317 -104
  26. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/component.js +1 -1
  27. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.d.ts +3 -0
  28. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.js +119 -54
  29. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.d.ts +1 -1
  30. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.js +46 -8
  31. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/component.js +8 -6
  32. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/container.js +1 -1
  33. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Table.js +5 -1
  34. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.js +4 -7
  35. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/component.js +3 -3
  36. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/container.js +1 -1
  37. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.d.ts +1 -0
  38. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.js +17 -4
  39. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Types.d.ts +10 -0
  40. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Utils.js +4 -1
  41. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.d.ts +1 -0
  42. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.js +3 -2
  43. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/component.js +6 -2
  44. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/container.js +31 -29
  45. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdList.js +5 -2
  46. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdRow.js +2 -2
  47. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/AddOrEditRule.js +6 -0
  48. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/Authentication.d.ts +8 -0
  49. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/Authentication.js +47 -0
  50. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/LimitEvent.js +52 -6
  51. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/TargetOS/container.js +2 -2
  52. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/index.d.ts +1 -0
  53. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/index.js +3 -1
  54. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.d.ts +4 -3
  55. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.js +13 -7
  56. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/EditAds.js +5 -5
  57. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.js +69 -124
  58. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.test.js +3 -13
  59. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignList.js +45 -20
  60. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.d.ts +2 -0
  61. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.js +8 -3
  62. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/index.js +3 -2
  63. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/useSearchPage.js +33 -8
  64. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.d.ts +5 -1
  65. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.js +176 -59
  66. package/lib/ACM-AXN/Campaign/Enum.d.ts +23 -4
  67. package/lib/ACM-AXN/Campaign/Enum.js +30 -10
  68. package/lib/ACM-AXN/Campaign/Types.d.ts +52 -6
  69. package/lib/ACM-AXN/Campaign/Utils.d.ts +5 -0
  70. package/lib/ACM-AXN/Campaign/Utils.js +29 -2
  71. package/lib/ACM-AXN/Campaign/index.js +2 -2
  72. package/lib/ACM-AXN/CampaignPlan/Container.js +21 -10
  73. package/lib/ACM-AXN/CampaignPlan/Container.test.d.ts +1 -1
  74. package/lib/ACM-AXN/CampaignPlan/Container.test.js +1 -2
  75. package/lib/ACM-AXN/CampaignPlan/Detail.js +5 -7
  76. package/lib/ACM-AXN/CampaignPlan/Detail.test.d.ts +1 -1
  77. package/lib/ACM-AXN/CampaignPlan/Detail.test.js +2 -3
  78. package/lib/ACM-AXN/CampaignPlan/Filter.js +11 -4
  79. package/lib/ACM-AXN/CampaignPlan/Filter.test.d.ts +1 -1
  80. package/lib/ACM-AXN/CampaignPlan/Filter.test.js +0 -1
  81. package/lib/ACM-AXN/CampaignPlan/Types.d.ts +6 -74
  82. package/lib/ACM-AXN/CampaignPlan/Types.js +1 -253
  83. package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/Filter.js +14 -10
  84. package/lib/ACM-AXN/CampaignSchedule/Components/EnhancedPagination/index.js +3 -2
  85. package/lib/ACM-AXN/CampaignSchedule/Components/RowAdvance/component.js +7 -5
  86. package/lib/ACM-AXN/CampaignSchedule/DataConfig.js +4 -4
  87. package/lib/ACM-AXN/CampaignSchedule/DataConfigAXN.js +5 -4
  88. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.d.ts +1 -2
  89. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.js +1 -5
  90. package/lib/ACM-AXN/Common/Constant.d.ts +3 -0
  91. package/lib/ACM-AXN/Common/Constant.js +2 -0
  92. package/lib/ACM-AXN/Common/Enum.d.ts +8 -3
  93. package/lib/ACM-AXN/Common/Enum.js +19 -4
  94. package/lib/ACM-AXN/GeoFencing/GoongMap/index.d.ts +8 -9
  95. package/lib/ACM-AXN/GeoFencing/component.js +7 -7
  96. package/lib/ACM-AXN/GeoFencing/interface.d.ts +1 -2
  97. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.d.ts +0 -5
  98. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.js +7 -90
  99. package/lib/ACM-AXN/Notifications/NotificationPopover/index.d.ts +0 -5
  100. package/lib/ACM-AXN/Notifications/Types.d.ts +2 -0
  101. package/lib/ACM-AXN/Page/Constant.js +2 -0
  102. package/lib/ACM-AXN/Page/Container.js +3 -3
  103. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.d.ts +6 -0
  104. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.js +63 -0
  105. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.d.ts +11 -2
  106. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.js +16 -12
  107. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/Utils.js +1 -1
  108. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/index.js +1 -0
  109. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.d.ts +1 -9
  110. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.js +0 -9
  111. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewContent.js +11 -44
  112. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.d.ts +2 -3
  113. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.js +39 -61
  114. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/index.js +29 -32
  115. package/lib/ACM-AXN/Page/CreateOrEdit/Utils.js +10 -9
  116. package/lib/ACM-AXN/Page/CreateOrEdit/index.js +17 -4
  117. package/lib/ACM-AXN/Page/Types.d.ts +3 -0
  118. package/lib/ACM-AXN/Page/enums.d.ts +5 -0
  119. package/lib/ACM-AXN/Page/enums.js +7 -1
  120. package/lib/ACM-AXN/Permission/Components/Styles.d.ts +1 -2
  121. package/lib/ACM-AXN/PlaceFilter/DataTable/component/index.js +2 -5
  122. package/lib/ACM-AXN/PlaceFilter/Input/component/index.js +1 -2
  123. package/lib/ACM-AXN/PlaceFilter/interface.d.ts +1 -0
  124. package/lib/ACM-AXN/ScheduleCompletionRate/Container.js +16 -16
  125. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.d.ts +14 -9
  126. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.js +19 -18
  127. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRate.js +16 -6
  128. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRateDate.js +17 -10
  129. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.d.ts +2 -1
  130. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.js +30 -51
  131. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.test.js +1 -1
  132. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.d.ts +2 -2
  133. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.js +3 -9
  134. package/lib/ACM-AXN/ScheduleCompletionRate/Types.d.ts +16 -36
  135. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.d.ts +5 -5
  136. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.js +13 -10
  137. package/lib/ACM-AXN/Statistics/ControlPanel.js +16 -4
  138. package/lib/ACM-AXN/Statistics/Enums.d.ts +2 -1
  139. package/lib/ACM-AXN/Statistics/Enums.js +1 -0
  140. package/lib/ACM-AXN/StatisticsAudienceDemographic/Tabs/AgeRange.js +1 -0
  141. package/lib/ACM-AXN/TaskScheduler/CreateOrEdit.js +3 -3
  142. package/lib/ACM-AXN/Template/Container.js +1 -1
  143. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.d.ts +1 -0
  144. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.js +5 -1
  145. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.d.ts +2 -2
  146. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.js +56 -39
  147. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.d.ts +1 -1
  148. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.js +62 -51
  149. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.d.ts +28 -4
  150. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.js +43 -15
  151. package/lib/ACM-AXN/Template/CreateOrEdit/index.js +8 -4
  152. package/lib/ACM-AXN/Template/Import.js +6 -3
  153. package/lib/ACM-AXN/Template/Types.d.ts +9 -9
  154. package/lib/ACM-AXN/TransactionLog/Detail.js +1 -1
  155. package/lib/ACM-AXN/ViewTemplate/Preview.js +5 -6
  156. package/lib/ACM-AXN/ViewTemplate/TemplateField/Event.js +23 -11
  157. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.d.ts +18 -0
  158. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.js +170 -0
  159. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/index.js +46 -160
  160. package/lib/ACM-AXN/ViewTemplate/common.js +2 -3
  161. package/lib/ACM-AXN/ViewTemplate/container.js +23 -24
  162. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.d.ts +3 -1
  163. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.js +18 -28
  164. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.test.js +2 -0
  165. package/lib/ACM-AXN/Wizard/CreateOrEdit/RowTemplate.js +1 -1
  166. package/lib/ACM-AXN/Wizard/CreateOrEdit/index.js +17 -1
  167. package/lib/ACM-AXN/index.d.ts +1 -0
  168. package/lib/ACM-AXN/index.js +1 -0
  169. package/lib/AWING/AsyncAutocomplete/index.js +2 -2
  170. package/lib/AWING/BasicDataForm/BasicDataForm.js +9 -6
  171. package/lib/AWING/BasicDataForm/interface.d.ts +3 -0
  172. package/lib/AWING/Chart/BarLineComponent.js +29 -11
  173. package/lib/AWING/Chart/PieComponent.d.ts +3 -4
  174. package/lib/AWING/Chart/PieComponent.js +16 -16
  175. package/lib/AWING/Chart/Styles.js +51 -16
  176. package/lib/AWING/DataForm/DataInput.js +63 -20
  177. package/lib/AWING/DataForm/interface.d.ts +1 -0
  178. package/lib/AWING/DataGrid/index.js +8 -13
  179. package/lib/AWING/DateRangePicker/component.js +55 -30
  180. package/lib/AWING/DateRangePicker/configDate.d.ts +1 -2
  181. package/lib/AWING/DateRangePicker/configDate.js +12 -12
  182. package/lib/AWING/DateRangePicker/interface.d.ts +1 -0
  183. package/lib/AWING/Form/useForm.js +3 -2
  184. package/lib/AWING/GoogleMap/GGMap.d.ts +3 -0
  185. package/lib/AWING/GoogleMap/GGMap.js +256 -0
  186. package/lib/AWING/GoogleMap/index.d.ts +4 -0
  187. package/lib/AWING/GoogleMap/index.js +41 -0
  188. package/lib/AWING/GoogleMap/interface.d.ts +21 -0
  189. package/lib/AWING/GoogleMap/interface.js +2 -0
  190. package/lib/AWING/GoogleMap/utils.d.ts +25 -0
  191. package/lib/AWING/GoogleMap/utils.js +135 -0
  192. package/lib/AWING/GroupTable/GroupTable.js +4 -5
  193. package/lib/AWING/GroupTable/component.d.ts +1 -0
  194. package/lib/AWING/GroupTable/component.js +2 -2
  195. package/lib/AWING/NumberFormat/index.d.ts +3 -1
  196. package/lib/AWING/NumberFormat/index.js +2 -2
  197. package/lib/AWING/PageManagement/PageManagement.js +4 -3
  198. package/lib/AWING/Pagination/index.js +11 -3
  199. package/lib/AWING/index.d.ts +1 -0
  200. package/lib/AWING/index.js +1 -0
  201. package/lib/AWING/ultis/validation.d.ts +1 -0
  202. package/lib/AWING/ultis/validation.js +21 -5
  203. package/lib/Commons/Components/ClassicDrawer.js +5 -4
  204. package/lib/Commons/Components/DeprecatedEnhancedDialog.js +1 -1
  205. package/lib/Commons/Hooks/usePath.js +3 -3
  206. package/lib/Utils/Helpers.d.ts +3 -2
  207. package/lib/Utils/Helpers.js +48 -8
  208. package/lib/i18n.js +14 -2
  209. package/lib/translate/en/translation.json +112 -71
  210. package/lib/translate/id/translation.json +870 -0
  211. package/lib/translate/ja/translation.json +870 -0
  212. package/lib/translate/th/translation.json +870 -0
  213. package/lib/translate/vi/translation.json +71 -30
  214. package/package.json +131 -126
  215. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.d.ts +0 -5
  216. 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);
@@ -58,12 +58,11 @@ var runScript = function (params, script) {
58
58
  };
59
59
  exports.runScript = runScript;
60
60
  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));
61
+ var isTemplatePath = link === null || link === void 0 ? void 0 : link.includes(constant_1.ACM_TEMPLATE_PATH);
62
62
  if (isTemplatePath) {
63
63
  return "".concat(configs.TEMPLATE_FILE_PATH, "/").concat(templateId, "/").concat(link.split("/")[link.split("/").length - 1]);
64
64
  }
65
- return link;
66
- // return `${pagePath}/${link.split("/")[link.split("/").length - 1]}` || "";
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;
67
66
  };
68
67
  exports.convertRelativeLink = convertRelativeLink;
69
68
  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) {
@@ -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;