@itilite/iui-user-management 1.4.4999 → 1.4.7681

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,9 +1,8 @@
1
- import { IUIAsyncSelect, IUIBox, IUILabel, IUIFileUpload, IUICheckboxButton, IUIPhone, IUISelect, IUIDatePicker, IUIInput, IUIDivider, IUIGrid, 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';
2
- import React, { useState, useEffect, memo, useRef, Fragment as Fragment$1 } from 'react';
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';
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';
5
- import AddIcon$1 from '@material-ui/icons/Add';
6
- import DeleteIcon from '@material-ui/icons/Delete';
5
+ import { IconButton, Menu, MenuItem, Popper, Grow, Paper, ClickAwayListener, MenuList, Typography, Box } from '@material-ui/core';
7
6
  import { useDispatch, useSelector, Provider } from 'react-redux';
8
7
  import { combineReducers, createStore, applyMiddleware } from 'redux';
9
8
  import thunk from 'redux-thunk';
@@ -15,7 +14,6 @@ import Tooltip from '@material-ui/core/Tooltip';
15
14
  import Switch from '@material-ui/core/Switch';
16
15
  import MoreHorizIcon from '@material-ui/icons/MoreHoriz';
17
16
  import Button from '@material-ui/core/Button';
18
- import { Popper, Grow, Paper, ClickAwayListener, MenuList, MenuItem, Typography, Box } from '@material-ui/core';
19
17
  import { useScrollPosition } from '@n8tb1t/use-scroll-position';
20
18
 
21
19
  function _arrayLikeToArray(r, a) {
@@ -186,17 +184,7 @@ function _finallyRethrows(body, finalizer) {
186
184
 
187
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"};
188
186
 
189
- function r(e) {
190
- var t,
191
- f,
192
- n = "";
193
- 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);
194
- return n;
195
- }
196
- function clsx() {
197
- for (var e, t, f = 0, n = ""; f < arguments.length;) (e = arguments[f++]) && (t = r(e)) && (n && (n += " "), n += t);
198
- return n;
199
- }
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}
200
188
 
201
189
  var GetInputType = React.forwardRef(function (props, ref) {
202
190
  var _p = props._p,
@@ -836,7 +824,9 @@ var UserRole = function UserRole(_ref) {
836
824
  }));
837
825
  };
838
826
 
839
- var styles$1 = {"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","defaultLabel":"_smjc4","defaultBtn":"_1_ArA","cursonPointer":"_1L115","sectionWrapper":"_VpUCK","margin":"_1Fs_D","minGridWidth":"_1hl-Z","firstRowMargin":"_1WZZj","firstChildMargin":"_IT_O_","paddingTop":"_Mhnl7","dividerColor":"_3ltFd"};
827
+ 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"};
828
+
829
+ var classes = {"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"};
840
830
 
841
831
  var SHOW_LOADER = 'SHOW_LOADER';
842
832
  var STOP_LOADER = 'STOP_LOADER';
