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.
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdList.js +4 -1
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdRow.js +1 -1
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/AddOrEditRule.js +6 -0
- 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/LimitEvent.js +53 -6
- 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/atoms.d.ts +2 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.js +5 -1
- package/lib/ACM-AXN/Campaign/Enum.d.ts +2 -1
- package/lib/ACM-AXN/Campaign/Enum.js +1 -0
- package/lib/ACM-AXN/Campaign/Types.d.ts +2 -1
- package/lib/ACM-AXN/Campaign/Utils.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/Utils.js +11 -0
- package/lib/translate/en/translation.json +5 -2
- package/lib/translate/vi/translation.json +5 -2
- package/package.json +1 -1
|
@@ -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
|
}
|
package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/Authentication.d.ts
ADDED
|
@@ -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;
|
package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/Authentication.js
ADDED
|
@@ -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;
|
package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/LimitEvent.js
CHANGED
|
@@ -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
|
-
|
|
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:
|
|
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:
|
|
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: (
|
|
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
|
|
23
|
-
export default
|
|
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
|
|
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({},
|
|
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({},
|
|
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
|
+
});
|
|
@@ -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>;
|
|
@@ -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
|
-
"
|
|
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
|
-
"
|
|
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",
|