@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.
Files changed (40) 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/HeaderAnimatedMask /index.d.ts +1 -1
  9. package/dist/HeaderAnimatedMask /index.d.ts.map +1 -1
  10. package/dist/RewardsSection/LoyaltyChips.d.ts +1 -1
  11. package/dist/RewardsSection/LoyaltyChips.d.ts.map +1 -1
  12. package/dist/RewardsSection/index.d.ts.map +1 -1
  13. package/dist/RewardsSection/loyaltyTypes.d.ts +6 -5
  14. package/dist/RewardsSection/loyaltyTypes.d.ts.map +1 -1
  15. package/dist/UserAccount/AccountEliteStrip/EliteStatusBadge.d.ts +8 -0
  16. package/dist/UserAccount/AccountEliteStrip/EliteStatusBadge.d.ts.map +1 -0
  17. package/dist/UserAccount/AccountEliteStrip/index.d.ts +8 -0
  18. package/dist/UserAccount/AccountEliteStrip/index.d.ts.map +1 -0
  19. package/dist/UserAccount/UserAccountDropdown.d.ts.map +1 -1
  20. package/dist/constants.d.ts +29 -3
  21. package/dist/constants.d.ts.map +1 -1
  22. package/dist/ct-design-header.browser.cjs.js +1 -1
  23. package/dist/ct-design-header.browser.cjs.js.map +1 -1
  24. package/dist/ct-design-header.browser.esm.js +1 -1
  25. package/dist/ct-design-header.browser.esm.js.map +1 -1
  26. package/dist/ct-design-header.cjs.js +622 -88
  27. package/dist/ct-design-header.cjs.js.map +1 -1
  28. package/dist/ct-design-header.esm.js +624 -90
  29. package/dist/ct-design-header.esm.js.map +1 -1
  30. package/dist/ct-design-header.umd.js +622 -92
  31. package/dist/ct-design-header.umd.js.map +1 -1
  32. package/dist/hooks/useEliteRaven.d.ts +25 -0
  33. package/dist/hooks/useEliteRaven.d.ts.map +1 -0
  34. package/dist/styles.d.ts +15 -0
  35. package/dist/styles.d.ts.map +1 -1
  36. package/dist/type.d.ts +12 -2
  37. package/dist/type.d.ts.map +1 -1
  38. package/dist/utils.d.ts +33 -1
  39. package/dist/utils.d.ts.map +1 -1
  40. 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
- } else {
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
- }, [handleChipClick, loyaltyType, isUserLoggedIn, ravenEventName, ravenPayload, ravenPushCallback, ravenPageName]);
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
- var _b = useHeaderContext(),
1014
- selectedLoyaltyType = _b.loyaltyType,
1015
- _c = _b.fkSupercoinBurnBalance,
1016
- superCoinBalance = _c === void 0 ? 0 : _c,
1017
- _d = _b.walletBalance,
1018
- walletBalance = _d === void 0 ? 0 : _d,
1019
- loyaltyLoading = _b.loyaltyLoading,
1020
- superCoinsLoading = _b.superCoinsLoading,
1021
- walletLoading = _b.walletLoading,
1022
- walletChipClick = _b.walletChipClick,
1023
- supercoinsChipClick = _b.supercoinsChipClick,
1024
- loyaltyChipClick = _b.loyaltyChipClick,
1025
- hideWalletChip = _b.hideWalletChip,
1026
- hideSupercoinsChip = _b.hideSupercoinsChip,
1027
- hideLoyaltyChip = _b.hideLoyaltyChip;
1028
- var shouldShowLoyalty = loyaltyLoading || selectedLoyaltyType && LOYALTY_DATA[selectedLoyaltyType] && !hideLoyaltyChip;
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
- }) : selectedLoyaltyType && LOYALTY_DATA[selectedLoyaltyType] && !hideLoyaltyChip && jsxRuntime.jsx(LoyaltyChip, {
1049
- icon: LOYALTY_DATA[selectedLoyaltyType].icon,
1050
- borderGradient: LOYALTY_DATA[selectedLoyaltyType].borderGradient,
1051
- backgroundGradient: LOYALTY_DATA[selectedLoyaltyType].backgroundGradient,
1052
- chevronFillColor: ((_a = LOYALTY_DATA[selectedLoyaltyType]) === null || _a === void 0 ? void 0 : _a.chevronFillColor) || '#FFF',
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
- _c = _b.ravenPayload,
1097
- ravenPayload = _c === void 0 ? {} : _c,
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 _d = react.useMemo(function () {
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 = _d.userGreeting,
1107
- phoneNumber = _d.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.jsx(ctDesignContainer.Container, __assign({
1181
- padding: '16px',
1182
- height: '76px'
1684
+ children: [jsxRuntime.jsxs(ctDesignContainer.Container, __assign({
1685
+ css: getAccountUnlockedBgStyles(isEliteAccountActive(eliteMetadata), EliteAccountStripBg)
1183
1686
  }, {
1184
- children: renderUserData()
1185
- })), jsxRuntime.jsx(RewardsSection, {}), jsxRuntime.jsxs(ctDesignContainer.Container, __assign({
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
- var _f = react.useState(false),
1381
- scrolled = _f[0],
1382
- setScrolled = _f[1];
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 _g = useHoverDropdown({
1912
+ var _h = useHoverDropdown({
1400
1913
  openDelay: 0
1401
1914
  }),
1402
- isDropdownVisible = _g.isDropdownVisible,
1403
- hoveredElemIndex = _g.hoveredElemIndex,
1404
- handleOnMouseEnter = _g.handleOnMouseEnter,
1405
- handleOnMouseLeave = _g.handleOnMouseLeave,
1406
- handleDropdownMouseEnter = _g.handleDropdownMouseEnter,
1407
- handleDropdownMouseLeave = _g.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 actionName = "".concat(option.text.toLowerCase().replace(/\s/g, ''), "_header_hover");
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.jsxs(ctDesignContainer.Container, __assign({
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: [jsxRuntime.jsx(LeftIcon, {
1527
- color: isHovered ? hoverColor : typographyColor
1528
- }), jsxRuntime.jsxs(ctDesignContainer.Container, __assign({
1529
- display: 'flex',
1530
- flexDirection: 'row',
1531
- alignItems: 'center'
1532
- }, {
1533
- children: [jsxRuntime.jsx(ctDesignTypography.Typography, __assign({
1534
- variant: 'B2',
1535
- colorCode: isHovered ? hoverColor : typographyColor,
1536
- isClickable: true
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: text
1539
- })), RightIcon && jsxRuntime.jsx(RightIcon, {
1540
- width: 20,
1541
- height: 20,
1542
- fill: isHovered ? hoverColor : typographyColor
1543
- })]
1544
- }))]
1545
- }), "nav-option-".concat(index)), jsxRuntime.jsx(HeaderAnimatedMask, __assign({
1546
- show: hoveredElemIndex === index && isHoverable && isDropdownVisible,
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(BusinessDropdownContent, {
1553
- isOpen: hoveredElemIndex === index && isHoverable && isDropdownVisible
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: onLoginButtonClick,
2101
+ onClick: function () {
2102
+ return onLoginButtonClick();
2103
+ },
1574
2104
  css: __assign({
1575
2105
  width: 153,
1576
2106
  height: 40