@@ -937,10 +927,17 @@ var formatCreateUserPayload = function formatCreateUserPayload(payload) {
937
927
  res.membership_info = payload.membershipInfoInput.filter(function (membership) {
938
928
  return !membership.isDeleted;
939
929
  }).map(function (membership) {
930
+ var _ref = membership || {},
931
+ _ref$iata_code = _ref.iata_code,
932
+ iata_code = _ref$iata_code === void 0 ? null : _ref$iata_code,
933
+ _ref$loyalty_program_ = _ref.loyalty_program_id,
934
+ loyalty_program_id = _ref$loyalty_program_ === void 0 ? null : _ref$loyalty_program_;
940
935
  var res = {
941
936
  membership_type: membership.membership_type,
942
937
  name: membership.name,
943
- number: membership.number
938
+ number: membership.number,
939
+ iata_code: iata_code,
940
+ loyalty_program_id: loyalty_program_id
944
941
  };
945
942
  return res;
946
943
  });
@@ -1118,11 +1115,18 @@ var formatUpdateUserPayload = function formatUpdateUserPayload(payload, inputCha
1118
1115
  res.fields.membership_info = payload.membershipInfoInput.filter(function (membership) {
1119
1116
  return !!membership.isEditMode;
1120
1117
  }).map(function (membership) {
1118
+ var _ref2 = membership || {},
1119
+ _ref2$iata_code = _ref2.iata_code,
1120
+ iata_code = _ref2$iata_code === void 0 ? null : _ref2$iata_code,
1121
+ _ref2$loyalty_program = _ref2.loyalty_program_id,
1122
+ loyalty_program_id = _ref2$loyalty_program === void 0 ? null : _ref2$loyalty_program;
1121
1123
  var res = {
1122
1124
  membership_type: membership.membership_type,
1123
1125
  name: membership.name,
1124
1126
  number: membership.number,
1125
- id: membership.id
1127
+ id: membership.id,
1128
+ iata_code: iata_code,
1129
+ loyalty_program_id: loyalty_program_id
1126
1130
  };
1127
1131
  return res;
1128
1132
  }).concat(payload.membershipInfoInput.filter(function (membership) {
@@ -2230,84 +2234,195 @@ var editCustomFieldLabel = function editCustomFieldLabel(payload) {
2230
2234
 
2231
2235
  var IUILocalStorageService$4 = services.IUILocalStorageService;
2232
2236
  var env$3 = configs.env;
2233
- var CreditCard = function CreditCard(_ref) {
2234
- var cardId = _ref.cardId,
2235
- lastDigit = _ref.lastDigit,
2236
- expMonth = _ref.expMonth,
2237
- expYear = _ref.expYear,
2238
- cardBrand = _ref.cardBrand,
2239
- _ref$isDefaultCard = _ref.isDefaultCard,
2240
- isDefaultCard = _ref$isDefaultCard === void 0 ? false : _ref$isDefaultCard,
2241
- pg = _ref.pg;
2237
+ var CardsManagement = function CardsManagement(_ref) {
2238
+ var _pg$gateway;
2239
+ var _ref$paymentDetails = _ref.paymentDetails,
2240
+ paymentDetails = _ref$paymentDetails === void 0 ? {} : _ref$paymentDetails,
2241
+ _ref$paymentMethod = _ref.paymentMethod,
2242
+ paymentMethod = _ref$paymentMethod === void 0 ? null : _ref$paymentMethod;
2242
2243
  var dispatch = useDispatch();
2243
- var handleCardDelete = function handleCardDelete() {
2244
- dispatch(deletePaymentCard({
2245
- pmId: cardId,
2246
- vendorId: pg.vendor_id
2247
- }));
2248
- };
2249
- var setDefaultCard = function setDefaultCard() {
2244
+ var pg = paymentDetails.pg,
2245
+ _paymentDetails$cards = paymentDetails.cards,
2246
+ cards = _paymentDetails$cards === void 0 ? null : _paymentDetails$cards;
2247
+ var _useState = useState(null),
2248
+ anchorEl = _useState[0],
2249
+ setAnchorEl = _useState[1];
2250
+ var _useState2 = useState(null),
2251
+ selectedCard = _useState2[0],
2252
+ setSelectedCard = _useState2[1];
2253
+ var handleMenuClick = function handleMenuClick(event, card) {
2254
+ setAnchorEl(event.currentTarget);
2255
+ setSelectedCard(card);
2256
+ };
2257
+ var handleMenuClose = function handleMenuClose() {
2258
+ setAnchorEl(null);
2259
+ setSelectedCard(null);
2260
+ };
2261
+ var handleMarkAsDefault = function handleMarkAsDefault() {
2262
+ console.log('Mark as default:', selectedCard);
2263
+ if (!pg || !selectedCard) return;
2250
2264
  dispatch(setDefaultPaymentCard({
2251
2265
  user_id: +pg.user_id,
2252
- method_id: cardId,
2266
+ method_id: selectedCard.id,
2253
2267
  vendor_id: +pg.vendor_id,
2254
2268
  app_type: 1
2255
2269
  }));
2270
+ handleMenuClose();
2256
2271
  };
2257
- return /*#__PURE__*/React.createElement("div", {
2258
- className: styles$1.card
2259
- }, /*#__PURE__*/React.createElement("div", {
2260
- className: styles$1.cardLabel
2261
- }, isDefaultCard ? /*#__PURE__*/React.createElement("span", {
2262
- className: styles$1.defaultLabel
2263
- }, "Default Card") : /*#__PURE__*/React.createElement("button", {
2264
- type: "button",
2265
- onClick: setDefaultCard,
2266
- className: styles$1.defaultBtn
2267
- }, "Make This Default")), !isDefaultCard && /*#__PURE__*/React.createElement("div", {
2268
- className: styles$1.cardDeleteBtn
2269
- }, /*#__PURE__*/React.createElement("button", {
2270
- type: "button",
2271
- onClick: handleCardDelete
2272
- }, /*#__PURE__*/React.createElement(DeleteIcon, {
2273
- width: "10",
2274
- height: "10"
2275
- }))), /*#__PURE__*/React.createElement("div", {
2276
- className: styles$1.cardNumber
2277
- }, /*#__PURE__*/React.createElement("span", {
2278
- className: styles$1.cardDigit
2279
- }, "XXXX"), /*#__PURE__*/React.createElement("span", {
2280
- className: styles$1.cardDigit
2281
- }, "XXXX"), /*#__PURE__*/React.createElement("span", {
2282
- className: styles$1.cardDigit
2283
- }, "XXXX"), /*#__PURE__*/React.createElement("span", {
2284
- className: styles$1.cardDigit
2285
- }, lastDigit)), /*#__PURE__*/React.createElement("div", {
2286
- className: styles$1.expiryDate
2287
- }, expMonth, " / ", expYear), /*#__PURE__*/React.createElement("div", {
2288
- className: clsx(styles$1.cardImage, styles$1[cardBrand])
2289
- }));
2290
- };
2291
- var AddCard = function AddCard(_ref2) {
2292
- var pg = _ref2.pg;
2293
- var _url = env$3.getPaymentUrl() + ("/api/v1/auth/" + IUILocalStorageService$4.getAccessToken() + "/1/" + pg.entity_id + "/0/" + pg.vendor_id + "/1");
2294
- var handleAddCard = function handleAddCard() {
2295
- window.location.assign(_url);
2272
+ var handleDeleteCard = function handleDeleteCard() {
2273
+ dispatch(deletePaymentCard({
2274
+ pmId: selectedCard.id,
2275
+ vendorId: pg.vendor_id
2276
+ }));
2277
+ handleMenuClose();
2278
+ };
2279
+ var getBrandLogo = function getBrandLogo(brand) {
2280
+ var logos = {
2281
+ visa: 'https://upload.wikimedia.org/wikipedia/commons/0/04/Visa.svg',
2282
+ mastercard: 'https://upload.wikimedia.org/wikipedia/commons/2/2a/Mastercard-logo.svg',
2283
+ amex: 'https://upload.wikimedia.org/wikipedia/commons/3/30/American_Express_logo.svg'
2284
+ };
2285
+ return logos[brand.toLowerCase()] || '';
2286
+ };
2287
+ var getCardTypeClass = function getCardTypeClass(category) {
2288
+ return category === 'Corporate' ? 'corporate' : category === 'Company' ? 'company' : 'personal';
2289
+ };
2290
+ var getCardTypeLabel = function getCardTypeLabel(category) {
2291
+ return category === 'Corporate' ? 'CORPORATE' : category === 'Company' ? 'COMPANY' : 'PERSONAL';
2292
+ };
2293
+ var MoreIcon = function MoreIcon(_ref2) {
2294
+ var _ref2$color = _ref2.color,
2295
+ color = _ref2$color === void 0 ? '#3D89FF' : _ref2$color,
2296
+ className = _ref2.className;
2297
+ return /*#__PURE__*/React.createElement("svg", {
2298
+ width: "16",
2299
+ height: "16",
2300
+ viewBox: "0 0 16 16",
2301
+ fill: "none",
2302
+ className: className
2303
+ }, /*#__PURE__*/React.createElement("path", {
2304
+ d: "M0.8125 8.00439C0.8125 8.4188 0.97712 8.81622 1.27015 9.10925C1.56317 9.40227 1.9606 9.56689 2.375 9.56689C2.7894 9.56689 3.18683 9.40227 3.47985 9.10925C3.77288 8.81622 3.9375 8.4188 3.9375 8.00439C3.9375 7.58999 3.77288 7.19257 3.47985 6.89954C3.18683 6.60651 2.7894 6.44189 2.375 6.44189C1.9606 6.44189 1.56317 6.60651 1.27015 6.89954C0.97712 7.19257 0.8125 7.58999 0.8125 8.00439Z",
2305
+ stroke: color,
2306
+ strokeLinecap: "round",
2307
+ strokeLinejoin: "round"
2308
+ }), /*#__PURE__*/React.createElement("path", {
2309
+ d: "M6.4375 8.00439C6.4375 8.20958 6.47792 8.41277 6.55644 8.60234C6.63496 8.79191 6.75005 8.96416 6.89515 9.10925C7.04024 9.25434 7.21249 9.36943 7.40206 9.44796C7.59163 9.52648 7.79481 9.56689 8 9.56689C8.20519 9.56689 8.40837 9.52648 8.59794 9.44796C8.78751 9.36943 8.95976 9.25434 9.10485 9.10925C9.24995 8.96416 9.36504 8.79191 9.44356 8.60234C9.52208 8.41277 9.5625 8.20958 9.5625 8.00439C9.5625 7.7992 9.52208 7.59602 9.44356 7.40645C9.36504 7.21688 9.24995 7.04463 9.10485 6.89954C8.95976 6.75445 8.78751 6.63936 8.59794 6.56083C8.40837 6.48231 8.20519 6.44189 8 6.44189C7.79481 6.44189 7.59163 6.48231 7.40206 6.56083C7.21249 6.63936 7.04024 6.75445 6.89515 6.89954C6.75005 7.04463 6.63496 7.21688 6.55644 7.40645C6.47792 7.59602 6.4375 7.7992 6.4375 8.00439Z",
2310
+ stroke: color,
2311
+ strokeLinecap: "round",
2312
+ strokeLinejoin: "round"
2313
+ }), /*#__PURE__*/React.createElement("path", {
2314
+ d: "M12.0625 8.00439C12.0625 8.4188 12.2271 8.81622 12.5201 9.10925C12.8132 9.40227 13.2106 9.56689 13.625 9.56689C14.0394 9.56689 14.4368 9.40227 14.7299 9.10925C15.0229 8.81622 15.1875 8.4188 15.1875 8.00439C15.1875 7.58999 15.0229 7.19257 14.7299 6.89954C14.4368 6.60651 14.0394 6.44189 13.625 6.44189C13.2106 6.44189 12.8132 6.60651 12.5201 6.89954C12.2271 7.19257 12.0625 7.58999 12.0625 8.00439Z",
2315
+ stroke: color,
2316
+ strokeLinecap: "round",
2317
+ strokeLinejoin: "round"
2318
+ }));
2319
+ };
2320
+ var LockIcon = function LockIcon(_ref3) {
2321
+ return /*#__PURE__*/React.createElement("svg", {
2322
+ xmlns: "http://www.w3.org/2000/svg",
2323
+ width: "16",
2324
+ height: "16",
2325
+ viewBox: "0 0 16 16",
2326
+ fill: "none"
2327
+ }, /*#__PURE__*/React.createElement("path", {
2328
+ d: "M7.83562 1.50971L8 1.50439C9.32548 1.50439 10.41 2.53593 10.4947 3.84002L10.5 4.00439V5.00439H11.5C12.3284 5.00439 13 5.67597 13 6.50439V12.5044C13 13.3328 12.3284 14.0044 11.5 14.0044H4.5C3.67157 14.0044 3 13.3328 3 12.5044V6.50439C3 5.67597 3.67157 5.00439 4.5 5.00439H5.5V4.00439C5.5 2.67891 6.53154 1.59436 7.83562 1.50971ZM11.5 6.00439H4.5C4.22386 6.00439 4 6.22825 4 6.50439V12.5044C4 12.7805 4.22386 13.0044 4.5 13.0044H11.5C11.7761 13.0044 12 12.7805 12 12.5044V6.50439C12 6.22825 11.7761 6.00439 11.5 6.00439ZM8 8.50439C8.55228 8.50439 9 8.95211 9 9.50439C9 10.0567 8.55228 10.5044 8 10.5044C7.44772 10.5044 7 10.0567 7 9.50439C7 8.95211 7.44772 8.50439 8 8.50439ZM8.14446 2.51126L8 2.50439C7.2203 2.50439 6.57955 3.09928 6.50687 3.85993L6.5 4.00439V5.00439H9.5V4.00439C9.5 3.2247 8.90511 2.58395 8.14446 2.51126Z",
2329
+ fill: "#2EA363"
2330
+ }));
2331
+ };
2332
+ var renderCard = function renderCard(card) {
2333
+ var isCompanyCard = card.category === 'Company';
2334
+ var cardClass = getCardTypeClass(card.category);
2335
+ var isDefaultCard = !!+card.metadata.default_card;
2336
+ return /*#__PURE__*/React.createElement("div", {
2337
+ key: card.id,
2338
+ className: clsx(classes.card, classes[cardClass])
2339
+ }, /*#__PURE__*/React.createElement("div", {
2340
+ className: classes.cardHeader
2341
+ }, /*#__PURE__*/React.createElement("div", {
2342
+ className: classes.cardTitleSection
2343
+ }, /*#__PURE__*/React.createElement("h3", {
2344
+ className: classes.cardName
2345
+ }, card.alias), /*#__PURE__*/React.createElement("span", {
2346
+ className: classes.cardType
2347
+ }, getCardTypeLabel(card.category), isDefaultCard && /*#__PURE__*/React.createElement("span", null, ' (Default)'))), isCompanyCard ? /*#__PURE__*/React.createElement(LockIcon, {
2348
+ className: classes.lockIcon
2349
+ }) : /*#__PURE__*/React.createElement(IconButton, {
2350
+ size: "small",
2351
+ onClick: function onClick(e) {
2352
+ return handleMenuClick(e, card);
2353
+ },
2354
+ className: classes.menuButton
2355
+ }, /*#__PURE__*/React.createElement(MoreIcon, {
2356
+ className: clsx(classes.moreIcon, classes[cardClass]),
2357
+ color: isCompanyCard ? '#2EA363' : '#3D89FF'
2358
+ }))), /*#__PURE__*/React.createElement("div", {
2359
+ className: classes.cardDetails
2360
+ }, /*#__PURE__*/React.createElement("div", {
2361
+ className: classes.cardNumber
2362
+ }, /*#__PURE__*/React.createElement("span", {
2363
+ className: classes.cardMaskedNumber
2364
+ }, "\u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022"), ' ', card.card.last4), /*#__PURE__*/React.createElement("div", {
2365
+ className: classes.cardExpiry
2366
+ }, "Expiry date ", card.card.exp_month, "/", String(card.card.exp_year).slice(-2)), /*#__PURE__*/React.createElement("div", {
2367
+ className: classes.cardCvv
2368
+ }, "CVV \u2022\u2022\u2022")), /*#__PURE__*/React.createElement("div", {
2369
+ className: classes.cardFooter
2370
+ }, /*#__PURE__*/React.createElement("div", null), /*#__PURE__*/React.createElement("img", {
2371
+ src: getBrandLogo(card.card.brand),
2372
+ alt: card.card.brand,
2373
+ className: classes.brandLogo
2374
+ })));
2296
2375
  };
2376
+ var personalCards = cards.filter(function (card) {
2377
+ return card.category === 'Personal';
2378
+ });
2379
+ var corporateCards = cards.filter(function (card) {
2380
+ return card.category === 'Corporate';
2381
+ });
2382
+ var companyCards = cards.filter(function (card) {
2383
+ return card.category === 'Company';
2384
+ });
2385
+ var _url = env$3.getPaymentUrl() + ("/api/v1/auth/" + IUILocalStorageService$4.getAccessToken() + "/1/" + pg.entity_id + "/0/" + pg.vendor_id + "/1");
2297
2386
  return /*#__PURE__*/React.createElement("div", {
2298
- className: clsx(styles$1.card, styles$1.cursonPointer),
2299
- onClick: handleAddCard
2300
- }, /*#__PURE__*/React.createElement("div", {
2301
- className: styles$1.addCard
2302
- }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(AddIcon$1, null)), /*#__PURE__*/React.createElement("div", null, "Add New Card")));
2303
- };
2304
- var PaymentCards = function PaymentCards(_ref3) {
2305
- var _paymentDetails$pg, _paymentDetails$pg2;
2306
- var paymentDetails = _ref3.paymentDetails;
2307
- if (!paymentDetails || Object.keys(paymentDetails).length === 0 || (!paymentDetails.cards || paymentDetails.cards.length === 0) && ((paymentDetails === null || paymentDetails === void 0 ? void 0 : (_paymentDetails$pg = paymentDetails.pg) === null || _paymentDetails$pg === void 0 ? void 0 : _paymentDetails$pg.gateway.toLowerCase()) !== 'stripe' || (paymentDetails === null || paymentDetails === void 0 ? void 0 : (_paymentDetails$pg2 = paymentDetails.pg) === null || _paymentDetails$pg2 === void 0 ? void 0 : _paymentDetails$pg2.save_card_enable) !== 1)) {
2308
- return /*#__PURE__*/React.createElement(React.Fragment, null);
2309
- }
2310
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(IUIDivider, {
2387
+ style: {
2388
+ marginBottom: -20
2389
+ }
2390
+ }, /*#__PURE__*/React.createElement(IUIGrid, {
2391
+ container: true,
2392
+ className: clsx(styles$1.sectionWrapper)
2393
+ }, /*#__PURE__*/React.createElement(IUIGrid, {
2394
+ item: true,
2395
+ sm: 12,
2396
+ md: 4
2397
+ }, /*#__PURE__*/React.createElement(IUILabel, {
2398
+ label: "My cards",
2399
+ headerType: true,
2400
+ description: "These are personal & company issued cards owned by you."
2401
+ })), /*#__PURE__*/React.createElement(IUIGrid, {
2402
+ item: true,
2403
+ sm: 12,
2404
+ md: 8,
2405
+ lg: 8,
2406
+ xl: 6
2407
+ }, /*#__PURE__*/React.createElement(IUIGrid, {
2408
+ container: true,
2409
+ className: styles$1.formFieldsWrapper
2410
+ }, /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", null, paymentMethod === 2 && /*#__PURE__*/React.createElement("div", {
2411
+ style: classes.disabledNotice
2412
+ }, "Company has disabled usage of your personal cards, please reach out to your admin"), /*#__PURE__*/React.createElement("div", {
2413
+ className: classes.cardsGrid
2414
+ }, personalCards.map(function (card) {
2415
+ return renderCard(card);
2416
+ }), corporateCards.map(function (card) {
2417
+ return renderCard(card);
2418
+ })), (!cards || (cards === null || cards === void 0 ? void 0 : cards.length) < 10) && (pg === null || pg === void 0 ? void 0 : (_pg$gateway = pg.gateway) === null || _pg$gateway === void 0 ? void 0 : _pg$gateway.toLowerCase()) === 'stripe' && (pg === null || pg === void 0 ? void 0 : pg.save_card_enable) === 1 && paymentMethod !== 2 && /*#__PURE__*/React.createElement("button", {
2419
+ className: classes.addCardButton,
2420
+ onClick: function onClick() {
2421
+ return window.location.assign(_url);
2422
+ }
2423
+ }, /*#__PURE__*/React.createElement("span", {
2424
+ className: classes.plusIcon
2425
+ }, "+"), " Add card")))))), (companyCards === null || companyCards === void 0 ? void 0 : companyCards.length) !== 0 && /*#__PURE__*/React.createElement(Fragment$1, null, /*#__PURE__*/React.createElement(IUIDivider, {
2311
2426
  className: styles$1.dividerColor
2312
2427
  }), /*#__PURE__*/React.createElement(IUIGrid, {
2313
2428
  container: true,
@@ -2317,9 +2432,9 @@ var PaymentCards = function PaymentCards(_ref3) {
2317
2432
  sm: 12,
2318
2433
  md: 4
2319
2434
  }, /*#__PURE__*/React.createElement(IUILabel, {
2320
- label: "Card Details",
2321
- headerType: true,
2322
- description: ""
2435
+ label: "Company cards",
2436
+ description: "These are the centralized cards owned by your company.",
2437
+ headerType: true
2323
2438
  })), /*#__PURE__*/React.createElement(IUIGrid, {
2324
2439
  item: true,
2325
2440
  sm: 12,
@@ -2329,20 +2444,43 @@ var PaymentCards = function PaymentCards(_ref3) {
2329
2444
  }, /*#__PURE__*/React.createElement(IUIGrid, {
2330
2445
  container: true,
2331
2446
  className: styles$1.formFieldsWrapper
2332
- }, /*#__PURE__*/React.createElement(React.Fragment, null, paymentDetails.cards && paymentDetails.cards.map(function (card) {
2333
- return /*#__PURE__*/React.createElement(CreditCard, {
2334
- key: card.id,
2335
- cardId: card.id,
2336
- lastDigit: card.card.last4,
2337
- expMonth: card.card.exp_month,
2338
- expYear: card.card.exp_year,
2339
- cardBrand: card.card.brand,
2340
- isDefaultCard: !!+card.metadata.default_card,
2341
- pg: paymentDetails.pg
2342
- });
2343
- }), (!paymentDetails.cards || paymentDetails.cards.length < 10) && paymentDetails.pg.gateway.toLowerCase() === 'stripe' && paymentDetails.pg.save_card_enable === 1 && /*#__PURE__*/React.createElement(AddCard, {
2344
- pg: paymentDetails.pg
2345
- }))))));
2447
+ }, /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
2448
+ className: classes.cardsGrid
2449
+ }, companyCards.map(function (card) {
2450
+ return renderCard(card);
2451
+ }))))))), /*#__PURE__*/React.createElement(Menu, {
2452
+ anchorEl: anchorEl,
2453
+ open: Boolean(anchorEl),
2454
+ onClose: handleMenuClose,
2455
+ anchorOrigin: {
2456
+ vertical: 'top',
2457
+ horizontal: 'right'
2458
+ },
2459
+ transformOrigin: {
2460
+ vertical: 'top',
2461
+ horizontal: 'right'
2462
+ }
2463
+ }, selectedCard && !+selectedCard.metadata.default_card && /*#__PURE__*/React.createElement(MenuItem, {
2464
+ onClick: handleMarkAsDefault
2465
+ }, "Mark as default"), /*#__PURE__*/React.createElement(MenuItem, {
2466
+ onClick: handleDeleteCard,
2467
+ style: {
2468
+ color: '#ff4444'
2469
+ }
2470
+ }, "Delete card")));
2471
+ };
2472
+
2473
+ var PaymentCards = function PaymentCards(_ref) {
2474
+ var _paymentDetails$pg, _paymentDetails$pg2;
2475
+ var paymentDetails = _ref.paymentDetails;
2476
+ if (!paymentDetails || Object.keys(paymentDetails).length === 0 || (!paymentDetails.cards || paymentDetails.cards.length === 0) && ((paymentDetails === null || paymentDetails === void 0 ? void 0 : (_paymentDetails$pg = paymentDetails.pg) === null || _paymentDetails$pg === void 0 ? void 0 : _paymentDetails$pg.gateway.toLowerCase()) !== 'stripe' || (paymentDetails === null || paymentDetails === void 0 ? void 0 : (_paymentDetails$pg2 = paymentDetails.pg) === null || _paymentDetails$pg2 === void 0 ? void 0 : _paymentDetails$pg2.save_card_enable) !== 1)) {
2477
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
2478
+ }
2479
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(IUIDivider, {
2480
+ className: styles$1.dividerColor
2481
+ }), /*#__PURE__*/React.createElement(CardsManagement, {
2482
+ paymentDetails: paymentDetails
2483
+ }));
2346
2484
  };
