awing-library 2.1.129-beta → 2.1.129

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 (217) 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 -43
  25. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.js +321 -103
  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 +122 -58
  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 +11 -8
  32. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/container.js +13 -19
  33. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Table.js +5 -1
  34. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.d.ts +7 -0
  35. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.js +98 -0
  36. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/component.js +3 -3
  37. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/container.js +35 -70
  38. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.d.ts +1 -0
  39. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.js +17 -4
  40. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Types.d.ts +26 -8
  41. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Utils.js +4 -1
  42. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.d.ts +1 -0
  43. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.js +3 -2
  44. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/component.js +6 -2
  45. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/container.js +31 -32
  46. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdList.js +5 -2
  47. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdRow.js +2 -2
  48. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/AddOrEditRule.js +6 -0
  49. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/Authentication.d.ts +8 -0
  50. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/Authentication.js +47 -0
  51. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/LimitEvent.js +52 -6
  52. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/TargetOS/container.js +2 -2
  53. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/index.d.ts +1 -0
  54. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/index.js +3 -1
  55. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.d.ts +4 -3
  56. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.js +13 -7
  57. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/EditAds.js +5 -5
  58. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.d.ts +1 -1
  59. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.js +75 -123
  60. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.test.js +3 -13
  61. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignList.js +45 -20
  62. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.d.ts +2 -0
  63. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.js +8 -3
  64. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/index.js +3 -2
  65. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/useSearchPage.js +33 -8
  66. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.d.ts +5 -1
  67. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.js +176 -59
  68. package/lib/ACM-AXN/Campaign/Enum.d.ts +23 -4
  69. package/lib/ACM-AXN/Campaign/Enum.js +30 -10
  70. package/lib/ACM-AXN/Campaign/Types.d.ts +52 -6
  71. package/lib/ACM-AXN/Campaign/Utils.d.ts +5 -0
  72. package/lib/ACM-AXN/Campaign/Utils.js +29 -2
  73. package/lib/ACM-AXN/Campaign/index.js +2 -2
  74. package/lib/ACM-AXN/CampaignPlan/Container.js +21 -10
  75. package/lib/ACM-AXN/CampaignPlan/Container.test.d.ts +1 -1
  76. package/lib/ACM-AXN/CampaignPlan/Container.test.js +1 -2
  77. package/lib/ACM-AXN/CampaignPlan/Detail.js +5 -7
  78. package/lib/ACM-AXN/CampaignPlan/Detail.test.d.ts +1 -1
  79. package/lib/ACM-AXN/CampaignPlan/Detail.test.js +2 -3
  80. package/lib/ACM-AXN/CampaignPlan/Filter.js +11 -4
  81. package/lib/ACM-AXN/CampaignPlan/Filter.test.d.ts +1 -1
  82. package/lib/ACM-AXN/CampaignPlan/Filter.test.js +0 -1
  83. package/lib/ACM-AXN/CampaignPlan/Types.d.ts +6 -74
  84. package/lib/ACM-AXN/CampaignPlan/Types.js +1 -253
  85. package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/Filter.js +14 -10
  86. package/lib/ACM-AXN/CampaignSchedule/Components/RowAdvance/component.js +7 -5
  87. package/lib/ACM-AXN/CampaignSchedule/DataConfig.js +4 -4
  88. package/lib/ACM-AXN/CampaignSchedule/DataConfigAXN.js +5 -4
  89. package/lib/ACM-AXN/CampaignSchedule/Enum.d.ts +1 -1
  90. package/lib/ACM-AXN/CampaignSchedule/Enum.js +1 -1
  91. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.d.ts +1 -2
  92. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.js +1 -5
  93. package/lib/ACM-AXN/Common/Constant.d.ts +3 -0
  94. package/lib/ACM-AXN/Common/Constant.js +2 -0
  95. package/lib/ACM-AXN/Common/Enum.d.ts +8 -3
  96. package/lib/ACM-AXN/Common/Enum.js +19 -4
  97. package/lib/ACM-AXN/GeoFencing/GoongMap/index.d.ts +8 -9
  98. package/lib/ACM-AXN/GeoFencing/component.js +7 -7
  99. package/lib/ACM-AXN/GeoFencing/interface.d.ts +1 -2
  100. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.d.ts +0 -5
  101. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.js +7 -90
  102. package/lib/ACM-AXN/Notifications/NotificationPopover/index.d.ts +0 -5
  103. package/lib/ACM-AXN/Notifications/Types.d.ts +2 -0
  104. package/lib/ACM-AXN/Page/Container.js +3 -3
  105. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.d.ts +6 -0
  106. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.js +63 -0
  107. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.d.ts +11 -1
  108. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.js +16 -1
  109. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/Utils.js +1 -1
  110. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/index.js +1 -0
  111. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.d.ts +1 -9
  112. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.js +0 -9
  113. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewContent.js +6 -9
  114. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.d.ts +2 -3
  115. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.js +40 -61
  116. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/index.js +26 -30
  117. package/lib/ACM-AXN/Page/CreateOrEdit/Utils.js +6 -8
  118. package/lib/ACM-AXN/Page/CreateOrEdit/index.js +5 -3
  119. package/lib/ACM-AXN/Page/enums.d.ts +5 -0
  120. package/lib/ACM-AXN/Page/enums.js +7 -1
  121. package/lib/ACM-AXN/Permission/Components/Styles.d.ts +1 -2
  122. package/lib/ACM-AXN/PlaceFilter/DataTable/component/index.js +2 -5
  123. package/lib/ACM-AXN/PlaceFilter/Input/component/index.js +1 -2
  124. package/lib/ACM-AXN/PlaceFilter/interface.d.ts +1 -0
  125. package/lib/ACM-AXN/ScheduleCompletionRate/Container.js +16 -16
  126. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.d.ts +14 -9
  127. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.js +19 -18
  128. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRate.js +16 -6
  129. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRateDate.js +17 -10
  130. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.d.ts +2 -1
  131. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.js +30 -51
  132. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.test.js +1 -1
  133. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.d.ts +2 -2
  134. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.js +3 -9
  135. package/lib/ACM-AXN/ScheduleCompletionRate/Types.d.ts +16 -36
  136. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.d.ts +5 -5
  137. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.js +14 -11
  138. package/lib/ACM-AXN/Statistics/ControlPanel.js +16 -4
  139. package/lib/ACM-AXN/Statistics/Enums.d.ts +2 -1
  140. package/lib/ACM-AXN/Statistics/Enums.js +1 -0
  141. package/lib/ACM-AXN/StatisticsAudienceDemographic/Tabs/AgeRange.js +1 -0
  142. package/lib/ACM-AXN/TaskScheduler/CreateOrEdit.js +3 -3
  143. package/lib/ACM-AXN/Template/Container.js +1 -1
  144. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.d.ts +1 -0
  145. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.js +5 -1
  146. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.d.ts +2 -2
  147. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.js +56 -39
  148. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.d.ts +1 -1
  149. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.js +62 -51
  150. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.d.ts +28 -4
  151. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.js +43 -15
  152. package/lib/ACM-AXN/Template/CreateOrEdit/index.js +8 -4
  153. package/lib/ACM-AXN/Template/Import.js +6 -3
  154. package/lib/ACM-AXN/Template/Types.d.ts +9 -9
  155. package/lib/ACM-AXN/TransactionLog/Detail.js +1 -1
  156. package/lib/ACM-AXN/ViewTemplate/Preview.js +5 -6
  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 +42 -23
  180. package/lib/AWING/DateRangePicker/interface.d.ts +1 -0
  181. package/lib/AWING/Form/useForm.js +3 -2
  182. package/lib/AWING/GoogleMap/GGMap.d.ts +3 -0
  183. package/lib/AWING/GoogleMap/GGMap.js +256 -0
  184. package/lib/AWING/GoogleMap/index.d.ts +4 -0
  185. package/lib/AWING/GoogleMap/index.js +41 -0
  186. package/lib/AWING/GoogleMap/interface.d.ts +21 -0
  187. package/lib/AWING/GoogleMap/interface.js +2 -0
  188. package/lib/AWING/GoogleMap/utils.d.ts +25 -0
  189. package/lib/AWING/GoogleMap/utils.js +135 -0
  190. package/lib/AWING/GroupTable/GroupTable.js +4 -5
  191. package/lib/AWING/GroupTable/component.d.ts +1 -0
  192. package/lib/AWING/GroupTable/component.js +2 -2
  193. package/lib/AWING/NumberFormat/index.d.ts +3 -1
  194. package/lib/AWING/NumberFormat/index.js +2 -2
  195. package/lib/AWING/PageManagement/PageManagement.js +2 -2
  196. package/lib/AWING/Pagination/index.js +10 -3
  197. package/lib/AWING/index.d.ts +1 -0
  198. package/lib/AWING/index.js +1 -0
  199. package/lib/AWING/ultis/validation.d.ts +1 -0
  200. package/lib/AWING/ultis/validation.js +21 -5
  201. package/lib/Commons/Components/ClassicDrawer.js +5 -4
  202. package/lib/Commons/Components/DeprecatedEnhancedDialog.js +1 -1
  203. package/lib/Commons/Hooks/usePath.js +3 -3
  204. package/lib/Utils/Helpers.d.ts +4 -2
  205. package/lib/Utils/Helpers.js +56 -7
  206. package/lib/i18n.js +14 -2
  207. package/lib/translate/en/translation.json +114 -71
  208. package/lib/translate/id/translation.json +870 -0
  209. package/lib/translate/ja/translation.json +870 -0
  210. package/lib/translate/th/translation.json +870 -0
  211. package/lib/translate/vi/translation.json +78 -35
  212. package/package.json +131 -126
  213. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/fakeCampaignData.json +0 -397
  214. package/lib/ACM-AXN/ScheduleCompletionRate/json.d.ts +0 -61
  215. package/lib/ACM-AXN/ScheduleCompletionRate/json.js +0 -268
  216. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.d.ts +0 -5
  217. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.js +0 -14
