@cleartrip/ct-design-header 1.2.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/RewardsSection/LoyaltyChips.d.ts.map +1 -1
- package/dist/RewardsSection/index.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 +620 -86
- package/dist/ct-design-header.cjs.js.map +1 -1
- package/dist/ct-design-header.esm.js +622 -88
- package/dist/ct-design-header.esm.js.map +1 -1
- package/dist/ct-design-header.umd.js +620 -90
- 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
|
@@ -7,8 +7,12 @@ var ctDesignContainer = require('@cleartrip/ct-design-container');
|
|
|
7
7
|
var ctDesignTypography = require('@cleartrip/ct-design-typography');
|
|
8
8
|
var ctDesignButton = require('@cleartrip/ct-design-button');
|
|
9
9
|
var ctDesignDivider = require('@cleartrip/ct-design-divider');
|
|
10
|
+
var ctDesignLoyaltyPill = require('@cleartrip/ct-design-loyalty-pill');
|
|
10
11
|
var ctDesignIcons = require('@cleartrip/ct-design-icons');
|
|
12
|
+
var ctDesignCommonUtils = require('@cleartrip/ct-design-common-utils');
|
|
11
13
|
var styled = require('styled-components');
|
|
14
|
+
var ctDesignIntersectionObserver = require('@cleartrip/ct-design-intersection-observer');
|
|
15
|
+
var ctDesignTheme = require('@cleartrip/ct-design-theme');
|
|
12
16
|
|
|
13
17
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
18
|
|
|
@@ -17,6 +21,7 @@ var styled__default = /*#__PURE__*/_interopDefault(styled);
|
|
|
17
21
|
var OFFERS_URL = '/all-offers/?categories=flights';
|
|
18
22
|
var MY_TRIPS_URL = '/accounts/trips';
|
|
19
23
|
var SUPPORT_URL = '/support';
|
|
24
|
+
var ELITE_NAV_TEXT = 'Elite';
|
|
20
25
|
var NAVBAR_OPTIONS = [{
|
|
21
26
|
lefticon: ctDesignIcons.Offers,
|
|
22
27
|
text: 'Offers',
|
|
@@ -44,7 +49,29 @@ var NAVBAR_OPTIONS = [{
|
|
|
44
49
|
isHoverable: false,
|
|
45
50
|
isClickable: true,
|
|
46
51
|
link: SUPPORT_URL
|
|
52
|
+
}, {
|
|
53
|
+
text: ELITE_NAV_TEXT,
|
|
54
|
+
ravenActionName: '',
|
|
55
|
+
isHoverable: true,
|
|
56
|
+
isClickable: false
|
|
47
57
|
}];
|
|
58
|
+
var ELITE_HOVER_BUTTON_TEXT = 'View membership benefits';
|
|
59
|
+
var ELITE_HOVER_LOGIN_BUTTON_TEXT = 'Login to check eligibility';
|
|
60
|
+
var LOYALTY_STATUS = {
|
|
61
|
+
ACTIVE: 'ACTIVE',
|
|
62
|
+
INACTIVE: 'INACTIVE',
|
|
63
|
+
SUSPENDED: 'SUSPENDED'
|
|
64
|
+
};
|
|
65
|
+
var DISPLAY_STATUS = {
|
|
66
|
+
ACTIVE: 'ACTIVE',
|
|
67
|
+
INACTIVE: 'INACTIVE',
|
|
68
|
+
EXPIRING_SOON: 'EXPIRING_SOON',
|
|
69
|
+
TRACKER_EXPIRING_SOON: 'TRACKER_EXPIRING_SOON',
|
|
70
|
+
EXPIRED: 'EXPIRED',
|
|
71
|
+
ACTIVATING_SOON: 'ACTIVATING_SOON'
|
|
72
|
+
};
|
|
73
|
+
var EliteChipHoverModalBg = 'https://rukmini-ct.flixcart.com/f_auto,q_auto/offermgmt-prod/offermgmt/images/banner/desktop_pop_up_elite_bgImage-v2.png';
|
|
74
|
+
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';
|
|
48
75
|
var LOBS = {
|
|
49
76
|
FLIGHTS: 'Flights',
|
|
50
77
|
HOTELS: 'Hotels',
|
|
@@ -102,6 +129,14 @@ var RAVEN_PLATFORMS;
|
|
|
102
129
|
(function (RAVEN_PLATFORMS) {
|
|
103
130
|
RAVEN_PLATFORMS["DESKTOP"] = "desktop";
|
|
104
131
|
})(RAVEN_PLATFORMS || (RAVEN_PLATFORMS = {}));
|
|
132
|
+
var RAVEN_EVENTS = {
|
|
133
|
+
UI_ACTION: 'ui_action',
|
|
134
|
+
CT_LOYALTY_BENEFITS_POPUP_LOAD: 'ct_loyalty_benefits_popup_load'
|
|
135
|
+
};
|
|
136
|
+
var RAVEN_ACTIONS = {
|
|
137
|
+
CT_LOYALTY_VIEW_BENEFITS_CLICK: 'ct_loyalty_view_benefits_click',
|
|
138
|
+
ELITE_LOGIN_CLICK: 'elite_login_click'
|
|
139
|
+
};
|
|
105
140
|
var LOG_IN_TEXT = 'Log in';
|
|
106
141
|
var THEME_CONFIG = {
|
|
107
142
|
NOVAC: {
|
|
@@ -176,6 +211,16 @@ var ravenLoyaltyTypes = function (loyaltyType) {
|
|
|
176
211
|
return '';
|
|
177
212
|
}
|
|
178
213
|
};
|
|
214
|
+
var getEliteRavenEventPrefix = function (ravenPageName) {
|
|
215
|
+
switch (ravenPageName) {
|
|
216
|
+
case exports.RAVEN_PAGE_NAMES.FLIGHTS_HOME:
|
|
217
|
+
return 'a_';
|
|
218
|
+
case exports.RAVEN_PAGE_NAMES.HOTELS_HOME:
|
|
219
|
+
return 'h_';
|
|
220
|
+
default:
|
|
221
|
+
return 'u_';
|
|
222
|
+
}
|
|
223
|
+
};
|
|
179
224
|
var ravenSDKTrigger = function (isUserLoggedIn, eventName, ravenPayload, customRavenPayload, ravenPushCallback, pageName) {
|
|
180
225
|
var _a;
|
|
181
226
|
if (typeof ravenPushCallback !== 'function') {
|
|
@@ -205,6 +250,165 @@ var ravenSDKTrigger = function (isUserLoggedIn, eventName, ravenPayload, customR
|
|
|
205
250
|
return;
|
|
206
251
|
}
|
|
207
252
|
};
|
|
253
|
+
var getLoyaltyContent = function (eliteDetails, loyaltyProgram) {
|
|
254
|
+
var _a, _b;
|
|
255
|
+
var loyaltyContent = (_b = (_a = eliteDetails === null || eliteDetails === void 0 ? void 0 : eliteDetails.find(function (item) {
|
|
256
|
+
return (item === null || item === void 0 ? void 0 : item.usecase) === 'LOYALTY';
|
|
257
|
+
})) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b[0];
|
|
258
|
+
var metaData = loyaltyContent === null || loyaltyContent === void 0 ? void 0 : loyaltyContent.metaData;
|
|
259
|
+
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) {
|
|
260
|
+
return null;
|
|
261
|
+
}
|
|
262
|
+
return loyaltyContent || null;
|
|
263
|
+
};
|
|
264
|
+
var getEliteLoyaltyContent = function (eliteDetails) {
|
|
265
|
+
return getLoyaltyContent(eliteDetails, ctDesignLoyaltyPill.LoyaltyProgram.ELITE);
|
|
266
|
+
};
|
|
267
|
+
var getEliteLoyaltyMetadata = function (eliteDetails) {
|
|
268
|
+
var _a, _b;
|
|
269
|
+
return (_b = (_a = getEliteLoyaltyContent(eliteDetails)) === null || _a === void 0 ? void 0 : _a.metaData) !== null && _b !== void 0 ? _b : null;
|
|
270
|
+
};
|
|
271
|
+
var getFkBlackLoyaltyContent = function (eliteDetails) {
|
|
272
|
+
return getLoyaltyContent(eliteDetails, ctDesignLoyaltyPill.LoyaltyProgram.FK_BLACK);
|
|
273
|
+
};
|
|
274
|
+
var getFkBlackLoyaltyMetadata = function (eliteDetails) {
|
|
275
|
+
var _a, _b;
|
|
276
|
+
return (_b = (_a = getFkBlackLoyaltyContent(eliteDetails)) === null || _a === void 0 ? void 0 : _a.metaData) !== null && _b !== void 0 ? _b : null;
|
|
277
|
+
};
|
|
278
|
+
var shouldShowFkBlackLoyaltyChip = function (eliteDetails) {
|
|
279
|
+
return !!getFkBlackLoyaltyContent(eliteDetails);
|
|
280
|
+
};
|
|
281
|
+
var getElitePillState = function (eliteDetails, isUserLoggedIn) {
|
|
282
|
+
var _a;
|
|
283
|
+
if (isUserLoggedIn === void 0) {
|
|
284
|
+
isUserLoggedIn = true;
|
|
285
|
+
}
|
|
286
|
+
if (!isUserLoggedIn) {
|
|
287
|
+
return ctDesignLoyaltyPill.EliteLoyaltyPillStateEnum.LOGGED_OUT;
|
|
288
|
+
}
|
|
289
|
+
var displayStatus = (_a = getEliteLoyaltyMetadata(eliteDetails)) === null || _a === void 0 ? void 0 : _a.displayStatus;
|
|
290
|
+
switch (displayStatus) {
|
|
291
|
+
case DISPLAY_STATUS.ACTIVE:
|
|
292
|
+
case DISPLAY_STATUS.ACTIVATING_SOON:
|
|
293
|
+
return ctDesignLoyaltyPill.EliteLoyaltyPillStateEnum.UNLOCKED;
|
|
294
|
+
case DISPLAY_STATUS.EXPIRING_SOON:
|
|
295
|
+
return ctDesignLoyaltyPill.EliteLoyaltyPillStateEnum.EXPIRING;
|
|
296
|
+
case DISPLAY_STATUS.INACTIVE:
|
|
297
|
+
case DISPLAY_STATUS.TRACKER_EXPIRING_SOON:
|
|
298
|
+
case DISPLAY_STATUS.EXPIRED:
|
|
299
|
+
default:
|
|
300
|
+
return ctDesignLoyaltyPill.EliteLoyaltyPillStateEnum.LOCKED;
|
|
301
|
+
}
|
|
302
|
+
};
|
|
303
|
+
var hasEliteLoyaltyDetails = function (eliteDetails) {
|
|
304
|
+
return !!getEliteLoyaltyMetadata(eliteDetails);
|
|
305
|
+
};
|
|
306
|
+
var isEliteAccountActive = function (metaData) {
|
|
307
|
+
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;
|
|
308
|
+
};
|
|
309
|
+
var getEliteHoverModalContent = function (metaData) {
|
|
310
|
+
var _a, _b, _c;
|
|
311
|
+
return (_c = (_b = ((_a = metaData === null || metaData === void 0 ? void 0 : metaData.benefits) !== null && _a !== void 0 ? _a : []).filter(function (benefit) {
|
|
312
|
+
return benefit === null || benefit === void 0 ? void 0 : benefit.title;
|
|
313
|
+
})) === null || _b === void 0 ? void 0 : _b.map(function (benefit) {
|
|
314
|
+
return benefit.title;
|
|
315
|
+
})) !== null && _c !== void 0 ? _c : [];
|
|
316
|
+
};
|
|
317
|
+
var getOrdinalSuffix = function (day) {
|
|
318
|
+
if (day >= 11 && day <= 13) {
|
|
319
|
+
return 'th';
|
|
320
|
+
}
|
|
321
|
+
switch (day % 10) {
|
|
322
|
+
case 1:
|
|
323
|
+
return 'st';
|
|
324
|
+
case 2:
|
|
325
|
+
return 'nd';
|
|
326
|
+
case 3:
|
|
327
|
+
return 'rd';
|
|
328
|
+
default:
|
|
329
|
+
return 'th';
|
|
330
|
+
}
|
|
331
|
+
};
|
|
332
|
+
var formatEliteUnlockDate = function (unlockDate) {
|
|
333
|
+
if (!unlockDate) {
|
|
334
|
+
return '';
|
|
335
|
+
}
|
|
336
|
+
var isoDateMatch = unlockDate.match(/^(\d{4})-(\d{2})-(\d{2})/);
|
|
337
|
+
var date = isoDateMatch ? new Date(Number(isoDateMatch[1]), Number(isoDateMatch[2]) - 1, Number(isoDateMatch[3])) : new Date(unlockDate);
|
|
338
|
+
if (Number.isNaN(date.getTime())) {
|
|
339
|
+
return '';
|
|
340
|
+
}
|
|
341
|
+
var day = date.getDate();
|
|
342
|
+
var month = date.toLocaleDateString('en-GB', {
|
|
343
|
+
month: 'short'
|
|
344
|
+
});
|
|
345
|
+
return "".concat(day).concat(getOrdinalSuffix(day), " ").concat(month);
|
|
346
|
+
};
|
|
347
|
+
var getAccountEliteStripText = function (metaData) {
|
|
348
|
+
var displayStatus = metaData.displayStatus,
|
|
349
|
+
unlockDate = metaData.unlockDate;
|
|
350
|
+
switch (displayStatus) {
|
|
351
|
+
case DISPLAY_STATUS.ACTIVATING_SOON:
|
|
352
|
+
{
|
|
353
|
+
var formattedUnlockDate = formatEliteUnlockDate(unlockDate);
|
|
354
|
+
return {
|
|
355
|
+
prefix: 'Your',
|
|
356
|
+
suffix: formattedUnlockDate ? "benefits unlock on ".concat(formattedUnlockDate) : 'benefits unlock soon'
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
case DISPLAY_STATUS.INACTIVE:
|
|
360
|
+
case DISPLAY_STATUS.TRACKER_EXPIRING_SOON:
|
|
361
|
+
case DISPLAY_STATUS.EXPIRED:
|
|
362
|
+
return {
|
|
363
|
+
prefix: 'Unlock',
|
|
364
|
+
suffix: 'membership'
|
|
365
|
+
};
|
|
366
|
+
default:
|
|
367
|
+
return {
|
|
368
|
+
prefix: 'Your',
|
|
369
|
+
suffix: 'membership'
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
};
|
|
373
|
+
var redirectToEliteUrl = function (url) {
|
|
374
|
+
if (url) window.location.href = url;
|
|
375
|
+
};
|
|
376
|
+
var mapDisplayStatusToRavenEliteStatus = function (displayStatus) {
|
|
377
|
+
switch (displayStatus) {
|
|
378
|
+
case DISPLAY_STATUS.ACTIVE:
|
|
379
|
+
return 'active';
|
|
380
|
+
case DISPLAY_STATUS.EXPIRING_SOON:
|
|
381
|
+
return 'expiring_soon';
|
|
382
|
+
case DISPLAY_STATUS.INACTIVE:
|
|
383
|
+
return 'inactive';
|
|
384
|
+
default:
|
|
385
|
+
return 'na';
|
|
386
|
+
}
|
|
387
|
+
};
|
|
388
|
+
var getEliteRavenAttributes = function (eliteDetails) {
|
|
389
|
+
var _a, _b;
|
|
390
|
+
var eliteContent = getEliteLoyaltyContent(eliteDetails);
|
|
391
|
+
if (ctDesignCommonUtils.isEmpty(eliteContent === null || eliteContent === void 0 ? void 0 : eliteContent.metaData)) {
|
|
392
|
+
return {};
|
|
393
|
+
}
|
|
394
|
+
var _c = eliteContent !== null && eliteContent !== void 0 ? eliteContent : {},
|
|
395
|
+
metaData = _c.metaData,
|
|
396
|
+
constraintList = _c.constraintList,
|
|
397
|
+
partnerProgram = _c.partnerProgram,
|
|
398
|
+
allotmentDate = _c.allotmentDate,
|
|
399
|
+
viewExpiryDate = _c.viewExpiryDate;
|
|
400
|
+
_c.lifetimeSavings;
|
|
401
|
+
var _d = (_a = constraintList === null || constraintList === void 0 ? void 0 : constraintList[0]) !== null && _a !== void 0 ? _a : {},
|
|
402
|
+
target = _d.target,
|
|
403
|
+
bookingCount = _d.bookingCount;
|
|
404
|
+
return {
|
|
405
|
+
elite_status: (_b = mapDisplayStatusToRavenEliteStatus(metaData === null || metaData === void 0 ? void 0 : metaData.displayStatus)) !== null && _b !== void 0 ? _b : 'na',
|
|
406
|
+
elite_progress: target ? "".concat(bookingCount, "/").concat(target) : 'na',
|
|
407
|
+
partner_program_source: partnerProgram !== null && partnerProgram !== void 0 ? partnerProgram : 'na',
|
|
408
|
+
elite_unlock_date: allotmentDate !== null && allotmentDate !== void 0 ? allotmentDate : 'na',
|
|
409
|
+
elite_membership_end_date: viewExpiryDate !== null && viewExpiryDate !== void 0 ? viewExpiryDate : 'na'
|
|
410
|
+
};
|
|
411
|
+
};
|
|
208
412
|
|
|
209
413
|
var LobsHeader = function () {
|
|
210
414
|
var _a = useHeaderContext(),
|
|
@@ -503,6 +707,32 @@ var arrowContainerStyles = {
|
|
|
503
707
|
overflow: 'hidden',
|
|
504
708
|
borderRadius: '50%'
|
|
505
709
|
};
|
|
710
|
+
var getAccountEliteSectionStyles = function (theme) {
|
|
711
|
+
return {
|
|
712
|
+
background: 'linear-gradient(90deg, #fce9ff 26.53%, #ffefee 88.06%)',
|
|
713
|
+
padding: "".concat(theme.spacing[2], " ").concat(theme.spacing[4]),
|
|
714
|
+
display: 'flex',
|
|
715
|
+
justifyContent: 'space-between',
|
|
716
|
+
alignItems: 'center'
|
|
717
|
+
};
|
|
718
|
+
};
|
|
719
|
+
var getEliteTxtSvgStyles = function (theme) {
|
|
720
|
+
return {
|
|
721
|
+
display: 'flex',
|
|
722
|
+
flexDirection: 'column',
|
|
723
|
+
alignSelf: 'center',
|
|
724
|
+
margin: "auto ".concat(theme.spacing[1])
|
|
725
|
+
};
|
|
726
|
+
};
|
|
727
|
+
var getAccountUnlockedBgStyles = function (isEliteUnlocked, bgImgUrl) {
|
|
728
|
+
if (isEliteUnlocked) return {
|
|
729
|
+
backgroundRepeat: 'no-repeat',
|
|
730
|
+
backgroundSize: 'cover',
|
|
731
|
+
backgroundPosition: 'center',
|
|
732
|
+
backgroundImage: "url(".concat(bgImgUrl, ")")
|
|
733
|
+
};
|
|
734
|
+
return {};
|
|
735
|
+
};
|
|
506
736
|
var getLoginButtonBgColorStyles = function (saleThemeEnabled) {
|
|
507
737
|
if (saleThemeEnabled) {
|
|
508
738
|
return {
|
|
@@ -676,6 +906,203 @@ var BusinessDropdownContent = function (_a) {
|
|
|
676
906
|
};
|
|
677
907
|
var templateObject_1;
|
|
678
908
|
|
|
909
|
+
var useEliteRaven = function () {
|
|
910
|
+
var _a = useHeaderContext(),
|
|
911
|
+
eliteDetails = _a.eliteDetails,
|
|
912
|
+
ravenPushCallback = _a.ravenPushCallback,
|
|
913
|
+
ravenPageName = _a.ravenPageName,
|
|
914
|
+
isUserLoggedIn = _a.isUserLoggedIn,
|
|
915
|
+
_b = _a.ravenPayload,
|
|
916
|
+
ravenPayload = _b === void 0 ? {} : _b;
|
|
917
|
+
var ravenAttributes = react.useMemo(function () {
|
|
918
|
+
return getEliteRavenAttributes(eliteDetails);
|
|
919
|
+
}, [eliteDetails]);
|
|
920
|
+
var ravenEventPrefix = react.useMemo(function () {
|
|
921
|
+
return getEliteRavenEventPrefix(ravenPageName);
|
|
922
|
+
}, [ravenPageName]);
|
|
923
|
+
var triggerRavenEvent = react.useCallback(function (eventSuffix, payload) {
|
|
924
|
+
if (payload === void 0) {
|
|
925
|
+
payload = {};
|
|
926
|
+
}
|
|
927
|
+
if (!ravenPushCallback) {
|
|
928
|
+
return;
|
|
929
|
+
}
|
|
930
|
+
ravenSDKTrigger(isUserLoggedIn, "".concat(ravenEventPrefix).concat(eventSuffix), tslib.__assign(tslib.__assign({}, ravenAttributes), payload), ravenPayload, ravenPushCallback, ravenPageName);
|
|
931
|
+
}, [isUserLoggedIn, ravenAttributes, ravenEventPrefix, ravenPayload, ravenPushCallback, ravenPageName]);
|
|
932
|
+
return {
|
|
933
|
+
ravenEventPrefix: ravenEventPrefix,
|
|
934
|
+
ravenAttributes: ravenAttributes,
|
|
935
|
+
ravenPushCallback: ravenPushCallback,
|
|
936
|
+
isUserLoggedIn: isUserLoggedIn,
|
|
937
|
+
ravenPageName: ravenPageName,
|
|
938
|
+
triggerRavenEvent: triggerRavenEvent
|
|
939
|
+
};
|
|
940
|
+
};
|
|
941
|
+
|
|
942
|
+
var ELITE_DROPDOWN_POSITION_OFFSET = 30;
|
|
943
|
+
var ELITE_DROPDOWN_TOP = '76px';
|
|
944
|
+
var ELITE_DROPDOWN_WIDTH = '360px';
|
|
945
|
+
var ELITE_DROPDOWN_Z_INDEX = 1002;
|
|
946
|
+
var getEliteDropdownContainerStyles = function (theme, contentHeight) {
|
|
947
|
+
return {
|
|
948
|
+
position: 'fixed',
|
|
949
|
+
top: ELITE_DROPDOWN_TOP,
|
|
950
|
+
width: ELITE_DROPDOWN_WIDTH,
|
|
951
|
+
zIndex: ELITE_DROPDOWN_Z_INDEX,
|
|
952
|
+
backgroundColor: theme.color.background.neutral,
|
|
953
|
+
borderRadius: theme.border.radius[16],
|
|
954
|
+
boxShadow: theme.elevation.bottomE3,
|
|
955
|
+
overflow: 'hidden',
|
|
956
|
+
opacity: 0,
|
|
957
|
+
backgroundImage: "url(".concat(EliteChipHoverModalBg, ")"),
|
|
958
|
+
backgroundSize: contentHeight ? "100% ".concat(contentHeight, "px") : '100% auto',
|
|
959
|
+
backgroundPosition: 'top center',
|
|
960
|
+
backgroundRepeat: 'no-repeat',
|
|
961
|
+
paddingLeft: theme.spacing[7],
|
|
962
|
+
paddingRight: theme.spacing[7],
|
|
963
|
+
paddingBottom: theme.spacing[9]
|
|
964
|
+
};
|
|
965
|
+
};
|
|
966
|
+
var getEliteBenefitsGridStyles = function (theme) {
|
|
967
|
+
return {
|
|
968
|
+
display: 'grid',
|
|
969
|
+
gridTemplateColumns: '1fr 1fr',
|
|
970
|
+
gap: theme.spacing[3],
|
|
971
|
+
margin: "".concat(theme.spacing[4], " 0 ").concat(theme.spacing[6])
|
|
972
|
+
};
|
|
973
|
+
};
|
|
974
|
+
var getEliteBenefitCardStyles = function (theme) {
|
|
975
|
+
return {
|
|
976
|
+
display: 'flex',
|
|
977
|
+
alignItems: 'center',
|
|
978
|
+
justifyContent: 'center',
|
|
979
|
+
padding: theme.spacing[3],
|
|
980
|
+
backgroundColor: theme.color.text.neutral50,
|
|
981
|
+
borderRadius: theme.border.radius[16]
|
|
982
|
+
};
|
|
983
|
+
};
|
|
984
|
+
|
|
985
|
+
var EliteBenefitsContent = function (_a) {
|
|
986
|
+
var _b = _a.benefits,
|
|
987
|
+
benefits = _b === void 0 ? [] : _b,
|
|
988
|
+
ctaText = _a.ctaText,
|
|
989
|
+
showCta = _a.showCta,
|
|
990
|
+
onCtaClick = _a.onCtaClick,
|
|
991
|
+
_c = _a.hideRedirectionCTA,
|
|
992
|
+
hideRedirectionCTA = _c === void 0 ? false : _c;
|
|
993
|
+
var theme = ctDesignTheme.useTheme();
|
|
994
|
+
return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
995
|
+
children: [(benefits === null || benefits === void 0 ? void 0 : benefits.length) > 0 && jsxRuntime.jsx(ctDesignContainer.Container, tslib.__assign({
|
|
996
|
+
css: getEliteBenefitsGridStyles(theme)
|
|
997
|
+
}, {
|
|
998
|
+
children: benefits === null || benefits === void 0 ? void 0 : benefits.map(function (benefit, index) {
|
|
999
|
+
return jsxRuntime.jsx(ctDesignContainer.Container, tslib.__assign({
|
|
1000
|
+
css: getEliteBenefitCardStyles(theme)
|
|
1001
|
+
}, {
|
|
1002
|
+
children: jsxRuntime.jsx(ctDesignTypography.Typography, tslib.__assign({
|
|
1003
|
+
variant: 'HM3',
|
|
1004
|
+
className: 'ta-center'
|
|
1005
|
+
}, {
|
|
1006
|
+
children: benefit
|
|
1007
|
+
}))
|
|
1008
|
+
}), index);
|
|
1009
|
+
})
|
|
1010
|
+
})), showCta && ctaText && !hideRedirectionCTA && jsxRuntime.jsx(ctDesignButton.Button, tslib.__assign({
|
|
1011
|
+
className: 'w-100p',
|
|
1012
|
+
onClick: onCtaClick
|
|
1013
|
+
}, {
|
|
1014
|
+
children: ctaText
|
|
1015
|
+
}))]
|
|
1016
|
+
});
|
|
1017
|
+
};
|
|
1018
|
+
|
|
1019
|
+
var EliteDropDownContent = function (_a) {
|
|
1020
|
+
var isOpen = _a.isOpen;
|
|
1021
|
+
var theme = ctDesignTheme.useTheme();
|
|
1022
|
+
var _b = useHeaderContext(),
|
|
1023
|
+
eliteDetails = _b.eliteDetails,
|
|
1024
|
+
onLoginButtonClick = _b.onLoginButtonClick,
|
|
1025
|
+
_c = _b.hideEliteRedirectionCTA,
|
|
1026
|
+
hideEliteRedirectionCTA = _c === void 0 ? false : _c;
|
|
1027
|
+
var eliteMetadata = getEliteLoyaltyMetadata(eliteDetails);
|
|
1028
|
+
var _d = useEliteRaven(),
|
|
1029
|
+
isUserLoggedIn = _d.isUserLoggedIn,
|
|
1030
|
+
triggerRavenEvent = _d.triggerRavenEvent;
|
|
1031
|
+
var containerRef = useDropdownAnimation(isOpen).containerRef;
|
|
1032
|
+
var _e = react.useState(),
|
|
1033
|
+
leftPosition = _e[0],
|
|
1034
|
+
setLeftPosition = _e[1];
|
|
1035
|
+
var _f = react.useState(),
|
|
1036
|
+
contentHeight = _f[0],
|
|
1037
|
+
setContentHeight = _f[1];
|
|
1038
|
+
var benefits = getEliteHoverModalContent(eliteMetadata);
|
|
1039
|
+
react.useLayoutEffect(function () {
|
|
1040
|
+
if (!containerRef.current) {
|
|
1041
|
+
return;
|
|
1042
|
+
}
|
|
1043
|
+
var _a = containerRef.current.getBoundingClientRect(),
|
|
1044
|
+
left = _a.left,
|
|
1045
|
+
width = _a.width;
|
|
1046
|
+
setLeftPosition(left - width / 2 + ELITE_DROPDOWN_POSITION_OFFSET);
|
|
1047
|
+
setContentHeight(containerRef.current.scrollHeight);
|
|
1048
|
+
}, [containerRef]);
|
|
1049
|
+
var handleIntersection = react.useCallback(function () {
|
|
1050
|
+
triggerRavenEvent(RAVEN_EVENTS.CT_LOYALTY_BENEFITS_POPUP_LOAD);
|
|
1051
|
+
}, [triggerRavenEvent]);
|
|
1052
|
+
var handleViewBenefitsClick = react.useCallback(function () {
|
|
1053
|
+
if (!(eliteMetadata === null || eliteMetadata === void 0 ? void 0 : eliteMetadata.redirectionUrl)) {
|
|
1054
|
+
return;
|
|
1055
|
+
}
|
|
1056
|
+
triggerRavenEvent(RAVEN_EVENTS.UI_ACTION, {
|
|
1057
|
+
action_name: RAVEN_ACTIONS.CT_LOYALTY_VIEW_BENEFITS_CLICK
|
|
1058
|
+
});
|
|
1059
|
+
redirectToEliteUrl(eliteMetadata.redirectionUrl);
|
|
1060
|
+
}, [eliteMetadata, triggerRavenEvent]);
|
|
1061
|
+
var handleEliteLoginClick = react.useCallback(function () {
|
|
1062
|
+
triggerRavenEvent(RAVEN_EVENTS.UI_ACTION, {
|
|
1063
|
+
action_name: RAVEN_ACTIONS.ELITE_LOGIN_CLICK
|
|
1064
|
+
});
|
|
1065
|
+
onLoginButtonClick({
|
|
1066
|
+
isEliteLogin: true
|
|
1067
|
+
});
|
|
1068
|
+
}, [onLoginButtonClick, triggerRavenEvent]);
|
|
1069
|
+
var showCta = isUserLoggedIn ? !!(eliteMetadata === null || eliteMetadata === void 0 ? void 0 : eliteMetadata.redirectionUrl) : true;
|
|
1070
|
+
var ctaText = isUserLoggedIn ? ELITE_HOVER_BUTTON_TEXT : ELITE_HOVER_LOGIN_BUTTON_TEXT;
|
|
1071
|
+
var onCtaClick = isUserLoggedIn ? handleViewBenefitsClick : handleEliteLoginClick;
|
|
1072
|
+
if (!eliteMetadata) {
|
|
1073
|
+
return null;
|
|
1074
|
+
}
|
|
1075
|
+
return jsxRuntime.jsx(ctDesignIntersectionObserver.IntersectionObserver, tslib.__assign({
|
|
1076
|
+
onIntersection: handleIntersection
|
|
1077
|
+
}, {
|
|
1078
|
+
children: jsxRuntime.jsxs(ctDesignContainer.Container, tslib.__assign({
|
|
1079
|
+
ref: containerRef,
|
|
1080
|
+
className: 'o-0',
|
|
1081
|
+
css: tslib.__assign(tslib.__assign({}, getEliteDropdownContainerStyles(theme, contentHeight)), {
|
|
1082
|
+
left: leftPosition && "".concat(leftPosition, "px")
|
|
1083
|
+
})
|
|
1084
|
+
}, {
|
|
1085
|
+
children: [jsxRuntime.jsx(ctDesignContainer.Container, tslib.__assign({
|
|
1086
|
+
className: 'ta-center',
|
|
1087
|
+
css: {
|
|
1088
|
+
marginTop: theme.spacing[9]
|
|
1089
|
+
}
|
|
1090
|
+
}, {
|
|
1091
|
+
children: jsxRuntime.jsx(ctDesignIcons.EliteText, {
|
|
1092
|
+
width: 120,
|
|
1093
|
+
height: 48
|
|
1094
|
+
})
|
|
1095
|
+
})), jsxRuntime.jsx(EliteBenefitsContent, {
|
|
1096
|
+
benefits: benefits,
|
|
1097
|
+
showCta: showCta,
|
|
1098
|
+
ctaText: ctaText,
|
|
1099
|
+
onCtaClick: onCtaClick,
|
|
1100
|
+
hideRedirectionCTA: hideEliteRedirectionCTA
|
|
1101
|
+
})]
|
|
1102
|
+
}))
|
|
1103
|
+
}));
|
|
1104
|
+
};
|
|
1105
|
+
|
|
679
1106
|
var ACCOUNT_OPTIONS_POPUP_CONFIG = [{
|
|
680
1107
|
text: 'My Profile',
|
|
681
1108
|
icon: jsxRuntime.jsx(ctDesignIcons.MyAccount, {
|
|
@@ -744,26 +1171,30 @@ var LoyaltyChip = function (_a) {
|
|
|
744
1171
|
ravenPageName = _b.ravenPageName,
|
|
745
1172
|
_c = _b.ravenPayload,
|
|
746
1173
|
ravenPayload = _c === void 0 ? {} : _c,
|
|
747
|
-
ravenEventName = _b.ravenEventName
|
|
1174
|
+
ravenEventName = _b.ravenEventName,
|
|
1175
|
+
eliteDetails = _b.eliteDetails;
|
|
748
1176
|
var _d = react.useState(false),
|
|
749
1177
|
isHovered = _d[0],
|
|
750
1178
|
setIsHovered = _d[1];
|
|
751
1179
|
var handleClick = react.useCallback(function () {
|
|
752
|
-
var _a;
|
|
1180
|
+
var _a, _b;
|
|
753
1181
|
if (handleChipClick) {
|
|
754
1182
|
handleChipClick();
|
|
755
|
-
|
|
756
|
-
var utmSource = (_a = getQueryParam('utm_source')) !== null && _a !== void 0 ? _a : 'organic';
|
|
757
|
-
var defaultPayload = {
|
|
758
|
-
action_name: "loyalty_account_click",
|
|
759
|
-
action_type: 'click',
|
|
760
|
-
u_utm_source: utmSource,
|
|
761
|
-
loyaltyType: ravenLoyaltyTypes(loyaltyType)
|
|
762
|
-
};
|
|
763
|
-
ravenSDKTrigger(isUserLoggedIn, ravenEventName, defaultPayload, ravenPayload, ravenPushCallback, ravenPageName);
|
|
764
|
-
window.location.href = '/all-offers/loyalty-october';
|
|
1183
|
+
return;
|
|
765
1184
|
}
|
|
766
|
-
|
|
1185
|
+
var utmSource = (_a = getQueryParam('utm_source')) !== null && _a !== void 0 ? _a : 'organic';
|
|
1186
|
+
var defaultPayload = {
|
|
1187
|
+
action_name: "loyalty_account_click",
|
|
1188
|
+
action_type: 'click',
|
|
1189
|
+
u_utm_source: utmSource,
|
|
1190
|
+
loyaltyType: ravenLoyaltyTypes(loyaltyType)
|
|
1191
|
+
};
|
|
1192
|
+
ravenSDKTrigger(isUserLoggedIn, ravenEventName, defaultPayload, ravenPayload, ravenPushCallback, ravenPageName);
|
|
1193
|
+
var redirectionUrl = (_b = getFkBlackLoyaltyMetadata(eliteDetails)) === null || _b === void 0 ? void 0 : _b.redirectionUrl;
|
|
1194
|
+
if (redirectionUrl) {
|
|
1195
|
+
redirectToEliteUrl(redirectionUrl);
|
|
1196
|
+
}
|
|
1197
|
+
}, [handleChipClick, loyaltyType, isUserLoggedIn, ravenEventName, ravenPayload, ravenPushCallback, ravenPageName, eliteDetails]);
|
|
767
1198
|
return jsxRuntime.jsxs(ctDesignContainer.Container, tslib.__assign({
|
|
768
1199
|
display: 'flex',
|
|
769
1200
|
position: 'relative',
|
|
@@ -848,6 +1279,7 @@ exports.LoyaltyType = void 0;
|
|
|
848
1279
|
LoyaltyType["InsiderIcon"] = "InsiderIcon";
|
|
849
1280
|
LoyaltyType["InsiderElite"] = "InsiderElite";
|
|
850
1281
|
LoyaltyType["CtLoyalty"] = "CtLoyalty";
|
|
1282
|
+
LoyaltyType["Elite"] = "ELITE";
|
|
851
1283
|
})(exports.LoyaltyType || (exports.LoyaltyType = {}));
|
|
852
1284
|
|
|
853
1285
|
var _a;
|
|
@@ -965,23 +1397,24 @@ var ExpandableItem = function (_a) {
|
|
|
965
1397
|
}));
|
|
966
1398
|
};
|
|
967
1399
|
var RewardsSection = function () {
|
|
968
|
-
var _a
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
var
|
|
1400
|
+
var _a = useHeaderContext(),
|
|
1401
|
+
eliteDetails = _a.eliteDetails,
|
|
1402
|
+
_b = _a.fkSupercoinBurnBalance,
|
|
1403
|
+
superCoinBalance = _b === void 0 ? 0 : _b,
|
|
1404
|
+
_c = _a.walletBalance,
|
|
1405
|
+
walletBalance = _c === void 0 ? 0 : _c,
|
|
1406
|
+
loyaltyLoading = _a.loyaltyLoading,
|
|
1407
|
+
superCoinsLoading = _a.superCoinsLoading,
|
|
1408
|
+
walletLoading = _a.walletLoading,
|
|
1409
|
+
walletChipClick = _a.walletChipClick,
|
|
1410
|
+
supercoinsChipClick = _a.supercoinsChipClick,
|
|
1411
|
+
loyaltyChipClick = _a.loyaltyChipClick,
|
|
1412
|
+
hideWalletChip = _a.hideWalletChip,
|
|
1413
|
+
hideSupercoinsChip = _a.hideSupercoinsChip,
|
|
1414
|
+
hideLoyaltyChip = _a.hideLoyaltyChip;
|
|
1415
|
+
var fkBlackLoyaltyChipData = LOYALTY_DATA[exports.LoyaltyType.FkVip];
|
|
1416
|
+
var hasFkBlackLoyalty = shouldShowFkBlackLoyaltyChip(eliteDetails) && !hideLoyaltyChip && !!fkBlackLoyaltyChipData;
|
|
1417
|
+
var shouldShowLoyalty = loyaltyLoading || hasFkBlackLoyalty;
|
|
985
1418
|
var shouldShowSupercoin = superCoinsLoading || !hideSupercoinsChip;
|
|
986
1419
|
var shouldShowWallet = walletLoading || !hideWalletChip;
|
|
987
1420
|
if (!shouldShowLoyalty && !shouldShowSupercoin && !shouldShowWallet) {
|
|
@@ -1001,11 +1434,11 @@ var RewardsSection = function () {
|
|
|
1001
1434
|
height: '32px',
|
|
1002
1435
|
borderRadius: '8px',
|
|
1003
1436
|
backgroundColor: '#efefef'
|
|
1004
|
-
}) :
|
|
1005
|
-
icon:
|
|
1006
|
-
borderGradient:
|
|
1007
|
-
backgroundGradient:
|
|
1008
|
-
chevronFillColor:
|
|
1437
|
+
}) : hasFkBlackLoyalty && jsxRuntime.jsx(LoyaltyChip, {
|
|
1438
|
+
icon: fkBlackLoyaltyChipData.icon,
|
|
1439
|
+
borderGradient: fkBlackLoyaltyChipData.borderGradient,
|
|
1440
|
+
backgroundGradient: fkBlackLoyaltyChipData.backgroundGradient,
|
|
1441
|
+
chevronFillColor: fkBlackLoyaltyChipData.chevronFillColor || '#FFF',
|
|
1009
1442
|
handleChipClick: loyaltyChipClick
|
|
1010
1443
|
}), superCoinsLoading ? jsxRuntime.jsx(ctDesignContainer.Container, {
|
|
1011
1444
|
width: '50px',
|
|
@@ -1037,6 +1470,77 @@ var RewardsSection = function () {
|
|
|
1037
1470
|
}));
|
|
1038
1471
|
};
|
|
1039
1472
|
|
|
1473
|
+
var ELITE_STATUS_LABEL = {
|
|
1474
|
+
ACTIVE: 'ACTIVE',
|
|
1475
|
+
EXPIRING_SOON: 'EXPIRING SOON'
|
|
1476
|
+
};
|
|
1477
|
+
var eliteStatusBadgeStyles = function (theme, isExpiringSoon) {
|
|
1478
|
+
return {
|
|
1479
|
+
background: isExpiringSoon ? theme.color.badge.alertYellow500 : theme.color.badge.successGreen500,
|
|
1480
|
+
borderRadius: '4px',
|
|
1481
|
+
padding: '4px'
|
|
1482
|
+
};
|
|
1483
|
+
};
|
|
1484
|
+
var EliteStatusBadge = function (_a) {
|
|
1485
|
+
var metaData = _a.metaData;
|
|
1486
|
+
var theme = ctDesignTheme.useTheme();
|
|
1487
|
+
if (!isEliteAccountActive(metaData)) {
|
|
1488
|
+
return null;
|
|
1489
|
+
}
|
|
1490
|
+
var isExpiringSoon = metaData.displayStatus === DISPLAY_STATUS.EXPIRING_SOON;
|
|
1491
|
+
return jsxRuntime.jsx(ctDesignContainer.Container, tslib.__assign({
|
|
1492
|
+
css: eliteStatusBadgeStyles(theme, isExpiringSoon)
|
|
1493
|
+
}, {
|
|
1494
|
+
children: jsxRuntime.jsx(ctDesignTypography.Typography, tslib.__assign({
|
|
1495
|
+
color: 'neutral750',
|
|
1496
|
+
variant: 'B4CAPS'
|
|
1497
|
+
}, {
|
|
1498
|
+
children: isExpiringSoon ? ELITE_STATUS_LABEL.EXPIRING_SOON : ELITE_STATUS_LABEL.ACTIVE
|
|
1499
|
+
}))
|
|
1500
|
+
}));
|
|
1501
|
+
};
|
|
1502
|
+
|
|
1503
|
+
var AccountEliteStrip = function (_a) {
|
|
1504
|
+
var metaData = _a.metaData;
|
|
1505
|
+
var theme = ctDesignTheme.useTheme();
|
|
1506
|
+
var triggerRavenEvent = useEliteRaven().triggerRavenEvent;
|
|
1507
|
+
var redirectionUrl = metaData.redirectionUrl;
|
|
1508
|
+
var _b = react.useMemo(function () {
|
|
1509
|
+
return getAccountEliteStripText(metaData);
|
|
1510
|
+
}, [metaData]),
|
|
1511
|
+
prefix = _b.prefix,
|
|
1512
|
+
suffix = _b.suffix;
|
|
1513
|
+
var handleStripClick = react.useCallback(function () {
|
|
1514
|
+
if (!redirectionUrl) {
|
|
1515
|
+
return;
|
|
1516
|
+
}
|
|
1517
|
+
triggerRavenEvent(RAVEN_EVENTS.UI_ACTION, {
|
|
1518
|
+
action_name: RAVEN_ACTIONS.CT_LOYALTY_VIEW_BENEFITS_CLICK
|
|
1519
|
+
});
|
|
1520
|
+
redirectToEliteUrl(redirectionUrl);
|
|
1521
|
+
}, [redirectionUrl, triggerRavenEvent]);
|
|
1522
|
+
return jsxRuntime.jsxs(ctDesignContainer.Container, tslib.__assign({
|
|
1523
|
+
className: "account-elite-section ".concat(redirectionUrl ? 'c-pointer' : ''),
|
|
1524
|
+
css: getAccountEliteSectionStyles(theme),
|
|
1525
|
+
onClick: handleStripClick
|
|
1526
|
+
}, {
|
|
1527
|
+
children: [jsxRuntime.jsxs(ctDesignTypography.Typography, tslib.__assign({
|
|
1528
|
+
variant: 'B2',
|
|
1529
|
+
className: 'flex'
|
|
1530
|
+
}, {
|
|
1531
|
+
children: [prefix, " ", jsxRuntime.jsx(ctDesignIcons.EliteText, {
|
|
1532
|
+
className: 'elite-txt-svg',
|
|
1533
|
+
style: getEliteTxtSvgStyles(theme)
|
|
1534
|
+
}), " ", suffix, ' ', redirectionUrl && jsxRuntime.jsx(ctDesignIcons.HeaderChevronRight, {
|
|
1535
|
+
width: 20,
|
|
1536
|
+
height: 20
|
|
1537
|
+
})]
|
|
1538
|
+
})), jsxRuntime.jsx(EliteStatusBadge, {
|
|
1539
|
+
metaData: metaData
|
|
1540
|
+
})]
|
|
1541
|
+
}));
|
|
1542
|
+
};
|
|
1543
|
+
|
|
1040
1544
|
var AccountDropdownContent = function (_a) {
|
|
1041
1545
|
var isOpen = _a.isOpen;
|
|
1042
1546
|
var _b = useHeaderContext(),
|
|
@@ -1046,21 +1550,25 @@ var AccountDropdownContent = function (_a) {
|
|
|
1046
1550
|
countryCode = _b.countryCode,
|
|
1047
1551
|
userDetailsLoading = _b.userDetailsLoading,
|
|
1048
1552
|
loyaltyType = _b.loyaltyType,
|
|
1553
|
+
eliteDetails = _b.eliteDetails,
|
|
1554
|
+
_c = _b.hideEliteRedirectionCTA,
|
|
1555
|
+
hideEliteRedirectionCTA = _c === void 0 ? false : _c,
|
|
1049
1556
|
isUserLoggedIn = _b.isUserLoggedIn,
|
|
1050
1557
|
ravenEventName = _b.ravenEventName,
|
|
1051
1558
|
ravenPageName = _b.ravenPageName,
|
|
1052
|
-
|
|
1053
|
-
ravenPayload =
|
|
1559
|
+
_d = _b.ravenPayload,
|
|
1560
|
+
ravenPayload = _d === void 0 ? {} : _d,
|
|
1054
1561
|
ravenPushCallback = _b.ravenPushCallback;
|
|
1562
|
+
var eliteMetadata = getEliteLoyaltyMetadata(eliteDetails);
|
|
1055
1563
|
var containerRef = useDropdownAnimation(isOpen).containerRef;
|
|
1056
|
-
var
|
|
1564
|
+
var _e = react.useMemo(function () {
|
|
1057
1565
|
return {
|
|
1058
1566
|
userGreeting: userName ? "Hello ".concat(userName, "!") : '',
|
|
1059
1567
|
phoneNumber: countryCode && userMobileNumber ? "".concat(countryCode, " ").concat(userMobileNumber) : ''
|
|
1060
1568
|
};
|
|
1061
1569
|
}, [userName, userMobileNumber, countryCode]),
|
|
1062
|
-
userGreeting =
|
|
1063
|
-
phoneNumber =
|
|
1570
|
+
userGreeting = _e.userGreeting,
|
|
1571
|
+
phoneNumber = _e.phoneNumber;
|
|
1064
1572
|
var generateRavenPayload = function (actionName) {
|
|
1065
1573
|
var _a;
|
|
1066
1574
|
return {
|
|
@@ -1133,12 +1641,18 @@ var AccountDropdownContent = function (_a) {
|
|
|
1133
1641
|
width: "".concat(ACCOUNT_OPTIONS_CONTAINER_WIDTH, "px"),
|
|
1134
1642
|
background: '#FFF1EC'
|
|
1135
1643
|
}, {
|
|
1136
|
-
children: [jsxRuntime.
|
|
1137
|
-
|
|
1138
|
-
height: '76px'
|
|
1644
|
+
children: [jsxRuntime.jsxs(ctDesignContainer.Container, tslib.__assign({
|
|
1645
|
+
css: getAccountUnlockedBgStyles(isEliteAccountActive(eliteMetadata), EliteAccountStripBg)
|
|
1139
1646
|
}, {
|
|
1140
|
-
children:
|
|
1141
|
-
|
|
1647
|
+
children: [jsxRuntime.jsx(ctDesignContainer.Container, tslib.__assign({
|
|
1648
|
+
padding: '16px',
|
|
1649
|
+
height: '76px'
|
|
1650
|
+
}, {
|
|
1651
|
+
children: renderUserData()
|
|
1652
|
+
})), jsxRuntime.jsx(RewardsSection, {})]
|
|
1653
|
+
})), hasEliteLoyaltyDetails(eliteDetails) && eliteMetadata && !hideEliteRedirectionCTA && jsxRuntime.jsx(AccountEliteStrip, {
|
|
1654
|
+
metaData: eliteMetadata
|
|
1655
|
+
}), jsxRuntime.jsxs(ctDesignContainer.Container, tslib.__assign({
|
|
1142
1656
|
display: 'flex',
|
|
1143
1657
|
flexDirection: 'column',
|
|
1144
1658
|
padding: '8px',
|
|
@@ -1326,16 +1840,19 @@ var HeaderContent = function () {
|
|
|
1326
1840
|
showAllLobs = _c === void 0 ? false : _c,
|
|
1327
1841
|
isUserLoggedIn = _b.isUserLoggedIn,
|
|
1328
1842
|
loyaltyType = _b.loyaltyType,
|
|
1843
|
+
eliteDetails = _b.eliteDetails,
|
|
1329
1844
|
_d = _b.isNovacThemeEnabled,
|
|
1330
1845
|
isNovacThemeEnabled = _d === void 0 ? false : _d,
|
|
1331
1846
|
_e = _b.ravenPayload,
|
|
1332
1847
|
ravenPayload = _e === void 0 ? {} : _e,
|
|
1333
1848
|
ravenPushCallback = _b.ravenPushCallback,
|
|
1334
1849
|
ravenPageName = _b.ravenPageName,
|
|
1335
|
-
ravenEventName = _b.ravenEventName
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1850
|
+
ravenEventName = _b.ravenEventName,
|
|
1851
|
+
_f = _b.hideNavbar,
|
|
1852
|
+
hideNavbar = _f === void 0 ? false : _f;
|
|
1853
|
+
var _g = react.useState(false),
|
|
1854
|
+
scrolled = _g[0],
|
|
1855
|
+
setScrolled = _g[1];
|
|
1339
1856
|
react.useEffect(function () {
|
|
1340
1857
|
var handleScroll = function () {
|
|
1341
1858
|
setScrolled(window.scrollY >= 50);
|
|
@@ -1352,15 +1869,15 @@ var HeaderContent = function () {
|
|
|
1352
1869
|
hoverColor = headerTheme.hoverColor,
|
|
1353
1870
|
fkcompanyColor = headerTheme.fkcompanyColor,
|
|
1354
1871
|
typographyColor = headerTheme.typographyColor;
|
|
1355
|
-
var
|
|
1872
|
+
var _h = useHoverDropdown({
|
|
1356
1873
|
openDelay: 0
|
|
1357
1874
|
}),
|
|
1358
|
-
isDropdownVisible =
|
|
1359
|
-
hoveredElemIndex =
|
|
1360
|
-
handleOnMouseEnter =
|
|
1361
|
-
handleOnMouseLeave =
|
|
1362
|
-
handleDropdownMouseEnter =
|
|
1363
|
-
handleDropdownMouseLeave =
|
|
1875
|
+
isDropdownVisible = _h.isDropdownVisible,
|
|
1876
|
+
hoveredElemIndex = _h.hoveredElemIndex,
|
|
1877
|
+
handleOnMouseEnter = _h.handleOnMouseEnter,
|
|
1878
|
+
handleOnMouseLeave = _h.handleOnMouseLeave,
|
|
1879
|
+
handleDropdownMouseEnter = _h.handleDropdownMouseEnter,
|
|
1880
|
+
handleDropdownMouseLeave = _h.handleDropdownMouseLeave;
|
|
1364
1881
|
var utmSource = (_a = getQueryParam('utm_source')) !== null && _a !== void 0 ? _a : 'organic';
|
|
1365
1882
|
var createPayload = react.useCallback(function (actionName, actionType) {
|
|
1366
1883
|
return {
|
|
@@ -1371,8 +1888,9 @@ var HeaderContent = function () {
|
|
|
1371
1888
|
};
|
|
1372
1889
|
}, [utmSource, loyaltyType]);
|
|
1373
1890
|
var handleNavbarOptionsClick = react.useCallback(function (option) {
|
|
1891
|
+
var _a;
|
|
1374
1892
|
if (option.isClickable && option.link) {
|
|
1375
|
-
var actionName = "".concat(option.text.toLowerCase().replace(/\s/g, ''), "_header_click");
|
|
1893
|
+
var actionName = "".concat((_a = option.text) === null || _a === void 0 ? void 0 : _a.toLowerCase().replace(/\s/g, ''), "_header_click");
|
|
1376
1894
|
var payload = createPayload(actionName, 'click');
|
|
1377
1895
|
ravenSDKTrigger(isUserLoggedIn, ravenEventName, payload, ravenPayload, ravenPushCallback, ravenPageName);
|
|
1378
1896
|
window.location.href = option.link;
|
|
@@ -1384,7 +1902,8 @@ var HeaderContent = function () {
|
|
|
1384
1902
|
window.location.href = '/';
|
|
1385
1903
|
}, [createPayload, isUserLoggedIn, ravenEventName, ravenPayload, ravenPushCallback, ravenPageName]);
|
|
1386
1904
|
var triggerRavenEventOnHover = react.useCallback(function (option) {
|
|
1387
|
-
var
|
|
1905
|
+
var _a;
|
|
1906
|
+
var actionName = "".concat((_a = option.text) === null || _a === void 0 ? void 0 : _a.toLowerCase().replace(/\s/g, ''), "_header_hover");
|
|
1388
1907
|
var payload = createPayload(actionName, 'hover');
|
|
1389
1908
|
ravenSDKTrigger(isUserLoggedIn, ravenEventName, payload, ravenPayload, ravenPushCallback, ravenPageName);
|
|
1390
1909
|
}, [createPayload, isUserLoggedIn, ravenEventName, ravenPayload, ravenPushCallback, ravenPageName]);
|
|
@@ -1438,7 +1957,7 @@ var HeaderContent = function () {
|
|
|
1438
1957
|
}), jsxRuntime.jsx(ctDesignIcons.Fkcompany, {
|
|
1439
1958
|
color: fkcompanyColor
|
|
1440
1959
|
})]
|
|
1441
|
-
})), jsxRuntime.jsxs(ctDesignContainer.Container, tslib.__assign({
|
|
1960
|
+
})), !hideNavbar && jsxRuntime.jsxs(ctDesignContainer.Container, tslib.__assign({
|
|
1442
1961
|
display: 'flex',
|
|
1443
1962
|
flexDirection: 'row',
|
|
1444
1963
|
alignItems: 'center',
|
|
@@ -1458,11 +1977,16 @@ var HeaderContent = function () {
|
|
|
1458
1977
|
RightIcon = option.rightIcon,
|
|
1459
1978
|
isHoverable = option.isHoverable;
|
|
1460
1979
|
var isHovered = hoveredElemIndex === index;
|
|
1980
|
+
var isEliteNavOption = text === ELITE_NAV_TEXT;
|
|
1981
|
+
if (isEliteNavOption && !hasEliteLoyaltyDetails(eliteDetails)) {
|
|
1982
|
+
return null;
|
|
1983
|
+
}
|
|
1984
|
+
var isDropdownOpen = hoveredElemIndex === index && isHoverable && isDropdownVisible;
|
|
1461
1985
|
return jsxRuntime.jsxs(ctDesignContainer.Container, {
|
|
1462
|
-
children: [jsxRuntime.
|
|
1986
|
+
children: [jsxRuntime.jsx(ctDesignContainer.Container, tslib.__assign({
|
|
1463
1987
|
onMouseEnter: function () {
|
|
1464
1988
|
handleOnMouseEnter(index);
|
|
1465
|
-
if (option.isHoverable) {
|
|
1989
|
+
if (option.isHoverable && !isEliteNavOption) {
|
|
1466
1990
|
triggerRavenEventOnHover(option);
|
|
1467
1991
|
}
|
|
1468
1992
|
},
|
|
@@ -1470,7 +1994,7 @@ var HeaderContent = function () {
|
|
|
1470
1994
|
display: 'flex',
|
|
1471
1995
|
flexDirection: 'row',
|
|
1472
1996
|
alignItems: 'center',
|
|
1473
|
-
padding: '8px 12px 8px 12px',
|
|
1997
|
+
padding: isEliteNavOption ? '' : '8px 12px 8px 12px',
|
|
1474
1998
|
cursor: 'pointer',
|
|
1475
1999
|
position: 'relative',
|
|
1476
2000
|
columnGap: 8,
|
|
@@ -1479,37 +2003,45 @@ var HeaderContent = function () {
|
|
|
1479
2003
|
return handleNavbarOptionsClick(option);
|
|
1480
2004
|
}
|
|
1481
2005
|
}, {
|
|
1482
|
-
children:
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
2006
|
+
children: isEliteNavOption ? jsxRuntime.jsx(ctDesignLoyaltyPill.EliteLoyaltyPill, {
|
|
2007
|
+
state: getElitePillState(eliteDetails, isUserLoggedIn),
|
|
2008
|
+
animate: true,
|
|
2009
|
+
onHover: function () {}
|
|
2010
|
+
}) : jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
2011
|
+
children: [LeftIcon && jsxRuntime.jsx(LeftIcon, {
|
|
2012
|
+
color: isHovered ? hoverColor : typographyColor
|
|
2013
|
+
}), jsxRuntime.jsxs(ctDesignContainer.Container, tslib.__assign({
|
|
2014
|
+
display: 'flex',
|
|
2015
|
+
flexDirection: 'row',
|
|
2016
|
+
alignItems: 'center'
|
|
1493
2017
|
}, {
|
|
1494
|
-
children:
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
2018
|
+
children: [jsxRuntime.jsx(ctDesignTypography.Typography, tslib.__assign({
|
|
2019
|
+
variant: 'B2',
|
|
2020
|
+
colorCode: isHovered ? hoverColor : typographyColor,
|
|
2021
|
+
isClickable: true
|
|
2022
|
+
}, {
|
|
2023
|
+
children: text
|
|
2024
|
+
})), RightIcon && jsxRuntime.jsx(RightIcon, {
|
|
2025
|
+
width: 20,
|
|
2026
|
+
height: 20,
|
|
2027
|
+
fill: isHovered ? hoverColor : typographyColor
|
|
2028
|
+
})]
|
|
2029
|
+
}))]
|
|
2030
|
+
})
|
|
2031
|
+
})), jsxRuntime.jsx(HeaderAnimatedMask, tslib.__assign({
|
|
2032
|
+
show: isDropdownOpen,
|
|
1503
2033
|
marginTop: '64px',
|
|
1504
2034
|
handleDropdownMouseEnter: handleDropdownMouseEnter,
|
|
1505
2035
|
handleDropdownMouseLeave: handleDropdownMouseLeave,
|
|
1506
2036
|
onMaskClick: handleDropdownMouseLeave
|
|
1507
2037
|
}, {
|
|
1508
|
-
children: jsxRuntime.jsx(
|
|
1509
|
-
isOpen:
|
|
2038
|
+
children: isEliteNavOption ? jsxRuntime.jsx(EliteDropDownContent, {
|
|
2039
|
+
isOpen: isDropdownOpen
|
|
2040
|
+
}) : jsxRuntime.jsx(BusinessDropdownContent, {
|
|
2041
|
+
isOpen: isDropdownOpen
|
|
1510
2042
|
})
|
|
1511
2043
|
}))]
|
|
1512
|
-
});
|
|
2044
|
+
}, "nav-option-".concat(index));
|
|
1513
2045
|
})
|
|
1514
2046
|
})), isUserLoggedIn && jsxRuntime.jsx(ctDesignDivider.Divider, {
|
|
1515
2047
|
css: {
|
|
@@ -1526,7 +2058,9 @@ var HeaderContent = function () {
|
|
|
1526
2058
|
}, {
|
|
1527
2059
|
children: jsxRuntime.jsx(UserAccount, {})
|
|
1528
2060
|
})) : jsxRuntime.jsx(ctDesignButton.Button, tslib.__assign({
|
|
1529
|
-
onClick:
|
|
2061
|
+
onClick: function () {
|
|
2062
|
+
return onLoginButtonClick();
|
|
2063
|
+
},
|
|
1530
2064
|
css: tslib.__assign({
|
|
1531
2065
|
width: 153,
|
|
1532
2066
|
height: 40
|