2347
2485
 
2348
2486
  function AddIcon(props) {
@@ -2415,7 +2553,9 @@ var TravelExpenseFields = function TravelExpenseFields(props) {
2415
2553
  _props$editUserId = props.editUserId,
2416
2554
  editUserId = _props$editUserId === void 0 ? null : _props$editUserId,
2417
2555
  _props$roles = props.roles,
2418
- roles = _props$roles === void 0 ? [] : _props$roles;
2556
+ roles = _props$roles === void 0 ? [] : _props$roles,
2557
+ _props$paymentMethod = props.paymentMethod,
2558
+ paymentMethod = _props$paymentMethod === void 0 ? null : _props$paymentMethod;
2419
2559
  var _useState = useState({
2420
2560
  product: '',
2421
2561
  approvers: []
@@ -2711,8 +2851,9 @@ var TravelExpenseFields = function TravelExpenseFields(props) {
2711
2851
  isError: !!errMsg[i],
2712
2852
  placeholder: "Example label - \u201CManager\u201D"
2713
2853
  }));
2714
- })))), type === 'travel' && isProfile && paymentDetails && /*#__PURE__*/React.createElement(PaymentCards, {
2715
- paymentDetails: paymentDetails
2854
+ })))), type === 'travel' && paymentDetails && /*#__PURE__*/React.createElement(PaymentCards, {
2855
+ paymentDetails: paymentDetails,
2856
+ paymentMethod: paymentMethod
2716
2857
  }));
