@tripla/gtm-converter 0.0.12 → 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',
@@ -38,6 +105,7 @@ var DynamicAttributesMap = {
38
105
  '$search_type': 'request.type',
39
106
  '$number_of_adults': 'request.number_of_adults',
40
107
  '$number_of_children': 'request.number_of_children',
108
+ '$room_search_filters': 'request.room_search_filters',
41
109
  '$room_id': 'room_type_code',
42
110
  // Inside array
43
111
  '$room_name': 'room_type_name',
@@ -53,10 +121,12 @@ var DynamicAttributesMap = {
53
121
  '$transaction_price_without_tax': 'total_price',
54
122
  // Inside array
55
123
  '$brr': 'has_brr' // Inside array
56
-
57
124
  },
125
+
58
126
  guest_detail: {
59
127
  '$sent_at': 'meta.sent_at',
128
+ '$tripla_internal_id': 'meta.tripla_internal_id',
129
+ '$membership_id': 'meta.hashed_membership_id',
60
130
  '$user_id': 'meta.user_id',
61
131
  '$language': 'meta.language',
62
132
  '$cookie_id': 'meta.cookie_id',
@@ -110,6 +180,8 @@ var DynamicAttributesMap = {
110
180
  },
111
181
  payment_detail: {
112
182
  '$sent_at': 'meta.sent_at',
183
+ '$tripla_internal_id': 'meta.tripla_internal_id',
184
+ '$membership_id': 'meta.hashed_membership_id',
113
185
  '$user_id': 'meta.user_id',
114
186
  '$language': 'meta.language',
115
187
  '$cookie_id': 'meta.cookie_id',
@@ -155,10 +227,12 @@ var DynamicAttributesMap = {
155
227
  '$brr': 'has_brr',
156
228
  // Inside array
157
229
  '$transaction_total_price_per_room': 'total_price' // Inside array
158
-
159
230
  },
231
+
160
232
  confirmation: {
161
233
  '$sent_at': 'meta.sent_at',
234
+ '$tripla_internal_id': 'meta.tripla_internal_id',
235
+ '$membership_id': 'meta.hashed_membership_id',
162
236
  '$user_id': 'meta.user_id',
163
237
  '$language': 'meta.language',
164
238
  '$cookie_id': 'meta.cookie_id',
@@ -216,6 +290,8 @@ var DynamicAttributesMap = {
216
290
  },
217
291
  reservation_update: {
218
292
  '$sent_at': 'meta.sent_at',
293
+ '$tripla_internal_id': 'meta.tripla_internal_id',
294
+ '$membership_id': 'meta.hashed_membership_id',
219
295
  '$user_id': 'meta.user_id',
220
296
  '$language': 'meta.language',
221
297
  '$cookie_id': 'meta.cookie_id',
@@ -235,6 +311,8 @@ var DynamicAttributesMap = {
235
311
  },
236
312
  reservation_cancel: {
237
313
  '$sent_at': 'meta.sent_at',
314
+ '$tripla_internal_id': 'meta.tripla_internal_id',
315
+ '$membership_id': 'meta.hashed_membership_id',
238
316
  '$user_id': 'meta.user_id',
239
317
  '$language': 'meta.language',
240
318
  '$cookie_id': 'meta.cookie_id',
@@ -278,138 +356,108 @@ var DynamicAttributesMap = {
278
356
  '$number_of_adults_per_room': 'adults',
279
357
  // Inside array
280
358
  '$number_of_children_per_room': 'children' // Inside array
281
-
282
359
  }
283
360
  };
361
+
284
362
  var generateGtmPayload = function generateGtmPayload(_ref) {
285
363
  var type = _ref.type,
286
- data = _ref.data,
287
- gtmSettings = _ref.gtmSettings;
364
+ data = _ref.data,
365
+ gtmSettings = _ref.gtmSettings;
288
366
  var result = [];
289
- var _iteratorNormalCompletion = true;
290
- var _didIteratorError = false;
291
- var _iteratorError = undefined;
292
-
367
+ var _iterator = _createForOfIteratorHelper(gtmSettings),
368
+ _step;
293
369
  try {
294
- for (var _iterator = gtmSettings[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
370
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
295
371
  var event = _step.value;
296
372
  var gtmPayload = {};
297
373
  var gtmBlueprint = event === null || event === void 0 ? void 0 : event.object;
298
-
299
374
  for (var key in gtmBlueprint) {
300
375
  gtmPayload[key] = mapGtmData(DynamicAttributesMap[type], gtmBlueprint[key], data, key);
301
376
  }
302
-
303
377
  result.push(gtmPayload);
304
378
  }
305
379
  } catch (err) {
306
- _didIteratorError = true;
307
- _iteratorError = err;
380
+ _iterator.e(err);
308
381
  } finally {
309
- try {
310
- if (!_iteratorNormalCompletion && _iterator.return != null) {
311
- _iterator.return();
312
- }
313
- } finally {
314
- if (_didIteratorError) {
315
- throw _iteratorError;
316
- }
317
- }
382
+ _iterator.f();
318
383
  }
319
-
320
384
  return result;
321
385
  };
322
-
323
386
  function mapGtmData(dynamicAttrMap, keyName, data, key) {
324
387
  if (Array.isArray(keyName) && keyName.length > 0) {
325
388
  // Assuming array can only contains one element
326
- var objectValues = keyName[0]; // Get the array type
327
-
328
- var arrayType = objectValues === null || objectValues === void 0 ? void 0 : objectValues.type; // Prepare the data
329
-
330
- var objectDatas = _get(data, dynamicAttrMap[arrayType]); // Special case for search_result
389
+ var objectValues = keyName[0];
331
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]);
332
395
 
396
+ // Special case for search_result
333
397
  if (arrayType === 'search_result') {
334
398
  var _data$request;
335
-
336
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);
337
- } // If the value is not one of those special cases, try to map the data back using a generic function
338
-
339
-
400
+ }
401
+ // If the value is not one of those special cases, try to map the data back using a generic function
340
402
  return mapGtmArrayData(dynamicAttrMap, objectValues, objectDatas, arrayType, data);
341
- } // If the value is static, just return it
342
-
343
-
344
- 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;
345
406
 
407
+ // Special values
346
408
  if (keyName === '$number_of_rooms') return 1;
347
- if (keyName === '$currency_code') return 'JPY'; // If the value can be mapped dynamically
409
+ if (keyName === '$currency_code') return 'JPY';
348
410
 
411
+ // If the value can be mapped dynamically
349
412
  if (dynamicAttrMap[keyName]) {
350
413
  var _get2;
351
-
352
414
  var _key = dynamicAttrMap[keyName];
353
-
354
415
  if (keyName === '$room_size') {
355
416
  return normalizeRoomSize(_get(data, _key, null));
356
417
  }
357
-
358
418
  return (_get2 = _get(data, _key, null)) !== null && _get2 !== void 0 ? _get2 : null;
359
419
  }
360
420
  }
361
-
362
421
  function mapGtmArrayData(dynamicAttrMap, objectValues, data, rootKey, rootData) {
363
422
  // Assuming array can only contains one element
364
423
  var result = [];
365
-
366
424
  for (var objectDataKey in data) {
367
425
  var objectData = data[objectDataKey];
368
426
  var resultObject = {};
369
-
370
427
  for (var objectKey in objectValues) {
371
428
  var objectValue = objectValues[objectKey];
372
429
  var mappedValue = mapGtmData(dynamicAttrMap, objectValue, objectData);
373
-
374
430
  if (_isNil(mappedValue)) {
375
431
  // Try to map again using root values
376
432
  mappedValue = mapGtmData(dynamicAttrMap, objectValue, rootData);
377
433
  }
378
-
379
434
  resultObject[objectKey] = mappedValue;
380
435
  }
381
-
382
436
  result.push(resultObject);
383
437
  }
384
-
385
438
  return result;
386
439
  }
387
-
388
440
  function mapSearchResult(dynamicAttrMap, arrayValues, arrayData, searchType, rootData) {
389
441
  var result = [];
390
442
  var itemIndex = 1;
391
443
  var itemKey = searchType === 'rooms' ? 'room_plan' : 'rooms';
392
- var _iteratorNormalCompletion2 = true;
393
- var _didIteratorError2 = false;
394
- var _iteratorError2 = undefined;
395
-
444
+ var _iterator2 = _createForOfIteratorHelper(arrayData),
445
+ _step2;
396
446
  try {
397
- for (var _iterator2 = arrayData[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
447
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
398
448
  var parentLevelData = _step2.value;
399
- var _iteratorNormalCompletion3 = true;
400
- var _didIteratorError3 = false;
401
- var _iteratorError3 = undefined;
402
-
449
+ var _iterator3 = _createForOfIteratorHelper(parentLevelData[itemKey]),
450
+ _step3;
403
451
  try {
404
- for (var _iterator3 = parentLevelData[itemKey][Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
452
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
405
453
  var childLevelData = _step3.value;
406
454
  var mappedData = {};
407
-
408
455
  for (var key in arrayValues) {
409
- var value = arrayValues[key]; // Get the actual attribute in the data
410
-
411
- var attribute = dynamicAttrMap[value]; // Special keys
456
+ var value = arrayValues[key];
457
+ // Get the actual attribute in the data
458
+ var attribute = dynamicAttrMap[value];
412
459
 
460
+ // Special keys
413
461
  if (value === '$room_size') {
414
462
  mappedData[key] = searchType === 'rooms' ? normalizeRoomSize(parentLevelData.room_size) : normalizeRoomSize(childLevelData.room_size);
415
463
  } else if (value === '$promotion_id') {
@@ -424,58 +472,34 @@ function mapSearchResult(dynamicAttrMap, arrayValues, arrayData, searchType, roo
424
472
  mappedData[key] = itemIndex;
425
473
  } else {
426
474
  // Try to map using parent level data
427
- var mapped = _get(parentLevelData, attribute, null); // If not found, try to map using child level
428
-
429
-
475
+ var mapped = _get(parentLevelData, attribute, null);
476
+ // If not found, try to map using child level
430
477
  if (_isNil(mapped)) {
431
478
  mapped = _get(childLevelData, attribute, null);
432
- } // If still not found, try to map using root level data
433
-
434
-
479
+ }
480
+ // If still not found, try to map using root level data
435
481
  if (_isNil(mapped)) {
436
482
  mapped = mapGtmData(dynamicAttrMap, value, rootData);
437
483
  }
438
-
439
484
  mappedData[key] = mapped;
440
485
  }
441
486
  }
442
-
443
487
  result.push(mappedData);
444
488
  itemIndex++;
445
489
  }
446
490
  } catch (err) {
447
- _didIteratorError3 = true;
448
- _iteratorError3 = err;
491
+ _iterator3.e(err);
449
492
  } finally {
450
- try {
451
- if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
452
- _iterator3.return();
453
- }
454
- } finally {
455
- if (_didIteratorError3) {
456
- throw _iteratorError3;
457
- }
458
- }
493
+ _iterator3.f();
459
494
  }
460
495
  }
461
496
  } catch (err) {
462
- _didIteratorError2 = true;
463
- _iteratorError2 = err;
497
+ _iterator2.e(err);
464
498
  } finally {
465
- try {
466
- if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
467
- _iterator2.return();
468
- }
469
- } finally {
470
- if (_didIteratorError2) {
471
- throw _iteratorError2;
472
- }
473
- }
499
+ _iterator2.f();
474
500
  }
475
-
476
501
  return result;
477
502
  }
478
-
479
503
  function normalizeRoomSize(roomSize) {
480
504
  if (_isNil(roomSize === null || roomSize === void 0 ? void 0 : roomSize.value)) return '';
481
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',
@@ -32,6 +99,7 @@ var DynamicAttributesMap = {
32
99
  '$search_type': 'request.type',
33
100
  '$number_of_adults': 'request.number_of_adults',
34
101
  '$number_of_children': 'request.number_of_children',
102
+ '$room_search_filters': 'request.room_search_filters',
35
103
  '$room_id': 'room_type_code',
36
104
  // Inside array
37
105
  '$room_name': 'room_type_name',
@@ -47,10 +115,12 @@ var DynamicAttributesMap = {
47
115
  '$transaction_price_without_tax': 'total_price',
48
116
  // Inside array
49
117
  '$brr': 'has_brr' // Inside array
50
-
51
118
  },
119
+
52
120
  guest_detail: {
53
121
  '$sent_at': 'meta.sent_at',
122
+ '$tripla_internal_id': 'meta.tripla_internal_id',
123
+ '$membership_id': 'meta.hashed_membership_id',
54
124
  '$user_id': 'meta.user_id',
55
125
  '$language': 'meta.language',
56
126
  '$cookie_id': 'meta.cookie_id',
@@ -104,6 +174,8 @@ var DynamicAttributesMap = {
104
174
  },
105
175
  payment_detail: {
106
176
  '$sent_at': 'meta.sent_at',
177
+ '$tripla_internal_id': 'meta.tripla_internal_id',
178
+ '$membership_id': 'meta.hashed_membership_id',
107
179
  '$user_id': 'meta.user_id',
108
180
  '$language': 'meta.language',
109
181
  '$cookie_id': 'meta.cookie_id',
@@ -149,10 +221,12 @@ var DynamicAttributesMap = {
149
221
  '$brr': 'has_brr',
150
222
  // Inside array
151
223
  '$transaction_total_price_per_room': 'total_price' // Inside array
152
-
153
224
  },
225
+
154
226
  confirmation: {
155
227
  '$sent_at': 'meta.sent_at',
228
+ '$tripla_internal_id': 'meta.tripla_internal_id',
229
+ '$membership_id': 'meta.hashed_membership_id',
156
230
  '$user_id': 'meta.user_id',
157
231
  '$language': 'meta.language',
158
232
  '$cookie_id': 'meta.cookie_id',
@@ -210,6 +284,8 @@ var DynamicAttributesMap = {
210
284
  },
211
285
  reservation_update: {
212
286
  '$sent_at': 'meta.sent_at',
287
+ '$tripla_internal_id': 'meta.tripla_internal_id',
288
+ '$membership_id': 'meta.hashed_membership_id',
213
289
  '$user_id': 'meta.user_id',
214
290
  '$language': 'meta.language',
215
291
  '$cookie_id': 'meta.cookie_id',
@@ -229,6 +305,8 @@ var DynamicAttributesMap = {
229
305
  },
230
306
  reservation_cancel: {
231
307
  '$sent_at': 'meta.sent_at',
308
+ '$tripla_internal_id': 'meta.tripla_internal_id',
309
+ '$membership_id': 'meta.hashed_membership_id',
232
310
  '$user_id': 'meta.user_id',
233
311
  '$language': 'meta.language',
234
312
  '$cookie_id': 'meta.cookie_id',
@@ -272,138 +350,108 @@ var DynamicAttributesMap = {
272
350
  '$number_of_adults_per_room': 'adults',
273
351
  // Inside array
274
352
  '$number_of_children_per_room': 'children' // Inside array
275
-
276
353
  }
277
354
  };
355
+
278
356
  var generateGtmPayload = function generateGtmPayload(_ref) {
279
357
  var type = _ref.type,
280
- data = _ref.data,
281
- gtmSettings = _ref.gtmSettings;
358
+ data = _ref.data,
359
+ gtmSettings = _ref.gtmSettings;
282
360
  var result = [];
283
- var _iteratorNormalCompletion = true;
284
- var _didIteratorError = false;
285
- var _iteratorError = undefined;
286
-
361
+ var _iterator = _createForOfIteratorHelper(gtmSettings),
362
+ _step;
287
363
  try {
288
- for (var _iterator = gtmSettings[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
364
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
289
365
  var event = _step.value;
290
366
  var gtmPayload = {};
291
367
  var gtmBlueprint = event === null || event === void 0 ? void 0 : event.object;
292
-
293
368
  for (var key in gtmBlueprint) {
294
369
  gtmPayload[key] = mapGtmData(DynamicAttributesMap[type], gtmBlueprint[key], data, key);
295
370
  }
296
-
297
371
  result.push(gtmPayload);
298
372
  }
299
373
  } catch (err) {
300
- _didIteratorError = true;
301
- _iteratorError = err;
374
+ _iterator.e(err);
302
375
  } finally {
303
- try {
304
- if (!_iteratorNormalCompletion && _iterator.return != null) {
305
- _iterator.return();
306
- }
307
- } finally {
308
- if (_didIteratorError) {
309
- throw _iteratorError;
310
- }
311
- }
376
+ _iterator.f();
312
377
  }
313
-
314
378
  return result;
315
379
  };
316
-
317
380
  function mapGtmData(dynamicAttrMap, keyName, data, key) {
318
381
  if (Array.isArray(keyName) && keyName.length > 0) {
319
382
  // Assuming array can only contains one element
320
- var objectValues = keyName[0]; // Get the array type
321
-
322
- var arrayType = objectValues === null || objectValues === void 0 ? void 0 : objectValues.type; // Prepare the data
323
-
324
- var objectDatas = _get(data, dynamicAttrMap[arrayType]); // Special case for search_result
383
+ var objectValues = keyName[0];
325
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]);
326
389
 
390
+ // Special case for search_result
327
391
  if (arrayType === 'search_result') {
328
392
  var _data$request;
329
-
330
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);
331
- } // If the value is not one of those special cases, try to map the data back using a generic function
332
-
333
-
394
+ }
395
+ // If the value is not one of those special cases, try to map the data back using a generic function
334
396
  return mapGtmArrayData(dynamicAttrMap, objectValues, objectDatas, arrayType, data);
335
- } // If the value is static, just return it
336
-
337
-
338
- 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;
339
400
 
401
+ // Special values
340
402
  if (keyName === '$number_of_rooms') return 1;
341
- if (keyName === '$currency_code') return 'JPY'; // If the value can be mapped dynamically
403
+ if (keyName === '$currency_code') return 'JPY';
342
404
 
405
+ // If the value can be mapped dynamically
343
406
  if (dynamicAttrMap[keyName]) {
344
407
  var _get2;
345
-
346
408
  var _key = dynamicAttrMap[keyName];
347
-
348
409
  if (keyName === '$room_size') {
349
410
  return normalizeRoomSize(_get(data, _key, null));
350
411
  }
351
-
352
412
  return (_get2 = _get(data, _key, null)) !== null && _get2 !== void 0 ? _get2 : null;
353
413
  }
354
414
  }
355
-
356
415
  function mapGtmArrayData(dynamicAttrMap, objectValues, data, rootKey, rootData) {
357
416
  // Assuming array can only contains one element
358
417
  var result = [];
359
-
360
418
  for (var objectDataKey in data) {
361
419
  var objectData = data[objectDataKey];
362
420
  var resultObject = {};
363
-
364
421
  for (var objectKey in objectValues) {
365
422
  var objectValue = objectValues[objectKey];
366
423
  var mappedValue = mapGtmData(dynamicAttrMap, objectValue, objectData);
367
-
368
424
  if (_isNil(mappedValue)) {
369
425
  // Try to map again using root values
370
426
  mappedValue = mapGtmData(dynamicAttrMap, objectValue, rootData);
371
427
  }
372
-
373
428
  resultObject[objectKey] = mappedValue;
374
429
  }
375
-
376
430
  result.push(resultObject);
377
431
  }
378
-
379
432
  return result;
380
433
  }
381
-
382
434
  function mapSearchResult(dynamicAttrMap, arrayValues, arrayData, searchType, rootData) {
383
435
  var result = [];
384
436
  var itemIndex = 1;
385
437
  var itemKey = searchType === 'rooms' ? 'room_plan' : 'rooms';
386
- var _iteratorNormalCompletion2 = true;
387
- var _didIteratorError2 = false;
388
- var _iteratorError2 = undefined;
389
-
438
+ var _iterator2 = _createForOfIteratorHelper(arrayData),
439
+ _step2;
390
440
  try {
391
- for (var _iterator2 = arrayData[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
441
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
392
442
  var parentLevelData = _step2.value;
393
- var _iteratorNormalCompletion3 = true;
394
- var _didIteratorError3 = false;
395
- var _iteratorError3 = undefined;
396
-
443
+ var _iterator3 = _createForOfIteratorHelper(parentLevelData[itemKey]),
444
+ _step3;
397
445
  try {
398
- for (var _iterator3 = parentLevelData[itemKey][Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
446
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
399
447
  var childLevelData = _step3.value;
400
448
  var mappedData = {};
401
-
402
449
  for (var key in arrayValues) {
403
- var value = arrayValues[key]; // Get the actual attribute in the data
404
-
405
- var attribute = dynamicAttrMap[value]; // Special keys
450
+ var value = arrayValues[key];
451
+ // Get the actual attribute in the data
452
+ var attribute = dynamicAttrMap[value];
406
453
 
454
+ // Special keys
407
455
  if (value === '$room_size') {
408
456
  mappedData[key] = searchType === 'rooms' ? normalizeRoomSize(parentLevelData.room_size) : normalizeRoomSize(childLevelData.room_size);
409
457
  } else if (value === '$promotion_id') {
@@ -418,58 +466,34 @@ function mapSearchResult(dynamicAttrMap, arrayValues, arrayData, searchType, roo
418
466
  mappedData[key] = itemIndex;
419
467
  } else {
420
468
  // Try to map using parent level data
421
- var mapped = _get(parentLevelData, attribute, null); // If not found, try to map using child level
422
-
423
-
469
+ var mapped = _get(parentLevelData, attribute, null);
470
+ // If not found, try to map using child level
424
471
  if (_isNil(mapped)) {
425
472
  mapped = _get(childLevelData, attribute, null);
426
- } // If still not found, try to map using root level data
427
-
428
-
473
+ }
474
+ // If still not found, try to map using root level data
429
475
  if (_isNil(mapped)) {
430
476
  mapped = mapGtmData(dynamicAttrMap, value, rootData);
431
477
  }
432
-
433
478
  mappedData[key] = mapped;
434
479
  }
435
480
  }
436
-
437
481
  result.push(mappedData);
438
482
  itemIndex++;
439
483
  }
440
484
  } catch (err) {
441
- _didIteratorError3 = true;
442
- _iteratorError3 = err;
485
+ _iterator3.e(err);
443
486
  } finally {
444
- try {
445
- if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
446
- _iterator3.return();
447
- }
448
- } finally {
449
- if (_didIteratorError3) {
450
- throw _iteratorError3;
451
- }
452
- }
487
+ _iterator3.f();
453
488
  }
454
489
  }
455
490
  } catch (err) {
456
- _didIteratorError2 = true;
457
- _iteratorError2 = err;
491
+ _iterator2.e(err);
458
492
  } finally {
459
- try {
460
- if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
461
- _iterator2.return();
462
- }
463
- } finally {
464
- if (_didIteratorError2) {
465
- throw _iteratorError2;
466
- }
467
- }
493
+ _iterator2.f();
468
494
  }
469
-
470
495
  return result;
471
496
  }
472
-
473
497
  function normalizeRoomSize(roomSize) {
474
498
  if (_isNil(roomSize === null || roomSize === void 0 ? void 0 : roomSize.value)) return '';
475
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_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.12",
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",