@mirai/core 0.4.212 → 0.4.214
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/build/components/Rates/Rates.Content.js +37 -6
- package/build/components/Rates/Rates.Content.js.map +1 -1
- package/build/components/Rates/components/OTAPrices/OTAPrices.js +171 -0
- package/build/components/Rates/components/OTAPrices/OTAPrices.js.map +1 -0
- package/build/components/Rates/components/OTAPrices/OTAPrices.l10n.js +12 -0
- package/build/components/Rates/components/OTAPrices/OTAPrices.l10n.js.map +1 -0
- package/build/components/Rates/components/OTAPrices/OTAPrices.module.css +74 -0
- package/build/components/Rates/components/OTAPrices/OTAPrices.skeleton.js +58 -0
- package/build/components/Rates/components/OTAPrices/OTAPrices.skeleton.js.map +1 -0
- package/build/components/Rates/components/OTAPrices/index.js +17 -0
- package/build/components/Rates/components/OTAPrices/index.js.map +1 -0
- package/build/contexts/PerformanceManager/PerformanceManager.constants.js +1 -64
- package/build/contexts/PerformanceManager/PerformanceManager.constants.js.map +1 -1
- package/build/contexts/PerformanceManager/PerformanceManager.js +1 -1
- package/build/contexts/PerformanceManager/PerformanceManager.js.map +1 -1
- package/build/helpers/getPerformance.js +64 -1
- package/build/helpers/getPerformance.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,7 +7,8 @@ exports.Content = void 0;
|
|
|
7
7
|
var _dataSources = require("@mirai/data-sources");
|
|
8
8
|
var _ui = require("@mirai/ui");
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
-
var _react =
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _OTAPrices = require("./components/OTAPrices");
|
|
11
12
|
var style = _interopRequireWildcard(require("./Rates.module.css"));
|
|
12
13
|
var _BannerLoyalty = require("../BannerLoyalty");
|
|
13
14
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
@@ -23,13 +24,36 @@ const Content = _ref => {
|
|
|
23
24
|
const {
|
|
24
25
|
isMobile
|
|
25
26
|
} = (0, _ui.useDevice)();
|
|
27
|
+
const refBanner = (0, _react.useRef)();
|
|
26
28
|
const {
|
|
27
29
|
value: {
|
|
28
30
|
club: {
|
|
29
31
|
banner = {}
|
|
30
|
-
} = {}
|
|
31
|
-
|
|
32
|
+
} = {},
|
|
33
|
+
finder: {
|
|
34
|
+
place: {
|
|
35
|
+
isHotel
|
|
36
|
+
} = {}
|
|
37
|
+
} = {},
|
|
38
|
+
id
|
|
39
|
+
} = {}
|
|
32
40
|
} = (0, _dataSources.useStore)();
|
|
41
|
+
const [bannerVisible, setBannerVisible] = (0, _react.useState)(false);
|
|
42
|
+
(0, _react.useEffect)(() => {
|
|
43
|
+
const {
|
|
44
|
+
current: el
|
|
45
|
+
} = refBanner || {};
|
|
46
|
+
const callback = () => setBannerVisible(true);
|
|
47
|
+
const observer = new MutationObserver(callback);
|
|
48
|
+
observer.observe(el, {
|
|
49
|
+
childList: true,
|
|
50
|
+
subtree: true
|
|
51
|
+
});
|
|
52
|
+
return () => observer.disconnect();
|
|
53
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
54
|
+
}, [refBanner]);
|
|
55
|
+
const isRates = isHotel === undefined || isHotel;
|
|
56
|
+
const showOta = id === '500445' && isRates;
|
|
33
57
|
return !!banner || dangerousChildren.length > 0 || increments ? /*#__PURE__*/_react.default.createElement(_ui.View, _extends({}, others, {
|
|
34
58
|
className: style.extraContent
|
|
35
59
|
}), increments && /*#__PURE__*/_react.default.createElement(_ui.Notification, {
|
|
@@ -42,10 +66,17 @@ const Content = _ref => {
|
|
|
42
66
|
__html: child.outerHTML
|
|
43
67
|
}
|
|
44
68
|
}))) : null, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
45
|
-
|
|
69
|
+
ref: refBanner,
|
|
70
|
+
id: "external-banner",
|
|
71
|
+
style: !bannerVisible ? {
|
|
72
|
+
display: 'none'
|
|
73
|
+
} : undefined
|
|
46
74
|
}), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
47
|
-
id: "123-compare-plugin"
|
|
48
|
-
|
|
75
|
+
id: "123-compare-plugin",
|
|
76
|
+
style: showOta || !isRates ? {
|
|
77
|
+
display: 'none'
|
|
78
|
+
} : undefined
|
|
79
|
+
}), showOta && /*#__PURE__*/_react.default.createElement(_OTAPrices.OTAPrices, null), /*#__PURE__*/_react.default.createElement(_BannerLoyalty.BannerLoyalty, others)) : null;
|
|
49
80
|
};
|
|
50
81
|
exports.Content = Content;
|
|
51
82
|
Content.displayName = 'Mirai:Core:Rates:Content';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rates.Content.js","names":["_dataSources","require","_ui","_propTypes","_interopRequireDefault","_react","
|
|
1
|
+
{"version":3,"file":"Rates.Content.js","names":["_dataSources","require","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_OTAPrices","style","_BannerLoyalty","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","Content","_ref","dangerousChildren","increments","others","isMobile","useDevice","refBanner","useRef","value","club","banner","finder","place","isHotel","id","useStore","bannerVisible","setBannerVisible","useState","useEffect","current","el","callback","observer","MutationObserver","observe","childList","subtree","disconnect","isRates","undefined","showOta","createElement","View","className","extraContent","Notification","small","warning","wide","map","child","index","dangerouslySetInnerHTML","__html","outerHTML","ref","display","OTAPrices","BannerLoyalty","exports","displayName","propTypes","bannerLoyalty","PropTypes","bool","arrayOf","any","string"],"sources":["../../../src/components/Rates/Rates.Content.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { Notification, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { OTAPrices } from './components/OTAPrices';\nimport * as style from './Rates.module.css';\nimport { BannerLoyalty } from '../BannerLoyalty';\n\nconst Content = ({ dangerousChildren = [], increments, ...others }) => {\n const { isMobile } = useDevice();\n const refBanner = useRef();\n\n const { value: { club: { banner = {} } = {}, finder: { place: { isHotel } = {} } = {}, id } = {} } = useStore();\n\n const [bannerVisible, setBannerVisible] = useState(false);\n\n useEffect(() => {\n const { current: el } = refBanner || {};\n\n const callback = () => setBannerVisible(true);\n const observer = new MutationObserver(callback);\n observer.observe(el, { childList: true, subtree: true });\n\n return () => observer.disconnect();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [refBanner]);\n\n const isRates = isHotel === undefined || isHotel;\n const showOta = id === '500445' && isRates;\n\n return !!banner || dangerousChildren.length > 0 || increments ? (\n <View {...others} className={style.extraContent}>\n {increments && (\n <Notification small={isMobile} warning wide>\n {increments}\n </Notification>\n )}\n\n {dangerousChildren.length ? (\n <View>\n {dangerousChildren.map((child, index) => (\n <View key={index} dangerouslySetInnerHTML={{ __html: child.outerHTML }} />\n ))}\n </View>\n ) : null}\n\n <View ref={refBanner} id=\"external-banner\" style={!bannerVisible ? { display: 'none' } : undefined} />\n <View id=\"123-compare-plugin\" style={showOta || !isRates ? { display: 'none' } : undefined} />\n {showOta && <OTAPrices />}\n\n <BannerLoyalty {...others} />\n </View>\n ) : null;\n};\n\nContent.displayName = 'Mirai:Core:Rates:Content';\n\nContent.propTypes = {\n bannerLoyalty: PropTypes.bool,\n dangerousChildren: PropTypes.arrayOf(PropTypes.any),\n increments: PropTypes.string,\n};\n\nexport { Content };\n"],"mappings":"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"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.OTAPrices = void 0;
|
|
7
|
+
var _dataSources = require("@mirai/data-sources");
|
|
8
|
+
var _locale = require("@mirai/locale");
|
|
9
|
+
var _ui = require("@mirai/ui");
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _OTAPrices = require("./OTAPrices.l10n");
|
|
13
|
+
var style = _interopRequireWildcard(require("./OTAPrices.module.css"));
|
|
14
|
+
var _OTAPrices2 = _interopRequireDefault(require("./OTAPrices.skeleton"));
|
|
15
|
+
var _Core = require("../../../../Core.constants");
|
|
16
|
+
var _shared__ = require("../../../__shared__");
|
|
17
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
18
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
19
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
21
|
+
const OTAPrices = _ref => {
|
|
22
|
+
let {
|
|
23
|
+
...others
|
|
24
|
+
} = _ref;
|
|
25
|
+
const {
|
|
26
|
+
isMobile
|
|
27
|
+
} = (0, _ui.useDevice)();
|
|
28
|
+
const {
|
|
29
|
+
currency,
|
|
30
|
+
locale,
|
|
31
|
+
translate
|
|
32
|
+
} = (0, _locale.useLocale)();
|
|
33
|
+
const {
|
|
34
|
+
value: {
|
|
35
|
+
finder: {
|
|
36
|
+
calendar,
|
|
37
|
+
occupation,
|
|
38
|
+
place,
|
|
39
|
+
promocode
|
|
40
|
+
} = {},
|
|
41
|
+
performance = []
|
|
42
|
+
} = {}
|
|
43
|
+
} = (0, _dataSources.useStore)();
|
|
44
|
+
const [dataSource, setDataSource] = (0, _react.useState)();
|
|
45
|
+
const [fetching, setFetching] = (0, _react.useState)(true);
|
|
46
|
+
const [otas, setOtas] = (0, _react.useState)([]);
|
|
47
|
+
const hasOTA = performance.some(_ref2 => {
|
|
48
|
+
let {
|
|
49
|
+
instances = [],
|
|
50
|
+
type
|
|
51
|
+
} = _ref2;
|
|
52
|
+
return type === _Core.PERFORMANCE.COMPARE && instances.length > 0;
|
|
53
|
+
});
|
|
54
|
+
(0, _react.useEffect)(() => {
|
|
55
|
+
if (process.env.NODE_ENV === 'development') {
|
|
56
|
+
localStorage.setItem('cmprm_screens_override', '[{ "type": "StartsWith", "path": "http://local.mirai.com:8080", "id_screen": 1233 }]');
|
|
57
|
+
}
|
|
58
|
+
const handleHeaderReady = event => {
|
|
59
|
+
const {
|
|
60
|
+
detail: {
|
|
61
|
+
currency,
|
|
62
|
+
is_hide: disabled = false,
|
|
63
|
+
price
|
|
64
|
+
} = {}
|
|
65
|
+
} = event;
|
|
66
|
+
if (disabled) {
|
|
67
|
+
window.removeEventListener('cmprm_event_rc_header_ready', handleHeaderReady);
|
|
68
|
+
window.removeEventListener('cmprm_event_rc_ota_ready', handleOTAReady);
|
|
69
|
+
}
|
|
70
|
+
setDataSource({
|
|
71
|
+
currency,
|
|
72
|
+
disabled,
|
|
73
|
+
price
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
const handleOTAReady = event => {
|
|
77
|
+
const {
|
|
78
|
+
detail: {
|
|
79
|
+
currency,
|
|
80
|
+
id_ota: id,
|
|
81
|
+
ota_name: name,
|
|
82
|
+
price
|
|
83
|
+
} = {}
|
|
84
|
+
} = event;
|
|
85
|
+
setOtas(prevOtas => [...prevOtas, {
|
|
86
|
+
currency,
|
|
87
|
+
id,
|
|
88
|
+
name,
|
|
89
|
+
price
|
|
90
|
+
}]);
|
|
91
|
+
};
|
|
92
|
+
window.addEventListener('cmprm_event_rc_header_ready', handleHeaderReady);
|
|
93
|
+
window.addEventListener('cmprm_event_rc_ota_ready', handleOTAReady);
|
|
94
|
+
return () => {
|
|
95
|
+
window.removeEventListener('cmprm_event_rc_header_ready', handleHeaderReady);
|
|
96
|
+
window.removeEventListener('cmprm_event_rc_ota_ready', handleOTAReady);
|
|
97
|
+
};
|
|
98
|
+
}, []);
|
|
99
|
+
(0, _react.useEffect)(() => {
|
|
100
|
+
setFetching(true);
|
|
101
|
+
let timeout = setTimeout(() => setFetching(false), 5000);
|
|
102
|
+
return () => clearTimeout(timeout);
|
|
103
|
+
}, [otas]);
|
|
104
|
+
(0, _react.useEffect)(() => {
|
|
105
|
+
setDataSource();
|
|
106
|
+
setOtas([]);
|
|
107
|
+
}, [calendar, currency, occupation, place, promocode]);
|
|
108
|
+
const currencyFormatProps = {
|
|
109
|
+
currency,
|
|
110
|
+
locale,
|
|
111
|
+
maximumFractionDigits: 0
|
|
112
|
+
};
|
|
113
|
+
const {
|
|
114
|
+
disabled = false
|
|
115
|
+
} = dataSource || {};
|
|
116
|
+
return dataSource && !disabled ? /*#__PURE__*/_react.default.createElement(_ui.View, _extends({}, others, {
|
|
117
|
+
row: !isMobile,
|
|
118
|
+
className: style.container
|
|
119
|
+
}), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
120
|
+
row: true,
|
|
121
|
+
className: style.title
|
|
122
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.Text, null, translate(_OTAPrices.L10N.LABEL_OUR_BEST_ONLINE_RATE)), /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
123
|
+
accent: true,
|
|
124
|
+
bold: true,
|
|
125
|
+
headline: true
|
|
126
|
+
}, (0, _locale.currencyFormat)({
|
|
127
|
+
...currencyFormatProps,
|
|
128
|
+
value: dataSource.price
|
|
129
|
+
}))), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
130
|
+
row: true,
|
|
131
|
+
className: style.items
|
|
132
|
+
}, [...otas].sort((a, b) => a.price - b.price).map(_ref3 => {
|
|
133
|
+
let {
|
|
134
|
+
id,
|
|
135
|
+
name,
|
|
136
|
+
price
|
|
137
|
+
} = _ref3;
|
|
138
|
+
return /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
139
|
+
key: id,
|
|
140
|
+
className: style.item
|
|
141
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
142
|
+
small: true
|
|
143
|
+
}, name), /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
144
|
+
action: isMobile
|
|
145
|
+
}, (0, _locale.currencyFormat)({
|
|
146
|
+
...currencyFormatProps,
|
|
147
|
+
value: price
|
|
148
|
+
})));
|
|
149
|
+
}), fetching && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, Array.from({
|
|
150
|
+
length: 4 - otas.length
|
|
151
|
+
}, (_, index) => /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
152
|
+
key: "skeleton:".concat(index),
|
|
153
|
+
className: style.item
|
|
154
|
+
}, /*#__PURE__*/_react.default.createElement(_shared__.Skeleton, {
|
|
155
|
+
small: true
|
|
156
|
+
}, "OTA Name"), /*#__PURE__*/_react.default.createElement(_shared__.Skeleton, {
|
|
157
|
+
action: isMobile,
|
|
158
|
+
bold: true
|
|
159
|
+
}, "???$")))))) : !disabled && hasOTA ? /*#__PURE__*/_react.default.createElement(_OTAPrices2.default, null) : null;
|
|
160
|
+
};
|
|
161
|
+
exports.OTAPrices = OTAPrices;
|
|
162
|
+
OTAPrices.displayName = 'Mirai:Core:OTAPrices';
|
|
163
|
+
OTAPrices.propTypes = {
|
|
164
|
+
children: _propTypes.default.node,
|
|
165
|
+
className: _propTypes.default.any,
|
|
166
|
+
columnMode: _propTypes.default.bool,
|
|
167
|
+
disabled: _propTypes.default.bool,
|
|
168
|
+
focus: _propTypes.default.bool,
|
|
169
|
+
rowMode: _propTypes.default.bool
|
|
170
|
+
};
|
|
171
|
+
//# sourceMappingURL=OTAPrices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OTAPrices.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_OTAPrices","style","_OTAPrices2","_Core","_shared__","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","OTAPrices","_ref","others","isMobile","useDevice","currency","locale","translate","useLocale","value","finder","calendar","occupation","place","promocode","performance","useStore","dataSource","setDataSource","useState","fetching","setFetching","otas","setOtas","hasOTA","some","_ref2","instances","type","PERFORMANCE","COMPARE","useEffect","process","env","NODE_ENV","localStorage","setItem","handleHeaderReady","event","detail","is_hide","disabled","price","window","removeEventListener","handleOTAReady","id_ota","id","ota_name","name","prevOtas","addEventListener","timeout","setTimeout","clearTimeout","currencyFormatProps","maximumFractionDigits","createElement","View","row","className","container","title","Text","L10N","LABEL_OUR_BEST_ONLINE_RATE","accent","bold","headline","currencyFormat","items","sort","b","map","_ref3","item","small","action","Fragment","Array","from","_","index","concat","Skeleton","exports","displayName","propTypes","children","PropTypes","node","any","columnMode","bool","focus","rowMode"],"sources":["../../../../../src/components/Rates/components/OTAPrices/OTAPrices.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { L10N } from './OTAPrices.l10n';\nimport * as style from './OTAPrices.module.css';\nimport OTAPricesSkeleton from './OTAPrices.skeleton';\nimport { PERFORMANCE } from '../../../../Core.constants';\nimport { Skeleton } from '../../../__shared__';\n\nconst OTAPrices = ({ ...others }) => {\n const { isMobile } = useDevice();\n const { currency, locale, translate } = useLocale();\n const { value: { finder: { calendar, occupation, place, promocode } = {}, performance = [] } = {} } = useStore();\n\n const [dataSource, setDataSource] = useState();\n const [fetching, setFetching] = useState(true);\n const [otas, setOtas] = useState([]);\n\n const hasOTA = performance.some(({ instances = [], type }) => type === PERFORMANCE.COMPARE && instances.length > 0);\n\n useEffect(() => {\n if (process.env.NODE_ENV === 'development') {\n localStorage.setItem(\n 'cmprm_screens_override',\n '[{ \"type\": \"StartsWith\", \"path\": \"http://local.mirai.com:8080\", \"id_screen\": 1233 }]',\n );\n }\n\n const handleHeaderReady = (event) => {\n const { detail: { currency, is_hide: disabled = false, price } = {} } = event;\n if (disabled) {\n window.removeEventListener('cmprm_event_rc_header_ready', handleHeaderReady);\n window.removeEventListener('cmprm_event_rc_ota_ready', handleOTAReady);\n }\n setDataSource({ currency, disabled, price });\n };\n\n const handleOTAReady = (event) => {\n const { detail: { currency, id_ota: id, ota_name: name, price } = {} } = event;\n\n setOtas((prevOtas) => [...prevOtas, { currency, id, name, price }]);\n };\n\n window.addEventListener('cmprm_event_rc_header_ready', handleHeaderReady);\n window.addEventListener('cmprm_event_rc_ota_ready', handleOTAReady);\n\n return () => {\n window.removeEventListener('cmprm_event_rc_header_ready', handleHeaderReady);\n window.removeEventListener('cmprm_event_rc_ota_ready', handleOTAReady);\n };\n }, []);\n\n useEffect(() => {\n setFetching(true);\n let timeout = setTimeout(() => setFetching(false), 5000);\n\n return () => clearTimeout(timeout);\n }, [otas]);\n\n useEffect(() => {\n setDataSource();\n setOtas([]);\n }, [calendar, currency, occupation, place, promocode]);\n\n const currencyFormatProps = { currency, locale, maximumFractionDigits: 0 };\n const { disabled = false } = dataSource || {};\n\n return dataSource && !disabled ? (\n <View {...others} row={!isMobile} className={style.container}>\n <View row className={style.title}>\n <Text>{translate(L10N.LABEL_OUR_BEST_ONLINE_RATE)}</Text>\n <Text accent bold headline>\n {currencyFormat({ ...currencyFormatProps, value: dataSource.price })}\n </Text>\n </View>\n <View row className={style.items}>\n {[...otas]\n .sort((a, b) => a.price - b.price)\n .map(({ id, name, price }) => (\n <View key={id} className={style.item}>\n <Text small>{name}</Text>\n <Text action={isMobile}>{currencyFormat({ ...currencyFormatProps, value: price })}</Text>\n </View>\n ))}\n\n {fetching && (\n <>\n {Array.from({ length: 4 - otas.length }, (_, index) => (\n <View key={`skeleton:${index}`} className={style.item}>\n <Skeleton small>OTA Name</Skeleton>\n <Skeleton action={isMobile} bold>\n ???$\n </Skeleton>\n </View>\n ))}\n </>\n )}\n </View>\n </View>\n ) : !disabled && hasOTA ? (\n <OTAPricesSkeleton />\n ) : null;\n};\n\nOTAPrices.displayName = 'Mirai:Core:OTAPrices';\n\nOTAPrices.propTypes = {\n children: PropTypes.node,\n className: PropTypes.any,\n columnMode: PropTypes.bool,\n disabled: PropTypes.bool,\n focus: PropTypes.bool,\n rowMode: PropTypes.bool,\n};\n\nexport { OTAPrices };\n"],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.L10N = void 0;
|
|
7
|
+
const L10N = exports.L10N = {
|
|
8
|
+
LABEL_OUR_BEST_ONLINE_RATE: {
|
|
9
|
+
id: 'finder.label.our_best_online_rate'
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=OTAPrices.l10n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OTAPrices.l10n.js","names":["L10N","exports","LABEL_OUR_BEST_ONLINE_RATE","id"],"sources":["../../../../../src/components/Rates/components/OTAPrices/OTAPrices.l10n.js"],"sourcesContent":["export const L10N = {\n LABEL_OUR_BEST_ONLINE_RATE: { id: 'finder.label.our_best_online_rate' },\n};\n"],"mappings":";;;;;;AAAO,MAAMA,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAClBE,0BAA0B,EAAE;IAAEC,EAAE,EAAE;EAAoC;AACxE,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
.container {
|
|
2
|
+
align-items: normal;
|
|
3
|
+
background-color: var(--mirai-ui-base);
|
|
4
|
+
border-radius: var(--mirai-ui-border-radius);
|
|
5
|
+
border: solid var(--mirai-ui-border-width) var(--mirai-ui-accent-border);
|
|
6
|
+
overflow: hidden;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.container > :first-child > * {
|
|
10
|
+
width: max-content;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.title {
|
|
14
|
+
gap: var(--mirai-ui-space-S);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.items {
|
|
18
|
+
overflow-x: auto;
|
|
19
|
+
width: 100%;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.item {
|
|
23
|
+
align-items: center;
|
|
24
|
+
flex-wrap: wrap;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/* S */
|
|
28
|
+
@media only screen and (max-width: 480px) {
|
|
29
|
+
.container > :first-child {
|
|
30
|
+
border-bottom: solid var(--mirai-ui-border-width) var(--mirai-ui-accent-border);
|
|
31
|
+
padding: var(--mirai-ui-space-S);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.title {
|
|
35
|
+
justify-content: space-between;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.items {
|
|
39
|
+
align-items: center;
|
|
40
|
+
padding: 0 var(--mirai-ui-space-XS);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.item {
|
|
44
|
+
padding: var(--mirai-ui-space-XS) 0;
|
|
45
|
+
max-width: 25%;
|
|
46
|
+
min-width: 25%;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* M & L */
|
|
51
|
+
@media only screen and (min-width: 481px) {
|
|
52
|
+
.container > * {
|
|
53
|
+
padding: var(--mirai-ui-space-M);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* M */
|
|
58
|
+
@media only screen and (min-width: 481px) and (max-width: 1179px) {
|
|
59
|
+
.item {
|
|
60
|
+
padding: var(--mirai-ui-space-XS) 0;
|
|
61
|
+
width: 33%;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* L */
|
|
66
|
+
@media only screen and (min-width: 1180px) {
|
|
67
|
+
.items {
|
|
68
|
+
margin-left: var(--mirai-ui-space-M);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.item {
|
|
72
|
+
width: 25%;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _ui = require("@mirai/ui");
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _shared__ = require("../../../__shared__");
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
12
|
+
const OTAPricesSkeleton = _ref => {
|
|
13
|
+
let {
|
|
14
|
+
...others
|
|
15
|
+
} = _ref;
|
|
16
|
+
const {
|
|
17
|
+
isMobile
|
|
18
|
+
} = (0, _ui.useDevice)();
|
|
19
|
+
return /*#__PURE__*/_react.default.createElement(_shared__.Skeleton, _extends({}, others, {
|
|
20
|
+
base: true,
|
|
21
|
+
row: !isMobile,
|
|
22
|
+
style: {
|
|
23
|
+
border: 'solid 1px var(--mirai-ui-content-border)'
|
|
24
|
+
}
|
|
25
|
+
}), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
26
|
+
style: {
|
|
27
|
+
borderBottom: isMobile ? 'solid 1px var(--mirai-ui-content-border)' : undefined,
|
|
28
|
+
padding: isMobile ? 'var(--mirai-ui-space-S)' : 'var(--mirai-ui-space-M)'
|
|
29
|
+
}
|
|
30
|
+
}, /*#__PURE__*/_react.default.createElement(_shared__.Skeleton, {
|
|
31
|
+
style: {
|
|
32
|
+
width: 'max-content'
|
|
33
|
+
}
|
|
34
|
+
}, "Our best online rate is $???!")), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
35
|
+
row: true,
|
|
36
|
+
style: {
|
|
37
|
+
padding: isMobile ? 'var(--mirai-ui-space-XS)' : 'var(--mirai-ui-space-M)'
|
|
38
|
+
},
|
|
39
|
+
wide: true
|
|
40
|
+
}, Array.from({
|
|
41
|
+
length: 4
|
|
42
|
+
}).map((_, index) => /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
43
|
+
key: index,
|
|
44
|
+
style: {
|
|
45
|
+
alignItems: 'center',
|
|
46
|
+
width: '25%'
|
|
47
|
+
}
|
|
48
|
+
}, /*#__PURE__*/_react.default.createElement(_shared__.Skeleton, {
|
|
49
|
+
small: true
|
|
50
|
+
}, "OTA Name"), /*#__PURE__*/_react.default.createElement(_shared__.Skeleton, {
|
|
51
|
+
action: isMobile,
|
|
52
|
+
bold: true
|
|
53
|
+
}, "$???")))));
|
|
54
|
+
};
|
|
55
|
+
OTAPricesSkeleton.displayName = 'Mirai:Core:OTAPrices:Skeleton';
|
|
56
|
+
OTAPricesSkeleton.propTypes = {};
|
|
57
|
+
var _default = exports.default = OTAPricesSkeleton;
|
|
58
|
+
//# sourceMappingURL=OTAPrices.skeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OTAPrices.skeleton.js","names":["_ui","require","_react","_interopRequireDefault","_shared__","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","OTAPricesSkeleton","_ref","others","isMobile","useDevice","createElement","Skeleton","base","row","style","border","View","borderBottom","undefined","padding","width","wide","Array","from","map","_","index","alignItems","small","action","bold","displayName","propTypes","_default","exports"],"sources":["../../../../../src/components/Rates/components/OTAPrices/OTAPrices.skeleton.jsx"],"sourcesContent":["import { useDevice, View } from '@mirai/ui';\nimport React from 'react';\n\nimport { Skeleton } from '../../../__shared__';\n\nconst OTAPricesSkeleton = ({ ...others }) => {\n const { isMobile } = useDevice();\n\n return (\n <Skeleton\n {...others}\n base\n row={!isMobile}\n style={{\n border: 'solid 1px var(--mirai-ui-content-border)',\n }}\n >\n <View\n style={{\n borderBottom: isMobile ? 'solid 1px var(--mirai-ui-content-border)' : undefined,\n padding: isMobile ? 'var(--mirai-ui-space-S)' : 'var(--mirai-ui-space-M)',\n }}\n >\n <Skeleton style={{ width: 'max-content' }}>Our best online rate is $???!</Skeleton>\n </View>\n\n <View row style={{ padding: isMobile ? 'var(--mirai-ui-space-XS)' : 'var(--mirai-ui-space-M)' }} wide>\n {Array.from({ length: 4 }).map((_, index) => (\n <View key={index} style={{ alignItems: 'center', width: '25%' }}>\n <Skeleton small>OTA Name</Skeleton>\n <Skeleton action={isMobile} bold>\n $???\n </Skeleton>\n </View>\n ))}\n </View>\n </Skeleton>\n );\n};\n\nOTAPricesSkeleton.displayName = 'Mirai:Core:OTAPrices:Skeleton';\n\nOTAPricesSkeleton.propTypes = {};\n\nexport default OTAPricesSkeleton;\n"],"mappings":";;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,SAAA,GAAAH,OAAA;AAA+C,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,SAAA,IAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,GAAA,IAAAD,MAAA,QAAAP,MAAA,CAAAS,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAC,GAAA,KAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAL,MAAA,YAAAJ,QAAA,CAAAa,KAAA,OAAAP,SAAA;AAE/C,MAAMQ,iBAAiB,GAAGC,IAAA,IAAmB;EAAA,IAAlB;IAAE,GAAGC;EAAO,CAAC,GAAAD,IAAA;EACtC,MAAM;IAAEE;EAAS,CAAC,GAAG,IAAAC,aAAS,EAAC,CAAC;EAEhC,oBACExB,MAAA,CAAAK,OAAA,CAAAoB,aAAA,CAACvB,SAAA,CAAAwB,QAAQ,EAAApB,QAAA,KACHgB,MAAM;IACVK,IAAI;IACJC,GAAG,EAAE,CAACL,QAAS;IACfM,KAAK,EAAE;MACLC,MAAM,EAAE;IACV;EAAE,iBAEF9B,MAAA,CAAAK,OAAA,CAAAoB,aAAA,CAAC3B,GAAA,CAAAiC,IAAI;IACHF,KAAK,EAAE;MACLG,YAAY,EAAET,QAAQ,GAAG,0CAA0C,GAAGU,SAAS;MAC/EC,OAAO,EAAEX,QAAQ,GAAG,yBAAyB,GAAG;IAClD;EAAE,gBAEFvB,MAAA,CAAAK,OAAA,CAAAoB,aAAA,CAACvB,SAAA,CAAAwB,QAAQ;IAACG,KAAK,EAAE;MAAEM,KAAK,EAAE;IAAc;EAAE,GAAC,+BAAuC,CAC9E,CAAC,eAEPnC,MAAA,CAAAK,OAAA,CAAAoB,aAAA,CAAC3B,GAAA,CAAAiC,IAAI;IAACH,GAAG;IAACC,KAAK,EAAE;MAAEK,OAAO,EAAEX,QAAQ,GAAG,0BAA0B,GAAG;IAA0B,CAAE;IAACa,IAAI;EAAA,GAClGC,KAAK,CAACC,IAAI,CAAC;IAAEzB,MAAM,EAAE;EAAE,CAAC,CAAC,CAAC0B,GAAG,CAAC,CAACC,CAAC,EAAEC,KAAK,kBACtCzC,MAAA,CAAAK,OAAA,CAAAoB,aAAA,CAAC3B,GAAA,CAAAiC,IAAI;IAAChB,GAAG,EAAE0B,KAAM;IAACZ,KAAK,EAAE;MAAEa,UAAU,EAAE,QAAQ;MAAEP,KAAK,EAAE;IAAM;EAAE,gBAC9DnC,MAAA,CAAAK,OAAA,CAAAoB,aAAA,CAACvB,SAAA,CAAAwB,QAAQ;IAACiB,KAAK;EAAA,GAAC,UAAkB,CAAC,eACnC3C,MAAA,CAAAK,OAAA,CAAAoB,aAAA,CAACvB,SAAA,CAAAwB,QAAQ;IAACkB,MAAM,EAAErB,QAAS;IAACsB,IAAI;EAAA,GAAC,MAEvB,CACN,CACP,CACG,CACE,CAAC;AAEf,CAAC;AAEDzB,iBAAiB,CAAC0B,WAAW,GAAG,+BAA+B;AAE/D1B,iBAAiB,CAAC2B,SAAS,GAAG,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA5C,OAAA,GAElBe,iBAAiB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _OTAPrices = require("./OTAPrices");
|
|
7
|
+
Object.keys(_OTAPrices).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _OTAPrices[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _OTAPrices[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_OTAPrices","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../../src/components/Rates/components/OTAPrices/index.js"],"sourcesContent":["export * from './OTAPrices';\n"],"mappings":";;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,UAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,UAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,UAAA,CAAAK,GAAA;IAAA;EAAA;AAAA"}
|
|
@@ -3,71 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.KPI_EVENTS = exports.
|
|
6
|
+
exports.KPI_EVENTS = exports.CONSENT_MODE_REQUIRED = exports.CONSENT_MODE_ANSWERED = void 0;
|
|
7
7
|
var _Core = require("../../Core.constants");
|
|
8
|
-
const DEFAULT_PERFORMANCE = exports.DEFAULT_PERFORMANCE = [{
|
|
9
|
-
type: 1,
|
|
10
|
-
instances: [{
|
|
11
|
-
idAnalytics: 'G-EW4M987YRE',
|
|
12
|
-
propertyId: '337963856',
|
|
13
|
-
serviceAccount: 'ANALYTICS11',
|
|
14
|
-
id: 42011
|
|
15
|
-
}]
|
|
16
|
-
}, {
|
|
17
|
-
type: 2,
|
|
18
|
-
instances: [{
|
|
19
|
-
idAdwords: '604678444',
|
|
20
|
-
conversionLabel: 'S0SLCLqv8toBEKzSqqAC',
|
|
21
|
-
cookiePrefix: 'MIRAI',
|
|
22
|
-
id: 55146
|
|
23
|
-
}]
|
|
24
|
-
}, {
|
|
25
|
-
type: 3,
|
|
26
|
-
instances: [{
|
|
27
|
-
idGTM: 'GTM-M3CPG48',
|
|
28
|
-
id: 55265
|
|
29
|
-
}, {
|
|
30
|
-
idGTM: 'GTM-PZG8RRXL',
|
|
31
|
-
id: 55266
|
|
32
|
-
}, {
|
|
33
|
-
idGTM: 'GTM-M3CPG48',
|
|
34
|
-
id: 55267
|
|
35
|
-
}]
|
|
36
|
-
}, {
|
|
37
|
-
type: 4,
|
|
38
|
-
instances: [{
|
|
39
|
-
id: 47811
|
|
40
|
-
}]
|
|
41
|
-
}, {
|
|
42
|
-
type: 5,
|
|
43
|
-
instances: [{
|
|
44
|
-
pixelId: '999999999',
|
|
45
|
-
testEventCode: 'TEST9826',
|
|
46
|
-
id: 55182
|
|
47
|
-
}]
|
|
48
|
-
}, {
|
|
49
|
-
type: 6,
|
|
50
|
-
instances: [{
|
|
51
|
-
id: 55179
|
|
52
|
-
}]
|
|
53
|
-
}, {
|
|
54
|
-
type: 7,
|
|
55
|
-
instances: [{
|
|
56
|
-
idAffilired: '999999',
|
|
57
|
-
id: 55178
|
|
58
|
-
}]
|
|
59
|
-
}, {
|
|
60
|
-
type: 8,
|
|
61
|
-
instances: [{
|
|
62
|
-
idBing: '5979008',
|
|
63
|
-
id: 55180
|
|
64
|
-
}]
|
|
65
|
-
}, {
|
|
66
|
-
type: 9,
|
|
67
|
-
instances: [{
|
|
68
|
-
id: 42010
|
|
69
|
-
}]
|
|
70
|
-
}];
|
|
71
8
|
const CONSENT_MODE_ANSWERED = exports.CONSENT_MODE_ANSWERED = [_Core.PERFORMANCE.ANALYTICS, _Core.PERFORMANCE.COMPARE, _Core.PERFORMANCE.GTM, _Core.PERFORMANCE.GOOGLE_ADS];
|
|
72
9
|
const CONSENT_MODE_REQUIRED = exports.CONSENT_MODE_REQUIRED = [_Core.PERFORMANCE.AFFILIRED, _Core.PERFORMANCE.BING, _Core.PERFORMANCE.FACEBOOK, _Core.PERFORMANCE.THE_HOTEL_NETWORK];
|
|
73
10
|
const KPI_EVENTS = exports.KPI_EVENTS = ['UNAVAILABILITY:RENDER', 'RATES:RENDER', 'CHECKOUT:RENDER', 'BOOKING:RENDER'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PerformanceManager.constants.js","names":["_Core","require","
|
|
1
|
+
{"version":3,"file":"PerformanceManager.constants.js","names":["_Core","require","CONSENT_MODE_ANSWERED","exports","PERFORMANCE","ANALYTICS","COMPARE","GTM","GOOGLE_ADS","CONSENT_MODE_REQUIRED","AFFILIRED","BING","FACEBOOK","THE_HOTEL_NETWORK","KPI_EVENTS"],"sources":["../../../src/contexts/PerformanceManager/PerformanceManager.constants.js"],"sourcesContent":["import { PERFORMANCE } from '../../Core.constants';\n\nconst CONSENT_MODE_ANSWERED = [PERFORMANCE.ANALYTICS, PERFORMANCE.COMPARE, PERFORMANCE.GTM, PERFORMANCE.GOOGLE_ADS];\n\nconst CONSENT_MODE_REQUIRED = [\n PERFORMANCE.AFFILIRED,\n PERFORMANCE.BING,\n PERFORMANCE.FACEBOOK,\n PERFORMANCE.THE_HOTEL_NETWORK,\n];\n\nconst KPI_EVENTS = ['UNAVAILABILITY:RENDER', 'RATES:RENDER', 'CHECKOUT:RENDER', 'BOOKING:RENDER'];\n\nexport { CONSENT_MODE_ANSWERED, CONSENT_MODE_REQUIRED, KPI_EVENTS };\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,MAAMC,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,CAACE,iBAAW,CAACC,SAAS,EAAED,iBAAW,CAACE,OAAO,EAAEF,iBAAW,CAACG,GAAG,EAAEH,iBAAW,CAACI,UAAU,CAAC;AAEnH,MAAMC,qBAAqB,GAAAN,OAAA,CAAAM,qBAAA,GAAG,CAC5BL,iBAAW,CAACM,SAAS,EACrBN,iBAAW,CAACO,IAAI,EAChBP,iBAAW,CAACQ,QAAQ,EACpBR,iBAAW,CAACS,iBAAiB,CAC9B;AAED,MAAMC,UAAU,GAAAX,OAAA,CAAAW,UAAA,GAAG,CAAC,uBAAuB,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PerformanceManager.js","names":["_dataSources","require","_services","_ui","_react","_helpers","_PerformanceManager","_PerformanceManager2","_PerformanceManager3","_helpers2","_Core","_helpers3","MAX_COUNTER","COMPARE","GTM","PERFORMANCE","counter","memoizedEvents","memoizedPendingEvents","PerformanceManager","device","useDevice","track","trackRender","useMetrics","value","components","performance","DEFAULT_PERFORMANCE","store","useStore","consentMode","setConsentMode","useState","getConsentMode","ready","setReady","types","setTypes","hotel","finder","place","id","instanceId","locale","session","type","useEffect","window","Mirai","urlParameters","fetchUrlParams","location","search","metrics","ServiceFeatures","get","bannedMetrics","Object","entries","filter","_ref","map","_ref2","key","handleMetrics","_ref3","props","IS_PLAYWRIGHT","host","event","toUpperCase","trim","metric","split","includes","KPI_EVENTS","method","hotelId","mobile","Event","subscribe","COMPONENTS_EVENT","METRICS","unsubscribe","length","interval","setInterval","undefined","nextConsentMode","isGtm","provider","arguments","loadScripts","nextMemoizedPendingEvents","forEach","execute","CONSENT_MODE_ANSWERED","requeue","push","executeEvent","clearInterval","_getPerformance","config","isHotel","getPerformance","handleEvent","_ref4","currentConsentMode","availableProviders","CONSENT_MODE_REQUIRED","EVENTS","_ref5","propProvider","callback","parseInt","some","item","keys","find","_ref6","response","label","concat","getPerformanceLabel","then","console","log","propConsentMode","loadedComponents","scripts","instances","propInstances","init","once","SCRIPTS","index","domain","Promise","all","loadScript","catch","exports"],"sources":["../../../src/contexts/PerformanceManager/PerformanceManager.jsx"],"sourcesContent":["import { Event, useMetrics, useStore } from '@mirai/data-sources';\nimport { ServiceFeatures } from '@mirai/services';\nimport { useDevice } from '@mirai/ui';\nimport { useEffect, useState } from 'react';\n\nimport { getConsentMode, getPerformanceLabel } from './helpers';\nimport {\n CONSENT_MODE_ANSWERED,\n CONSENT_MODE_REQUIRED,\n DEFAULT_PERFORMANCE,\n KPI_EVENTS,\n} from './PerformanceManager.constants';\nimport { EVENTS } from './PerformanceManager.events';\nimport { SCRIPTS } from './PerformanceManager.scripts';\nimport { EVENT as COMPONENTS_EVENT } from '../../components/helpers';\nimport { PERFORMANCE } from '../../Core.constants';\nimport { fetchUrlParams, getPerformance, loadScript } from '../../helpers';\n\nconst MAX_COUNTER = 5;\nconst { COMPARE, GTM } = PERFORMANCE || {};\n\nlet counter = 0;\nlet memoizedEvents = [];\nlet memoizedPendingEvents = [];\n\nconst PerformanceManager = () => {\n const device = useDevice();\n const { track, trackRender } = useMetrics();\n const {\n value: { components = {}, performance = DEFAULT_PERFORMANCE || [], ...store },\n } = useStore();\n\n const [consentMode, setConsentMode] = useState(getConsentMode());\n const [ready, setReady] = useState(false);\n const [types, setTypes] = useState([]);\n\n const { hotel = {}, finder: { place } = {}, id: instanceId, locale, session, type } = store;\n\n useEffect(() => {\n //! TODO: temp fix for 123 compare for first phase\n window.Mirai.urlParameters = fetchUrlParams(location.search);\n\n const metrics = ServiceFeatures.get('metrics', hotel.id) || {};\n const bannedMetrics = Object.entries(metrics)\n .filter(([, value]) => value === false)\n .map(([key]) => key);\n\n const handleMetrics = ({ id, ...props }) => {\n if (!id || window.IS_PLAYWRIGHT || window.location.host === 'monalisa.mirai.com') return;\n const event = id.toUpperCase().trim();\n const [metric] = event.split(':');\n\n if (bannedMetrics.includes(metric) && !KPI_EVENTS.includes(event)) return;\n const method = event.includes('RENDER') ? trackRender : track;\n\n method(event, {\n ...props,\n hotelId: hotel.id,\n instanceId,\n locale,\n mobile: device.mobile,\n session,\n type,\n });\n };\n\n Event.subscribe(COMPONENTS_EVENT.METRICS, handleMetrics);\n\n return () => Event.unsubscribe(COMPONENTS_EVENT.METRICS, handleMetrics);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (consentMode && types.length > 0) return;\n\n const interval = setInterval(async () => {\n counter !== undefined && counter++;\n const nextConsentMode = getConsentMode(counter >= MAX_COUNTER);\n const isGtm = (provider) => [COMPARE, GTM].includes(provider);\n\n if (\n (nextConsentMode === undefined &&\n memoizedPendingEvents.filter(({ provider } = {}) => isGtm(provider)).length === 0) ||\n (!nextConsentMode && counter < MAX_COUNTER)\n )\n return;\n\n await loadScripts(\n performance.filter(({ type } = {}) => type !== COMPARE),\n nextConsentMode,\n );\n\n const nextMemoizedPendingEvents = [];\n memoizedPendingEvents.forEach((event = {}) => {\n const { provider } = event;\n const execute = nextConsentMode || (counter >= MAX_COUNTER && CONSENT_MODE_ANSWERED.includes(provider));\n const requeue = nextConsentMode === undefined && !isGtm(provider);\n\n if (!execute || requeue) {\n nextMemoizedPendingEvents.push(event);\n } else {\n executeEvent(event);\n\n if (!nextConsentMode && !isGtm(provider)) nextMemoizedPendingEvents.push(event);\n }\n });\n memoizedPendingEvents = nextMemoizedPendingEvents;\n if (nextConsentMode !== undefined) {\n counter = undefined;\n setConsentMode(nextConsentMode);\n }\n }, 1000);\n\n return () => clearInterval(interval);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [consentMode]);\n\n useEffect(() => {\n const { config, finder: { place: { id: [hotelId] = [], isHotel } = {} } = {} } = store;\n\n if (place && ready)\n loadScripts(getPerformance(config, isHotel ? hotelId : undefined)?.filter(({ type } = {}) => type !== COMPARE));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [place]);\n\n useEffect(() => {\n if (!ready) return;\n\n memoizedEvents.forEach((event) => executeEvent(event));\n memoizedEvents = [];\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ready]);\n\n useEffect(() => {\n const handleEvent = ({ event, ...value }) => {\n const currentConsentMode = getConsentMode();\n\n const availableProviders = performance\n .map(({ type } = {}) => type)\n .filter((type) => !(!currentConsentMode && CONSENT_MODE_ANSWERED.includes(type)))\n .filter((type) => currentConsentMode || !CONSENT_MODE_REQUIRED.includes(type));\n\n Object.entries(EVENTS[event]).forEach(([propProvider, callback = () => {}]) => {\n const provider = parseInt(propProvider);\n const props = { callback, event, provider, value };\n\n if (\n !currentConsentMode &&\n (!availableProviders.includes(provider) || (types.length > 0 && !types.includes(provider)))\n ) {\n if (counter === undefined && ready && CONSENT_MODE_ANSWERED.includes(provider)) executeEvent(props);\n else if (!memoizedPendingEvents.some((item) => item.event === event && item.provider === provider)) {\n memoizedPendingEvents.push(props);\n }\n } else if (ready) executeEvent(props);\n else memoizedEvents.push(props);\n });\n };\n\n Object.keys(EVENTS).forEach((event) => Event.subscribe(event, handleEvent));\n\n return () => Object.keys(EVENTS).forEach((event) => Event.unsubscribe(event, handleEvent));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [device, ready, store]);\n\n const executeEvent = ({ provider, callback, value, event } = {}) => {\n const config = performance.find(({ type }) => type === provider);\n const response = callback({ ...value, ...config, device, store });\n if (!response) return;\n\n const label = `⚡️ ${getPerformanceLabel(provider)} ${event}`;\n // eslint-disable-next-line no-console\n response.then ? response.then((value) => console.log(label, value)) : console.log(label, response);\n\n if (provider === GTM) {\n loadScripts(\n performance.filter(({ type } = {}) => type === COMPARE),\n consentMode,\n );\n }\n };\n\n const loadScripts = async (performance = [], propConsentMode = consentMode) => {\n const loadedComponents = Object.keys(components);\n\n const scripts = [];\n performance\n .filter(({ type } = {}) => propConsentMode === true || !CONSENT_MODE_REQUIRED.includes(type))\n .forEach(({ type, instances: propInstances = [] } = {}) => {\n const { components = [], init = () => {}, once = false } = SCRIPTS[type] || {};\n\n if (components.length === 0 || components.some((item) => loadedComponents.includes(item))) {\n const instances = once ? [propInstances[0]] : propInstances;\n scripts.push(\n ...instances.map((config = {}, index) => ({\n domain: `performance-${getPerformanceLabel(type)}`,\n id: index + 1,\n ...init({ ...config, hotel, loadedComponents }),\n type,\n })),\n );\n }\n });\n\n setReady(false);\n await Promise.all(scripts.map((config) => loadScript(config).catch(() => {})));\n setTypes(scripts.map(({ type } = {}) => type));\n setReady(true);\n };\n\n return null;\n};\n\nexport { PerformanceManager };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PerformanceManager.js","names":["_dataSources","require","_services","_ui","_react","_helpers","_PerformanceManager","_PerformanceManager2","_PerformanceManager3","_helpers2","_Core","_helpers3","MAX_COUNTER","COMPARE","GTM","PERFORMANCE","counter","memoizedEvents","memoizedPendingEvents","PerformanceManager","device","useDevice","track","trackRender","useMetrics","value","components","performance","store","useStore","consentMode","setConsentMode","useState","getConsentMode","ready","setReady","types","setTypes","hotel","finder","place","id","instanceId","locale","session","type","useEffect","window","Mirai","urlParameters","fetchUrlParams","location","search","metrics","ServiceFeatures","get","bannedMetrics","Object","entries","filter","_ref","map","_ref2","key","handleMetrics","_ref3","props","IS_PLAYWRIGHT","host","event","toUpperCase","trim","metric","split","includes","KPI_EVENTS","method","hotelId","mobile","Event","subscribe","COMPONENTS_EVENT","METRICS","unsubscribe","length","interval","setInterval","undefined","nextConsentMode","isGtm","provider","arguments","loadScripts","nextMemoizedPendingEvents","forEach","execute","CONSENT_MODE_ANSWERED","requeue","push","executeEvent","clearInterval","_getPerformance","config","isHotel","getPerformance","handleEvent","_ref4","currentConsentMode","availableProviders","CONSENT_MODE_REQUIRED","EVENTS","_ref5","propProvider","callback","parseInt","some","item","keys","find","_ref6","response","label","concat","getPerformanceLabel","then","console","log","propConsentMode","loadedComponents","scripts","instances","propInstances","init","once","SCRIPTS","index","domain","Promise","all","loadScript","catch","exports"],"sources":["../../../src/contexts/PerformanceManager/PerformanceManager.jsx"],"sourcesContent":["import { Event, useMetrics, useStore } from '@mirai/data-sources';\nimport { ServiceFeatures } from '@mirai/services';\nimport { useDevice } from '@mirai/ui';\nimport { useEffect, useState } from 'react';\n\nimport { getConsentMode, getPerformanceLabel } from './helpers';\nimport { CONSENT_MODE_ANSWERED, CONSENT_MODE_REQUIRED, KPI_EVENTS } from './PerformanceManager.constants';\nimport { EVENTS } from './PerformanceManager.events';\nimport { SCRIPTS } from './PerformanceManager.scripts';\nimport { EVENT as COMPONENTS_EVENT } from '../../components/helpers';\nimport { PERFORMANCE } from '../../Core.constants';\nimport { fetchUrlParams, getPerformance, loadScript } from '../../helpers';\n\nconst MAX_COUNTER = 5;\nconst { COMPARE, GTM } = PERFORMANCE || {};\n\nlet counter = 0;\nlet memoizedEvents = [];\nlet memoizedPendingEvents = [];\n\nconst PerformanceManager = () => {\n const device = useDevice();\n const { track, trackRender } = useMetrics();\n const {\n value: { components = {}, performance = [], ...store },\n } = useStore();\n\n const [consentMode, setConsentMode] = useState(getConsentMode());\n const [ready, setReady] = useState(false);\n const [types, setTypes] = useState([]);\n\n const { hotel = {}, finder: { place } = {}, id: instanceId, locale, session, type } = store;\n\n useEffect(() => {\n //! TODO: temp fix for 123 compare for first phase\n window.Mirai.urlParameters = fetchUrlParams(location.search);\n\n const metrics = ServiceFeatures.get('metrics', hotel.id) || {};\n const bannedMetrics = Object.entries(metrics)\n .filter(([, value]) => value === false)\n .map(([key]) => key);\n\n const handleMetrics = ({ id, ...props }) => {\n if (!id || window.IS_PLAYWRIGHT || window.location.host === 'monalisa.mirai.com') return;\n const event = id.toUpperCase().trim();\n const [metric] = event.split(':');\n\n if (bannedMetrics.includes(metric) && !KPI_EVENTS.includes(event)) return;\n const method = event.includes('RENDER') ? trackRender : track;\n\n method(event, {\n ...props,\n hotelId: hotel.id,\n instanceId,\n locale,\n mobile: device.mobile,\n session,\n type,\n });\n };\n\n Event.subscribe(COMPONENTS_EVENT.METRICS, handleMetrics);\n\n return () => Event.unsubscribe(COMPONENTS_EVENT.METRICS, handleMetrics);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (consentMode && types.length > 0) return;\n\n const interval = setInterval(async () => {\n counter !== undefined && counter++;\n const nextConsentMode = getConsentMode(counter >= MAX_COUNTER);\n const isGtm = (provider) => [COMPARE, GTM].includes(provider);\n\n if (\n (nextConsentMode === undefined &&\n memoizedPendingEvents.filter(({ provider } = {}) => isGtm(provider)).length === 0) ||\n (!nextConsentMode && counter < MAX_COUNTER)\n )\n return;\n\n await loadScripts(\n performance.filter(({ type } = {}) => type !== COMPARE),\n nextConsentMode,\n );\n\n const nextMemoizedPendingEvents = [];\n memoizedPendingEvents.forEach((event = {}) => {\n const { provider } = event;\n const execute = nextConsentMode || (counter >= MAX_COUNTER && CONSENT_MODE_ANSWERED.includes(provider));\n const requeue = nextConsentMode === undefined && !isGtm(provider);\n\n if (!execute || requeue) {\n nextMemoizedPendingEvents.push(event);\n } else {\n executeEvent(event);\n\n if (!nextConsentMode && !isGtm(provider)) nextMemoizedPendingEvents.push(event);\n }\n });\n memoizedPendingEvents = nextMemoizedPendingEvents;\n if (nextConsentMode !== undefined) {\n counter = undefined;\n setConsentMode(nextConsentMode);\n }\n }, 1000);\n\n return () => clearInterval(interval);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [consentMode]);\n\n useEffect(() => {\n const { config, finder: { place: { id: [hotelId] = [], isHotel } = {} } = {} } = store;\n\n if (place && ready)\n loadScripts(getPerformance(config, isHotel ? hotelId : undefined)?.filter(({ type } = {}) => type !== COMPARE));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [place]);\n\n useEffect(() => {\n if (!ready) return;\n\n memoizedEvents.forEach((event) => executeEvent(event));\n memoizedEvents = [];\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ready]);\n\n useEffect(() => {\n const handleEvent = ({ event, ...value }) => {\n const currentConsentMode = getConsentMode();\n\n const availableProviders = performance\n .map(({ type } = {}) => type)\n .filter((type) => !(!currentConsentMode && CONSENT_MODE_ANSWERED.includes(type)))\n .filter((type) => currentConsentMode || !CONSENT_MODE_REQUIRED.includes(type));\n\n Object.entries(EVENTS[event]).forEach(([propProvider, callback = () => {}]) => {\n const provider = parseInt(propProvider);\n const props = { callback, event, provider, value };\n\n if (\n !currentConsentMode &&\n (!availableProviders.includes(provider) || (types.length > 0 && !types.includes(provider)))\n ) {\n if (counter === undefined && ready && CONSENT_MODE_ANSWERED.includes(provider)) executeEvent(props);\n else if (!memoizedPendingEvents.some((item) => item.event === event && item.provider === provider)) {\n memoizedPendingEvents.push(props);\n }\n } else if (ready) executeEvent(props);\n else memoizedEvents.push(props);\n });\n };\n\n Object.keys(EVENTS).forEach((event) => Event.subscribe(event, handleEvent));\n\n return () => Object.keys(EVENTS).forEach((event) => Event.unsubscribe(event, handleEvent));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [device, ready, store]);\n\n const executeEvent = ({ provider, callback, value, event } = {}) => {\n const config = performance.find(({ type }) => type === provider);\n const response = callback({ ...value, ...config, device, store });\n if (!response) return;\n\n const label = `⚡️ ${getPerformanceLabel(provider)} ${event}`;\n // eslint-disable-next-line no-console\n response.then ? response.then((value) => console.log(label, value)) : console.log(label, response);\n\n if (provider === GTM) {\n loadScripts(\n performance.filter(({ type } = {}) => type === COMPARE),\n consentMode,\n );\n }\n };\n\n const loadScripts = async (performance = [], propConsentMode = consentMode) => {\n const loadedComponents = Object.keys(components);\n\n const scripts = [];\n performance\n .filter(({ type } = {}) => propConsentMode === true || !CONSENT_MODE_REQUIRED.includes(type))\n .forEach(({ type, instances: propInstances = [] } = {}) => {\n const { components = [], init = () => {}, once = false } = SCRIPTS[type] || {};\n\n if (components.length === 0 || components.some((item) => loadedComponents.includes(item))) {\n const instances = once ? [propInstances[0]] : propInstances;\n scripts.push(\n ...instances.map((config = {}, index) => ({\n domain: `performance-${getPerformanceLabel(type)}`,\n id: index + 1,\n ...init({ ...config, hotel, loadedComponents }),\n type,\n })),\n );\n }\n });\n\n setReady(false);\n await Promise.all(scripts.map((config) => loadScript(config).catch(() => {})));\n setTypes(scripts.map(({ type } = {}) => type));\n setReady(true);\n };\n\n return null;\n};\n\nexport { PerformanceManager };\n"],"mappings":"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"}
|
|
@@ -7,6 +7,69 @@ exports.getPerformance = void 0;
|
|
|
7
7
|
var _helpers = require("../components/helpers");
|
|
8
8
|
var _Core = require("../Core.constants");
|
|
9
9
|
const MONALISA_ID = '100379008';
|
|
10
|
+
const DEFAULT_PERFORMANCE = [{
|
|
11
|
+
type: 1,
|
|
12
|
+
instances: [{
|
|
13
|
+
idAnalytics: 'G-EW4M987YRE',
|
|
14
|
+
propertyId: '337963856',
|
|
15
|
+
serviceAccount: 'ANALYTICS11',
|
|
16
|
+
id: 42011
|
|
17
|
+
}]
|
|
18
|
+
}, {
|
|
19
|
+
type: 2,
|
|
20
|
+
instances: [{
|
|
21
|
+
idAdwords: '604678444',
|
|
22
|
+
conversionLabel: 'S0SLCLqv8toBEKzSqqAC',
|
|
23
|
+
cookiePrefix: 'MIRAI',
|
|
24
|
+
id: 55146
|
|
25
|
+
}]
|
|
26
|
+
}, {
|
|
27
|
+
type: 3,
|
|
28
|
+
instances: [{
|
|
29
|
+
idGTM: 'GTM-M3CPG48',
|
|
30
|
+
id: 55265
|
|
31
|
+
}, {
|
|
32
|
+
idGTM: 'GTM-PZG8RRXL',
|
|
33
|
+
id: 55266
|
|
34
|
+
}, {
|
|
35
|
+
idGTM: 'GTM-M3CPG48',
|
|
36
|
+
id: 55267
|
|
37
|
+
}]
|
|
38
|
+
}, {
|
|
39
|
+
type: 4,
|
|
40
|
+
instances: [{
|
|
41
|
+
id: 47811
|
|
42
|
+
}]
|
|
43
|
+
}, {
|
|
44
|
+
type: 5,
|
|
45
|
+
instances: [{
|
|
46
|
+
pixelId: '999999999',
|
|
47
|
+
testEventCode: 'TEST9826',
|
|
48
|
+
id: 55182
|
|
49
|
+
}]
|
|
50
|
+
}, {
|
|
51
|
+
type: 6,
|
|
52
|
+
instances: [{
|
|
53
|
+
id: 55179
|
|
54
|
+
}]
|
|
55
|
+
}, {
|
|
56
|
+
type: 7,
|
|
57
|
+
instances: [{
|
|
58
|
+
idAffilired: '999999',
|
|
59
|
+
id: 55178
|
|
60
|
+
}]
|
|
61
|
+
}, {
|
|
62
|
+
type: 8,
|
|
63
|
+
instances: [{
|
|
64
|
+
idBing: '5979008',
|
|
65
|
+
id: 55180
|
|
66
|
+
}]
|
|
67
|
+
}, {
|
|
68
|
+
type: 9,
|
|
69
|
+
instances: [{
|
|
70
|
+
id: 42010
|
|
71
|
+
}]
|
|
72
|
+
}];
|
|
10
73
|
const getPerformance = function () {
|
|
11
74
|
let {
|
|
12
75
|
tracking: {
|
|
@@ -16,7 +79,7 @@ const getPerformance = function () {
|
|
|
16
79
|
} = {}
|
|
17
80
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
18
81
|
let hotelId = arguments.length > 1 ? arguments[1] : undefined;
|
|
19
|
-
if (!_helpers.IS_JEST && process.env.NODE_ENV !== 'production' && hotelId !== MONALISA_ID) return;
|
|
82
|
+
if (!_helpers.IS_JEST && process.env.NODE_ENV !== 'production' && hotelId !== MONALISA_ID) return DEFAULT_PERFORMANCE;
|
|
20
83
|
if (process.env.NODE_ENV === 'production' && hotelId === MONALISA_ID) return [];
|
|
21
84
|
|
|
22
85
|
// ! -- TODO: use of tracking should be a temporary approach ---------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPerformance.js","names":["_helpers","require","_Core","MONALISA_ID","getPerformance","tracking","trackingChain","trackingHotels","others","arguments","length","undefined","hotelId","IS_JEST","process","env","NODE_ENV","hotelTracking","find","idTokenProvider","
|
|
1
|
+
{"version":3,"file":"getPerformance.js","names":["_helpers","require","_Core","MONALISA_ID","DEFAULT_PERFORMANCE","type","instances","idAnalytics","propertyId","serviceAccount","id","idAdwords","conversionLabel","cookiePrefix","idGTM","pixelId","testEventCode","idAffilired","idBing","getPerformance","tracking","trackingChain","trackingHotels","others","arguments","length","undefined","hotelId","IS_JEST","process","env","NODE_ENV","hotelTracking","find","idTokenProvider","parseInt","Object","keys","forEach","key","filter","TRACKING","map","_ref","configuration","idTracking","exports"],"sources":["../../src/helpers/getPerformance.js"],"sourcesContent":["import { IS_JEST } from '../components/helpers';\nimport { TRACKING } from '../Core.constants';\n\nconst MONALISA_ID = '100379008';\n\nconst DEFAULT_PERFORMANCE = [\n {\n type: 1,\n instances: [{ idAnalytics: 'G-EW4M987YRE', propertyId: '337963856', serviceAccount: 'ANALYTICS11', id: 42011 }],\n },\n {\n type: 2,\n instances: [{ idAdwords: '604678444', conversionLabel: 'S0SLCLqv8toBEKzSqqAC', cookiePrefix: 'MIRAI', id: 55146 }],\n },\n {\n type: 3,\n instances: [\n { idGTM: 'GTM-M3CPG48', id: 55265 },\n { idGTM: 'GTM-PZG8RRXL', id: 55266 },\n { idGTM: 'GTM-M3CPG48', id: 55267 },\n ],\n },\n { type: 4, instances: [{ id: 47811 }] },\n { type: 5, instances: [{ pixelId: '999999999', testEventCode: 'TEST9826', id: 55182 }] },\n { type: 6, instances: [{ id: 55179 }] },\n { type: 7, instances: [{ idAffilired: '999999', id: 55178 }] },\n { type: 8, instances: [{ idBing: '5979008', id: 55180 }] },\n { type: 9, instances: [{ id: 42010 }] },\n];\n\nexport const getPerformance = ({ tracking: { trackingChain, trackingHotels, ...others } = {} } = {}, hotelId) => {\n if (!IS_JEST && process.env.NODE_ENV !== 'production' && hotelId !== MONALISA_ID) return DEFAULT_PERFORMANCE;\n\n if (process.env.NODE_ENV === 'production' && hotelId === MONALISA_ID) return [];\n\n // ! -- TODO: use of tracking should be a temporary approach ---------------------------------------------------------\n let tracking = others;\n\n if (trackingChain && trackingHotels) {\n tracking = { ...trackingChain };\n const hotelTracking = hotelId && trackingHotels.find(({ idTokenProvider: id } = {}) => id === parseInt(hotelId));\n\n hotelTracking &&\n Object.keys(tracking).forEach((key) => {\n tracking[key] = [...tracking[key], ...hotelTracking[key]];\n });\n }\n\n // ! -- TODO: Choose which one will load gtag\n return Object.keys(tracking).length > 0\n ? Object.keys(tracking)\n .filter((key) => !!TRACKING[key] && tracking[key].length > 0)\n .map((key) => ({\n type: TRACKING[key],\n instances: tracking[key].map(({ configuration = {}, id: idTracking }) => ({\n ...(configuration !== null ? configuration : {}),\n idTracking,\n })),\n }))\n : undefined;\n};\n"],"mappings":"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"}
|