2717
2858
  };
2718
2859
 
@@ -3467,6 +3608,17 @@ var cardsConstants = {
3467
3608
  fullWidth: false,
3468
3609
  visibility: true,
3469
3610
  disableText: 'Please get in touch with your administrator to change this value.'
3611
+ }, {
3612
+ id: 3,
3613
+ label: 'Bookkeeper',
3614
+ description: 'This role is capable of reading all the action for own and other card employees',
3615
+ value: '',
3616
+ name: '',
3617
+ type: 'radio',
3618
+ isAssigned: false,
3619
+ fullWidth: false,
3620
+ visibility: true,
3621
+ disableText: 'Please get in touch with your administrator to change this value.'
3470
3622
  }]
3471
3623
  };
3472
3624
  var passportInfo = [{
@@ -3874,6 +4026,7 @@ var reducer = function reducer(state, action) {
3874
4026
  {
3875
4027
  var _action$payload8, _action$payload8$role, _action$payload9;
3876
4028
  var cardsDetails = _extends({}, state.cardsDetails);
4029
+ console.log(action === null || action === void 0 ? void 0 : action.payload, 'cardsDetails22');
3877
4030
  if (action !== null && action !== void 0 && (_action$payload8 = action.payload) !== null && _action$payload8 !== void 0 && (_action$payload8$role = _action$payload8.roles) !== null && _action$payload8$role !== void 0 && _action$payload8$role.length) {
3878
4031
  cardsDetails.cardsRoles = action.payload.roles.map(function (role) {
3879
4032
  return {
@@ -3890,6 +4043,7 @@ var reducer = function reducer(state, action) {
3890
4043
  };
3891
4044
  });
3892
4045
  }
4046
+ console.log(cardsDetails, 'cardsDetails2');
3893
4047
  return _extends({}, state, {
3894
4048
  cardsDetails: cardsDetails,
3895
4049
  isCardsDetailsRendered: true,
@@ -4504,6 +4658,7 @@ var ChevronNext = function ChevronNext(_ref) {
4504
4658
  }));
4505
4659
  };
4506
4660
 
4661
+ var sixteenDigitNumber = /^\d{16}$/;
4507
4662
  var MembershipForm = function MembershipForm(_ref) {
4508
4663
  var selectedMembershipChain = _ref.selectedMembershipChain,
4509
4664
  isOtherMembership = _ref.isOtherMembership,
@@ -4512,7 +4667,9 @@ var MembershipForm = function MembershipForm(_ref) {
4512
4667
  setMembershipName = _ref.setMembershipName,
4513
4668
  setMembershipNumber = _ref.setMembershipNumber,
4514
4669
  type = _ref.type,
4515
- isEdit = _ref.isEdit;
4670
+ isEdit = _ref.isEdit,
4671
+ _ref$isAAAloyaltySele = _ref.isAAAloyaltySelected,
4672
+ isAAAloyaltySelected = _ref$isAAAloyaltySele === void 0 ? false : _ref$isAAAloyaltySele;
4516
4673
  var FallbackIcon = function FallbackIcon() {
4517
4674
  var url = '';
4518
4675
  if (type === 'flight') {
@@ -4555,7 +4712,7 @@ var MembershipForm = function MembershipForm(_ref) {
4555
4712
  },
4556
4713
  iconComponent: null,
4557
4714
  style: {
4558
- width: '50%',
4715
+ width: '100%',
4559
4716
  paddingLeft: 0,
4560
4717
  borderRadius: 6
4561
4718
  }
@@ -4577,7 +4734,7 @@ var MembershipForm = function MembershipForm(_ref) {
4577
4734
  label: "Membership number",
4578
4735
  required: true
4579
4736
  }), /*#__PURE__*/React.createElement(IUISearch, {
4580
- placeholder: "e.g. ABCD1234",
4737
+ placeholder: isAAAloyaltySelected ? 'Enter 16-digit AAA membership ID' : 'e.g. ABCD1234',
4581
4738
  value: membershipNumber,
4582
4739
  onChangeHandler: function onChangeHandler(e) {
4583
4740
  var inputValue = e.target.value;
@@ -4587,11 +4744,16 @@ var MembershipForm = function MembershipForm(_ref) {
4587
4744
  },
4588
4745
  iconComponent: null,
4589
4746
  style: {
4590
- width: '50%',
4747
+ width: '100%',
4591
4748
  paddingLeft: 0,
4592
4749
  borderRadius: 6
4593
4750
  }
4594
- }));
4751
+ }), isAAAloyaltySelected && membershipNumber && !sixteenDigitNumber.test(membershipNumber) && /*#__PURE__*/React.createElement("div", {
4752
+ style: {
4753
+ color: '#cf2231',
4754
+ marginTop: 5
4755
+ }
4756
+ }, "Enter a valid 16-digit AAA membership ID"));
4595
4757
  };
4596
4758
 
4597
4759
  var TravelModeIcon = function TravelModeIcon(_ref) {
@@ -4757,6 +4919,43 @@ var LoyaltyPrograms = function LoyaltyPrograms(_ref) {
4757
4919
  }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Loader, null))));
