@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.
Files changed (35) hide show
  1. package/dist/EliteDropDown/EliteBenefitsContent.d.ts +11 -0
  2. package/dist/EliteDropDown/EliteBenefitsContent.d.ts.map +1 -0
  3. package/dist/EliteDropDown/index.d.ts +7 -0
  4. package/dist/EliteDropDown/index.d.ts.map +1 -0
  5. package/dist/EliteDropDown/style.d.ts +10 -0
  6. package/dist/EliteDropDown/style.d.ts.map +1 -0
  7. package/dist/Header.d.ts.map +1 -1
  8. package/dist/RewardsSection/LoyaltyChips.d.ts.map +1 -1
  9. package/dist/RewardsSection/index.d.ts.map +1 -1
  10. package/dist/UserAccount/AccountEliteStrip/EliteStatusBadge.d.ts +8 -0
  11. package/dist/UserAccount/AccountEliteStrip/EliteStatusBadge.d.ts.map +1 -0
  12. package/dist/UserAccount/AccountEliteStrip/index.d.ts +8 -0
  13. package/dist/UserAccount/AccountEliteStrip/index.d.ts.map +1 -0
  14. package/dist/UserAccount/UserAccountDropdown.d.ts.map +1 -1
  15. package/dist/constants.d.ts +29 -3
  16. package/dist/constants.d.ts.map +1 -1
  17. package/dist/ct-design-header.browser.cjs.js +1 -1
  18. package/dist/ct-design-header.browser.cjs.js.map +1 -1
  19. package/dist/ct-design-header.browser.esm.js +1 -1
  20. package/dist/ct-design-header.browser.esm.js.map +1 -1
  21. package/dist/ct-design-header.cjs.js +620 -86
  22. package/dist/ct-design-header.cjs.js.map +1 -1
  23. package/dist/ct-design-header.esm.js +622 -88
  24. package/dist/ct-design-header.esm.js.map +1 -1
  25. package/dist/ct-design-header.umd.js +620 -90
  26. package/dist/ct-design-header.umd.js.map +1 -1
  27. package/dist/hooks/useEliteRaven.d.ts +25 -0
  28. package/dist/hooks/useEliteRaven.d.ts.map +1 -0
  29. package/dist/styles.d.ts +15 -0
  30. package/dist/styles.d.ts.map +1 -1
  31. package/dist/type.d.ts +12 -2
  32. package/dist/type.d.ts.map +1 -1
  33. package/dist/utils.d.ts +33 -1
  34. package/dist/utils.d.ts.map +1 -1
  35. 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
- } else {
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
- }, [handleChipClick, loyaltyType, isUserLoggedIn, ravenEventName, ravenPayload, ravenPushCallback, ravenPageName]);
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
- var _b = useHeaderContext(),
970
- selectedLoyaltyType = _b.loyaltyType,
971
- _c = _b.fkSupercoinBurnBalance,
972
- superCoinBalance = _c === void 0 ? 0 : _c,
973
- _d = _b.walletBalance,
974
- walletBalance = _d === void 0 ? 0 : _d,
975
- loyaltyLoading = _b.loyaltyLoading,
976
- superCoinsLoading = _b.superCoinsLoading,
977
- walletLoading = _b.walletLoading,
978
- walletChipClick = _b.walletChipClick,
979
- supercoinsChipClick = _b.supercoinsChipClick,
980
- loyaltyChipClick = _b.loyaltyChipClick,
981
- hideWalletChip = _b.hideWalletChip,
982
- hideSupercoinsChip = _b.hideSupercoinsChip,
983
- hideLoyaltyChip = _b.hideLoyaltyChip;
984
- var shouldShowLoyalty = loyaltyLoading || selectedLoyaltyType && LOYALTY_DATA[selectedLoyaltyType] && !hideLoyaltyChip;
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
- }) : selectedLoyaltyType && LOYALTY_DATA[selectedLoyaltyType] && !hideLoyaltyChip && jsxRuntime.jsx(LoyaltyChip, {
1005
- icon: LOYALTY_DATA[selectedLoyaltyType].icon,
1006
- borderGradient: LOYALTY_DATA[selectedLoyaltyType].borderGradient,
1007
- backgroundGradient: LOYALTY_DATA[selectedLoyaltyType].backgroundGradient,
1008
- chevronFillColor: ((_a = LOYALTY_DATA[selectedLoyaltyType]) === null || _a === void 0 ? void 0 : _a.chevronFillColor) || '#FFF',
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
- _c = _b.ravenPayload,
1053
- ravenPayload = _c === void 0 ? {} : _c,
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 _d = react.useMemo(function () {
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 = _d.userGreeting,
1063
- phoneNumber = _d.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.jsx(ctDesignContainer.Container, tslib.__assign({
1137
- padding: '16px',
1138
- height: '76px'
1644
+ children: [jsxRuntime.jsxs(ctDesignContainer.Container, tslib.__assign({
1645
+ css: getAccountUnlockedBgStyles(isEliteAccountActive(eliteMetadata), EliteAccountStripBg)
1139
1646
  }, {
1140
- children: renderUserData()
1141
- })), jsxRuntime.jsx(RewardsSection, {}), jsxRuntime.jsxs(ctDesignContainer.Container, tslib.__assign({
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
- var _f = react.useState(false),
1337
- scrolled = _f[0],
1338
- setScrolled = _f[1];
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 _g = useHoverDropdown({
1872
+ var _h = useHoverDropdown({
1356
1873
  openDelay: 0
1357
1874
  }),
1358
- isDropdownVisible = _g.isDropdownVisible,
1359
- hoveredElemIndex = _g.hoveredElemIndex,
1360
- handleOnMouseEnter = _g.handleOnMouseEnter,
1361
- handleOnMouseLeave = _g.handleOnMouseLeave,
1362
- handleDropdownMouseEnter = _g.handleDropdownMouseEnter,
1363
- handleDropdownMouseLeave = _g.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 actionName = "".concat(option.text.toLowerCase().replace(/\s/g, ''), "_header_hover");
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.jsxs(ctDesignContainer.Container, tslib.__assign({
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: [jsxRuntime.jsx(LeftIcon, {
1483
- color: isHovered ? hoverColor : typographyColor
1484
- }), jsxRuntime.jsxs(ctDesignContainer.Container, tslib.__assign({
1485
- display: 'flex',
1486
- flexDirection: 'row',
1487
- alignItems: 'center'
1488
- }, {
1489
- children: [jsxRuntime.jsx(ctDesignTypography.Typography, tslib.__assign({
1490
- variant: 'B2',
1491
- colorCode: isHovered ? hoverColor : typographyColor,
1492
- isClickable: true
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: text
1495
- })), RightIcon && jsxRuntime.jsx(RightIcon, {
1496
- width: 20,
1497
- height: 20,
1498
- fill: isHovered ? hoverColor : typographyColor
1499
- })]
1500
- }))]
1501
- }), "nav-option-".concat(index)), jsxRuntime.jsx(HeaderAnimatedMask, tslib.__assign({
1502
- show: hoveredElemIndex === index && isHoverable && isDropdownVisible,
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(BusinessDropdownContent, {
1509
- isOpen: hoveredElemIndex === index && isHoverable && isDropdownVisible
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: onLoginButtonClick,
2061
+ onClick: function () {
2062
+ return onLoginButtonClick();
2063
+ },
1530
2064
  css: tslib.__assign({
1531
2065
  width: 153,
1532
2066
  height: 40