awing-library 2.1.137-beta → 2.1.139-beta

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.
@@ -136,6 +136,7 @@ function AdList(props) {
136
136
  setAdOpen({
137
137
  subCampaignId: newAd.campaignGroupId,
138
138
  adId: newAd.id,
139
+ loginId: newAd.loginId,
139
140
  });
140
141
  handleChangeAdStatus(newAd, (0, Utils_1.campaignAdValid)(newAd));
141
142
  }
@@ -269,6 +270,7 @@ function AdList(props) {
269
270
  ? ads.map(function (ad) { return ({
270
271
  subCampaignId: ad.campaignGroupId,
271
272
  adId: ad.id,
273
+ loginId: ad.loginId,
272
274
  }); })
273
275
  : [];
274
276
  });
@@ -283,7 +285,7 @@ function AdList(props) {
283
285
  } }, getDatePropsForWeight()));
284
286
  }, "aria-label": "weight", children: (0, jsx_runtime_1.jsx)(AvTimer_1.default, { fontSize: "small" }) }) }), (0, jsx_runtime_1.jsx)(material_1.Tooltip, { title: translationText.advanced, children: (0, jsx_runtime_1.jsx)(material_1.IconButton, { onClick: function () {
285
287
  return setIsAdvancedDrawerOpen(true);
286
- }, "aria-label": "advanced", disabled: hasClassC, children: (0, jsx_runtime_1.jsx)(StarHalf_1.default, { fontSize: "small" }) }) }), isAdvancedDrawerOpen && ((0, jsx_runtime_1.jsx)(Advanced_1.default, { service: service, isOpen: isAdvancedDrawerOpen, onClose: function () {
288
+ }, "aria-label": "advanced", disabled: hasClassC, children: (0, jsx_runtime_1.jsx)(StarHalf_1.default, { fontSize: "small" }) }) }), isAdvancedDrawerOpen && ((0, jsx_runtime_1.jsx)(Advanced_1.default, { loginIds: Array.from(new Set(adSelected.map(function (x) { return x.loginId; }))), service: service, isOpen: isAdvancedDrawerOpen, onClose: function () {
287
289
  return setIsAdvancedDrawerOpen(false);
288
290
  }, onChange: function (setStateAction) {
289
291
  return onChange(adSelected, function (preCampaignAd) {
@@ -339,6 +341,7 @@ function AdList(props) {
339
341
  {
340
342
  subCampaignId: ad.campaignGroupId,
341
343
  adId: ad.id,
344
+ loginId: ad.loginId,
342
345
  },
343
346
  ]);
344
347
  });
@@ -185,7 +185,7 @@ function AdRow(props) {
185
185
  action: onDelete,
186
186
  name: translationText.delete,
187
187
  },
188
- ]), true), size: "medium" }), (0, jsx_runtime_1.jsxs)("div", { onClick: function (e) { return e.stopPropagation(); }, children: [(0, jsx_runtime_1.jsx)(material_1.Snackbar, { open: openCopiedMessage, autoHideDuration: 2000, onClose: function () { return setOpenCopiedMessage(false); }, message: translationText.copied }), showTheSource && ((0, jsx_runtime_1.jsx)(ShowTheSource_1.default, { isOpen: showTheSource, onClose: function () { return setShowTheSource(false); }, loginId: ad.loginId, welcomeId: ad.welcomeId })), isAdvancedDrawerOpen && ((0, jsx_runtime_1.jsx)(Advanced_1.default, { service: service, isOpen: isAdvancedDrawerOpen, onClose: function () { return setIsAdvancedDrawerOpen(false); }, initialCampaignAdAdvanced: ad.advanced, onChange: function (setStateAction) {
188
+ ]), true), size: "medium" }), (0, jsx_runtime_1.jsxs)("div", { onClick: function (e) { return e.stopPropagation(); }, children: [(0, jsx_runtime_1.jsx)(material_1.Snackbar, { open: openCopiedMessage, autoHideDuration: 2000, onClose: function () { return setOpenCopiedMessage(false); }, message: translationText.copied }), showTheSource && ((0, jsx_runtime_1.jsx)(ShowTheSource_1.default, { isOpen: showTheSource, onClose: function () { return setShowTheSource(false); }, loginId: ad.loginId, welcomeId: ad.welcomeId })), isAdvancedDrawerOpen && ((0, jsx_runtime_1.jsx)(Advanced_1.default, { service: service, isOpen: isAdvancedDrawerOpen, onClose: function () { return setIsAdvancedDrawerOpen(false); }, loginIds: [ad.loginId], initialCampaignAdAdvanced: ad.advanced, onChange: function (setStateAction) {
189
189
  return onChange(function (preCampaignAd) {
190
190
  return (__assign(__assign({}, preCampaignAd), { advanced: typeof setStateAction ===
191
191
  'function'
@@ -63,6 +63,7 @@ var AddOrEditRule = function (props) {
63
63
  _a[Utils_1.RuleType.TargetOS] = t('Campaign.RuleType.TargetOS'),
64
64
  _a[Utils_1.RuleType.TargetDevice] = t('Campaign.RuleType.TargetDevice'),
65
65
  _a[Utils_1.RuleType.RetargetMacAddress] = t('Campaign.RuleType.RetargetMacAddress'),
66
+ _a[Utils_1.RuleType.Authentication] = t('Campaign.RuleType.Engagement'),
66
67
  _a),
67
68
  save: t('Common.Save'),
68
69
  invalidData: t('Common.InvalidData'),
@@ -90,6 +91,9 @@ var AddOrEditRule = function (props) {
90
91
  eventLabel: Boolean(rule.parameter &&
91
92
  rule.parameter.eventLabel &&
92
93
  rule.parameter.eventLabel.length > 0),
94
+ viewNumber: Boolean(rule.parameter &&
95
+ rule.parameter.viewNumber &&
96
+ (0, Helpers_1.validateNumber)(rule.parameter.viewNumber)),
93
97
  };
94
98
  case Utils_1.RuleType.TargetGender:
95
99
  return {
@@ -160,6 +164,8 @@ var AddOrEditRule = function (props) {
160
164
  return ((0, jsx_runtime_1.jsx)(RuleForm_1.TargetDevice, { valids: valids, rule: currentRule, onChange: handleOnChange, deviceInfoGetAllRuleDevices: service === null || service === void 0 ? void 0 : service.deviceInfoGetAllRuleDevices }));
161
165
  case Utils_1.RuleType.RetargetMacAddress:
162
166
  return ((0, jsx_runtime_1.jsx)(RuleForm_1.RetargetMacAddress, { valids: valids, rule: currentRule, onChange: handleOnChange, remarketingListGetAll: service === null || service === void 0 ? void 0 : service.remarketingListGetAll }));
167
+ case Utils_1.RuleType.Authentication:
168
+ return ((0, jsx_runtime_1.jsx)(RuleForm_1.AuthenCation, { valids: valids, rule: currentRule, onChange: handleOnChange }));
163
169
  default:
164
170
  return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
165
171
  }
@@ -0,0 +1,8 @@
1
+ import { AdvancedRule } from '../AddOrEditRule';
2
+ interface Props {
3
+ rule: AdvancedRule;
4
+ valids: any;
5
+ onChange: (rule: AdvancedRule) => void;
6
+ }
7
+ declare const LimitAuthencation: (props: Props) => import("react/jsx-runtime").JSX.Element;
8
+ export default LimitAuthencation;
@@ -0,0 +1,47 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ var jsx_runtime_1 = require("react/jsx-runtime");
15
+ var material_1 = require("@mui/material");
16
+ var react_i18next_1 = require("react-i18next");
17
+ var Enum_1 = require("../../../../Enum");
18
+ var LimitAuthencation = function (props) {
19
+ var rule = props.rule, valids = props.valids, onChange = props.onChange;
20
+ var t = (0, react_i18next_1.useTranslation)().t;
21
+ var handleChange = function (fieldName, fieldValue) {
22
+ var _a;
23
+ onChange(__assign(__assign({}, rule), (_a = {}, _a[fieldName] = fieldValue, _a)));
24
+ };
25
+ var handleChangeParameter = function (fieldName, fieldValue) {
26
+ var _a;
27
+ handleChange('parameter', __assign(__assign({}, rule.parameter), (_a = {}, _a[fieldName] = fieldValue, _a)));
28
+ };
29
+ var translationText = {
30
+ operator: t('Campaign.Operator'),
31
+ period: t('Campaign.Period'),
32
+ value: t('Campaign.Detail.Value'),
33
+ periodHelperText: t('Campaign.PeriodHelperText'),
34
+ helperText: t('Common.Required'),
35
+ };
36
+ 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: 6, children: (0, jsx_runtime_1.jsx)(material_1.TextField, { id: 'operator', variant: "standard", name: 'operator', select: true, fullWidth: true, label: translationText.operator, value: rule.operator, onChange: function (e) { return handleChange('operator', e.target.value); }, children: Object.entries(Enum_1.EnumOperator).map(function (_a) {
37
+ var key = _a[0], val = _a[1];
38
+ return ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: val.id, children: val.text }, val.id));
39
+ }) }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 6, children: (0, jsx_runtime_1.jsx)(material_1.TextField, { id: "value", name: "value", variant: "standard", type: "number", fullWidth: true, label: translationText.value, value: rule.value, onChange: function (e) { return handleChange('value', e.target.value); }, error: valids && !valids.value, helperText: valids && !valids.value
40
+ ? translationText.helperText
41
+ : '' }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(material_1.TextField, { id: "period", variant: "standard", name: "period", type: "number", fullWidth: true, label: translationText.period, value: rule.parameter.period, onChange: function (e) {
42
+ return handleChangeParameter('period', e.target.value);
43
+ }, error: valids && !valids.period, helperText: valids && !valids.period
44
+ ? translationText.helperText
45
+ : translationText.periodHelperText }) })] }));
46
+ };
47
+ exports.default = LimitAuthencation;
@@ -10,41 +10,88 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
13
16
  Object.defineProperty(exports, "__esModule", { value: true });
14
17
  var jsx_runtime_1 = require("react/jsx-runtime");
15
18
  var material_1 = require("@mui/material");
19
+ var Hooks_1 = __importDefault(require("../../../../../../ACM-AXN/Campaign/Hooks"));
20
+ var AWING_1 = require("../../../../../../AWING");
21
+ var Hooks_2 = require("../../../../../../AWING/Hooks");
22
+ var lodash_1 = __importDefault(require("lodash"));
23
+ var react_1 = __importDefault(require("react"));
16
24
  var react_i18next_1 = require("react-i18next");
25
+ var recoil_1 = require("recoil");
17
26
  var Enum_1 = require("../../../../Enum");
27
+ var atoms_1 = require("../../atoms");
18
28
  var LimitEvent = function (props) {
19
- var _a, _b;
29
+ var _a, _b, _c, _d, _e, _f;
20
30
  var rule = props.rule, valids = props.valids, onChange = props.onChange;
21
31
  var t = (0, react_i18next_1.useTranslation)().t;
32
+ var loginPageIds = (0, recoil_1.useRecoilValue)(atoms_1.campaignLoginIdState);
33
+ var service = (0, Hooks_1.default)().service;
22
34
  var handleChange = function (fieldName, fieldValue) {
23
35
  var _a;
24
36
  onChange(__assign(__assign({}, rule), (_a = {}, _a[fieldName] = fieldValue, _a)));
25
37
  };
38
+ console.log("rule", rule);
39
+ var _g = (0, Hooks_2.useGetData)([loginPageIds], service.pagesGetPageViewEventByPageIds), data = _g.data, isLoading = _g.isLoading;
40
+ var eventSelected = react_1.default.useMemo(function () {
41
+ return (0, lodash_1.default)(data)
42
+ .groupBy(function (d) { return "".concat(d.viewNumber, "_").concat(d.event); })
43
+ .filter(function (value) {
44
+ return !lodash_1.default.difference(loginPageIds, value.map(function (v) { return v.pageId; })).length;
45
+ }).flatten()
46
+ .uniqBy(function (d) { return "".concat(d.viewNumber, "_").concat(d.event); })
47
+ .groupBy('event')
48
+ .value();
49
+ }, [data, loginPageIds]);
50
+ var viewNumberSelected = react_1.default.useMemo(function () {
51
+ var _a, _b, _c;
52
+ return ((_a = rule === null || rule === void 0 ? void 0 : rule.parameter) === null || _a === void 0 ? void 0 : _a.eventLabel)
53
+ ? (_c = eventSelected[(_b = rule === null || rule === void 0 ? void 0 : rule.parameter) === null || _b === void 0 ? void 0 : _b.eventLabel]) === null || _c === void 0 ? void 0 : _c.sort(function (a, b) { return a.viewNumber - b.viewNumber; })
54
+ : [];
55
+ }, [eventSelected, (_a = rule === null || rule === void 0 ? void 0 : rule.parameter) === null || _a === void 0 ? void 0 : _a.eventLabel]);
26
56
  var handleChangeParameter = function (fieldName, fieldValue) {
27
- var _a;
28
- handleChange('parameter', __assign(__assign({}, rule.parameter), (_a = {}, _a[fieldName] = fieldValue, _a)));
57
+ var _a, _b;
58
+ var _c, _d;
59
+ if (fieldName === 'eventLabel') {
60
+ var viewNumber = undefined;
61
+ if (((_c = eventSelected[fieldValue]) === null || _c === void 0 ? void 0 : _c.length) === 1) {
62
+ viewNumber = (_d = eventSelected[fieldValue]) === null || _d === void 0 ? void 0 : _d.at(-1).viewNumber;
63
+ }
64
+ handleChange('parameter', __assign(__assign({}, rule.parameter), (_a = { viewNumber: viewNumber }, _a[fieldName] = fieldValue, _a)));
65
+ return;
66
+ }
67
+ handleChange('parameter', __assign(__assign({}, rule.parameter), (_b = {}, _b[fieldName] = fieldValue, _b)));
29
68
  };
30
69
  var translationText = {
31
70
  eventLabel: t('Campaign.Detail.EventLabel'),
71
+ viewNumber: t('Campaign.Detail.ViewNumber'),
32
72
  operator: t('Campaign.Operator'),
33
73
  period: t('Campaign.Period'),
34
74
  value: t('Campaign.Detail.Value'),
35
75
  periodHelperText: t('Campaign.PeriodHelperText'),
36
76
  helperText: t('Common.Required'),
37
77
  };
38
- 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.jsx)(material_1.TextField, { id: "eventLabel", name: "eventLabel", variant: "standard", fullWidth: true, label: translationText.eventLabel, value: (_a = rule === null || rule === void 0 ? void 0 : rule.parameter) === null || _a === void 0 ? void 0 : _a.eventLabel, onChange: function (e) {
78
+ return isLoading ? ((0, jsx_runtime_1.jsx)(AWING_1.CircularProgress, {})) : ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, spacing: 2, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 6, children: (0, jsx_runtime_1.jsx)(material_1.TextField, { id: "eventLabel", name: "eventLabel", variant: "standard", fullWidth: true, select: true, label: translationText.eventLabel, value: (_b = rule === null || rule === void 0 ? void 0 : rule.parameter) === null || _b === void 0 ? void 0 : _b.eventLabel, onChange: function (e) {
39
79
  return handleChangeParameter('eventLabel', e.target.value);
40
80
  }, error: valids && !valids.eventLabel, helperText: valids && !valids.eventLabel
41
81
  ? translationText.helperText
42
- : '' }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 6, children: (0, jsx_runtime_1.jsx)(material_1.TextField, { id: 'operator', variant: "standard", name: 'operator', select: true, fullWidth: true, label: translationText.operator, value: rule === null || rule === void 0 ? void 0 : rule.operator, onChange: function (e) { return handleChange('operator', e.target.value); }, children: Object.entries(Enum_1.EnumOperator).map(function (_a) {
82
+ : '', children: Object.keys(eventSelected).map(function (event, index) { return ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: event, children: event }, index)); }) }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 6, children: (0, jsx_runtime_1.jsx)(material_1.TextField, { id: "viewNumber", name: "viewNumber", variant: "standard", disabled: !((_c = rule === null || rule === void 0 ? void 0 : rule.parameter) === null || _c === void 0 ? void 0 : _c.eventLabel), required: true, select: true, fullWidth: true, label: translationText.viewNumber, value: (_e = (_d = rule === null || rule === void 0 ? void 0 : rule.parameter) === null || _d === void 0 ? void 0 : _d.viewNumber) !== null && _e !== void 0 ? _e : '', onChange: function (e) {
83
+ return handleChangeParameter('viewNumber', e.target.value);
84
+ }, error: valids && !valids.viewNumber, helperText: valids && !valids.viewNumber
85
+ ? translationText.helperText
86
+ : '', children: viewNumberSelected.map(function (_a) {
87
+ var viewNumber = _a.viewNumber;
88
+ return ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: viewNumber, children: viewNumber }, viewNumber));
89
+ }) }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 6, children: (0, jsx_runtime_1.jsx)(material_1.TextField, { id: 'operator', variant: "standard", name: 'operator', select: true, fullWidth: true, label: translationText.operator, value: rule === null || rule === void 0 ? void 0 : rule.operator, onChange: function (e) { return handleChange('operator', e.target.value); }, children: Object.entries(Enum_1.EnumOperator).map(function (_a) {
43
90
  var key = _a[0], val = _a[1];
44
91
  return ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: val.id, children: val.text }, val.id));
45
92
  }) }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 6, children: (0, jsx_runtime_1.jsx)(material_1.TextField, { id: "value", name: "value", variant: "standard", type: "number", fullWidth: true, label: translationText.value, value: rule === null || rule === void 0 ? void 0 : rule.value, onChange: function (e) { return handleChange('value', e.target.value); }, error: valids && !valids.value, helperText: valids && !valids.value
46
93
  ? translationText.helperText
47
- : '' }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(material_1.TextField, { variant: "standard", id: "period", name: "period", type: "number", fullWidth: true, label: translationText.period, value: (_b = rule === null || rule === void 0 ? void 0 : rule.parameter) === null || _b === void 0 ? void 0 : _b.period, onChange: function (e) {
94
+ : '' }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(material_1.TextField, { variant: "standard", id: "period", name: "period", type: "number", fullWidth: true, label: translationText.period, value: (_f = rule === null || rule === void 0 ? void 0 : rule.parameter) === null || _f === void 0 ? void 0 : _f.period, onChange: function (e) {
48
95
  return handleChangeParameter('period', e.target.value);
49
96
  }, error: valids && !valids.period, helperText: translationText.periodHelperText }) })] }));
50
97
  };
@@ -6,3 +6,4 @@ export { default as TargetAge } from './TargetAge';
6
6
  export { default as TargetOS } from './TargetOS';
7
7
  export { default as TargetDevice } from './TargetDevice';
8
8
  export { default as RetargetMacAddress } from './RetargetMacAddress';
9
+ export { default as AuthenCation } from './Authentication';
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.RetargetMacAddress = exports.TargetDevice = exports.TargetOS = exports.TargetAge = exports.TargetGender = exports.LimitEvent = exports.LimitClick = exports.LimitView = void 0;
6
+ exports.AuthenCation = exports.RetargetMacAddress = exports.TargetDevice = exports.TargetOS = exports.TargetAge = exports.TargetGender = exports.LimitEvent = exports.LimitClick = exports.LimitView = void 0;
7
7
  var LimitClick_1 = require("./LimitClick");
8
8
  Object.defineProperty(exports, "LimitView", { enumerable: true, get: function () { return __importDefault(LimitClick_1).default; } });
9
9
  var LimitClick_2 = require("./LimitClick");
@@ -20,3 +20,5 @@ var TargetDevice_1 = require("./TargetDevice");
20
20
  Object.defineProperty(exports, "TargetDevice", { enumerable: true, get: function () { return __importDefault(TargetDevice_1).default; } });
21
21
  var RetargetMacAddress_1 = require("./RetargetMacAddress");
22
22
  Object.defineProperty(exports, "RetargetMacAddress", { enumerable: true, get: function () { return __importDefault(RetargetMacAddress_1).default; } });
23
+ var Authentication_1 = require("./Authentication");
24
+ Object.defineProperty(exports, "AuthenCation", { enumerable: true, get: function () { return __importDefault(Authentication_1).default; } });
@@ -1,4 +1,4 @@
1
- import { Dispatch, SetStateAction } from 'react';
1
+ import React, { Dispatch, SetStateAction } from 'react';
2
2
  import { CampaignAdAdvanced } from '../../Types';
3
3
  type Props = {
4
4
  /**
@@ -18,6 +18,7 @@ type Props = {
18
18
  */
19
19
  initialCampaignAdAdvanced?: CampaignAdAdvanced;
20
20
  service: any;
21
+ loginIds: string[];
21
22
  };
22
- declare const Advanced: (props: Props) => import("react/jsx-runtime").JSX.Element;
23
- export default Advanced;
23
+ declare const _default: React.FC<Props>;
24
+ export default _default;
@@ -49,15 +49,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
49
49
  };
50
50
  Object.defineProperty(exports, "__esModule", { value: true });
51
51
  var jsx_runtime_1 = require("react/jsx-runtime");
52
- var react_1 = __importStar(require("react"));
53
- var material_1 = require("@mui/material");
54
52
  var icons_material_1 = require("@mui/icons-material");
55
- var Utils_1 = require("../../Utils");
53
+ var material_1 = require("@mui/material");
54
+ var react_1 = __importStar(require("react"));
56
55
  var react_i18next_1 = require("react-i18next");
57
- var AddOrEditRule_1 = require("./AddOrEditRule");
58
56
  var ClassicBaseDrawer_1 = __importDefault(require("../../../../Commons/Components/ClassicBaseDrawer"));
59
57
  var Context_1 = require("../../../../Context");
60
58
  var i18n_1 = __importDefault(require("../../../../i18n"));
59
+ var Utils_1 = require("../../Utils");
60
+ var AddOrEditRule_1 = require("./AddOrEditRule");
61
+ var Wrapper_1 = __importDefault(require("../../../../AWING/HOC/Wrapper"));
62
+ var recoil_1 = require("recoil");
63
+ var atoms_1 = require("./atoms");
61
64
  var classes = {
62
65
  paper: {
63
66
  padding: function (theme) { return theme.spacing(2); },
@@ -107,6 +110,7 @@ var Advanced = function (props) {
107
110
  editRule: false,
108
111
  editExpression: false,
109
112
  }), drawerRule = _b[0], setDrawerRule = _b[1];
113
+ var setLoginIds = (0, recoil_1.useSetRecoilState)(atoms_1.campaignLoginIdState);
110
114
  var _c = react_1.default.useState(null), anchorElRule = _c[0], setAnchorElRule = _c[1];
111
115
  var _d = react_1.default.useState({
112
116
  type: '',
@@ -115,6 +119,7 @@ var Advanced = function (props) {
115
119
  var _e = react_1.default.useState(defaultCampaignAdAdvanced), campaignAdAdvanced = _e[0], setCampaignAdAdvanced = _e[1];
116
120
  var _f = react_1.default.useState(false), isConfirm = _f[0], setIsConfirm = _f[1];
117
121
  (0, react_1.useEffect)(function () {
122
+ setLoginIds(props.loginIds);
118
123
  if (initialCampaignAdAdvanced)
119
124
  setCampaignAdAdvanced(initialCampaignAdAdvanced);
120
125
  }, [initialCampaignAdAdvanced]);
@@ -134,7 +139,7 @@ var Advanced = function (props) {
134
139
  alert(t('Campaign.MaximumNumberOfRule'));
135
140
  return;
136
141
  }
137
- setRule(__assign(__assign({}, rule), { type: type }));
142
+ setRule(function (prev) { return (__assign(__assign({}, prev), { type: type })); });
138
143
  handleButtonMenuClose();
139
144
  setDrawerRule(function (prev) { return (__assign(__assign({}, prev), { addRule: true })); });
140
145
  // navigate(Constants.CAMPAIGN_ADD_RULE)
@@ -144,7 +149,7 @@ var Advanced = function (props) {
144
149
  // navigate(Constants.CAMPAIGN_UPDATE_EXPRESSION)
145
150
  };
146
151
  var handleEditRule = function (ruleName) {
147
- setRule(__assign(__assign({}, rule), { name: ruleName }));
152
+ setRule(function (prev) { return (__assign(__assign({}, prev), { name: ruleName })); });
148
153
  setDrawerRule(function (prev) { return (__assign(__assign({}, prev), { editRule: true })); });
149
154
  // navigate(Constants.CAMPAIGN_EDIT_RULE)
150
155
  };
@@ -184,6 +189,7 @@ var Advanced = function (props) {
184
189
  RetargetPlace: t('Campaign.RuleType.RetargetPlace'),
185
190
  RetargetDomain: t('Campaign.RuleType.RetargetDomain'),
186
191
  RetargetMacAddress: t('Campaign.RuleType.RetargetMacAddress'),
192
+ Authentication: t('Campaign.RuleType.Engagement'),
187
193
  },
188
194
  };
189
195
  var handleSubmit = function () {
@@ -230,4 +236,4 @@ var Advanced = function (props) {
230
236
  setCampaignAdAdvanced(__assign(__assign({}, campaignAdAdvanced), { ruleLogicalExpression: ruleLogicalExpression }));
231
237
  } }))] }));