4758
4920
  };
4759
4921
 
4922
+ var EditIcon = function EditIcon() {
4923
+ return /*#__PURE__*/React.createElement("svg", {
4924
+ width: "16",
4925
+ height: "16",
4926
+ viewBox: "0 0 16 16",
4927
+ fill: "none",
4928
+ xmlns: "http://www.w3.org/2000/svg"
4929
+ }, /*#__PURE__*/React.createElement("g", {
4930
+ clipPath: "url(#clip0_13010_74651)"
4931
+ }, /*#__PURE__*/React.createElement("path", {
4932
+ d: "M10.7197 1.72376C11.7029 0.740515 13.2971 0.740516 14.2803 1.72377C15.2636 2.70701 15.2636 4.30118 14.2803 5.28443L5.14645 14.4183C4.77137 14.7934 4.26267 15.0041 3.73223 15.0041H2C1.44772 15.0041 1 14.5564 1 14.0041V12.2719C1 11.7414 1.21071 11.2327 1.58579 10.8576L10.7197 1.72376ZM13.2197 2.78443C12.8222 2.38696 12.1778 2.38696 11.7803 2.78443L11.0607 3.5041L12.5 4.94344L13.2197 4.22376C13.6171 3.8263 13.6171 3.18189 13.2197 2.78443ZM11.4393 6.0041L10 4.56476L2.64645 11.9183C2.55268 12.0121 2.5 12.1393 2.5 12.2719V13.5041H3.73223C3.86484 13.5041 3.99202 13.4514 4.08579 13.3576L11.4393 6.0041Z",
4933
+ fill: "#EC5D25"
4934
+ })), /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
4935
+ id: "clip0_13010_74651"
4936
+ }, /*#__PURE__*/React.createElement("rect", {
4937
+ width: "16",
4938
+ height: "16",
4939
+ fill: "white",
4940
+ transform: "translate(0 0.00390625)"
4941
+ }))));
4942
+ };
4943
+
4944
+ var DeleteIcon = function DeleteIcon() {
4945
+ return /*#__PURE__*/React.createElement("svg", {
4946
+ width: "16",
4947
+ height: "16",
4948
+ viewBox: "0 0 16 16",
4949
+ fill: "none",
4950
+ xmlns: "http://www.w3.org/2000/svg"
4951
+ }, /*#__PURE__*/React.createElement("path", {
4952
+ fillRule: "evenodd",
4953
+ clipRule: "evenodd",
4954
+ d: "M7.33333 2.33716C7.14924 2.33716 7 2.4864 7 2.67049V3.33716H9V2.67049C9 2.4864 8.85076 2.33716 8.66667 2.33716H7.33333ZM10 3.33716V2.67049C10 1.93411 9.40305 1.33716 8.66667 1.33716H7.33333C6.59695 1.33716 6 1.93411 6 2.67049V3.33716H2.5C2.22386 3.33716 2 3.56102 2 3.83716C2 4.1133 2.22386 4.33716 2.5 4.33716H3.03122L3.57716 12.7993C3.64506 13.8516 4.51843 14.6705 5.57301 14.6705H10.427C11.4816 14.6705 12.3549 13.8516 12.4228 12.7993L12.9688 4.33716H13.5C13.7761 4.33716 14 4.1133 14 3.83716C14 3.56102 13.7761 3.33716 13.5 3.33716H10ZM11.9667 4.33716H4.0333L4.57509 12.7349C4.60903 13.2611 5.04572 13.6705 5.57301 13.6705H10.427C10.9543 13.6705 11.391 13.2611 11.4249 12.7349L11.9667 4.33716ZM6.5 6.00383C6.77614 6.00383 7 6.22768 7 6.50383V11.5038C7 11.78 6.77614 12.0038 6.5 12.0038C6.22386 12.0038 6 11.78 6 11.5038V6.50383C6 6.22768 6.22386 6.00383 6.5 6.00383ZM9.5 6.00383C9.77614 6.00383 10 6.22768 10 6.50383V11.5038C10 11.78 9.77614 12.0038 9.5 12.0038C9.22386 12.0038 9 11.78 9 11.5038V6.50383C9 6.22768 9.22386 6.00383 9.5 6.00383Z",
4955
+ fill: "#CF2231"
4956
+ }));
4957
+ };
4958
+
4760
4959
  var _excluded = ["ind"];
4761
4960
  var IUIToastMessageService$4 = services.IUIToastMessageService;
4762
4961
  var api$6 = configs.api;
