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