@@ -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;
@@ -70,7 +70,7 @@ var BarLineComponent = function (props) {
70
70
  titleColor: '#212121',
71
71
  bodyFont: {
72
72
  size: 14,
73
- family: "'AW-Roboto', sans-serif",
73
+ family: "'Roboto', sans-serif",
74
74
  lineHeight: 1.5,
75
75
  },
76
76
  },
@@ -82,14 +82,14 @@ var BarLineComponent = function (props) {
82
82
  position: 'bottom',
83
83
  labels: {
84
84
  usePointStyle: true,
85
- pointStyle: 'circle',
85
+ // pointStyle: 'circle',
86
86
  boxHeight: 12,
87
87
  boxWidth: 12,
88
88
  padding: 30,
89
89
  boxPadding: 50,
90
90
  font: {
91
91
  size: 15,
92
- family: "'AW-Roboto', sans-serif",
92
+ family: "'Roboto', sans-serif",
93
93
  lineHeight: 1.5,
94
94
  },
95
95
  },
@@ -124,7 +124,7 @@ var BarLineComponent = function (props) {
124
124
  title: {
125
125
  font: {
126
126
  size: 14,
127
- family: "'AW-Roboto', sans-serif",
127
+ family: "'Roboto', sans-serif",
128
128
  },
129
129
  },
130
130
  },
@@ -147,7 +147,7 @@ var BarLineComponent = function (props) {
147
147
  font: {
148
148
  size: 14,
149
149
  weight: 'bold',
150
- family: "'AW-Roboto', sans-serif",
150
+ family: "'Roboto', sans-serif",
151
151
  },
152
152
  },
153
153
  },