@@ -4767,7 +4966,9 @@ var SavedMemberships = function SavedMemberships(_ref) {
4767
4966
  _ref$updateList = _ref.updateList,
4768
4967
  updateList = _ref$updateList === void 0 ? function () {} : _ref$updateList,
4769
4968
  _ref$handleEdit = _ref.handleEdit,
4770
- handleEdit = _ref$handleEdit === void 0 ? function () {} : _ref$handleEdit;
4969
+ handleEdit = _ref$handleEdit === void 0 ? function () {} : _ref$handleEdit,
4970
+ _ref$isProfile = _ref.isProfile,
4971
+ isProfile = _ref$isProfile === void 0 ? false : _ref$isProfile;
4771
4972
  var _useState = useState(false),
4772
4973
  open = _useState[0],
4773
4974
  setOpen = _useState[1];
@@ -4780,42 +4981,10 @@ var SavedMemberships = function SavedMemberships(_ref) {
4780
4981
  var _useSelector = useSelector(function (state) {
4781
4982
  return state.common;
4782
4983
  }),
4783
- userID = _useSelector.id;
4784
- var DeleteIcon = function DeleteIcon() {
4785
- return /*#__PURE__*/React.createElement("svg", {
4786
- width: "16",
4787
- height: "16",
4788
- viewBox: "0 0 16 16",
4789
- fill: "none",
4790
- xmlns: "http://www.w3.org/2000/svg"
4791
- }, /*#__PURE__*/React.createElement("path", {
4792
- fillRule: "evenodd",
4793
- clipRule: "evenodd",
4794
- d: "M7.33333 2.33716C7.14924 2.33716 7 2.4864 7 2.67049V3.33716H9V2.67049C9 2.4864 8.85076 2.33716 8.66667 2.33716H7.33333ZM10 3.33716V2.67049C10 1.93411 9.40305 1.33716 8.66667 1.33716H7.33333C6.59695 1.33716 6 1.93411 6 2.67049V3.33716H2.5C2.22386 3.33716 2 3.56102 2 3.83716C2 4.1133 2.22386 4.33716 2.5 4.33716H3.03122L3.57716 12.7993C3.64506 13.8516 4.51843 14.6705 5.57301 14.6705H10.427C11.4816 14.6705 12.3549 13.8516 12.4228 12.7993L12.9688 4.33716H13.5C13.7761 4.33716 14 4.1133 14 3.83716C14 3.56102 13.7761 3.33716 13.5 3.33716H10ZM11.9667 4.33716H4.0333L4.57509 12.7349C4.60903 13.2611 5.04572 13.6705 5.57301 13.6705H10.427C10.9543 13.6705 11.391 13.2611 11.4249 12.7349L11.9667 4.33716ZM6.5 6.00383C6.77614 6.00383 7 6.22768 7 6.50383V11.5038C7 11.78 6.77614 12.0038 6.5 12.0038C6.22386 12.0038 6 11.78 6 11.5038V6.50383C6 6.22768 6.22386 6.00383 6.5 6.00383ZM9.5 6.00383C9.77614 6.00383 10 6.22768 10 6.50383V11.5038C10 11.78 9.77614 12.0038 9.5 12.0038C9.22386 12.0038 9 11.78 9 11.5038V6.50383C9 6.22768 9.22386 6.00383 9.5 6.00383Z",
4795
- fill: "#CF2231"
4796
- }));
4797
- };
4798
- var EditIcon = function EditIcon() {
4799
- return /*#__PURE__*/React.createElement("svg", {
4800
- width: "16",
4801
- height: "16",
4802
- viewBox: "0 0 16 16",
4803
- fill: "none",
4804
- xmlns: "http://www.w3.org/2000/svg"
4805
- }, /*#__PURE__*/React.createElement("g", {
4806
- clipPath: "url(#clip0_13010_74651)"
4807
- }, /*#__PURE__*/React.createElement("path", {
4808
- d: "M10.7197 1.72376C11.7029 0.740515 13.2971 0.740516 14.2803 1.72377C15.2636 2.70701 15.2636 4.30118 14.2803 5.28443L5.14645 14.4183C4.77137 14.7934 4.26267 15.0041 3.73223 15.0041H2C1.44772 15.0041 1 14.5564 1 14.0041V12.2719C1 11.7414 1.21071 11.2327 1.58579 10.8576L10.7197 1.72376ZM13.2197 2.78443C12.8222 2.38696 12.1778 2.38696 11.7803 2.78443L11.0607 3.5041L12.5 4.94344L13.2197 4.22376C13.6171 3.8263 13.6171 3.18189 13.2197 2.78443ZM11.4393 6.0041L10 4.56476L2.64645 11.9183C2.55268 12.0121 2.5 12.1393 2.5 12.2719V13.5041H3.73223C3.86484 13.5041 3.99202 13.4514 4.08579 13.3576L11.4393 6.0041Z",
4809
- fill: "#EC5D25"
4810
- })), /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
4811
- id: "clip0_13010_74651"
4812
- }, /*#__PURE__*/React.createElement("rect", {
4813
- width: "16",
4814
- height: "16",
4815
- fill: "white",
4816
- transform: "translate(0 0.00390625)"
4817
- }))));
4818
- };
4984
+ id = _useSelector.id;
4985
+ var _useParams = useParams(),
4986
+ editUserId = _useParams.userId;
4987
+ var userID = isProfile ? id : editUserId;
4819
4988
  var handleClose = function handleClose() {
4820
4989
  setOpen(false);
4821
4990
  setDeleteItemData(null);
@@ -4980,7 +5149,9 @@ var AddMembershipButton = memo(function (_ref) {
4980
5149
  _ref$updateList = _ref.updateList,
4981
5150
  updateList = _ref$updateList === void 0 ? function () {} : _ref$updateList,
4982
5151
  _ref$handleEdit = _ref.handleEdit,
4983
- handleEdit = _ref$handleEdit === void 0 ? function () {} : _ref$handleEdit;
5152
+ handleEdit = _ref$handleEdit === void 0 ? function () {} : _ref$handleEdit,
5153
+ _ref$isProfile = _ref.isProfile,
5154
+ isProfile = _ref$isProfile === void 0 ? false : _ref$isProfile;
4984
5155
  var handleAddMembership = function handleAddMembership(type) {
4985
5156
  var currentModalState = _extends({}, modalState);
4986
5157
  currentModalState.open = true;
@@ -5013,7 +5184,8 @@ var AddMembershipButton = memo(function (_ref) {
5013
5184
  list: list,
5014
5185
  type: type,
5015
5186
  updateList: updateList,
5016
- handleEdit: handleEdit
5187
+ handleEdit: handleEdit,
5188
+ isProfile: isProfile
5017
5189
  }), /*#__PURE__*/React.createElement(IUIButton, {
5018
5190
  buttonText: "Add membership",
5019
5191
  type: "text",
@@ -5030,6 +5202,7 @@ var AddMembershipButton = memo(function (_ref) {
5030
5202
 
5031
5203
  var IUIToastMessageService$5 = services.IUIToastMessageService;
5032
5204
  var api$7 = configs.api;
5205
+ var sixteenDigitNumber$1 = /^\d{16}$/;
5033
5206
  var Membership = function Membership(_ref) {
5034
5207
  var _clsx;
5035
5208
  var _ref$membershipInfoIn = _ref.membershipInfoInput,
@@ -5049,8 +5222,9 @@ var Membership = function Membership(_ref) {
5049
5222
  savedMemberships = _useState[0],
5050
5223
  setSavedMemberships = _useState[1];
5051
5224
  var groupedMembershipData = savedMemberships.reduce(function (acc, item) {
5052
- acc[item.membership_type] = acc[item.membership_type] || [];
5053
- acc[item.membership_type].push(item);
5225
+ var _acc$item$membership_;
5226
+ acc[item === null || item === void 0 ? void 0 : item.membership_type] = (acc === null || acc === void 0 ? void 0 : acc[item === null || item === void 0 ? void 0 : item.membership_type]) || [];
5227
+ acc === null || acc === void 0 ? void 0 : (_acc$item$membership_ = acc[item === null || item === void 0 ? void 0 : item.membership_type]) === null || _acc$item$membership_ === void 0 ? void 0 : _acc$item$membership_.push(item);
5054
5228
  return acc;
5055
5229
  }, {
5056
5230
  flight: [],
@@ -5109,6 +5283,8 @@ var Membership = function Membership(_ref) {
5109
5283
  setMembershipNumber = _useState14[1];
5110
5284
  var wrapperRef = useRef(null);
5111
5285
  var nextRef = useRef(null);
5286
+ var isEditing = editIndex !== null;
5287
+ var isAAAloyaltySelected = (selectedMembershipChain === null || selectedMembershipChain === void 0 ? void 0 : selectedMembershipChain.program_name) === 'AAA' || (selectedMembershipChain === null || selectedMembershipChain === void 0 ? void 0 : selectedMembershipChain.loyalty_program_name) === 'AAA';
5112
5288
  var fetchItems = function fetchItems(query, reset) {
5113
5289
  if (query === void 0) {
5114
5290
  query = '';
@@ -5214,7 +5390,7 @@ var Membership = function Membership(_ref) {
5214
5390
  return;
5215
5391
  }
5216
5392
  if (item) {
5217
- if (index) {
5393
+ if (isEditing) {
5218
5394
  groupedMembershipData[type][index] = _extends({}, groupedMembershipData[type][index], {
5219
5395
  number: item.number,
5220
5396
  name: item.name
@@ -5222,11 +5398,12 @@ var Membership = function Membership(_ref) {
5222
5398
  } else groupedMembershipData[type] = [].concat(groupedMembershipData[type], [item]);
5223
5399
  }
5224
5400
  if (index !== null && !item) {
5225
- if (index < 0 || index >= groupedMembershipData[type].length) {
5401
+ var _groupedMembershipDat, _groupedMembershipDat2;
5402
+ if (index < 0 || index >= (groupedMembershipData === null || groupedMembershipData === void 0 ? void 0 : (_groupedMembershipDat = groupedMembershipData[type]) === null || _groupedMembershipDat === void 0 ? void 0 : _groupedMembershipDat.length)) {
5226
5403
  console.error("Invalid index: " + index);
5227
5404
  return;
5228
5405
  }
5229
- groupedMembershipData[type] = [].concat(groupedMembershipData[type].slice(0, index), groupedMembershipData[type].slice(index + 1));
5406
+ groupedMembershipData[type] = [].concat(groupedMembershipData === null || groupedMembershipData === void 0 ? void 0 : (_groupedMembershipDat2 = groupedMembershipData[type]) === null || _groupedMembershipDat2 === void 0 ? void 0 : _groupedMembershipDat2.slice(0, index), groupedMembershipData[type].slice(index + 1));
5230
5407
  }
5231
5408
  var flight = groupedMembershipData.flight,
5232
5409
  hotel = groupedMembershipData.hotel,
@@ -5236,34 +5413,55 @@ var Membership = function Membership(_ref) {
5236
5413
  };
5237
5414
  var handleSubmit = function handleSubmit() {
5238
5415
  try {
5416
+ var _ref2, _ref3;
5417
+ if (isAAAloyaltySelected && !sixteenDigitNumber$1.test(membershipNumber)) {
5418
+ IUIToastMessageService$5.warningNotify('Enter 16-digit AAA membership ID');
5419
+ return Promise.resolve();
5420
+ }
5239
5421
  var url = "/api/v1/user-management/users/" + userID + "/membership";
5240
- var payload = editIndex ? _extends({}, selectedMembershipChain, {
5241
- number: membershipNumber,
5242
- name: membershipName || ''
5422
+ var payload = isEditing ? _extends({}, selectedMembershipChain, {
5423
+ number: membershipNumber === null || membershipNumber === void 0 ? void 0 : membershipNumber.trim(),
5424
+ name: (_ref2 = membershipName || '') === null || _ref2 === void 0 ? void 0 : _ref2.trim()
5243
5425
  }) : {
5244
5426
  membership_type: type,
5245
- number: membershipNumber,
5427
+ number: membershipNumber === null || membershipNumber === void 0 ? void 0 : membershipNumber.trim(),
5246
5428
  iata_code: null,
5247
5429
  user: userID,
5248
5430
  loyalty_program_id: selectedMembershipChain === null || selectedMembershipChain === void 0 ? void 0 : selectedMembershipChain.loyalty_program_id,
5249
- name: membershipName || ''
5431
+ name: (_ref3 = membershipName || '') === null || _ref3 === void 0 ? void 0 : _ref3.trim()
5250
5432
  };
5251
5433
  setIsUpdating(true);
5252
- var _temp2 = _finallyRethrows(function () {
5434
+ var _temp4 = _finallyRethrows(function () {
5253
5435
  return _catch(function () {
5254
- return Promise.resolve(editIndex ? api$7.put(url, payload) : api$7.post(url, payload)).then(function (response) {
5255
- if ((response === null || response === void 0 ? void 0 : response.status) === 201 || (response === null || response === void 0 ? void 0 : response.status) === 200) {
5256
- var _response$data3;
5257
- var updatedResponse = response === null || response === void 0 ? void 0 : response.data;
5436
+ function _temp3() {
5437
+ var _response, _response2;
5438
+ if (((_response = response) === null || _response === void 0 ? void 0 : _response.status) === 201 || ((_response2 = response) === null || _response2 === void 0 ? void 0 : _response2.status) === 200) {
5439
+ var _response3;
5440
+ var updatedResponse = (_response3 = response) === null || _response3 === void 0 ? void 0 : _response3.data;
5258
5441
  updatedResponse.program_name = selectedMembershipChain === null || selectedMembershipChain === void 0 ? void 0 : selectedMembershipChain.program_name;
5259
5442
  updatedResponse.loyalty_program_image_url = selectedMembershipChain === null || selectedMembershipChain === void 0 ? void 0 : selectedMembershipChain.loyalty_program_image_url;
5260
5443
  if (isOtherMembership) updatedResponse.loyalty_program_name = 'Other';
5261
- updateList(response === null || response === void 0 ? void 0 : (_response$data3 = response.data) === null || _response$data3 === void 0 ? void 0 : _response$data3.membership_type, editIndex, updatedResponse);
5262
- IUIToastMessageService$5.sNotify(editIndex ? "Membership updated." : "New membership added.");
5444
+ updateList(type, editIndex, updatedResponse);
5445
+ if (userID) IUIToastMessageService$5.sNotify(isEditing ? "Membership updated." : "New membership added.");
5263
5446
  } else {
5264
5447
  IUIToastMessageService$5.warningNotify('Failed to save membership');
5265
5448
  }
5266
- });
5449
+ }
5450
+ var response = {};
5451
+ var _temp2 = function () {
5452
+ if (userID) {
5453
+ return Promise.resolve(isEditing ? api$7.put(url, payload) : api$7.post(url, payload)).then(function (_api$put) {
5454
+ response = _api$put;
5455
+ });
5456
+ } else {
5457
+ delete payload.user;
5458
+ response = {
5459
+ data: payload,
5460
+ status: 200
5461
+ };
5462
+ }
5463
+ }();
5464
+ return _temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2);
5267
5465
  }, function (error) {
5268
5466
  console.error(error);
5269
5467
  IUIToastMessageService$5.warningNotify('Something went wrong!');
@@ -5273,7 +5471,7 @@ var Membership = function Membership(_ref) {
5273
5471
  if (_wasThrown) throw _result;
5274
5472
  return _result;
5275
5473
  });
5276
- return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
5474
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
5277
5475
  } catch (e) {
5278
5476
  return Promise.reject(e);
5279
5477
  }
@@ -5298,10 +5496,10 @@ var Membership = function Membership(_ref) {
5298
5496
  closeHandler: handleClose,
5299
5497
  modalClass: clsx(styles$3.loyaltymodal, (_clsx = {}, _clsx[styles$3.loyaltyList] = !selectedMembershipChain, _clsx)),
5300
5498
  cancelLabel: selectedMembershipChain ? 'Cancel' : '',
5301
- submitLabel: selectedMembershipChain ? isUpdating ? 'Saving...' : editIndex ? 'Save' : 'Add' : '',
5499
+ submitLabel: selectedMembershipChain ? isUpdating ? 'Saving...' : isEditing ? 'Save' : 'Add' : '',
5302
5500
  submitHandler: handleSubmit,
5303
- isDisabledSubmitBtn: isUpdating || !membershipNumber || isOtherMembership && !membershipName,
5304
- width: "640px",
5501
+ isDisabledSubmitBtn: isUpdating || !membershipNumber || isOtherMembership && !membershipName || isAAAloyaltySelected && !sixteenDigitNumber$1.test(membershipNumber),
5502
+ width: selectedMembershipChain ? '480px' : '640px',
5305
5503
  headerText: selectedMembershipChain ? '' : title,
5306
5504
  subHanderText: selectedMembershipChain ? '' : subtitle,
5307
5505
  modalBodyStyle: {
@@ -5318,7 +5516,8 @@ var Membership = function Membership(_ref) {
5318
5516
  setMembershipName: setMembershipName,
5319
5517
  setMembershipNumber: setMembershipNumber,
5320
5518
  type: type,
5321
- isEdit: !!editIndex
5519
+ isEdit: isEditing,
5520
+ isAAAloyaltySelected: isAAAloyaltySelected
5322
5521
  }) : /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("span", {
5323
5522
  style: {
5324
5523
  color: '#374151',
@@ -5379,7 +5578,8 @@ var Membership = function Membership(_ref) {
5379
5578
  modalState: modalState,
5380
5579
  list: groupedMembershipData[memType],
5381
5580
  updateList: updateList,
5382
- handleEdit: handleEdit
5581
+ handleEdit: handleEdit,
5582
+ isProfile: isProfile
5383
5583
  }), ind < 2 && /*#__PURE__*/React.createElement(IUIDivider, {
5384
5584
  className: styles$3.divider
5385
5585
  }));
@@ -5787,7 +5987,9 @@ var UserAddEdit = function UserAddEdit(props) {
5787
5987
  editUserId = props.editUserId,
5788
5988
  config = props.config,
5789
5989
  _props$isProfile = props.isProfile,
5790
- isProfile = _props$isProfile === void 0 ? false : _props$isProfile;
5990
+ isProfile = _props$isProfile === void 0 ? false : _props$isProfile,
5991
+ _props$paymentMethod = props.paymentMethod,
5992
+ paymentMethod = _props$paymentMethod === void 0 ? null : _props$paymentMethod;
5791
5993
  env$4.init(config, isProfile);
5792
5994
  var queryParams = new URLSearchParams(window.location.search);
5793
5995
  var verifyUserId = Number(queryParams.get(config.routes.users.add.queryParamKeys.verifyUserId));
@@ -6003,26 +6205,7 @@ var UserAddEdit = function UserAddEdit(props) {
6003
6205
  }).then(function (res) {
6004
6206
  var _res$roles;
6005
6207
  if (res !== null && res !== void 0 && (_res$roles = res.roles) !== null && _res$roles !== void 0 && _res$roles.length) {
6006
- dispatch(setCardsDetails(res));
6007
- } else {
6008
- IUIToastMessageService$6.warningNotify('Opps, Something went wrong.');
6009
- }
6010
- })["catch"](function (error) {
6011
- console.log("errorrr", error);
6012
- });
6013
- };
6014
- var fetchLoggedUserCardsDetails = function fetchLoggedUserCardsDetails() {
6015
- fetch(userAddEditUrl.cardsAddUsersDetails(), {
6016
- method: 'GET',
6017
- headers: {
6018
- 'Content-Type': 'application/json',
6019
- 'authorization': "Bearer " + IUILocalStorageService$5.getAccessToken()
6020
- }
6021
- }).then(function (response) {
6022
- return response.json();
6023
- }).then(function (res) {
6024
- var _res$roles2;
6025
- if (res !== null && res !== void 0 && (_res$roles2 = res.roles) !== null && _res$roles2 !== void 0 && _res$roles2.length) {
6208
+ console.log(res, 'cardsDetails222');
6026
6209
  dispatch(setCardsDetails(res));
6027
6210
  } else {
6028
6211
  IUIToastMessageService$6.warningNotify('Opps, Something went wrong.');
@@ -6722,10 +6905,11 @@ var UserAddEdit = function UserAddEdit(props) {
6722
6905
  }
6723
6906
  }, [isTokenVerified]);
6724
6907
  useEffect(function () {
6908
+ console.log(isProfile, 'isProfile', id, 'id', editUserId, 'editUserId');
6725
6909
  if (isRendered === true) {
6726
6910
  renderFields === null || renderFields === void 0 ? void 0 : renderFields.products.forEach(function (prod) {
6727
6911
  if ((prod === null || prod === void 0 ? void 0 : prod.name) === 'card') {
6728
- editUserId ? fetchEditUserCardsDetails(editUserId) : fetchLoggedUserCardsDetails();
6912
+ fetchEditUserCardsDetails(isProfile ? id : editUserId);
6729
6913
  }
6730
6914
  });
6731
6915
  setPersonalInfoInput(_extends({}, personalInfoInput, {
@@ -7428,32 +7612,6 @@ var UserAddEdit = function UserAddEdit(props) {
7428
7612
  }()
7429
7613
  });
7430
7614
  });
7431
- if (res.client_admin) {
7432
- setTravelApproversInput(function (prevState) {
7433
- var nextState = _extends({}, prevState);
7434
- for (var key in nextState) {
7435
- if (Object.hasOwnProperty.call(nextState, key)) {
7436
- nextState[key] = {
7437
- value: res.client_admin,
7438
- label: res.client_admin
7439
- };
7440
- }
7441
- }
7442
- return nextState;
7443
- });
7444
- setExpenseApproversInput(function (prevState) {
7445
- var nextState = _extends({}, prevState);
7446
- for (var key in nextState) {
7447
- if (Object.hasOwnProperty.call(nextState, key)) {
7448
- nextState[key] = {
7449
- value: res.client_admin,
7450
- label: res.client_admin
7451
- };
7452
- }
7453
- }
7454
- return nextState;
7455
- });
7456
- }
7457
7615
  })["catch"](function (err) {
7458
7616
  console.log(err);
7459
7617
  })["finally"](function () {
@@ -7724,9 +7882,8 @@ var UserAddEdit = function UserAddEdit(props) {
7724
7882
  maxApprovers: maxTravelApprovers,
7725
7883
  isProfile: isProfile,
7726
7884
  editUserId: editUserId,
7727
- roles: renderFields.travelRoles
7728
- }), /*#__PURE__*/React.createElement(IUIDivider, {
7729
- className: styles.dividerColor
7885
+ roles: renderFields.travelRoles,
7886
+ paymentMethod: paymentMethod
7730
7887
  }), /*#__PURE__*/React.createElement(AdditionalInfo, {
7731
7888
  membershipInfoInput: membershipInfoInput,
7732
7889
  onMemInfoInputChange: onMemInfoInputChange,
@@ -9318,7 +9475,7 @@ var BulkDownloadIcon = function BulkDownloadIcon(props) {
9318
9475
  }));
9319
9476
  };
9320
9477
 
9321
- var classes = {"containedBtn":"_2A4_u","customMiniBox":"_QGIKG","muiBtn":"_3iFbO","outlinedBtn":"_3lQYD","menuList":"_1C8bJ","menuListContainer":"_1N83W","menuItemContainer":"_3VtcE","menuItemtext":"_2xqnU","subTxt":"_3CVzX"};
9478
+ var classes$1 = {"containedBtn":"_2A4_u","customMiniBox":"_QGIKG","muiBtn":"_3iFbO","outlinedBtn":"_3lQYD","menuList":"_1C8bJ","menuListContainer":"_1N83W","menuItemContainer":"_3VtcE","menuItemtext":"_2xqnU","subTxt":"_3CVzX"};
9322
9479
 
9323
9480
  var DropdownBtn = function DropdownBtn(props) {
9324
9481
  var _clsx;
@@ -9377,7 +9534,7 @@ var DropdownBtn = function DropdownBtn(props) {
9377
9534
  }, [open]);
9378
9535
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, {
9379
9536
  endIcon: endIcon,
9380
- className: clsx(classes.muiBtn, className, (_clsx = {}, _clsx[classes.outlinedBtn] = outlinedBtn, _clsx)),
9537
+ className: clsx(classes$1.muiBtn, className, (_clsx = {}, _clsx[classes$1.outlinedBtn] = outlinedBtn, _clsx)),
9381
9538
  disableRipple: disableRipple,
9382
9539
  variant: "outlined",
9383
9540
  ref: anchorRef,
@@ -9403,13 +9560,13 @@ var DropdownBtn = function DropdownBtn(props) {
9403
9560
  transformOrigin: placement === 'bottom' ? 'center top' : 'center bottom'
9404
9561
  }
9405
9562
  }), /*#__PURE__*/React.createElement(Paper, {
9406
- className: classes.menuListContainer,
9563
+ className: classes$1.menuListContainer,
9407
9564
  elevation: 0
9408
9565
  }, /*#__PURE__*/React.createElement(ClickAwayListener, {
9409
9566
  onClickAway: handleClose
9410
9567
  }, /*#__PURE__*/React.createElement(MenuList, {
9411
9568
  autoFocusItem: open,
9412
- className: clsx(classes.menuList, (_clsx2 = {}, _clsx2[classes.outlinedBtn] = outlinedBtn, _clsx2), menuListClass),
9569
+ className: clsx(classes$1.menuList, (_clsx2 = {}, _clsx2[classes$1.outlinedBtn] = outlinedBtn, _clsx2), menuListClass),
9413
9570
  id: "menu-list-grow",
9414
9571
  onKeyDown: function onKeyDown(e) {
9415
9572
  return handleListKeyDown(e);
@@ -9420,13 +9577,13 @@ var DropdownBtn = function DropdownBtn(props) {
9420
9577
  return handleMenuClick(val);
9421
9578
  },
9422
9579
  key: _i,
9423
- className: clsx(classes.menuItemContainer, val.disable && 'iui__cursor-not-allowed'),
9580
+ className: clsx(classes$1.menuItemContainer, val.disable && 'iui__cursor-not-allowed'),
9424
9581
  disableRipple: true
9425
9582
  }, /*#__PURE__*/React.createElement(Typography, {
9426
- className: clsx(classes.menuItemtext, val && val.disable && 'iui__opacity--60')
9583
+ className: clsx(classes$1.menuItemtext, val && val.disable && 'iui__opacity--60')
9427
9584
  }, val.label), val.subText && /*#__PURE__*/React.createElement(IUITypography, {
9428
9585
  variant: "subtitle2",
9429
- className: clsx(classes.menuItemtext, classes.subTxt)
9586
+ className: clsx(classes$1.menuItemtext, classes$1.subTxt)
9430
9587
  }, val.subText));
9431
9588
  })))));
9432
9589
  }));