@tripla/gtm-converter 0.0.13 → 0.0.14

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,6 +7,71 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
7
7
  var _isNil = _interopDefault(require('lodash.isnil'));
8
8
  var _get = _interopDefault(require('lodash.get'));
9
9
 
10
+ function _unsupportedIterableToArray(o, minLen) {
11
+ if (!o) return;
12
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
13
+ var n = Object.prototype.toString.call(o).slice(8, -1);
14
+ if (n === "Object" && o.constructor) n = o.constructor.name;
15
+ if (n === "Map" || n === "Set") return Array.from(o);
16
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
17
+ }
18
+ function _arrayLikeToArray(arr, len) {
19
+ if (len == null || len > arr.length) len = arr.length;
20
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
21
+ return arr2;
22
+ }
23
+ function _createForOfIteratorHelper(o, allowArrayLike) {
24
+ var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
25
+ if (!it) {
26
+ if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
27
+ if (it) o = it;
28
+ var i = 0;
29
+ var F = function () {};
30
+ return {
31
+ s: F,
32
+ n: function () {
33
+ if (i >= o.length) return {
34
+ done: true
35
+ };
36
+ return {
37
+ done: false,
38
+ value: o[i++]
39
+ };
40
+ },
41
+ e: function (e) {
42
+ throw e;
43
+ },
44
+ f: F
45
+ };
46
+ }
47
+ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
48
+ }
49
+ var normalCompletion = true,
50
+ didErr = false,
51
+ err;
52
+ return {
53
+ s: function () {
54
+ it = it.call(o);
55
+ },
56
+ n: function () {
57
+ var step = it.next();
58
+ normalCompletion = step.done;
59
+ return step;
60
+ },
61
+ e: function (e) {
62
+ didErr = true;
63
+ err = e;
64
+ },
65
+ f: function () {
66
+ try {
67
+ if (!normalCompletion && it.return != null) it.return();
68
+ } finally {
69
+ if (didErr) throw err;
70
+ }
71
+ }
72
+ };
73
+ }
74
+
10
75
  var Page = {
11
76
  Confirmation: 'confirmation',
12
77
  GuestDetail: 'guest_detail',
@@ -18,6 +83,8 @@ var Page = {
18
83
  var DynamicAttributesMap = {
19
84
  search_result: {
20
85
  '$sent_at': 'meta.sent_at',
86
+ '$tripla_internal_id': 'meta.tripla_internal_id',
87
+ '$membership_id': 'meta.hashed_membership_id',
21
88
  '$user_id': 'meta.user_id',
22
89
  '$language': 'meta.language',
23
90
  '$cookie_id': 'meta.cookie_id',
@@ -54,10 +121,12 @@ var DynamicAttributesMap = {
54
121
  '$transaction_price_without_tax': 'total_price',
55
122
  // Inside array
56
123
  '$brr': 'has_brr' // Inside array
57
-
58
124
  },
125
+
59
126
  guest_detail: {
60
127
  '$sent_at': 'meta.sent_at',
128
+ '$tripla_internal_id': 'meta.tripla_internal_id',
129
+ '$membership_id': 'meta.hashed_membership_id',
61
130
  '$user_id': 'meta.user_id',
62
131
  '$language': 'meta.language',
63
132
  '$cookie_id': 'meta.cookie_id',
@@ -111,6 +180,8 @@ var DynamicAttributesMap = {
111
180
  },
112
181
  payment_detail: {
113
182
  '$sent_at': 'meta.sent_at',
183
+ '$tripla_internal_id': 'meta.tripla_internal_id',
184
+ '$membership_id': 'meta.hashed_membership_id',
114
185
  '$user_id': 'meta.user_id',
115
186
  '$language': 'meta.language',
116
187
  '$cookie_id': 'meta.cookie_id',
@@ -156,10 +227,12 @@ var DynamicAttributesMap = {
156
227
  '$brr': 'has_brr',
157
228
  // Inside array
158
229
  '$transaction_total_price_per_room': 'total_price' // Inside array
159
-
160
230
  },
231
+
161
232
  confirmation: {
162
233
  '$sent_at': 'meta.sent_at',
234
+ '$tripla_internal_id': 'meta.tripla_internal_id',
235
+ '$membership_id': 'meta.hashed_membership_id',
163
236
  '$user_id': 'meta.user_id',
164
237
  '$language': 'meta.language',
165
238
  '$cookie_id': 'meta.cookie_id',
@@ -217,6 +290,8 @@ var DynamicAttributesMap = {
217
290
  },
218
291
  reservation_update: {
219
292
  '$sent_at': 'meta.sent_at',
293
+ '$tripla_internal_id': 'meta.tripla_internal_id',
294
+ '$membership_id': 'meta.hashed_membership_id',
220
295
  '$user_id': 'meta.user_id',
221
296
  '$language': 'meta.language',
222
297
  '$cookie_id': 'meta.cookie_id',
@@ -236,6 +311,8 @@ var DynamicAttributesMap = {
236
311
  },
237
312
  reservation_cancel: {
238
313
  '$sent_at': 'meta.sent_at',
314
+ '$tripla_internal_id': 'meta.tripla_internal_id',
315
+ '$membership_id': 'meta.hashed_membership_id',
239
316
  '$user_id': 'meta.user_id',
240
317
  '$language': 'meta.language',
241
318
  '$cookie_id': 'meta.cookie_id',
@@ -279,138 +356,108 @@ var DynamicAttributesMap = {
279
356
  '$number_of_adults_per_room': 'adults',
280
357
  // Inside array
281
358
  '$number_of_children_per_room': 'children' // Inside array
282
-
283
359
  }
284
360
  };
361
+
285
362
  var generateGtmPayload = function generateGtmPayload(_ref) {
286
363
  var type = _ref.type,
287
- data = _ref.data,
288
- gtmSettings = _ref.gtmSettings;
364
+ data = _ref.data,
365
+ gtmSettings = _ref.gtmSettings;
289
366
  var result = [];
290
- var _iteratorNormalCompletion = true;
291
- var _didIteratorError = false;
292
- var _iteratorError = undefined;
293
-
367
+ var _iterator = _createForOfIteratorHelper(gtmSettings),
368
+ _step;
294
369
  try {
295
- for (var _iterator = gtmSettings[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
370
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
296
371
  var event = _step.value;
297
372
  var gtmPayload = {};
298
373
  var gtmBlueprint = event === null || event === void 0 ? void 0 : event.object;
299
-
300
374
  for (var key in gtmBlueprint) {
301
375
  gtmPayload[key] = mapGtmData(DynamicAttributesMap[type], gtmBlueprint[key], data, key);
302
376
  }
303
-
304
377
  result.push(gtmPayload);
305
378
  }
306
379
  } catch (err) {
307
- _didIteratorError = true;
308
- _iteratorError = err;
380
+ _iterator.e(err);
309
381
  } finally {
310
- try {
311
- if (!_iteratorNormalCompletion && _iterator.return != null) {
312
- _iterator.return();
313
- }
314
- } finally {
315
- if (_didIteratorError) {
316
- throw _iteratorError;
317
- }
318
- }
382
+ _iterator.f();
319
383
  }
320
-
321
384
  return result;
322
385
  };
323
-
324
386
  function mapGtmData(dynamicAttrMap, keyName, data, key) {
325
387
  if (Array.isArray(keyName) && keyName.length > 0) {
326
388
  // Assuming array can only contains one element
327
- var objectValues = keyName[0]; // Get the array type
328
-
329
- var arrayType = objectValues === null || objectValues === void 0 ? void 0 : objectValues.type; // Prepare the data
330
-
331
- var objectDatas = _get(data, dynamicAttrMap[arrayType]); // Special case for search_result
389
+ var objectValues = keyName[0];
332
390
 
391
+ // Get the array type
392
+ var arrayType = objectValues === null || objectValues === void 0 ? void 0 : objectValues.type;
393
+ // Prepare the data
394
+ var objectDatas = _get(data, dynamicAttrMap[arrayType]);
333
395
 
396
+ // Special case for search_result
334
397
  if (arrayType === 'search_result') {
335
398
  var _data$request;
336
-
337
399
  return mapSearchResult(dynamicAttrMap, objectValues, objectDatas, data === null || data === void 0 ? void 0 : (_data$request = data.request) === null || _data$request === void 0 ? void 0 : _data$request.type, data);
338
- } // If the value is not one of those special cases, try to map the data back using a generic function
339
-
340
-
400
+ }
401
+ // If the value is not one of those special cases, try to map the data back using a generic function
341
402
  return mapGtmArrayData(dynamicAttrMap, objectValues, objectDatas, arrayType, data);
342
- } // If the value is static, just return it
343
-
344
-
345
- if (!String(keyName).startsWith('$')) return keyName; // Special values
403
+ }
404
+ // If the value is static, just return it
405
+ if (!String(keyName).startsWith('$')) return keyName;
346
406
 
407
+ // Special values
347
408
  if (keyName === '$number_of_rooms') return 1;
348
- if (keyName === '$currency_code') return 'JPY'; // If the value can be mapped dynamically
409
+ if (keyName === '$currency_code') return 'JPY';
349
410
 
411
+ // If the value can be mapped dynamically
350
412
  if (dynamicAttrMap[keyName]) {
351
413
  var _get2;
352
-
353
414
  var _key = dynamicAttrMap[keyName];
354
-
355
415
  if (keyName === '$room_size') {
356
416
  return normalizeRoomSize(_get(data, _key, null));
357
417
  }
358
-
359
418
  return (_get2 = _get(data, _key, null)) !== null && _get2 !== void 0 ? _get2 : null;
360
419
  }
361
420
  }
362
-
363
421
  function mapGtmArrayData(dynamicAttrMap, objectValues, data, rootKey, rootData) {
364
422
  // Assuming array can only contains one element
365
423
  var result = [];
366
-
367
424
  for (var objectDataKey in data) {
368
425
  var objectData = data[objectDataKey];
369
426
  var resultObject = {};
370
-
371
427
  for (var objectKey in objectValues) {
372
428
  var objectValue = objectValues[objectKey];
373
429
  var mappedValue = mapGtmData(dynamicAttrMap, objectValue, objectData);
374
-
375
430
  if (_isNil(mappedValue)) {
376
431
  // Try to map again using root values
377
432
  mappedValue = mapGtmData(dynamicAttrMap, objectValue, rootData);
378
433
  }
379
-
380
434
  resultObject[objectKey] = mappedValue;
381
435
  }
382
-
383
436
  result.push(resultObject);
384
437
  }
385
-
386
438
  return result;
387
439
  }
388
-
389
440
  function mapSearchResult(dynamicAttrMap, arrayValues, arrayData, searchType, rootData) {
390
441
  var result = [];
391
442
  var itemIndex = 1;
392
443
  var itemKey = searchType === 'rooms' ? 'room_plan' : 'rooms';
393
- var _iteratorNormalCompletion2 = true;
394
- var _didIteratorError2 = false;
395
- var _iteratorError2 = undefined;
396
-
444
+ var _iterator2 = _createForOfIteratorHelper(arrayData),
445
+ _step2;
397
446
  try {
398
- for (var _iterator2 = arrayData[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
447
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
399
448
  var parentLevelData = _step2.value;
400
- var _iteratorNormalCompletion3 = true;
401
- var _didIteratorError3 = false;
402
- var _iteratorError3 = undefined;
403
-
449
+ var _iterator3 = _createForOfIteratorHelper(parentLevelData[itemKey]),
450
+ _step3;
404
451
  try {
405
- for (var _iterator3 = parentLevelData[itemKey][Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
452
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
406
453
  var childLevelData = _step3.value;
407
454
  var mappedData = {};
408
-
409
455
  for (var key in arrayValues) {
410
- var value = arrayValues[key]; // Get the actual attribute in the data
411
-
412
- var attribute = dynamicAttrMap[value]; // Special keys
456
+ var value = arrayValues[key];
457
+ // Get the actual attribute in the data
458
+ var attribute = dynamicAttrMap[value];
413
459
 
460
+ // Special keys
414
461
  if (value === '$room_size') {
415
462
  mappedData[key] = searchType === 'rooms' ? normalizeRoomSize(parentLevelData.room_size) : normalizeRoomSize(childLevelData.room_size);
416
463
  } else if (value === '$promotion_id') {
@@ -425,58 +472,34 @@ function mapSearchResult(dynamicAttrMap, arrayValues, arrayData, searchType, roo
425
472
  mappedData[key] = itemIndex;
426
473
  } else {
427
474
  // Try to map using parent level data
428
- var mapped = _get(parentLevelData, attribute, null); // If not found, try to map using child level
429
-
430
-
475
+ var mapped = _get(parentLevelData, attribute, null);
476
+ // If not found, try to map using child level
431
477
  if (_isNil(mapped)) {
432
478
  mapped = _get(childLevelData, attribute, null);
433
- } // If still not found, try to map using root level data
434
-
435
-
479
+ }
480
+ // If still not found, try to map using root level data
436
481
  if (_isNil(mapped)) {
437
482
  mapped = mapGtmData(dynamicAttrMap, value, rootData);
438
483
  }
439
-
440
484
  mappedData[key] = mapped;
441
485
  }
442
486
  }
443
-
444
487
  result.push(mappedData);
445
488
  itemIndex++;
446
489
  }
447
490
  } catch (err) {
448
- _didIteratorError3 = true;
449
- _iteratorError3 = err;
491
+ _iterator3.e(err);
450
492
  } finally {
451
- try {
452
- if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
453
- _iterator3.return();
454
- }
455
- } finally {
456
- if (_didIteratorError3) {
457
- throw _iteratorError3;
458
- }
459
- }
493
+ _iterator3.f();
460
494
  }
461
495
  }
462
496
  } catch (err) {
463
- _didIteratorError2 = true;
464
- _iteratorError2 = err;
497
+ _iterator2.e(err);
465
498
  } finally {
466
- try {
467
- if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
468
- _iterator2.return();
469
- }
470
- } finally {
471
- if (_didIteratorError2) {
472
- throw _iteratorError2;
473
- }
474
- }
499
+ _iterator2.f();
475
500
  }
476
-
477
501
  return result;
478
502
  }
479
-
480
503
  function normalizeRoomSize(roomSize) {
481
504
  if (_isNil(roomSize === null || roomSize === void 0 ? void 0 : roomSize.value)) return '';
482
505
  return "".concat(roomSize.value, " ").concat(roomSize.unit);
@@ -1,6 +1,71 @@
1
1
  import _isNil from 'lodash.isnil';
2
2
  import _get from 'lodash.get';
3
3
 
4
+ function _unsupportedIterableToArray(o, minLen) {
5
+ if (!o) return;
6
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
7
+ var n = Object.prototype.toString.call(o).slice(8, -1);
8
+ if (n === "Object" && o.constructor) n = o.constructor.name;
9
+ if (n === "Map" || n === "Set") return Array.from(o);
10
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
11
+ }
12
+ function _arrayLikeToArray(arr, len) {
13
+ if (len == null || len > arr.length) len = arr.length;
14
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
15
+ return arr2;
16
+ }
17
+ function _createForOfIteratorHelper(o, allowArrayLike) {
18
+ var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
19
+ if (!it) {
20
+ if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
21
+ if (it) o = it;
22
+ var i = 0;
23
+ var F = function () {};
24
+ return {
25
+ s: F,
26
+ n: function () {
27
+ if (i >= o.length) return {
28
+ done: true
29
+ };
30
+ return {
31
+ done: false,
32
+ value: o[i++]
33
+ };
34
+ },
35
+ e: function (e) {
36
+ throw e;
37
+ },
38
+ f: F
39
+ };
40
+ }
41
+ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
42
+ }
43
+ var normalCompletion = true,
44
+ didErr = false,
45
+ err;
46
+ return {
47
+ s: function () {
48
+ it = it.call(o);
49
+ },
50
+ n: function () {
51
+ var step = it.next();
52
+ normalCompletion = step.done;
53
+ return step;
54
+ },
55
+ e: function (e) {
56
+ didErr = true;
57
+ err = e;
58
+ },
59
+ f: function () {
60
+ try {
61
+ if (!normalCompletion && it.return != null) it.return();
62
+ } finally {
63
+ if (didErr) throw err;
64
+ }
65
+ }
66
+ };
67
+ }
68
+
4
69
  var Page = {
5
70
  Confirmation: 'confirmation',
6
71
  GuestDetail: 'guest_detail',
@@ -12,6 +77,8 @@ var Page = {
12
77
  var DynamicAttributesMap = {
13
78
  search_result: {
14
79
  '$sent_at': 'meta.sent_at',
80
+ '$tripla_internal_id': 'meta.tripla_internal_id',
81
+ '$membership_id': 'meta.hashed_membership_id',
15
82
  '$user_id': 'meta.user_id',
16
83
  '$language': 'meta.language',
17
84
  '$cookie_id': 'meta.cookie_id',
@@ -48,10 +115,12 @@ var DynamicAttributesMap = {
48
115
  '$transaction_price_without_tax': 'total_price',
49
116
  // Inside array
50
117
  '$brr': 'has_brr' // Inside array
51
-
52
118
  },
119
+
53
120
  guest_detail: {
54
121
  '$sent_at': 'meta.sent_at',
122
+ '$tripla_internal_id': 'meta.tripla_internal_id',
123
+ '$membership_id': 'meta.hashed_membership_id',
55
124
  '$user_id': 'meta.user_id',
56
125
  '$language': 'meta.language',
57
126
  '$cookie_id': 'meta.cookie_id',
@@ -105,6 +174,8 @@ var DynamicAttributesMap = {
105
174
  },
106
175
  payment_detail: {
107
176
  '$sent_at': 'meta.sent_at',
177
+ '$tripla_internal_id': 'meta.tripla_internal_id',
178
+ '$membership_id': 'meta.hashed_membership_id',
108
179
  '$user_id': 'meta.user_id',
109
180
  '$language': 'meta.language',
110
181
  '$cookie_id': 'meta.cookie_id',
@@ -150,10 +221,12 @@ var DynamicAttributesMap = {
150
221
  '$brr': 'has_brr',
151
222
  // Inside array
152
223
  '$transaction_total_price_per_room': 'total_price' // Inside array
153
-
154
224
  },
225
+
155
226
  confirmation: {
156
227
  '$sent_at': 'meta.sent_at',
228
+ '$tripla_internal_id': 'meta.tripla_internal_id',
229
+ '$membership_id': 'meta.hashed_membership_id',
157
230
  '$user_id': 'meta.user_id',
158
231
  '$language': 'meta.language',
159
232
  '$cookie_id': 'meta.cookie_id',
@@ -211,6 +284,8 @@ var DynamicAttributesMap = {
211
284
  },
212
285
  reservation_update: {
213
286
  '$sent_at': 'meta.sent_at',
287
+ '$tripla_internal_id': 'meta.tripla_internal_id',
288
+ '$membership_id': 'meta.hashed_membership_id',
214
289
  '$user_id': 'meta.user_id',
215
290
  '$language': 'meta.language',
216
291
  '$cookie_id': 'meta.cookie_id',
@@ -230,6 +305,8 @@ var DynamicAttributesMap = {
230
305
  },
231
306
  reservation_cancel: {
232
307
  '$sent_at': 'meta.sent_at',
308
+ '$tripla_internal_id': 'meta.tripla_internal_id',
309
+ '$membership_id': 'meta.hashed_membership_id',
233
310
  '$user_id': 'meta.user_id',
234
311
  '$language': 'meta.language',
235
312
  '$cookie_id': 'meta.cookie_id',
@@ -273,138 +350,108 @@ var DynamicAttributesMap = {
273
350
  '$number_of_adults_per_room': 'adults',
274
351
  // Inside array
275
352
  '$number_of_children_per_room': 'children' // Inside array
276
-
277
353
  }
278
354
  };
355
+
279
356
  var generateGtmPayload = function generateGtmPayload(_ref) {
280
357
  var type = _ref.type,
281
- data = _ref.data,
282
- gtmSettings = _ref.gtmSettings;
358
+ data = _ref.data,
359
+ gtmSettings = _ref.gtmSettings;
283
360
  var result = [];
284
- var _iteratorNormalCompletion = true;
285
- var _didIteratorError = false;
286
- var _iteratorError = undefined;
287
-
361
+ var _iterator = _createForOfIteratorHelper(gtmSettings),
362
+ _step;
288
363
  try {
289
- for (var _iterator = gtmSettings[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
364
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
290
365
  var event = _step.value;
291
366
  var gtmPayload = {};
292
367
  var gtmBlueprint = event === null || event === void 0 ? void 0 : event.object;
293
-
294
368
  for (var key in gtmBlueprint) {
295
369
  gtmPayload[key] = mapGtmData(DynamicAttributesMap[type], gtmBlueprint[key], data, key);
296
370
  }
297
-
298
371
  result.push(gtmPayload);
299
372
  }
300
373
  } catch (err) {
301
- _didIteratorError = true;
302
- _iteratorError = err;
374
+ _iterator.e(err);
303
375
  } finally {
304
- try {
305
- if (!_iteratorNormalCompletion && _iterator.return != null) {
306
- _iterator.return();
307
- }
308
- } finally {
309
- if (_didIteratorError) {
310
- throw _iteratorError;
311
- }
312
- }
376
+ _iterator.f();
313
377
  }
314
-
315
378
  return result;
316
379
  };
317
-
318
380
  function mapGtmData(dynamicAttrMap, keyName, data, key) {
319
381
  if (Array.isArray(keyName) && keyName.length > 0) {
320
382
  // Assuming array can only contains one element
321
- var objectValues = keyName[0]; // Get the array type
322
-
323
- var arrayType = objectValues === null || objectValues === void 0 ? void 0 : objectValues.type; // Prepare the data
324
-
325
- var objectDatas = _get(data, dynamicAttrMap[arrayType]); // Special case for search_result
383
+ var objectValues = keyName[0];
326
384
 
385
+ // Get the array type
386
+ var arrayType = objectValues === null || objectValues === void 0 ? void 0 : objectValues.type;
387
+ // Prepare the data
388
+ var objectDatas = _get(data, dynamicAttrMap[arrayType]);
327
389
 
390
+ // Special case for search_result
328
391
  if (arrayType === 'search_result') {
329
392
  var _data$request;
330
-
331
393
  return mapSearchResult(dynamicAttrMap, objectValues, objectDatas, data === null || data === void 0 ? void 0 : (_data$request = data.request) === null || _data$request === void 0 ? void 0 : _data$request.type, data);
332
- } // If the value is not one of those special cases, try to map the data back using a generic function
333
-
334
-
394
+ }
395
+ // If the value is not one of those special cases, try to map the data back using a generic function
335
396
  return mapGtmArrayData(dynamicAttrMap, objectValues, objectDatas, arrayType, data);
336
- } // If the value is static, just return it
337
-
338
-
339
- if (!String(keyName).startsWith('$')) return keyName; // Special values
397
+ }
398
+ // If the value is static, just return it
399
+ if (!String(keyName).startsWith('$')) return keyName;
340
400
 
401
+ // Special values
341
402
  if (keyName === '$number_of_rooms') return 1;
342
- if (keyName === '$currency_code') return 'JPY'; // If the value can be mapped dynamically
403
+ if (keyName === '$currency_code') return 'JPY';
343
404
 
405
+ // If the value can be mapped dynamically
344
406
  if (dynamicAttrMap[keyName]) {
345
407
  var _get2;
346
-
347
408
  var _key = dynamicAttrMap[keyName];
348
-
349
409
  if (keyName === '$room_size') {
350
410
  return normalizeRoomSize(_get(data, _key, null));
351
411
  }
352
-
353
412
  return (_get2 = _get(data, _key, null)) !== null && _get2 !== void 0 ? _get2 : null;
354
413
  }
355
414
  }
356
-
357
415
  function mapGtmArrayData(dynamicAttrMap, objectValues, data, rootKey, rootData) {
358
416
  // Assuming array can only contains one element
359
417
  var result = [];
360
-
361
418
  for (var objectDataKey in data) {
362
419
  var objectData = data[objectDataKey];
363
420
  var resultObject = {};
364
-
365
421
  for (var objectKey in objectValues) {
366
422
  var objectValue = objectValues[objectKey];
367
423
  var mappedValue = mapGtmData(dynamicAttrMap, objectValue, objectData);
368
-
369
424
  if (_isNil(mappedValue)) {
370
425
  // Try to map again using root values
371
426
  mappedValue = mapGtmData(dynamicAttrMap, objectValue, rootData);
372
427
  }
373
-
374
428
  resultObject[objectKey] = mappedValue;
375
429
  }
376
-
377
430
  result.push(resultObject);
378
431
  }
379
-
380
432
  return result;
381
433
  }
382
-
383
434
  function mapSearchResult(dynamicAttrMap, arrayValues, arrayData, searchType, rootData) {
384
435
  var result = [];
385
436
  var itemIndex = 1;
386
437
  var itemKey = searchType === 'rooms' ? 'room_plan' : 'rooms';
387
- var _iteratorNormalCompletion2 = true;
388
- var _didIteratorError2 = false;
389
- var _iteratorError2 = undefined;
390
-
438
+ var _iterator2 = _createForOfIteratorHelper(arrayData),
439
+ _step2;
391
440
  try {
392
- for (var _iterator2 = arrayData[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
441
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
393
442
  var parentLevelData = _step2.value;
394
- var _iteratorNormalCompletion3 = true;
395
- var _didIteratorError3 = false;
396
- var _iteratorError3 = undefined;
397
-
443
+ var _iterator3 = _createForOfIteratorHelper(parentLevelData[itemKey]),
444
+ _step3;
398
445
  try {
399
- for (var _iterator3 = parentLevelData[itemKey][Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
446
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
400
447
  var childLevelData = _step3.value;
401
448
  var mappedData = {};
402
-
403
449
  for (var key in arrayValues) {
404
- var value = arrayValues[key]; // Get the actual attribute in the data
405
-
406
- var attribute = dynamicAttrMap[value]; // Special keys
450
+ var value = arrayValues[key];
451
+ // Get the actual attribute in the data
452
+ var attribute = dynamicAttrMap[value];
407
453
 
454
+ // Special keys
408
455
  if (value === '$room_size') {
409
456
  mappedData[key] = searchType === 'rooms' ? normalizeRoomSize(parentLevelData.room_size) : normalizeRoomSize(childLevelData.room_size);
410
457
  } else if (value === '$promotion_id') {
@@ -419,58 +466,34 @@ function mapSearchResult(dynamicAttrMap, arrayValues, arrayData, searchType, roo
419
466
  mappedData[key] = itemIndex;
420
467
  } else {
421
468
  // Try to map using parent level data
422
- var mapped = _get(parentLevelData, attribute, null); // If not found, try to map using child level
423
-
424
-
469
+ var mapped = _get(parentLevelData, attribute, null);
470
+ // If not found, try to map using child level
425
471
  if (_isNil(mapped)) {
426
472
  mapped = _get(childLevelData, attribute, null);
427
- } // If still not found, try to map using root level data
428
-
429
-
473
+ }
474
+ // If still not found, try to map using root level data
430
475
  if (_isNil(mapped)) {
431
476
  mapped = mapGtmData(dynamicAttrMap, value, rootData);
432
477
  }
433
-
434
478
  mappedData[key] = mapped;
435
479
  }
436
480
  }
437
-
438
481
  result.push(mappedData);
439
482
  itemIndex++;
440
483
  }
441
484
  } catch (err) {
442
- _didIteratorError3 = true;
443
- _iteratorError3 = err;
485
+ _iterator3.e(err);
444
486
  } finally {
445
- try {
446
- if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
447
- _iterator3.return();
448
- }
449
- } finally {
450
- if (_didIteratorError3) {
451
- throw _iteratorError3;
452
- }
453
- }
487
+ _iterator3.f();
454
488
  }
455
489
  }
456
490
  } catch (err) {
457
- _didIteratorError2 = true;
458
- _iteratorError2 = err;
491
+ _iterator2.e(err);
459
492
  } finally {
460
- try {
461
- if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
462
- _iterator2.return();
463
- }
464
- } finally {
465
- if (_didIteratorError2) {
466
- throw _iteratorError2;
467
- }
468
- }
493
+ _iterator2.f();
469
494
  }
470
-
471
495
  return result;
472
496
  }
473
-
474
497
  function normalizeRoomSize(roomSize) {
475
498
  if (_isNil(roomSize === null || roomSize === void 0 ? void 0 : roomSize.value)) return '';
476
499
  return "".concat(roomSize.value, " ").concat(roomSize.unit);
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).triplaGtmConverter={})}(this,(function(e){"use strict";var t=function(e){return null==e},o="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n="__lodash_hash_undefined__",r="[object Function]",a="[object GeneratorFunction]",_=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/,s=/^\./,u=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,c=/\\(\\)?/g,l=/^\[object .+?Constructor\]$/,m="object"==typeof o&&o&&o.Object===Object&&o,p="object"==typeof self&&self&&self.Object===Object&&self,d=m||p||Function("return this")();var $,h=Array.prototype,f=Function.prototype,g=Object.prototype,b=d["__core-js_shared__"],y=($=/[^.]+$/.exec(b&&b.keys&&b.keys.IE_PROTO||""))?"Symbol(src)_1."+$:"",k=f.toString,v=g.hasOwnProperty,D=g.toString,w=RegExp("^"+k.call(v).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),q=d.Symbol,x=h.splice,j=M(d,"Map"),z=M(Object,"create"),S=q?q.prototype:void 0,O=S?S.toString:void 0;function P(e){var t=-1,o=e?e.length:0;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}function C(e){var t=-1,o=e?e.length:0;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}function R(e){var t=-1,o=e?e.length:0;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}function A(e,t){for(var o,n,r=e.length;r--;)if((o=e[r][0])===(n=t)||o!=o&&n!=n)return r;return-1}function E(e,t){for(var o,n=0,r=(t=function(e,t){if(U(e))return!1;var o=typeof e;if("number"==o||"symbol"==o||"boolean"==o||null==e||Y(e))return!0;return i.test(e)||!_.test(e)||null!=t&&e in Object(t)}(t,e)?[t]:U(o=t)?o:T(o)).length;null!=e&&n<r;)e=e[I(t[n++])];return n&&n==r?e:void 0}function F(e){return!(!W(e)||(t=e,y&&y in t))&&(function(e){var t=W(e)?D.call(e):"";return t==r||t==a}(e)||function(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}(e)?w:l).test(function(e){if(null!=e){try{return k.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e));var t}function G(e,t){var o,n,r=e.__data__;return("string"==(n=typeof(o=t))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==o:null===o)?r["string"==typeof t?"string":"hash"]:r.map}function M(e,t){var o=function(e,t){return null==e?void 0:e[t]}(e,t);return F(o)?o:void 0}P.prototype.clear=function(){this.__data__=z?z(null):{}},P.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},P.prototype.get=function(e){var t=this.__data__;if(z){var o=t[e];return o===n?void 0:o}return v.call(t,e)?t[e]:void 0},P.prototype.has=function(e){var t=this.__data__;return z?void 0!==t[e]:v.call(t,e)},P.prototype.set=function(e,t){return this.__data__[e]=z&&void 0===t?n:t,this},C.prototype.clear=function(){this.__data__=[]},C.prototype.delete=function(e){var t=this.__data__,o=A(t,e);return!(o<0)&&(o==t.length-1?t.pop():x.call(t,o,1),!0)},C.prototype.get=function(e){var t=this.__data__,o=A(t,e);return o<0?void 0:t[o][1]},C.prototype.has=function(e){return A(this.__data__,e)>-1},C.prototype.set=function(e,t){var o=this.__data__,n=A(o,e);return n<0?o.push([e,t]):o[n][1]=t,this},R.prototype.clear=function(){this.__data__={hash:new P,map:new(j||C),string:new P}},R.prototype.delete=function(e){return G(this,e).delete(e)},R.prototype.get=function(e){return G(this,e).get(e)},R.prototype.has=function(e){return G(this,e).has(e)},R.prototype.set=function(e,t){return G(this,e).set(e,t),this};var T=J((function(e){var t;e=null==(t=e)?"":function(e){if("string"==typeof e)return e;if(Y(e))return O?O.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}(t);var o=[];return s.test(e)&&o.push(""),e.replace(u,(function(e,t,n,r){o.push(n?r.replace(c,"$1"):t||e)})),o}));function I(e){if("string"==typeof e||Y(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function J(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError("Expected a function");var o=function(){var n=arguments,r=t?t.apply(this,n):n[0],a=o.cache;if(a.has(r))return a.get(r);var _=e.apply(this,n);return o.cache=a.set(r,_),_};return o.cache=new(J.Cache||R),o}J.Cache=R;var U=Array.isArray;function W(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function Y(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==D.call(e)}var B=function(e,t,o){var n=null==e?void 0:E(e,t);return void 0===n?o:n},H={search_result:{$sent_at:"meta.sent_at",$user_id:"meta.user_id",$language:"meta.language",$cookie_id:"meta.cookie_id",$page_category:"meta.page_category",$current_url:"meta.current_url",search_result:"response.roomData.rooms",$hotel_id:"meta.hotel_id",$hotel_name:"meta.hotel_name",$brand_name:"meta.brand_name",$hotel_prefecture:"meta.hotel_prefecture",$utm_source:"meta.utm_source",$utm_campaign:"meta.utm_campaign",$utm_medium:"meta.utm_medium",$search_id:"meta.search_id",$checkin_date:"response.roomData.search_params.checkin_date",$checkout_date:"response.roomData.search_params.checkout_date",$day_use:"request.is_day_use",$search_type:"request.type",$number_of_adults:"request.number_of_adults",$number_of_children:"request.number_of_children",$room_search_filters:"request.room_search_filters",$room_id:"room_type_code",$room_name:"room_type_name",$room_type:"room_type_name",$room_size:"room_size",$plan_id:"room_plan_code",$plan_name:"room_plan_name",$transaction_price_without_tax:"total_price",$brr:"has_brr"},guest_detail:{$sent_at:"meta.sent_at",$user_id:"meta.user_id",$language:"meta.language",$cookie_id:"meta.cookie_id",$page_category:"meta.page_category",$current_url:"meta.current_url",$hotel_id:"meta.hotel_id",$hotel_name:"meta.hotel_name",$brand_name:"meta.brand_name",$hotel_prefecture:"meta.hotel_prefecture",$utm_source:"meta.utm_source",$utm_campaign:"meta.utm_campaign",$utm_medium:"meta.utm_medium",$search_id:"meta.search_id",$checkin_date:"response.bookingDetails.checkin_date",$checkout_date:"response.bookingDetails.checkout_date",$number_of_adults:"response.bookingDetails.adults",$number_of_children:"response.bookingDetails.children",$number_of_nights:"response.bookingDetails.nights",$transaction_tax_amount:"response.bookingDetails.tax",$transaction_price_without_tax:"response.bookingDetails.total_price_without_tax",$transaction_total_price:"response.bookingDetails.total_price",$coupon_id:"response.bookingDetails.coupon_promotion.id",$coupon_code:"response.bookingDetails.coupon_promotion.coupon_code",$number_of_days_to_checkin:"response.bookingDetails.number_of_days_to_checkin",room_booking_detail:"response.bookingDetails.room",$number_of_adults_per_room:"adults",$number_of_children_per_room:"children",$room_id:"room_type_code",$room_name:"room_type_name",$room_type:"room_type_name",$plan_id:"room_plan_code",$plan_name:"room_plan_name",$room_size:"room_size",$brr:"has_brr",$transaction_total_price_per_room:"total_price",additional_question_detail:"response.additional_questions",$question_id:"id",$question_title:"question",$question_type:"question_type"},payment_detail:{$sent_at:"meta.sent_at",$user_id:"meta.user_id",$language:"meta.language",$cookie_id:"meta.cookie_id",$page_category:"meta.page_category",$current_url:"meta.current_url",$hotel_id:"meta.hotel_id",$hotel_name:"meta.hotel_name",$brand_name:"meta.brand_name",$hotel_prefecture:"meta.hotel_prefecture",$utm_source:"meta.utm_source",$utm_campaign:"meta.utm_campaign",$utm_medium:"meta.utm_medium",$search_id:"meta.search_id",$checkin_date:"response.bookingDetails.checkin_date",$checkout_date:"response.bookingDetails.checkout_date",$number_of_days_to_checkin:"response.bookingDetails.number_of_days_to_checkin",$number_of_adults:"response.bookingDetails.adults",$number_of_children:"response.bookingDetails.children",$number_of_nights:"response.bookingDetails.nights",$transaction_tax_amount:"response.bookingDetails.tax",$transaction_price_without_tax:"response.bookingDetails.total_price_without_tax",$transaction_total_price:"response.bookingDetails.total_price",$coupon_id:"response.bookingDetails.coupon_promotion.id",$coupon_code:"response.bookingDetails.coupon_promotion.coupon_code",room_booking_detail:"response.bookingDetails.room",$number_of_adults_per_room:"adults",$number_of_children_per_room:"children",$room_id:"room_type_code",$room_name:"room_type_name",$room_type:"room_type_name",$room_size:"room_size",$plan_id:"room_plan_code",$plan_name:"room_plan_name",$brr:"has_brr",$transaction_total_price_per_room:"total_price"},confirmation:{$sent_at:"meta.sent_at",$user_id:"meta.user_id",$language:"meta.language",$cookie_id:"meta.cookie_id",$page_category:"meta.page_category",$current_url:"meta.current_url",$hotel_id:"meta.hotel_id",$hotel_name:"meta.hotel_name",$brand_name:"meta.brand_name",$hotel_prefecture:"meta.hotel_prefecture",$utm_source:"meta.utm_source",$utm_campaign:"meta.utm_campaign",$utm_medium:"meta.utm_medium",$search_id:"meta.search_id",$checkin_date:"response.bookingDetails.checkin_date",$checkout_date:"response.bookingDetails.checkout_date",$booking_date:"response.bookingDetails.booking_date",$number_of_adults:"response.bookingDetails.adults",$number_of_children:"response.bookingDetails.children",$number_of_nights:"response.bookingDetails.nights",$number_of_days_to_checkin:"response.bookingDetails.number_of_days_to_checkin",$coupon_id:"response.bookingDetails.coupon_promotion.id",$coupon_code:"response.bookingDetails.coupon_promotion.coupon_code",$transaction_id:"response.bookingDetails.reservation_number",$transaction_method:"response.bookingDetails.payment_method",$transaction_tax_amount:"response.bookingDetails.tax",$transaction_price_without_tax:"response.bookingDetails.total_price_without_tax",$transaction_total_price:"response.bookingDetails.total_price",room_booking_detail:"response.bookingDetails.room",$room_id:"room_type_code",$room_name:"room_type_name",$room_type:"room_type_name",$room_size:"room_size",$plan_id:"room_plan_code",$plan_name:"room_plan_name",$number_of_adults_per_room:"adults",$number_of_children_per_room:"children",$brr:"has_brr",$transaction_total_price_per_room:"total_price",additional_question_detail:"response.bookingDetails.additional_questions",$question_id:"id",$question_title:"question",$question_type:"question_type",$question_answer:"answer"},reservation_update:{$sent_at:"meta.sent_at",$user_id:"meta.user_id",$language:"meta.language",$cookie_id:"meta.cookie_id",$page_category:"meta.page_category",$current_url:"meta.current_url",$hotel_id:"meta.hotel_id",$hotel_name:"meta.hotel_name",$brand_name:"meta.brand_name",$hotel_prefecture:"meta.hotel_prefecture",$search_id:"meta.search_id",$new_checkin_date:"request.checkin",$new_checkout_date:"request.checkout",$new_number_of_adults:"request.new_number_of_adults",$new_number_of_children:"request.new_number_of_children",$new_number_of_rooms:"request.new_number_of_rooms",$transaction_id:"request.reservation_number"},reservation_cancel:{$sent_at:"meta.sent_at",$user_id:"meta.user_id",$language:"meta.language",$cookie_id:"meta.cookie_id",$page_category:"meta.page_category",$current_url:"meta.current_url",$hotel_id:"meta.hotel_id",$hotel_name:"meta.hotel_name",$brand_name:"meta.brand_name",$hotel_prefecture:"meta.hotel_prefecture",$search_id:"meta.search_id",$checkin_date:"response.bookingDetails.checkin_date",$checkout_date:"response.bookingDetails.checkout_date",$number_of_adults:"response.bookingDetails.adults",$number_of_children:"response.bookingDetails.children",$number_of_nights:"response.bookingDetails.nights",$number_of_days_to_checkin:"response.bookingDetails.number_of_days_to_checkin",$transaction_id:"response.bookingDetails.reservation_number",$transaction_method:"response.bookingDetails.payment_method",$transaction_tax_amount:"response.bookingDetails.tax",$transaction_price_without_tax:"response.bookingDetails.total_price_without_tax",$transaction_refund_amount:"response.bookingDetails.refund_amount",$transaction_cancellation_fee:"response.bookingDetails.cancellation_fee",$transaction_total_price:"response.bookingDetails.total_price",$coupon_id:"response.bookingDetails.coupon_promotion.id",$coupon_code:"response.bookingDetails.coupon_promotion.coupon_code",$booking_cancellation_reason:"request.cancelReason",room_booking_detail:"response.bookingDetails.room",$room_id:"room_type_code",$room_name:"room_type_name",$room_type:"room_type_name",$room_size:"room_size",$plan_id:"room_plan_code",$plan_name:"room_plan_name",$number_of_adults_per_room:"adults",$number_of_children_per_room:"children"}};function K(e,o,n,r){if(Array.isArray(o)&&o.length>0){var a,_=o[0],i=null==_?void 0:_.type,s=B(n,e[i]);return"search_result"===i?function(e,o,n,r,a){var _=[],i=1,s="rooms"===r?"room_plan":"rooms",u=!0,c=!1,l=void 0;try{for(var m,p=n[Symbol.iterator]();!(u=(m=p.next()).done);u=!0){var d=m.value,$=!0,h=!1,f=void 0;try{for(var g,b=d[s][Symbol.iterator]();!($=(g=b.next()).done);$=!0){var y=g.value,k={};for(var v in o){var D=o[v],w=e[D];if("$room_size"===D)k[v]=L("rooms"===r?d.room_size:y.room_size);else if("$promotion_id"===D)k[v]=(y.membership_promotions||[]).map((function(e){return e.id})).join(",");else if("$promotion_name"===D)k[v]=(y.membership_promotions||[]).map((function(e){return e.name})).join(",");else if("$order"===D)k[v]=i;else{var q=B(d,w,null);t(q)&&(q=B(y,w,null)),t(q)&&(q=K(e,D,a)),k[v]=q}}_.push(k),i++}}catch(e){h=!0,f=e}finally{try{$||null==b.return||b.return()}finally{if(h)throw f}}}}catch(e){c=!0,l=e}finally{try{u||null==p.return||p.return()}finally{if(c)throw l}}return _}(e,_,s,null==n||null===(a=n.request)||void 0===a?void 0:a.type,n):function(e,o,n,r,a){var _=[];for(var i in n){var s=n[i],u={};for(var c in o){var l=o[c],m=K(e,l,s);t(m)&&(m=K(e,l,a)),u[c]=m}_.push(u)}return _}(e,_,s,0,n)}if(!String(o).startsWith("$"))return o;if("$number_of_rooms"===o)return 1;if("$currency_code"===o)return"JPY";if(e[o]){var u,c=e[o];return"$room_size"===o?L(B(n,c,null)):null!==(u=B(n,c,null))&&void 0!==u?u:null}}function L(e){return t(null==e?void 0:e.value)?"":"".concat(e.value," ").concat(e.unit)}e.Page={Confirmation:"confirmation",GuestDetail:"guest_detail",PaymentDetail:"payment_detail",ReservationCancel:"reservation_cancel",ReservationUpdate:"reservation_update",SearchResult:"search_result"},e.generateGtmPayload=function(e){var t=e.type,o=e.data,n=e.gtmSettings,r=[],a=!0,_=!1,i=void 0;try{for(var s,u=n[Symbol.iterator]();!(a=(s=u.next()).done);a=!0){var c=s.value,l={},m=null==c?void 0:c.object;for(var p in m)l[p]=K(H[t],m[p],o,p);r.push(l)}}catch(e){_=!0,i=e}finally{try{a||null==u.return||u.return()}finally{if(_)throw i}}return r},Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).triplaGtmConverter={})}(this,(function(e){"use strict";function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=new Array(t);o<t;o++)n[o]=e[o];return n}function o(e,o){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,o){if(e){if("string"==typeof e)return t(e,o);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(e,o):void 0}}(e))||o&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,_=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return _=e.done,e},e:function(e){s=!0,i=e},f:function(){try{_||null==n.return||n.return()}finally{if(s)throw i}}}}var n=function(e){return null==e},r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},a="__lodash_hash_undefined__",i=1/0,_="[object Function]",s="[object GeneratorFunction]",u="[object Symbol]",c=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,l=/^\w*$/,m=/^\./,p=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,d=/\\(\\)?/g,h=/^\[object .+?Constructor\]$/,$="object"==typeof r&&r&&r.Object===Object&&r,f="object"==typeof self&&self&&self.Object===Object&&self,b=$||f||Function("return this")();var g,y=Array.prototype,k=Function.prototype,v=Object.prototype,D=b["__core-js_shared__"],w=(g=/[^.]+$/.exec(D&&D.keys&&D.keys.IE_PROTO||""))?"Symbol(src)_1."+g:"",q=k.toString,j=v.hasOwnProperty,x=v.toString,S=RegExp("^"+q.call(j).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),z=b.Symbol,O=y.splice,A=J(b,"Map"),P=J(Object,"create"),C=z?z.prototype:void 0,R=C?C.toString:void 0;function E(e){var t=-1,o=e?e.length:0;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}function T(e){var t=-1,o=e?e.length:0;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}function F(e){var t=-1,o=e?e.length:0;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}function G(e,t){for(var o,n,r=e.length;r--;)if((o=e[r][0])===(n=t)||o!=o&&n!=n)return r;return-1}function I(e,t){var o;t=function(e,t){if(H(e))return!1;var o=typeof e;if("number"==o||"symbol"==o||"boolean"==o||null==e||L(e))return!0;return l.test(e)||!c.test(e)||null!=t&&e in Object(t)}(t,e)?[t]:H(o=t)?o:W(o);for(var n=0,r=t.length;null!=e&&n<r;)e=e[Y(t[n++])];return n&&n==r?e:void 0}function M(e){if(!K(e)||(t=e,w&&w in t))return!1;var t,o=function(e){var t=K(e)?x.call(e):"";return t==_||t==s}(e)||function(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}(e)?S:h;return o.test(function(e){if(null!=e){try{return q.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e))}function U(e,t){var o,n,r=e.__data__;return("string"==(n=typeof(o=t))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==o:null===o)?r["string"==typeof t?"string":"hash"]:r.map}function J(e,t){var o=function(e,t){return null==e?void 0:e[t]}(e,t);return M(o)?o:void 0}E.prototype.clear=function(){this.__data__=P?P(null):{}},E.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},E.prototype.get=function(e){var t=this.__data__;if(P){var o=t[e];return o===a?void 0:o}return j.call(t,e)?t[e]:void 0},E.prototype.has=function(e){var t=this.__data__;return P?void 0!==t[e]:j.call(t,e)},E.prototype.set=function(e,t){return this.__data__[e]=P&&void 0===t?a:t,this},T.prototype.clear=function(){this.__data__=[]},T.prototype.delete=function(e){var t=this.__data__,o=G(t,e);return!(o<0)&&(o==t.length-1?t.pop():O.call(t,o,1),!0)},T.prototype.get=function(e){var t=this.__data__,o=G(t,e);return o<0?void 0:t[o][1]},T.prototype.has=function(e){return G(this.__data__,e)>-1},T.prototype.set=function(e,t){var o=this.__data__,n=G(o,e);return n<0?o.push([e,t]):o[n][1]=t,this},F.prototype.clear=function(){this.__data__={hash:new E,map:new(A||T),string:new E}},F.prototype.delete=function(e){return U(this,e).delete(e)},F.prototype.get=function(e){return U(this,e).get(e)},F.prototype.has=function(e){return U(this,e).has(e)},F.prototype.set=function(e,t){return U(this,e).set(e,t),this};var W=B((function(e){var t;e=null==(t=e)?"":function(e){if("string"==typeof e)return e;if(L(e))return R?R.call(e):"";var t=e+"";return"0"==t&&1/e==-i?"-0":t}(t);var o=[];return m.test(e)&&o.push(""),e.replace(p,(function(e,t,n,r){o.push(n?r.replace(d,"$1"):t||e)})),o}));function Y(e){if("string"==typeof e||L(e))return e;var t=e+"";return"0"==t&&1/e==-i?"-0":t}function B(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError("Expected a function");var o=function(){var n=arguments,r=t?t.apply(this,n):n[0],a=o.cache;if(a.has(r))return a.get(r);var i=e.apply(this,n);return o.cache=a.set(r,i),i};return o.cache=new(B.Cache||F),o}B.Cache=F;var H=Array.isArray;function K(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function L(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&x.call(e)==u}var N=function(e,t,o){var n=null==e?void 0:I(e,t);return void 0===n?o:n},Q={search_result:{$sent_at:"meta.sent_at",$tripla_internal_id:"meta.tripla_internal_id",$membership_id:"meta.hashed_membership_id",$user_id:"meta.user_id",$language:"meta.language",$cookie_id:"meta.cookie_id",$page_category:"meta.page_category",$current_url:"meta.current_url",search_result:"response.roomData.rooms",$hotel_id:"meta.hotel_id",$hotel_name:"meta.hotel_name",$brand_name:"meta.brand_name",$hotel_prefecture:"meta.hotel_prefecture",$utm_source:"meta.utm_source",$utm_campaign:"meta.utm_campaign",$utm_medium:"meta.utm_medium",$search_id:"meta.search_id",$checkin_date:"response.roomData.search_params.checkin_date",$checkout_date:"response.roomData.search_params.checkout_date",$day_use:"request.is_day_use",$search_type:"request.type",$number_of_adults:"request.number_of_adults",$number_of_children:"request.number_of_children",$room_search_filters:"request.room_search_filters",$room_id:"room_type_code",$room_name:"room_type_name",$room_type:"room_type_name",$room_size:"room_size",$plan_id:"room_plan_code",$plan_name:"room_plan_name",$transaction_price_without_tax:"total_price",$brr:"has_brr"},guest_detail:{$sent_at:"meta.sent_at",$tripla_internal_id:"meta.tripla_internal_id",$membership_id:"meta.hashed_membership_id",$user_id:"meta.user_id",$language:"meta.language",$cookie_id:"meta.cookie_id",$page_category:"meta.page_category",$current_url:"meta.current_url",$hotel_id:"meta.hotel_id",$hotel_name:"meta.hotel_name",$brand_name:"meta.brand_name",$hotel_prefecture:"meta.hotel_prefecture",$utm_source:"meta.utm_source",$utm_campaign:"meta.utm_campaign",$utm_medium:"meta.utm_medium",$search_id:"meta.search_id",$checkin_date:"response.bookingDetails.checkin_date",$checkout_date:"response.bookingDetails.checkout_date",$number_of_adults:"response.bookingDetails.adults",$number_of_children:"response.bookingDetails.children",$number_of_nights:"response.bookingDetails.nights",$transaction_tax_amount:"response.bookingDetails.tax",$transaction_price_without_tax:"response.bookingDetails.total_price_without_tax",$transaction_total_price:"response.bookingDetails.total_price",$coupon_id:"response.bookingDetails.coupon_promotion.id",$coupon_code:"response.bookingDetails.coupon_promotion.coupon_code",$number_of_days_to_checkin:"response.bookingDetails.number_of_days_to_checkin",room_booking_detail:"response.bookingDetails.room",$number_of_adults_per_room:"adults",$number_of_children_per_room:"children",$room_id:"room_type_code",$room_name:"room_type_name",$room_type:"room_type_name",$plan_id:"room_plan_code",$plan_name:"room_plan_name",$room_size:"room_size",$brr:"has_brr",$transaction_total_price_per_room:"total_price",additional_question_detail:"response.additional_questions",$question_id:"id",$question_title:"question",$question_type:"question_type"},payment_detail:{$sent_at:"meta.sent_at",$tripla_internal_id:"meta.tripla_internal_id",$membership_id:"meta.hashed_membership_id",$user_id:"meta.user_id",$language:"meta.language",$cookie_id:"meta.cookie_id",$page_category:"meta.page_category",$current_url:"meta.current_url",$hotel_id:"meta.hotel_id",$hotel_name:"meta.hotel_name",$brand_name:"meta.brand_name",$hotel_prefecture:"meta.hotel_prefecture",$utm_source:"meta.utm_source",$utm_campaign:"meta.utm_campaign",$utm_medium:"meta.utm_medium",$search_id:"meta.search_id",$checkin_date:"response.bookingDetails.checkin_date",$checkout_date:"response.bookingDetails.checkout_date",$number_of_days_to_checkin:"response.bookingDetails.number_of_days_to_checkin",$number_of_adults:"response.bookingDetails.adults",$number_of_children:"response.bookingDetails.children",$number_of_nights:"response.bookingDetails.nights",$transaction_tax_amount:"response.bookingDetails.tax",$transaction_price_without_tax:"response.bookingDetails.total_price_without_tax",$transaction_total_price:"response.bookingDetails.total_price",$coupon_id:"response.bookingDetails.coupon_promotion.id",$coupon_code:"response.bookingDetails.coupon_promotion.coupon_code",room_booking_detail:"response.bookingDetails.room",$number_of_adults_per_room:"adults",$number_of_children_per_room:"children",$room_id:"room_type_code",$room_name:"room_type_name",$room_type:"room_type_name",$room_size:"room_size",$plan_id:"room_plan_code",$plan_name:"room_plan_name",$brr:"has_brr",$transaction_total_price_per_room:"total_price"},confirmation:{$sent_at:"meta.sent_at",$tripla_internal_id:"meta.tripla_internal_id",$membership_id:"meta.hashed_membership_id",$user_id:"meta.user_id",$language:"meta.language",$cookie_id:"meta.cookie_id",$page_category:"meta.page_category",$current_url:"meta.current_url",$hotel_id:"meta.hotel_id",$hotel_name:"meta.hotel_name",$brand_name:"meta.brand_name",$hotel_prefecture:"meta.hotel_prefecture",$utm_source:"meta.utm_source",$utm_campaign:"meta.utm_campaign",$utm_medium:"meta.utm_medium",$search_id:"meta.search_id",$checkin_date:"response.bookingDetails.checkin_date",$checkout_date:"response.bookingDetails.checkout_date",$booking_date:"response.bookingDetails.booking_date",$number_of_adults:"response.bookingDetails.adults",$number_of_children:"response.bookingDetails.children",$number_of_nights:"response.bookingDetails.nights",$number_of_days_to_checkin:"response.bookingDetails.number_of_days_to_checkin",$coupon_id:"response.bookingDetails.coupon_promotion.id",$coupon_code:"response.bookingDetails.coupon_promotion.coupon_code",$transaction_id:"response.bookingDetails.reservation_number",$transaction_method:"response.bookingDetails.payment_method",$transaction_tax_amount:"response.bookingDetails.tax",$transaction_price_without_tax:"response.bookingDetails.total_price_without_tax",$transaction_total_price:"response.bookingDetails.total_price",room_booking_detail:"response.bookingDetails.room",$room_id:"room_type_code",$room_name:"room_type_name",$room_type:"room_type_name",$room_size:"room_size",$plan_id:"room_plan_code",$plan_name:"room_plan_name",$number_of_adults_per_room:"adults",$number_of_children_per_room:"children",$brr:"has_brr",$transaction_total_price_per_room:"total_price",additional_question_detail:"response.bookingDetails.additional_questions",$question_id:"id",$question_title:"question",$question_type:"question_type",$question_answer:"answer"},reservation_update:{$sent_at:"meta.sent_at",$tripla_internal_id:"meta.tripla_internal_id",$membership_id:"meta.hashed_membership_id",$user_id:"meta.user_id",$language:"meta.language",$cookie_id:"meta.cookie_id",$page_category:"meta.page_category",$current_url:"meta.current_url",$hotel_id:"meta.hotel_id",$hotel_name:"meta.hotel_name",$brand_name:"meta.brand_name",$hotel_prefecture:"meta.hotel_prefecture",$search_id:"meta.search_id",$new_checkin_date:"request.checkin",$new_checkout_date:"request.checkout",$new_number_of_adults:"request.new_number_of_adults",$new_number_of_children:"request.new_number_of_children",$new_number_of_rooms:"request.new_number_of_rooms",$transaction_id:"request.reservation_number"},reservation_cancel:{$sent_at:"meta.sent_at",$tripla_internal_id:"meta.tripla_internal_id",$membership_id:"meta.hashed_membership_id",$user_id:"meta.user_id",$language:"meta.language",$cookie_id:"meta.cookie_id",$page_category:"meta.page_category",$current_url:"meta.current_url",$hotel_id:"meta.hotel_id",$hotel_name:"meta.hotel_name",$brand_name:"meta.brand_name",$hotel_prefecture:"meta.hotel_prefecture",$search_id:"meta.search_id",$checkin_date:"response.bookingDetails.checkin_date",$checkout_date:"response.bookingDetails.checkout_date",$number_of_adults:"response.bookingDetails.adults",$number_of_children:"response.bookingDetails.children",$number_of_nights:"response.bookingDetails.nights",$number_of_days_to_checkin:"response.bookingDetails.number_of_days_to_checkin",$transaction_id:"response.bookingDetails.reservation_number",$transaction_method:"response.bookingDetails.payment_method",$transaction_tax_amount:"response.bookingDetails.tax",$transaction_price_without_tax:"response.bookingDetails.total_price_without_tax",$transaction_refund_amount:"response.bookingDetails.refund_amount",$transaction_cancellation_fee:"response.bookingDetails.cancellation_fee",$transaction_total_price:"response.bookingDetails.total_price",$coupon_id:"response.bookingDetails.coupon_promotion.id",$coupon_code:"response.bookingDetails.coupon_promotion.coupon_code",$booking_cancellation_reason:"request.cancelReason",room_booking_detail:"response.bookingDetails.room",$room_id:"room_type_code",$room_name:"room_type_name",$room_type:"room_type_name",$room_size:"room_size",$plan_id:"room_plan_code",$plan_name:"room_plan_name",$number_of_adults_per_room:"adults",$number_of_children_per_room:"children"}};function V(e,t,r,a){if(Array.isArray(t)&&t.length>0){var i,_=t[0],s=null==_?void 0:_.type,u=N(r,e[s]);return"search_result"===s?function(e,t,r,a,i){var _,s=[],u=1,c="rooms"===a?"room_plan":"rooms",l=o(r);try{for(l.s();!(_=l.n()).done;){var m,p=_.value,d=o(p[c]);try{for(d.s();!(m=d.n()).done;){var h=m.value,$={};for(var f in t){var b=t[f],g=e[b];if("$room_size"===b)$[f]=X("rooms"===a?p.room_size:h.room_size);else if("$promotion_id"===b)$[f]=(h.membership_promotions||[]).map((function(e){return e.id})).join(",");else if("$promotion_name"===b)$[f]=(h.membership_promotions||[]).map((function(e){return e.name})).join(",");else if("$order"===b)$[f]=u;else{var y=N(p,g,null);n(y)&&(y=N(h,g,null)),n(y)&&(y=V(e,b,i)),$[f]=y}}s.push($),u++}}catch(e){d.e(e)}finally{d.f()}}}catch(e){l.e(e)}finally{l.f()}return s}(e,_,u,null==r||null===(i=r.request)||void 0===i?void 0:i.type,r):function(e,t,o,r,a){var i=[];for(var _ in o){var s=o[_],u={};for(var c in t){var l=t[c],m=V(e,l,s);n(m)&&(m=V(e,l,a)),u[c]=m}i.push(u)}return i}(e,_,u,0,r)}if(!String(t).startsWith("$"))return t;if("$number_of_rooms"===t)return 1;if("$currency_code"===t)return"JPY";if(e[t]){var c,l=e[t];return"$room_size"===t?X(N(r,l,null)):null!==(c=N(r,l,null))&&void 0!==c?c:null}}function X(e){return n(null==e?void 0:e.value)?"":"".concat(e.value," ").concat(e.unit)}e.Page={Confirmation:"confirmation",GuestDetail:"guest_detail",PaymentDetail:"payment_detail",ReservationCancel:"reservation_cancel",ReservationUpdate:"reservation_update",SearchResult:"search_result"},e.generateGtmPayload=function(e){var t,n=e.type,r=e.data,a=[],i=o(e.gtmSettings);try{for(i.s();!(t=i.n()).done;){var _=t.value,s={},u=null==_?void 0:_.object;for(var c in u)s[c]=V(Q[n],u[c],r,c);a.push(s)}}catch(e){i.e(e)}finally{i.f()}return a},Object.defineProperty(e,"__esModule",{value:!0})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tripla/gtm-converter",
3
- "version": "0.0.13",
3
+ "version": "0.0.14",
4
4
  "private": false,
5
5
  "main": "dist/tripla-gtm-converter.cjs.js",
6
6
  "module": "dist/tripla-gtm-converter.esm.js",