@cleartrip/ct-design-header 1.3.0 → 1.4.0-SNAPSHOT-multi-date-range-selector.0
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.
- package/dist/EliteDropDown/EliteBenefitsContent.d.ts +11 -0
- package/dist/EliteDropDown/EliteBenefitsContent.d.ts.map +1 -0
- package/dist/EliteDropDown/index.d.ts +7 -0
- package/dist/EliteDropDown/index.d.ts.map +1 -0
- package/dist/EliteDropDown/style.d.ts +10 -0
- package/dist/EliteDropDown/style.d.ts.map +1 -0
- package/dist/Header.d.ts.map +1 -1
- package/dist/HeaderAnimatedMask /index.d.ts +1 -1
- package/dist/HeaderAnimatedMask /index.d.ts.map +1 -1
- package/dist/RewardsSection/LoyaltyChips.d.ts +1 -1
- package/dist/RewardsSection/LoyaltyChips.d.ts.map +1 -1
- package/dist/RewardsSection/index.d.ts.map +1 -1
- package/dist/RewardsSection/loyaltyTypes.d.ts +6 -5
- package/dist/RewardsSection/loyaltyTypes.d.ts.map +1 -1
- package/dist/UserAccount/AccountEliteStrip/EliteStatusBadge.d.ts +8 -0
- package/dist/UserAccount/AccountEliteStrip/EliteStatusBadge.d.ts.map +1 -0
- package/dist/UserAccount/AccountEliteStrip/index.d.ts +8 -0
- package/dist/UserAccount/AccountEliteStrip/index.d.ts.map +1 -0
- package/dist/UserAccount/UserAccountDropdown.d.ts.map +1 -1
- package/dist/constants.d.ts +29 -3
- package/dist/constants.d.ts.map +1 -1
- package/dist/ct-design-header.browser.cjs.js +1 -1
- package/dist/ct-design-header.browser.cjs.js.map +1 -1
- package/dist/ct-design-header.browser.esm.js +1 -1
- package/dist/ct-design-header.browser.esm.js.map +1 -1
- package/dist/ct-design-header.cjs.js +622 -88
- package/dist/ct-design-header.cjs.js.map +1 -1
- package/dist/ct-design-header.esm.js +624 -90
- package/dist/ct-design-header.esm.js.map +1 -1
- package/dist/ct-design-header.umd.js +622 -92
- package/dist/ct-design-header.umd.js.map +1 -1
- package/dist/hooks/useEliteRaven.d.ts +25 -0
- package/dist/hooks/useEliteRaven.d.ts.map +1 -0
- package/dist/styles.d.ts +15 -0
- package/dist/styles.d.ts.map +1 -1
- package/dist/type.d.ts +12 -2
- package/dist/type.d.ts.map +1 -1
- package/dist/utils.d.ts +33 -1
- package/dist/utils.d.ts.map +1 -1
- package/package.json +13 -9
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react/jsx-runtime'), require('react'), require('@cleartrip/ct-design-container'), require('@cleartrip/ct-design-typography'), require('@cleartrip/ct-design-button'), require('@cleartrip/ct-design-divider'), require('@cleartrip/ct-design-icons'), require('styled-components')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports', 'react/jsx-runtime', 'react', '@cleartrip/ct-design-container', '@cleartrip/ct-design-typography', '@cleartrip/ct-design-button', '@cleartrip/ct-design-divider', '@cleartrip/ct-design-icons', 'styled-components'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.CTDesignSystemHeader = {}, global.jsxRuntime, global.React, global.ctDesignContainer, global.ctDesignTypography, global.ctDesignButton, global.ctDesignDivider, global.ctDesignIcons, global.styled));
|
|
5
|
-
})(this, (function (exports, jsxRuntime, react, ctDesignContainer, ctDesignTypography, ctDesignButton, ctDesignDivider, ctDesignIcons, styled) { 'use strict';
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react/jsx-runtime'), require('react'), require('@cleartrip/ct-design-container'), require('@cleartrip/ct-design-typography'), require('@cleartrip/ct-design-button'), require('@cleartrip/ct-design-divider'), require('@cleartrip/ct-design-loyalty-pill'), require('@cleartrip/ct-design-icons'), require('@cleartrip/ct-design-common-utils'), require('styled-components'), require('@cleartrip/ct-design-intersection-observer'), require('@cleartrip/ct-design-theme')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', 'react/jsx-runtime', 'react', '@cleartrip/ct-design-container', '@cleartrip/ct-design-typography', '@cleartrip/ct-design-button', '@cleartrip/ct-design-divider', '@cleartrip/ct-design-loyalty-pill', '@cleartrip/ct-design-icons', '@cleartrip/ct-design-common-utils', 'styled-components', '@cleartrip/ct-design-intersection-observer', '@cleartrip/ct-design-theme'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.CTDesignSystemHeader = {}, global.jsxRuntime, global.React, global.ctDesignContainer, global.ctDesignTypography, global.ctDesignButton, global.ctDesignDivider, global.ctDesignLoyaltyPill, global.ctDesignIcons, global.ctDesignCommonUtils, global.styled, global.ctDesignIntersectionObserver, global.ctDesignTheme));
|
|
5
|
+
})(this, (function (exports, jsxRuntime, react, ctDesignContainer, ctDesignTypography, ctDesignButton, ctDesignDivider, ctDesignLoyaltyPill, ctDesignIcons, ctDesignCommonUtils, styled, ctDesignIntersectionObserver, ctDesignTheme) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
8
8
|
|
|
@@ -61,6 +61,7 @@
|
|
|
61
61
|
var OFFERS_URL = '/all-offers/?categories=flights';
|
|
62
62
|
var MY_TRIPS_URL = '/accounts/trips';
|
|
63
63
|
var SUPPORT_URL = '/support';
|
|
64
|
+
var ELITE_NAV_TEXT = 'Elite';
|
|
64
65
|
var NAVBAR_OPTIONS = [{
|
|
65
66
|
lefticon: ctDesignIcons.Offers,
|
|
66
67
|
text: 'Offers',
|
|
@@ -88,7 +89,29 @@
|
|
|
88
89
|
isHoverable: false,
|
|
89
90
|
isClickable: true,
|
|
90
91
|
link: SUPPORT_URL
|
|
92
|
+
}, {
|
|
93
|
+
text: ELITE_NAV_TEXT,
|
|
94
|
+
ravenActionName: '',
|
|
95
|
+
isHoverable: true,
|
|
96
|
+
isClickable: false
|
|
91
97
|
}];
|
|
98
|
+
var ELITE_HOVER_BUTTON_TEXT = 'View membership benefits';
|
|
99
|
+
var ELITE_HOVER_LOGIN_BUTTON_TEXT = 'Login to check eligibility';
|
|
100
|
+
var LOYALTY_STATUS = {
|
|
101
|
+
ACTIVE: 'ACTIVE',
|
|
102
|
+
INACTIVE: 'INACTIVE',
|
|
103
|
+
SUSPENDED: 'SUSPENDED'
|
|
104
|
+
};
|
|
105
|
+
var DISPLAY_STATUS = {
|
|
106
|
+
ACTIVE: 'ACTIVE',
|
|
107
|
+
INACTIVE: 'INACTIVE',
|
|
108
|
+
EXPIRING_SOON: 'EXPIRING_SOON',
|
|
109
|
+
TRACKER_EXPIRING_SOON: 'TRACKER_EXPIRING_SOON',
|
|
110
|
+
EXPIRED: 'EXPIRED',
|
|
111
|
+
ACTIVATING_SOON: 'ACTIVATING_SOON'
|
|
112
|
+
};
|
|
113
|
+
var EliteChipHoverModalBg = 'https://rukmini-ct.flixcart.com/f_auto,q_auto/offermgmt-prod/offermgmt/images/banner/desktop_pop_up_elite_bgImage-v2.png';
|
|
114
|
+
var EliteAccountStripBg = 'https://rukmini-ct.flixcart.com/fl_progressive,e_sharpen:80,c_fill,dpr_2,f_auto,q_75/offermgmt-prod/offermgmt/images/banner/desktop-accounts-dropdown-elite-bg.png';
|
|
92
115
|
var LOBS = {
|
|
93
116
|
FLIGHTS: 'Flights',
|
|
94
117
|
HOTELS: 'Hotels',
|
|
@@ -146,6 +169,14 @@
|
|
|
146
169
|
(function (RAVEN_PLATFORMS) {
|
|
147
170
|
RAVEN_PLATFORMS["DESKTOP"] = "desktop";
|
|
148
171
|
})(RAVEN_PLATFORMS || (RAVEN_PLATFORMS = {}));
|
|
172
|
+
var RAVEN_EVENTS = {
|
|
173
|
+
UI_ACTION: 'ui_action',
|
|
174
|
+
CT_LOYALTY_BENEFITS_POPUP_LOAD: 'ct_loyalty_benefits_popup_load'
|
|
175
|
+
};
|
|
176
|
+
var RAVEN_ACTIONS = {
|
|
177
|
+
CT_LOYALTY_VIEW_BENEFITS_CLICK: 'ct_loyalty_view_benefits_click',
|
|
178
|
+
ELITE_LOGIN_CLICK: 'elite_login_click'
|
|
179
|
+
};
|
|
149
180
|
var LOG_IN_TEXT = 'Log in';
|
|
150
181
|
var THEME_CONFIG = {
|
|
151
182
|
NOVAC: {
|
|
@@ -220,6 +251,16 @@
|
|
|
220
251
|
return '';
|
|
221
252
|
}
|
|
222
253
|
};
|
|
254
|
+
var getEliteRavenEventPrefix = function (ravenPageName) {
|
|
255
|
+
switch (ravenPageName) {
|
|
256
|
+
case exports.RAVEN_PAGE_NAMES.FLIGHTS_HOME:
|
|
257
|
+
return 'a_';
|
|
258
|
+
case exports.RAVEN_PAGE_NAMES.HOTELS_HOME:
|
|
259
|
+
return 'h_';
|
|
260
|
+
default:
|
|
261
|
+
return 'u_';
|
|
262
|
+
}
|
|
263
|
+
};
|
|
223
264
|
var ravenSDKTrigger = function (isUserLoggedIn, eventName, ravenPayload, customRavenPayload, ravenPushCallback, pageName) {
|
|
224
265
|
var _a;
|
|
225
266
|
if (typeof ravenPushCallback !== 'function') {
|
|
@@ -249,6 +290,165 @@
|
|
|
249
290
|
return;
|
|
250
291
|
}
|
|
251
292
|
};
|
|
293
|
+
var getLoyaltyContent = function (eliteDetails, loyaltyProgram) {
|
|
294
|
+
var _a, _b;
|
|
295
|
+
var loyaltyContent = (_b = (_a = eliteDetails === null || eliteDetails === void 0 ? void 0 : eliteDetails.find(function (item) {
|
|
296
|
+
return (item === null || item === void 0 ? void 0 : item.usecase) === 'LOYALTY';
|
|
297
|
+
})) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b[0];
|
|
298
|
+
var metaData = loyaltyContent === null || loyaltyContent === void 0 ? void 0 : loyaltyContent.metaData;
|
|
299
|
+
if (ctDesignCommonUtils.isEmpty(loyaltyContent) || ctDesignCommonUtils.isEmpty(metaData) || (metaData === null || metaData === void 0 ? void 0 : metaData.loyaltyName) !== loyaltyProgram || (metaData === null || metaData === void 0 ? void 0 : metaData.loyaltyStatus) === LOYALTY_STATUS.SUSPENDED) {
|
|
300
|
+
return null;
|
|
301
|
+
}
|
|
302
|
+
return loyaltyContent || null;
|
|
303
|
+
};
|
|
304
|
+
var getEliteLoyaltyContent = function (eliteDetails) {
|
|
305
|
+
return getLoyaltyContent(eliteDetails, ctDesignLoyaltyPill.LoyaltyProgram.ELITE);
|
|
306
|
+
};
|
|
307
|
+
var getEliteLoyaltyMetadata = function (eliteDetails) {
|
|
308
|
+
var _a, _b;
|
|
309
|
+
return (_b = (_a = getEliteLoyaltyContent(eliteDetails)) === null || _a === void 0 ? void 0 : _a.metaData) !== null && _b !== void 0 ? _b : null;
|
|
310
|
+
};
|
|
311
|
+
var getFkBlackLoyaltyContent = function (eliteDetails) {
|
|
312
|
+
return getLoyaltyContent(eliteDetails, ctDesignLoyaltyPill.LoyaltyProgram.FK_BLACK);
|
|
313
|
+
};
|
|
314
|
+
var getFkBlackLoyaltyMetadata = function (eliteDetails) {
|
|
315
|
+
var _a, _b;
|
|
316
|
+
return (_b = (_a = getFkBlackLoyaltyContent(eliteDetails)) === null || _a === void 0 ? void 0 : _a.metaData) !== null && _b !== void 0 ? _b : null;
|
|
317
|
+
};
|
|
318
|
+
var shouldShowFkBlackLoyaltyChip = function (eliteDetails) {
|
|
319
|
+
return !!getFkBlackLoyaltyContent(eliteDetails);
|
|
320
|
+
};
|
|
321
|
+
var getElitePillState = function (eliteDetails, isUserLoggedIn) {
|
|
322
|
+
var _a;
|
|
323
|
+
if (isUserLoggedIn === void 0) {
|
|
324
|
+
isUserLoggedIn = true;
|
|
325
|
+
}
|
|
326
|
+
if (!isUserLoggedIn) {
|
|
327
|
+
return ctDesignLoyaltyPill.EliteLoyaltyPillStateEnum.LOGGED_OUT;
|
|
328
|
+
}
|
|
329
|
+
var displayStatus = (_a = getEliteLoyaltyMetadata(eliteDetails)) === null || _a === void 0 ? void 0 : _a.displayStatus;
|
|
330
|
+
switch (displayStatus) {
|
|
331
|
+
case DISPLAY_STATUS.ACTIVE:
|
|
332
|
+
case DISPLAY_STATUS.ACTIVATING_SOON:
|
|
333
|
+
return ctDesignLoyaltyPill.EliteLoyaltyPillStateEnum.UNLOCKED;
|
|
334
|
+
case DISPLAY_STATUS.EXPIRING_SOON:
|
|
335
|
+
return ctDesignLoyaltyPill.EliteLoyaltyPillStateEnum.EXPIRING;
|
|
336
|
+
case DISPLAY_STATUS.INACTIVE:
|
|
337
|
+
case DISPLAY_STATUS.TRACKER_EXPIRING_SOON:
|
|
338
|
+
case DISPLAY_STATUS.EXPIRED:
|
|
339
|
+
default:
|
|
340
|
+
return ctDesignLoyaltyPill.EliteLoyaltyPillStateEnum.LOCKED;
|
|
341
|
+
}
|
|
342
|
+
};
|
|
343
|
+
var hasEliteLoyaltyDetails = function (eliteDetails) {
|
|
344
|
+
return !!getEliteLoyaltyMetadata(eliteDetails);
|
|
345
|
+
};
|
|
346
|
+
var isEliteAccountActive = function (metaData) {
|
|
347
|
+
return (metaData === null || metaData === void 0 ? void 0 : metaData.displayStatus) === DISPLAY_STATUS.ACTIVE || (metaData === null || metaData === void 0 ? void 0 : metaData.displayStatus) === DISPLAY_STATUS.EXPIRING_SOON;
|
|
348
|
+
};
|
|
349
|
+
var getEliteHoverModalContent = function (metaData) {
|
|
350
|
+
var _a, _b, _c;
|
|
351
|
+
return (_c = (_b = ((_a = metaData === null || metaData === void 0 ? void 0 : metaData.benefits) !== null && _a !== void 0 ? _a : []).filter(function (benefit) {
|
|
352
|
+
return benefit === null || benefit === void 0 ? void 0 : benefit.title;
|
|
353
|
+
})) === null || _b === void 0 ? void 0 : _b.map(function (benefit) {
|
|
354
|
+
return benefit.title;
|
|
355
|
+
})) !== null && _c !== void 0 ? _c : [];
|
|
356
|
+
};
|
|
357
|
+
var getOrdinalSuffix = function (day) {
|
|
358
|
+
if (day >= 11 && day <= 13) {
|
|
359
|
+
return 'th';
|
|
360
|
+
}
|
|
361
|
+
switch (day % 10) {
|
|
362
|
+
case 1:
|
|
363
|
+
return 'st';
|
|
364
|
+
case 2:
|
|
365
|
+
return 'nd';
|
|
366
|
+
case 3:
|
|
367
|
+
return 'rd';
|
|
368
|
+
default:
|
|
369
|
+
return 'th';
|
|
370
|
+
}
|
|
371
|
+
};
|
|
372
|
+
var formatEliteUnlockDate = function (unlockDate) {
|
|
373
|
+
if (!unlockDate) {
|
|
374
|
+
return '';
|
|
375
|
+
}
|
|
376
|
+
var isoDateMatch = unlockDate.match(/^(\d{4})-(\d{2})-(\d{2})/);
|
|
377
|
+
var date = isoDateMatch ? new Date(Number(isoDateMatch[1]), Number(isoDateMatch[2]) - 1, Number(isoDateMatch[3])) : new Date(unlockDate);
|
|
378
|
+
if (Number.isNaN(date.getTime())) {
|
|
379
|
+
return '';
|
|
380
|
+
}
|
|
381
|
+
var day = date.getDate();
|
|
382
|
+
var month = date.toLocaleDateString('en-GB', {
|
|
383
|
+
month: 'short'
|
|
384
|
+
});
|
|
385
|
+
return "".concat(day).concat(getOrdinalSuffix(day), " ").concat(month);
|
|
386
|
+
};
|
|
387
|
+
var getAccountEliteStripText = function (metaData) {
|
|
388
|
+
var displayStatus = metaData.displayStatus,
|
|
389
|
+
unlockDate = metaData.unlockDate;
|
|
390
|
+
switch (displayStatus) {
|
|
391
|
+
case DISPLAY_STATUS.ACTIVATING_SOON:
|
|
392
|
+
{
|
|
393
|
+
var formattedUnlockDate = formatEliteUnlockDate(unlockDate);
|
|
394
|
+
return {
|
|
395
|
+
prefix: 'Your',
|
|
396
|
+
suffix: formattedUnlockDate ? "benefits unlock on ".concat(formattedUnlockDate) : 'benefits unlock soon'
|
|
397
|
+
};
|
|
398
|
+
}
|
|
399
|
+
case DISPLAY_STATUS.INACTIVE:
|
|
400
|
+
case DISPLAY_STATUS.TRACKER_EXPIRING_SOON:
|
|
401
|
+
case DISPLAY_STATUS.EXPIRED:
|
|
402
|
+
return {
|
|
403
|
+
prefix: 'Unlock',
|
|
404
|
+
suffix: 'membership'
|
|
405
|
+
};
|
|
406
|
+
default:
|
|
407
|
+
return {
|
|
408
|
+
prefix: 'Your',
|
|
409
|
+
suffix: 'membership'
|
|
410
|
+
};
|
|
411
|
+
}
|
|
412
|
+
};
|
|
413
|
+
var redirectToEliteUrl = function (url) {
|
|
414
|
+
if (url) window.location.href = url;
|
|
415
|
+
};
|
|
416
|
+
var mapDisplayStatusToRavenEliteStatus = function (displayStatus) {
|
|
417
|
+
switch (displayStatus) {
|
|
418
|
+
case DISPLAY_STATUS.ACTIVE:
|
|
419
|
+
return 'active';
|
|
420
|
+
case DISPLAY_STATUS.EXPIRING_SOON:
|
|
421
|
+
return 'expiring_soon';
|
|
422
|
+
case DISPLAY_STATUS.INACTIVE:
|
|
423
|
+
return 'inactive';
|
|
424
|
+
default:
|
|
425
|
+
return 'na';
|
|
426
|
+
}
|
|
427
|
+
};
|
|
428
|
+
var getEliteRavenAttributes = function (eliteDetails) {
|
|
429
|
+
var _a, _b;
|
|
430
|
+
var eliteContent = getEliteLoyaltyContent(eliteDetails);
|
|
431
|
+
if (ctDesignCommonUtils.isEmpty(eliteContent === null || eliteContent === void 0 ? void 0 : eliteContent.metaData)) {
|
|
432
|
+
return {};
|
|
433
|
+
}
|
|
434
|
+
var _c = eliteContent !== null && eliteContent !== void 0 ? eliteContent : {},
|
|
435
|
+
metaData = _c.metaData,
|
|
436
|
+
constraintList = _c.constraintList,
|
|
437
|
+
partnerProgram = _c.partnerProgram,
|
|
438
|
+
allotmentDate = _c.allotmentDate,
|
|
439
|
+
viewExpiryDate = _c.viewExpiryDate;
|
|
440
|
+
_c.lifetimeSavings;
|
|
441
|
+
var _d = (_a = constraintList === null || constraintList === void 0 ? void 0 : constraintList[0]) !== null && _a !== void 0 ? _a : {},
|
|
442
|
+
target = _d.target,
|
|
443
|
+
bookingCount = _d.bookingCount;
|
|
444
|
+
return {
|
|
445
|
+
elite_status: (_b = mapDisplayStatusToRavenEliteStatus(metaData === null || metaData === void 0 ? void 0 : metaData.displayStatus)) !== null && _b !== void 0 ? _b : 'na',
|
|
446
|
+
elite_progress: target ? "".concat(bookingCount, "/").concat(target) : 'na',
|
|
447
|
+
partner_program_source: partnerProgram !== null && partnerProgram !== void 0 ? partnerProgram : 'na',
|
|
448
|
+
elite_unlock_date: allotmentDate !== null && allotmentDate !== void 0 ? allotmentDate : 'na',
|
|
449
|
+
elite_membership_end_date: viewExpiryDate !== null && viewExpiryDate !== void 0 ? viewExpiryDate : 'na'
|
|
450
|
+
};
|
|
451
|
+
};
|
|
252
452
|
|
|
253
453
|
var LobsHeader = function () {
|
|
254
454
|
var _a = useHeaderContext(),
|
|
@@ -534,8 +734,8 @@
|
|
|
534
734
|
backgroundColor: '#FBEFEF'
|
|
535
735
|
}
|
|
536
736
|
};
|
|
537
|
-
var moveRight = styled.keyframes(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["\n from {\n transform: translateX(-20px);\n }\n to {\n transform: translateX(0px);\n }\n"], ["\n from {\n transform: translateX(-20px);\n }\n to {\n transform: translateX(0px);\n }\n"])));
|
|
538
|
-
var moveRightAgain = styled.keyframes(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n from {\n transform: translateX(-20.01px);\n }\n to {\n transform: translateX(0px);\n }\n"], ["\n from {\n transform: translateX(-20.01px);\n }\n to {\n transform: translateX(0px);\n }\n"])));
|
|
737
|
+
var moveRight = /*#__PURE__*/styled.keyframes(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["\n from {\n transform: translateX(-20px);\n }\n to {\n transform: translateX(0px);\n }\n"], ["\n from {\n transform: translateX(-20px);\n }\n to {\n transform: translateX(0px);\n }\n"])));
|
|
738
|
+
var moveRightAgain = /*#__PURE__*/styled.keyframes(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n from {\n transform: translateX(-20.01px);\n }\n to {\n transform: translateX(0px);\n }\n"], ["\n from {\n transform: translateX(-20.01px);\n }\n to {\n transform: translateX(0px);\n }\n"])));
|
|
539
739
|
var arrowContainerStyles = {
|
|
540
740
|
display: 'flex',
|
|
541
741
|
backgroundColor: 'black',
|
|
@@ -547,6 +747,32 @@
|
|
|
547
747
|
overflow: 'hidden',
|
|
548
748
|
borderRadius: '50%'
|
|
549
749
|
};
|
|
750
|
+
var getAccountEliteSectionStyles = function (theme) {
|
|
751
|
+
return {
|
|
752
|
+
background: 'linear-gradient(90deg, #fce9ff 26.53%, #ffefee 88.06%)',
|
|
753
|
+
padding: "".concat(theme.spacing[2], " ").concat(theme.spacing[4]),
|
|
754
|
+
display: 'flex',
|
|
755
|
+
justifyContent: 'space-between',
|
|
756
|
+
alignItems: 'center'
|
|
757
|
+
};
|
|
758
|
+
};
|
|
759
|
+
var getEliteTxtSvgStyles = function (theme) {
|
|
760
|
+
return {
|
|
761
|
+
display: 'flex',
|
|
762
|
+
flexDirection: 'column',
|
|
763
|
+
alignSelf: 'center',
|
|
764
|
+
margin: "auto ".concat(theme.spacing[1])
|
|
765
|
+
};
|
|
766
|
+
};
|
|
767
|
+
var getAccountUnlockedBgStyles = function (isEliteUnlocked, bgImgUrl) {
|
|
768
|
+
if (isEliteUnlocked) return {
|
|
769
|
+
backgroundRepeat: 'no-repeat',
|
|
770
|
+
backgroundSize: 'cover',
|
|
771
|
+
backgroundPosition: 'center',
|
|
772
|
+
backgroundImage: "url(".concat(bgImgUrl, ")")
|
|
773
|
+
};
|
|
774
|
+
return {};
|
|
775
|
+
};
|
|
550
776
|
var getLoginButtonBgColorStyles = function (saleThemeEnabled) {
|
|
551
777
|
if (saleThemeEnabled) {
|
|
552
778
|
return {
|
|
@@ -720,6 +946,203 @@
|
|
|
720
946
|
};
|
|
721
947
|
var templateObject_1;
|
|
722
948
|
|
|
949
|
+
var useEliteRaven = function () {
|
|
950
|
+
var _a = useHeaderContext(),
|
|
951
|
+
eliteDetails = _a.eliteDetails,
|
|
952
|
+
ravenPushCallback = _a.ravenPushCallback,
|
|
953
|
+
ravenPageName = _a.ravenPageName,
|
|
954
|
+
isUserLoggedIn = _a.isUserLoggedIn,
|
|
955
|
+
_b = _a.ravenPayload,
|
|
956
|
+
ravenPayload = _b === void 0 ? {} : _b;
|
|
957
|
+
var ravenAttributes = react.useMemo(function () {
|
|
958
|
+
return getEliteRavenAttributes(eliteDetails);
|
|
959
|
+
}, [eliteDetails]);
|
|
960
|
+
var ravenEventPrefix = react.useMemo(function () {
|
|
961
|
+
return getEliteRavenEventPrefix(ravenPageName);
|
|
962
|
+
}, [ravenPageName]);
|
|
963
|
+
var triggerRavenEvent = react.useCallback(function (eventSuffix, payload) {
|
|
964
|
+
if (payload === void 0) {
|
|
965
|
+
payload = {};
|
|
966
|
+
}
|
|
967
|
+
if (!ravenPushCallback) {
|
|
968
|
+
return;
|
|
969
|
+
}
|
|
970
|
+
ravenSDKTrigger(isUserLoggedIn, "".concat(ravenEventPrefix).concat(eventSuffix), __assign(__assign({}, ravenAttributes), payload), ravenPayload, ravenPushCallback, ravenPageName);
|
|
971
|
+
}, [isUserLoggedIn, ravenAttributes, ravenEventPrefix, ravenPayload, ravenPushCallback, ravenPageName]);
|
|
972
|
+
return {
|
|
973
|
+
ravenEventPrefix: ravenEventPrefix,
|
|
974
|
+
ravenAttributes: ravenAttributes,
|
|
975
|
+
ravenPushCallback: ravenPushCallback,
|
|
976
|
+
isUserLoggedIn: isUserLoggedIn,
|
|
977
|
+
ravenPageName: ravenPageName,
|
|
978
|
+
triggerRavenEvent: triggerRavenEvent
|
|
979
|
+
};
|
|
980
|
+
};
|
|
981
|
+
|
|
982
|
+
var ELITE_DROPDOWN_POSITION_OFFSET = 30;
|
|
983
|
+
var ELITE_DROPDOWN_TOP = '76px';
|
|
984
|
+
var ELITE_DROPDOWN_WIDTH = '360px';
|
|
985
|
+
var ELITE_DROPDOWN_Z_INDEX = 1002;
|
|
986
|
+
var getEliteDropdownContainerStyles = function (theme, contentHeight) {
|
|
987
|
+
return {
|
|
988
|
+
position: 'fixed',
|
|
989
|
+
top: ELITE_DROPDOWN_TOP,
|
|
990
|
+
width: ELITE_DROPDOWN_WIDTH,
|
|
991
|
+
zIndex: ELITE_DROPDOWN_Z_INDEX,
|
|
992
|
+
backgroundColor: theme.color.background.neutral,
|
|
993
|
+
borderRadius: theme.border.radius[16],
|
|
994
|
+
boxShadow: theme.elevation.bottomE3,
|
|
995
|
+
overflow: 'hidden',
|
|
996
|
+
opacity: 0,
|
|
997
|
+
backgroundImage: "url(".concat(EliteChipHoverModalBg, ")"),
|
|
998
|
+
backgroundSize: contentHeight ? "100% ".concat(contentHeight, "px") : '100% auto',
|
|
999
|
+
backgroundPosition: 'top center',
|
|
1000
|
+
backgroundRepeat: 'no-repeat',
|
|
1001
|
+
paddingLeft: theme.spacing[7],
|
|
1002
|
+
paddingRight: theme.spacing[7],
|
|
1003
|
+
paddingBottom: theme.spacing[9]
|
|
1004
|
+
};
|
|
1005
|
+
};
|
|
1006
|
+
var getEliteBenefitsGridStyles = function (theme) {
|
|
1007
|
+
return {
|
|
1008
|
+
display: 'grid',
|
|
1009
|
+
gridTemplateColumns: '1fr 1fr',
|
|
1010
|
+
gap: theme.spacing[3],
|
|
1011
|
+
margin: "".concat(theme.spacing[4], " 0 ").concat(theme.spacing[6])
|
|
1012
|
+
};
|
|
1013
|
+
};
|
|
1014
|
+
var getEliteBenefitCardStyles = function (theme) {
|
|
1015
|
+
return {
|
|
1016
|
+
display: 'flex',
|
|
1017
|
+
alignItems: 'center',
|
|
1018
|
+
justifyContent: 'center',
|
|
1019
|
+
padding: theme.spacing[3],
|
|
1020
|
+
backgroundColor: theme.color.text.neutral50,
|
|
1021
|
+
borderRadius: theme.border.radius[16]
|
|
1022
|
+
};
|
|
1023
|
+
};
|
|
1024
|
+
|
|
1025
|
+
var EliteBenefitsContent = function (_a) {
|
|
1026
|
+
var _b = _a.benefits,
|
|
1027
|
+
benefits = _b === void 0 ? [] : _b,
|
|
1028
|
+
ctaText = _a.ctaText,
|
|
1029
|
+
showCta = _a.showCta,
|
|
1030
|
+
onCtaClick = _a.onCtaClick,
|
|
1031
|
+
_c = _a.hideRedirectionCTA,
|
|
1032
|
+
hideRedirectionCTA = _c === void 0 ? false : _c;
|
|
1033
|
+
var theme = ctDesignTheme.useTheme();
|
|
1034
|
+
return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
1035
|
+
children: [(benefits === null || benefits === void 0 ? void 0 : benefits.length) > 0 && jsxRuntime.jsx(ctDesignContainer.Container, __assign({
|
|
1036
|
+
css: getEliteBenefitsGridStyles(theme)
|
|
1037
|
+
}, {
|
|
1038
|
+
children: benefits === null || benefits === void 0 ? void 0 : benefits.map(function (benefit, index) {
|
|
1039
|
+
return jsxRuntime.jsx(ctDesignContainer.Container, __assign({
|
|
1040
|
+
css: getEliteBenefitCardStyles(theme)
|
|
1041
|
+
}, {
|
|
1042
|
+
children: jsxRuntime.jsx(ctDesignTypography.Typography, __assign({
|
|
1043
|
+
variant: 'HM3',
|
|
1044
|
+
className: 'ta-center'
|
|
1045
|
+
}, {
|
|
1046
|
+
children: benefit
|
|
1047
|
+
}))
|
|
1048
|
+
}), index);
|
|
1049
|
+
})
|
|
1050
|
+
})), showCta && ctaText && !hideRedirectionCTA && jsxRuntime.jsx(ctDesignButton.Button, __assign({
|
|
1051
|
+
className: 'w-100p',
|
|
1052
|
+
onClick: onCtaClick
|
|
1053
|
+
}, {
|
|
1054
|
+
children: ctaText
|
|
1055
|
+
}))]
|
|
1056
|
+
});
|
|
1057
|
+
};
|
|
1058
|
+
|
|
1059
|
+
var EliteDropDownContent = function (_a) {
|
|
1060
|
+
var isOpen = _a.isOpen;
|
|
1061
|
+
var theme = ctDesignTheme.useTheme();
|
|
1062
|
+
var _b = useHeaderContext(),
|
|
1063
|
+
eliteDetails = _b.eliteDetails,
|
|
1064
|
+
onLoginButtonClick = _b.onLoginButtonClick,
|
|
1065
|
+
_c = _b.hideEliteRedirectionCTA,
|
|
1066
|
+
hideEliteRedirectionCTA = _c === void 0 ? false : _c;
|
|
1067
|
+
var eliteMetadata = getEliteLoyaltyMetadata(eliteDetails);
|
|
1068
|
+
var _d = useEliteRaven(),
|
|
1069
|
+
isUserLoggedIn = _d.isUserLoggedIn,
|
|
1070
|
+
triggerRavenEvent = _d.triggerRavenEvent;
|
|
1071
|
+
var containerRef = useDropdownAnimation(isOpen).containerRef;
|
|
1072
|
+
var _e = react.useState(),
|
|
1073
|
+
leftPosition = _e[0],
|
|
1074
|
+
setLeftPosition = _e[1];
|
|
1075
|
+
var _f = react.useState(),
|
|
1076
|
+
contentHeight = _f[0],
|
|
1077
|
+
setContentHeight = _f[1];
|
|
1078
|
+
var benefits = getEliteHoverModalContent(eliteMetadata);
|
|
1079
|
+
react.useLayoutEffect(function () {
|
|
1080
|
+
if (!containerRef.current) {
|
|
1081
|
+
return;
|
|
1082
|
+
}
|
|
1083
|
+
var _a = containerRef.current.getBoundingClientRect(),
|
|
1084
|
+
left = _a.left,
|
|
1085
|
+
width = _a.width;
|
|
1086
|
+
setLeftPosition(left - width / 2 + ELITE_DROPDOWN_POSITION_OFFSET);
|
|
1087
|
+
setContentHeight(containerRef.current.scrollHeight);
|
|
1088
|
+
}, [containerRef]);
|
|
1089
|
+
var handleIntersection = react.useCallback(function () {
|
|
1090
|
+
triggerRavenEvent(RAVEN_EVENTS.CT_LOYALTY_BENEFITS_POPUP_LOAD);
|
|
1091
|
+
}, [triggerRavenEvent]);
|
|
1092
|
+
var handleViewBenefitsClick = react.useCallback(function () {
|
|
1093
|
+
if (!(eliteMetadata === null || eliteMetadata === void 0 ? void 0 : eliteMetadata.redirectionUrl)) {
|
|
1094
|
+
return;
|
|
1095
|
+
}
|
|
1096
|
+
triggerRavenEvent(RAVEN_EVENTS.UI_ACTION, {
|
|
1097
|
+
action_name: RAVEN_ACTIONS.CT_LOYALTY_VIEW_BENEFITS_CLICK
|
|
1098
|
+
});
|
|
1099
|
+
redirectToEliteUrl(eliteMetadata.redirectionUrl);
|
|
1100
|
+
}, [eliteMetadata, triggerRavenEvent]);
|
|
1101
|
+
var handleEliteLoginClick = react.useCallback(function () {
|
|
1102
|
+
triggerRavenEvent(RAVEN_EVENTS.UI_ACTION, {
|
|
1103
|
+
action_name: RAVEN_ACTIONS.ELITE_LOGIN_CLICK
|
|
1104
|
+
});
|
|
1105
|
+
onLoginButtonClick({
|
|
1106
|
+
isEliteLogin: true
|
|
1107
|
+
});
|
|
1108
|
+
}, [onLoginButtonClick, triggerRavenEvent]);
|
|
1109
|
+
var showCta = isUserLoggedIn ? !!(eliteMetadata === null || eliteMetadata === void 0 ? void 0 : eliteMetadata.redirectionUrl) : true;
|
|
1110
|
+
var ctaText = isUserLoggedIn ? ELITE_HOVER_BUTTON_TEXT : ELITE_HOVER_LOGIN_BUTTON_TEXT;
|
|
1111
|
+
var onCtaClick = isUserLoggedIn ? handleViewBenefitsClick : handleEliteLoginClick;
|
|
1112
|
+
if (!eliteMetadata) {
|
|
1113
|
+
return null;
|
|
1114
|
+
}
|
|
1115
|
+
return jsxRuntime.jsx(ctDesignIntersectionObserver.IntersectionObserver, __assign({
|
|
1116
|
+
onIntersection: handleIntersection
|
|
1117
|
+
}, {
|
|
1118
|
+
children: jsxRuntime.jsxs(ctDesignContainer.Container, __assign({
|
|
1119
|
+
ref: containerRef,
|
|
1120
|
+
className: 'o-0',
|
|
1121
|
+
css: __assign(__assign({}, getEliteDropdownContainerStyles(theme, contentHeight)), {
|
|
1122
|
+
left: leftPosition && "".concat(leftPosition, "px")
|
|
1123
|
+
})
|
|
1124
|
+
}, {
|
|
1125
|
+
children: [jsxRuntime.jsx(ctDesignContainer.Container, __assign({
|
|
1126
|
+
className: 'ta-center',
|
|
1127
|
+
css: {
|
|
1128
|
+
marginTop: theme.spacing[9]
|
|
1129
|
+
}
|
|
1130
|
+
}, {
|
|
1131
|
+
children: jsxRuntime.jsx(ctDesignIcons.EliteText, {
|
|
1132
|
+
width: 120,
|
|
1133
|
+
height: 48
|
|
1134
|
+
})
|
|
1135
|
+
})), jsxRuntime.jsx(EliteBenefitsContent, {
|
|
1136
|
+
benefits: benefits,
|
|
1137
|
+
showCta: showCta,
|
|
1138
|
+
ctaText: ctaText,
|
|
1139
|
+
onCtaClick: onCtaClick,
|
|
1140
|
+
hideRedirectionCTA: hideEliteRedirectionCTA
|
|
1141
|
+
})]
|
|
1142
|
+
}))
|
|
1143
|
+
}));
|
|
1144
|
+
};
|
|
1145
|
+
|
|
723
1146
|
var ACCOUNT_OPTIONS_POPUP_CONFIG = [{
|
|
724
1147
|
text: 'My Profile',
|
|
725
1148
|
icon: jsxRuntime.jsx(ctDesignIcons.MyAccount, {
|
|
@@ -788,26 +1211,30 @@
|
|
|
788
1211
|
ravenPageName = _b.ravenPageName,
|
|
789
1212
|
_c = _b.ravenPayload,
|
|
790
1213
|
ravenPayload = _c === void 0 ? {} : _c,
|
|
791
|
-
ravenEventName = _b.ravenEventName
|
|
1214
|
+
ravenEventName = _b.ravenEventName,
|
|
1215
|
+
eliteDetails = _b.eliteDetails;
|
|
792
1216
|
var _d = react.useState(false),
|
|
793
1217
|
isHovered = _d[0],
|
|
794
1218
|
setIsHovered = _d[1];
|
|
795
1219
|
var handleClick = react.useCallback(function () {
|
|
796
|
-
var _a;
|
|
1220
|
+
var _a, _b;
|
|
797
1221
|
if (handleChipClick) {
|
|
798
1222
|
handleChipClick();
|
|
799
|
-
|
|
800
|
-
var utmSource = (_a = getQueryParam('utm_source')) !== null && _a !== void 0 ? _a : 'organic';
|
|
801
|
-
var defaultPayload = {
|
|
802
|
-
action_name: "loyalty_account_click",
|
|
803
|
-
action_type: 'click',
|
|
804
|
-
u_utm_source: utmSource,
|
|
805
|
-
loyaltyType: ravenLoyaltyTypes(loyaltyType)
|
|
806
|
-
};
|
|
807
|
-
ravenSDKTrigger(isUserLoggedIn, ravenEventName, defaultPayload, ravenPayload, ravenPushCallback, ravenPageName);
|
|
808
|
-
window.location.href = '/all-offers/loyalty-october';
|
|
1223
|
+
return;
|
|
809
1224
|
}
|
|
810
|
-
|
|
1225
|
+
var utmSource = (_a = getQueryParam('utm_source')) !== null && _a !== void 0 ? _a : 'organic';
|
|
1226
|
+
var defaultPayload = {
|
|
1227
|
+
action_name: "loyalty_account_click",
|
|
1228
|
+
action_type: 'click',
|
|
1229
|
+
u_utm_source: utmSource,
|
|
1230
|
+
loyaltyType: ravenLoyaltyTypes(loyaltyType)
|
|
1231
|
+
};
|
|
1232
|
+
ravenSDKTrigger(isUserLoggedIn, ravenEventName, defaultPayload, ravenPayload, ravenPushCallback, ravenPageName);
|
|
1233
|
+
var redirectionUrl = (_b = getFkBlackLoyaltyMetadata(eliteDetails)) === null || _b === void 0 ? void 0 : _b.redirectionUrl;
|
|
1234
|
+
if (redirectionUrl) {
|
|
1235
|
+
redirectToEliteUrl(redirectionUrl);
|
|
1236
|
+
}
|
|
1237
|
+
}, [handleChipClick, loyaltyType, isUserLoggedIn, ravenEventName, ravenPayload, ravenPushCallback, ravenPageName, eliteDetails]);
|
|
811
1238
|
return jsxRuntime.jsxs(ctDesignContainer.Container, __assign({
|
|
812
1239
|
display: 'flex',
|
|
813
1240
|
position: 'relative',
|
|
@@ -892,6 +1319,7 @@
|
|
|
892
1319
|
LoyaltyType["InsiderIcon"] = "InsiderIcon";
|
|
893
1320
|
LoyaltyType["InsiderElite"] = "InsiderElite";
|
|
894
1321
|
LoyaltyType["CtLoyalty"] = "CtLoyalty";
|
|
1322
|
+
LoyaltyType["Elite"] = "ELITE";
|
|
895
1323
|
})(exports.LoyaltyType || (exports.LoyaltyType = {}));
|
|
896
1324
|
|
|
897
1325
|
var _a;
|
|
@@ -1009,23 +1437,24 @@
|
|
|
1009
1437
|
}));
|
|
1010
1438
|
};
|
|
1011
1439
|
var RewardsSection = function () {
|
|
1012
|
-
var _a
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
var
|
|
1440
|
+
var _a = useHeaderContext(),
|
|
1441
|
+
eliteDetails = _a.eliteDetails,
|
|
1442
|
+
_b = _a.fkSupercoinBurnBalance,
|
|
1443
|
+
superCoinBalance = _b === void 0 ? 0 : _b,
|
|
1444
|
+
_c = _a.walletBalance,
|
|
1445
|
+
walletBalance = _c === void 0 ? 0 : _c,
|
|
1446
|
+
loyaltyLoading = _a.loyaltyLoading,
|
|
1447
|
+
superCoinsLoading = _a.superCoinsLoading,
|
|
1448
|
+
walletLoading = _a.walletLoading,
|
|
1449
|
+
walletChipClick = _a.walletChipClick,
|
|
1450
|
+
supercoinsChipClick = _a.supercoinsChipClick,
|
|
1451
|
+
loyaltyChipClick = _a.loyaltyChipClick,
|
|
1452
|
+
hideWalletChip = _a.hideWalletChip,
|
|
1453
|
+
hideSupercoinsChip = _a.hideSupercoinsChip,
|
|
1454
|
+
hideLoyaltyChip = _a.hideLoyaltyChip;
|
|
1455
|
+
var fkBlackLoyaltyChipData = LOYALTY_DATA[exports.LoyaltyType.FkVip];
|
|
1456
|
+
var hasFkBlackLoyalty = shouldShowFkBlackLoyaltyChip(eliteDetails) && !hideLoyaltyChip && !!fkBlackLoyaltyChipData;
|
|
1457
|
+
var shouldShowLoyalty = loyaltyLoading || hasFkBlackLoyalty;
|
|
1029
1458
|
var shouldShowSupercoin = superCoinsLoading || !hideSupercoinsChip;
|
|
1030
1459
|
var shouldShowWallet = walletLoading || !hideWalletChip;
|
|
1031
1460
|
if (!shouldShowLoyalty && !shouldShowSupercoin && !shouldShowWallet) {
|
|
@@ -1045,11 +1474,11 @@
|
|
|
1045
1474
|
height: '32px',
|
|
1046
1475
|
borderRadius: '8px',
|
|
1047
1476
|
backgroundColor: '#efefef'
|
|
1048
|
-
}) :
|
|
1049
|
-
icon:
|
|
1050
|
-
borderGradient:
|
|
1051
|
-
backgroundGradient:
|
|
1052
|
-
chevronFillColor:
|
|
1477
|
+
}) : hasFkBlackLoyalty && jsxRuntime.jsx(LoyaltyChip, {
|
|
1478
|
+
icon: fkBlackLoyaltyChipData.icon,
|
|
1479
|
+
borderGradient: fkBlackLoyaltyChipData.borderGradient,
|
|
1480
|
+
backgroundGradient: fkBlackLoyaltyChipData.backgroundGradient,
|
|
1481
|
+
chevronFillColor: fkBlackLoyaltyChipData.chevronFillColor || '#FFF',
|
|
1053
1482
|
handleChipClick: loyaltyChipClick
|
|
1054
1483
|
}), superCoinsLoading ? jsxRuntime.jsx(ctDesignContainer.Container, {
|
|
1055
1484
|
width: '50px',
|
|
@@ -1081,6 +1510,77 @@
|
|
|
1081
1510
|
}));
|
|
1082
1511
|
};
|
|
1083
1512
|
|
|
1513
|
+
var ELITE_STATUS_LABEL = {
|
|
1514
|
+
ACTIVE: 'ACTIVE',
|
|
1515
|
+
EXPIRING_SOON: 'EXPIRING SOON'
|
|
1516
|
+
};
|
|
1517
|
+
var eliteStatusBadgeStyles = function (theme, isExpiringSoon) {
|
|
1518
|
+
return {
|
|
1519
|
+
background: isExpiringSoon ? theme.color.badge.alertYellow500 : theme.color.badge.successGreen500,
|
|
1520
|
+
borderRadius: '4px',
|
|
1521
|
+
padding: '4px'
|
|
1522
|
+
};
|
|
1523
|
+
};
|
|
1524
|
+
var EliteStatusBadge = function (_a) {
|
|
1525
|
+
var metaData = _a.metaData;
|
|
1526
|
+
var theme = ctDesignTheme.useTheme();
|
|
1527
|
+
if (!isEliteAccountActive(metaData)) {
|
|
1528
|
+
return null;
|
|
1529
|
+
}
|
|
1530
|
+
var isExpiringSoon = metaData.displayStatus === DISPLAY_STATUS.EXPIRING_SOON;
|
|
1531
|
+
return jsxRuntime.jsx(ctDesignContainer.Container, __assign({
|
|
1532
|
+
css: eliteStatusBadgeStyles(theme, isExpiringSoon)
|
|
1533
|
+
}, {
|
|
1534
|
+
children: jsxRuntime.jsx(ctDesignTypography.Typography, __assign({
|
|
1535
|
+
color: 'neutral750',
|
|
1536
|
+
variant: 'B4CAPS'
|
|
1537
|
+
}, {
|
|
1538
|
+
children: isExpiringSoon ? ELITE_STATUS_LABEL.EXPIRING_SOON : ELITE_STATUS_LABEL.ACTIVE
|
|
1539
|
+
}))
|
|
1540
|
+
}));
|
|
1541
|
+
};
|
|
1542
|
+
|
|
1543
|
+
var AccountEliteStrip = function (_a) {
|
|
1544
|
+
var metaData = _a.metaData;
|
|
1545
|
+
var theme = ctDesignTheme.useTheme();
|
|
1546
|
+
var triggerRavenEvent = useEliteRaven().triggerRavenEvent;
|
|
1547
|
+
var redirectionUrl = metaData.redirectionUrl;
|
|
1548
|
+
var _b = react.useMemo(function () {
|
|
1549
|
+
return getAccountEliteStripText(metaData);
|
|
1550
|
+
}, [metaData]),
|
|
1551
|
+
prefix = _b.prefix,
|
|
1552
|
+
suffix = _b.suffix;
|
|
1553
|
+
var handleStripClick = react.useCallback(function () {
|
|
1554
|
+
if (!redirectionUrl) {
|
|
1555
|
+
return;
|
|
1556
|
+
}
|
|
1557
|
+
triggerRavenEvent(RAVEN_EVENTS.UI_ACTION, {
|
|
1558
|
+
action_name: RAVEN_ACTIONS.CT_LOYALTY_VIEW_BENEFITS_CLICK
|
|
1559
|
+
});
|
|
1560
|
+
redirectToEliteUrl(redirectionUrl);
|
|
1561
|
+
}, [redirectionUrl, triggerRavenEvent]);
|
|
1562
|
+
return jsxRuntime.jsxs(ctDesignContainer.Container, __assign({
|
|
1563
|
+
className: "account-elite-section ".concat(redirectionUrl ? 'c-pointer' : ''),
|
|
1564
|
+
css: getAccountEliteSectionStyles(theme),
|
|
1565
|
+
onClick: handleStripClick
|
|
1566
|
+
}, {
|
|
1567
|
+
children: [jsxRuntime.jsxs(ctDesignTypography.Typography, __assign({
|
|
1568
|
+
variant: 'B2',
|
|
1569
|
+
className: 'flex'
|
|
1570
|
+
}, {
|
|
1571
|
+
children: [prefix, " ", jsxRuntime.jsx(ctDesignIcons.EliteText, {
|
|
1572
|
+
className: 'elite-txt-svg',
|
|
1573
|
+
style: getEliteTxtSvgStyles(theme)
|
|
1574
|
+
}), " ", suffix, ' ', redirectionUrl && jsxRuntime.jsx(ctDesignIcons.HeaderChevronRight, {
|
|
1575
|
+
width: 20,
|
|
1576
|
+
height: 20
|
|
1577
|
+
})]
|
|
1578
|
+
})), jsxRuntime.jsx(EliteStatusBadge, {
|
|
1579
|
+
metaData: metaData
|
|
1580
|
+
})]
|
|
1581
|
+
}));
|
|
1582
|
+
};
|
|
1583
|
+
|
|
1084
1584
|
var AccountDropdownContent = function (_a) {
|
|
1085
1585
|
var isOpen = _a.isOpen;
|
|
1086
1586
|
var _b = useHeaderContext(),
|
|
@@ -1090,21 +1590,25 @@
|
|
|
1090
1590
|
countryCode = _b.countryCode,
|
|
1091
1591
|
userDetailsLoading = _b.userDetailsLoading,
|
|
1092
1592
|
loyaltyType = _b.loyaltyType,
|
|
1593
|
+
eliteDetails = _b.eliteDetails,
|
|
1594
|
+
_c = _b.hideEliteRedirectionCTA,
|
|
1595
|
+
hideEliteRedirectionCTA = _c === void 0 ? false : _c,
|
|
1093
1596
|
isUserLoggedIn = _b.isUserLoggedIn,
|
|
1094
1597
|
ravenEventName = _b.ravenEventName,
|
|
1095
1598
|
ravenPageName = _b.ravenPageName,
|
|
1096
|
-
|
|
1097
|
-
ravenPayload =
|
|
1599
|
+
_d = _b.ravenPayload,
|
|
1600
|
+
ravenPayload = _d === void 0 ? {} : _d,
|
|
1098
1601
|
ravenPushCallback = _b.ravenPushCallback;
|
|
1602
|
+
var eliteMetadata = getEliteLoyaltyMetadata(eliteDetails);
|
|
1099
1603
|
var containerRef = useDropdownAnimation(isOpen).containerRef;
|
|
1100
|
-
var
|
|
1604
|
+
var _e = react.useMemo(function () {
|
|
1101
1605
|
return {
|
|
1102
1606
|
userGreeting: userName ? "Hello ".concat(userName, "!") : '',
|
|
1103
1607
|
phoneNumber: countryCode && userMobileNumber ? "".concat(countryCode, " ").concat(userMobileNumber) : ''
|
|
1104
1608
|
};
|
|
1105
1609
|
}, [userName, userMobileNumber, countryCode]),
|
|
1106
|
-
userGreeting =
|
|
1107
|
-
phoneNumber =
|
|
1610
|
+
userGreeting = _e.userGreeting,
|
|
1611
|
+
phoneNumber = _e.phoneNumber;
|
|
1108
1612
|
var generateRavenPayload = function (actionName) {
|
|
1109
1613
|
var _a;
|
|
1110
1614
|
return {
|
|
@@ -1177,12 +1681,18 @@
|
|
|
1177
1681
|
width: "".concat(ACCOUNT_OPTIONS_CONTAINER_WIDTH, "px"),
|
|
1178
1682
|
background: '#FFF1EC'
|
|
1179
1683
|
}, {
|
|
1180
|
-
children: [jsxRuntime.
|
|
1181
|
-
|
|
1182
|
-
height: '76px'
|
|
1684
|
+
children: [jsxRuntime.jsxs(ctDesignContainer.Container, __assign({
|
|
1685
|
+
css: getAccountUnlockedBgStyles(isEliteAccountActive(eliteMetadata), EliteAccountStripBg)
|
|
1183
1686
|
}, {
|
|
1184
|
-
children:
|
|
1185
|
-
|
|
1687
|
+
children: [jsxRuntime.jsx(ctDesignContainer.Container, __assign({
|
|
1688
|
+
padding: '16px',
|
|
1689
|
+
height: '76px'
|
|
1690
|
+
}, {
|
|
1691
|
+
children: renderUserData()
|
|
1692
|
+
})), jsxRuntime.jsx(RewardsSection, {})]
|
|
1693
|
+
})), hasEliteLoyaltyDetails(eliteDetails) && eliteMetadata && !hideEliteRedirectionCTA && jsxRuntime.jsx(AccountEliteStrip, {
|
|
1694
|
+
metaData: eliteMetadata
|
|
1695
|
+
}), jsxRuntime.jsxs(ctDesignContainer.Container, __assign({
|
|
1186
1696
|
display: 'flex',
|
|
1187
1697
|
flexDirection: 'column',
|
|
1188
1698
|
padding: '8px',
|
|
@@ -1370,16 +1880,19 @@
|
|
|
1370
1880
|
showAllLobs = _c === void 0 ? false : _c,
|
|
1371
1881
|
isUserLoggedIn = _b.isUserLoggedIn,
|
|
1372
1882
|
loyaltyType = _b.loyaltyType,
|
|
1883
|
+
eliteDetails = _b.eliteDetails,
|
|
1373
1884
|
_d = _b.isNovacThemeEnabled,
|
|
1374
1885
|
isNovacThemeEnabled = _d === void 0 ? false : _d,
|
|
1375
1886
|
_e = _b.ravenPayload,
|
|
1376
1887
|
ravenPayload = _e === void 0 ? {} : _e,
|
|
1377
1888
|
ravenPushCallback = _b.ravenPushCallback,
|
|
1378
1889
|
ravenPageName = _b.ravenPageName,
|
|
1379
|
-
ravenEventName = _b.ravenEventName
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1890
|
+
ravenEventName = _b.ravenEventName,
|
|
1891
|
+
_f = _b.hideNavbar,
|
|
1892
|
+
hideNavbar = _f === void 0 ? false : _f;
|
|
1893
|
+
var _g = react.useState(false),
|
|
1894
|
+
scrolled = _g[0],
|
|
1895
|
+
setScrolled = _g[1];
|
|
1383
1896
|
react.useEffect(function () {
|
|
1384
1897
|
var handleScroll = function () {
|
|
1385
1898
|
setScrolled(window.scrollY >= 50);
|
|
@@ -1396,15 +1909,15 @@
|
|
|
1396
1909
|
hoverColor = headerTheme.hoverColor,
|
|
1397
1910
|
fkcompanyColor = headerTheme.fkcompanyColor,
|
|
1398
1911
|
typographyColor = headerTheme.typographyColor;
|
|
1399
|
-
var
|
|
1912
|
+
var _h = useHoverDropdown({
|
|
1400
1913
|
openDelay: 0
|
|
1401
1914
|
}),
|
|
1402
|
-
isDropdownVisible =
|
|
1403
|
-
hoveredElemIndex =
|
|
1404
|
-
handleOnMouseEnter =
|
|
1405
|
-
handleOnMouseLeave =
|
|
1406
|
-
handleDropdownMouseEnter =
|
|
1407
|
-
handleDropdownMouseLeave =
|
|
1915
|
+
isDropdownVisible = _h.isDropdownVisible,
|
|
1916
|
+
hoveredElemIndex = _h.hoveredElemIndex,
|
|
1917
|
+
handleOnMouseEnter = _h.handleOnMouseEnter,
|
|
1918
|
+
handleOnMouseLeave = _h.handleOnMouseLeave,
|
|
1919
|
+
handleDropdownMouseEnter = _h.handleDropdownMouseEnter,
|
|
1920
|
+
handleDropdownMouseLeave = _h.handleDropdownMouseLeave;
|
|
1408
1921
|
var utmSource = (_a = getQueryParam('utm_source')) !== null && _a !== void 0 ? _a : 'organic';
|
|
1409
1922
|
var createPayload = react.useCallback(function (actionName, actionType) {
|
|
1410
1923
|
return {
|
|
@@ -1415,8 +1928,9 @@
|
|
|
1415
1928
|
};
|
|
1416
1929
|
}, [utmSource, loyaltyType]);
|
|
1417
1930
|
var handleNavbarOptionsClick = react.useCallback(function (option) {
|
|
1931
|
+
var _a;
|
|
1418
1932
|
if (option.isClickable && option.link) {
|
|
1419
|
-
var actionName = "".concat(option.text.toLowerCase().replace(/\s/g, ''), "_header_click");
|
|
1933
|
+
var actionName = "".concat((_a = option.text) === null || _a === void 0 ? void 0 : _a.toLowerCase().replace(/\s/g, ''), "_header_click");
|
|
1420
1934
|
var payload = createPayload(actionName, 'click');
|
|
1421
1935
|
ravenSDKTrigger(isUserLoggedIn, ravenEventName, payload, ravenPayload, ravenPushCallback, ravenPageName);
|
|
1422
1936
|
window.location.href = option.link;
|
|
@@ -1428,7 +1942,8 @@
|
|
|
1428
1942
|
window.location.href = '/';
|
|
1429
1943
|
}, [createPayload, isUserLoggedIn, ravenEventName, ravenPayload, ravenPushCallback, ravenPageName]);
|
|
1430
1944
|
var triggerRavenEventOnHover = react.useCallback(function (option) {
|
|
1431
|
-
var
|
|
1945
|
+
var _a;
|
|
1946
|
+
var actionName = "".concat((_a = option.text) === null || _a === void 0 ? void 0 : _a.toLowerCase().replace(/\s/g, ''), "_header_hover");
|
|
1432
1947
|
var payload = createPayload(actionName, 'hover');
|
|
1433
1948
|
ravenSDKTrigger(isUserLoggedIn, ravenEventName, payload, ravenPayload, ravenPushCallback, ravenPageName);
|
|
1434
1949
|
}, [createPayload, isUserLoggedIn, ravenEventName, ravenPayload, ravenPushCallback, ravenPageName]);
|
|
@@ -1482,7 +1997,7 @@
|
|
|
1482
1997
|
}), jsxRuntime.jsx(ctDesignIcons.Fkcompany, {
|
|
1483
1998
|
color: fkcompanyColor
|
|
1484
1999
|
})]
|
|
1485
|
-
})), jsxRuntime.jsxs(ctDesignContainer.Container, __assign({
|
|
2000
|
+
})), !hideNavbar && jsxRuntime.jsxs(ctDesignContainer.Container, __assign({
|
|
1486
2001
|
display: 'flex',
|
|
1487
2002
|
flexDirection: 'row',
|
|
1488
2003
|
alignItems: 'center',
|
|
@@ -1502,11 +2017,16 @@
|
|
|
1502
2017
|
RightIcon = option.rightIcon,
|
|
1503
2018
|
isHoverable = option.isHoverable;
|
|
1504
2019
|
var isHovered = hoveredElemIndex === index;
|
|
2020
|
+
var isEliteNavOption = text === ELITE_NAV_TEXT;
|
|
2021
|
+
if (isEliteNavOption && !hasEliteLoyaltyDetails(eliteDetails)) {
|
|
2022
|
+
return null;
|
|
2023
|
+
}
|
|
2024
|
+
var isDropdownOpen = hoveredElemIndex === index && isHoverable && isDropdownVisible;
|
|
1505
2025
|
return jsxRuntime.jsxs(ctDesignContainer.Container, {
|
|
1506
|
-
children: [jsxRuntime.
|
|
2026
|
+
children: [jsxRuntime.jsx(ctDesignContainer.Container, __assign({
|
|
1507
2027
|
onMouseEnter: function () {
|
|
1508
2028
|
handleOnMouseEnter(index);
|
|
1509
|
-
if (option.isHoverable) {
|
|
2029
|
+
if (option.isHoverable && !isEliteNavOption) {
|
|
1510
2030
|
triggerRavenEventOnHover(option);
|
|
1511
2031
|
}
|
|
1512
2032
|
},
|
|
@@ -1514,7 +2034,7 @@
|
|
|
1514
2034
|
display: 'flex',
|
|
1515
2035
|
flexDirection: 'row',
|
|
1516
2036
|
alignItems: 'center',
|
|
1517
|
-
padding: '8px 12px 8px 12px',
|
|
2037
|
+
padding: isEliteNavOption ? '' : '8px 12px 8px 12px',
|
|
1518
2038
|
cursor: 'pointer',
|
|
1519
2039
|
position: 'relative',
|
|
1520
2040
|
columnGap: 8,
|
|
@@ -1523,37 +2043,45 @@
|
|
|
1523
2043
|
return handleNavbarOptionsClick(option);
|
|
1524
2044
|
}
|
|
1525
2045
|
}, {
|
|
1526
|
-
children:
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
2046
|
+
children: isEliteNavOption ? jsxRuntime.jsx(ctDesignLoyaltyPill.EliteLoyaltyPill, {
|
|
2047
|
+
state: getElitePillState(eliteDetails, isUserLoggedIn),
|
|
2048
|
+
animate: true,
|
|
2049
|
+
onHover: function () {}
|
|
2050
|
+
}) : jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
2051
|
+
children: [LeftIcon && jsxRuntime.jsx(LeftIcon, {
|
|
2052
|
+
color: isHovered ? hoverColor : typographyColor
|
|
2053
|
+
}), jsxRuntime.jsxs(ctDesignContainer.Container, __assign({
|
|
2054
|
+
display: 'flex',
|
|
2055
|
+
flexDirection: 'row',
|
|
2056
|
+
alignItems: 'center'
|
|
1537
2057
|
}, {
|
|
1538
|
-
children:
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
2058
|
+
children: [jsxRuntime.jsx(ctDesignTypography.Typography, __assign({
|
|
2059
|
+
variant: 'B2',
|
|
2060
|
+
colorCode: isHovered ? hoverColor : typographyColor,
|
|
2061
|
+
isClickable: true
|
|
2062
|
+
}, {
|
|
2063
|
+
children: text
|
|
2064
|
+
})), RightIcon && jsxRuntime.jsx(RightIcon, {
|
|
2065
|
+
width: 20,
|
|
2066
|
+
height: 20,
|
|
2067
|
+
fill: isHovered ? hoverColor : typographyColor
|
|
2068
|
+
})]
|
|
2069
|
+
}))]
|
|
2070
|
+
})
|
|
2071
|
+
})), jsxRuntime.jsx(HeaderAnimatedMask, __assign({
|
|
2072
|
+
show: isDropdownOpen,
|
|
1547
2073
|
marginTop: '64px',
|
|
1548
2074
|
handleDropdownMouseEnter: handleDropdownMouseEnter,
|
|
1549
2075
|
handleDropdownMouseLeave: handleDropdownMouseLeave,
|
|
1550
2076
|
onMaskClick: handleDropdownMouseLeave
|
|
1551
2077
|
}, {
|
|
1552
|
-
children: jsxRuntime.jsx(
|
|
1553
|
-
isOpen:
|
|
2078
|
+
children: isEliteNavOption ? jsxRuntime.jsx(EliteDropDownContent, {
|
|
2079
|
+
isOpen: isDropdownOpen
|
|
2080
|
+
}) : jsxRuntime.jsx(BusinessDropdownContent, {
|
|
2081
|
+
isOpen: isDropdownOpen
|
|
1554
2082
|
})
|
|
1555
2083
|
}))]
|
|
1556
|
-
});
|
|
2084
|
+
}, "nav-option-".concat(index));
|
|
1557
2085
|
})
|
|
1558
2086
|
})), isUserLoggedIn && jsxRuntime.jsx(ctDesignDivider.Divider, {
|
|
1559
2087
|
css: {
|
|
@@ -1570,7 +2098,9 @@
|
|
|
1570
2098
|
}, {
|
|
1571
2099
|
children: jsxRuntime.jsx(UserAccount, {})
|
|
1572
2100
|
})) : jsxRuntime.jsx(ctDesignButton.Button, __assign({
|
|
1573
|
-
onClick:
|
|
2101
|
+
onClick: function () {
|
|
2102
|
+
return onLoginButtonClick();
|
|
2103
|
+
},
|
|
1574
2104
|
css: __assign({
|
|
1575
2105
|
width: 153,
|
|
1576
2106
|
height: 40
|