@itilite/iui-user-management 1.4.93 → 1.4.96

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.
@@ -1,4 +1,4 @@
1
- import { IUIAsyncSelect, IUIBox, IUILabel, IUIFileUpload, IUICheckboxButton, IUIPhone, IUISelect, IUIDatePicker, IUIInput, IUIGrid, IUIDivider, IUITypography, IUIRadio, IUIButton, IUIModal, IUISearch, IUICircularProgress, IUIAccordion, IUIAccordionSummary, IUIAccordionDetails, IUICard, IUIBackdrop, IUIBreadCrumb, IUIDropzone, IUIStepper, IUIIconButton, IUIFormControlLabel, IUICheckBox, IUIPrimaryRadio, IUITable, IUISkeleton, IUIProfileBox, IUIFormGroup, IUIDropdownButton, IUITabs } from '@itilite/iuistyles';
1
+ import { IUIAsyncSelect, IUIBox, IUILabel, IUIFileUpload, IUICheckboxButton, IUIPhone, IUISelect, IUIDatePicker, IUIInput, IUIGrid, IUIDivider, IUITypography, IUIRadio, IUIButton, IUIModal, IUISearch, IUICircularProgress, IUIAccordion, IUIAccordionSummary, IUIAccordionDetails, IUICard, IUIBackdrop, IUIBreadCrumb, IUIDropdownButton, IUIDropzone, IUIStepper, IUIIconButton, IUIFormControlLabel, IUICheckBox, IUIPrimaryRadio, IUITable, IUISkeleton, IUIProfileBox, IUIFormGroup, IUITabs } from '@itilite/iuistyles';
2
2
  import React, { useState, Fragment as Fragment$1, useEffect, memo, useRef } from 'react';
3
3
  import { configs, services, utilUrls } from '@itilite/utils';
4
4
  import axios from 'axios';
@@ -182,7 +182,7 @@ function _finallyRethrows(body, finalizer) {
182
182
  return finalizer(false, result);
183
183
  }
184
184
 
185
- var styles = {"UUIUserManagementAddEdit":"_3n-WG","pageHeader":"_3qWcA","buttonWrapper":"_1IP9P","scrolled":"_m8f96","headingButtonWrapper":"_w9z7b","headingButtonWrapperProfile":"_12Wd9","hintText":"_ySdbZ","heading":"_2Y1Aw","headingLarge":"_2K1NF","headingMedium":"_RUuAz","headingSmall":"_23Dye","additionalInfoContainer":"_1Suhw","additionalInfoTitle":"_56iJF","titleContainer":"_H5nfl","expandIconAlign":"_3F4i0","detailsContainer":"_2G0LW","formWrapper":"_2fPRc","sectionWrapper":"_37Gqp","margin":"_2Sdl7","minGridWidth":"_2D7iu","firstRowMargin":"_1BozG","firstChildMargin":"_2C3Mb","paddingTop":"_DBPjV","backGrdColorOnHover":"_5oE6H","fieldMargin":"_RCWjq","productContainerGap":"_tuCbi","containerWidth":"_1oWos","productItemBroder":"_T0Hcd","headingPadding":"_2MFfQ","emptyFieldContainer":"_3VWtw","emptyFieldDescription":"_2jC5u","rowGap":"_1NJFY","formTitle":"_GAKk2","formDescription":"_3TZ6Z","themeLink":"_eJ_1B","dashedLine":"_3ZOs1","dividerColor":"_2pxEJ","errorTextCls":"_27eth","backdrop":"_Pm0Au","inputWidth":"_ajB82"};
185
+ var styles = {"UUIUserManagementAddEdit":"_3n-WG","pageHeader":"_3qWcA","buttonWrapper":"_1IP9P","scrolled":"_m8f96","headingButtonWrapper":"_w9z7b","headingButtonWrapperProfile":"_12Wd9","hintText":"_ySdbZ","heading":"_2Y1Aw","headingLarge":"_2K1NF","headingMedium":"_RUuAz","headingSmall":"_23Dye","additionalInfoContainer":"_1Suhw","additionalInfoTitle":"_56iJF","titleContainer":"_H5nfl","expandIconAlign":"_3F4i0","detailsContainer":"_2G0LW","formWrapper":"_2fPRc","sectionWrapper":"_37Gqp","margin":"_2Sdl7","minGridWidth":"_2D7iu","firstRowMargin":"_1BozG","firstChildMargin":"_2C3Mb","paddingTop":"_DBPjV","backGrdColorOnHover":"_5oE6H","fieldMargin":"_RCWjq","productContainerGap":"_tuCbi","containerWidth":"_1oWos","productItemBroder":"_T0Hcd","headingPadding":"_2MFfQ","emptyFieldContainer":"_3VWtw","emptyFieldDescription":"_2jC5u","rowGap":"_1NJFY","formTitle":"_GAKk2","formDescription":"_3TZ6Z","themeLink":"_eJ_1B","dashedLine":"_3ZOs1","dividerColor":"_2pxEJ","errorTextCls":"_27eth","backdrop":"_Pm0Au","inputWidth":"_ajB82","buttonRight":"_1lEyQ","containedDropdownBtn":"_3ymE1"};
186
186
 