@@ -166,7 +166,7 @@ var BarLineComponent = function (props) {
166
166
  font: {
167
167
  size: 14,
168
168
  weight: 'bold',
169
- family: "'AW-Roboto', sans-serif",
169
+ family: "'Roboto', sans-serif",
170
170
  },
171
171
  },
172
172
  },
@@ -229,16 +229,21 @@ var BarLineComponent = function (props) {
229
229
  chart.update();
230
230
  };
231
231
  // Color box
232
- var boxSpan = document.createElement('span');
232
+ var boxSpan = document.createElement('div');
233
233
  boxSpan.style.background = item.fillStyle;
234
234
  boxSpan.style.borderColor = item.strokeStyle;
235
235
  boxSpan.style.borderWidth = item.lineWidth + 'px';
236
236
  boxSpan.style.display = 'inline-block';
237
237
  boxSpan.style.flexShrink = '0';
238
- boxSpan.style.height = '20px';
239
- boxSpan.style.marginRight = '10px';
240
- boxSpan.style.width = '20px';
241
- boxSpan.style.borderRadius = '20px';
238
+ boxSpan.style.height = '15px';
239
+ boxSpan.style.marginRight = '15px';
240
+ boxSpan.style.width = '15px';
241
+ if (item === null || item === void 0 ? void 0 : item.lineWidth) {
242
+ boxSpan.setAttribute("class", 'point');
243
+ }
244
+ if ((item === null || item === void 0 ? void 0 : item.pointStyle) === 'circle') {
245
+ boxSpan.style.borderRadius = '20px';
246
+ }
242
247
  // Text
