@tripla/gtm-converter 0.0.13 → 0.0.15

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',
@@ -124,6 +195,7 @@ var DynamicAttributesMap = {
124
195
  '$utm_campaign': 'meta.utm_campaign',
125
196
  '$utm_medium': 'meta.utm_medium',
126
197
  '$search_id': 'meta.search_id',
198
+ '$guest_booking': 'meta.guest_booking',
127
199
  '$checkin_date': 'response.bookingDetails.checkin_date',
128
200
  '$checkout_date': 'response.bookingDetails.checkout_date',
129
201
  '$number_of_days_to_checkin': 'response.bookingDetails.number_of_days_to_checkin',
@@ -156,10 +228,12 @@ var DynamicAttributesMap = {
156
228
  '$brr': 'has_brr',
157
229
  // Inside array
158
230
  '$transaction_total_price_per_room': 'total_price' // Inside array
159
-
160
231
  },
232
+
161
233
  confirmation: {
162
234
  '$sent_at': 'meta.sent_at',
235
+ '$tripla_internal_id': 'meta.tripla_internal_id',
236
+ '$membership_id': 'meta.hashed_membership_id',
163
237
  '$user_id': 'meta.user_id',
164
238
  '$language': 'meta.language',
165
239
  '$cookie_id': 'meta.cookie_id',
@@ -173,6 +247,7 @@ var DynamicAttributesMap = {
173
247
  '$utm_campaign': 'meta.utm_campaign',
174
248
  '$utm_medium': 'meta.utm_medium',
175
249
  '$search_id': 'meta.search_id',
250
+ '$guest_booking': 'meta.guest_booking',
176
251
  '$checkin_date': 'response.bookingDetails.checkin_date',
177
252
  '$checkout_date': 'response.bookingDetails.checkout_date',
178
253
  '$booking_date': 'response.bookingDetails.booking_date',
@@ -217,6 +292,8 @@ var DynamicAttributesMap = {
217
292
  },
218
293
  reservation_update: {
219
294
  '$sent_at': 'meta.sent_at',
295
+ '$tripla_internal_id': 'meta.tripla_internal_id',
296
+ '$membership_id': 'meta.hashed_membership_id',
220
297
  '$user_id': 'meta.user_id',
221
298
  '$language': 'meta.language',
222
299
  '$cookie_id': 'meta.cookie_id',
@@ -236,6 +313,8 @@ var DynamicAttributesMap = {
236
313
  },
237
314
  reservation_cancel: {
238
315
  '$sent_at': 'meta.sent_at',
316
+ '$tripla_internal_id': 'meta.tripla_internal_id',
317
+ '$membership_id': 'meta.hashed_membership_id',
239
318
  '$user_id': 'meta.user_id',
240
319
  '$language': 'meta.language',
241
320
  '$cookie_id': 'meta.cookie_id',
@@ -279,138 +358,108 @@ var DynamicAttributesMap = {
279
358
  '$number_of_adults_per_room': 'adults',
280
359
  // Inside array
281
360
  '$number_of_children_per_room': 'children' // Inside array
282
-
283
361
  }
284
362
  };
363
+
285
364
  var generateGtmPayload = function generateGtmPayload(_ref) {
286
365
  var type = _ref.type,
287
- data = _ref.data,
288
- gtmSettings = _ref.gtmSettings;
366
+ data = _ref.data,
367
+ gtmSettings = _ref.gtmSettings;
289
368
  var result = [];
290
- var _iteratorNormalCompletion = true;
291
- var _didIteratorError = false;
292
- var _iteratorError = undefined;
293
-
369
+ var _iterator = _createForOfIteratorHelper(gtmSettings),
370
+ _step;
294
371
  try {
295
- for (var _iterator = gtmSettings[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
372
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
296
373
  var event = _step.value;
297
374
  var gtmPayload = {};
298
375
  var gtmBlueprint = event === null || event === void 0 ? void 0 : event.object;
299
-
300
376
  for (var key in gtmBlueprint) {
301
377
  gtmPayload[key] = mapGtmData(DynamicAttributesMap[type], gtmBlueprint[key], data, key);
302
378
  }
303
-
304
379
  result.push(gtmPayload);
305
380
  }
306
381
  } catch (err) {
307
- _didIteratorError = true;
308
- _iteratorError = err;
382
+ _iterator.e(err);
309
383
  } finally {
310
- try {
311
- if (!_iteratorNormalCompletion && _iterator.return != null) {
312
- _iterator.return();
313
- }
314
- } finally {
315
- if (_didIteratorError) {
316
- throw _iteratorError;
317
- }
318
- }
384
+ _iterator.f();
319
385
  }
320
-
321
386
  return result;
322
387
  };
323
-
324
388
  function mapGtmData(dynamicAttrMap, keyName, data, key) {
325
389
  if (Array.isArray(keyName) && keyName.length > 0) {
326
390
  // 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
391
+ var objectValues = keyName[0];
332
392
 
393
+ // Get the array type
394
+ var arrayType = objectValues === null || objectValues === void 0 ? void 0 : objectValues.type;
395
+ // Prepare the data
396
+ var objectDatas = _get(data, dynamicAttrMap[arrayType]);
333
397
 
398
+ // Special case for search_result
334
399
  if (arrayType === 'search_result') {
335
400
  var _data$request;
336
-
337
401
  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
-
402
+ }
403
+ // If the value is not one of those special cases, try to map the data back using a generic function
341
404
  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
405
+ }
406
+ // If the value is static, just return it
407
+ if (!String(keyName).startsWith('$')) return keyName;
346
408
 
409
+ // Special values
347
410
  if (keyName === '$number_of_rooms') return 1;
348
- if (keyName === '$currency_code') return 'JPY'; // If the value can be mapped dynamically
411
+ if (keyName === '$currency_code') return 'JPY';
349
412
 
413
+ // If the value can be mapped dynamically
350
414
  if (dynamicAttrMap[keyName]) {
351
415
  var _get2;
352
-
353
416
  var _key = dynamicAttrMap[keyName];
354
-
355
417
  if (keyName === '$room_size') {
356
418
  return normalizeRoomSize(_get(data, _key, null));
357
419
  }
358
-
359
420
  return (_get2 = _get(data, _key, null)) !== null && _get2 !== void 0 ? _get2 : null;
360
421
  }
361
422
  }
362
-
363
423
  function mapGtmArrayData(dynamicAttrMap, objectValues, data, rootKey, rootData) {
364
424
  // Assuming array can only contains one element
365
425
  var result = [];
366
-
367
426
  for (var objectDataKey in data) {
368
427
  var objectData = data[objectDataKey];
369
428
  var resultObject = {};
370
-
371
429
  for (var objectKey in objectValues) {
372
430
  var objectValue = objectValues[objectKey];
373
431
  var mappedValue = mapGtmData(dynamicAttrMap, objectValue, objectData);
374
-
375
432
  if (_isNil(mappedValue)) {
376
433
  // Try to map again using root values
377
434
  mappedValue = mapGtmData(dynamicAttrMap, objectValue, rootData);
378
435
  }
379
-
380
436
  resultObject[objectKey] = mappedValue;
381
437
  }
382
-
383
438
  result.push(resultObject);
384
439
  }
385
-
386
440
  return result;
387
441
  }
388
-
389
442
  function mapSearchResult(dynamicAttrMap, arrayValues, arrayData, searchType, rootData) {
390
443
  var result = [];
391
444
  var itemIndex = 1;
392
445
  var itemKey = searchType === 'rooms' ? 'room_plan' : 'rooms';
393
- var _iteratorNormalCompletion2 = true;
394
- var _didIteratorError2 = false;
395
- var _iteratorError2 = undefined;
396
-
446
+ var _iterator2 = _createForOfIteratorHelper(arrayData),
447
+ _step2;
397
448
  try {
398
- for (var _iterator2 = arrayData[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
449
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
399
450
  var parentLevelData = _step2.value;
400
- var _iteratorNormalCompletion3 = true;
401
- var _didIteratorError3 = false;
402
- var _iteratorError3 = undefined;
403
-
451
+ var _iterator3 = _createForOfIteratorHelper(parentLevelData[itemKey]),
452
+ _step3;
404
453
  try {
405
- for (var _iterator3 = parentLevelData[itemKey][Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
454
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
406
455
  var childLevelData = _step3.value;
407
456
  var mappedData = {};
408
-
409
457
  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
458
+ var value = arrayValues[key];
459
+ // Get the actual attribute in the data
460
+ var attribute = dynamicAttrMap[value];
413
461
 
462
+ // Special keys
414
463
  if (value === '$room_size') {
415
464
  mappedData[key] = searchType === 'rooms' ? normalizeRoomSize(parentLevelData.room_size) : normalizeRoomSize(childLevelData.room_size);
416
465
  } else if (value === '$promotion_id') {
@@ -425,58 +474,34 @@ function mapSearchResult(dynamicAttrMap, arrayValues, arrayData, searchType, roo
425
474
  mappedData[key] = itemIndex;
426
475
  } else {
427
476
  // 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
-
477
+ var mapped = _get(parentLevelData, attribute, null);
478
+ // If not found, try to map using child level
431
479
  if (_isNil(mapped)) {
432
480
  mapped = _get(childLevelData, attribute, null);
433
- } // If still not found, try to map using root level data
434
-
435
-
481
+ }
482
+ // If still not found, try to map using root level data
436
483
  if (_isNil(mapped)) {
437
484
  mapped = mapGtmData(dynamicAttrMap, value, rootData);
438
485
  }
439
-
440
486
  mappedData[key] = mapped;
441
487
  }
442
488
  }
443
-
444
489
  result.push(mappedData);
445
490
  itemIndex++;
446
491
  }
447
492
  } catch (err) {
448
- _didIteratorError3 = true;
449
- _iteratorError3 = err;
493
+ _iterator3.e(err);
450
494
  } finally {
451
- try {
452
- if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
453
- _iterator3.return();
454
- }
455
- } finally {
456
- if (_didIteratorError3) {
457
- throw _iteratorError3;
458
- }
459
- }
495
+ _iterator3.f();
460
496
  }
461
497
  }
462
498
  } catch (err) {
463
- _didIteratorError2 = true;
464
- _iteratorError2 = err;
499
+ _iterator2.e(err);
465
500
  } finally {
466
- try {
467
- if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
468
- _iterator2.return();
469
- }
470
- } finally {
471
- if (_didIteratorError2) {
472
- throw _iteratorError2;
473
- }
474
- }
501
+ _iterator2.f();
475
502
  }
476
-
477
503
  return result;
478
504
  }
479
-
480
505
  function normalizeRoomSize(roomSize) {
481
506
  if (_isNil(roomSize === null || roomSize === void 0 ? void 0 : roomSize.value)) return '';
482
507
  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',
@@ -118,6 +189,7 @@ var DynamicAttributesMap = {
118
189
  '$utm_campaign': 'meta.utm_campaign',
119
190
  '$utm_medium': 'meta.utm_medium',
120
191
  '$search_id': 'meta.search_id',
192
+ '$guest_booking': 'meta.guest_booking',
121
193
  '$checkin_date': 'response.bookingDetails.checkin_date',
122
194
  '$checkout_date': 'response.bookingDetails.checkout_date',
123
195
  '$number_of_days_to_checkin': 'response.bookingDetails.number_of_days_to_checkin',
@@ -150,10 +222,12 @@ var DynamicAttributesMap = {
150
222
  '$brr': 'has_brr',
151
223
  // Inside array
152
224
  '$transaction_total_price_per_room': 'total_price' // Inside array
153
-
154
225
  },
226
+
155
227
  confirmation: {
156
228
  '$sent_at': 'meta.sent_at',
229
+ '$tripla_internal_id': 'meta.tripla_internal_id',
230
+ '$membership_id': 'meta.hashed_membership_id',
157
231
  '$user_id': 'meta.user_id',
158
232
  '$language': 'meta.language',
159
233
  '$cookie_id': 'meta.cookie_id',
@@ -167,6 +241,7 @@ var DynamicAttributesMap = {
167
241
  '$utm_campaign': 'meta.utm_campaign',
168
242
  '$utm_medium': 'meta.utm_medium',
169
243
  '$search_id': 'meta.search_id',
244
+ '$guest_booking': 'meta.guest_booking',
170
245
  '$checkin_date': 'response.bookingDetails.checkin_date',
171
246
  '$checkout_date': 'response.bookingDetails.checkout_date',
172
247
  '$booking_date': 'response.bookingDetails.booking_date',
@@ -211,6 +286,8 @@ var DynamicAttributesMap = {
211
286
  },
212
287
  reservation_update: {
213
288
  '$sent_at': 'meta.sent_at',
289
+ '$tripla_internal_id': 'meta.tripla_internal_id',
290
+ '$membership_id': 'meta.hashed_membership_id',
214
291
  '$user_id': 'meta.user_id',
215
292
  '$language': 'meta.language',
216
293
  '$cookie_id': 'meta.cookie_id',
@@ -230,6 +307,8 @@ var DynamicAttributesMap = {
230
307
  },
231
308
  reservation_cancel: {
232
309
  '$sent_at': 'meta.sent_at',
310
+ '$tripla_internal_id': 'meta.tripla_internal_id',
311
+ '$membership_id': 'meta.hashed_membership_id',
233
312
  '$user_id': 'meta.user_id',
234
313
  '$language': 'meta.language',
235
314
  '$cookie_id': 'meta.cookie_id',
@@ -273,138 +352,108 @@ var DynamicAttributesMap = {
273
352
  '$number_of_adults_per_room': 'adults',
274
353
  // Inside array
275
354
  '$number_of_children_per_room': 'children' // Inside array
276
-
277
355
  }
278
356
  };
357
+
279
358
  var generateGtmPayload = function generateGtmPayload(_ref) {
280
359
  var type = _ref.type,
281
- data = _ref.data,
282
- gtmSettings = _ref.gtmSettings;
360
+ data = _ref.data,
361
+ gtmSettings = _ref.gtmSettings;
283
362
  var result = [];
284
- var _iteratorNormalCompletion = true;
285
- var _didIteratorError = false;
286
- var _iteratorError = undefined;
287
-
363
+ var _iterator = _createForOfIteratorHelper(gtmSettings),
364
+ _step;
288
365
  try {
289
- for (var _iterator = gtmSettings[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
366
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
290
367
  var event = _step.value;
291
368
  var gtmPayload = {};
292
369
  var gtmBlueprint = event === null || event === void 0 ? void 0 : event.object;
293
-
294
370
  for (var key in gtmBlueprint) {
295
371
  gtmPayload[key] = mapGtmData(DynamicAttributesMap[type], gtmBlueprint[key], data, key);
296
372
  }
297
-
298
373
  result.push(gtmPayload);
299
374
  }
300
375
  } catch (err) {
301
- _didIteratorError = true;
302
- _iteratorError = err;
376
+ _iterator.e(err);
303
377
  } finally {
304
- try {
305
- if (!_iteratorNormalCompletion && _iterator.return != null) {
306
- _iterator.return();
307
- }
308
- } finally {
309
- if (_didIteratorError) {
310
- throw _iteratorError;
311
- }
312
- }
378
+ _iterator.f();
313
379
  }
314
-
315
380
  return result;
316
381
  };
317
-
318
382
  function mapGtmData(dynamicAttrMap, keyName, data, key) {
319
383
  if (Array.isArray(keyName) && keyName.length > 0) {
320
384
  // 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
385
+ var objectValues = keyName[0];
326
386
 
387
+ // Get the array type
388
+ var arrayType = objectValues === null || objectValues === void 0 ? void 0 : objectValues.type;
389
+ // Prepare the data
390
+ var objectDatas = _get(data, dynamicAttrMap[arrayType]);
327
391
 
392
+ // Special case for search_result
328
393
  if (arrayType === 'search_result') {
329
394
  var _data$request;
330
-
331
395
  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
-
396
+ }
397
+ // If the value is not one of those special cases, try to map the data back using a generic function
335
398
  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
399
+ }
400
+ // If the value is static, just return it
401
+ if (!String(keyName).startsWith('$')) return keyName;
340
402
 
403
+ // Special values
341
404
  if (keyName === '$number_of_rooms') return 1;
342
- if (keyName === '$currency_code') return 'JPY'; // If the value can be mapped dynamically
405
+ if (keyName === '$currency_code') return 'JPY';
343
406
 
407
+ // If the value can be mapped dynamically
344
408
  if (dynamicAttrMap[keyName]) {
345
409
  var _get2;
346
-
347
410
  var _key = dynamicAttrMap[keyName];
348
-
349
411
  if (keyName === '$room_size') {
350
412
  return normalizeRoomSize(_get(data, _key, null));
351
413
  }
352
-
353
414
  return (_get2 = _get(data, _key, null)) !== null && _get2 !== void 0 ? _get2 : null;
354
415
  }
355
416
  }
356
-
357
417
  function mapGtmArrayData(dynamicAttrMap, objectValues, data, rootKey, rootData) {
358
418
  // Assuming array can only contains one element
359
419
  var result = [];
360
-
361
420
  for (var objectDataKey in data) {
362
421
  var objectData = data[objectDataKey];
363
422
  var resultObject = {};
364
-
365
423
  for (var objectKey in objectValues) {
366
424
  var objectValue = objectValues[objectKey];
367
425
  var mappedValue = mapGtmData(dynamicAttrMap, objectValue, objectData);
368
-
369
426
  if (_isNil(mappedValue)) {
370
427
  // Try to map again using root values
371
428
  mappedValue = mapGtmData(dynamicAttrMap, objectValue, rootData);
372
429
  }
373
-
374
430
  resultObject[objectKey] = mappedValue;
375
431
  }
376
-
377
432
  result.push(resultObject);
378
433
  }
379
-
380
434
  return result;
381
435
  }
382
-
383
436
  function mapSearchResult(dynamicAttrMap, arrayValues, arrayData, searchType, rootData) {
384
437
  var result = [];
385
438
  var itemIndex = 1;
386
439
  var itemKey = searchType === 'rooms' ? 'room_plan' : 'rooms';
387
- var _iteratorNormalCompletion2 = true;
388
- var _didIteratorError2 = false;
389
- var _iteratorError2 = undefined;
390
-
440
+ var _iterator2 = _createForOfIteratorHelper(arrayData),
441
+ _step2;
391
442
  try {
392
- for (var _iterator2 = arrayData[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
443
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
393
444
  var parentLevelData = _step2.value;
394
- var _iteratorNormalCompletion3 = true;
395
- var _didIteratorError3 = false;
396
- var _iteratorError3 = undefined;
397
-
445
+ var _iterator3 = _createForOfIteratorHelper(parentLevelData[itemKey]),
446
+ _step3;
398
447
  try {
399
- for (var _iterator3 = parentLevelData[itemKey][Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
448
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
400
449
  var childLevelData = _step3.value;
401
450
  var mappedData = {};
402
-
403
451
  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
452
+ var value = arrayValues[key];
453
+ // Get the actual attribute in the data
454
+ var attribute = dynamicAttrMap[value];
407
455
 
456
+ // Special keys
408
457
  if (value === '$room_size') {
409
458
  mappedData[key] = searchType === 'rooms' ? normalizeRoomSize(parentLevelData.room_size) : normalizeRoomSize(childLevelData.room_size);
410
459
  } else if (value === '$promotion_id') {
@@ -419,58 +468,34 @@ function mapSearchResult(dynamicAttrMap, arrayValues, arrayData, searchType, roo
419
468
  mappedData[key] = itemIndex;
420
469
  } else {
421
470
  // 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
-
471
+ var mapped = _get(parentLevelData, attribute, null);
472
+ // If not found, try to map using child level
425
473
  if (_isNil(mapped)) {
426
474
  mapped = _get(childLevelData, attribute, null);
427
- } // If still not found, try to map using root level data
428
-
429
-
475
+ }
476
+ // If still not found, try to map using root level data
430
477
  if (_isNil(mapped)) {
431
478
  mapped = mapGtmData(dynamicAttrMap, value, rootData);
432
479
  }
433
-
434
480
  mappedData[key] = mapped;
435
481
  }
436
482
  }
437
-
438
483
  result.push(mappedData);
439
484
  itemIndex++;
440
485
  }
441
486
  } catch (err) {
442
- _didIteratorError3 = true;
443
- _iteratorError3 = err;
487
+ _iterator3.e(err);
444
488
  } finally {
445
- try {
446
- if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
447
- _iterator3.return();
448
- }
449
- } finally {
450
- if (_didIteratorError3) {
451
- throw _iteratorError3;
452
- }
453
- }
489
+ _iterator3.f();
454
490
  }
455
491
  }
456
492
  } catch (err) {
457
- _didIteratorError2 = true;
458
- _iteratorError2 = err;
493
+ _iterator2.e(err);
459
494
  } finally {
460
- try {
461
- if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
462
- _iterator2.return();
463
- }
464
- } finally {
465
- if (_didIteratorError2) {
466
- throw _iteratorError2;
467
- }
468
- }
495
+ _iterator2.f();
469
496
  }
470
-
471
497
  return result;
472
498
  }
473
-
474
499
  function normalizeRoomSize(roomSize) {
475
500
  if (_isNil(roomSize === null || roomSize === void 0 ? void 0 : roomSize.value)) return '';
476
501
  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",$guest_booking:"meta.guest_booking",$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",$guest_booking:"meta.guest_booking",$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.15",
4
4
  "private": false,
5
5
  "main": "dist/tripla-gtm-converter.cjs.js",
6
6
  "module": "dist/tripla-gtm-converter.esm.js",