187
187
  function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);else for(t in e)e[t]&&(n&&(n+=" "),n+=t);return n}function clsx(){for(var e,t,f=0,n="";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}
188
188
 
@@ -411,7 +411,7 @@ var userAddEditUrl = {
411
411
  return env.getPaymentUrl() + "/api/v1/card/default";
412
412
  },
413
413
  disablePaymentCard: function disablePaymentCard() {
414
- return env.getPaymentUrl() + "/api/v1/payment/card-management/card/status";
414
+ return env.getPaymentUrl() + "/api/v1/card/status";
415
415
  },
416
416
  verifyUserInfo: function verifyUserInfo(userId) {
417
417
  return "api/v1/onboarding/user-sign-up-info/" + userId + "?company_id=" + IUILocalStorageService.getCompanyId();
@@ -829,7 +829,7 @@ var UserRole = function UserRole(_ref) {
829
829
 
830
830
  var styles$1 = {"defaultLabel":"_smjc4","card":"_3_S9J","cardNumber":"_36E9M","cardDigit":"_2pm-T","expiryDate":"_2tBnF","cardImage":"_3QvZh","visa":"_1IpBm","mastercard":"_2x6IX","amex":"_2a38S","discover":"_2vksl","diners":"_2kQRs","jcb":"_2bO1f","unionpay":"_2_jfu","is_nothing":"_1Lrzs","addCard":"_3711U","cardDeleteBtn":"_7Da2t","cardLabel":"_PQTex","defaultBtn":"_1_ArA","cursonPointer":"_1L115","sectionWrapper":"_VpUCK","margin":"_1Fs_D","minGridWidth":"_1hl-Z","firstRowMargin":"_1WZZj","firstChildMargin":"_IT_O_","paddingTop":"_Mhnl7","dividerColor":"_3ltFd"};
831
831
 
832
- var classes = {"disabledCard":"_3MVKj","sectionHeader":"_2d_OH","myCardsSection":"_3MNHj","companyCardsSection":"_34lN6","disabledNotice":"_1yV0j","cardsGrid":"_1oHGu","card":"_3ZTQc","moreIcon":"_3utA0","personal":"_duePd","corporate":"_3O33a","company":"_180_L","cardHeader":"_1eF61","cardTitleSection":"_2c40W","cardMaskedNumber":"_2Vlhq","cardName":"_bp-Mt","cardType":"_3l4HZ","menuButton":"_3TTEn","lockIcon":"_1S27X","cardDetails":"_IP2rg","cardNumber":"_7FOPe","cardExpiry":"_CI_p2","cardCvv":"_3Gzqu","cardUnhide":"_ivgBf","cardFooter":"_1WgPL","brandLogo":"_EV0l8","addCardButton":"_1oaCc","plusIcon":"_w9L5L"};
832
+ var classes = {"disabledCard":"_3MVKj","expiredLabel":"_2_sgJ","expiresoonLabel":"_3G7La","sectionHeader":"_2d_OH","myCardsSection":"_3MNHj","companyCardsSection":"_34lN6","disabledNotice":"_1yV0j","cardsGrid":"_1oHGu","card":"_3ZTQc","moreIcon":"_3utA0","personal":"_duePd","corporate":"_3O33a","company":"_180_L","cardHeader":"_1eF61","cardTitleSection":"_2c40W","cardMaskedNumber":"_2Vlhq","cardName":"_bp-Mt","cardAlias":"_19m4v","cardType":"_3l4HZ","menuButton":"_3TTEn","lockIcon":"_1S27X","cardDetails":"_IP2rg","cardNumber":"_7FOPe","cardExpiry":"_CI_p2","cardCvv":"_3Gzqu","cardUnhide":"_ivgBf","cardFooter":"_1WgPL","brandLogo":"_EV0l8","addCardButton":"_1oaCc","plusIcon":"_w9L5L"};
833
833
 
834
834
  var SHOW_LOADER = 'SHOW_LOADER';
835
835
  var STOP_LOADER = 'STOP_LOADER';
@@ -846,6 +846,27 @@ var SET_PAYMENT_DETAILS = 'SET_PAYMENT_DETAILS';
846
846
 
847
847
  var env$1 = configs.env;
848
848
  var IUILocalStorageService$1 = services.IUILocalStorageService;
849
+ var resolveMembershipName = function resolveMembershipName(membership) {
850
+ var _membership;
851
+ if (membership === void 0) {
852
+ membership = {};
853
+ }
854
+ if (((_membership = membership) === null || _membership === void 0 ? void 0 : _membership.membership_type) === 'rental_car') {
855
+ var _membership2, _membership3, _membership3$program_, _membership5, _membership6, _membership6$loyalty_;
856
+ if ((_membership2 = membership) !== null && _membership2 !== void 0 && _membership2.program_name && (_membership3 = membership) !== null && _membership3 !== void 0 && (_membership3$program_ = _membership3.program_name) !== null && _membership3$program_ !== void 0 && _membership3$program_.trim()) {
857
+ var _membership4, _membership4$program_;
858
+ return (_membership4 = membership) === null || _membership4 === void 0 ? void 0 : (_membership4$program_ = _membership4.program_name) === null || _membership4$program_ === void 0 ? void 0 : _membership4$program_.trim();
859
+ }
860
+ if ((_membership5 = membership) !== null && _membership5 !== void 0 && _membership5.loyalty_program_name && (_membership6 = membership) !== null && _membership6 !== void 0 && (_membership6$loyalty_ = _membership6.loyalty_program_name) !== null && _membership6$loyalty_ !== void 0 && _membership6$loyalty_.trim()) {
861
+ var _membership7, _membership7$loyalty_;
862
+ return (_membership7 = membership) === null || _membership7 === void 0 ? void 0 : (_membership7$loyalty_ = _membership7.loyalty_program_name) === null || _membership7$loyalty_ === void 0 ? void 0 : _membership7$loyalty_.trim();
863
+ } else {
864
+ return '';
865
+ }
866
+ } else {
867
+ return membership.name;
868
+ }
869
+ };
849
870
  var formatCreateUserPayload = function formatCreateUserPayload(payload) {
850
871
  var _payload$employeeInfo, _payload$employeeInfo2, _payload$employeeInfo3, _payload$employeeInfo4, _payload$employeeInfo5, _payload$employeeInfo6, _payload$employeeInfo7, _payload$employeeInfo8, _payload$employeeInfo9, _payload$employeeInfo10;
851
872
  var res = {
@@ -889,6 +910,9 @@ var formatCreateUserPayload = function formatCreateUserPayload(payload) {
889
910
  approvers: {},
890
911
  requested_user_is_admin: payload.isCardsAdmin
891
912
  };
913
+ if (payload.send_welcome_email !== undefined) {
914
+ res.should_send_welcome_email = payload.send_welcome_email;
915
+ }
892
916
  var userTags = [];
893
917
  for (var key in payload.userTagType) {
894
918
  if (Object.hasOwnProperty.call(payload.userTagType, key) && payload.userTagType[key]) {
@@ -937,7 +961,7 @@ var formatCreateUserPayload = function formatCreateUserPayload(payload) {
937
961
  loyalty_program_id = _ref$loyalty_program_ === void 0 ? null : _ref$loyalty_program_;
938
962
  var res = {
939
963
  membership_type: membership.membership_type,
940
- name: membership.name,
964
+ name: resolveMembershipName(membership),
941
965
  number: membership.number,
942
966
  iata_code: iata_code,
943
967
  loyalty_program_id: loyalty_program_id
@@ -1125,7 +1149,7 @@ var formatUpdateUserPayload = function formatUpdateUserPayload(payload, inputCha
1125
1149
  loyalty_program_id = _ref2$loyalty_program === void 0 ? null : _ref2$loyalty_program;
1126
1150
  var res = {
1127
1151
  membership_type: membership.membership_type,
1128
- name: membership.name,
1152
+ name: resolveMembershipName(membership),
1129
1153
  number: membership.number,
1130
1154
  id: membership.id,
1131
1155
  iata_code: iata_code,
@@ -1813,40 +1837,6 @@ var deletePaymentCard = function deletePaymentCard(payload) {
1813
1837
  });
1814
1838
  };
1815
1839
  };
1816
- var disablePaymentCard = function disablePaymentCard(payload) {
1817
- return function (dispatch, getState) {
1818
- return new Promise(function (resolve, reject) {
1819
- dispatch(showLoader());
1820
- axios.patch(userAddEditUrl.disablePaymentCard(), payload, {
1821
- headers: {
1822
- Authorization: 'Bearer ' + IUILocalStorageService$2.getAccessToken()
1823
- }
1824
- }).then(function (res) {
1825
- if (res.data) {
1826
- resolve(res.data);
1827
- var _paymentDetails = getState().userAddEdit.paymentDetails;
1828
- _paymentDetails.cards = _paymentDetails.cards.map(function (card) {
1829
- if (card.id === payload.method_id) {
1830
- card.metadata.is_enabled = payload.is_enabled ? '1' : '0';
1831
- }
1832
- return card;
1833
- });
1834
- dispatch(setPaymentDetails(_paymentDetails));
1835
- } else {
1836
- var _res$data3;
1837
- IUIToastMessageService$1.warningNotify((res === null || res === void 0 ? void 0 : (_res$data3 = res.data) === null || _res$data3 === void 0 ? void 0 : _res$data3.message) || 'Opps, Something went wrong.');
1838
- reject(res);
1839
- }
1840
- })["catch"](function (err) {
1841
- var _err$response15, _err$response15$data;
1842
- IUIToastMessageService$1.warningNotify((err === null || err === void 0 ? void 0 : (_err$response15 = err.response) === null || _err$response15 === void 0 ? void 0 : (_err$response15$data = _err$response15.data) === null || _err$response15$data === void 0 ? void 0 : _err$response15$data.message) || 'Opps, Something went wrong.');
1843
- reject(err);
1844
- })["finally"](function () {
1845
- dispatch(stopLoader());
1846
- });
1847
- });
1848
- };
1849
- };
1850
1840
  var setDefaultPaymentCard = function setDefaultPaymentCard(payload) {
1851
1841
  return function (dispatch, getState) {
1852
1842
  return new Promise(function (resolve, reject) {
@@ -2671,7 +2661,7 @@ var Visa = function Visa(props) {
2671
2661
  var IUILocalStorageService$4 = services.IUILocalStorageService;
2672
2662
  var env$3 = configs.env;
2673
2663
  var CardsManagement = function CardsManagement(_ref) {
2674
- var _pg$gateway, _selectedCard$metadat2;
2664
+ var _selectedCard$metadat, _pg$gateway;
2675
2665
  var _ref$paymentDetails = _ref.paymentDetails,
2676
2666
  paymentDetails = _ref$paymentDetails === void 0 ? {} : _ref$paymentDetails,
2677
2667
  _ref$paymentMethod = _ref.paymentMethod,
@@ -2717,32 +2707,13 @@ var CardsManagement = function CardsManagement(_ref) {
2717
2707
  }));
2718
2708
  handleMenuClose();
2719
2709
  };
2720
- var handleDisableCard = function handleDisableCard() {
2721
- var _selectedCard$card2, _selectedCard$metadat;
2722
- if (!pg || !selectedCard) return;
2723
- sendLog({
2724
- eventName: 'disable_card_clicked',
2725
- customProperties: {
2726
- card_last4: (selectedCard === null || selectedCard === void 0 ? void 0 : (_selectedCard$card2 = selectedCard.card) === null || _selectedCard$card2 === void 0 ? void 0 : _selectedCard$card2.last4) || ''
2727
- },
2728
- logImpression: true
2729
- });
2730
- dispatch(disablePaymentCard({
2731
- stripe_card_ref: selectedCard.id,
2732
- vendor_id: pg.vendor_id,
2733
- is_enabled: (selectedCard === null || selectedCard === void 0 ? void 0 : (_selectedCard$metadat = selectedCard.metadata) === null || _selectedCard$metadat === void 0 ? void 0 : _selectedCard$metadat.is_enabled) === '0',
2734
- card_payment_type: 1,
2735
- app_type: 1
2736
- }));
2737
- handleMenuClose();
2738
- };
2739
2710
  var handleDeleteCard = function handleDeleteCard() {
2740
- var _selectedCard$card3;
2711
+ var _selectedCard$card2;
2741
2712
  sendLog({
2742
2713
  eventName: 'edit_card_clicked',
2743
2714
  customProperties: {
2744
2715
  action_type: 'Delete',
2745
- card_last4: (selectedCard === null || selectedCard === void 0 ? void 0 : (_selectedCard$card3 = selectedCard.card) === null || _selectedCard$card3 === void 0 ? void 0 : _selectedCard$card3.last4) || ''
2716
+ card_last4: (selectedCard === null || selectedCard === void 0 ? void 0 : (_selectedCard$card2 = selectedCard.card) === null || _selectedCard$card2 === void 0 ? void 0 : _selectedCard$card2.last4) || ''
2746
2717
  },
2747
2718
  logImpression: true
2748
2719
  });
@@ -2828,13 +2799,29 @@ var CardsManagement = function CardsManagement(_ref) {
2828
2799
  fill: "#2EA363"
2829
2800
  }));
2830
2801
  };
2802
+ var personalCards = cards === null || cards === void 0 ? void 0 : cards.filter(function (card) {
2803
+ return (card === null || card === void 0 ? void 0 : card.category) === 'Personal';
2804
+ });
2805
+ var corporateCards = cards === null || cards === void 0 ? void 0 : cards.filter(function (card) {
2806
+ return (card === null || card === void 0 ? void 0 : card.category) === 'Corporate';
2807
+ });
2808
+ var companyCards = cards === null || cards === void 0 ? void 0 : cards.filter(function (card) {
2809
+ return (card === null || card === void 0 ? void 0 : card.category) === 'Company';
2810
+ });
2811
+ var cardsCount = (personalCards === null || personalCards === void 0 ? void 0 : personalCards.length) + (corporateCards === null || corporateCards === void 0 ? void 0 : corporateCards.length);
2831
2812
  var renderCard = function renderCard(card) {
2832
- var _card$metadata, _card$metadata2, _clsx, _card$card, _card$card2, _card$card3, _card$card4;
2833
- console.log('_paymentDetails2', card, cards);
2813
+ var _card$metadata, _clsx, _card$card, _card$card2, _card$card3, _card$card4;
2834
2814
  var isCompanyCard = (card === null || card === void 0 ? void 0 : card.category) === 'Company';
2835
2815
  var cardClass = getCardTypeClass(card === null || card === void 0 ? void 0 : card.category);
2836
2816
  var isDefaultCard = !!+(card === null || card === void 0 ? void 0 : (_card$metadata = card.metadata) === null || _card$metadata === void 0 ? void 0 : _card$metadata.default_card);
2837
- var isDisabled = (card === null || card === void 0 ? void 0 : (_card$metadata2 = card.metadata) === null || _card$metadata2 === void 0 ? void 0 : _card$metadata2.is_enabled) === '0';
2817
+ var isExpired = card.metadata.is_enabled === '2';
2818
+ var isDisabled = card.metadata.is_enabled === '0' || isExpired;
2819
+ var currentDate = new Date();
2820
+ var cardExpDate = new Date(parseInt(card.card.exp_year, 10), parseInt(card.card.exp_month, 10) - 1);
2821
+ var timeDiff = cardExpDate.getTime() - currentDate.getTime();
2822
+ var daysToExpire = Math.ceil(timeDiff / (1000 * 3600 * 24));
2823
+ var expiresSoon = daysToExpire <= 30 && !isExpired;
2824
+ var showMenuButton = !isExpired && (cardsCount === 1 || cardsCount > 1 && !isDefaultCard);
2838
2825
  return /*#__PURE__*/React.createElement("div", {
2839
2826
  key: card.id,
2840
2827
  className: clsx(classes.card, classes[cardClass], (_clsx = {}, _clsx[classes.disabledCard] = isDisabled, _clsx))
@@ -2844,11 +2831,17 @@ var CardsManagement = function CardsManagement(_ref) {
2844
2831
  className: classes.cardTitleSection
2845
2832
  }, /*#__PURE__*/React.createElement("h3", {
2846
2833
  className: classes.cardName
2847
- }, card === null || card === void 0 ? void 0 : card.alias), /*#__PURE__*/React.createElement("span", {
2834
+ }, /*#__PURE__*/React.createElement("span", {
2835
+ className: classes.cardAlias
2836
+ }, card === null || card === void 0 ? void 0 : card.alias), isExpired && /*#__PURE__*/React.createElement("span", {
2837
+ className: classes.expiredLabel
2838
+ }, "Expired"), expiresSoon && /*#__PURE__*/React.createElement("span", {
2839
+ className: clsx(classes.expiresoonLabel, classes.expiredLabel)
2840
+ }, "Expires Soon")), /*#__PURE__*/React.createElement("span", {
2848
2841
  className: classes.cardType
2849
2842
  }, getCardTypeLabel(card.category), isDefaultCard && /*#__PURE__*/React.createElement("span", null, ' (Default)'))), isCompanyCard ? /*#__PURE__*/React.createElement(LockIcon, {
2850
2843
  className: classes.lockIcon
2851
- }) : /*#__PURE__*/React.createElement(IconButton, {
2844
+ }) : showMenuButton ? /*#__PURE__*/React.createElement(IconButton, {
2852
2845
  size: "small",
2853
2846
  onClick: function onClick(e) {
2854
2847
  return handleMenuClick(e, card);
@@ -2857,7 +2850,7 @@ var CardsManagement = function CardsManagement(_ref) {
2857
2850
  }, /*#__PURE__*/React.createElement(MoreIcon, {
2858
2851
  className: clsx(classes.moreIcon, classes[cardClass]),
2859
2852
  color: isCompanyCard ? '#2EA363' : '#3D89FF'
2860
- }))), /*#__PURE__*/React.createElement("div", {
2853
+ })) : null), /*#__PURE__*/React.createElement("div", {
2861
2854
  className: classes.cardDetails
2862
2855
  }, /*#__PURE__*/React.createElement("div", {
2863
2856
  className: classes.cardNumber
@@ -2871,17 +2864,8 @@ var CardsManagement = function CardsManagement(_ref) {
2871
2864
  className: classes.cardFooter
2872
2865
  }, /*#__PURE__*/React.createElement("div", null), getBrandLogo(card === null || card === void 0 ? void 0 : (_card$card4 = card.card) === null || _card$card4 === void 0 ? void 0 : _card$card4.brand)));
2873
2866
  };
2874
- var personalCards = cards === null || cards === void 0 ? void 0 : cards.filter(function (card) {
2875
- return (card === null || card === void 0 ? void 0 : card.category) === 'Personal';
2876
- });
2877
- var corporateCards = cards === null || cards === void 0 ? void 0 : cards.filter(function (card) {
2878
- return (card === null || card === void 0 ? void 0 : card.category) === 'Corporate';
2879
- });
2880
- var companyCards = cards === null || cards === void 0 ? void 0 : cards.filter(function (card) {
2881
- return (card === null || card === void 0 ? void 0 : card.category) === 'Company';
2882
- });
2883
- var cardsCount = (personalCards === null || personalCards === void 0 ? void 0 : personalCards.length) + (corporateCards === null || corporateCards === void 0 ? void 0 : corporateCards.length);
2884
2867
  var _url = env$3.getPaymentUrl() + ("/api/v1/auth/" + IUILocalStorageService$4.getAccessToken() + "/1/" + pg.entity_id + "/0/" + pg.vendor_id + "/1");
2868
+ var showMenuButton = cardsCount === 1 || cardsCount > 1 && !+(selectedCard === null || selectedCard === void 0 ? void 0 : (_selectedCard$metadat = selectedCard.metadata) === null || _selectedCard$metadat === void 0 ? void 0 : _selectedCard$metadat.default_card);
2885
2869
  return /*#__PURE__*/React.createElement("div", {
2886
2870
  style: {
2887
2871
  marginBottom: -20
@@ -2951,7 +2935,7 @@ var CardsManagement = function CardsManagement(_ref) {
2951
2935
  className: classes.cardsGrid
2952
2936
  }, companyCards === null || companyCards === void 0 ? void 0 : companyCards.map(function (card) {
2953
2937
  return renderCard(card);
2954
- }))))))), /*#__PURE__*/React.createElement(Menu, {
2938
+ }))))))), showMenuButton && /*#__PURE__*/React.createElement(Menu, {
2955
2939
  anchorEl: anchorEl,
2956
2940
  open: Boolean(anchorEl),
2957
2941
  onClose: handleMenuClose,
@@ -2965,9 +2949,7 @@ var CardsManagement = function CardsManagement(_ref) {
2965
2949
  }
2966
2950
  }, selectedCard && !+selectedCard.metadata.default_card && /*#__PURE__*/React.createElement(MenuItem, {
2967
2951
  onClick: handleMarkAsDefault
2968
- }, "Mark as default"), selectedCard && !+selectedCard.category !== 'Company' && /*#__PURE__*/React.createElement(MenuItem, {
2969
- onClick: handleDisableCard
2970
- }, (selectedCard === null || selectedCard === void 0 ? void 0 : (_selectedCard$metadat2 = selectedCard.metadata) === null || _selectedCard$metadat2 === void 0 ? void 0 : _selectedCard$metadat2.is_enabled) === '0' ? 'Enable' : 'Disable'), /*#__PURE__*/React.createElement(MenuItem, {
2952
+ }, "Mark as default"), showMenuButton && /*#__PURE__*/React.createElement(MenuItem, {
2971
2953
  onClick: handleDeleteCard,
2972
2954
  style: {
2973
2955
  color: '#ff4444'
@@ -3663,7 +3645,7 @@ var personalInfo = [{
3663
3645
  maxLength: 100,
3664
3646
  minLength: 0
3665
3647
  },
3666
- disableText: 'Please get in touch with your administrator to change this value.'
3648
+ disableText: 'A user’s email is their primary identifier and cannot be changed for security reasons. To update it, please deactivate the existing user and create a new one with the correct email address.'
3667
3649
  }, {
3668
3650
  id: 4,
3669
3651
  label: 'Phone number',
@@ -5127,6 +5109,7 @@ function withStore(Component) {
5127
5109
  }
5128
5110
 
5129
5111
  var ExpandMoreIcon = function ExpandMoreIcon(props) {
5112
+ var fillColor = props.fillColor || '#6B7280';
5130
5113
  return /*#__PURE__*/React.createElement("svg", {
5131
5114
  xmlns: "http://www.w3.org/2000/svg",
5132
5115
  width: props.width,
@@ -5134,7 +5117,7 @@ var ExpandMoreIcon = function ExpandMoreIcon(props) {
5134
5117
  fill: "none",
5135
5118
  viewBox: "0 0 12 7"
5136
5119
  }, /*#__PURE__*/React.createElement("path", {
5137
- fill: "#6B7280",
5120
+ fill: fillColor,
5138
5121
  d: "M.293.294a1 1 0 011.414 0L6 4.587 10.293.294a1 1 0 111.414 1.414l-5 5a1 1 0 01-1.414 0l-5-5a1 1 0 010-1.414z"
5139
5122
  }));
5140
5123
  };
@@ -5716,14 +5699,37 @@ var AddMembershipButton = memo(function (_ref) {
5716
5699
  var IUIToastMessageService$5 = services.IUIToastMessageService;
5717
5700
  var api$7 = configs.api;
5718
5701
  var sixteenDigitNumber$1 = /^\d{16}$/;
5719
- var Membership = function Membership(_ref) {
5702
+ var resolveMembershipName$1 = function resolveMembershipName(membership, customName) {
5703
+ var _membership, _ref;
5704
+ if (membership === void 0) {
5705
+ membership = {};
5706
+ }
5707
+ if (customName === void 0) {
5708
+ customName = '';
5709
+ }
5710
+ if (((_membership = membership) === null || _membership === void 0 ? void 0 : _membership.membership_type) === 'rental_car') {
5711
+ var _membership2, _membership3, _membership3$program_, _membership5, _membership6, _membership6$loyalty_;
5712
+ if ((_membership2 = membership) !== null && _membership2 !== void 0 && _membership2.program_name && (_membership3 = membership) !== null && _membership3 !== void 0 && (_membership3$program_ = _membership3.program_name) !== null && _membership3$program_ !== void 0 && _membership3$program_.trim()) {
5713
+ var _membership4, _membership4$program_;
5714
+ return (_membership4 = membership) === null || _membership4 === void 0 ? void 0 : (_membership4$program_ = _membership4.program_name) === null || _membership4$program_ === void 0 ? void 0 : _membership4$program_.trim();
5715
+ }
5716
+ if ((_membership5 = membership) !== null && _membership5 !== void 0 && _membership5.loyalty_program_name && (_membership6 = membership) !== null && _membership6 !== void 0 && (_membership6$loyalty_ = _membership6.loyalty_program_name) !== null && _membership6$loyalty_ !== void 0 && _membership6$loyalty_.trim()) {
5717
+ var _membership7, _membership7$loyalty_;
5718
+ return (_membership7 = membership) === null || _membership7 === void 0 ? void 0 : (_membership7$loyalty_ = _membership7.loyalty_program_name) === null || _membership7$loyalty_ === void 0 ? void 0 : _membership7$loyalty_.trim();
5719
+ } else {
5720
+ return '';
5721
+ }
5722
+ }
5723
+ return (_ref = customName || '') === null || _ref === void 0 ? void 0 : _ref.trim();
5724
+ };
5725
+ var Membership = function Membership(_ref2) {
5720
5726
  var _clsx;
5721
- var _ref$membershipInfoIn = _ref.membershipInfoInput,
5722
- membershipInfoInput = _ref$membershipInfoIn === void 0 ? [] : _ref$membershipInfoIn,
5723
- _ref$setMembershipInf = _ref.setMembershipInfoInput,
5724
- setMembershipInfoInput = _ref$setMembershipInf === void 0 ? function () {} : _ref$setMembershipInf,
5725
- _ref$isProfile = _ref.isProfile,
5726
- isProfile = _ref$isProfile === void 0 ? false : _ref$isProfile;
5727
+ var _ref2$membershipInfoI = _ref2.membershipInfoInput,
5728
+ membershipInfoInput = _ref2$membershipInfoI === void 0 ? [] : _ref2$membershipInfoI,
5729
+ _ref2$setMembershipIn = _ref2.setMembershipInfoInput,
5730
+ setMembershipInfoInput = _ref2$setMembershipIn === void 0 ? function () {} : _ref2$setMembershipIn,
5731
+ _ref2$isProfile = _ref2.isProfile,
5732
+ isProfile = _ref2$isProfile === void 0 ? false : _ref2$isProfile;
5727
5733
  var _useParams = useParams(),
5728
5734
  editUserId = _useParams.userId;
5729
5735
  var _useSelector = useSelector(function (state) {
@@ -5926,22 +5932,24 @@ var Membership = function Membership(_ref) {
5926
5932
  };
5927
5933
  var handleSubmit = function handleSubmit() {
5928
5934
  try {
5929
- var _ref2, _ref3;
5930
5935
  if (isAAAloyaltySelected && !sixteenDigitNumber$1.test(membershipNumber)) {
5931
5936
  IUIToastMessageService$5.warningNotify('Enter 16-digit AAA membership ID');
5932
5937
  return Promise.resolve();
5933
5938
  }
5934
5939
  var url = "/api/v1/user-management/users/" + userID + "/membership";
5940
+ var resolvedMembershipName = resolveMembershipName$1(_extends({}, selectedMembershipChain, {
5941
+ membership_type: type
5942
+ }), membershipName);
5935
5943
  var payload = isEditing ? _extends({}, selectedMembershipChain, {
5936
5944
  number: membershipNumber === null || membershipNumber === void 0 ? void 0 : membershipNumber.trim(),
5937
- name: (_ref2 = membershipName || '') === null || _ref2 === void 0 ? void 0 : _ref2.trim()
5945
+ name: resolvedMembershipName
5938
5946
  }) : {
5939
5947
  membership_type: type,
5940
5948
  number: membershipNumber === null || membershipNumber === void 0 ? void 0 : membershipNumber.trim(),
5941
5949
  iata_code: null,
5942
5950
  user: userID,
5943
5951
  loyalty_program_id: selectedMembershipChain === null || selectedMembershipChain === void 0 ? void 0 : selectedMembershipChain.loyalty_program_id,
5944
- name: (_ref3 = membershipName || '') === null || _ref3 === void 0 ? void 0 : _ref3.trim()
5952
+ name: resolvedMembershipName
5945
5953
  };
5946
5954
  setIsUpdating(true);
5947
5955
  var _temp4 = _finallyRethrows(function () {
@@ -5992,7 +6000,7 @@ var Membership = function Membership(_ref) {
5992
6000
  var handleEdit = function handleEdit(mem, index, isOther) {
5993
6001
  setEditIndex(index);
5994
6002
  setSelectedMembershipChain(mem);
5995
- setMembershipName((mem === null || mem === void 0 ? void 0 : mem.name) || '');
6003
+ setMembershipName((mem === null || mem === void 0 ? void 0 : mem.name) || resolveMembershipName$1(mem, mem === null || mem === void 0 ? void 0 : mem.name));
5996
6004
  setMembershipNumber(mem === null || mem === void 0 ? void 0 : mem.number);
5997
6005
  setIsOtherMembership(isOther);
5998
6006
  var currentModalState = _extends({}, modalState);
@@ -7783,7 +7791,10 @@ var UserAddEdit = function UserAddEdit(props) {
7783
7791
  return Promise.reject(e);
7784
7792
  }
7785
7793
  };
7786
- var formSubmitHandler = function formSubmitHandler() {
7794
+ var formSubmitHandler = function formSubmitHandler(send_welcome_email) {
7795
+ if (send_welcome_email === void 0) {
7796
+ send_welcome_email = false;
7797
+ }
7787
7798
  try {
7788
7799
  var checkAnyError = doesFormHasError();
7789
7800
  if (checkAnyError) {
@@ -7821,6 +7832,9 @@ var UserAddEdit = function UserAddEdit(props) {
7821
7832
  cardsRole: cardsRole,
7822
7833
  isCardsAdmin: isCardsAdmin
7823
7834
  };
7835
+ if (!isEditMode && !isProfile) {
7836
+ payload.send_welcome_email = send_welcome_email;
7837
+ }
7824
7838
  if (verifyUserId) {
7825
7839
  payload.verifyUserId = verifyUserId;
7826
7840
  }
@@ -8209,12 +8223,34 @@ var UserAddEdit = function UserAddEdit(props) {
8209
8223
  onClick: handleCancelNavigation
8210
8224
  })), /*#__PURE__*/React.createElement(IUIBox, {
8211
8225
  component: "div",
8212
- className: "pageHeader--button-single button-right"
8213
- }, /*#__PURE__*/React.createElement(IUIButton, {
8226
+ className: clsx('pageHeader--button-single', styles.buttonRight)
8227
+ }, isEditMode || isProfile ? /*#__PURE__*/React.createElement(IUIButton, {
8214
8228
  buttonText: "Save",
8215
8229
  type: "contained",
8216
8230
  onClick: formSubmitHandler,
8217
8231
  disabled: isPageLoading || productAccess.travel === false && productAccess.expense === false || !!doesFormHasError()
8232
+ }) : /*#__PURE__*/React.createElement(IUIDropdownButton, {
8233
+ buttonText: "Create user",
8234
+ outlinedBtn: false,
8235
+ className: styles.containedDropdownBtn,
8236
+ placement: "bottom-end",
8237
+ endIcon: /*#__PURE__*/React.createElement(ExpandMoreIcon, {
8238
+ fillColor: "white",
8239
+ width: "10",
8240
+ height: "10",
8241
+ fill: true
8242
+ }),
8243
+ menuListInfo: [{
8244
+ label: 'Send email invite',
8245
+ handler: function handler() {
8246
+ return formSubmitHandler(true);
8247
+ }
8248
+ }, {
8249
+ label: 'Do not send email',
8250
+ handler: function handler() {
8251
+ return formSubmitHandler(false);
8252
+ }
8253
+ }]
8218
8254
  }))))), /*#__PURE__*/React.createElement(IUIBox, {
8219
8255
  component: "div",
8220
8256
  marginTop: "8rem",
@@ -8726,10 +8762,15 @@ var downloadUploadedRecords = function downloadUploadedRecords(type, jobId) {
8726
8762
  });
8727
8763
  };
8728
8764
  };
8729
- var importUploadedRecords = function importUploadedRecords(jobId, canUpdateExistingUsers) {
8765
+ var importUploadedRecords = function importUploadedRecords(jobId, canUpdateExistingUsers, sendInvite) {
8766
+ if (sendInvite === void 0) {
8767
+ sendInvite = false;
8768
+ }
8730
8769
  return function (dispatch) {
8731
8770
  return new Promise(function (resolve, reject) {
8732
- api$8.post(userBulkImport.importRecords() + "?job_id=" + jobId + "&update=" + canUpdateExistingUsers).then(function (res) {
8771
+ api$8.post(userBulkImport.importRecords() + "?job_id=" + jobId + "&update=" + canUpdateExistingUsers, {
8772
+ should_send_welcome_email: sendInvite
8773
+ }).then(function (res) {
8733
8774
  resolve(res);
8734
8775
  })["catch"](function (err) {
8735
8776
  reject(err);
@@ -8990,9 +9031,12 @@ var UserBulkUpload = function UserBulkUpload(_ref) {
8990
9031
  var _useState5 = useState(false),
8991
9032
  canUpdateExistingUsers = _useState5[0],
8992
9033
  setCanUpdateExistingUsers = _useState5[1];
8993
- var _useState6 = useState(false),
8994
- isFileDownloading = _useState6[0],
8995
- setDownlStatus = _useState6[1];
9034
+ var _useState6 = useState(true),
9035
+ sendInvite = _useState6[0],
9036
+ setSendInvite = _useState6[1];
9037
+ var _useState7 = useState(false),
9038
+ isFileDownloading = _useState7[0],
9039
+ setDownlStatus = _useState7[1];
8996
9040
  var _useSelector = useSelector(function (state) {
8997
9041
  return state.common;
8998
9042
  }),
@@ -9100,7 +9144,7 @@ var UserBulkUpload = function UserBulkUpload(_ref) {
9100
9144
  }
9101
9145
  }
9102
9146
  setImportStatus(1);
9103
- return Promise.resolve(dispatch(importUploadedRecords(jobId, canUpdateExistingUsers ? 1 : 0))).then(function (res) {
9147
+ return Promise.resolve(dispatch(importUploadedRecords(jobId, canUpdateExistingUsers ? 1 : 0, sendInvite))).then(function (res) {
9104
9148
  var _temp = function () {
9105
9149
  if (res.data.status) {
9106
9150
  return Promise.resolve(dispatch(_executionJob(jobId, 'is_job_completed')).then(function (resp) {
@@ -9131,6 +9175,9 @@ var UserBulkUpload = function UserBulkUpload(_ref) {
9131
9175
  var handleExistingUserUpdation = function handleExistingUserUpdation(event) {
9132
9176
  setCanUpdateExistingUsers(!canUpdateExistingUsers);
9133
9177
  };
9178
+ var handleSendInvite = function handleSendInvite() {
9179
+ setSendInvite(!sendInvite);
9180
+ };
9134
9181
  var CustomStepIcon = function CustomStepIcon(step) {
9135
9182
  if ((importStatus === 1 || importStatus === 2 || importStatus === 4) && step === Number(activeStep)) {
9136
9183
  return /*#__PURE__*/React.createElement(IUIPrimaryRadio, {
@@ -9440,6 +9487,18 @@ var UserBulkUpload = function UserBulkUpload(_ref) {
9440
9487
  label: "Update any existing users",
9441
9488
  className: clsx(styles$5.checkboxlabel, (_clsx5 = {}, _clsx5[styles$5.disabledText] = +userBulkImportInfo.exist_users === 0, _clsx5)),
9442
9489
  disabled: +userBulkImportInfo.exist_users === 0
9490
+ })), /*#__PURE__*/React.createElement(IUIBox, {
9491
+ display: "flex",
9492
+ style: {
9493
+ paddingLeft: '28px'
9494
+ }
9495
+ }, /*#__PURE__*/React.createElement(IUIFormControlLabel, {
9496
+ control: /*#__PURE__*/React.createElement(IUICheckBox, {
9497
+ handleCheckBoxHandler: handleSendInvite,
9498
+ checked: sendInvite
9499
+ }),
9500
+ label: "Send invitation emails to new users who have not logged into the platform.",
9501
+ className: clsx(styles$5.checkboxlabel)
9443
9502
  })), /*#__PURE__*/React.createElement(IUIBox, {
9444
9503
  display: "flex",
9445
9504
  style: {
@@ -10329,6 +10388,7 @@ var StickyHeadTable = function StickyHeadTable(props) {
10329
10388
  id: 'status',
10330
10389
  label: 'Status',
10331
10390
  minWidth: 160,
10391
+ sortable: true,
10332
10392
  cell: function cell(row) {
10333
10393
  return /*#__PURE__*/React.createElement(IUIFormGroup, null, /*#__PURE__*/React.createElement(IUITypography, {
10334
10394
  component: "div",
@@ -11168,7 +11228,7 @@ var UserList = function UserList(_ref2) {
11168
11228
  if (isTokenVerified === true) {
11169
11229
  var pageNum = page;
11170
11230
  var searchParam = searchValue.trim() !== '' ? '&search=' + searchValue : '';
11171
- var orderingParam = orderBy === '' ? '' : order === 'asc' ? '&ordering=' + orderBy : '&ordering=-' + orderBy;
11231
+ var orderingParam = orderBy === '' ? '' : orderBy === 'status' ? order === 'asc' ? '&ordering=is_active,-has_visited' : '&ordering=-is_active,-has_visited' : order === 'asc' ? '&ordering=' + orderBy : '&ordering=-' + orderBy;
11172
11232
  var url = userListUrl.getUser + '?length=' + rowsPerPage + '&page=' + pageNum + searchParam + orderingParam;
11173
11233
  if (isSearchingChange) {
11174
11234
  var delayDebounceFn = setTimeout(function () {