243
248
  var textContainer = document.createElement('p');
244
249
  textContainer.style.color = item.fontColor;
@@ -260,6 +265,19 @@ var BarLineComponent = function (props) {
260
265
  height: height,
261
266
  position: 'relative',
262
267
  marginBottom: '80px',
268
+ '.point': {
269
+ position: "relative",
270
+ '&::after': {
271
+ content: '""',
272
+ position: 'absolute',
273
+ top: '50%',
274
+ left: '-5px', /* Adjust as needed */
275
+ right: '-5px', /* Adjust as needed */
276
+ height: '2px', /* Thickness of the line */
277
+ backgroundColor: 'inherit',
278
+ transform: 'translateY(-50%)'
279
+ }
280
+ },
263
281
  }, children: [(0, jsx_runtime_1.jsx)(Chart, { data: chartData, type: type, options: (0, Helpers_1.updateObjectFields)(options, optionCustom), plugins: [htmlLegendPlugin] }), (0, jsx_runtime_1.jsx)(material_1.Box, { id: "legend-container", sx: {
264
282
  marginTop: '35px',
265
283
  display: 'flex',
@@ -1,11 +1,10 @@
1
- import { ChartData, ChartOptions, ChartType } from 'chart.js';
1
+ import { ChartOptions, ChartType } from 'chart.js';
2
2
  import { ChartProps, TypedChartComponent } from 'react-chartjs-2/dist/types';
3
3
  export interface IPieComponent extends ChartProps {
4
- dataConvert?: ChartData<ChartType>;
5
4
  widthChart?: number;
6
5
  heightChart?: number;
7
6
  optionCustom?: ChartOptions<ChartType>;
8
- chart: TypedChartComponent<"pie">;
7
+ chart: TypedChartComponent<'pie'>;
9
8
  }
10
- declare const PieComponent: ({ chart, data, dataConvert, widthChart, heightChart, optionCustom, options, }: IPieComponent) => import("react/jsx-runtime").JSX.Element;
9
+ declare const PieComponent: ({ chart, data, widthChart, heightChart, optionCustom, options, }: IPieComponent) => import("react/jsx-runtime").JSX.Element;
11
10
  export default PieComponent;
@@ -11,17 +11,7 @@ var chartColorDefaults = [
11
11
  '#4a536b',
12
12
  ];
13
13
  var PieComponent = function (_a) {
14
- var chart = _a.chart, data = _a.data, _b = _a.dataConvert, dataConvert = _b === void 0 ? {
15
- labels: [],
16
- datasets: [
17
- {
18
- data: [],
19
- backgroundColor: chartColorDefaults,
20
- borderColor: 'white',
21
- borderWidth: 2,
22
- },
23
- ],
24
- } : _b, _c = _a.widthChart, widthChart = _c === void 0 ? 300 : _c, _d = _a.heightChart, heightChart = _d === void 0 ? 300 : _d, _e = _a.optionCustom, optionCustom = _e === void 0 ? {} : _e, _f = _a.options, options = _f === void 0 ? {
14
+ var chart = _a.chart, data = _a.data, _b = _a.widthChart, widthChart = _b === void 0 ? 300 : _b, _c = _a.heightChart, heightChart = _c === void 0 ? 300 : _c, _d = _a.optionCustom, optionCustom = _d === void 0 ? {} : _d, _e = _a.options, options = _e === void 0 ? {
25
15
  responsive: true,
26
16
  elements: {
27
17
  arc: {
@@ -38,7 +28,7 @@ var PieComponent = function (_a) {
38
28
  pointStyle: 'circle',
39
29
  font: {
40
30
  size: 14,
41
- family: "'AW-Roboto', sans-serif",
31
+ family: "'Roboto', sans-serif",
42
32
  lineHeight: 1.5,
43
33
  },
44
34
  },
@@ -54,12 +44,11 @@ var PieComponent = function (_a) {
54
44
  bodySpacing: 8,
55
45
  bodyFont: {
56
46
  size: 14,
57
- family: "'AW-Roboto', sans-serif",
47
+ family: "'Roboto', sans-serif",
58
48
  lineHeight: 1.5,
59
49
  },
60
50
  callbacks: {
61
51
  label: function (tooltipItem) {
62
- console.log('tooltipItem', tooltipItem);
63
52
  return (' ' +
64
53
  (tooltipItem === null || tooltipItem === void 0 ? void 0 : tooltipItem.label) +
65
54
  ': ' +
@@ -71,8 +60,19 @@ var PieComponent = function (_a) {
71
60
  },
72
61
  },
73
62
  },
74
- } : _f;
63
+ } : _e;
75
64
  var Pie = chart;
76
- return ((0, jsx_runtime_1.jsx)(Pie, { data: (0, Helpers_1.updateObjectFields)(data, dataConvert), width: widthChart, height: heightChart, options: (0, Helpers_1.updateObjectFields)(options, optionCustom) }));
65
+ var dataConvert = {
66
+ labels: [],
67
+ datasets: [
68
+ {
69
+ data: [],
70
+ backgroundColor: chartColorDefaults.slice(0, data.datasets[0].data.length),
71
+ borderColor: 'white',
72
+ borderWidth: 2,
73
+ },
74
+ ],
75
+ };
76
+ return ((0, jsx_runtime_1.jsx)(Pie, { data: (0, Helpers_1.updateObjectFields)(dataConvert, data), width: widthChart, height: heightChart, options: (0, Helpers_1.updateObjectFields)(options, optionCustom) }));
77
77
  };
78
78
  exports.default = PieComponent;
@@ -46,32 +46,67 @@ var styledLineFill = function (defaultStyle, variant) {
46
46
  }
47
47
  };
48
48
  exports.styledLineFill = styledLineFill;
49
+ // Click: 004b95
50
+ // Impression: d10717
51
+ // Engagement: 0082ed
52
+ // ER: 8bc1f7
53
+ // CTR: 518be9
54
+ // Các đường phụ
55
+ // ef9234, 5752d1, 38812f
49
56
  function getColorByVariant(variant) {
50
- switch (variant) {
57
+ switch (String(variant).toLowerCase()) {
51
58
  case '0':
52
- return '#0055b8';
59
+ case 'impression':
60
+ case 'view':
61
+ return '#d10717';
53
62
  case '1':
54
- return '#dd040c';
63
+ case 'click':
64
+ case 'authenticationsuccess':
65
+ return '#004b95';
55
66
  case '2':
56
- return 'green';
67
+ case 'engagement':
68
+ case 'authentication':
69
+ return '#0082ed';
57
70
  case '3':
58
- return 'violet';
71
+ case 'spot':
72
+ case 'er':
73
+ return '#8bc1f7';
59
74
  case '4':
60
- return 'black';
75
+ case 'ctr':
76
+ case 'ar':
77
+ return '#518be9';
61
78
  case '5':
62
- return 'yellow';
79
+ case 'other':
80
+ return '#ef9234';
63
81
  case '6':
64
- return 'indigo';
82
+ case 'other1':
83
+ return '#5752d1';
65
84
  case '7':
66
- return 'orange';
67
- case '8':
68
- return 'cyan';
69
- case '9':
70
- return 'lime';
71
- case undefined:
72
- return '#80b0ff';
85
+ case 'other2':
86
+ return '#38812f';
87
+ // case '0':
88
+ // return '#0055b8'
89
+ // case '1':
90
+ // return '#dd040c'
91
+ // case '2':
92
+ // return 'green'
93
+ // case '3':
94
+ // return 'violet'
95
+ // case '4':
96
+ // return 'black'
97
+ // case '5':
98
+ // return 'yellow'
99
+ // case '6':
100
+ // return 'indigo'
101
+ // case '7':
102
+ // return 'orange'
103
+ // case '8':
104
+ // return 'cyan'
105
+ // case '9':
106
+ // return 'lime'
73
107
  default:
74
- return '#' + Math.floor(Math.random() * 16777216).toString(16);
108
+ return '#38812f';
109
+ // return '#' + Math.floor(Math.random() * 16777216).toString(16)
75
110
  }
76
111
  }
77
112
  var getStyle = function (defaultStyle, type, color) {