awing-library 2.1.21 → 2.1.22-stage
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.
- package/lib/ACM-AXN/AuthenticationProfile/Container.d.ts +2 -0
- package/lib/ACM-AXN/AuthenticationProfile/Container.js +82 -0
- package/lib/ACM-AXN/AuthenticationProfile/Container.test.d.ts +1 -0
- package/lib/ACM-AXN/AuthenticationProfile/Container.test.js +184 -0
- package/lib/ACM-AXN/AuthenticationProfile/Context.d.ts +3 -0
- package/lib/ACM-AXN/AuthenticationProfile/Context.js +5 -0
- package/lib/ACM-AXN/AuthenticationProfile/CreateOrEdit/CreateOrEdit.test.d.ts +1 -0
- package/lib/ACM-AXN/AuthenticationProfile/CreateOrEdit/CreateOrEdit.test.js +203 -0
- package/lib/ACM-AXN/AuthenticationProfile/CreateOrEdit/index.d.ts +2 -0
- package/lib/ACM-AXN/AuthenticationProfile/CreateOrEdit/index.js +129 -0
- package/lib/ACM-AXN/AuthenticationProfile/Hooks.d.ts +2 -0
- package/lib/ACM-AXN/AuthenticationProfile/Hooks.js +12 -0
- package/lib/ACM-AXN/AuthenticationProfile/Types.d.ts +75 -0
- package/lib/ACM-AXN/AuthenticationProfile/Types.js +2 -0
- package/lib/ACM-AXN/AuthenticationProfile/Utils.d.ts +11 -0
- package/lib/ACM-AXN/AuthenticationProfile/Utils.js +14 -0
- package/lib/ACM-AXN/AuthenticationProfile/index.d.ts +3 -0
- package/lib/ACM-AXN/AuthenticationProfile/index.js +40 -0
- package/lib/ACM-AXN/Campaign/Container.js +6 -7
- package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.d.ts +2 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.js +9 -4
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabInfomation.js +2 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabPermission/index.js +1 -1
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/AnalyticComponent.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/AnalyticComponent.test.js +80 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/AnalyticContainer.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/AnalyticContainer.test.js +49 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.d.ts +17 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.js +113 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.test.js +67 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/ControlPanel.d.ts +2 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/ControlPanel.js +114 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/ControlPanel.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/ControlPanel.test.js +27 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/DetailGroupBy.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/DetailGroupBy.test.js +55 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/RowDetail.d.ts +7 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/RowDetail.js +28 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/RowDetail.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/RowDetail.test.js +49 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/index.d.ts +2 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/index.js +182 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.d.ts +30 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.js +464 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/component.d.ts +14 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/component.js +77 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.d.ts +15 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.js +137 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/index.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/index.js +8 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.d.ts +12 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.js +274 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.test.js +84 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Context.d.ts +5 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Context.js +13 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/CustomerComponent.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/CustomerComponent.test.js +53 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/CustomerContainer.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/CustomerContainer.test.js +124 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/component.d.ts +14 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/component.js +130 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/container.d.ts +7 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/container.js +76 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/index.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/index.js +8 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/EventComponent.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/EventComponent.test.js +91 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/EventContainer.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/EventContainer.test.js +48 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Table.d.ts +5 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Table.js +33 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Table.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Table.test.js +30 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.d.ts +7 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.js +81 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/component.d.ts +15 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/component.js +166 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/container.d.ts +10 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/container.js +111 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/index.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/index.js +8 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.d.ts +6 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.js +65 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.test.js +26 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Types.d.ts +99 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Types.js +2 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Utils.d.ts +6 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Utils.js +36 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.d.ts +6 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.js +9 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/component.d.ts +9 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/component.js +36 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/container.d.ts +8 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/container.js +91 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/index.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/index.js +8 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdDetail.js +1 -1
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdDetail.test.js +3 -3
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdList.js +18 -14
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdRow.js +3 -3
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/AddOrEditRule.js +6 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/AddOrEditRule.test.js +12 -12
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/Create.js +2 -3
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/Create.test.js +3 -3
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/Edit.test.js +2 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/EditExpression.test.js +9 -9
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/Authentication.d.ts +8 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/Authentication.js +47 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/LimitClick.test.js +1 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/LimitEvent.js +52 -6
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/LimitEvent.test.js +1 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/LimitView.test.js +1 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/TargetAge.test.js +3 -3
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/TargetGender.test.js +2 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/index.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/index.js +3 -1
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.d.ts +4 -3
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.js +13 -7
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/EditAds.js +9 -9
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.d.ts +1 -1
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.js +88 -54
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.test.js +7 -6
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignList.js +9 -9
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.d.ts +2 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.js +7 -3
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/index.js +10 -9
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/useSearchPage.js +33 -8
- package/lib/ACM-AXN/Campaign/CreateOrEdit/index.d.ts +3 -1
- package/lib/ACM-AXN/Campaign/CreateOrEdit/index.js +35 -22
- package/lib/ACM-AXN/Campaign/Enum.d.ts +73 -0
- package/lib/ACM-AXN/Campaign/Enum.js +82 -1
- package/lib/ACM-AXN/Campaign/Types.d.ts +10 -127
- package/lib/ACM-AXN/Campaign/Types.js +0 -79
- package/lib/ACM-AXN/Campaign/Utils.d.ts +9 -2
- package/lib/ACM-AXN/Campaign/Utils.js +26 -11
- package/lib/ACM-AXN/Campaign/index.d.ts +2 -0
- package/lib/ACM-AXN/Campaign/index.js +17 -2
- package/lib/ACM-AXN/CampaignPlan/Container.js +25 -13
- package/lib/ACM-AXN/CampaignPlan/Container.test.d.ts +1 -1
- package/lib/ACM-AXN/CampaignPlan/Container.test.js +1 -2
- package/lib/ACM-AXN/CampaignPlan/Detail.js +9 -8
- package/lib/ACM-AXN/CampaignPlan/Detail.test.d.ts +1 -1
- package/lib/ACM-AXN/CampaignPlan/Detail.test.js +2 -3
- package/lib/ACM-AXN/CampaignPlan/Filter.js +11 -4
- package/lib/ACM-AXN/CampaignPlan/Filter.test.d.ts +1 -1
- package/lib/ACM-AXN/CampaignPlan/Filter.test.js +0 -1
- package/lib/ACM-AXN/CampaignPlan/Types.d.ts +6 -74
- package/lib/ACM-AXN/CampaignPlan/Types.js +1 -253
- package/lib/ACM-AXN/CampaignPlan/index.js +1 -1
- package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/Filter.d.ts +1 -1
- package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/Filter.js +28 -10
- package/lib/ACM-AXN/CampaignSchedule/Components/RowAdvance/component.js +32 -13
- package/lib/ACM-AXN/CampaignSchedule/Components/RowAdvance/container.js +3 -3
- package/lib/ACM-AXN/CampaignSchedule/Components/TableHeaderDragable.js +5 -1
- package/lib/ACM-AXN/CampaignSchedule/DataConfig.d.ts +1 -1
- package/lib/ACM-AXN/CampaignSchedule/DataConfig.js +10 -5
- package/lib/ACM-AXN/CampaignSchedule/DataConfigAXN.d.ts +1 -1
- package/lib/ACM-AXN/CampaignSchedule/DataConfigAXN.js +9 -4
- package/lib/ACM-AXN/CampaignSchedule/Enum.d.ts +4 -0
- package/lib/ACM-AXN/CampaignSchedule/Enum.js +4 -0
- package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.d.ts +2 -1
- package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.js +7 -2
- package/lib/ACM-AXN/CampaignSchedule/container.d.ts +1 -1
- package/lib/ACM-AXN/CampaignSchedule/container.js +6 -1
- package/lib/ACM-AXN/CampaignSchedule/helper.d.ts +0 -2
- package/lib/ACM-AXN/CampaignSchedule/helper.js +1 -24
- package/lib/ACM-AXN/CampaignSchedule/interface.d.ts +3 -0
- package/lib/ACM-AXN/{Notifications → Common}/Constant.d.ts +33 -20
- package/lib/ACM-AXN/{Notifications → Common}/Constant.js +35 -22
- package/lib/ACM-AXN/Common/Enum.d.ts +59 -0
- package/lib/ACM-AXN/Common/Enum.js +74 -0
- package/lib/ACM-AXN/Common/Types.d.ts +16 -0
- package/lib/ACM-AXN/Common/Types.js +2 -0
- package/lib/ACM-AXN/Directory/DomainDirectory/FolderDetail.js +2 -2
- package/lib/ACM-AXN/Directory/DomainDirectory/index.js +5 -5
- package/lib/ACM-AXN/Directory/MenuDirectory/index.js +2 -2
- package/lib/ACM-AXN/Directory/SystemDirectory/index.js +2 -2
- package/lib/ACM-AXN/Directory/components/Permission/Management.js +3 -3
- package/lib/ACM-AXN/Directory/components/Permission/MenuPermissions/MenuPermissionManagement.js +3 -3
- package/lib/ACM-AXN/Directory/components/Permission/UserOrGroup.js +2 -2
- package/lib/ACM-AXN/Directory/components/Permission/index.js +2 -2
- package/lib/ACM-AXN/GeoFencing/GoongMap/index.d.ts +8 -9
- package/lib/ACM-AXN/GroupUser/Container.js +3 -3
- package/lib/ACM-AXN/GroupUser/Container.test.js +3 -3
- package/lib/ACM-AXN/GroupUser/CreateOrEdit.js +3 -3
- package/lib/ACM-AXN/GroupUser/User/UserComponent.js +3 -3
- package/lib/ACM-AXN/GroupUser/index.js +3 -3
- package/lib/ACM-AXN/Holiday/Container.d.ts +2 -0
- package/lib/ACM-AXN/Holiday/Container.js +55 -0
- package/lib/ACM-AXN/Holiday/Container.test.d.ts +1 -0
- package/lib/ACM-AXN/Holiday/Container.test.js +227 -0
- package/lib/ACM-AXN/Holiday/Context.d.ts +3 -0
- package/lib/ACM-AXN/Holiday/Context.js +5 -0
- package/lib/ACM-AXN/Holiday/CreateOrEdit.d.ts +2 -0
- package/lib/ACM-AXN/Holiday/CreateOrEdit.js +62 -0
- package/lib/ACM-AXN/Holiday/CreateOrEdit.test.d.ts +1 -0
- package/lib/ACM-AXN/Holiday/CreateOrEdit.test.js +255 -0
- package/lib/ACM-AXN/Holiday/Detail/AddOrEditDate.d.ts +2 -0
- package/lib/ACM-AXN/Holiday/Detail/AddOrEditDate.js +107 -0
- package/lib/ACM-AXN/Holiday/Detail/AddOrEditDate.test.d.ts +1 -0
- package/lib/ACM-AXN/Holiday/Detail/AddOrEditDate.test.js +181 -0
- package/lib/ACM-AXN/Holiday/Detail/Dates.d.ts +6 -0
- package/lib/ACM-AXN/Holiday/Detail/Dates.js +153 -0
- package/lib/ACM-AXN/Holiday/Detail/Dates.test.d.ts +1 -0
- package/lib/ACM-AXN/Holiday/Detail/Dates.test.js +220 -0
- package/lib/ACM-AXN/Holiday/Detail/Form.d.ts +6 -0
- package/lib/ACM-AXN/Holiday/Detail/Form.js +32 -0
- package/lib/ACM-AXN/Holiday/Detail/Form.test.d.ts +1 -0
- package/lib/ACM-AXN/Holiday/Detail/Form.test.js +120 -0
- package/lib/ACM-AXN/Holiday/Detail.d.ts +2 -0
- package/lib/ACM-AXN/Holiday/Detail.js +29 -0
- package/lib/ACM-AXN/Holiday/FormHoliday.d.ts +9 -0
- package/lib/ACM-AXN/Holiday/FormHoliday.js +110 -0
- package/lib/ACM-AXN/Holiday/Hooks.d.ts +2 -0
- package/lib/ACM-AXN/Holiday/Hooks.js +12 -0
- package/lib/ACM-AXN/Holiday/Types.d.ts +91 -0
- package/lib/ACM-AXN/Holiday/Types.js +15 -0
- package/lib/ACM-AXN/Holiday/Utils.d.ts +13 -0
- package/lib/ACM-AXN/Holiday/Utils.js +34 -0
- package/lib/ACM-AXN/Holiday/index.d.ts +3 -0
- package/lib/ACM-AXN/Holiday/index.js +45 -0
- package/lib/ACM-AXN/Notifications/NotificationDetail/HeaderInfo/ButtonTabs.js +1 -1
- package/lib/ACM-AXN/Notifications/NotificationDetail/HeaderInfo/MenuNotification.js +1 -1
- package/lib/ACM-AXN/Notifications/NotificationDetail/HeaderInfo/index.js +1 -1
- package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/NotificationItem/Message.js +7 -6
- package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/index.js +1 -1
- package/lib/ACM-AXN/Notifications/NotificationDetail/index.js +29 -26
- package/lib/ACM-AXN/Notifications/NotificationPopover/Container.js +1 -1
- package/lib/ACM-AXN/Notifications/Types.d.ts +2 -2
- package/lib/ACM-AXN/Page/Constant.d.ts +0 -10
- package/lib/ACM-AXN/Page/Constant.js +1 -11
- package/lib/ACM-AXN/Page/Container.js +12 -13
- package/lib/ACM-AXN/Page/CreateOrEdit/Components/useListPageView.js +2 -2
- package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.d.ts +6 -0
- package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.js +63 -0
- package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.d.ts +12 -1
- package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.js +20 -1
- package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.d.ts +1 -9
- package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.js +0 -9
- package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewContent.js +48 -29
- package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.d.ts +2 -3
- package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.js +53 -64
- package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/index.js +26 -31
- package/lib/ACM-AXN/Page/CreateOrEdit/Utils.js +7 -9
- package/lib/ACM-AXN/Page/CreateOrEdit/index.d.ts +2 -3
- package/lib/ACM-AXN/Page/CreateOrEdit/index.js +99 -45
- package/lib/ACM-AXN/Page/Import/index.js +1 -0
- package/lib/ACM-AXN/Page/Types.d.ts +2 -1
- package/lib/ACM-AXN/Page/index.js +9 -7
- package/lib/ACM-AXN/Permission/Components/Management.js +1 -1
- package/lib/ACM-AXN/Permission/Components/Styles.d.ts +1 -2
- package/lib/ACM-AXN/Permission/index.js +1 -1
- package/lib/ACM-AXN/PlaceGroup/Container.js +1 -1
- package/lib/ACM-AXN/PlaceGroup/Container.test.js +1 -1
- package/lib/ACM-AXN/PlaceGroup/Context.d.ts +0 -5
- package/lib/ACM-AXN/PlaceGroup/Context.js +0 -5
- package/lib/ACM-AXN/PlaceGroup/index.js +1 -1
- package/lib/ACM-AXN/ScheduleCompletionRate/Container.js +43 -28
- package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.d.ts +11 -13
- package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.js +27 -22
- package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRate.js +28 -19
- package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRate.test.js +3 -3
- package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRateDate.js +29 -19
- package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRateDate.test.js +3 -3
- package/lib/ACM-AXN/ScheduleCompletionRate/Detail/index.js +1 -1
- package/lib/ACM-AXN/ScheduleCompletionRate/Filter.d.ts +2 -1
- package/lib/ACM-AXN/ScheduleCompletionRate/Filter.js +46 -59
- package/lib/ACM-AXN/ScheduleCompletionRate/Filter.test.js +1 -1
- package/lib/ACM-AXN/ScheduleCompletionRate/Recoils.d.ts +7 -6
- package/lib/ACM-AXN/ScheduleCompletionRate/Recoils.js +6 -1
- package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.d.ts +2 -2
- package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.js +3 -9
- package/lib/ACM-AXN/ScheduleCompletionRate/Types.d.ts +74 -110
- package/lib/ACM-AXN/ScheduleCompletionRate/Types.js +21 -279
- package/lib/ACM-AXN/ScheduleCompletionRate/Utils.d.ts +22 -3
- package/lib/ACM-AXN/ScheduleCompletionRate/Utils.js +64 -11
- package/lib/ACM-AXN/ScheduleCompletionRate/index.js +3 -3
- package/lib/ACM-AXN/Statistics/ControlPanel.d.ts +1 -1
- package/lib/ACM-AXN/Statistics/ControlPanel.js +28 -12
- package/lib/ACM-AXN/Statistics/Enums.d.ts +2 -1
- package/lib/ACM-AXN/Statistics/Enums.js +1 -0
- package/lib/ACM-AXN/Statistics/container.d.ts +1 -1
- package/lib/ACM-AXN/Statistics/container.js +2 -2
- package/lib/ACM-AXN/Statistics/interface.d.ts +1 -0
- package/lib/ACM-AXN/StatisticsAudienceDemographic/Tabs/AgeRange.js +6 -5
- package/lib/ACM-AXN/StatisticsAudienceDemographic/Tabs/TableAndPieChart.js +5 -5
- package/lib/ACM-AXN/StatisticsAudienceDemographic/container.d.ts +1 -1
- package/lib/ACM-AXN/StatisticsAudienceDemographic/container.js +2 -2
- package/lib/ACM-AXN/StatisticsAudienceDemographic/interfaces.d.ts +1 -0
- package/lib/ACM-AXN/StatisticsByProvince/container.d.ts +1 -1
- package/lib/ACM-AXN/StatisticsByProvince/container.js +2 -2
- package/lib/ACM-AXN/StatisticsByProvince/interfaces.d.ts +1 -0
- package/lib/ACM-AXN/TaskScheduler/Components/CornJobInput.js +1 -2
- package/lib/ACM-AXN/TaskScheduler/Container.js +3 -3
- package/lib/ACM-AXN/TaskScheduler/CreateOrEdit.js +9 -10
- package/lib/ACM-AXN/TaskScheduler/Types.d.ts +1 -1
- package/lib/ACM-AXN/TaskScheduler/Utils.d.ts +5 -0
- package/lib/ACM-AXN/TaskScheduler/Utils.js +8 -3
- package/lib/ACM-AXN/TaskScheduler/index.js +3 -3
- package/lib/ACM-AXN/Template/Container.js +5 -5
- package/lib/ACM-AXN/Template/Container.test.js +6 -5
- package/lib/ACM-AXN/Template/CreateOrEdit/CreateOrEdit.test.js +1 -1
- package/lib/ACM-AXN/Template/CreateOrEdit/Infomation.js +13 -2
- package/lib/ACM-AXN/Template/CreateOrEdit/Infomation.test.js +1 -1
- package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.d.ts +1 -0
- package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.js +5 -1
- package/lib/ACM-AXN/Template/CreateOrEdit/Script.js +3 -3
- package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.d.ts +3 -2
- package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.js +57 -32
- package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.d.ts +1 -1
- package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.js +62 -51
- package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.d.ts +28 -4
- package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.js +43 -15
- package/lib/ACM-AXN/Template/CreateOrEdit/Template/index.js +7 -3
- package/lib/ACM-AXN/Template/CreateOrEdit/index.js +11 -7
- package/lib/ACM-AXN/Template/Import.js +6 -3
- package/lib/ACM-AXN/Template/Import.test.js +2 -2
- package/lib/ACM-AXN/Template/Types.d.ts +9 -9
- package/lib/ACM-AXN/Template/index.js +4 -4
- package/lib/ACM-AXN/TransactionLog/Container.js +1 -1
- package/lib/ACM-AXN/TransactionLog/Detail.js +1 -1
- package/lib/ACM-AXN/TransactionLog/index.js +1 -1
- package/lib/ACM-AXN/User/Add.js +2 -2
- package/lib/ACM-AXN/User/Container.js +2 -2
- package/lib/ACM-AXN/User/index.js +2 -2
- package/lib/ACM-AXN/ViewTemplate/Enum.d.ts +1 -0
- package/lib/ACM-AXN/ViewTemplate/Enum.js +1 -0
- package/lib/ACM-AXN/ViewTemplate/Preview.js +52 -42
- package/lib/ACM-AXN/ViewTemplate/TemplateField/Event.d.ts +12 -0
- package/lib/ACM-AXN/ViewTemplate/TemplateField/Event.js +69 -0
- package/lib/ACM-AXN/ViewTemplate/TemplateField/Event.test.d.ts +1 -0
- package/lib/ACM-AXN/ViewTemplate/TemplateField/Event.test.js +84 -0
- package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.d.ts +18 -0
- package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.js +170 -0
- package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/index.js +54 -159
- package/lib/ACM-AXN/ViewTemplate/common.js +1 -1
- package/lib/ACM-AXN/ViewTemplate/constant.d.ts +1 -0
- package/lib/ACM-AXN/ViewTemplate/constant.js +2 -1
- package/lib/ACM-AXN/ViewTemplate/container.d.ts +1 -1
- package/lib/ACM-AXN/ViewTemplate/container.js +36 -25
- package/lib/ACM-AXN/ViewTemplate/interface.d.ts +3 -7
- package/lib/ACM-AXN/Wizard/Container.d.ts +2 -0
- package/lib/ACM-AXN/Wizard/Container.js +46 -0
- package/lib/ACM-AXN/Wizard/Container.test.d.ts +1 -0
- package/lib/ACM-AXN/Wizard/Container.test.js +162 -0
- package/lib/ACM-AXN/Wizard/Context.d.ts +3 -0
- package/lib/ACM-AXN/Wizard/Context.js +5 -0
- package/lib/ACM-AXN/Wizard/CreateOrEdit/FormInformationBasic.d.ts +11 -0
- package/lib/ACM-AXN/Wizard/CreateOrEdit/FormInformationBasic.js +90 -0
- package/lib/ACM-AXN/Wizard/CreateOrEdit/FormInformationBasic.test.d.ts +1 -0
- package/lib/ACM-AXN/Wizard/CreateOrEdit/FormInformationBasic.test.js +113 -0
- package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.d.ts +14 -0
- package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.js +88 -0
- package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.test.d.ts +1 -0
- package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.test.js +99 -0
- package/lib/ACM-AXN/Wizard/CreateOrEdit/RowTemplate.d.ts +14 -0
- package/lib/ACM-AXN/Wizard/CreateOrEdit/RowTemplate.js +161 -0
- package/lib/ACM-AXN/Wizard/CreateOrEdit/RowTemplate.test.d.ts +1 -0
- package/lib/ACM-AXN/Wizard/CreateOrEdit/RowTemplate.test.js +255 -0
- package/lib/ACM-AXN/Wizard/CreateOrEdit/index.d.ts +2 -0
- package/lib/ACM-AXN/Wizard/CreateOrEdit/index.js +150 -0
- package/lib/ACM-AXN/Wizard/CreateOrEdit/index.test.d.ts +1 -0
- package/lib/ACM-AXN/Wizard/CreateOrEdit/index.test.js +223 -0
- package/lib/ACM-AXN/Wizard/Hooks.d.ts +2 -0
- package/lib/ACM-AXN/Wizard/Hooks.js +12 -0
- package/lib/ACM-AXN/Wizard/Types.d.ts +217 -0
- package/lib/ACM-AXN/Wizard/Types.js +22 -0
- package/lib/ACM-AXN/Wizard/Utils.d.ts +27 -0
- package/lib/ACM-AXN/Wizard/Utils.js +31 -0
- package/lib/ACM-AXN/Wizard/index.d.ts +3 -0
- package/lib/ACM-AXN/Wizard/index.js +40 -0
- package/lib/AWING/AsyncAutocomplete/index.js +2 -2
- package/lib/AWING/Chart/BarLineComponent.js +105 -9
- package/lib/AWING/Chart/PieComponent.js +2 -2
- package/lib/AWING/Chart/Styles.js +49 -16
- package/lib/AWING/DataForm/DataInput.js +22 -18
- package/lib/AWING/DataGrid/index.js +9 -1
- package/lib/AWING/DataGrid/interface.d.ts +39 -1
- package/lib/AWING/DateRangePicker/component.js +32 -14
- package/lib/AWING/Form/Utils/Types.d.ts +4 -0
- package/lib/AWING/Form/useForm.d.ts +2 -3
- package/lib/AWING/Form/useForm.js +6 -4
- package/lib/AWING/GroupTable/GroupTable.js +7 -7
- package/lib/AWING/Hooks/index.d.ts +1 -0
- package/lib/AWING/Hooks/index.js +17 -0
- package/lib/AWING/Hooks/useGetData.d.ts +9 -0
- package/lib/AWING/Hooks/useGetData.js +26 -0
- package/lib/AWING/NumberFormat/index.d.ts +3 -1
- package/lib/AWING/NumberFormat/index.js +2 -2
- package/lib/AWING/ultis/validation.d.ts +1 -0
- package/lib/AWING/ultis/validation.js +22 -15
- package/lib/Commons/Components/ClassicDrawer.js +2 -2
- package/lib/Commons/Components/DeprecatedEnhancedDialog.js +1 -1
- package/lib/Commons/Hooks/usePath.js +3 -3
- package/lib/Utils/Helpers.d.ts +11 -3
- package/lib/Utils/Helpers.js +65 -4
- package/lib/translate/en/translation.json +84 -7
- package/lib/translate/vi/translation.json +86 -7
- package/package.json +128 -126
- package/lib/ACM-AXN/Campaign/Constant.d.ts +0 -38
- package/lib/ACM-AXN/Campaign/Constant.js +0 -41
- package/lib/ACM-AXN/CampaignPlan/Constant.d.ts +0 -8
- package/lib/ACM-AXN/CampaignPlan/Constant.js +0 -11
- package/lib/ACM-AXN/Directory/Constant.d.ts +0 -13
- package/lib/ACM-AXN/Directory/Constant.js +0 -15
- package/lib/ACM-AXN/GroupUser/Constants.d.ts +0 -7
- package/lib/ACM-AXN/GroupUser/Constants.js +0 -10
- package/lib/ACM-AXN/PlaceGroup/Constant.d.ts +0 -9
- package/lib/ACM-AXN/PlaceGroup/Constant.js +0 -12
- package/lib/ACM-AXN/ScheduleCompletionRate/Constant.d.ts +0 -8
- package/lib/ACM-AXN/ScheduleCompletionRate/Constant.js +0 -11
- package/lib/ACM-AXN/TaskScheduler/Constant.d.ts +0 -9
- package/lib/ACM-AXN/TaskScheduler/Constant.js +0 -13
- package/lib/ACM-AXN/TaskScheduler/Enums.d.ts +0 -4
- package/lib/ACM-AXN/TaskScheduler/Enums.js +0 -8
- package/lib/ACM-AXN/Template/Constants.d.ts +0 -0
- package/lib/ACM-AXN/Template/Constants.js +0 -1
- package/lib/ACM-AXN/Template/CreateOrEdit/Template/Events.d.ts +0 -5
- package/lib/ACM-AXN/Template/CreateOrEdit/Template/Events.js +0 -41
- package/lib/ACM-AXN/TransactionLog/Constant.d.ts +0 -10
- package/lib/ACM-AXN/TransactionLog/Constant.js +0 -13
- package/lib/ACM-AXN/User/Constants.d.ts +0 -2
- package/lib/ACM-AXN/User/Constants.js +0 -5
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
18
|
+
var react_1 = __importDefault(require("react"));
|
|
19
|
+
var react_2 = require("@testing-library/react");
|
|
20
|
+
var container_1 = __importDefault(require("./container"));
|
|
21
|
+
var component_1 = __importDefault(require("./component"));
|
|
22
|
+
var StatisticCampaign_1 = __importDefault(require("Services/StatisticCampaign"));
|
|
23
|
+
var Snackbar_1 = require("Utilities/Snackbar");
|
|
24
|
+
var Enum_1 = require("Commons/Enum");
|
|
25
|
+
jest.mock('Services/StatisticCampaign');
|
|
26
|
+
jest.mock('Utilities/Snackbar');
|
|
27
|
+
describe('CustomerContainer', function () {
|
|
28
|
+
var mockCustomerData = {
|
|
29
|
+
audienceOverviews: [
|
|
30
|
+
{
|
|
31
|
+
timeline: 20230601,
|
|
32
|
+
totalUser: 100,
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
timeline: 20230602,
|
|
36
|
+
totalUser: 150,
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
timeline: 20230603,
|
|
40
|
+
totalUser: 200,
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
totalUser: 450,
|
|
44
|
+
};
|
|
45
|
+
var mockProps = {
|
|
46
|
+
campaignId: '1',
|
|
47
|
+
startDate: new Date('2023-06-01'),
|
|
48
|
+
endDate: new Date('2023-06-03'),
|
|
49
|
+
};
|
|
50
|
+
beforeEach(function () {
|
|
51
|
+
// Define a mock implementation of the StatisticCampaignService
|
|
52
|
+
StatisticCampaign_1.default.getAnalyticCustomer.mockResolvedValue({
|
|
53
|
+
data: {
|
|
54
|
+
status: Enum_1.STATUS_CODE_ENUMS.OK,
|
|
55
|
+
data: mockCustomerData,
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
it('should render without error', function () {
|
|
60
|
+
(0, react_2.render)((0, jsx_runtime_1.jsx)(container_1.default, __assign({}, mockProps)));
|
|
61
|
+
});
|
|
62
|
+
// it("should start with isLoading state set to true", () => {
|
|
63
|
+
// render(<CustomerContainer {...mockProps} />);
|
|
64
|
+
// expect(screen.getByRole("progressbar").length).toEqual(1);
|
|
65
|
+
// });
|
|
66
|
+
// it("should call getAnalyticCustomer API when getCustomerData function is called", async () => {
|
|
67
|
+
// render(<CustomerContainer {...mockProps} />);
|
|
68
|
+
// const startDateField = screen.getByLabelText(/start date/i);
|
|
69
|
+
// const endDateField = screen.getByLabelText(/end date/i);
|
|
70
|
+
// const searchButton = screen.getByRole("button", { name: /search/i });
|
|
71
|
+
// fireEvent.change(startDateField, { target: { value: "2023-06-01" } });
|
|
72
|
+
// fireEvent.change(endDateField, { target: { value: "2023-06-03" } });
|
|
73
|
+
// fireEvent.click(searchButton);
|
|
74
|
+
// await waitFor(() => {
|
|
75
|
+
// expect(
|
|
76
|
+
// StatisticCampaignService.getAnalyticCustomer
|
|
77
|
+
// ).toHaveBeenCalledWith("Tue Jun 01 2023", "Thu Jun 03 2023", "1");
|
|
78
|
+
// });
|
|
79
|
+
// });
|
|
80
|
+
// it("should set isLoading state to false after getAnalyticCustomer API is resolved", async () => {
|
|
81
|
+
// render(<CustomerContainer {...mockProps} />);
|
|
82
|
+
// const searchButton = screen.getByRole("button", { name: /search/i });
|
|
83
|
+
// fireEvent.click(searchButton);
|
|
84
|
+
// await waitFor(() => {
|
|
85
|
+
// expect(
|
|
86
|
+
// screen.queryByTestId("customer-loading")
|
|
87
|
+
// ).not.toBeInTheDocument();
|
|
88
|
+
// });
|
|
89
|
+
// });
|
|
90
|
+
// it("should set customerData state when getAnalyticCustomer API is resolved", async () => {
|
|
91
|
+
// render(<CustomerContainer {...mockProps} />);
|
|
92
|
+
// const searchButton = screen.getByRole("button", { name: /search/i });
|
|
93
|
+
// fireEvent.click(searchButton);
|
|
94
|
+
// await waitFor(() => {
|
|
95
|
+
// expect(screen.queryByTestId("total-users")).toHaveTextContent(
|
|
96
|
+
// "450"
|
|
97
|
+
// );
|
|
98
|
+
// });
|
|
99
|
+
// });
|
|
100
|
+
// it("should call Snackbar function with error message when getAnalyticCustomer API is rejected", async () => {
|
|
101
|
+
// // Change the mock implementation of the StatisticCampaignService to reject the promise
|
|
102
|
+
// StatisticCampaignService.getAnalyticCustomer.mockRejectedValue(
|
|
103
|
+
// new Error("API failed")
|
|
104
|
+
// );
|
|
105
|
+
// render(<CustomerContainer {...mockProps} />);
|
|
106
|
+
// const searchButton = screen.getByRole("button", { name: /search/i });
|
|
107
|
+
// fireEvent.click(searchButton);
|
|
108
|
+
// await waitFor(() => {
|
|
109
|
+
// expect(Snackbar).toHaveBeenCalledWith(SNACKBAR_TYPES.ERROR);
|
|
110
|
+
// });
|
|
111
|
+
// });
|
|
112
|
+
// it("should call dowloadWithDataSet function on exportData function call", async () => {
|
|
113
|
+
// const mockExportData = [{ columns: [], data: [] }];
|
|
114
|
+
// render(<CustomerContainer {...mockProps} />);
|
|
115
|
+
// const downloadButton = screen.getByRole("button", { name: /export/i });
|
|
116
|
+
// fireEvent.click(downloadButton);
|
|
117
|
+
// await waitFor(() => {
|
|
118
|
+
// expect(dowloadWithDataSet).toHaveBeenCalledWith(
|
|
119
|
+
// "export_analytic_customer_campaign_1",
|
|
120
|
+
// mockExportData
|
|
121
|
+
// );
|
|
122
|
+
// });
|
|
123
|
+
// });
|
|
124
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { IAudienceObjectReply } from '../Types';
|
|
2
|
+
interface Props {
|
|
3
|
+
isLoading: boolean;
|
|
4
|
+
startDate: Date;
|
|
5
|
+
endDate: Date;
|
|
6
|
+
customerData: IAudienceObjectReply;
|
|
7
|
+
getCustomerData: (time: {
|
|
8
|
+
startDate: Date;
|
|
9
|
+
endDate: Date;
|
|
10
|
+
}) => void;
|
|
11
|
+
exportData: () => void;
|
|
12
|
+
}
|
|
13
|
+
declare const Customer: (props: Props) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export default Customer;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
18
|
+
var react_1 = __importDefault(require("react"));
|
|
19
|
+
var GetApp_1 = __importDefault(require("@mui/icons-material/GetApp"));
|
|
20
|
+
var material_1 = require("@mui/material");
|
|
21
|
+
var react_i18next_1 = require("react-i18next");
|
|
22
|
+
var i18n_1 = __importDefault(require("../../../../../i18n"));
|
|
23
|
+
var Helpers_1 = require("../../../../../Utils/Helpers");
|
|
24
|
+
var AWING_1 = require("../../../../../AWING");
|
|
25
|
+
var moment_1 = __importDefault(require("moment"));
|
|
26
|
+
var Context_1 = __importDefault(require("../Context"));
|
|
27
|
+
var Customer = function (props) {
|
|
28
|
+
var t = (0, react_i18next_1.useTranslation)(undefined, { i18n: i18n_1.default }).t;
|
|
29
|
+
var chart = (0, Context_1.default)().chart;
|
|
30
|
+
var isLoading = props.isLoading, startDate = props.startDate, endDate = props.endDate, customerData = props.customerData, getCustomerData = props.getCustomerData, exportData = props.exportData;
|
|
31
|
+
var _a = react_1.default.useState({
|
|
32
|
+
time: {
|
|
33
|
+
startDate: startDate,
|
|
34
|
+
endDate: endDate,
|
|
35
|
+
},
|
|
36
|
+
placeIds: [],
|
|
37
|
+
}), queryInput = _a[0], setQueryInput = _a[1];
|
|
38
|
+
var changeQueryInput = function (fieldName, fieldValue) {
|
|
39
|
+
var _a;
|
|
40
|
+
var newInput = __assign(__assign({}, queryInput), (_a = {}, _a[fieldName] = fieldValue, _a));
|
|
41
|
+
setQueryInput(newInput);
|
|
42
|
+
getCustomerData(newInput.time);
|
|
43
|
+
};
|
|
44
|
+
var queryData = function () {
|
|
45
|
+
getCustomerData(queryInput.time);
|
|
46
|
+
};
|
|
47
|
+
react_1.default.useEffect(function () {
|
|
48
|
+
queryData();
|
|
49
|
+
}, []);
|
|
50
|
+
return ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, spacing: 2, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, children: (0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, spacing: 2, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 3 }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 4, children: (0, jsx_runtime_1.jsx)(AWING_1.DateRangePicker
|
|
51
|
+
// noBorder
|
|
52
|
+
, {
|
|
53
|
+
// noBorder
|
|
54
|
+
label: t('Common.View'), callback: function (value) {
|
|
55
|
+
var _a, _b;
|
|
56
|
+
Object.values(value).filter(Boolean).length > 1 &&
|
|
57
|
+
changeQueryInput('time', {
|
|
58
|
+
startDate: (0, Helpers_1.getStartOfDay)((_a = value === null || value === void 0 ? void 0 : value.startDate) === null || _a === void 0 ? void 0 : _a.toDate()),
|
|
59
|
+
endDate: (0, Helpers_1.getStartOfDay)((_b = value === null || value === void 0 ? void 0 : value.endDate) === null || _b === void 0 ? void 0 : _b.toDate()),
|
|
60
|
+
});
|
|
61
|
+
}, initialStartDate: (0, moment_1.default)(queryInput.time.startDate), initialEndDate: (0, moment_1.default)(queryInput.time.endDate), isShowCalendarInfo: true, variant: "outlined", textFieldProps: {
|
|
62
|
+
fullWidth: true,
|
|
63
|
+
sx: {
|
|
64
|
+
'& .MuiOutlinedInput-input': {
|
|
65
|
+
padding: '10.5px !important',
|
|
66
|
+
},
|
|
67
|
+
'& .MuiFormControl-marginNormal': {
|
|
68
|
+
margin: function (theme) {
|
|
69
|
+
return theme.spacing(0);
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
'& .MuiOutlinedInput-adornedEnd': {
|
|
73
|
+
paddingRight: function (theme) {
|
|
74
|
+
return theme.spacing(0.5);
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
'& .MuiIconButton-root': {
|
|
78
|
+
padding: function (theme) {
|
|
79
|
+
return theme.spacing(1);
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
'& .MuiAutocomplete-inputRoot': {
|
|
83
|
+
padding: function (theme) {
|
|
84
|
+
return theme.spacing(0.25);
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
'& .MuiAutocomplete-endAdornment': {
|
|
88
|
+
top: 'calc(50% - 19px)',
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
} }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 1, children: (0, jsx_runtime_1.jsx)(material_1.FormControl, { children: (0, jsx_runtime_1.jsx)(material_1.Button, { color: "primary", variant: "contained", onClick: function () { return queryData(); }, fullWidth: true, children: t('Common.View') }) }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 1, children: (0, jsx_runtime_1.jsx)(material_1.FormControl, { children: (0, jsx_runtime_1.jsx)(material_1.Button, { variant: "outlined", onClick: function () { return exportData(); }, children: (0, jsx_runtime_1.jsx)(GetApp_1.default, {}) }) }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 3 })] }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, children: isLoading ? ((0, jsx_runtime_1.jsx)(AWING_1.CircularProgress, {})) : ((0, jsx_runtime_1.jsx)(material_1.Grid, { container: true, spacing: 2, sx: {
|
|
92
|
+
border: '1px solid #ccc',
|
|
93
|
+
paddingTop: 4,
|
|
94
|
+
marginTop: 2,
|
|
95
|
+
marginLeft: -1,
|
|
96
|
+
}, children: (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
|
|
97
|
+
padding: function (theme) { return theme.spacing(1); },
|
|
98
|
+
paddingLeft: function (theme) { return theme.spacing(16); },
|
|
99
|
+
paddingRight: function (theme) { return theme.spacing(16); },
|
|
100
|
+
height: '435px',
|
|
101
|
+
}, children: (0, jsx_runtime_1.jsx)(AWING_1.BarLineComponent, { chart: chart, dataChart: [
|
|
102
|
+
{
|
|
103
|
+
label: t('Campaign.TotalCustomer') +
|
|
104
|
+
' ' +
|
|
105
|
+
(0, Helpers_1.roundDecimalNumber)(customerData.totalUser),
|
|
106
|
+
type: 'line',
|
|
107
|
+
data: (0, Helpers_1.fillMissingDates)(customerData === null || customerData === void 0 ? void 0 : customerData.audienceObjects.map(function (item) { return ({
|
|
108
|
+
x: String(item.timeline),
|
|
109
|
+
y: item.totalUser,
|
|
110
|
+
}); }), queryInput.time.startDate, queryInput.time.endDate),
|
|
111
|
+
fill: false,
|
|
112
|
+
pointStyle: 'rect',
|
|
113
|
+
yAxisID: 'y',
|
|
114
|
+
variant: "primary",
|
|
115
|
+
}
|
|
116
|
+
], type: 'line', optionCustom: {
|
|
117
|
+
scales: {
|
|
118
|
+
y: {
|
|
119
|
+
title: {
|
|
120
|
+
text: t('Statistics.View'),
|
|
121
|
+
},
|
|
122
|
+
beginAtZero: true,
|
|
123
|
+
},
|
|
124
|
+
yAxis: {
|
|
125
|
+
display: false,
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
}, data: [] }) }) }) })) })] }));
|
|
129
|
+
};
|
|
130
|
+
exports.default = Customer;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
var react_1 = __importDefault(require("react"));
|
|
8
|
+
var component_1 = __importDefault(require("./component"));
|
|
9
|
+
var moment_1 = __importDefault(require("moment"));
|
|
10
|
+
var Enum_1 = require("../../../../../ACM-AXN/Campaign/Enum");
|
|
11
|
+
var Helpers_1 = require("../../../../../Utils/Helpers");
|
|
12
|
+
var lodash_1 = __importDefault(require("lodash"));
|
|
13
|
+
var Context_1 = __importDefault(require("../Context"));
|
|
14
|
+
var exportFile_1 = require("../../../../../ACM-AXN/CampaignSchedule/exportFile");
|
|
15
|
+
var CustomerContainer = function (props) {
|
|
16
|
+
var campaignId = props.campaignId, startDate = props.startDate, endDate = props.endDate;
|
|
17
|
+
var client = (0, Context_1.default)().services;
|
|
18
|
+
var _a = react_1.default.useState(true), isLoading = _a[0], setIsLoading = _a[1];
|
|
19
|
+
var _b = react_1.default.useState({
|
|
20
|
+
audienceObjects: [],
|
|
21
|
+
totalUser: 0,
|
|
22
|
+
}), customerData = _b[0], setCustomerData = _b[1];
|
|
23
|
+
// Filter and fill missing dates with 0 total
|
|
24
|
+
var filteredData = function (data, start, end) {
|
|
25
|
+
var filteredDates = [];
|
|
26
|
+
var _loop_1 = function (date) {
|
|
27
|
+
var formattedDate = (0, moment_1.default)(date).startOf('D').format('YYYYMMDD');
|
|
28
|
+
var existingData = data.find(function (item) { return String(item.timeline) === formattedDate; });
|
|
29
|
+
if (existingData) {
|
|
30
|
+
filteredDates.push(existingData);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
filteredDates.push({ timeline: formattedDate, totalUser: 0 });
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
for (var date = start; date <= end; date.setDate(date.getDate() + 1)) {
|
|
37
|
+
_loop_1(date);
|
|
38
|
+
}
|
|
39
|
+
return filteredDates;
|
|
40
|
+
};
|
|
41
|
+
var getCustomerData = function (time) {
|
|
42
|
+
setIsLoading(true);
|
|
43
|
+
client
|
|
44
|
+
.campaignStatisticGetCustomer((0, moment_1.default)(startDate).format(Enum_1.DATE_FORMAT), (0, moment_1.default)(endDate).format(Enum_1.DATE_FORMAT), campaignId)
|
|
45
|
+
.then(function (res) {
|
|
46
|
+
var tmp_audienceOverviews = filteredData(res.audienceObjects, lodash_1.default.cloneDeep(time.startDate), lodash_1.default.cloneDeep(time.endDate));
|
|
47
|
+
setCustomerData({
|
|
48
|
+
audienceObjects: res.audienceObjects,
|
|
49
|
+
audienceOverviews: tmp_audienceOverviews,
|
|
50
|
+
totalUser: res.totalUser,
|
|
51
|
+
});
|
|
52
|
+
})
|
|
53
|
+
.finally(function () { return setIsLoading(false); });
|
|
54
|
+
};
|
|
55
|
+
var exportData = function () {
|
|
56
|
+
(0, exportFile_1.downloadWithDataSet)("export_analytic_customer_campaign_".concat(campaignId), convertToExportData(customerData));
|
|
57
|
+
};
|
|
58
|
+
function convertToExportData(customerData) {
|
|
59
|
+
var columns = ['Date', 'Total'];
|
|
60
|
+
var exportData = [];
|
|
61
|
+
customerData.audienceOverviews.forEach(function (el) {
|
|
62
|
+
exportData.push([
|
|
63
|
+
(0, Helpers_1.dateTimeToString)((0, Helpers_1.convertTimelineToDateTime)(el.timeline, Helpers_1.TIMELINE_TYPE.DAY), 'DD/MM/YYYY'),
|
|
64
|
+
el.totalUser,
|
|
65
|
+
]);
|
|
66
|
+
});
|
|
67
|
+
return [
|
|
68
|
+
{
|
|
69
|
+
columns: columns,
|
|
70
|
+
data: exportData,
|
|
71
|
+
},
|
|
72
|
+
];
|
|
73
|
+
}
|
|
74
|
+
return ((0, jsx_runtime_1.jsx)(component_1.default, { startDate: startDate, endDate: endDate, isLoading: isLoading, customerData: customerData, getCustomerData: getCustomerData, exportData: exportData }));
|
|
75
|
+
};
|
|
76
|
+
exports.default = CustomerContainer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./container";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var container_1 = require("./container");
|
|
8
|
+
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(container_1).default; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
18
|
+
var react_1 = __importDefault(require("react"));
|
|
19
|
+
var enzyme_1 = require("enzyme");
|
|
20
|
+
var component_1 = __importDefault(require("./component"));
|
|
21
|
+
var Progress_1 = require("Components/Progress");
|
|
22
|
+
var ChartFilter_1 = __importDefault(require("../ChartFilter"));
|
|
23
|
+
var AWING_1 = require("../../../../../AWING");
|
|
24
|
+
var ChartAdvance_1 = require("Components/ChartAdvance");
|
|
25
|
+
var Table_1 = __importDefault(require("./Table"));
|
|
26
|
+
describe("EventComponent component", function () {
|
|
27
|
+
var mockData = {
|
|
28
|
+
isLoading: false,
|
|
29
|
+
startDate: new Date(2023, 5, 7),
|
|
30
|
+
endDate: new Date(2023, 5, 8),
|
|
31
|
+
subCampaigns: [],
|
|
32
|
+
eventData: [],
|
|
33
|
+
getEventData: jest.fn(),
|
|
34
|
+
exportData: jest.fn(),
|
|
35
|
+
domains: [],
|
|
36
|
+
};
|
|
37
|
+
it("renders without crashing", function () {
|
|
38
|
+
(0, enzyme_1.shallow)((0, jsx_runtime_1.jsx)(component_1.default, __assign({}, mockData)));
|
|
39
|
+
});
|
|
40
|
+
it("displays a loading component when loading data", function () {
|
|
41
|
+
var wrapper = (0, enzyme_1.shallow)((0, jsx_runtime_1.jsx)(component_1.default, __assign({}, mockData, { isLoading: true })));
|
|
42
|
+
expect(wrapper.find(Progress_1.CircularProgress)).toHaveLength(1);
|
|
43
|
+
});
|
|
44
|
+
it("displays a ChartFilter component with correct props", function () {
|
|
45
|
+
var wrapper = (0, enzyme_1.shallow)((0, jsx_runtime_1.jsx)(component_1.default, __assign({}, mockData)));
|
|
46
|
+
var chartFilter = wrapper.find(ChartFilter_1.default);
|
|
47
|
+
expect(chartFilter).toHaveLength(1);
|
|
48
|
+
expect(chartFilter.prop("subCampaigns")).toEqual([]);
|
|
49
|
+
expect(chartFilter.prop("domains")).toEqual([]);
|
|
50
|
+
});
|
|
51
|
+
it("displays a MultipleHierarchicalChoice component with correct props", function () {
|
|
52
|
+
var wrapper = (0, enzyme_1.shallow)((0, jsx_runtime_1.jsx)(component_1.default, __assign({}, mockData)));
|
|
53
|
+
var multiChoice = wrapper.find(AWING_1.MultipleHierarchicalChoice);
|
|
54
|
+
expect(multiChoice).toHaveLength(1);
|
|
55
|
+
expect(multiChoice.prop("options")).toEqual([]);
|
|
56
|
+
});
|
|
57
|
+
it("displays a BarLineChart component with correct props", function () {
|
|
58
|
+
var wrapper = (0, enzyme_1.shallow)((0, jsx_runtime_1.jsx)(component_1.default, __assign({}, mockData)));
|
|
59
|
+
var chart = wrapper.find(ChartAdvance_1.BarLineChart);
|
|
60
|
+
expect(chart).toHaveLength(1);
|
|
61
|
+
expect(chart.prop("data")).toEqual([]);
|
|
62
|
+
expect(chart.prop("height")).toEqual(320);
|
|
63
|
+
expect(chart.prop("yAxeRightConfigs")).toEqual({
|
|
64
|
+
display: false,
|
|
65
|
+
scaleLabelDisplay: false,
|
|
66
|
+
labelString: "CTR(%)",
|
|
67
|
+
ticks: { min: 0, max: 100, maxTicksLimit: 6 },
|
|
68
|
+
gridLines: { display: false },
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
it("displays an EventComponentTable component with correct props", function () {
|
|
72
|
+
var wrapper = (0, enzyme_1.shallow)((0, jsx_runtime_1.jsx)(component_1.default, __assign({}, mockData)));
|
|
73
|
+
var table = wrapper.find(Table_1.default);
|
|
74
|
+
expect(table).toHaveLength(1);
|
|
75
|
+
expect(table.prop("data")).toEqual([]);
|
|
76
|
+
});
|
|
77
|
+
it("invokes getEventData when ChartFilter component is queried", function () {
|
|
78
|
+
var wrapper = (0, enzyme_1.shallow)((0, jsx_runtime_1.jsx)(component_1.default, __assign({}, mockData)));
|
|
79
|
+
var chartFilter = wrapper.find(ChartFilter_1.default);
|
|
80
|
+
var queryData = chartFilter.prop("onQueryData");
|
|
81
|
+
queryData();
|
|
82
|
+
expect(mockData.getEventData).toHaveBeenCalled();
|
|
83
|
+
});
|
|
84
|
+
it("invokes exportData when ChartFilter component is exported", function () {
|
|
85
|
+
var wrapper = (0, enzyme_1.shallow)((0, jsx_runtime_1.jsx)(component_1.default, __assign({}, mockData)));
|
|
86
|
+
var chartFilter = wrapper.find(ChartFilter_1.default);
|
|
87
|
+
var exportData = chartFilter.prop("onExportData");
|
|
88
|
+
exportData();
|
|
89
|
+
expect(mockData.exportData).toHaveBeenCalled();
|
|
90
|
+
});
|
|
91
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
18
|
+
var react_1 = __importDefault(require("react"));
|
|
19
|
+
var enzyme_1 = require("enzyme");
|
|
20
|
+
var container_1 = __importDefault(require("./container"));
|
|
21
|
+
var component_1 = __importDefault(require("./component"));
|
|
22
|
+
describe("EventContainer", function () {
|
|
23
|
+
var wrapper;
|
|
24
|
+
var props = {
|
|
25
|
+
campaignId: "abc",
|
|
26
|
+
startDate: new Date(),
|
|
27
|
+
endDate: new Date(),
|
|
28
|
+
subCampaigns: [],
|
|
29
|
+
domains: [],
|
|
30
|
+
};
|
|
31
|
+
beforeEach(function () {
|
|
32
|
+
wrapper = (0, enzyme_1.shallow)((0, jsx_runtime_1.jsx)(container_1.default, __assign({}, props)));
|
|
33
|
+
});
|
|
34
|
+
it("should render without errors, should render an EventComponent", function () {
|
|
35
|
+
expect(wrapper.exists()).toBe(true);
|
|
36
|
+
expect(wrapper.find(component_1.default)).toHaveLength(1);
|
|
37
|
+
});
|
|
38
|
+
it("should render an EventComponent with correct props", function () {
|
|
39
|
+
expect(wrapper.find(component_1.default).props()).toMatchObject({
|
|
40
|
+
startDate: props.startDate,
|
|
41
|
+
endDate: props.endDate,
|
|
42
|
+
subCampaigns: props.subCampaigns,
|
|
43
|
+
isLoading: true,
|
|
44
|
+
eventData: [],
|
|
45
|
+
domains: props.domains,
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
});
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
var styles_1 = require("@mui/styles");
|
|
8
|
+
var material_1 = require("@mui/material");
|
|
9
|
+
var react_i18next_1 = require("react-i18next");
|
|
10
|
+
var Helpers_1 = require("../../../../../Utils/Helpers");
|
|
11
|
+
var i18n_1 = __importDefault(require("../../../../../i18n"));
|
|
12
|
+
var useStyles = (0, styles_1.makeStyles)({
|
|
13
|
+
table: {
|
|
14
|
+
minWidth: 400,
|
|
15
|
+
'& > thead > tr > th': {
|
|
16
|
+
borderBottom: '1px solid #fafafa',
|
|
17
|
+
},
|
|
18
|
+
'& > tbody > tr > td': {
|
|
19
|
+
borderBottom: '1px solid #fafafa',
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
var EventTable = function (props) {
|
|
24
|
+
var classes = useStyles();
|
|
25
|
+
var eventDetails = props.data;
|
|
26
|
+
var t = (0, react_i18next_1.useTranslation)(undefined, { i18n: i18n_1.default }).t;
|
|
27
|
+
var translationText = {
|
|
28
|
+
eventLabel: t('Campaign.Detail.EventLabel'),
|
|
29
|
+
number: t('Campaign.Detail.TotalEvents'),
|
|
30
|
+
};
|
|
31
|
+
return ((0, jsx_runtime_1.jsx)(material_1.TableContainer, { component: material_1.Paper, children: (0, jsx_runtime_1.jsxs)(material_1.Table, { className: classes.table, children: [(0, jsx_runtime_1.jsx)(material_1.TableHead, { children: (0, jsx_runtime_1.jsxs)(material_1.TableRow, { children: [(0, jsx_runtime_1.jsx)(material_1.TableCell, { children: translationText.eventLabel }), (0, jsx_runtime_1.jsx)(material_1.TableCell, { children: translationText.number })] }) }), (0, jsx_runtime_1.jsx)(material_1.TableBody, { children: eventDetails.map(function (row) { return ((0, jsx_runtime_1.jsxs)(material_1.TableRow, { children: [(0, jsx_runtime_1.jsx)(material_1.TableCell, { children: row.eventLabel }), (0, jsx_runtime_1.jsx)(material_1.TableCell, { children: (0, Helpers_1.roundDecimalNumber)(row.total) })] }, row.eventLabel)); }) })] }) }));
|
|
32
|
+
};
|
|
33
|
+
exports.default = EventTable;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
var react_1 = __importDefault(require("react"));
|
|
8
|
+
var enzyme_1 = require("enzyme");
|
|
9
|
+
var Table_1 = __importDefault(require("./Table"));
|
|
10
|
+
var Helper_1 = require("Utilities/Helper");
|
|
11
|
+
describe("Table", function () {
|
|
12
|
+
var mockData = [
|
|
13
|
+
{ eventLabel: "Contact Form", total: 100 },
|
|
14
|
+
{ eventLabel: "Purchase", total: 50 },
|
|
15
|
+
];
|
|
16
|
+
it("renders without crashing", function () {
|
|
17
|
+
(0, enzyme_1.shallow)((0, jsx_runtime_1.jsx)(Table_1.default, { data: mockData }));
|
|
18
|
+
});
|
|
19
|
+
it("renders the correct number of rows", function () {
|
|
20
|
+
var wrapper = (0, enzyme_1.mount)((0, jsx_runtime_1.jsx)(Table_1.default, { data: mockData }));
|
|
21
|
+
expect(wrapper.find(".MuiTableRow-root")).toHaveLength(mockData.length + 1);
|
|
22
|
+
});
|
|
23
|
+
it("renders the correct event labels and totals", function () {
|
|
24
|
+
var wrapper = (0, enzyme_1.mount)((0, jsx_runtime_1.jsx)(Table_1.default, { data: mockData }));
|
|
25
|
+
mockData.forEach(function (row) {
|
|
26
|
+
expect(wrapper.contains(row.eventLabel)).toEqual(true);
|
|
27
|
+
expect(wrapper.contains((0, Helper_1.roundDecimalNumber)(row.total))).toEqual(true);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CampaignAd } from '../../../../../ACM-AXN/Campaign/Types';
|
|
2
|
+
import { AnalyticEvent, AnalyticEventModelResponse, IAnalyticCampaignSummary } from '../Types';
|
|
3
|
+
export declare const convertEventData: (data: IAnalyticCampaignSummary[]) => AnalyticEventModelResponse[];
|
|
4
|
+
export declare function convertToExportData(data: AnalyticEvent[], places: NonNullable<CampaignAd['places']>): {
|
|
5
|
+
columns: string[];
|
|
6
|
+
data: string[][];
|
|
7
|
+
}[];
|