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