@mirai/core 0.4.356 → 0.4.358

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.
@@ -7,9 +7,8 @@ exports.Finder = void 0;
7
7
  var _dataSources = require("@mirai/data-sources");
8
8
  var _locale = require("@mirai/locale");
9
9
  var _ui = require("@mirai/ui");
10
- var Sentry = _interopRequireWildcard(require("@sentry/react"));
11
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
- var _react2 = _interopRequireWildcard(require("react"));
11
+ var _react = _interopRequireWildcard(require("react"));
13
12
  var _components = require("./components");
14
13
  var _Finder = require("./Finder.compact");
15
14
  var _Finder2 = require("./Finder.constants");
@@ -22,9 +21,9 @@ var _prepareRoom = require("../../helpers/prepareRoom");
22
21
  var _shared__ = require("../__shared__");
23
22
  var _Occupation = require("../__shared__/Occupation/Occupation.constants");
24
23
  var _helpers3 = require("../helpers");
25
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
24
  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); }
27
25
  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; }
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
28
27
  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); } // ! TODO: Why we don't publish prepareRoom in ../../helpers
29
28
  const {
30
29
  CHAIN,
@@ -52,8 +51,8 @@ const Finder = _ref => {
52
51
  dateFormat,
53
52
  translate
54
53
  } = (0, _locale.useLocale)();
55
- const ref = (0, _react2.useRef)(null);
56
- const placesRef = (0, _react2.useRef)(null);
54
+ const ref = (0, _react.useRef)(null);
55
+ const placesRef = (0, _react.useRef)(null);
57
56
  const {
58
57
  set,
59
58
  value: {
@@ -68,15 +67,15 @@ const Finder = _ref => {
68
67
  ...store
69
68
  }
70
69
  } = (0, _dataSources.useStore)();
71
- const [currency, setCurrency] = (0, _react2.useState)();
72
- const [error, setError] = (0, _react2.useState)({});
73
- const [focus, setFocus] = (0, _react2.useState)();
74
- const [unavailability, setUnavailability] = (0, _react2.useState)();
75
- const [value, setValue] = (0, _react2.useState)((0, _helpers.parseValue)(storeFinder));
76
- const [visited, setVisited] = (0, _react2.useState)({});
77
- const [warning, setWarning] = (0, _react2.useState)();
78
- const [width, setWidth] = (0, _react2.useState)();
79
- (0, _react2.useEffect)(() => {
70
+ const [currency, setCurrency] = (0, _react.useState)();
71
+ const [error, setError] = (0, _react.useState)({});
72
+ const [focus, setFocus] = (0, _react.useState)();
73
+ const [unavailability, setUnavailability] = (0, _react.useState)();
74
+ const [value, setValue] = (0, _react.useState)((0, _helpers.parseValue)(storeFinder));
75
+ const [visited, setVisited] = (0, _react.useState)({});
76
+ const [warning, setWarning] = (0, _react.useState)();
77
+ const [width, setWidth] = (0, _react.useState)();
78
+ (0, _react.useEffect)(() => {
80
79
  if (skeleton) return;
81
80
  if (!(storeFinder !== null && storeFinder !== void 0 && storeFinder.occupation)) set({
82
81
  finder: {
@@ -104,7 +103,7 @@ const Finder = _ref => {
104
103
  };
105
104
  // eslint-disable-next-line react-hooks/exhaustive-deps
106
105
  }, []);
107
- (0, _react2.useEffect)(() => {
106
+ (0, _react.useEffect)(() => {
108
107
  const {
109
108
  current: el
110
109
  } = ref || {};
@@ -124,13 +123,13 @@ const Finder = _ref => {
124
123
 
125
124
  // eslint-disable-next-line react-hooks/exhaustive-deps
126
125
  }, [deviceWidth]);
127
- (0, _react2.useEffect)(() => {
126
+ (0, _react.useEffect)(() => {
128
127
  unavailability && setUnavailability({
129
128
  disabledDates: []
130
129
  });
131
130
  // eslint-disable-next-line react-hooks/exhaustive-deps
132
131
  }, [value === null || value === void 0 ? void 0 : value.occupation, value === null || value === void 0 ? void 0 : value.place]);
133
- (0, _react2.useEffect)(() => {
132
+ (0, _react.useEffect)(() => {
134
133
  const {
135
134
  place: {
136
135
  id: [hotelId] = [],
@@ -157,13 +156,13 @@ const Finder = _ref => {
157
156
  }
158
157
  // eslint-disable-next-line react-hooks/exhaustive-deps
159
158
  }, [value === null || value === void 0 ? void 0 : value.place]);
160
- (0, _react2.useEffect)(() => {
159
+ (0, _react.useEffect)(() => {
161
160
  !onSubmit && !skeleton && _dataSources.Event.publish(_helpers3.EVENT.FINDER_READY, {
162
161
  event: _helpers3.EVENT.FINDER_READY
163
162
  });
164
163
  // eslint-disable-next-line react-hooks/exhaustive-deps
165
164
  }, []);
166
- (0, _react2.useEffect)(() => {
165
+ (0, _react.useEffect)(() => {
167
166
  const handleFinder = function () {
168
167
  let {
169
168
  calendar,
@@ -182,8 +181,8 @@ const Finder = _ref => {
182
181
  }, [locale, propCurrency]);
183
182
 
184
183
  // ! TODO: Why this one? Is not responsibility of <Finder> change the currency when prop changes.
185
- (0, _react2.useEffect)(() => setCurrency(propCurrency), [propCurrency]);
186
- (0, _react2.useEffect)(() => {
184
+ (0, _react.useEffect)(() => setCurrency(propCurrency), [propCurrency]);
185
+ (0, _react.useEffect)(() => {
187
186
  const next = (0, _helpers.parseValue)({
188
187
  ...value,
189
188
  ...storeFinder
@@ -195,7 +194,7 @@ const Finder = _ref => {
195
194
  },
196
195
  // eslint-disable-next-line react-hooks/exhaustive-deps
197
196
  [storeFinder]);
198
- (0, _react2.useEffect)(() => {
197
+ (0, _react.useEffect)(() => {
199
198
  focus && setVisited({
200
199
  ...visited,
201
200
  ["".concat(focus)]: true
@@ -252,10 +251,6 @@ const Finder = _ref => {
252
251
  setWarning(false);
253
252
  setFocus(undefined);
254
253
  if (!((_nextValue = nextValue) !== null && _nextValue !== void 0 && _nextValue.occupation)) {
255
- try {
256
- Sentry.captureMessage("FINDER:No occupation. NextValue: ".concat(JSON.stringify(nextValue)));
257
- // eslint-disable-next-line no-empty
258
- } catch {}
259
254
  nextValue = {
260
255
  ...nextValue,
261
256
  occupation: [(0, _prepareRoom.prepareRoom)(_Occupation.DATASOURCE)]
@@ -349,20 +344,20 @@ const Finder = _ref => {
349
344
  calendar,
350
345
  occupation
351
346
  });
352
- return /*#__PURE__*/_react2.default.createElement(_react2.default.Fragment, null, is.compacted && /*#__PURE__*/_react2.default.createElement(_Finder.Compact, _extends({
347
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, is.compacted && /*#__PURE__*/_react.default.createElement(_Finder.Compact, _extends({
353
348
  dataSource,
354
349
  skeleton,
355
350
  value,
356
351
  onExpand: setFocus,
357
352
  onSubmit: !is.rates || is.rates && !isMobile ? handleSubmit : undefined
358
- }, others)), /*#__PURE__*/_react2.default.createElement(_ui.View, {
353
+ }, others)), /*#__PURE__*/_react.default.createElement(_ui.View, {
359
354
  ref: ref,
360
355
  role: "finder",
361
356
  row: !is.column,
362
357
  tag: "finder",
363
358
  testId: others.testId,
364
359
  className: !is.compacted ? (0, _ui.styles)(style.finder, is.column && style.column, is.expand && style.expand, others.className) : undefined
365
- }, (dataSource.places || skeleton && type === CHAIN) && /*#__PURE__*/_react2.default.createElement(_react2.default.Fragment, null, /*#__PURE__*/_react2.default.createElement(_shared__.Field, _extends({}, _Finder2.FIELD.PLACE, {
360
+ }, (dataSource.places || skeleton && type === CHAIN) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_shared__.Field, _extends({}, _Finder2.FIELD.PLACE, {
366
361
  caption: (0, _helpers.getPlaceCaption)(place.value, (_dataSource$places = dataSource.places) === null || _dataSource$places === void 0 ? void 0 : _dataSource$places.options),
367
362
  label: translate(_Finder3.L10N.LABEL_WHERE),
368
363
  expanded: (dataSource === null || dataSource === void 0 ? void 0 : (_dataSource$places2 = dataSource.places) === null || _dataSource$places2 === void 0 ? void 0 : (_dataSource$places2$o = _dataSource$places2.options) === null || _dataSource$places2$o === void 0 ? void 0 : _dataSource$places2$o.length) >= _Finder2.PLACES_LENGTH_LIMIT,
@@ -370,7 +365,7 @@ const Finder = _ref => {
370
365
  placeholder: (dataSource === null || dataSource === void 0 ? void 0 : (_dataSource$places3 = dataSource.places) === null || _dataSource$places3 === void 0 ? void 0 : _dataSource$places3.placeholder) || translate(_Finder3.L10N.LABEL_WHERE_PLACEHOLDER),
371
366
  visible: focus === _Finder2.VIEW.PLACE,
372
367
  onPress: () => setFocus(focus !== _Finder2.VIEW.PLACE ? _Finder2.VIEW.PLACE : undefined)
373
- }, fieldProps), /*#__PURE__*/_react2.default.createElement(_components.Places, {
368
+ }, fieldProps), /*#__PURE__*/_react.default.createElement(_components.Places, {
374
369
  autoColumn: focus === _Finder2.VIEW.PLACE,
375
370
  dataSource: dataSource === null || dataSource === void 0 ? void 0 : (_dataSource$places4 = dataSource.places) === null || _dataSource$places4 === void 0 ? void 0 : _dataSource$places4.options,
376
371
  text: compacted ? text : undefined,
@@ -379,9 +374,9 @@ const Finder = _ref => {
379
374
  onChange: handlePlaceChange,
380
375
  onSubmit: is.rates ? handleSubmit : undefined,
381
376
  testId: others.testId ? "".concat(others.testId, "-places") : undefined
382
- })), is.inline && /*#__PURE__*/_react2.default.createElement(_ui.View, {
377
+ })), is.inline && /*#__PURE__*/_react.default.createElement(_ui.View, {
383
378
  className: style.separator
384
- })), /*#__PURE__*/_react2.default.createElement(_shared__.Field, _extends({}, _Finder2.FIELD.CALENDAR, {
379
+ })), /*#__PURE__*/_react.default.createElement(_shared__.Field, _extends({}, _Finder2.FIELD.CALENDAR, {
385
380
  caption: calendar.length ? (0, _helpers3.getCalendarCaption)(calendar, translate, dateFormat) : undefined,
386
381
  centered: type !== HOTEL && !is.column,
387
382
  label: translate(_Finder3.L10N.LABEL_WHEN),
@@ -389,7 +384,7 @@ const Finder = _ref => {
389
384
  visible: focus === _Finder2.VIEW.CALENDAR,
390
385
  onPress: () => setFocus(focus !== _Finder2.VIEW.CALENDAR ? _Finder2.VIEW.CALENDAR : undefined),
391
386
  testId: others.testId ? "".concat(others.testId, "-calendar-field") : undefined
392
- }, fieldProps), /*#__PURE__*/_react2.default.createElement(_components.Calendar, _extends({}, (0, _helpers.parseCalendarProps)(dataSource.calendar, id, occupation, type, unavailability, dataSource.variants), {
387
+ }, fieldProps), /*#__PURE__*/_react.default.createElement(_components.Calendar, _extends({}, (0, _helpers.parseCalendarProps)(dataSource.calendar, id, occupation, type, unavailability, dataSource.variants), {
393
388
  id: id,
394
389
  currency: currency || propCurrency,
395
390
  locale: locale,
@@ -419,9 +414,9 @@ const Finder = _ref => {
419
414
  calendar: undefined
420
415
  }),
421
416
  testId: others.testId ? "".concat(others.testId, "-calendar") : undefined
422
- }))), is.inline && /*#__PURE__*/_react2.default.createElement(_ui.View, {
417
+ }))), is.inline && /*#__PURE__*/_react.default.createElement(_ui.View, {
423
418
  className: style.separator
424
- }), /*#__PURE__*/_react2.default.createElement(_shared__.FieldOccupation, _extends({
419
+ }), /*#__PURE__*/_react.default.createElement(_shared__.FieldOccupation, _extends({
425
420
  dataSource: (0, _helpers.getOccupationDataSource)({
426
421
  ...dataSource,
427
422
  places: (_dataSource$places5 = dataSource.places) === null || _dataSource$places5 === void 0 ? void 0 : _dataSource$places5.options,
@@ -451,9 +446,9 @@ const Finder = _ref => {
451
446
  if (focus !== _Finder2.VIEW.OCCUPATION) setFocus(_Finder2.VIEW.OCCUPATION);
452
447
  },
453
448
  testId: others.testId ? "".concat(others.testId, "-occupation") : undefined
454
- }, fieldProps)), is.inline && /*#__PURE__*/_react2.default.createElement(_ui.View, {
449
+ }, fieldProps)), is.inline && /*#__PURE__*/_react.default.createElement(_ui.View, {
455
450
  className: style.separator
456
- }), /*#__PURE__*/_react2.default.createElement(_shared__.FieldPromocode, _extends({
451
+ }), /*#__PURE__*/_react.default.createElement(_shared__.FieldPromocode, _extends({
457
452
  value: promocode,
458
453
  visible: focus === _Finder2.VIEW.PROMOCODE,
459
454
  onChange: (promocode, event) => handleChange(_Finder2.VIEW.PROMOCODE, promocode, event),
@@ -462,11 +457,11 @@ const Finder = _ref => {
462
457
  onPress: isMobile && is.compacted ? () => setFocus(focus !== _Finder2.VIEW.PROMOCODE ? _Finder2.VIEW.PROMOCODE : undefined) : undefined,
463
458
  onSubmit: isMobile && is.compacted ? is.rates ? handleSubmit : () => setFocus() : undefined,
464
459
  testId: others.testId ? "".concat(others.testId, "-promocode") : undefined
465
- }, fieldProps)), !is.compacted ? skeleton ? /*#__PURE__*/_react2.default.createElement(_shared__.Skeleton, {
460
+ }, fieldProps)), !is.compacted ? skeleton ? /*#__PURE__*/_react.default.createElement(_shared__.Skeleton, {
466
461
  large: true,
467
462
  button: true,
468
463
  words: 1
469
- }) : /*#__PURE__*/_react2.default.createElement(_ui.Button, {
464
+ }) : /*#__PURE__*/_react.default.createElement(_ui.Button, {
470
465
  disabled: skeleton,
471
466
  large: true,
472
467
  tabindex: 4,
@@ -475,7 +470,7 @@ const Finder = _ref => {
475
470
  onPress: handleSubmit,
476
471
  className: (0, _ui.styles)(style.button, icon && !is.column && style.withIcon),
477
472
  testId: others.testId ? "".concat(others.testId, "-submit") : undefined
478
- }, icon && !is.column ? /*#__PURE__*/_react2.default.createElement(_ui.Icon, {
473
+ }, icon && !is.column ? /*#__PURE__*/_react.default.createElement(_ui.Icon, {
479
474
  value: _helpers3.ICON.SEARCH
480
475
  }) : text || translate(_Finder3.L10N.ACTION_SEARCH)) : null));
481
476
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Finder.js","names":["_dataSources","require","_locale","_ui","Sentry","_interopRequireWildcard","_propTypes","_interopRequireDefault","_react2","_components","_Finder","_Finder2","_Finder3","style","_helpers","_getAvailableWidth","_helpers2","_prepareRoom","_shared__","_Occupation","_helpers3","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","CHAIN","HOTEL","TYPE","timeoutMetricChange","Finder","_ref","_dataSource$places","_dataSource$places2","_dataSource$places2$o","_dataSource$places3","_dataSource$places4","_dataSource$places5","compacted","icon","layout","metrics","storage","text","onChange","onSubmit","others","isMobile","width","deviceWidth","useDevice","dateFormat","translate","useLocale","ref","useRef","placesRef","value","components","currency","propCurrency","finder","storeFinder","forwarder","locale","promo","skeleton","type","store","useStore","setCurrency","useState","error","setError","focus","setFocus","unavailability","setUnavailability","setValue","parseValue","visited","setVisited","warning","setWarning","setWidth","useEffect","occupation","prepareRoom","DATASOURCE","is","debug","console","log","window","addEventListener","handlePageShow","document","handleClickOutside","Event","publish","EVENT","METRICS","id","removeEventListener","current","el","column","observer","IntersectionObserver","isIntersecting","undefined","getAvailableWidth","threshold","observe","unobserve","disabledDates","place","hotelId","isHotel","nextPromocode","rates","variants","code","next","promocode","publishChange","_fetchUrlParams","fetchUrlParams","location","search","fetchCurrency","FINDER_READY","event","handleFinder","calendar","handleSubmit","nextValue","subscribe","FINDER","unsubscribe","JSON","stringify","concat","handleChange","field","fieldValue","clearTimeout","setTimeout","_ref$current","contains","persisted","handlePlaceChange","VIEW","PLACE","assistant","_value$calendar","_nextValue","dataSource","places","CALENDAR","firstError","keys","filter","captureMessage","forwarderUrl","getForwarderUrl","setStorage","href","includes","forEach","FINDER_FIELD_CHANGE","previousValue","ids","getDataSource","hotel","idHotel","separatorColor","fieldVariant","Theme","inline","expand","fieldProps","hasPlaces","getFieldPosition","L10N","ACTION_SEARCH","ACTION_APPLY","variant","className","maxWidth","createElement","Fragment","Compact","onExpand","View","role","row","tag","testId","styles","Field","FIELD","caption","getPlaceCaption","options","label","LABEL_WHERE","expanded","PLACES_LENGTH_LIMIT","markdown","placeholder","LABEL_WHERE_PLACEHOLDER","visible","onPress","Places","autoColumn","separator","getCalendarCaption","centered","LABEL_WHEN","Calendar","parseCalendarProps","rangeMinDays","top","nextCalendar","onError","onValid","FieldOccupation","getOccupationDataSource","hotels","getHotels","placesSource","maxRooms","OCCUPATION","withWarning","onWarning","FieldPromocode","PROMOCODE","onEnter","onLeave","Skeleton","large","button","words","Button","disabled","tabindex","wide","withIcon","Icon","ICON","SEARCH","exports","displayName","propTypes","PropTypes","bool","oneOf","string","func"],"sources":["../../../src/components/Finder/Finder.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Icon, Button, styles, Theme, useDevice, View } from '@mirai/ui';\nimport * as Sentry from '@sentry/react';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { Calendar, Places } from './components';\nimport { Compact } from './Finder.compact';\nimport { FIELD, PLACES_LENGTH_LIMIT, TYPE, VIEW } from './Finder.constants';\nimport { L10N } from './Finder.l10n';\nimport * as style from './Finder.module.css';\nimport {\n getDataSource,\n getFieldPosition,\n getForwarderUrl,\n getHotels,\n getOccupationDataSource,\n getPlaceCaption,\n parseCalendarProps,\n parseValue,\n} from './helpers';\nimport { setStorage } from './helpers';\nimport { getAvailableWidth } from './helpers/getAvailableWidth';\nimport { fetchCurrency, fetchUrlParams } from '../../helpers';\n// ! TODO: Why we don't publish prepareRoom in ../../helpers\nimport { prepareRoom } from '../../helpers/prepareRoom';\nimport { Field, FieldOccupation, FieldPromocode } from '../__shared__';\nimport { Skeleton } from '../__shared__';\nimport { DATASOURCE } from '../__shared__/Occupation/Occupation.constants';\nimport { EVENT, getCalendarCaption, ICON } from '../helpers';\n\nconst { CHAIN, HOTEL } = TYPE;\nlet timeoutMetricChange;\n\nconst Finder = ({\n compacted = false,\n icon = false,\n layout,\n metrics = 'finder',\n storage = true,\n text,\n onChange = () => {},\n onSubmit,\n ...others\n}) => {\n const { isMobile, width: deviceWidth } = useDevice();\n const { dateFormat, translate } = useLocale();\n const ref = useRef(null);\n const placesRef = useRef(null);\n const {\n set,\n value: {\n components = {},\n currency: propCurrency,\n finder: storeFinder,\n forwarder,\n locale,\n promo = {},\n skeleton = false,\n type = HOTEL,\n ...store\n },\n } = useStore();\n\n const [currency, setCurrency] = useState();\n const [error, setError] = useState({});\n const [focus, setFocus] = useState();\n const [unavailability, setUnavailability] = useState();\n const [value, setValue] = useState(parseValue(storeFinder));\n const [visited, setVisited] = useState({});\n const [warning, setWarning] = useState();\n const [width, setWidth] = useState();\n\n useEffect(() => {\n if (skeleton) return;\n\n if (!storeFinder?.occupation) set({ finder: { ...storeFinder, occupation: [prepareRoom(DATASOURCE)] } });\n\n if (is.debug && !storeFinder?.occupation) {\n // eslint-disable-next-line no-console\n console.log({ finder: { ...storeFinder, occupation: [prepareRoom(DATASOURCE)] } });\n }\n window.addEventListener('pageshow', handlePageShow);\n !isMobile && document.addEventListener('click', handleClickOutside, true);\n\n if (metrics === 'finder') Event.publish(EVENT.METRICS, { id: 'FINDER:RENDER' });\n\n return () => {\n window.removeEventListener('pageshow', handlePageShow);\n !isMobile && document.removeEventListener('click', handleClickOutside, true);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const { current: el } = ref || {};\n if (!is.column || !el) return;\n\n const observer = new IntersectionObserver(\n ([{ isIntersecting } = {}] = []) => isIntersecting && setWidth(getAvailableWidth(el)),\n { threshold: 0.1 },\n );\n if (el) observer.observe(el);\n\n return () => {\n if (el) observer.unobserve(el);\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [deviceWidth]);\n\n useEffect(() => {\n unavailability && setUnavailability({ disabledDates: [] });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value?.occupation, value?.place]);\n\n useEffect(() => {\n const { place: { id: [hotelId] = [], isHotel } = {} } = value || {};\n const nextPromocode = !is.rates && ((promo.variants && promo.variants[hotelId]) || promo.code);\n if (nextPromocode) {\n const next = { ...value, promocode: nextPromocode };\n setValue(next);\n publishChange(next);\n }\n\n if (isHotel) {\n if (!fetchUrlParams(window.location.search)?.currency) {\n // ! TODO: Same here, this should be responsibility of <Core>...\n (async () => {\n setCurrency(await fetchCurrency(hotelId));\n })();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value?.place]);\n\n useEffect(() => {\n !onSubmit && !skeleton && Event.publish(EVENT.FINDER_READY, { event: EVENT.FINDER_READY });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const handleFinder = ({ calendar, finder, focus } = {}) => {\n if (finder) return handleSubmit({ nextValue: finder });\n\n setUnavailability(calendar);\n if (focus) setFocus(focus);\n };\n Event.subscribe(EVENT.FINDER, handleFinder);\n\n return () => Event.unsubscribe(EVENT.FINDER, handleFinder);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale, propCurrency]);\n\n // ! TODO: Why this one? Is not responsibility of <Finder> change the currency when prop changes.\n useEffect(() => setCurrency(propCurrency), [propCurrency]);\n\n useEffect(\n () => {\n const next = parseValue({ ...value, ...storeFinder });\n if (JSON.stringify(value) !== JSON.stringify(next)) {\n setValue(next);\n publishChange(next);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [storeFinder],\n );\n\n useEffect(() => {\n focus && setVisited({ ...visited, [`${focus}`]: true });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [focus]);\n\n const handleChange = (field, fieldValue) => {\n const next = { ...value, [field]: fieldValue };\n\n setValue(next);\n onChange(next, field, fieldValue);\n publishChange(next);\n\n if (metrics) {\n clearTimeout(timeoutMetricChange);\n timeoutMetricChange = setTimeout(() => Event.publish(EVENT.METRICS, { id: `${metrics}:CHANGE:${field}` }), 500);\n }\n };\n\n const handleClickOutside = ({ target } = {}) => !ref.current?.contains(target) && setFocus(undefined);\n\n const handlePageShow = ({ persisted } = {}) => {\n if (!persisted) return;\n\n setFocus();\n setVisited();\n\n const next = parseValue(storeFinder);\n setValue(next);\n publishChange(next);\n };\n\n const handlePlaceChange = (place) => {\n setWarning(false);\n handleChange(VIEW.PLACE, place);\n !is.rates && assistant();\n };\n\n const handleSubmit = ({ nextValue = value } = {}) => {\n if (dataSource.places && value.place === undefined) return setFocus(VIEW.PLACE);\n\n if (value.calendar?.length !== 2) return setFocus(VIEW.CALENDAR);\n\n const [firstError] = Object.keys(error).filter((key) => !!error[key]);\n if (firstError) return setFocus(firstError);\n\n setWarning(false);\n setFocus(undefined);\n if (!nextValue?.occupation) {\n try {\n Sentry.captureMessage(`FINDER:No occupation. NextValue: ${JSON.stringify(nextValue)}`);\n // eslint-disable-next-line no-empty\n } catch {}\n nextValue = { ...nextValue, occupation: [prepareRoom(DATASOURCE)] };\n }\n set({ finder: nextValue });\n const forwarderUrl = getForwarderUrl({ ...nextValue, currency, forwarder, locale, store, type });\n\n storage && setStorage(nextValue, store?.id);\n if (onSubmit) onSubmit({ ...nextValue, forwarderUrl });\n else window.location.href = forwarderUrl;\n\n if (metrics) Event.publish(EVENT.METRICS, { id: `${metrics}:SUBMIT`, ...nextValue });\n };\n\n const assistant = () => {\n const { calendar = [] } = value;\n if (focus === VIEW.PLACE && !visited.calendar && calendar.length !== 2) setFocus(VIEW.CALENDAR);\n else if (!compacted || [VIEW.CALENDAR, VIEW.PLACE].includes(focus)) setFocus(undefined);\n };\n\n const publishChange = (next) =>\n Object.keys(next || []).forEach((field) => {\n if (JSON.stringify(value[field]) !== JSON.stringify(next[field])) {\n Event.publish(EVENT.FINDER_FIELD_CHANGE, { field, previousValue: value[field], value: next[field] });\n }\n });\n\n const { calendar = [], occupation, place = {}, promocode } = value;\n const { id: ids = [], isHotel } = place;\n const dataSource = getDataSource({ type, ...store });\n const { hotel: { id: idHotel } = {} } = store;\n const id = type !== HOTEL ? (isHotel && ids.length === 1 ? ids[0] : undefined) : idHotel;\n\n const { separatorColor = '', ...fieldVariant } = Theme.get('--mirai-finder-field-');\n\n const is = {\n inline: separatorColor !== 'transparent',\n column: layout === 'column',\n expand: !isMobile && layout === 'expand',\n compacted: layout !== 'column' && (isMobile || (compacted && !focus)),\n debug: store?.id === '500138',\n rates: components.rates !== undefined,\n };\n\n const fieldProps = {\n compacted: is.compacted,\n hasPlaces: !!dataSource.places,\n inline: is.inline,\n ...(!is.compacted ? getFieldPosition(ref, placesRef) : undefined),\n text: is.rates ? translate(L10N.ACTION_SEARCH) : translate(L10N.ACTION_APPLY),\n variant: Object.keys(fieldVariant).length ? fieldVariant : undefined,\n className: style.field,\n style: is.column && width ? { maxWidth: width, width } : undefined,\n };\n\n // eslint-disable-next-line no-console\n is.debug && console.log({ place, calendar, occupation });\n\n return (\n <>\n {is.compacted && (\n <Compact\n {...{ dataSource, skeleton, value }}\n onExpand={setFocus}\n onSubmit={!is.rates || (is.rates && !isMobile) ? handleSubmit : undefined}\n {...others}\n />\n )}\n\n <View\n ref={ref}\n role=\"finder\"\n row={!is.column}\n tag=\"finder\"\n testId={others.testId}\n className={\n !is.compacted\n ? styles(style.finder, is.column && style.column, is.expand && style.expand, others.className)\n : undefined\n }\n >\n {(dataSource.places || (skeleton && type === CHAIN)) && (\n <>\n <Field\n {...FIELD.PLACE}\n caption={getPlaceCaption(place.value, dataSource.places?.options)}\n label={translate(L10N.LABEL_WHERE)}\n expanded={dataSource?.places?.options?.length >= PLACES_LENGTH_LIMIT}\n markdown={false}\n placeholder={dataSource?.places?.placeholder || translate(L10N.LABEL_WHERE_PLACEHOLDER)}\n visible={focus === VIEW.PLACE}\n onPress={() => setFocus(focus !== VIEW.PLACE ? VIEW.PLACE : undefined)}\n {...fieldProps}\n >\n <Places\n autoColumn={focus === VIEW.PLACE}\n dataSource={dataSource?.places?.options}\n text={compacted ? text : undefined}\n ref={placesRef}\n value={place.value}\n onChange={handlePlaceChange}\n onSubmit={is.rates ? handleSubmit : undefined}\n testId={others.testId ? `${others.testId}-places` : undefined}\n />\n </Field>\n\n {is.inline && <View className={style.separator} />}\n </>\n )}\n\n <Field\n {...FIELD.CALENDAR}\n caption={calendar.length ? getCalendarCaption(calendar, translate, dateFormat) : undefined}\n centered={type !== HOTEL && !is.column}\n label={translate(L10N.LABEL_WHEN)}\n placeholder={getCalendarCaption(undefined, translate, dateFormat)}\n visible={focus === VIEW.CALENDAR}\n onPress={() => setFocus(focus !== VIEW.CALENDAR ? VIEW.CALENDAR : undefined)}\n testId={others.testId ? `${others.testId}-calendar-field` : undefined}\n {...fieldProps}\n >\n <Calendar\n {...parseCalendarProps(dataSource.calendar, id, occupation, type, unavailability, dataSource.variants)}\n id={id}\n currency={currency || propCurrency}\n locale={locale}\n rangeMinDays={1}\n text={compacted ? text : undefined}\n top={fieldProps?.top}\n skeleton={skeleton}\n unavailability={unavailability}\n value={calendar}\n onChange={(nextCalendar, event) => {\n handleChange(VIEW.CALENDAR, nextCalendar, event);\n if (nextCalendar.length === 2 && !is.rates) {\n setError({ ...error, calendar: undefined });\n assistant();\n }\n }}\n onError={(calendar) => setError({ ...error, calendar })}\n onSubmit={is.rates ? handleSubmit : undefined}\n onValid={() => setError({ ...error, calendar: undefined })}\n testId={others.testId ? `${others.testId}-calendar` : undefined}\n />\n </Field>\n\n {is.inline && <View className={style.separator} />}\n\n <FieldOccupation\n dataSource={getOccupationDataSource({\n ...dataSource,\n places: dataSource.places?.options,\n place: place?.value,\n })}\n hotels={getHotels(dataSource.placesSource, place.value)}\n maxRooms={dataSource.maxRooms}\n text={compacted ? text : undefined}\n value={occupation}\n visible={focus === VIEW.OCCUPATION}\n withWarning={warning}\n onChange={(occupation, event) => handleChange(VIEW.OCCUPATION, occupation, event)}\n onError={(occupation) => {\n if (!isMobile && focus !== VIEW.OCCUPATION) setFocus(VIEW.OCCUPATION);\n setError({ ...error, occupation });\n }}\n onPress={() => setFocus(focus !== VIEW.OCCUPATION ? VIEW.OCCUPATION : undefined)}\n onSubmit={is.rates ? handleSubmit : isMobile && is.compacted ? () => setFocus() : undefined}\n onValid={() => setError({ ...error, occupation: undefined })}\n onWarning={() => {\n if (focus !== VIEW.OCCUPATION) setFocus(VIEW.OCCUPATION);\n }}\n testId={others.testId ? `${others.testId}-occupation` : undefined}\n {...fieldProps}\n />\n\n {is.inline && <View className={style.separator} />}\n\n <FieldPromocode\n value={promocode}\n visible={focus === VIEW.PROMOCODE}\n onChange={(promocode, event) => handleChange(VIEW.PROMOCODE, promocode, event)}\n onEnter={!is.compacted ? () => setFocus(VIEW.PROMOCODE) : undefined}\n onLeave={!is.compacted ? () => setFocus(undefined) : undefined}\n onPress={\n isMobile && is.compacted ? () => setFocus(focus !== VIEW.PROMOCODE ? VIEW.PROMOCODE : undefined) : undefined\n }\n onSubmit={isMobile && is.compacted ? (is.rates ? handleSubmit : () => setFocus()) : undefined}\n testId={others.testId ? `${others.testId}-promocode` : undefined}\n {...fieldProps}\n />\n\n {!is.compacted ? (\n skeleton ? (\n <Skeleton large button words={1} />\n ) : (\n <Button\n disabled={skeleton}\n large\n tabindex={4}\n role=\"finder-button\"\n wide={is.column}\n onPress={handleSubmit}\n className={styles(style.button, icon && !is.column && style.withIcon)}\n testId={others.testId ? `${others.testId}-submit` : undefined}\n >\n {icon && !is.column ? <Icon value={ICON.SEARCH} /> : text || translate(L10N.ACTION_SEARCH)}\n </Button>\n )\n ) : null}\n </View>\n </>\n );\n};\n\nFinder.displayName = 'Mirai:Core:Finder';\n\nFinder.propTypes = {\n compacted: PropTypes.bool,\n icon: PropTypes.bool,\n layout: PropTypes.oneOf(['column', 'expand']),\n metrics: PropTypes.string,\n storage: PropTypes.bool,\n text: PropTypes.string,\n onChange: PropTypes.func,\n onSubmit: PropTypes.func,\n};\n\nexport { Finder };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Finder.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Finder","_Finder2","_Finder3","style","_helpers","_getAvailableWidth","_helpers2","_prepareRoom","_shared__","_Occupation","_helpers3","_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","CHAIN","HOTEL","TYPE","timeoutMetricChange","Finder","_ref","_dataSource$places","_dataSource$places2","_dataSource$places2$o","_dataSource$places3","_dataSource$places4","_dataSource$places5","compacted","icon","layout","metrics","storage","text","onChange","onSubmit","others","isMobile","width","deviceWidth","useDevice","dateFormat","translate","useLocale","ref","useRef","placesRef","value","components","currency","propCurrency","finder","storeFinder","forwarder","locale","promo","skeleton","type","store","useStore","setCurrency","useState","error","setError","focus","setFocus","unavailability","setUnavailability","setValue","parseValue","visited","setVisited","warning","setWarning","setWidth","useEffect","occupation","prepareRoom","DATASOURCE","is","debug","console","log","window","addEventListener","handlePageShow","document","handleClickOutside","Event","publish","EVENT","METRICS","id","removeEventListener","current","el","column","observer","IntersectionObserver","isIntersecting","undefined","getAvailableWidth","threshold","observe","unobserve","disabledDates","place","hotelId","isHotel","nextPromocode","rates","variants","code","next","promocode","publishChange","_fetchUrlParams","fetchUrlParams","location","search","fetchCurrency","FINDER_READY","event","handleFinder","calendar","handleSubmit","nextValue","subscribe","FINDER","unsubscribe","JSON","stringify","concat","handleChange","field","fieldValue","clearTimeout","setTimeout","_ref$current","contains","persisted","handlePlaceChange","VIEW","PLACE","assistant","_value$calendar","_nextValue","dataSource","places","CALENDAR","firstError","keys","filter","forwarderUrl","getForwarderUrl","setStorage","href","includes","forEach","FINDER_FIELD_CHANGE","previousValue","ids","getDataSource","hotel","idHotel","separatorColor","fieldVariant","Theme","inline","expand","fieldProps","hasPlaces","getFieldPosition","L10N","ACTION_SEARCH","ACTION_APPLY","variant","className","maxWidth","createElement","Fragment","Compact","onExpand","View","role","row","tag","testId","styles","Field","FIELD","caption","getPlaceCaption","options","label","LABEL_WHERE","expanded","PLACES_LENGTH_LIMIT","markdown","placeholder","LABEL_WHERE_PLACEHOLDER","visible","onPress","Places","autoColumn","separator","getCalendarCaption","centered","LABEL_WHEN","Calendar","parseCalendarProps","rangeMinDays","top","nextCalendar","onError","onValid","FieldOccupation","getOccupationDataSource","hotels","getHotels","placesSource","maxRooms","OCCUPATION","withWarning","onWarning","FieldPromocode","PROMOCODE","onEnter","onLeave","Skeleton","large","button","words","Button","disabled","tabindex","wide","withIcon","Icon","ICON","SEARCH","exports","displayName","propTypes","PropTypes","bool","oneOf","string","func"],"sources":["../../../src/components/Finder/Finder.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Icon, Button, styles, Theme, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { Calendar, Places } from './components';\nimport { Compact } from './Finder.compact';\nimport { FIELD, PLACES_LENGTH_LIMIT, TYPE, VIEW } from './Finder.constants';\nimport { L10N } from './Finder.l10n';\nimport * as style from './Finder.module.css';\nimport {\n getDataSource,\n getFieldPosition,\n getForwarderUrl,\n getHotels,\n getOccupationDataSource,\n getPlaceCaption,\n parseCalendarProps,\n parseValue,\n} from './helpers';\nimport { setStorage } from './helpers';\nimport { getAvailableWidth } from './helpers/getAvailableWidth';\nimport { fetchCurrency, fetchUrlParams } from '../../helpers';\n// ! TODO: Why we don't publish prepareRoom in ../../helpers\nimport { prepareRoom } from '../../helpers/prepareRoom';\nimport { Field, FieldOccupation, FieldPromocode } from '../__shared__';\nimport { Skeleton } from '../__shared__';\nimport { DATASOURCE } from '../__shared__/Occupation/Occupation.constants';\nimport { EVENT, getCalendarCaption, ICON } from '../helpers';\n\nconst { CHAIN, HOTEL } = TYPE;\nlet timeoutMetricChange;\n\nconst Finder = ({\n compacted = false,\n icon = false,\n layout,\n metrics = 'finder',\n storage = true,\n text,\n onChange = () => {},\n onSubmit,\n ...others\n}) => {\n const { isMobile, width: deviceWidth } = useDevice();\n const { dateFormat, translate } = useLocale();\n const ref = useRef(null);\n const placesRef = useRef(null);\n const {\n set,\n value: {\n components = {},\n currency: propCurrency,\n finder: storeFinder,\n forwarder,\n locale,\n promo = {},\n skeleton = false,\n type = HOTEL,\n ...store\n },\n } = useStore();\n\n const [currency, setCurrency] = useState();\n const [error, setError] = useState({});\n const [focus, setFocus] = useState();\n const [unavailability, setUnavailability] = useState();\n const [value, setValue] = useState(parseValue(storeFinder));\n const [visited, setVisited] = useState({});\n const [warning, setWarning] = useState();\n const [width, setWidth] = useState();\n\n useEffect(() => {\n if (skeleton) return;\n\n if (!storeFinder?.occupation) set({ finder: { ...storeFinder, occupation: [prepareRoom(DATASOURCE)] } });\n\n if (is.debug && !storeFinder?.occupation) {\n // eslint-disable-next-line no-console\n console.log({ finder: { ...storeFinder, occupation: [prepareRoom(DATASOURCE)] } });\n }\n window.addEventListener('pageshow', handlePageShow);\n !isMobile && document.addEventListener('click', handleClickOutside, true);\n\n if (metrics === 'finder') Event.publish(EVENT.METRICS, { id: 'FINDER:RENDER' });\n\n return () => {\n window.removeEventListener('pageshow', handlePageShow);\n !isMobile && document.removeEventListener('click', handleClickOutside, true);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const { current: el } = ref || {};\n if (!is.column || !el) return;\n\n const observer = new IntersectionObserver(\n ([{ isIntersecting } = {}] = []) => isIntersecting && setWidth(getAvailableWidth(el)),\n { threshold: 0.1 },\n );\n if (el) observer.observe(el);\n\n return () => {\n if (el) observer.unobserve(el);\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [deviceWidth]);\n\n useEffect(() => {\n unavailability && setUnavailability({ disabledDates: [] });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value?.occupation, value?.place]);\n\n useEffect(() => {\n const { place: { id: [hotelId] = [], isHotel } = {} } = value || {};\n const nextPromocode = !is.rates && ((promo.variants && promo.variants[hotelId]) || promo.code);\n if (nextPromocode) {\n const next = { ...value, promocode: nextPromocode };\n setValue(next);\n publishChange(next);\n }\n\n if (isHotel) {\n if (!fetchUrlParams(window.location.search)?.currency) {\n // ! TODO: Same here, this should be responsibility of <Core>...\n (async () => {\n setCurrency(await fetchCurrency(hotelId));\n })();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value?.place]);\n\n useEffect(() => {\n !onSubmit && !skeleton && Event.publish(EVENT.FINDER_READY, { event: EVENT.FINDER_READY });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const handleFinder = ({ calendar, finder, focus } = {}) => {\n if (finder) return handleSubmit({ nextValue: finder });\n\n setUnavailability(calendar);\n if (focus) setFocus(focus);\n };\n Event.subscribe(EVENT.FINDER, handleFinder);\n\n return () => Event.unsubscribe(EVENT.FINDER, handleFinder);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale, propCurrency]);\n\n // ! TODO: Why this one? Is not responsibility of <Finder> change the currency when prop changes.\n useEffect(() => setCurrency(propCurrency), [propCurrency]);\n\n useEffect(\n () => {\n const next = parseValue({ ...value, ...storeFinder });\n if (JSON.stringify(value) !== JSON.stringify(next)) {\n setValue(next);\n publishChange(next);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [storeFinder],\n );\n\n useEffect(() => {\n focus && setVisited({ ...visited, [`${focus}`]: true });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [focus]);\n\n const handleChange = (field, fieldValue) => {\n const next = { ...value, [field]: fieldValue };\n\n setValue(next);\n onChange(next, field, fieldValue);\n publishChange(next);\n\n if (metrics) {\n clearTimeout(timeoutMetricChange);\n timeoutMetricChange = setTimeout(() => Event.publish(EVENT.METRICS, { id: `${metrics}:CHANGE:${field}` }), 500);\n }\n };\n\n const handleClickOutside = ({ target } = {}) => !ref.current?.contains(target) && setFocus(undefined);\n\n const handlePageShow = ({ persisted } = {}) => {\n if (!persisted) return;\n\n setFocus();\n setVisited();\n\n const next = parseValue(storeFinder);\n setValue(next);\n publishChange(next);\n };\n\n const handlePlaceChange = (place) => {\n setWarning(false);\n handleChange(VIEW.PLACE, place);\n !is.rates && assistant();\n };\n\n const handleSubmit = ({ nextValue = value } = {}) => {\n if (dataSource.places && value.place === undefined) return setFocus(VIEW.PLACE);\n\n if (value.calendar?.length !== 2) return setFocus(VIEW.CALENDAR);\n\n const [firstError] = Object.keys(error).filter((key) => !!error[key]);\n if (firstError) return setFocus(firstError);\n\n setWarning(false);\n setFocus(undefined);\n if (!nextValue?.occupation) {\n nextValue = { ...nextValue, occupation: [prepareRoom(DATASOURCE)] };\n }\n set({ finder: nextValue });\n const forwarderUrl = getForwarderUrl({ ...nextValue, currency, forwarder, locale, store, type });\n\n storage && setStorage(nextValue, store?.id);\n if (onSubmit) onSubmit({ ...nextValue, forwarderUrl });\n else window.location.href = forwarderUrl;\n\n if (metrics) Event.publish(EVENT.METRICS, { id: `${metrics}:SUBMIT`, ...nextValue });\n };\n\n const assistant = () => {\n const { calendar = [] } = value;\n if (focus === VIEW.PLACE && !visited.calendar && calendar.length !== 2) setFocus(VIEW.CALENDAR);\n else if (!compacted || [VIEW.CALENDAR, VIEW.PLACE].includes(focus)) setFocus(undefined);\n };\n\n const publishChange = (next) =>\n Object.keys(next || []).forEach((field) => {\n if (JSON.stringify(value[field]) !== JSON.stringify(next[field])) {\n Event.publish(EVENT.FINDER_FIELD_CHANGE, { field, previousValue: value[field], value: next[field] });\n }\n });\n\n const { calendar = [], occupation, place = {}, promocode } = value;\n const { id: ids = [], isHotel } = place;\n const dataSource = getDataSource({ type, ...store });\n const { hotel: { id: idHotel } = {} } = store;\n const id = type !== HOTEL ? (isHotel && ids.length === 1 ? ids[0] : undefined) : idHotel;\n\n const { separatorColor = '', ...fieldVariant } = Theme.get('--mirai-finder-field-');\n\n const is = {\n inline: separatorColor !== 'transparent',\n column: layout === 'column',\n expand: !isMobile && layout === 'expand',\n compacted: layout !== 'column' && (isMobile || (compacted && !focus)),\n debug: store?.id === '500138',\n rates: components.rates !== undefined,\n };\n\n const fieldProps = {\n compacted: is.compacted,\n hasPlaces: !!dataSource.places,\n inline: is.inline,\n ...(!is.compacted ? getFieldPosition(ref, placesRef) : undefined),\n text: is.rates ? translate(L10N.ACTION_SEARCH) : translate(L10N.ACTION_APPLY),\n variant: Object.keys(fieldVariant).length ? fieldVariant : undefined,\n className: style.field,\n style: is.column && width ? { maxWidth: width, width } : undefined,\n };\n\n // eslint-disable-next-line no-console\n is.debug && console.log({ place, calendar, occupation });\n\n return (\n <>\n {is.compacted && (\n <Compact\n {...{ dataSource, skeleton, value }}\n onExpand={setFocus}\n onSubmit={!is.rates || (is.rates && !isMobile) ? handleSubmit : undefined}\n {...others}\n />\n )}\n\n <View\n ref={ref}\n role=\"finder\"\n row={!is.column}\n tag=\"finder\"\n testId={others.testId}\n className={\n !is.compacted\n ? styles(style.finder, is.column && style.column, is.expand && style.expand, others.className)\n : undefined\n }\n >\n {(dataSource.places || (skeleton && type === CHAIN)) && (\n <>\n <Field\n {...FIELD.PLACE}\n caption={getPlaceCaption(place.value, dataSource.places?.options)}\n label={translate(L10N.LABEL_WHERE)}\n expanded={dataSource?.places?.options?.length >= PLACES_LENGTH_LIMIT}\n markdown={false}\n placeholder={dataSource?.places?.placeholder || translate(L10N.LABEL_WHERE_PLACEHOLDER)}\n visible={focus === VIEW.PLACE}\n onPress={() => setFocus(focus !== VIEW.PLACE ? VIEW.PLACE : undefined)}\n {...fieldProps}\n >\n <Places\n autoColumn={focus === VIEW.PLACE}\n dataSource={dataSource?.places?.options}\n text={compacted ? text : undefined}\n ref={placesRef}\n value={place.value}\n onChange={handlePlaceChange}\n onSubmit={is.rates ? handleSubmit : undefined}\n testId={others.testId ? `${others.testId}-places` : undefined}\n />\n </Field>\n\n {is.inline && <View className={style.separator} />}\n </>\n )}\n\n <Field\n {...FIELD.CALENDAR}\n caption={calendar.length ? getCalendarCaption(calendar, translate, dateFormat) : undefined}\n centered={type !== HOTEL && !is.column}\n label={translate(L10N.LABEL_WHEN)}\n placeholder={getCalendarCaption(undefined, translate, dateFormat)}\n visible={focus === VIEW.CALENDAR}\n onPress={() => setFocus(focus !== VIEW.CALENDAR ? VIEW.CALENDAR : undefined)}\n testId={others.testId ? `${others.testId}-calendar-field` : undefined}\n {...fieldProps}\n >\n <Calendar\n {...parseCalendarProps(dataSource.calendar, id, occupation, type, unavailability, dataSource.variants)}\n id={id}\n currency={currency || propCurrency}\n locale={locale}\n rangeMinDays={1}\n text={compacted ? text : undefined}\n top={fieldProps?.top}\n skeleton={skeleton}\n unavailability={unavailability}\n value={calendar}\n onChange={(nextCalendar, event) => {\n handleChange(VIEW.CALENDAR, nextCalendar, event);\n if (nextCalendar.length === 2 && !is.rates) {\n setError({ ...error, calendar: undefined });\n assistant();\n }\n }}\n onError={(calendar) => setError({ ...error, calendar })}\n onSubmit={is.rates ? handleSubmit : undefined}\n onValid={() => setError({ ...error, calendar: undefined })}\n testId={others.testId ? `${others.testId}-calendar` : undefined}\n />\n </Field>\n\n {is.inline && <View className={style.separator} />}\n\n <FieldOccupation\n dataSource={getOccupationDataSource({\n ...dataSource,\n places: dataSource.places?.options,\n place: place?.value,\n })}\n hotels={getHotels(dataSource.placesSource, place.value)}\n maxRooms={dataSource.maxRooms}\n text={compacted ? text : undefined}\n value={occupation}\n visible={focus === VIEW.OCCUPATION}\n withWarning={warning}\n onChange={(occupation, event) => handleChange(VIEW.OCCUPATION, occupation, event)}\n onError={(occupation) => {\n if (!isMobile && focus !== VIEW.OCCUPATION) setFocus(VIEW.OCCUPATION);\n setError({ ...error, occupation });\n }}\n onPress={() => setFocus(focus !== VIEW.OCCUPATION ? VIEW.OCCUPATION : undefined)}\n onSubmit={is.rates ? handleSubmit : isMobile && is.compacted ? () => setFocus() : undefined}\n onValid={() => setError({ ...error, occupation: undefined })}\n onWarning={() => {\n if (focus !== VIEW.OCCUPATION) setFocus(VIEW.OCCUPATION);\n }}\n testId={others.testId ? `${others.testId}-occupation` : undefined}\n {...fieldProps}\n />\n\n {is.inline && <View className={style.separator} />}\n\n <FieldPromocode\n value={promocode}\n visible={focus === VIEW.PROMOCODE}\n onChange={(promocode, event) => handleChange(VIEW.PROMOCODE, promocode, event)}\n onEnter={!is.compacted ? () => setFocus(VIEW.PROMOCODE) : undefined}\n onLeave={!is.compacted ? () => setFocus(undefined) : undefined}\n onPress={\n isMobile && is.compacted ? () => setFocus(focus !== VIEW.PROMOCODE ? VIEW.PROMOCODE : undefined) : undefined\n }\n onSubmit={isMobile && is.compacted ? (is.rates ? handleSubmit : () => setFocus()) : undefined}\n testId={others.testId ? `${others.testId}-promocode` : undefined}\n {...fieldProps}\n />\n\n {!is.compacted ? (\n skeleton ? (\n <Skeleton large button words={1} />\n ) : (\n <Button\n disabled={skeleton}\n large\n tabindex={4}\n role=\"finder-button\"\n wide={is.column}\n onPress={handleSubmit}\n className={styles(style.button, icon && !is.column && style.withIcon)}\n testId={others.testId ? `${others.testId}-submit` : undefined}\n >\n {icon && !is.column ? <Icon value={ICON.SEARCH} /> : text || translate(L10N.ACTION_SEARCH)}\n </Button>\n )\n ) : null}\n </View>\n </>\n );\n};\n\nFinder.displayName = 'Mirai:Core:Finder';\n\nFinder.propTypes = {\n compacted: PropTypes.bool,\n icon: PropTypes.bool,\n layout: PropTypes.oneOf(['column', 'expand']),\n metrics: PropTypes.string,\n storage: PropTypes.bool,\n text: PropTypes.string,\n onChange: PropTypes.func,\n onSubmit: PropTypes.func,\n};\n\nexport { Finder };\n"],"mappings":"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"}
@@ -129,13 +129,7 @@ const PerformanceManager = () => {
129
129
  } = {}
130
130
  } = store;
131
131
  if (place) {
132
- var _getPerformance;
133
- setPerformance((_getPerformance = (0, _helpers3.getPerformance)(config, isHotel ? hotelId : undefined)) === null || _getPerformance === void 0 ? void 0 : _getPerformance.filter(function () {
134
- let {
135
- type
136
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
137
- return type !== COMPARE;
138
- }));
132
+ setPerformance((0, _helpers3.getPerformance)(config, isHotel ? hotelId : undefined));
139
133
  }
140
134
  // eslint-disable-next-line react-hooks/exhaustive-deps
141
135
  }, [place]);
@@ -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","memoizedPendingEvents","PerformanceManager","device","useDevice","track","trackRender","useMetrics","value","components","performance","storePerformance","store","useStore","consentMode","setConsentMode","useState","getConsentMode","setPerformance","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","interval","setInterval","undefined","nextConsentMode","isGtm","provider","arguments","length","nextMemoizedPendingEvents","forEach","execute","CONSENT_MODE_ANSWERED","requeue","push","executeEvent","clearInterval","config","isHotel","_getPerformance","getPerformance","handleEvent","_ref4","currentConsentMode","availableProviders","CONSENT_MODE_REQUIRED","EVENTS","_ref5","propProvider","callback","parseInt","some","item","keys","loadScripts","then","find","_ref6","response","label","concat","getPerformanceLabel","console","log","propConsentMode","loadedComponents","scripts","instances","propInstances","init","once","SCRIPTS","index","domain","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 memoizedPendingEvents = [];\n\nconst PerformanceManager = () => {\n const device = useDevice();\n const { track, trackRender } = useMetrics();\n const {\n value: { components = {}, performance: storePerformance = [], ...store },\n } = useStore();\n\n const [consentMode, setConsentMode] = useState(getConsentMode());\n const [performance, setPerformance] = useState(storePerformance);\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) 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 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, nextConsentMode);\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) {\n setPerformance(\n getPerformance(config, isHotel ? hotelId : undefined)?.filter(({ type } = {}) => type !== COMPARE),\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [place]);\n\n useEffect(() => {\n const handleEvent = ({ event, ...value }) => {\n const currentConsentMode = getConsentMode(true);\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 (!currentConsentMode && !availableProviders.includes(provider)) {\n if (counter === undefined && CONSENT_MODE_ANSWERED.includes(provider)) {\n executeEvent(props);\n } else if (!memoizedPendingEvents.some((item) => item.event === event && item.provider === provider)) {\n memoizedPendingEvents.push(props);\n }\n } else executeEvent(props, currentConsentMode);\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, performance, store]);\n\n const executeEvent = ({ provider, callback, value, event } = {}, nextConsentMode = consentMode) => {\n loadScripts(\n performance.filter(({ type } = {}) => type === provider && type !== COMPARE),\n nextConsentMode,\n ).then(() => {\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 nextConsentMode,\n );\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, instanceId, loadedComponents, place }),\n type,\n })),\n );\n }\n });\n\n for (let index = 0; index < scripts.length; index++) {\n await loadScript(scripts[index]).catch(() => {});\n }\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","memoizedPendingEvents","PerformanceManager","device","useDevice","track","trackRender","useMetrics","value","components","performance","storePerformance","store","useStore","consentMode","setConsentMode","useState","getConsentMode","setPerformance","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","interval","setInterval","undefined","nextConsentMode","isGtm","provider","arguments","length","nextMemoizedPendingEvents","forEach","execute","CONSENT_MODE_ANSWERED","requeue","push","executeEvent","clearInterval","config","isHotel","getPerformance","handleEvent","_ref4","currentConsentMode","availableProviders","CONSENT_MODE_REQUIRED","EVENTS","_ref5","propProvider","callback","parseInt","some","item","keys","loadScripts","then","find","_ref6","response","label","concat","getPerformanceLabel","console","log","propConsentMode","loadedComponents","scripts","instances","propInstances","init","once","SCRIPTS","index","domain","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 memoizedPendingEvents = [];\n\nconst PerformanceManager = () => {\n const device = useDevice();\n const { track, trackRender } = useMetrics();\n const {\n value: { components = {}, performance: storePerformance = [], ...store },\n } = useStore();\n\n const [consentMode, setConsentMode] = useState(getConsentMode());\n const [performance, setPerformance] = useState(storePerformance);\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) 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 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, nextConsentMode);\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) {\n setPerformance(getPerformance(config, isHotel ? hotelId : undefined));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [place]);\n\n useEffect(() => {\n const handleEvent = ({ event, ...value }) => {\n const currentConsentMode = getConsentMode(true);\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 (!currentConsentMode && !availableProviders.includes(provider)) {\n if (counter === undefined && CONSENT_MODE_ANSWERED.includes(provider)) {\n executeEvent(props);\n } else if (!memoizedPendingEvents.some((item) => item.event === event && item.provider === provider)) {\n memoizedPendingEvents.push(props);\n }\n } else executeEvent(props, currentConsentMode);\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, performance, store]);\n\n const executeEvent = ({ provider, callback, value, event } = {}, nextConsentMode = consentMode) => {\n loadScripts(\n performance.filter(({ type } = {}) => type === provider && type !== COMPARE),\n nextConsentMode,\n ).then(() => {\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 nextConsentMode,\n );\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, instanceId, loadedComponents, place }),\n type,\n })),\n );\n }\n });\n\n for (let index = 0; index < scripts.length; index++) {\n await loadScript(scripts[index]).catch(() => {});\n }\n };\n\n return null;\n};\n\nexport { PerformanceManager };\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,GAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,mBAAA,GAAAL,OAAA;AACA,IAAAM,oBAAA,GAAAN,OAAA;AACA,IAAAO,oBAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,KAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AAEA,MAAMW,WAAW,GAAG,CAAC;AACrB,MAAM;EAAEC,OAAO;EAAEC;AAAI,CAAC,GAAGC,iBAAW,IAAI,CAAC,CAAC;AAE1C,IAAIC,OAAO,GAAG,CAAC;AACf,IAAIC,qBAAqB,GAAG,EAAE;AAE9B,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;EAC/B,MAAMC,MAAM,GAAG,IAAAC,aAAS,EAAC,CAAC;EAC1B,MAAM;IAAEC,KAAK;IAAEC;EAAY,CAAC,GAAG,IAAAC,uBAAU,EAAC,CAAC;EAC3C,MAAM;IACJC,KAAK,EAAE;MAAEC,UAAU,GAAG,CAAC,CAAC;MAAEC,WAAW,EAAEC,gBAAgB,GAAG,EAAE;MAAE,GAAGC;IAAM;EACzE,CAAC,GAAG,IAAAC,qBAAQ,EAAC,CAAC;EAEd,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAAC,IAAAC,uBAAc,EAAC,CAAC,CAAC;EAChE,MAAM,CAACP,WAAW,EAAEQ,cAAc,CAAC,GAAG,IAAAF,eAAQ,EAACL,gBAAgB,CAAC;EAEhE,MAAM;IAAEQ,KAAK,GAAG,CAAC,CAAC;IAAEC,MAAM,EAAE;MAAEC;IAAM,CAAC,GAAG,CAAC,CAAC;IAAEC,EAAE,EAAEC,UAAU;IAAEC,MAAM;IAAEC,OAAO;IAAEC;EAAK,CAAC,GAAGd,KAAK;EAE3F,IAAAe,gBAAS,EAAC,MAAM;IACd;IACAC,MAAM,CAACC,KAAK,CAACC,aAAa,GAAG,IAAAC,wBAAc,EAACC,QAAQ,CAACC,MAAM,CAAC;IAE5D,MAAMC,OAAO,GAAGC,yBAAe,CAACC,GAAG,CAAC,SAAS,EAAEjB,KAAK,CAACG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAMe,aAAa,GAAGC,MAAM,CAACC,OAAO,CAACL,OAAO,CAAC,CAC1CM,MAAM,CAACC,IAAA;MAAA,IAAC,GAAGjC,KAAK,CAAC,GAAAiC,IAAA;MAAA,OAAKjC,KAAK,KAAK,KAAK;IAAA,EAAC,CACtCkC,GAAG,CAACC,KAAA;MAAA,IAAC,CAACC,GAAG,CAAC,GAAAD,KAAA;MAAA,OAAKC,GAAG;IAAA,EAAC;IAEtB,MAAMC,aAAa,GAAGC,KAAA,IAAsB;MAAA,IAArB;QAAExB,EAAE;QAAE,GAAGyB;MAAM,CAAC,GAAAD,KAAA;MACrC,IAAI,CAACxB,EAAE,IAAIM,MAAM,CAACoB,aAAa,IAAIpB,MAAM,CAACI,QAAQ,CAACiB,IAAI,KAAK,oBAAoB,EAAE;MAClF,MAAMC,KAAK,GAAG5B,EAAE,CAAC6B,WAAW,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC;MACrC,MAAM,CAACC,MAAM,CAAC,GAAGH,KAAK,CAACI,KAAK,CAAC,GAAG,CAAC;MAEjC,IAAIjB,aAAa,CAACkB,QAAQ,CAACF,MAAM,CAAC,IAAI,CAACG,8BAAU,CAACD,QAAQ,CAACL,KAAK,CAAC,EAAE;MACnE,MAAMO,MAAM,GAAGP,KAAK,CAACK,QAAQ,CAAC,QAAQ,CAAC,GAAGjD,WAAW,GAAGD,KAAK;MAE7DoD,MAAM,CAACP,KAAK,EAAE;QACZ,GAAGH,KAAK;QACRW,OAAO,EAAEvC,KAAK,CAACG,EAAE;QACjBC,UAAU;QACVC,MAAM;QACNmC,MAAM,EAAExD,MAAM,CAACwD,MAAM;QACrBlC,OAAO;QACPC;MACF,CAAC,CAAC;IACJ,CAAC;IAEDkC,kBAAK,CAACC,SAAS,CAACC,eAAgB,CAACC,OAAO,EAAElB,aAAa,CAAC;IAExD,OAAO,MAAMe,kBAAK,CAACI,WAAW,CAACF,eAAgB,CAACC,OAAO,EAAElB,aAAa,CAAC;IACvE;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAlB,gBAAS,EAAC,MAAM;IACd,IAAIb,WAAW,EAAE;IAEjB,MAAMmD,QAAQ,GAAGC,WAAW,CAAC,YAAY;MACvClE,OAAO,KAAKmE,SAAS,IAAInE,OAAO,EAAE;MAClC,MAAMoE,eAAe,GAAG,IAAAnD,uBAAc,EAACjB,OAAO,IAAIJ,WAAW,CAAC;MAC9D,MAAMyE,KAAK,GAAIC,QAAQ,IAAK,CAACzE,OAAO,EAAEC,GAAG,CAAC,CAACyD,QAAQ,CAACe,QAAQ,CAAC;MAE7D,IACGF,eAAe,KAAKD,SAAS,IAC5BlE,qBAAqB,CAACuC,MAAM,CAAC;QAAA,IAAC;UAAE8B;QAAS,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;QAAA,OAAKF,KAAK,CAACC,QAAQ,CAAC;MAAA,EAAC,CAACE,MAAM,KAAK,CAAC,IAClF,CAACJ,eAAe,IAAIpE,OAAO,GAAGJ,WAAY,EAE3C;MAEF,MAAM6E,yBAAyB,GAAG,EAAE;MACpCxE,qBAAqB,CAACyE,OAAO,CAAC,YAAgB;QAAA,IAAfxB,KAAK,GAAAqB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;QACvC,MAAM;UAAED;QAAS,CAAC,GAAGpB,KAAK;QAC1B,MAAMyB,OAAO,GAAGP,eAAe,IAAKpE,OAAO,IAAIJ,WAAW,IAAIgF,yCAAqB,CAACrB,QAAQ,CAACe,QAAQ,CAAE;QACvG,MAAMO,OAAO,GAAGT,eAAe,KAAKD,SAAS,IAAI,CAACE,KAAK,CAACC,QAAQ,CAAC;QAEjE,IAAI,CAACK,OAAO,IAAIE,OAAO,EAAE;UACvBJ,yBAAyB,CAACK,IAAI,CAAC5B,KAAK,CAAC;QACvC,CAAC,MAAM;UACL6B,YAAY,CAAC7B,KAAK,EAAEkB,eAAe,CAAC;UAEpC,IAAI,CAACA,eAAe,IAAI,CAACC,KAAK,CAACC,QAAQ,CAAC,EAAEG,yBAAyB,CAACK,IAAI,CAAC5B,KAAK,CAAC;QACjF;MACF,CAAC,CAAC;MACFjD,qBAAqB,GAAGwE,yBAAyB;MACjD,IAAIL,eAAe,KAAKD,SAAS,EAAE;QACjCnE,OAAO,GAAGmE,SAAS;QACnBpD,cAAc,CAACqD,eAAe,CAAC;MACjC;IACF,CAAC,EAAE,IAAI,CAAC;IAER,OAAO,MAAMY,aAAa,CAACf,QAAQ,CAAC;IACpC;EACF,CAAC,EAAE,CAACnD,WAAW,CAAC,CAAC;EAEjB,IAAAa,gBAAS,EAAC,MAAM;IACd,MAAM;MAAEsD,MAAM;MAAE7D,MAAM,EAAE;QAAEC,KAAK,EAAE;UAAEC,EAAE,EAAE,CAACoC,OAAO,CAAC,GAAG,EAAE;UAAEwB;QAAQ,CAAC,GAAG,CAAC;MAAE,CAAC,GAAG,CAAC;IAAE,CAAC,GAAGtE,KAAK;IAEtF,IAAIS,KAAK,EAAE;MACTH,cAAc,CAAC,IAAAiE,wBAAc,EAACF,MAAM,EAAEC,OAAO,GAAGxB,OAAO,GAAGS,SAAS,CAAC,CAAC;IACvE;IACA;EACF,CAAC,EAAE,CAAC9C,KAAK,CAAC,CAAC;EAEX,IAAAM,gBAAS,EAAC,MAAM;IACd,MAAMyD,WAAW,GAAGC,KAAA,IAAyB;MAAA,IAAxB;QAAEnC,KAAK;QAAE,GAAG1C;MAAM,CAAC,GAAA6E,KAAA;MACtC,MAAMC,kBAAkB,GAAG,IAAArE,uBAAc,EAAC,IAAI,CAAC;MAE/C,MAAMsE,kBAAkB,GAAG7E,WAAW,CACnCgC,GAAG,CAAC;QAAA,IAAC;UAAEhB;QAAK,CAAC,GAAA6C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;QAAA,OAAK7C,IAAI;MAAA,EAAC,CAC5Bc,MAAM,CAAEd,IAAI,IAAK,EAAE,CAAC4D,kBAAkB,IAAIV,yCAAqB,CAACrB,QAAQ,CAAC7B,IAAI,CAAC,CAAC,CAAC,CAChFc,MAAM,CAAEd,IAAI,IAAK4D,kBAAkB,IAAI,CAACE,yCAAqB,CAACjC,QAAQ,CAAC7B,IAAI,CAAC,CAAC;MAEhFY,MAAM,CAACC,OAAO,CAACkD,2BAAM,CAACvC,KAAK,CAAC,CAAC,CAACwB,OAAO,CAACgB,KAAA,IAAyC;QAAA,IAAxC,CAACC,YAAY,EAAEC,QAAQ,GAAGA,CAAA,KAAM,CAAC,CAAC,CAAC,GAAAF,KAAA;QACxE,MAAMpB,QAAQ,GAAGuB,QAAQ,CAACF,YAAY,CAAC;QACvC,MAAM5C,KAAK,GAAG;UAAE6C,QAAQ;UAAE1C,KAAK;UAAEoB,QAAQ;UAAE9D;QAAM,CAAC;QAElD,IAAI,CAAC8E,kBAAkB,IAAI,CAACC,kBAAkB,CAAChC,QAAQ,CAACe,QAAQ,CAAC,EAAE;UACjE,IAAItE,OAAO,KAAKmE,SAAS,IAAIS,yCAAqB,CAACrB,QAAQ,CAACe,QAAQ,CAAC,EAAE;YACrES,YAAY,CAAChC,KAAK,CAAC;UACrB,CAAC,MAAM,IAAI,CAAC9C,qBAAqB,CAAC6F,IAAI,CAAEC,IAAI,IAAKA,IAAI,CAAC7C,KAAK,KAAKA,KAAK,IAAI6C,IAAI,CAACzB,QAAQ,KAAKA,QAAQ,CAAC,EAAE;YACpGrE,qBAAqB,CAAC6E,IAAI,CAAC/B,KAAK,CAAC;UACnC;QACF,CAAC,MAAMgC,YAAY,CAAChC,KAAK,EAAEuC,kBAAkB,CAAC;MAChD,CAAC,CAAC;IACJ,CAAC;IAEDhD,MAAM,CAAC0D,IAAI,CAACP,2BAAM,CAAC,CAACf,OAAO,CAAExB,KAAK,IAAKU,kBAAK,CAACC,SAAS,CAACX,KAAK,EAAEkC,WAAW,CAAC,CAAC;IAE3E,OAAO,MAAM9C,MAAM,CAAC0D,IAAI,CAACP,2BAAM,CAAC,CAACf,OAAO,CAAExB,KAAK,IAAKU,kBAAK,CAACI,WAAW,CAACd,KAAK,EAAEkC,WAAW,CAAC,CAAC;IAC1F;EACF,CAAC,EAAE,CAACjF,MAAM,EAAEO,WAAW,EAAEE,KAAK,CAAC,CAAC;EAEhC,MAAMmE,YAAY,GAAG,SAAAA,CAAA,EAA8E;IAAA,IAA7E;MAAET,QAAQ;MAAEsB,QAAQ;MAAEpF,KAAK;MAAE0C;IAAM,CAAC,GAAAqB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;IAAA,IAAEH,eAAe,GAAAG,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAGzD,WAAW;IAC5FmF,WAAW,CACTvF,WAAW,CAAC8B,MAAM,CAAC;MAAA,IAAC;QAAEd;MAAK,CAAC,GAAA6C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;MAAA,OAAK7C,IAAI,KAAK4C,QAAQ,IAAI5C,IAAI,KAAK7B,OAAO;IAAA,EAAC,EAC5EuE,eACF,CAAC,CAAC8B,IAAI,CAAC,MAAM;MACX,MAAMjB,MAAM,GAAGvE,WAAW,CAACyF,IAAI,CAACC,KAAA;QAAA,IAAC;UAAE1E;QAAK,CAAC,GAAA0E,KAAA;QAAA,OAAK1E,IAAI,KAAK4C,QAAQ;MAAA,EAAC;MAChE,MAAM+B,QAAQ,GAAGT,QAAQ,CAAC;QAAE,GAAGpF,KAAK;QAAE,GAAGyE,MAAM;QAAE9E,MAAM;QAAES;MAAM,CAAC,CAAC;MACjE,IAAI,CAACyF,QAAQ,EAAE;MAEf,MAAMC,KAAK,mBAAAC,MAAA,CAAS,IAAAC,4BAAmB,EAAClC,QAAQ,CAAC,OAAAiC,MAAA,CAAIrD,KAAK,CAAE;MAC5D;MACAmD,QAAQ,CAACH,IAAI,GAAGG,QAAQ,CAACH,IAAI,CAAE1F,KAAK,IAAKiG,OAAO,CAACC,GAAG,CAACJ,KAAK,EAAE9F,KAAK,CAAC,CAAC,GAAGiG,OAAO,CAACC,GAAG,CAACJ,KAAK,EAAED,QAAQ,CAAC;MAElG,IAAI/B,QAAQ,KAAKxE,GAAG,EAAE;QACpBmG,WAAW,CACTvF,WAAW,CAAC8B,MAAM,CAAC;UAAA,IAAC;YAAEd;UAAK,CAAC,GAAA6C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;UAAA,OAAK7C,IAAI,KAAK7B,OAAO;QAAA,EAAC,EACvDuE,eACF,CAAC;MACH;IACF,CAAC,CAAC;EACJ,CAAC;EAED,MAAM6B,WAAW,GAAG,eAAAA,CAAA,EAA2D;IAAA,IAApDvF,WAAW,GAAA6D,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,EAAE;IAAA,IAAEoC,eAAe,GAAApC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAGzD,WAAW;IACxE,MAAM8F,gBAAgB,GAAGtE,MAAM,CAAC0D,IAAI,CAACvF,UAAU,CAAC;IAEhD,MAAMoG,OAAO,GAAG,EAAE;IAClBnG,WAAW,CACR8B,MAAM,CAAC;MAAA,IAAC;QAAEd;MAAK,CAAC,GAAA6C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;MAAA,OAAKoC,eAAe,KAAK,IAAI,IAAI,CAACnB,yCAAqB,CAACjC,QAAQ,CAAC7B,IAAI,CAAC;IAAA,EAAC,CAC5FgD,OAAO,CAAC,YAAkD;MAAA,IAAjD;QAAEhD,IAAI;QAAEoF,SAAS,EAAEC,aAAa,GAAG;MAAG,CAAC,GAAAxC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;MACpD,MAAM;QAAE9D,UAAU,GAAG,EAAE;QAAEuG,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;QAAEC,IAAI,GAAG;MAAM,CAAC,GAAGC,4BAAO,CAACxF,IAAI,CAAC,IAAI,CAAC,CAAC;MAE9E,IAAIjB,UAAU,CAAC+D,MAAM,KAAK,CAAC,IAAI/D,UAAU,CAACqF,IAAI,CAAEC,IAAI,IAAKa,gBAAgB,CAACrD,QAAQ,CAACwC,IAAI,CAAC,CAAC,EAAE;QACzF,MAAMe,SAAS,GAAGG,IAAI,GAAG,CAACF,aAAa,CAAC,CAAC,CAAC,CAAC,GAAGA,aAAa;QAC3DF,OAAO,CAAC/B,IAAI,CACV,GAAGgC,SAAS,CAACpE,GAAG,CAAC;UAAA,IAACuC,MAAM,GAAAV,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;UAAA,IAAE4C,KAAK,GAAA5C,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAJ,SAAA;UAAA,OAAM;YACxCiD,MAAM,iBAAAb,MAAA,CAAiB,IAAAC,4BAAmB,EAAC9E,IAAI,CAAC,CAAE;YAClDJ,EAAE,EAAE6F,KAAK,GAAG,CAAC;YACb,GAAGH,IAAI,CAAC;cAAE,GAAG/B,MAAM;cAAE9D,KAAK;cAAEI,UAAU;cAAEqF,gBAAgB;cAAEvF;YAAM,CAAC,CAAC;YAClEK;UACF,CAAC;QAAA,CAAC,CACJ,CAAC;MACH;IACF,CAAC,CAAC;IAEJ,KAAK,IAAIyF,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGN,OAAO,CAACrC,MAAM,EAAE2C,KAAK,EAAE,EAAE;MACnD,MAAM,IAAAE,oBAAU,EAACR,OAAO,CAACM,KAAK,CAAC,CAAC,CAACG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD;EACF,CAAC;EAED,OAAO,IAAI;AACb,CAAC;AAACC,OAAA,CAAArH,kBAAA,GAAAA,kBAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirai/core",
3
- "version": "0.4.356",
3
+ "version": "0.4.358",
4
4
  "source": "src/index.js",
5
5
  "repository": "https://gitlab.com/miraicorp/dev/frontend/core",
6
6
  "author": "JΛVI <hello@soyjavi.com>",