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