232
238
  };
233
- exports.default = Advanced;
239
+ exports.default = (0, Wrapper_1.default)(Advanced, { component: recoil_1.RecoilRoot });
@@ -5,6 +5,7 @@ import { CampaignAd } from '../../Types';
5
5
  export type AdDefine = {
6
6
  subCampaignId: number;
7
7
  adId: number;
8
+ loginId: string;
8
9
  };
9
10
  /**
10
11
  * State lưu trạng thái thông tin cơ bản của từng chiến dịch con
@@ -52,3 +53,4 @@ export declare const campaignPageIdState: import("recoil").RecoilState<{
52
53
  lgn: string;
53
54
  wlc: string;
54
55
  }>;
56
+ export declare const campaignLoginIdState: import("recoil").RecoilState<string[]>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.campaignPageIdState = exports.adOpenState = exports.adSelectedState = exports.adListState = exports.checkGroupsClassCState = exports.selectedSubCampaignIdState = exports.copiedAdState = exports.subCampaignValidState = exports.subCampaignAdsValidState = exports.subCampaignDetailValidState = void 0;
3
+ exports.campaignLoginIdState = exports.campaignPageIdState = exports.adOpenState = exports.adSelectedState = exports.adListState = exports.checkGroupsClassCState = exports.selectedSubCampaignIdState = exports.copiedAdState = exports.subCampaignValidState = exports.subCampaignAdsValidState = exports.subCampaignDetailValidState = void 0;
4
4
  var recoil_1 = require("recoil");
5
5
  var Utils_1 = require("../../Utils");
6
6
  // import directoryPermissionService from 'Services/DirectoryPermission'
@@ -132,3 +132,7 @@ exports.campaignPageIdState = (0, recoil_1.atom)({
132
132
  wlc: '',
133
133
  },
134
134
  });
135
+ exports.campaignLoginIdState = (0, recoil_1.atom)({
136
+ key: 'campaignLoginIdState',
137
+ default: [],
138
+ });
@@ -135,7 +135,8 @@ export declare enum CampaignRuleType {
135
135
  TargetAge = 4,
136
136
  TargetOS = 5,
137
137
  TargetDevice = 6,
138
- RetargetMacAddress = 7
138
+ RetargetMacAddress = 7,
139
+ Authentication = 8
139
140
  }
140
141
  /**
141
142
  * Enum bao gồm các phép toán
@@ -123,6 +123,7 @@ var CampaignRuleType;
123
123
  CampaignRuleType[CampaignRuleType["TargetOS"] = 5] = "TargetOS";
124
124
  CampaignRuleType[CampaignRuleType["TargetDevice"] = 6] = "TargetDevice";
125
125
  CampaignRuleType[CampaignRuleType["RetargetMacAddress"] = 7] = "RetargetMacAddress";
126
+ CampaignRuleType[CampaignRuleType["Authentication"] = 8] = "Authentication";
126
127
  })(CampaignRuleType || (exports.CampaignRuleType = CampaignRuleType = {}));
127
128
  /**
128
129
  * Enum bao gồm các phép toán
@@ -3,7 +3,7 @@ import { AlertColor } from '@mui/material';
3
3
  import { CampaignType } from './Utils';
4
4
  import { AdType, CampaignPriority, CampaignRuleType, CampaignTicket, DirectoryRoot, Operator } from './Enum';
5
5
  import { PrmissionService } from '../Permission/Types';
6
- import { PageService } from '../Page/Types';
6
+ import { PageService, PageViewEvent } from '../Page/Types';
7
7
  import { BaseChartComponent } from 'react-chartjs-2/dist/types';
8
8
  import { Timestamp } from '../../ACM-AXN/Common/Types';
9
9
  import { CampaignAnalyticService } from './CreateOrEdit/TabStatistic/Types';
@@ -252,6 +252,7 @@ export interface AppHelper {
252
252
  confirm: (okFunction?: () => void, cancelFunction?: () => void, message?: string, title?: string) => void;
253
253
  }
254
254
  interface CampaignService extends PrmissionService {
255
+ pagesGetPageViewEventByPageIds(body: string[] | undefined): Promise<PageViewEvent[]>;
255
256
  directoriesGetByObjectTypeCode: (type: DirectoryRoot) => Promise<Directory[]>;
256
257
  campaignsPaging: (body: CampaignFilter) => Promise<IPagedListOfCampaignModel>;
257
258
  campaignsDelete: (id: string) => Promise<void>;
@@ -83,6 +83,7 @@ export declare const RuleType: {
83
83
  TargetOS: number;
84
84
  TargetDevice: number;
85
85
  RetargetMacAddress: number;
86
+ Authentication: number;
86
87
  };
87
88
  export declare const RuleTypeOfCalculator: {
88
89
  TargetGender: number;
@@ -297,6 +297,7 @@ var getDefaultRule = function (type) {
297
297
  switch (type) {
298
298
  case exports.RuleType.LimitView:
299
299
  case exports.RuleType.LimitClick:
300
+ case exports.RuleType.Authentication:
300
301
  return {
301
302
  type: type,
302
303
  operator: Enum_1.EnumOperator.LessThan.id,
@@ -373,6 +374,7 @@ exports.RuleType = {
373
374
  TargetOS: 5,
374
375
  TargetDevice: 6,
375
376
  RetargetMacAddress: 7,
377
+ Authentication: 8,
376
378
  };
377
379
  exports.RuleTypeOfCalculator = {
378
380
  TargetGender: 3,
@@ -439,6 +441,14 @@ var getDescription = function (rule) {
439
441
  value = JSON.parse(value);
440
442
  }
441
443
  switch (rule.type) {
444
+ case exports.RuleType.Authentication:
445
+ {
446
+ var textFormat = i18n_1.default.t('Campaign.Rule.DescriptionFormat.LimitEngagement');
447
+ result += textFormat.replace('{0}', operatorText);
448
+ result = result.replace('{1}', value);
449
+ result = result.replace('{2}', params.period <= 0 ? unlimit : params.period);
450
+ }
451
+ break;
442
452
  case exports.RuleType.LimitView:
443
453
  {
444
454
  var textFormat = i18n_1.default.t('Campaign.Rule.DescriptionFormat.LimitView');
@@ -459,6 +469,7 @@ var getDescription = function (rule) {
459
469
  {
460
470
  var textFormat = i18n_1.default.t('Campaign.Rule.DescriptionFormat.LimitEvent');
461
471
  result += textFormat.replace('{0}', params.eventLabel);
472
+ result = result.replace('{x}', params.viewNumber);
462
473
  result = result.replace('{1}', operatorText);
463
474
  result = result.replace('{2}', value);
464
475
  result = result.replace('{3}', params.period <= 0 ? unlimit : params.period);
@@ -418,7 +418,8 @@
418
418
  "DescriptionFormat": {
419
419
  "LimitView": "User’s impression is limited to {0} {1} times ({2}-day period).",
420
420
  "LimitClick": "User’s final click is limited to {0} {1} times ({2}-day period).",
421
- "LimitEvent": "User’s \"{0}\" is limited to {1} {2} times ({3}-day period).",
421
+ "LimitEngagement": "User’s engagement is limited to {0} {1} times ({2}-day period).",
422
+ "LimitEvent": "User’s \"{0}\" in view {x} is limited to {1} {2} times ({3}-day period).",
422
423
  "TargetGender": "{0}.",
423
424
  "TargetAge": "Age groups belong {0}.",
424
425
  "TargetOS": "OS {0}, version are {1} {2}.",
@@ -442,6 +443,7 @@
442
443
  "Weight": "Weight",
443
444
  "Value": "Value",
444
445
  "EventLabel": "Event label",
446
+ "ViewNumber": "View number",
445
447
  "TotalEvents": "Total events",
446
448
  "TitleInfo": "General info",
447
449
  "EditInfo": "Edit info",
@@ -466,7 +468,8 @@
466
468
  "TargetAge": "Age",
467
469
  "TargetOS": "OS",
468
470
  "TargetDevice": "Device",
469
- "RetargetMacAddress": "List"
471
+ "RetargetMacAddress": "List",
472
+ "Engagement": "Engagement"
470
473
  },
471
474
  "ExportType": {
472
475
  "Export": "Export total",
@@ -402,7 +402,8 @@
402
402
  "DescriptionFormat": {
403
403
  "LimitView": "Lượt hiển thị của người dùng {0} {1} lần (chu kỳ {2} ngày).",
404
404
  "LimitClick": "Lượt kết nối của người dùng {0} {1} lần (chu kỳ {2} ngày).",
405
- "LimitEvent": "Event \"{0}\" của người dùng {1} {2} lần (chu kỳ {3} ngày).",
405
+ "LimitEngagement": "Lượt tương tác của người dùng {0} {1} lần (chu kỳ {2} ngày).",
406
+ "LimitEvent": "Event \"{0}\" tại view số {x} của người dùng {1} {2} lần (chu kỳ {3} ngày).",
406
407
  "TargetGender": "Giới tính {0}.",
407
408
  "TargetAge": "Tuổi thuộc các nhóm {0}.",
408
409
  "TargetOS": "Hệ điều hành {0}, version {1} {2}.",
@@ -426,6 +427,7 @@
426
427
  "Weight": "Trọng số",
427
428
  "Value": "Giá trị",
428
429
  "EventLabel": "Nhãn sự kiện",
430
+ "ViewNumber": "View number",
429
431
  "TotalEvents": "Tổng số sự kiện",
430
432
  "TitleInfo": "Thông tin chung",
431
433
  "EditInfo": "Sửa thông tin chung",
@@ -450,7 +452,8 @@
450
452
  "TargetAge": "Độ tuổi",
451
453
  "TargetOS": "Hệ điều hành",
452
454
  "TargetDevice": "Thiết bị",
453
- "RetargetMacAddress": "Thuộc danh sách"
455
+ "RetargetMacAddress": "Thuộc danh sách",
456
+ "Engagement": "Lượt tương tác"
454
457
  },
455
458
  "ExportType": {
456
459
  "Export": "Xuất dữ liệu tổng",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "awing-library",
3
- "version": "2.1.137-beta",
3
+ "version": "2.1.139-beta",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",