{"version":3,"file":"static/js/main-43dd7041.cbd673ae.js","mappings":"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","sources":["actions/account.actions.js","actions/active-inventory-security.actions.ts","actions/add-to-portfolio.actions.ts","actions/address.actions.ts","actions/admin-inventory-edit.actions.ts","actions/all.bwics.actions.js","actions/amr-arranger-pipeline.actions.ts","actions/amr-pipeline-common.actions.ts","actions/amr-pipeline-detailed.actions.ts","actions/amr-pipeline.actions.ts","actions/amr-transaction-analytics.actions.ts","actions/amr-transaction-history.actions.ts","actions/api-operation.actions.ts","actions/asset-manager.actions.ts","actions/auto-feedback-settings-actions.ts","actions/banks.actions.ts","actions/bd-inventory-documents.actions.ts","actions/bd-inventory.actions.ts","actions/bid-confirmation.actions.ts","actions/bid-on-behalf-parse.actions.ts","actions/bid-on-behalf.actions.ts","actions/bid-placement.actions.js","actions/bidding.actions.js"],"sourcesContent":["import FingerprintJS from '@fingerprintjs/fingerprintjs'\r\nimport { accountActions as actionTypes, errorMessages, routes } from '../constants';\r\nimport {\r\n allBWICSActions,\r\n amrPipelineCommonActions,\r\n bwicHistoryActions,\r\n companiesActions,\r\n manageParsedBwicsActions,\r\n notificationActions,\r\n portfolioActions,\r\n profileActions\r\n} from '.';\r\nimport { accountService } from '../services';\r\nimport { jsonUtils, stringUtils } from '../utils';\r\nimport { verifyIdentityActions } from './verify.identity.actions';\r\nimport { logger } from '../logging/logger';\r\nimport { userProfilePhotoActions } from './user-profile-photo.actions';\r\nimport { salesRepresentativeActions } from './sales-representative.actions';\r\nimport { bidOnBehalfActions } from './bid-on-behalf.actions';\r\nimport { imUserConfigActions } from './im-user-config.actions';\r\nimport { resetLiveBiddingDataRequestState } from '../effects/data-accessors/useLiveBiddingData';\r\nimport { resetSettlementAgentAgreementsRequestState } from '../effects/useSettlementAgentAgreements';\r\nimport { history } from '../history';\r\n\r\nexport const accountActions = {\r\n login,\r\n loginSuccess,\r\n resetPassword,\r\n resetPasswordReset,\r\n setUpPassword,\r\n passwordValidationFailure,\r\n setUpPasswordInit,\r\n setUpPasswordReset,\r\n changePhoneNumber,\r\n changePhoneNumberReset,\r\n changePassword,\r\n changePasswordReset,\r\n resetStore,\r\n refreshAuthentication,\r\n getFingerprint\r\n};\r\n\r\nasync function getFingerprint() {\r\n try {\r\n const fpPromise = FingerprintJS.load()\r\n const fp = await fpPromise\r\n const result = await fp.get()\r\n const components = { ...result.components };\r\n\r\n delete components.audio;\r\n delete components.canvas;\r\n delete components.cookiesEnabled;\r\n delete components.touchSupport;\r\n delete components.fontPreferences;\r\n delete components.screenFrame;\r\n delete components.screenResolution;\r\n\r\n return FingerprintJS.hashComponents(components);\r\n } catch (e) {\r\n logger.exception(e, 'Login: Could not get client fingerprint');\r\n return ''\r\n }\r\n}\r\n\r\nfunction login(email, password, pathname = '/') {\r\n return async dispatch => {\r\n const fingerprint = await getFingerprint();\r\n\r\n dispatch(loading(true));\r\n\r\n accountService.login(email, password, fingerprint)\r\n .then(success)\r\n .catch(error => dispatch(failure(error)))\r\n .finally(() => dispatch(loading(false)));\r\n\r\n function success(response) {\r\n\r\n if (response.roles) {\r\n dispatch(loginSuccess(response, pathname));\r\n } else {\r\n const { smsAllowed, phoneText } = response;\r\n dispatch(verifyIdentityActions.verify(email, smsAllowed ? phoneText : undefined, pathname));\r\n }\r\n }\r\n };\r\n\r\n function failure(error) {\r\n return dispatch => {\r\n if (error.status === 400) {\r\n dispatch({ type: actionTypes.LOGIN_FAILURE, error: { errorMessage: errorMessages.signInFailed } });\r\n } else if (error.status !== 500) {\r\n dispatch(notificationActions.notificationAddErrorMessage(errorMessages.unexpectedError));\r\n } else {\r\n dispatch({ type: actionTypes.LOGIN_FAILURE, error: { errorMessage: errorMessages.unexpectedError } });\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\nfunction loginSuccess(user, pathname) {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.LOGIN_SUCCESS, user });\r\n dispatch(userProfilePhotoActions.fetchUserImage(user.id));\r\n dispatch(salesRepresentativeActions.loadUserSalesRepresentatives());\r\n dispatch(amrPipelineCommonActions.registerUser());\r\n\r\n history.replace(pathname || routes.root);\r\n };\r\n}\r\n\r\nfunction loading(isLoading) {\r\n return {\r\n type: actionTypes.LOGIN_LOADING,\r\n isLoading\r\n };\r\n}\r\n\r\nfunction resetPassword(email) {\r\n return dispatch => {\r\n accountService\r\n .resetPassword(email)\r\n .then(success, failure);\r\n\r\n function success() {\r\n history.replace(routes.forgotPasswordFinished, { isFinished: true });\r\n }\r\n\r\n function failure() {\r\n dispatch({\r\n type: actionTypes.RESET_PASSWORD_FAILURE,\r\n errorMessage: errorMessages.unexpectedError\r\n });\r\n }\r\n };\r\n}\r\n\r\nfunction resetPasswordReset() {\r\n return { type: actionTypes.RESET_PASSWORD_RESET };\r\n}\r\n\r\nfunction setUpPasswordInit(email, resetToken) {\r\n return dispatch => {\r\n if (stringUtils.isNullOrWhiteSpace(email) ||\r\n stringUtils.isNullOrWhiteSpace(resetToken)) {\r\n dispatch(setupPasswordLinkExpired());\r\n } else {\r\n dispatch(setuPasswordInitComplete(email, resetToken));\r\n }\r\n };\r\n}\r\n\r\nfunction setuPasswordInitComplete(email, resetToken) {\r\n return {\r\n type: actionTypes.SETUP_PASSWORD_INIT_COMPLETE,\r\n email,\r\n resetToken\r\n };\r\n}\r\n\r\nfunction setUpPassword(newPassword, confirmPassword) {\r\n return (dispatch, getState) => {\r\n const { email, resetToken } = getState().authentication;\r\n if (stringUtils.isNullOrWhiteSpace(email) ||\r\n stringUtils.isNullOrWhiteSpace(resetToken)) {\r\n return dispatch(setUpPasswordFailure({ errorMessage: errorMessages.setupPasswordLinkInvalid }));\r\n }\r\n\r\n const model = {\r\n email,\r\n resetToken,\r\n newPassword,\r\n confirmPassword\r\n };\r\n\r\n accountService\r\n .setUpPassword(model)\r\n .then(success, failure);\r\n\r\n function success(isLinkValid) {\r\n if (isLinkValid) {\r\n history.replace(routes.setPasswordFinished, { isFinished: true });\r\n } else {\r\n dispatch(setupPasswordLinkExpired());\r\n }\r\n }\r\n\r\n function failure(e) {\r\n if (e.message && e.message.length > 0) {\r\n const json = jsonUtils.tryParse(e.message);\r\n const errorMessage = json ? formatErrorsFromJson(json) : e.message;\r\n dispatch(setUpPasswordFailure({ errorMessage }));\r\n } else {\r\n dispatch(setUpPasswordFailure({ errorMessage: errorMessages.unexpectedError }));\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction setupPasswordLinkExpired() {\r\n return history.replace(routes.setPasswordExpired, { isExpired: true });\r\n}\r\n\r\nfunction passwordValidationFailure(errorMessage) {\r\n return dispatch => dispatch(setUpPasswordFailure({ errorMessage }));\r\n}\r\n\r\nfunction setUpPasswordFailure(error) {\r\n return {\r\n type: actionTypes.SETUP_PASSWORD_FAILURE,\r\n error\r\n };\r\n}\r\n\r\nfunction setUpPasswordReset() {\r\n return { type: actionTypes.SETUP_PASSWORD_RESET };\r\n}\r\n\r\nfunction changePhoneNumber(phone) {\r\n return (dispatch) => {\r\n accountService\r\n .changePhoneNumber(phone)\r\n .then(success, failure);\r\n\r\n function success() {\r\n dispatch(profileActions.savePhoneNumber(phone));\r\n dispatch(profileActions.toggleEditPhoneMode(false));\r\n }\r\n\r\n function failure(e) {\r\n if (e.status === 400) {\r\n const json = jsonUtils.tryParse(e.message);\r\n const errorMessage = json ? formatErrorsFromJson(json) : e.message;\r\n dispatch(profileActions.savePhoneNumberFailure(errorMessage));\r\n } else {\r\n dispatch(profileActions.savePhoneNumberFailure(errorMessages.unexpectedError));\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction changePhoneNumberReset() {\r\n return { type: actionTypes.CHANGE_PHONE_NUMBER_RESET };\r\n}\r\n\r\nfunction changePassword(currentPassword, newPassword, confirmPassword) {\r\n return async dispatch => {\r\n const deviceId = await getFingerprint();\r\n\r\n const model = {\r\n currentPassword,\r\n newPassword,\r\n confirmPassword,\r\n deviceId\r\n };\r\n\r\n accountService\r\n .changePassword(model)\r\n .then(success)\r\n .catch(failure);\r\n\r\n function success() {\r\n dispatch({ type: actionTypes.CHANGE_PASSWORD_SUCCESS });\r\n }\r\n\r\n function failure(e) {\r\n if (e.status === 400) {\r\n dispatch({\r\n type: actionTypes.CHANGE_PASSWORD_FAILURE,\r\n error: { errorMessage: errorMessages.wrongCurrentPassword }\r\n });\r\n } else {\r\n dispatch({\r\n type: actionTypes.CHANGE_PASSWORD_FAILURE,\r\n error: { errorMessage: errorMessages.unexpectedError }\r\n });\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction changePasswordReset() {\r\n return { type: actionTypes.CHANGE_PASSWORD_RESET };\r\n}\r\n\r\nfunction resetStore() {\r\n return dispatch => {\r\n sessionStorage.clear();\r\n dispatch(allBWICSActions.reset());\r\n dispatch(manageParsedBwicsActions.reset(true));\r\n dispatch(portfolioActions.reset(true));\r\n dispatch(companiesActions.reset());\r\n dispatch(profileActions.reset());\r\n dispatch(userProfilePhotoActions.reset());\r\n dispatch(bidOnBehalfActions.reset());\r\n dispatch(imUserConfigActions.reset());\r\n dispatch(bwicHistoryActions.reset());\r\n dispatch(amrPipelineCommonActions.reset());\r\n\r\n resetLiveBiddingDataRequestState();\r\n resetSettlementAgentAgreementsRequestState();\r\n };\r\n}\r\n\r\nfunction refreshAuthentication() {\r\n return { type: actionTypes.LOGIN_REFRESH_AUTHENTICATION };\r\n}\r\n\r\n\r\n//TO DO: Code refactoring required\r\nfunction formatErrorsFromJson(json) {\r\n const keys = Object.keys(json);\r\n\r\n return keys\r\n .map(k => json[k].join(' '))\r\n .join(' ');\r\n}\r\n","import { createAction } from \"typesafe-actions\";\r\n\r\nconst requestActiveInventorySecurities = createAction(\"entities/active-inventories-securities/REQUEST\");\r\n\r\nconst requestActiveInventorySecuritiesSuccess = createAction('entities/active-inventories-securities/REQUEST_SUCCESS',\r\n resolve => (securityIds: number[]) => resolve({ securityIds }))\r\n\r\nconst requestActiveInventorySecuritiesError = createAction(\"entities/active-inventories-securities/REQUEST_ERROR\");\r\n\r\nconst reset = createAction(\"entities/active-inventories-securities/RESET\");\r\n\r\nexport const activeInventorySecurityActions = {\r\n requestActiveInventorySecurities,\r\n requestActiveInventorySecuritiesSuccess,\r\n requestActiveInventorySecuritiesError,\r\n reset\r\n}\r\n","import { createAction } from \"typesafe-actions\";\r\nimport { ApiError } from \"../types/ApiError\";\r\nimport { PortfolioSlim } from \"../types/portfolio/PortfolioSlim\";\r\nimport { AddToPortfolioPosition } from \"../components/portfolio/add-to-portfolio/AddToPortfolioPopup\";\r\n\r\nconst setPopupVisibility = createAction('addToPortfolio/POPUP_VISIBLE',\r\n resolve => (visible: boolean ) =>\r\n resolve({ visible })\r\n);\r\n\r\nconst reset = createAction('addToPortfolio/RESET');\r\n\r\nconst setSelectedPortfolio = createAction('addToPortfolio/SET_SELECTED_PORTFOLIO',\r\n resolve => (selectedPortfolio?: PortfolioSlim) => resolve({ selectedPortfolio })\r\n);\r\nconst addSecurityToPortfolio = createAction('addToPortfolio/ADD_SECURITY_TO_PORTFOLIO',\r\n resolve => (position: AddToPortfolioPosition, size: number, newPortfolioName?: string) => resolve({ position, size, newPortfolioName })\r\n);\r\n\r\nconst setSubmittingProgress = createAction('addToPortfolio/SAVING_PROGRESS',\r\n resolve => (isSaving: boolean) => resolve({ isSaving })\r\n);\r\n\r\nconst storeError = createAction('addToPortfolio/ERROR',\r\n resolve => (error?: ApiError) => resolve({ error })\r\n);\r\n\r\nexport const addToPortfolioActions = {\r\n setPopupVisibility,\r\n addSecurityToPortfolio,\r\n setSelectedPortfolio,\r\n setSubmittingProgress,\r\n storeError,\r\n reset\r\n};\r\n","import { createAction } from 'typesafe-actions';\r\nimport { City } from '../types/location/City';\r\nimport { Country } from '../types/location/Country';\r\nimport { State } from '../types/location/State';\r\n\r\nconst loadCountries = createAction('address/countries/REQUEST');\r\n\r\nconst loadCountriesResponse = createAction(\r\n 'address/countries/RESPONSE',\r\n resolve => (countries: Country[]) => resolve(countries),\r\n);\r\n\r\nconst loadStates = createAction(\r\n 'address/states/REQUEST',\r\n resolve => (countryId: number) => resolve({ countryId }),\r\n);\r\n\r\nconst loadStatesResponse = createAction(\r\n 'address/states/RESPONSE',\r\n resolve => (states: State[]) => resolve(states),\r\n);\r\n\r\nconst loadCities = createAction(\r\n 'address/cities/REQUEST',\r\n resolve => (countryId: number, stateId?: number) => resolve({ countryId, stateId }),\r\n);\r\n\r\nconst loadCitiesResponse = createAction(\r\n 'address/cities/RESPONSE',\r\n resolve => (cities: City[]) => resolve(cities),\r\n);\r\n\r\nexport const addressActions = {\r\n loadCountries,\r\n loadCountriesResponse,\r\n loadStates,\r\n loadStatesResponse,\r\n loadCities,\r\n loadCitiesResponse,\r\n};\r\n","import { createAction } from 'typesafe-actions';\r\nimport { CompanySlim } from '../types/company/CompanySlim';\r\nimport { InventoryPosition } from '../types/inventory/InventoryPosition';\r\n\r\nconst loadInventory = createAction(\"entities/admin-inventory-edit/LOAD_INVENTORT\",\r\n resolve => (companyId: number) => resolve({ companyId })\r\n);\r\nconst requestInventory = createAction(\"entities/admin-inventory-edit/REQUEST\");\r\nconst requestInventorySuccess = createAction(\"entities/admin-inventory-edit/REQUEST_SUCCESS\",\r\n resolve => (company: CompanySlim | undefined, positions: InventoryPosition[], lockModifiedDate?: Date) =>\r\n resolve({ company, positions, lockModifiedDate })\r\n);\r\nconst requestInventoryError = createAction(\"entities/admin-inventory-edit/REQUEST_ERROR\");\r\nconst reset = createAction(\"entities/admin-inventory-edit/RESET\");\r\n\r\nexport const adminInventoryEditActions = {\r\n loadInventory,\r\n requestInventory,\r\n requestInventorySuccess,\r\n requestInventoryError,\r\n reset\r\n};\r\n","import moment from \"moment\";\r\nimport { saveAs } from 'file-saver';\r\nimport { isNil, noop } from \"lodash\";\r\nimport { allBWICSActions as actionTypes } from '../constants';\r\nimport { bwicService } from '../services';\r\nimport { errorActions, searchSecuritiesActions } from '.';\r\nimport { queryStringSerializer } from '../utils/filtering';\r\nimport {\r\n identifiers, ratings, statuses, multipleCurrencies, dateFrom, dateTo, types, sizeFrom, sizeTo, collateralTypes,\r\n esg, euCompliance, staticDeals, reinvestmentEndFrom, reinvestmentEndTo, nonCallEndFrom, nonCallEndTo,\r\n collateralManagers, mixedDateRange, trustees, amr, outOfNC, outOfRI, sorting, color, colorFrom, colorTo,\r\n} from '../utils/filtering/serializers/serializer.definitions';\r\nimport { controlPanelActions } from './control-panel.actions';\r\nimport { isRequestCancelationError } from './error.actions';\r\nimport { AllBwicsTab } from '../components/allBWICS/AllBwicsTab';\r\nimport { BwicFilterType } from '../types/filters/FilterState';\r\nimport { createFilterActions } from './filter.actions';\r\nimport { isRequesting, numericUtils } from '../utils';\r\nimport { dateRangeFilterOptions } from '../constants/date-range.filter';\r\nimport { convertToApiCriteria, getDateOptionByRange, getYearsRange } from '../utils/filtering/filter.utils';\r\nimport { selectedDateOptions } from '../utils/amr-pipeline-filter.utils';\r\nimport { PageConfigType } from \"../types/page-config/PageConfigType\";\r\nimport { user } from \"../user\";\r\nimport { SubscriptionFeature } from \"../types/billing/SubscriptionFeature\";\r\nimport { DeserializeCommandHandler } from \"../utils/filtering/serializers/DeserializeCommand\";\r\nimport { bwicMonitorFilters } from \"../types/state/AllBwicsState\";\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { history } from \"../history\";\r\nimport { ColorFilterType } from \"../types/bwic/Color\";\r\n\r\nexport const allBWICSActions = {\r\n init,\r\n reset,\r\n searchBwics,\r\n setMyBWICsFlag,\r\n setActiveBwic,\r\n setBwicCollapsed,\r\n setCollapseAll,\r\n exportBwics,\r\n loadNextPage,\r\n liveBiddingStage2Expired,\r\n addPositionBids,\r\n sortChanged,\r\n advancedFilterBlocked\r\n};\r\n\r\nfunction init(myBwicsOnly, isAllToAll, filterQueryString, bwicMonitorTab) {\r\n return dispatch => {\r\n dispatch(setMyBWICsFlag(myBwicsOnly));\r\n dispatch(setAllToAllBwicsFlag(isAllToAll));\r\n dispatch(setDefaultFilter(filterQueryString, bwicMonitorTab));\r\n dispatch(searchBwics(bwicMonitorTab, true));\r\n };\r\n}\r\n\r\nfunction getFilterState(state, bwicMonitorTab) {\r\n switch (bwicMonitorTab) {\r\n case AllBwicsTab.Buy:\r\n return state.bwicMonitorBuy;\r\n case AllBwicsTab.Sell:\r\n return state.bwicMonitorSell;\r\n default:\r\n return state.bwicMonitor\r\n }\r\n}\r\n\r\nfunction getFilterType(bwicMonitorTab) {\r\n switch (bwicMonitorTab) {\r\n case AllBwicsTab.Buy:\r\n return BwicFilterType.BwicMonitorBuy;\r\n case AllBwicsTab.Sell:\r\n return BwicFilterType.BwicMonitorSell;\r\n default:\r\n return BwicFilterType.BwicMonitor\r\n }\r\n}\r\n\r\nfunction setDefaultFilter(filterQueryString, bwicMonitorTab) {\r\n return (dispatch, getState) => {\r\n const queryString = filterQueryString && filterQueryString.trim();\r\n const filterType = getFilterType(bwicMonitorTab);\r\n const filterActions = createFilterActions(filterType);\r\n dispatch(filterActions.resetFilter());\r\n dispatch(filterActions.resetFiltersVisibility());\r\n let defaultConfigFilter;\r\n\r\n dispatch(advancedFilterBlocked(false)); // reset blocked state\r\n\r\n const canUseSavedFilters = user.hasFeatures(SubscriptionFeature.BwicMonitorSavedFilters);\r\n\r\n if (filterType === BwicFilterType.BwicMonitor && canUseSavedFilters) {\r\n const filters = getState().entities.pageConfig.configs?.[PageConfigType.BwicMonitorAll]?.filters;\r\n defaultConfigFilter = filters?.find(filter => filter.default)\r\n }\r\n\r\n const filterState = getFilterState(getState().filters, bwicMonitorTab);\r\n // Call init after all dynamic filters (managers, broker-dealers) have already been loaded.\r\n const filterToInit = filterState.initialFilter ? filterState.initialFilter : filterState.filter;\r\n\r\n dispatch(filterActions.init({\r\n ...filterToInit,\r\n date: bwicMonitorTab === AllBwicsTab.All\r\n ? bwicMonitorFilters.defaultFilters().date\r\n : filterToInit.date\r\n }))\r\n\r\n const canUseHistoricalData = user.hasFeatures(SubscriptionFeature.BwicMonitorHistoricalData);\r\n\r\n if (queryString?.length) {\r\n let from, to, sizeMin, sizeMax, maturityFrom, maturityTo, vintageFrom, vintageTo, closingFrom, closingTo,\r\n trusteesValues, amrValue, ratingsValues, statusValues, currencyValues, collateralTypeValues,\r\n managerValues, euComplianceValue, esgValue, staticDealValue, sortBy, colors, colorRangeFrom, colorRangeTo;\r\n\r\n const collateralManagerReferenceNames = getState()\r\n .entities\r\n .collateralManagers\r\n .items\r\n .map(x => x.referenceName);\r\n\r\n dispatch(filterActions.resetFilter());\r\n\r\n function applyRadio(flag, key) {\r\n if (flag && key) {\r\n dispatch(filterActions.filterVisibilityChange(key));\r\n dispatch(filterActions.filterRadioChange(true, key));\r\n }\r\n }\r\n\r\n const [ncEndSerializers, getNcEndDeserializeResult] = mixedDateRange('nonCallEndFrom', 'nonCallEndTo');\r\n const [riEndSerializers, getRiEndDeserializeResult] = mixedDateRange('reinvestmentEndFrom', 'reinvestmentEndTo');\r\n\r\n const identifieList = [];\r\n\r\n const serializers = [\r\n identifiers(list => list.forEach(i => identifieList.push(i))),\r\n dateFrom(date => from = date),\r\n dateTo(date => to = date),\r\n ratings(ratings => ratingsValues = ratings),\r\n statuses(statuses => statusValues = statuses),\r\n multipleCurrencies(currencies => currencyValues = currencies),\r\n sizeFrom(min => sizeMin = min),\r\n sizeTo(max => sizeMax = max),\r\n collateralTypes(types => collateralTypeValues = types),\r\n esg(value => esgValue = value),\r\n euCompliance(value => euComplianceValue = value),\r\n staticDeals(value => staticDealValue = value),\r\n ...ncEndSerializers,\r\n ...riEndSerializers,\r\n collateralManagers(managers => managerValues = managers, collateralManagerReferenceNames),\r\n dateFrom(value => maturityFrom = value, 'maturityFrom'),\r\n dateTo(value => maturityTo = value, 'maturityTo'),\r\n dateFrom(value => vintageFrom = value, 'vintageFrom'),\r\n dateTo(value => vintageTo = value, 'vintageTo'),\r\n dateFrom(value => closingFrom = value, 'closingFrom'),\r\n dateTo(value => closingTo = value, 'closingTo'),\r\n trustees(values => trusteesValues = values),\r\n amr(value => amrValue = value),\r\n sorting(value => sortBy = value),\r\n color(values => colors = values.map(c => +c)),\r\n colorFrom(value => colorRangeFrom = value),\r\n colorTo(value => colorRangeTo = value)\r\n ];\r\n\r\n queryStringSerializer.deserialize(queryString, serializers);\r\n\r\n const ncEndDeserializeResult = getNcEndDeserializeResult();\r\n const riEndDeserializeResult = getRiEndDeserializeResult();\r\n\r\n const canUseAdvancedFilters = user.hasFeatures(SubscriptionFeature.BwicMonitorAvancedFilters);\r\n\r\n const identifiersCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !!identifieList.length,\r\n execute: () => identifieList.forEach(i => dispatch(searchSecuritiesActions.addSearchItem(i)))\r\n };\r\n const ncEnd = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !!ncEndDeserializeResult?.dates || !!ncEndDeserializeResult?.years,\r\n execute: () => dispatch(filterActions.filterDateQueryStringDeserialized('nonCallEnd', ncEndDeserializeResult))\r\n };\r\n const riEnd = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !!riEndDeserializeResult?.dates || !!riEndDeserializeResult?.years,\r\n execute: () => dispatch(filterActions.filterDateQueryStringDeserialized('reinvestmentEnd', riEndDeserializeResult))\r\n };\r\n const ratingsCommand = {\r\n shouldExecute: () => !!ratingsValues,\r\n execute: () => ratingsValues.forEach(r => dispatch(filterActions.filterSelectChange(r, 'ratings')))\r\n };\r\n const statusesCommand = {\r\n shouldExecute: () => !!statusValues,\r\n execute: () => statusValues.forEach(s => dispatch(filterActions.filterSelectChange(Number(s), 'statuses')))\r\n };\r\n const currencies = {\r\n shouldExecute: () => !!currencyValues,\r\n execute: () => currencyValues.forEach(c => dispatch(filterActions.filterSelectChange(c, 'currency')))\r\n };\r\n const callatTypes = {\r\n shouldExecute: () => !!collateralTypeValues,\r\n execute: () => collateralTypeValues.forEach(t => dispatch(filterActions.filterSelectChange(t, 'collateralType')))\r\n };\r\n const managers = {\r\n shouldExecute: () => !!managerValues,\r\n execute: () => managerValues.forEach(m => dispatch(filterActions.filterSelectChange(m, 'managers')))\r\n };\r\n const size = {\r\n shouldExecute: () => numericUtils.isNumber(sizeMin) || numericUtils.isNumber(sizeMax),\r\n execute: () => dispatch(filterActions.changeRangeFilter({ from: sizeMin, to: sizeMax }, 'size'))\r\n };\r\n\r\n const selectedDateOption = getDateOptionByRange(dateRangeFilterOptions.All, from, to);\r\n const date = {\r\n canExecute: () =>\r\n canUseHistoricalData ||\r\n (selectedDateOption.key === dateRangeFilterOptions.TodayAndUpcoming.key && bwicMonitorTab === AllBwicsTab.All),\r\n shouldExecute: () => !!from || !!to,\r\n execute: () => {\r\n if (selectedDateOption.key === dateRangeFilterOptions.All.key) {\r\n selectedDateOption.default = true;\r\n }\r\n dispatch(filterActions.filterDateSelectOption(selectedDateOption, 'date'));\r\n dispatch(filterActions.filterDateSelectCustomRange({ from, to }, 'date'));\r\n }\r\n };\r\n const euComplianceCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !!euComplianceValue,\r\n execute: () => applyRadio(euComplianceValue, 'euCompliance')\r\n };\r\n const esgCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !!esgValue,\r\n execute: () => applyRadio(esgValue, 'esg')\r\n };\r\n const staticDeal = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !!staticDealValue,\r\n execute: () => applyRadio(staticDealValue, 'staticDeal')\r\n };\r\n const trusteesCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !!trusteesValues?.length,\r\n execute: () => {\r\n dispatch(filterActions.filterVisibilityChange('trustees'));\r\n trusteesValues.forEach(name => dispatch(filterActions.filterSelectChange(name, 'trustees')));\r\n }\r\n };\r\n const maturity = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(maturityFrom) || !isNil(maturityTo),\r\n execute: () => {\r\n dispatch(filterActions.makeFilterVisible('maturity'));\r\n const filterOption = getDateOptionByRange(dateRangeFilterOptions.ThisWeek, maturityFrom, maturityTo);\r\n dispatch(filterActions.filterDateSelectOption(filterOption, 'maturity'));\r\n dispatch(\r\n filterActions.filterDateSelectCustomRange({ from: maturityFrom, to: maturityTo }, 'maturity')\r\n );\r\n }\r\n };\r\n const vintage = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(vintageFrom) || !isNil(vintageTo),\r\n execute: () => {\r\n dispatch(filterActions.makeFilterVisible('vintage'));\r\n const filterOption = getDateOptionByRange(dateRangeFilterOptions.ThisWeek, vintageFrom, vintageTo);\r\n dispatch(filterActions.filterDateSelectOption(filterOption, 'vintage'));\r\n dispatch(\r\n filterActions.filterDateSelectCustomRange({ from: vintageFrom, to: vintageTo }, 'vintage'),\r\n );\r\n }\r\n };\r\n const closing = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(closingFrom) || !isNil(closingTo),\r\n execute: () => {\r\n dispatch(filterActions.makeFilterVisible('closing'));\r\n const filterOption = getDateOptionByRange(dateRangeFilterOptions.ThisWeek, closingFrom, closingTo);\r\n dispatch(filterActions.filterDateSelectOption(filterOption, 'closing'));\r\n dispatch(\r\n filterActions.filterDateSelectCustomRange({ from: closingFrom, to: closingTo }, 'closing'),\r\n );\r\n }\r\n };\r\n const arm = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(amrValue),\r\n execute: () => {\r\n dispatch(filterActions.filterVisibilityChange('amr'));\r\n dispatch(filterActions.filterRadioChange(amrValue, 'amr'));\r\n }\r\n };\r\n\r\n const isTradedSelected = colors?.some(c => c === ColorFilterType.Traded);\r\n let isTradedColorSelected = colors?.some(c => c === ColorFilterType.TradedColor);\r\n\r\n if(isTradedSelected && isTradedColorSelected) {\r\n colors = colors.filter(c => c !== ColorFilterType.TradedColor);\r\n isTradedColorSelected = false;\r\n }\r\n\r\n const colorCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !!colors?.length,\r\n execute: () => {\r\n dispatch(filterActions.makeFilterVisible('color'));\r\n dispatch(filterActions.makeFilterVisible('tradedColor'));\r\n colors.forEach(s => dispatch(filterActions.filterSelectChange(Number(s), 'color')))\r\n }\r\n };\r\n\r\n const colorRangeCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => isTradedColorSelected && (!isNil(colorRangeFrom) || !isNil(colorRangeTo)),\r\n execute: () => dispatch(filterActions.changeRangeFilter({ from: colorRangeFrom, to: colorRangeTo }, 'tradedColor'))\r\n };\r\n\r\n const sortByCommand = {\r\n canExecute: () => user.hasFeatures(SubscriptionFeature.BwicMonitorSorting),\r\n shouldExecute: () => !!sortBy,\r\n execute: () => dispatch(sortFieldChanged(sortBy))\r\n }\r\n\r\n const isAllCommandsExecuted =\r\n new DeserializeCommandHandler()\r\n .addCommand(identifiersCommand)\r\n .addCommand(ratingsCommand)\r\n .addCommand(statusesCommand)\r\n .addCommand(currencies)\r\n .addCommand(callatTypes)\r\n .addCommand(managers)\r\n .addCommand(size)\r\n .addCommand(date)\r\n .addCommand(euComplianceCommand)\r\n .addCommand(esgCommand)\r\n .addCommand(staticDeal)\r\n .addCommand(trusteesCommand)\r\n .addCommand(maturity)\r\n .addCommand(vintage)\r\n .addCommand(closing)\r\n .addCommand(arm)\r\n .addCommand(ncEnd)\r\n .addCommand(riEnd)\r\n .addCommand(sortByCommand)\r\n .addCommand(colorCommand)\r\n .addCommand(colorRangeCommand)\r\n .process()\r\n\r\n if (!isAllCommandsExecuted) {\r\n dispatch(advancedFilterBlocked(true));\r\n }\r\n } else if (defaultConfigFilter) {\r\n dispatch(filterActions.selectFilterFromConfig(defaultConfigFilter));\r\n } else if (canUseHistoricalData) { // Skip settings \"TodayAndUpcomming\" because it is set by default in the filter state\r\n dispatch(filterActions.filterDateSelectOption({\r\n ...dateRangeFilterOptions.TodayAndUpcoming,\r\n from: moment().toDate(),\r\n to: null\r\n }, 'date'));\r\n dispatch(filterActions.filterDateSelectCustomRange({ from: moment().toDate(), to: null }, 'date'));\r\n }\r\n };\r\n}\r\n\r\nfunction advancedFilterBlocked(blocked) {\r\n return {\r\n type: actionTypes.ADVANCED_FILTER_BLOCKED,\r\n blocked\r\n }\r\n}\r\n\r\nfunction resetSummary() {\r\n return { type: actionTypes.RESET_SUMMARY }\r\n}\r\n\r\nfunction searchBwics(bwicMonitorTab, applyFilter = false, isSearchTermChange = false) {\r\n return (dispatch, getState) => {\r\n const { isNextPageRequesting, advancedFilterBlocked, summary } = getState().allBWICS;\r\n const filterType = getFilterType(bwicMonitorTab);\r\n const filterActions = createFilterActions(filterType);\r\n\r\n if (advancedFilterBlocked) return;\r\n\r\n if (!isNextPageRequesting) {\r\n dispatch(resetPaging());\r\n dispatch(bwicsSearchProgress(RequestState.request));\r\n dispatch(controlPanelActions.hide());\r\n }\r\n\r\n const isFilterChanged = applyFilter || isSearchTermChange;\r\n\r\n if(isFilterChanged && summary){\r\n dispatch(resetSummary());\r\n }\r\n\r\n const { currentPageNumber, pageSize, myBwicsOnly, isAllToAll, sortBy } = getState().allBWICS;\r\n const { searchTermItems } = getState().searchSecurities;\r\n const filterState = getFilterState(getState().filters, bwicMonitorTab);\r\n const lastAppliedFilter = filterState.lastAppliedFilter\r\n const filter = (!applyFilter && lastAppliedFilter) || filterState.filter;\r\n const criteria = getFilterCriteria(filter, searchTermItems, myBwicsOnly, isAllToAll);\r\n const requestingPage = isNextPageRequesting ? currentPageNumber + 1 : currentPageNumber;\r\n\r\n bwicService\r\n .searchBwics(criteria, requestingPage, pageSize, sortBy, isFilterChanged)\r\n .then(success, failure)\r\n .finally(() => {\r\n dispatch(nextPageRequesting(false));\r\n })\r\n\r\n function success({ totalRecordNumber, result, ...summaryProps }) {\r\n // Manually add filters to support query string serialization\r\n criteria.currency = filter.currency.filter.filter(c => c.selected).map(c => c.value);\r\n criteria.nonCallEndFrom = criteria.nonCallEndFromYear ?? criteria.nonCallEndFromDate;\r\n criteria.nonCallEndTo = criteria.nonCallEndToYear ?? criteria.nonCallEndToDate;\r\n criteria.reinvestmentEndFrom = criteria.reinvestmentEndFromYear ?? criteria.reinvestmentEndFromDate;\r\n criteria.reinvestmentEndTo = criteria.reinvestmentEndToYear ?? criteria.reinvestmentEndToDate;\r\n criteria.collateralManagers = criteria.managers;\r\n\r\n const { color = {} } = criteria;\r\n criteria.color = color.filters;\r\n criteria.colorFrom = color.min;\r\n criteria.colorTo = color.max;\r\n\r\n if (applyFilter) {\r\n dispatch(filterActions.applyFilter());\r\n }\r\n\r\n dispatch(bwicsSearchProgress(RequestState.success));\r\n dispatch(redirectWithFilterArguments(criteria, sortBy));\r\n dispatch({\r\n type: actionTypes.BWICS_SEARCH_COMPLETE,\r\n bwics: result || [],\r\n totalRecordNumber,\r\n isNextPageRequesting,\r\n summary: isFilterChanged ? summaryProps : undefined\r\n });\r\n }\r\n\r\n function failure(e) {\r\n if (!isRequestCancelationError(e)) {\r\n dispatch(bwicsSearchProgress(RequestState.failure));\r\n dispatch(errorActions.criticalError(e));\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction redirectWithFilterArguments(filter, sortBy) {\r\n return () => {\r\n const serializers = [\r\n identifiers(), ratings(), statuses(), multipleCurrencies(), dateFrom(), collateralManagers(),\r\n dateTo(), types(), sizeFrom(), sizeTo(), collateralTypes(), esg(), euCompliance(),\r\n staticDeals(), reinvestmentEndFrom(), reinvestmentEndTo(), nonCallEndFrom(), nonCallEndTo(),\r\n dateFrom(noop, 'maturityFrom'), dateTo(noop, 'maturityTo'), dateFrom(noop, 'vintageFrom'),\r\n dateTo(noop, 'vintageTo'), dateFrom(noop, 'closingFrom'), dateTo(noop, 'closingTo'),\r\n trustees(), amr(), outOfNC(), outOfRI(), color(), colorFrom(), colorTo()\r\n ];\r\n\r\n if (user.hasFeatures(SubscriptionFeature.BwicMonitorSorting)) {\r\n serializers.push(sorting())\r\n }\r\n\r\n const queryString = queryStringSerializer.serialize({ ...filter, sortBy }, serializers);\r\n\r\n if (queryString) {\r\n history.replace(history.location.pathname + '?' + queryString);\r\n }\r\n };\r\n}\r\n\r\nfunction getFilterCriteria(filter, isinCusipsAndTickers, myBwicsOnly, isAllToAll) {\r\n const defaultDateRange = { dateFrom: undefined, dateTo: undefined };\r\n\r\n const selectedCurrencies = filter.currency.filter.filter(c => c.selected).map(c => c.value);\r\n const nonCallEndYears = getYearsRange(filter.nonCallEnd);\r\n const nonCallEndDates = selectedDateOptions(filter.nonCallEnd);\r\n const reinvestmentEndYears = getYearsRange(filter.reinvestmentEnd);\r\n const reinvestmentEndDates = selectedDateOptions(filter.reinvestmentEnd);\r\n\r\n const maturityRange = filter.maturity?.filter.selectedOption\r\n ? convertToApiCriteria(filter.maturity.filter.selectedOption, filter.maturity.filter.options)\r\n : defaultDateRange;\r\n const vintageRange = filter.vintage?.filter.selectedOption\r\n ? convertToApiCriteria(filter.vintage.filter.selectedOption, filter.vintage.filter.options)\r\n : defaultDateRange;\r\n const closingRange = filter.closing?.filter.selectedOption\r\n ? convertToApiCriteria(filter.closing.filter.selectedOption, filter.closing.filter.options)\r\n : defaultDateRange;\r\n\r\n return {\r\n isinCusipsAndTickers,\r\n myBwicsOnly,\r\n isAllToAll,\r\n statuses: filter.statuses.filter.filter(f => f.selected).map(f => f.value),\r\n ratings: filter.ratings.filter.filter(r => r.selected).map(r => r.value),\r\n currency: selectedCurrencies.length && selectedCurrencies.length === 1 ? selectedCurrencies[0] : undefined,\r\n collateralTypes: filter.collateralType?.filter.filter(c => c.selected).map(c => c.value),\r\n managers: filter.managers?.filter.filter(c => c.selected).map(c => c.value),\r\n esg: filter.esg?.filter.selectedOption,\r\n staticDeals: filter.staticDeal?.filter.selectedOption,\r\n euCompliance: filter.euCompliance?.filter.selectedOption,\r\n nonCallEndFromYear: nonCallEndYears?.from,\r\n nonCallEndToYear: nonCallEndYears?.to,\r\n nonCallEndFromDate: nonCallEndDates?.from,\r\n nonCallEndToDate: nonCallEndDates?.to,\r\n reinvestmentEndFromYear: reinvestmentEndYears?.from,\r\n reinvestmentEndToYear: reinvestmentEndYears?.to,\r\n reinvestmentEndFromDate: reinvestmentEndDates?.from,\r\n reinvestmentEndToDate: reinvestmentEndDates?.to,\r\n sizeFrom: filter.size.filter.from,\r\n sizeTo: filter.size.filter.to,\r\n ...convertToApiCriteria(filter.date.filter.selectedOption, filter.date.filter.options),\r\n maturityFrom: maturityRange.dateFrom,\r\n maturityTo: maturityRange.dateTo,\r\n vintageFrom: vintageRange.dateFrom,\r\n vintageTo: vintageRange.dateTo,\r\n closingFrom: closingRange.dateFrom,\r\n closingTo: closingRange.dateTo,\r\n trustees: filter.trustees?.filter.filter(f => f.selected).map(f => f.value),\r\n amr: filter.amr?.filter.selectedOption,\r\n outOfNC: filter.outOfNC?.filter.selectedOption,\r\n outOfRI: filter.outOfRI?.filter.selectedOption,\r\n color: filter.color?.filter.some(r => r.selected) ? {\r\n filters: filter.color.filter.filter(r => r.selected).map(r => r.value),\r\n min: numericUtils.isNumber(filter.tradedColor.filter.from) ? Number(filter.tradedColor.filter.from) : undefined,\r\n max: numericUtils.isNumber(filter.tradedColor.filter.to) ? Number(filter.tradedColor.filter.to) : undefined,\r\n }: undefined\r\n };\r\n}\r\n\r\nfunction setAllToAllBwicsFlag(isAllToAll) {\r\n return {\r\n type: actionTypes.ALL_TO_ALL,\r\n isAllToAll\r\n };\r\n}\r\n\r\nfunction setMyBWICsFlag(myBwicsOnly) {\r\n return {\r\n type: actionTypes.MY_BWICS,\r\n myBwicsOnly\r\n };\r\n}\r\n\r\nfunction bwicsSearchProgress(status) {\r\n return {\r\n type: actionTypes.BWICS_SEARCH_PROGRESS,\r\n status\r\n };\r\n}\r\n\r\nfunction setBwicCollapsed(referenceName, collapsed) {\r\n return (dispatch, getState) => {\r\n dispatch({\r\n type: actionTypes.SET_BWIC_COLLAPSED_STATE,\r\n bwic: {\r\n referenceName,\r\n collapsed\r\n }\r\n });\r\n\r\n const { bwics, collapseAll } = getState().allBWICS;\r\n const collapsedCount = bwics.filter(b => b.collapsed).length;\r\n if (collapsedCount === bwics.length && !collapseAll) {\r\n dispatch(setCollapseAll(true));\r\n } else if (collapsedCount === 0 && collapseAll) {\r\n dispatch(setCollapseAll(false));\r\n }\r\n };\r\n}\r\n\r\nfunction setCollapseAll(collapseAll) {\r\n return {\r\n type: actionTypes.SET_COLLAPSE_ALL,\r\n collapseAll\r\n };\r\n}\r\n\r\nfunction setActiveBwic(bwicReferenceName) {\r\n return dispatch => {\r\n dispatch({\r\n type: actionTypes.SET_ACTIVE_BWIC,\r\n bwicReferenceName\r\n });\r\n };\r\n}\r\n\r\nfunction setExportingBwicStatus(status) {\r\n return { type: actionTypes.ALL_BWICS_SET_EXPORTING_STATUS, payload: { status } }\r\n}\r\n\r\nfunction exportBwics(bwicMonitorTab) {\r\n return (dispatch, getState) => {\r\n const { currentPageNumber, pageSize, myBwicsOnly, isAllToAll, sortBy } = getState().allBWICS;\r\n const { searchTermItems } = getState().searchSecurities;\r\n const filterState = getFilterState(getState().filters, bwicMonitorTab);\r\n const lastAppliedFilter = filterState.lastAppliedFilter\r\n const criteria = getFilterCriteria(lastAppliedFilter, searchTermItems, myBwicsOnly, isAllToAll);\r\n criteria.isGroupView = true;\r\n\r\n dispatch(setExportingBwicStatus(true));\r\n bwicService\r\n .exportBwics(criteria, currentPageNumber, pageSize, sortBy)\r\n .then(file => saveAs(file.blob, file.name))\r\n .catch((e) => errorActions.unexpectedError(e))\r\n .finally(() => dispatch(setExportingBwicStatus(false)));\r\n };\r\n}\r\n\r\nfunction reset() {\r\n return { type: actionTypes.RESET };\r\n}\r\n\r\nfunction resetPaging() {\r\n return {\r\n type: actionTypes.ALL_BWICS_RESET_PAGING\r\n };\r\n}\r\n\r\nfunction nextPageRequesting(isRequesting) {\r\n return {\r\n type: actionTypes.ALL_BWICS_NEXT_PAGE_REQUESTING,\r\n isRequesting\r\n }\r\n}\r\n\r\nfunction loadNextPage(bwicMonitorTab) {\r\n return (dispatch, getState) => {\r\n const { searchInProgress, isNextPageRequesting } = getState().allBWICS;\r\n\r\n if (!isRequesting(searchInProgress) && !isNextPageRequesting) {\r\n dispatch(nextPageRequesting(true));\r\n dispatch(searchBwics(bwicMonitorTab));\r\n }\r\n }\r\n}\r\n\r\nfunction liveBiddingStage2Expired(positionId) {\r\n return {\r\n type: actionTypes.LIVE_BIDDING_STAGE2_EXPIRED,\r\n positionId\r\n };\r\n}\r\n\r\nfunction addPositionBids(bwicReferenceName, positionId, bids) {\r\n return {\r\n type: actionTypes.ADD_POSITION_BIDS,\r\n bwicReferenceName,\r\n positionId,\r\n bids\r\n }\r\n}\r\n\r\nfunction sortFieldChanged(sortBy) {\r\n return {\r\n type: actionTypes.SORTING_CHANGED,\r\n sortBy\r\n }\r\n}\r\n\r\nfunction sortChanged(sortBy, bwicMonitorTab) {\r\n return (dispatch) => {\r\n dispatch(sortFieldChanged(sortBy))\r\n dispatch(searchBwics(bwicMonitorTab))\r\n }\r\n}\r\n","import { ActionType, createAction } from 'typesafe-actions';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { ArrangerPipeline } from '../types/amr-pipeline/models/ArrangerPipeline';\r\nimport { Deal } from '../types/amr-pipeline/models/Deal';\r\nimport { ArrangerPipelineStatistic } from '../types/amr-pipeline/models/ArrangerPipelineStatistic';\r\nimport { CollateralType } from '../types/amr-pipeline/enums/CollateralType';\r\n\r\nconst initFilter = createAction('amrArrangerPipeline/INIT_FILTER');\r\n\r\nconst applyFilterAndSearch = createAction('amrArrangerPipeline/APPLY_FILTER_AND_SEARCH');\r\n\r\nconst resetFilter = createAction('amrArrangerPipeline/RESET_FILTER');\r\n\r\nconst arrangerPipelinesRequest = createAction('amrArrangerPipeline/REQUEST');\r\n\r\nconst resetPipelines = createAction('amrArrangerPipeline/RESET_PIPELINES');\r\n\r\nconst dealsRequest = createAction(\r\n 'amrArrangerPipeline/DEALS_REQUEST',\r\n resolve => (searchTerm: string) => resolve({ searchTerm }),\r\n);\r\nconst dealsResponse = createAction(\r\n 'amrArrangerPipeline/DEALS_RESPONSE',\r\n resolve => (requestState: RequestState, deals?: Deal[]) => resolve({ requestState, deals }),\r\n);\r\n\r\nconst dealsSearchResponse = createAction(\r\n 'amrArrangerPipeline/DEALS_SEARCH_RESPONSE',\r\n resolve => (requestState: RequestState, arrangerPipelineDeals?: Partial[]) =>\r\n resolve({ requestState, arrangerPipelineDeals }),\r\n);\r\n\r\nconst selectDealsFromSearch = createAction(\r\n 'amrArrangerPipeline/SELECT_DEALS_FROM_SEARCH',\r\n resolve => (dealsLegalNames: string[]) => resolve({ dealsLegalNames }),\r\n);\r\n\r\nconst resetDeals = createAction('amrArrangerPipeline/RESET_DEALS');\r\n\r\nconst arrangerPipelinesResponse = createAction(\r\n 'amrArrangerPipeline/RESPONSE',\r\n resolve => (requestState: RequestState, arrangerPipelines?: ArrangerPipeline[], nonVisibleCount?: number) =>\r\n resolve({ requestState, arrangerPipelines, nonVisibleCount }),\r\n);\r\n\r\nconst submitArrangerPipeline = createAction('amrArrangerPipeline/CREATE');\r\nconst sortingChange = createAction(\r\n 'amrArrangerPipeline/SORTING_CHANGE',\r\n resolve => (sortBy: string, sortDirection: string) => resolve({ sortBy, sortDirection }),\r\n);\r\n\r\nconst edit = createAction('amrArrangerPipeline/EDIT');\r\n\r\nconst setEditLoadingStatus = createAction(\r\n 'amrArrangerPipeline/SET_EDIT_LOADING_STATUS',\r\n resolve => (isLoading: boolean) => resolve({ isLoading }),\r\n);\r\n\r\nconst submitArrangerPipelineStatus = createAction(\r\n 'amrArrangerPipeline/SUBMIT_STATUS',\r\n resolve => (isSubmitted: boolean) => resolve({ isSubmitted }),\r\n);\r\n\r\nconst changeDealReferenceName = createAction(\r\n 'amrArrangerPipeline/EDIT/CHANGE_DEAL_REFERENCE_NAME',\r\n resolve => (dealReferenceName: string | null) => resolve({ dealReferenceName }),\r\n);\r\n\r\nconst changeDealLegalName = createAction(\r\n 'amrArrangerPipeline/EDIT/CHANGE_DEAL_LEGAL_NAME',\r\n resolve => (dealLegalName: string | null) => resolve({ dealLegalName }),\r\n);\r\n\r\nconst updateFields = createAction(\r\n 'amrArrangerPipeline/EDIT/UPDATE_FIELDS',\r\n resolve => (collateralManagerReferenceName: string, collateralType: CollateralType) =>\r\n resolve({ collateralManagerReferenceName, collateralType }),\r\n);\r\n\r\nconst setAnyPipelineExists = createAction(\r\n 'amrArrangerPipeline/SET_ANY_PIPELINE_EXISTS',\r\n resolve => (anyPipelineExists: boolean) => resolve({ anyPipelineExists }),\r\n);\r\n\r\nconst checkIfArrangerPipelineExist = createAction('amrArrangerPipeline/CHECK_IF_ARRANGER_PIPELINE_EXIST');\r\n\r\nconst exportPipelines = createAction('amrArrangerPipeline/EXPORT');\r\n\r\nconst exportLoad = createAction(\r\n 'amrArrangerPipeline/EXPORT_LOAD',\r\n resolve => (isLoading: boolean) => resolve({ isLoading }),\r\n);\r\n\r\nconst reset = createAction('amrArrangerPipeline/RESET');\r\n\r\nconst arrangerPipelineStatisticRequest = createAction('amrArrangerPipeline/STATISTIC_REQUEST');\r\nconst arrangerPipelineStatisticResponse = createAction(\r\n 'amrArrangerPipeline/STATISTIC_RESPONSE',\r\n resolve => (summary: ArrangerPipelineStatistic) => resolve({ summary }),\r\n);\r\n\r\nconst deleteArrangerPipeline = createAction('amrArrangerPipeline/DELETE', resolve => (referenceName: string) => resolve({ referenceName }));\r\n\r\nexport type TArrangerPipelineActions = ActionType<\r\n | typeof applyFilterAndSearch\r\n | typeof resetFilter\r\n | typeof arrangerPipelinesRequest\r\n | typeof arrangerPipelinesResponse\r\n | typeof reset\r\n | typeof sortingChange\r\n | typeof resetPipelines\r\n | typeof submitArrangerPipeline\r\n | typeof exportPipelines\r\n | typeof dealsRequest\r\n | typeof dealsResponse\r\n | typeof resetDeals\r\n | typeof submitArrangerPipelineStatus\r\n | typeof exportLoad\r\n | typeof setAnyPipelineExists\r\n | typeof changeDealLegalName\r\n | typeof dealsSearchResponse\r\n | typeof selectDealsFromSearch\r\n | typeof edit\r\n | typeof setEditLoadingStatus\r\n | typeof arrangerPipelineStatisticRequest\r\n | typeof arrangerPipelineStatisticResponse\r\n | typeof deleteArrangerPipeline\r\n\r\n>;\r\n\r\nexport const amrArrangerPipelineActions = {\r\n reset,\r\n resetFilter,\r\n applyFilterAndSearch,\r\n arrangerPipelinesRequest,\r\n arrangerPipelinesResponse,\r\n submitArrangerPipeline,\r\n resetPipelines,\r\n sortingChange,\r\n initFilter,\r\n exportPipelines,\r\n edit,\r\n setEditLoadingStatus,\r\n dealsRequest,\r\n dealsResponse,\r\n resetDeals,\r\n submitArrangerPipelineStatus,\r\n changeDealReferenceName,\r\n changeDealLegalName,\r\n exportLoad,\r\n setAnyPipelineExists,\r\n dealsSearchResponse,\r\n selectDealsFromSearch,\r\n checkIfArrangerPipelineExist,\r\n arrangerPipelineStatisticRequest,\r\n arrangerPipelineStatisticResponse,\r\n updateFields,\r\n deleteArrangerPipeline,\r\n};\r\n","import { createAction } from 'typesafe-actions';\r\nimport { Company } from '../types/amr-pipeline/models/Company';\r\n\r\nconst loadUserCompanyRequest = createAction('amrPipelineCommon/userCompany/REQUEST');\r\nconst loadUserCompanyResponse = createAction(\r\n 'amrPipelineCommon/userCompany/RESPONSE',\r\n resolve => (userCompany: Company) => resolve({ userCompany })\r\n);\r\n\r\nconst loadUserCompanyError = createAction('amrPipelineCommon/userCompany/ERROR');\r\n\r\nconst registerUser = createAction('amrPipelineCommon/REGISTER_USER');\r\n\r\nconst redirectInvitedClientToTransactionDetails = createAction(\r\n 'amrPipelineCommon/REDIRECT_INVITED_CLIENT'\r\n);\r\n\r\nconst reset = createAction('amrPipelineCommon/RESET');\r\n\r\nexport const amrPipelineCommonActions = {\r\n loadUserCompanyRequest,\r\n loadUserCompanyResponse,\r\n loadUserCompanyError,\r\n registerUser,\r\n redirectInvitedClientToTransactionDetails,\r\n reset\r\n};\r\n","import { AnyAction, Dispatch } from \"redux\";\r\nimport moment from \"moment\";\r\nimport { saveAs } from \"file-saver\";\r\nimport { ThunkDispatch } from \"redux-thunk\";\r\nimport { amrPipelineService } from \"../services/amr-pipeline.service\";\r\nimport {\r\n amrPipelineDetailedActions as actionTypes,\r\n constants,\r\n SORT,\r\n gridColumns,\r\n roles,\r\n routes\r\n} from \"../constants\";\r\nimport { errorActions } from \"./error.actions\";\r\nimport { history } from \"../history\";\r\nimport { AppState } from \"../types/state/AppState\";\r\nimport { requestCancelationController } from \"../services/request-cancelation-controller\";\r\nimport { OriginatingTransaction } from \"../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport { AmrTransaction } from \"../types/amr-pipeline/models/AmrTransaction\";\r\nimport { OriginatingTransactionDocument } from \"../types/amr-pipeline/models/OriginatingTransactionDocument\";\r\nimport { pushNotificationService } from \"../services\";\r\nimport { gridActions } from \"./grid.actions\";\r\nimport { GridColumn } from \"../types/state/GridState\";\r\nimport { ioiFloaterIndexes } from \"../types/amr-pipeline/enums/IoIFloaterIndex\";\r\nimport { OriginatingTransactionClass } from \"../types/amr-pipeline/models/OriginatingTransactionClass\";\r\nimport { OriginatingTransactionClassStatus, transactionClassStatusTitles } from \"../types/amr-pipeline/enums/OriginatingTransactionClassStatus\";\r\nimport { PipelineDetailedTabTypes } from \"../components/amrPipeline/types/PipelineDetailedTabTypes\";\r\nimport { getSearchedTransactionDocuments, hasInvitedClientsAccess, hasLimitedAccess, isIoIonDisabledClass, transactionHasArrangerProSubscription } from \"../utils/amr-pipeline.utils\";\r\nimport { logger } from '../logging/logger';\r\nimport { TransactionAccessTypeCollecting } from '../types/amr-pipeline/enums/TransactionAccessType';\r\nimport { user } from \"../user\";\r\nimport { SubscriptionFeature } from \"../types/billing/SubscriptionFeature\";\r\nimport { TransactionResponse } from \"../types/amr-pipeline/models/TransactionResponse\";\r\nimport { amrCompaniesService } from '../services/amr-companies.service';\r\n\r\nexport const amrPipelineDetailedActions = {\r\n init,\r\n loadTransactions,\r\n loadInitialTransaction,\r\n transactionsSearchTermChange,\r\n searchTermChange,\r\n documentsSearchTermChange,\r\n loadTransactionDetails,\r\n storeTransactionDetails,\r\n transactionDetailsRequesting,\r\n transactionsRequesting,\r\n exportPortfolio,\r\n editIOIs,\r\n submitIOIs,\r\n showGridIOIs,\r\n readIOIsByUser,\r\n setUnreadIOIsRead,\r\n exportIOIs,\r\n showInvestorPopup,\r\n hideInvestorPopup,\r\n reset,\r\n logTabAccess,\r\n};\r\n\r\ntype TDispatch = ThunkDispatch;\r\n\r\nfunction init(dealReferenceName: string, transactionReferenceName: string, token?: string) {\r\n return async (dispatch: TDispatch, getState: () => AppState) => {\r\n const isInvitedClient = user.hasSingleRole(roles.ArrangersClient);\r\n\r\n if (token) {\r\n try {\r\n if (isInvitedClient) {\r\n await amrPipelineService.updateArrangerClient(token);\r\n } else {\r\n await amrPipelineService.logAccessToSharedTransaction(dealReferenceName, transactionReferenceName, token);\r\n }\r\n } catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n }\r\n }\r\n\r\n Promise.all([\r\n dispatch(loadTransactions()),\r\n dispatch(loadInitialTransaction(dealReferenceName, transactionReferenceName)),\r\n ]);\r\n };\r\n}\r\n\r\nfunction loadTransactions(tab: PipelineDetailedTabTypes = PipelineDetailedTabTypes.all) {\r\n return async (dispatch: Dispatch, getState: () => AppState) => {\r\n const {\r\n amrPipeline: {\r\n deals: {\r\n dealSortBy,\r\n dealSortDirection,\r\n }\r\n },\r\n amrPipelineDetailed: {\r\n offset,\r\n searchTerm,\r\n isTransactionsRequesting,\r\n }\r\n } = getState().issuanceMonitor;\r\n\r\n const filterCriteria = {\r\n ...constants.defaultTransactionsSearchCriteria,\r\n searchTerm: searchTerm?.toLowerCase().trim(),\r\n hasIois: tab === PipelineDetailedTabTypes.ioi ? true : undefined,\r\n offset,\r\n };\r\n\r\n const searchCriteria = [\r\n {\r\n field: dealSortBy,\r\n ascending: dealSortDirection === SORT.ASC,\r\n },\r\n ...constants.defaultDealOrderCriteria,\r\n ];\r\n\r\n if (isTransactionsRequesting) {\r\n requestCancelationController.abort(history.location.pathname);\r\n dispatch(transactionsRequesting(false));\r\n }\r\n\r\n try {\r\n dispatch(transactionsRequesting(true));\r\n const transactions: TransactionResponse = await amrPipelineService.getTransactionsList(\r\n filterCriteria,\r\n searchCriteria\r\n );\r\n\r\n dispatch(storeTransactions(transactions, searchTerm));\r\n dispatch(transactionsRequesting(false));\r\n } catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n if (!errorActions.isRequestCancelationError(e)) {\r\n dispatch(transactionsRequesting(false));\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction loadInitialTransaction(\r\n dealReferenceName: string,\r\n transactionReferenceName: string\r\n) {\r\n return async (dispatch: Dispatch, getState: () => AppState) => {\r\n const {\r\n issuanceMonitor: {\r\n amrPipelineDetailed: {\r\n initialTransaction\r\n }\r\n }\r\n } = getState();\r\n\r\n if (initialTransaction?.referenceName !== transactionReferenceName) {\r\n dispatch(transactionsRequesting(true));\r\n try {\r\n const transaction = await amrPipelineService.getTransaction(\r\n dealReferenceName,\r\n transactionReferenceName\r\n );\r\n\r\n if (!transaction) {\r\n history.replace(routes.transactionLimitedAccess);\r\n return;\r\n }\r\n\r\n dispatch(storeInitialTransaction(transaction));\r\n } catch (e) {\r\n if ([404, 403].includes(e.status)) {\r\n history.replace(routes.AMRPipeline);\r\n } else {\r\n dispatch(errorActions.criticalError(e));\r\n }\r\n } finally {\r\n dispatch(transactionsRequesting(false));\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction transactionsSearchTermChange(tab: PipelineDetailedTabTypes) {\r\n return async (dispatch: TDispatch, getState: () => AppState) => {\r\n const { isTransactionDetailsRequesting } = getState().issuanceMonitor.amrPipelineDetailed;\r\n if (isTransactionDetailsRequesting) {\r\n requestCancelationController.abort(history.location.pathname);\r\n dispatch(transactionDetailsRequesting(false));\r\n }\r\n dispatch(resetTransactions());\r\n dispatch(loadTransactions(tab));\r\n };\r\n}\r\n\r\nfunction resetTransactions() {\r\n return {\r\n type: actionTypes.RESET_TRANSACTIONS,\r\n };\r\n}\r\n\r\nfunction documentsSearchTermChange(\r\n searchTerm: string,\r\n transactionReferenceName: string\r\n) {\r\n return async (dispatch: Dispatch, getState: () => AppState) => {\r\n const {\r\n issuanceMonitor: {\r\n amrPipelineDetailed: {\r\n loadedTransactionsWithDetails,\r\n initialTransaction,\r\n }\r\n }\r\n } = getState();\r\n\r\n if (loadedTransactionsWithDetails) {\r\n const selectedTransaction =\r\n loadedTransactionsWithDetails?.find(\r\n (t) => t.referenceName === transactionReferenceName\r\n ) || initialTransaction;\r\n\r\n if (selectedTransaction) {\r\n const {\r\n documents,\r\n } = selectedTransaction as OriginatingTransaction;\r\n const filteredDocuments = getSearchedTransactionDocuments(documents, searchTerm);\r\n dispatch(storeDocumentsSearchResults(filteredDocuments));\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction loadTransactionDetails(\r\n dealReferenceName: string,\r\n transactionReferenceName: string,\r\n loadIOIs: boolean\r\n) {\r\n return async (dispatch: Dispatch, getState: () => AppState) => {\r\n const {\r\n issuanceMonitor: {\r\n amrPipelineDetailed: {\r\n loadedTransactionsWithDetails,\r\n initialTransaction,\r\n },\r\n amrPipelineCommon: {\r\n userCompany,\r\n },\r\n },\r\n } = getState();\r\n\r\n const hasImSubscription = user.hasFeatures(SubscriptionFeature.IssuanceMonitorFullAccess);\r\n\r\n if (loadedTransactionsWithDetails.some(t => t.referenceName === transactionReferenceName)\r\n ) {\r\n return;\r\n }\r\n\r\n dispatch(transactionDetailsRequesting(true));\r\n\r\n try {\r\n const transaction = transactionReferenceName === initialTransaction?.referenceName\r\n ? initialTransaction\r\n : await amrPipelineService.getTransaction(\r\n dealReferenceName,\r\n transactionReferenceName\r\n );\r\n\r\n const limitedAccess = hasLimitedAccess(transaction, userCompany);\r\n const limitedClientsAccess = !hasInvitedClientsAccess(transaction, userCompany);\r\n const hasArrangerProSubscription = transactionHasArrangerProSubscription(transaction);\r\n const withoutImAndArrangerProSubscriptions = !hasImSubscription && !hasArrangerProSubscription;\r\n\r\n const isMedia = user.hasRoles(roles.Media);\r\n\r\n const portfolioPromise = limitedAccess || isMedia || withoutImAndArrangerProSubscriptions\r\n ? null\r\n : amrPipelineService.getPortfolio(\r\n dealReferenceName,\r\n transactionReferenceName\r\n );\r\n\r\n const documentsPromise = limitedAccess || isMedia || withoutImAndArrangerProSubscriptions\r\n ? null\r\n : amrPipelineService.getDocuments(\r\n dealReferenceName,\r\n transactionReferenceName\r\n );\r\n\r\n const collateralQualityTestsPromise = limitedAccess\r\n ? null\r\n : amrPipelineService.getCollateralQualityTest(\r\n dealReferenceName,\r\n transactionReferenceName\r\n );\r\n\r\n const syndicateContactsPromise = amrPipelineService.getSyndicateContacts(\r\n dealReferenceName,\r\n transactionReferenceName\r\n );\r\n\r\n const ioisPromise = limitedAccess || isMedia || !loadIOIs\r\n ? null\r\n : amrPipelineService.getIOIs(\r\n dealReferenceName,\r\n transactionReferenceName\r\n );\r\n\r\n const intexFilePromise = limitedAccess || isMedia || withoutImAndArrangerProSubscriptions\r\n ? null\r\n : amrPipelineService.getIntexFile(dealReferenceName, transactionReferenceName);\r\n\r\n const managerPresentationFilePromise = limitedAccess || isMedia\r\n ? null\r\n : amrPipelineService.getManagerPresentationFile(dealReferenceName, transactionReferenceName);\r\n\r\n const disclosureFilePromise = isMedia\r\n ? null\r\n : amrPipelineService.getDisclosureFile(dealReferenceName, transactionReferenceName);\r\n\r\n const invitedClientsPromise = limitedClientsAccess\r\n ? null\r\n : amrPipelineService.getSharedClients(dealReferenceName, transactionReferenceName);\r\n\r\n const [\r\n portfolio,\r\n documents,\r\n collateralQualityTests,\r\n syndicateContacts = [],\r\n iois,\r\n intexFile,\r\n managerPresentationFile,\r\n disclosureFile,\r\n invitedClients,\r\n ] = await Promise.all([\r\n portfolioPromise,\r\n documentsPromise,\r\n collateralQualityTestsPromise,\r\n syndicateContactsPromise,\r\n ioisPromise,\r\n intexFilePromise,\r\n managerPresentationFilePromise,\r\n disclosureFilePromise,\r\n invitedClientsPromise,\r\n ]);\r\n\r\n dispatch(\r\n storeTransactionDetails(transactionReferenceName, {\r\n ...transaction,\r\n intexFile,\r\n managerPresentationFile,\r\n disclosureFile,\r\n syndicateContacts,\r\n portfolio,\r\n documents,\r\n collateralQualityTests,\r\n invitedClients,\r\n isDetailsLoaded: true\r\n })\r\n );\r\n dispatch({ type: actionTypes.STORE_IOIS, transactionReferenceName, dataItems: iois });\r\n } catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n } finally {\r\n dispatch(transactionDetailsRequesting(false));\r\n }\r\n };\r\n}\r\n\r\nfunction exportPortfolio(dealReferenceName: string, transactionReferenceName: string, dealLegalName: string) {\r\n return () => {\r\n amrPipelineService\r\n .exportPortfolio(dealReferenceName, transactionReferenceName)\r\n .then((file: { blob: Blob; type: string }) =>\r\n saveAs(\r\n file.blob,\r\n `${dealLegalName} Target Portfolio ${moment().format(\r\n constants.dateFormat\r\n )}.csv`\r\n )\r\n );\r\n };\r\n}\r\n\r\nfunction exportIOIs(dealReferenceName: string, transactionReferenceName: string, excludeRemovedClass?: boolean) {\r\n return () => {\r\n amrPipelineService\r\n .exportIOIs(dealReferenceName, transactionReferenceName, excludeRemovedClass)\r\n .then((file: { blob: Blob; type: string }) =>\r\n saveAs(file.blob, `${dealReferenceName} IOIs ${moment().format(constants.dateFormat)}.xlsx`),\r\n );\r\n };\r\n}\r\n\r\nfunction showGridIOIs(transactionReferenceName: string) {\r\n return async (dispatch: TDispatch, getState: () => AppState) => {\r\n const {\r\n issuanceMonitor: {\r\n amrPipelineDetailed: {\r\n loadedTransactionsWithDetails,\r\n initialTransaction\r\n }\r\n }\r\n } = getState();\r\n\r\n const currentTransaction = (loadedTransactionsWithDetails?.find(t => t.referenceName === transactionReferenceName) as OriginatingTransaction) || initialTransaction;\r\n const dataItems = currentTransaction.iois.filter(ioi => !ioi.isDeleted && !isIoIonDisabledClass(ioi, currentTransaction.classes)) ?? [];\r\n\r\n const classReferenceNameColumn = {\r\n ...gridColumns.classReferenceName,\r\n selectSourceItemsCallback: () =>\r\n currentTransaction.classes?.map(c => ({\r\n key: c.referenceName,\r\n title:\r\n c.originatingTransactionClassStatus &&\r\n c.originatingTransactionClassStatus !==\r\n OriginatingTransactionClassStatus.Open\r\n ? `${c.name} (${\r\n transactionClassStatusTitles[\r\n c.originatingTransactionClassStatus\r\n ]\r\n })`\r\n : c.name,\r\n disabled:\r\n c.originatingTransactionClassStatus === OriginatingTransactionClassStatus.NotOffered ||\r\n c.originatingTransactionClassStatus === OriginatingTransactionClassStatus.Subject,\r\n })),\r\n updateDependencyColumnsCallback: (index: number) =>\r\n updateReadOnlyIOIColumns(index, transactionReferenceName),\r\n };\r\n\r\n const floaterIndexColumn: GridColumn = {\r\n ...gridColumns.ioiFloaterIndex,\r\n type: 'select',\r\n selectSourceItemsCallback: () => ioiFloaterIndexes\r\n };\r\n\r\n const columns = gridColumns.iois().map((c) => {\r\n if (c.name === gridColumns.classReferenceName.name) {\r\n return classReferenceNameColumn;\r\n }\r\n\r\n if (c.name === gridColumns.ioiFloaterIndex.name) {\r\n return floaterIndexColumn;\r\n }\r\n\r\n return c;\r\n }\r\n );\r\n\r\n dispatch(editIOIs(true));\r\n dispatch(gridActions.reset());\r\n dispatch(gridActions.init(dataItems, columns, 100, 25));\r\n };\r\n}\r\n\r\nfunction updateReadOnlyIOIColumns(\r\n gridItemIndex: number,\r\n transactionReferenceName: string\r\n) {\r\n return async (dispatch: TDispatch, getState: () => AppState) => {\r\n const {\r\n issuanceMonitor: {\r\n amrPipelineDetailed: {\r\n loadedTransactionsWithDetails,\r\n initialTransaction\r\n },\r\n },\r\n } = getState();\r\n\r\n const currentTransaction = loadedTransactionsWithDetails?.find(\r\n (t) => t.referenceName === transactionReferenceName\r\n ) as OriginatingTransaction || initialTransaction as OriginatingTransaction;\r\n\r\n const availableClassesForIOIs = currentTransaction.classes;\r\n\r\n const { dataItems } = getState().grid;\r\n const row = dataItems[gridItemIndex];\r\n\r\n if (availableClassesForIOIs) {\r\n const className = row.classReferenceName\r\n const selectedClass = availableClassesForIOIs.find(\r\n (f) => f.name === className\r\n );\r\n const propsShouldBeUpdated = [\r\n \"floaterIndex\",\r\n \"guidance\",\r\n \"subscription\",\r\n \"balance\",\r\n ];\r\n if (selectedClass) {\r\n propsShouldBeUpdated.forEach(\r\n (v) => (row[v] = selectedClass[v as keyof OriginatingTransactionClass])\r\n );\r\n dispatch(gridActions.deleteRow(gridItemIndex));\r\n row.ioiRatings = `${\r\n selectedClass.expectedRatingMoodys ||\r\n constants.emptyPlaceholder\r\n }/${\r\n selectedClass.expectedRatingSnP ||\r\n constants.emptyPlaceholder\r\n }/${\r\n selectedClass.expectedRatingFitch ||\r\n constants.emptyPlaceholder\r\n }/${\r\n selectedClass.expectedRatingKbra ||\r\n constants.emptyPlaceholder\r\n }/${\r\n selectedClass.expectedRatingDbrs ||\r\n constants.emptyPlaceholder\r\n }`;\r\n\r\n dispatch(gridActions.insertDataItems(row, gridItemIndex));\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction submitIOIs(dealReferenceName: string, transactionReferenceName: string, dealLegalName: string, activeTab?: PipelineDetailedTabTypes) {\r\n return async (dispatch: TDispatch, getState: () => AppState) => {\r\n dispatch(gridActions.validate());\r\n\r\n const grid = getState().grid;\r\n const isAnyIoI = grid.dataItems.some((i: {draft: boolean}) => !i.draft);\r\n\r\n if (grid.isValid || !isAnyIoI) {\r\n dispatch(ioisSubmitting(true));\r\n\r\n try {\r\n const ioisForSubmit = grid.dataItems.filter((item: { draft: boolean }) => !item.draft) ?? [];\r\n const notificationSubj =\r\n ioisForSubmit.length\r\n ? `IOIs have been submitted for ${dealLegalName}`\r\n : `All IOIs have been deleted for ${dealLegalName}`;\r\n const notificationBody = ioisForSubmit.length\r\n ? `Your IOIs for ${dealLegalName} have been submitted and can be accessed by arranger.`\r\n : `All of your IOIs for ${dealLegalName} have been deleted.`;\r\n\r\n await amrPipelineService.submitIOIs(dealReferenceName, transactionReferenceName, ioisForSubmit);\r\n\r\n pushNotificationService.sendNotification(\r\n \"SendNotification\",\r\n notificationSubj,\r\n notificationBody\r\n );\r\n\r\n const iois = await amrPipelineService.getIOIs(\r\n dealReferenceName,\r\n transactionReferenceName\r\n );\r\n\r\n if (activeTab === PipelineDetailedTabTypes.ioi) {\r\n dispatch(resetTransactions());\r\n dispatch(loadTransactions(activeTab));\r\n }\r\n\r\n dispatch({type: actionTypes.STORE_IOIS, transactionReferenceName, dataItems: iois});\r\n\r\n dispatch(editIOIs(false));\r\n } catch(e) {\r\n dispatch(errorActions.error(e));\r\n } finally {\r\n dispatch(ioisSubmitting(false));\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction showInvestorPopup(referenceName: string) {\r\n return async (dispatch: TDispatch) => {\r\n try {\r\n const [company, members] = await Promise.all([\r\n amrCompaniesService.getCompanyInfo(referenceName),\r\n amrCompaniesService.getMembersList(referenceName),\r\n ]);\r\n let companyWithMembers = { company, members };\r\n\r\n dispatch({\r\n type: actionTypes.SHOW_INVESTOR_POPUP,\r\n company: companyWithMembers,\r\n isPopupVisible: true,\r\n });\r\n } catch (e) {\r\n dispatch(errorActions.unexpectedError(e));\r\n }\r\n };\r\n}\r\n\r\nfunction hideInvestorPopup() {\r\n return {\r\n type: actionTypes.SHOW_INVESTOR_POPUP,\r\n isCompanyPopupVisible: false,\r\n };\r\n}\r\n\r\nfunction editIOIs(isEdit: boolean) {\r\n return {\r\n type: actionTypes.EDIT_IOIS,\r\n isEdit,\r\n };\r\n}\r\n\r\nfunction readIOIsByUser(dealReferenceName: string, transactionReferenceName: string, ioisReferenceNames: string[]) {\r\n return async (dispatch: Dispatch) => {\r\n try {\r\n await amrPipelineService.readIOIsByUser(dealReferenceName, transactionReferenceName, ioisReferenceNames);\r\n } catch (error) {\r\n dispatch(errorActions.criticalError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction setUnreadIOIsRead(transactionReferenceName: string) {\r\n return {\r\n type: actionTypes.SET_UNREAD_IOIS_READ,\r\n transactionReferenceName,\r\n };\r\n}\r\n\r\n\r\nfunction searchTermChange(searchTerm: string) {\r\n return {\r\n type: actionTypes.SEARCH_TERM_CHANGE,\r\n searchTerm,\r\n };\r\n}\r\n\r\nfunction storeTransactions(\r\n transactions: TransactionResponse,\r\n searchTerm: string,\r\n tab?: PipelineDetailedTabTypes\r\n) {\r\n return {\r\n type: actionTypes.STORE_TRANSACTIONS,\r\n transactions,\r\n searchTerm,\r\n tab\r\n };\r\n}\r\n\r\nfunction storeInitialTransaction(\r\n transaction: AmrTransaction | OriginatingTransaction\r\n) {\r\n return {\r\n type: actionTypes.STORE_INITIAL_TRANSACTION,\r\n transaction,\r\n };\r\n}\r\n\r\nfunction storeTransactionDetails(\r\n transactionReferenceName: string,\r\n transaction: OriginatingTransaction | AmrTransaction\r\n) {\r\n return {\r\n type: actionTypes.STORE_TRANSACTION_DETAILS,\r\n transactionReferenceName,\r\n transaction,\r\n };\r\n}\r\n\r\nfunction storeDocumentsSearchResults(\r\n filteredDocuments: OriginatingTransactionDocument[]\r\n) {\r\n return {\r\n type: actionTypes.STORE_DOCUMENTS_SEARCH_RESULTS,\r\n filteredDocuments,\r\n };\r\n}\r\n\r\nfunction transactionsRequesting(isRequesting: boolean) {\r\n return {\r\n type: actionTypes.TRANSACTIONS_REQUESTING_STATE,\r\n isRequesting,\r\n };\r\n}\r\n\r\nfunction transactionDetailsRequesting(isRequesting: boolean) {\r\n return {\r\n type: actionTypes.TRANSACTION_DETAILS_REQUESTING_STATE,\r\n isRequesting,\r\n };\r\n}\r\n\r\nfunction ioisSubmitting(isSubmitting: boolean) {\r\n return {\r\n type: actionTypes.TRANSACTION_DETAILS_IOIS_SUBMITTING,\r\n isSubmitting,\r\n };\r\n}\r\n\r\nfunction reset() {\r\n return {\r\n type: actionTypes.RESET,\r\n };\r\n}\r\n\r\nfunction logTabAccess(dealReferenceName: string, transactionReferenceName: string, tabAccessType: TransactionAccessTypeCollecting) {\r\n return async () => {\r\n try {\r\n await amrPipelineService.logTabAccess(dealReferenceName, transactionReferenceName, tabAccessType);\r\n } catch (error) {\r\n logger.exception(error, 'Error tracking transaction tab access');\r\n }\r\n };\r\n}\r\n","import { Dispatch, UnknownAction } from 'redux';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { amrPipelineService } from '../services/amr-pipeline.service';\r\nimport { amrPipelineActions as actionTypes, constants, roles } from '../constants';\r\nimport { errorActions } from './error.actions';\r\nimport { DealsPipelineFilters } from '../types/state/PipelineFilterState';\r\nimport { ThunkDispatch } from 'redux-thunk';\r\nimport { user } from '../user';\r\nimport { Company } from '../types/amr-pipeline/models/Company';\r\nimport moment from 'moment';\r\nimport 'moment-timezone';\r\nimport { saveAs } from 'file-saver';\r\nimport { FilterSelectGroup } from '../types/filters/FilterGroup';\r\nimport { createSearchTransactionActions } from './search-transactions.actions';\r\nimport { PipelineView } from '../components/amrPipeline/types/PipelineView';\r\nimport { PipelineType } from '../types/amr-pipeline/enums/PipelineType';\r\nimport {\r\n amrPipelineSelector,\r\n amrPipelineFilterSelector,\r\n issuanceMonitorFilterSelector,\r\n summarySelector,\r\n} from '../selectors/amr-pipeline.selector';\r\nimport { groupSearchByDealAndClassIndicators, getFilterCriteria, mergeSortCriteria } from '../utils/amr-pipeline.utils';\r\nimport { TransactionStatuses, TransactionStatus } from '../types/amr-pipeline/enums/TransactionStatus';\r\nimport { SubscriptionFeature } from '../types/billing/SubscriptionFeature';\r\nimport { UserConfigType } from '../types/user-config/UserConfigType';\r\nimport { isNil } from 'lodash';\r\nimport { dateRangeFilterOptions } from '../constants/date-range.filter';\r\nimport { queryStringSerializer } from '../utils/filtering';\r\nimport { QueryStringArgumentSerializer } from '../utils/filtering/serializers/QueryStringArgumentSerializer';\r\nimport {\r\n savedFilter,\r\n collateralManagers,\r\n arrangers,\r\n dealsLegalNames,\r\n deals,\r\n transactionTypes,\r\n trustees,\r\n multipleCurrencies,\r\n reinvestmentEndFrom,\r\n reinvestmentEndTo,\r\n nonCallEndFrom,\r\n nonCallEndTo,\r\n pricingDateFrom,\r\n pricingDateTo,\r\n ratings,\r\n coupon,\r\n esg,\r\n euCompliance,\r\n staticDeals,\r\n transactionStatuses,\r\n amr,\r\n collateralTypes,\r\n outOfNC,\r\n outOfRI,\r\n} from '../utils/filtering/serializers/serializer.definitions';\r\nimport { createFilterActions } from './filter.actions';\r\nimport { filterUtils } from '../utils/filtering/filter.utils';\r\nimport { statsToCalculateWithoutMedians } from '../types/amr-pipeline/enums/StatsToCalculate';\r\nimport { TransactionClassResponse, TransactionResponse } from '../types/amr-pipeline/models/TransactionResponse';\r\nimport { history } from '../history';\r\nimport { amrCompaniesService } from '../services/amr-companies.service';\r\nimport { HavingDealType } from '../types/amr-pipeline/enums/HavingDealType';\r\n\r\ntype TDispatch = ThunkDispatch;\r\n\r\nexport const createAmrPipelineActions = (pipelineType: PipelineType) => {\r\n const filterActions = createFilterActions(pipelineType);\r\n const searchTransactionsActions = createSearchTransactionActions(pipelineType);\r\n\r\n function init() {\r\n return async (dispatch: TDispatch, getState: () => AppState) => {\r\n try {\r\n const { initialFilter } = amrPipelineFilterSelector(pipelineType)(getState());\r\n\r\n // load Filters for all tabs\r\n await dispatch(loadFilters());\r\n\r\n if (!initialFilter) {\r\n dispatch(initFilter());\r\n\r\n const hasImFiltersAccess = user.hasFeatures(SubscriptionFeature.IssuanceMonitorFiltersEmailAlerts);\r\n\r\n if (hasImFiltersAccess) {\r\n const {\r\n imUserConfig: { filtersConfig },\r\n } = getState();\r\n\r\n let filterType =\r\n pipelineType !== PipelineType.ArrangerPipeline\r\n ? UserConfigType.imFilter\r\n : UserConfigType.apFilter;\r\n\r\n const selectedFilter = filtersConfig[filterType].value.find(filter => filter.default);\r\n dispatch(filterActions.selectFilterFromConfig(selectedFilter, selectedFilter?.referenceName));\r\n }\r\n\r\n await dispatch(setFilterFromSearchString());\r\n }\r\n await dispatch(applyFilterAndSearch());\r\n } catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n }\r\n };\r\n }\r\n\r\n function filterExistingOptions(optionsNames: string[], optionFilter: FilterSelectGroup) {\r\n return optionsNames.filter(o => optionFilter.filter.find(f => f.value === o));\r\n }\r\n\r\n function setFilterFromSearchString() {\r\n return async (dispatch: TDispatch, getState: () => AppState) => {\r\n const { filter } = issuanceMonitorFilterSelector(pipelineType)(getState());\r\n const {\r\n imUserConfig: { filtersConfig },\r\n } = getState();\r\n\r\n const queryString = history.location.search;\r\n\r\n if (!queryString) {\r\n return;\r\n }\r\n\r\n // Available for all\r\n let arrangerReferenceNames: string[] = [];\r\n let collateralManagerReferenceNames: string[] = [];\r\n let transactionTypesValues: string[] = [];\r\n let currenciesValues: string[] = [];\r\n let statusValues: string[] = [];\r\n let collateralTypesValues: string[] = [];\r\n let ratingValues: string[] = [];\r\n\r\n // Only with IM subscription\r\n let filterReferenceName: string = '';\r\n let dealsReferenceNames: string[] = [];\r\n let dealsLegalNamesValues: string[] = [];\r\n let trusteesReferenceNames: string[] = [];\r\n let riEndFromValue: string = '';\r\n let riEndToValue: string = '';\r\n let ncEndFromValue: string = '';\r\n let ncEndToValue: string = '';\r\n let pricingDateFromValue: Date | null = null;\r\n let pricingDateToValue: Date | null = null;\r\n let couponValue: string = '';\r\n let esgValue: boolean | undefined = undefined;\r\n let euComplianceValue: boolean | undefined = undefined;\r\n let staticDealValue: boolean | undefined = undefined;\r\n let isAmrValue: boolean | undefined = undefined;\r\n let outOfNCValue: boolean | undefined = undefined;\r\n let outOfRIValue: boolean | undefined = undefined;\r\n\r\n const arrangersSerializer = arrangers(\r\n arrangerNames => (arrangerReferenceNames = filterExistingOptions(arrangerNames, filter.arrangers)),\r\n );\r\n const collateralManagersSerializer = collateralManagers(\r\n collateralManagers =>\r\n (collateralManagerReferenceNames = filterExistingOptions(collateralManagers, filter.managers)),\r\n filter.managers.filter.map(filter => filter.value as string)\r\n );\r\n const transactionTypesSerializer = transactionTypes(\r\n transactionTypes => (transactionTypesValues = transactionTypes),\r\n );\r\n const currenciesSerializer = multipleCurrencies(currencies => (currenciesValues = currencies));\r\n const statusSerializer = transactionStatuses(statuses => (statusValues = statuses));\r\n const collateralTypesSerializer = collateralTypes(types => (collateralTypesValues = types));\r\n const ratingsSerializer = ratings(ratings => (ratingValues = ratings));\r\n const filterSerializer = savedFilter(filter => (filterReferenceName = filter));\r\n const trusteesSerializer = trustees(\r\n trusteesNames => (trusteesReferenceNames = filterExistingOptions(trusteesNames, filter.trustees)),\r\n );\r\n const dealsReferenceNamesSerializer = deals(deals => (dealsReferenceNames = deals));\r\n const dealsLegalNamesSerializer = dealsLegalNames(deals => (dealsLegalNamesValues = deals));\r\n const riEndFromSerializer = reinvestmentEndFrom(riEndFrom => (riEndFromValue = riEndFrom));\r\n const riEndToSerializer = reinvestmentEndTo(riEndTo => (riEndToValue = riEndTo));\r\n const ncEndFromSerializer = nonCallEndFrom(ncEndFrom => (ncEndFromValue = ncEndFrom));\r\n const ncEndToSerializer = nonCallEndTo(ncEndTo => (ncEndToValue = ncEndTo));\r\n const pricingDateFromSerializer = pricingDateFrom(\r\n pricingDateFrom => (pricingDateFromValue = pricingDateFrom),\r\n );\r\n const pricingDateToSerializer = pricingDateTo(pricingDateTo => (pricingDateToValue = pricingDateTo));\r\n const couponSerializer = coupon(coupon => (couponValue = coupon));\r\n const esgSerializer = esg(esg => (esgValue = esg));\r\n const euComplianceSerializer = euCompliance(euCompliance => (euComplianceValue = euCompliance));\r\n const staticDealsSerializer = staticDeals(staticDeals => (staticDealValue = staticDeals));\r\n const isAmrSerializer = amr(amr => (isAmrValue = amr));\r\n const outOfNCSerializer = outOfNC(outOfNC => (outOfNCValue = outOfNC));\r\n const outOfRISerializer = outOfRI(outOfRI => (outOfRIValue = outOfRI));\r\n\r\n const hasImFiltersAccess = user.hasFeatures(SubscriptionFeature.IssuanceMonitorFiltersEmailAlerts);\r\n\r\n const generalSerializers: QueryStringArgumentSerializer[] = [\r\n collateralManagersSerializer,\r\n arrangersSerializer,\r\n transactionTypesSerializer,\r\n currenciesSerializer,\r\n ratingsSerializer,\r\n statusSerializer,\r\n collateralTypesSerializer,\r\n ];\r\n\r\n const imFilterSubscriptionSerializers: QueryStringArgumentSerializer[] = [\r\n filterSerializer,\r\n dealsReferenceNamesSerializer,\r\n dealsLegalNamesSerializer,\r\n trusteesSerializer,\r\n riEndFromSerializer,\r\n riEndToSerializer,\r\n ncEndFromSerializer,\r\n ncEndToSerializer,\r\n pricingDateFromSerializer,\r\n pricingDateToSerializer,\r\n couponSerializer,\r\n esgSerializer,\r\n euComplianceSerializer,\r\n staticDealsSerializer,\r\n isAmrSerializer,\r\n outOfNCSerializer,\r\n outOfRISerializer,\r\n ];\r\n\r\n const serializers = hasImFiltersAccess\r\n ? [...generalSerializers, ...imFilterSubscriptionSerializers]\r\n : generalSerializers;\r\n\r\n queryStringSerializer.deserialize(queryString, serializers);\r\n\r\n if (filterReferenceName) {\r\n let filterType =\r\n pipelineType !== PipelineType.ArrangerPipeline ? UserConfigType.imFilter : UserConfigType.apFilter;\r\n\r\n const selectedFilter = filtersConfig[filterType].value.find(\r\n filter => filter.referenceName === filterReferenceName,\r\n );\r\n\r\n return dispatch(filterActions.selectFilterFromConfig(selectedFilter, filterReferenceName));\r\n }\r\n\r\n if (\r\n arrangerReferenceNames.length ||\r\n collateralManagerReferenceNames.length ||\r\n dealsReferenceNames.length ||\r\n dealsLegalNamesValues.length ||\r\n transactionTypesValues.length ||\r\n trusteesReferenceNames.length ||\r\n currenciesValues.length ||\r\n riEndFromValue ||\r\n riEndToValue ||\r\n ncEndFromValue ||\r\n ncEndToValue ||\r\n pricingDateFromValue ||\r\n pricingDateToValue ||\r\n ratingValues.length ||\r\n couponValue ||\r\n !isNil(esgValue) ||\r\n !isNil(euComplianceValue) ||\r\n !isNil(staticDealValue) ||\r\n !isNil(isAmrValue) ||\r\n !isNil(outOfNCValue) ||\r\n !isNil(outOfRIValue) ||\r\n statusValues.length ||\r\n collateralTypesValues.length\r\n ) {\r\n dispatch(filterActions.resetFiltersAndUnselectSavedFilter());\r\n dispatch(searchTransactionsActions.reset());\r\n dispatch(filterActions.resetFiltersVisibility());\r\n }\r\n\r\n if (trusteesReferenceNames.length) {\r\n dispatch(filterActions.makeFilterVisible('trustees'));\r\n }\r\n\r\n if (riEndFromValue || riEndToValue) {\r\n dispatch(filterActions.makeFilterVisible('reinvestmentEnd'));\r\n dispatch(filterActions.filterDateSelectOption(dateRangeFilterOptions.YearsRange, 'reinvestmentEnd'));\r\n dispatch(\r\n filterActions.filterDateSelectYearsRange(\r\n { from: riEndFromValue, to: riEndToValue },\r\n 'reinvestmentEnd',\r\n ),\r\n );\r\n }\r\n\r\n if (ncEndFromValue || ncEndToValue) {\r\n dispatch(filterActions.makeFilterVisible('nonCallEnd'));\r\n dispatch(filterActions.filterDateSelectOption(dateRangeFilterOptions.YearsRange, 'nonCallEnd'));\r\n dispatch(\r\n filterActions.filterDateSelectYearsRange({ from: ncEndFromValue, to: ncEndToValue }, 'nonCallEnd'),\r\n );\r\n }\r\n\r\n if (pricingDateFromValue || pricingDateToValue) {\r\n dispatch(filterActions.makeFilterVisible('pricingDate'));\r\n dispatch(filterActions.filterDateSelectOption(dateRangeFilterOptions.Custom, 'pricingDate'));\r\n dispatch(\r\n filterActions.filterDateSelectCustomRange(\r\n { from: pricingDateFromValue, to: pricingDateToValue },\r\n 'pricingDate',\r\n ),\r\n );\r\n }\r\n\r\n if (couponValue) {\r\n dispatch(filterActions.makeFilterVisible('coupons'));\r\n dispatch(filterActions.filterRadioChange(couponValue, 'coupons'));\r\n }\r\n\r\n if (!isNil(esgValue)) {\r\n dispatch(filterActions.makeFilterVisible('esg'));\r\n dispatch(filterActions.filterRadioChange(esgValue, 'esg'));\r\n }\r\n\r\n if (!isNil(euComplianceValue)) {\r\n dispatch(filterActions.makeFilterVisible('euCompliance'));\r\n dispatch(filterActions.filterRadioChange(euComplianceValue, 'euCompliance'));\r\n }\r\n\r\n if (!isNil(staticDealValue)) {\r\n dispatch(filterActions.makeFilterVisible('staticDeal'));\r\n dispatch(filterActions.filterRadioChange(staticDealValue, 'staticDeal'));\r\n }\r\n\r\n if (!isNil(isAmrValue)) {\r\n dispatch(filterActions.makeFilterVisible('amrDeal'));\r\n dispatch(filterActions.filterRadioChange(isAmrValue, 'amrDeal'));\r\n }\r\n\r\n if (!isNil(outOfNCValue)) {\r\n dispatch(filterActions.makeFilterVisible('outOfNC'));\r\n dispatch(filterActions.filterRadioChange(outOfNCValue, 'outOfNC'));\r\n }\r\n\r\n if (!isNil(outOfRIValue)) {\r\n dispatch(filterActions.makeFilterVisible('outOfRI'));\r\n dispatch(filterActions.filterRadioChange(outOfRIValue, 'outOfRI'));\r\n }\r\n\r\n arrangerReferenceNames.map(referenceName =>\r\n dispatch(filterActions.filterSelectChange(referenceName, 'arrangers')),\r\n );\r\n trusteesReferenceNames.map(referenceName =>\r\n dispatch(filterActions.filterSelectChange(referenceName, 'trustees')),\r\n );\r\n\r\n collateralManagerReferenceNames.map(referenceName =>\r\n dispatch(filterActions.filterSelectChange(referenceName, 'managers')),\r\n );\r\n\r\n dealsReferenceNames.map((referenceName, i) =>\r\n dispatch(\r\n searchTransactionsActions.addSearchItem({\r\n label: dealsLegalNamesValues[i] ?? referenceName,\r\n referenceName,\r\n }),\r\n ),\r\n );\r\n\r\n transactionTypesValues.map(transactionType =>\r\n dispatch(filterActions.filterSelectChange(transactionType, 'transactionTypes')),\r\n );\r\n\r\n currenciesValues.map(currency => dispatch(filterActions.filterSelectChange(currency, 'currency')));\r\n\r\n ratingValues.map(rating => dispatch(filterActions.filterSelectChange(rating, 'ratings')));\r\n\r\n statusValues.map(status => dispatch(filterActions.filterSelectChange(status, 'statuses')));\r\n\r\n collateralTypesValues.map(collateralType =>\r\n dispatch(filterActions.filterSelectChange(collateralType, 'collateralType')),\r\n );\r\n\r\n history.replace(history.location.pathname);\r\n };\r\n }\r\n\r\n function logInitialAccessToIM() {\r\n return async (dispatch: TDispatch) => {\r\n await amrPipelineService.logImUserActivity();\r\n\r\n dispatch({\r\n type: actionTypes.PIPELINE_INITIAL_LOAD,\r\n pipelineType,\r\n });\r\n };\r\n }\r\n\r\n function handleVisibilityFilter(filterName: string) {\r\n return (dispatch: TDispatch, getState: () => AppState) => {\r\n dispatch(filterActions.filterVisibilityChange(filterName));\r\n const { filter, lastAppliedFilter } = amrPipelineFilterSelector(pipelineType)(getState());\r\n\r\n const filterChanged = filterUtils.isFilterChanged(pipelineType, filter, lastAppliedFilter);\r\n const currentFilter = filter[filterName];\r\n\r\n if (!currentFilter.visible) {\r\n dispatch(filterActions.updateFilterState());\r\n if (filterChanged) {\r\n dispatch(apply());\r\n }\r\n }\r\n };\r\n }\r\n\r\n function loadFilters() {\r\n return async (dispatch: TDispatch, getState: () => AppState) => {\r\n const { initialFilter, redirectFilters } = issuanceMonitorFilterSelector(pipelineType)(getState());\r\n\r\n if (!initialFilter) {\r\n await Promise.all([\r\n dispatch(\r\n filterActions.storeFilterData.request({\r\n filterName: 'managers',\r\n filterType: pipelineType,\r\n }),\r\n ),\r\n dispatch(\r\n filterActions.storeFilterData.request({\r\n filterName: 'arrangers',\r\n filterType: pipelineType,\r\n }),\r\n ),\r\n dispatch(\r\n filterActions.storeFilterData.request({\r\n filterName: 'classNames',\r\n filterType: pipelineType,\r\n }),\r\n ),\r\n dispatch(\r\n filterActions.storeFilterData.request({\r\n filterName: 'trustees',\r\n filterType: pipelineType,\r\n }),\r\n ),\r\n ]);\r\n\r\n const [managers, arrangers, classNames, trustees]: [Company[], Company[], string[], Company[]] =\r\n await Promise.all([\r\n amrCompaniesService.getManagersList(HavingDealType.CmHavingAllPublishedDeals),\r\n amrCompaniesService.getArrangersList(true),\r\n amrPipelineService.getTransactionClassesNames(),\r\n amrCompaniesService.getTrusteeList(),\r\n ]);\r\n\r\n await Promise.all([\r\n dispatch(\r\n filterActions.storeFilterData.success({\r\n filterName: 'managers',\r\n filterType: pipelineType,\r\n data: managers\r\n .sort((a, b) => a.legalName.localeCompare(b.legalName))\r\n .map(m => ({\r\n selected: false,\r\n disabled: false,\r\n visible: true,\r\n value: m.referenceName,\r\n text: m.legalName,\r\n })),\r\n }),\r\n ),\r\n dispatch(\r\n filterActions.storeFilterData.success({\r\n filterName: 'arrangers',\r\n filterType: pipelineType,\r\n data: arrangers\r\n .sort((a, b) => a.legalName.localeCompare(b.legalName))\r\n .map(a => ({\r\n selected: false,\r\n disabled: false,\r\n visible: true,\r\n value: a.referenceName,\r\n text: a.legalName + (a.code ? ' (' + a.code + ')' : ''),\r\n })),\r\n }),\r\n ),\r\n dispatch(\r\n filterActions.storeFilterData.success({\r\n filterName: 'classNames',\r\n filterType: pipelineType,\r\n data: classNames\r\n .sort((a, b) => a.localeCompare(b))\r\n .map(\r\n a =>\r\n redirectFilters?.classNames?.find(f => f.value === a) ?? {\r\n selected: false,\r\n disabled: false,\r\n visible: true,\r\n value: a,\r\n text: a,\r\n },\r\n ),\r\n }),\r\n ),\r\n dispatch(\r\n filterActions.storeFilterData.success({\r\n filterName: 'trustees',\r\n filterType: pipelineType,\r\n data: trustees\r\n .sort((a, b) => a.legalName.localeCompare(b.legalName))\r\n .map(t => ({\r\n selected: false,\r\n disabled: false,\r\n visible: true,\r\n value: t.referenceName,\r\n text: t.legalName,\r\n })),\r\n }),\r\n ),\r\n ]);\r\n }\r\n };\r\n }\r\n\r\n function initFilter() {\r\n return (dispatch: TDispatch, getState: () => AppState) => {\r\n const { filter } = amrPipelineFilterSelector(pipelineType)(getState());\r\n const newFilter = { ...filter };\r\n\r\n let statusOptions = TransactionStatuses;\r\n\r\n if (user.hasRoles(...roles.getAllRolesExclude(...roles.admin(), roles.DataEntry))) {\r\n statusOptions = TransactionStatuses.filter(status => status.value !== TransactionStatus.Draft);\r\n }\r\n\r\n (newFilter as DealsPipelineFilters).statuses.filter = statusOptions.map(s => ({\r\n ...s,\r\n selected: false,\r\n disabled: false,\r\n visible: true,\r\n }));\r\n\r\n dispatch(filterActions.init(newFilter));\r\n dispatch(filterActions.updateFilterState());\r\n };\r\n }\r\n\r\n function apply() {\r\n return (dispatch: TDispatch) => {\r\n dispatch(resetTransactions());\r\n dispatch(applyFilterAndSearch());\r\n };\r\n }\r\n\r\n function exportTransactionsClasses(exportedFrom: PipelineView) {\r\n return (dispatch: Dispatch, getState: () => AppState) => {\r\n const {\r\n deals: { classSortBy, classSortDirection, dealSortBy, dealSortDirection },\r\n searchTransactions: { searchTermItems },\r\n } = amrPipelineSelector(pipelineType)(getState());\r\n\r\n const { lastAppliedFilter } = amrPipelineFilterSelector(pipelineType)(getState());\r\n\r\n dispatch(setExportLoading(true));\r\n\r\n const { deals, dealsClasses } = groupSearchByDealAndClassIndicators(searchTermItems);\r\n\r\n const exportCriteria = {\r\n ...getFilterCriteria(lastAppliedFilter, pipelineType),\r\n deals,\r\n dealsClasses,\r\n exportedFrom,\r\n };\r\n\r\n const classSortCriteria = mergeSortCriteria(\r\n classSortBy,\r\n classSortDirection,\r\n constants.defaultClassOrderCriteria,\r\n );\r\n const dealSortCriteria = mergeSortCriteria(\r\n dealSortBy,\r\n dealSortDirection,\r\n constants.defaultDealOrderCriteria,\r\n );\r\n\r\n amrPipelineService\r\n .exportTransactionsClasses(exportCriteria, dealSortCriteria, classSortCriteria)\r\n .then((file: { blob: Blob }) =>\r\n saveAs(\r\n file.blob,\r\n `Issuance Monitor - ${moment().format(constants.issuanceMonitorExportDateFormat)}.xlsx`,\r\n ),\r\n )\r\n .finally(() => dispatch(setExportLoading(false)));\r\n };\r\n }\r\n\r\n function reset() {\r\n return (dispatch: TDispatch) => {\r\n dispatch(filterActions.resetFilterState());\r\n dispatch({\r\n type: actionTypes.PIPELINE_RESET,\r\n pipelineType,\r\n });\r\n };\r\n }\r\n\r\n function searchTransactions(isSearching: boolean) {\r\n return {\r\n type: actionTypes.PIPELINE_SEARCH_TRANSACTIONS,\r\n pipelineType,\r\n isSearching,\r\n };\r\n }\r\n\r\n function searchClasses(isSearching: boolean) {\r\n return {\r\n type: actionTypes.PIPELINE_SEARCH_CLASSES,\r\n pipelineType,\r\n isSearching,\r\n };\r\n }\r\n\r\n function dealSortingChanged(sortBy: string, direction: string) {\r\n return (dispatch: TDispatch) => {\r\n dispatch({\r\n type: actionTypes.PIPELINE_DEAL_SORTING_CHANGED,\r\n pipelineType,\r\n sortBy,\r\n direction,\r\n });\r\n };\r\n }\r\n\r\n function classSortingChanged(sortBy: string, direction: string) {\r\n return (dispatch: TDispatch) => {\r\n dispatch({\r\n type: actionTypes.PIPELINE_CLASS_SORTING_CHANGED,\r\n pipelineType,\r\n sortBy,\r\n direction,\r\n });\r\n };\r\n }\r\n\r\n function summaryRequesting(isLoading: boolean) {\r\n return {\r\n type: actionTypes.PIPELINE_SUMMARY_REQUESTING_STATE,\r\n pipelineType,\r\n isLoading,\r\n };\r\n }\r\n\r\n function loadSummary() {\r\n return async (dispatch: TDispatch, getState: () => AppState) => {\r\n const {\r\n filter: { lastAppliedFilter },\r\n searchTransactions: { searchTermItems },\r\n } = amrPipelineSelector(pipelineType)(getState());\r\n\r\n const { shouldShowTransactionsSummary, shouldShowClassesSummary } = summarySelector(pipelineType)(getState());\r\n\r\n const filterCriteria = {\r\n ...getFilterCriteria(lastAppliedFilter, pipelineType),\r\n deals: searchTermItems.map(i => i.referenceName),\r\n count: constants.defaultTransactionsSearchCriteria.count,\r\n };\r\n\r\n dispatch(summaryRequesting(true));\r\n\r\n try {\r\n const transactionsSummaryPromise = amrPipelineService.getTransactionsSummary(\r\n filterCriteria,\r\n shouldShowTransactionsSummary\r\n ? undefined\r\n : statsToCalculateWithoutMedians\r\n );\r\n const classesSummaryPromise = shouldShowClassesSummary ? amrPipelineService.getTransactionClassesSummary(filterCriteria) : null;\r\n\r\n const [transactionsSummary, classesSummary] = await Promise.all([\r\n transactionsSummaryPromise,\r\n classesSummaryPromise,\r\n ]);\r\n\r\n dispatch({\r\n type: actionTypes.PIPELINE_STORE_SUMMARY,\r\n pipelineType,\r\n transactionsSummary,\r\n classesSummary,\r\n });\r\n } catch (error) {\r\n dispatch(errorActions.criticalError(error));\r\n } finally {\r\n dispatch(summaryRequesting(false));\r\n }\r\n };\r\n }\r\n\r\n function applyFilterAndSearch() {\r\n return async (dispatch: TDispatch) => {\r\n dispatch(filterActions.applyFilter());\r\n\r\n try {\r\n await Promise.all([\r\n dispatch(loadClasses()),\r\n dispatch(loadTransactions()),\r\n user.hasFeatures(SubscriptionFeature.IssuanceMonitorFullAccess) ? dispatch(loadSummary()) : null,\r\n ]);\r\n } catch (e) {\r\n dispatch(filterActions.resetFilter());\r\n dispatch(errorActions.criticalError(e));\r\n }\r\n };\r\n }\r\n\r\n function loadTransactions() {\r\n return async (dispatch: TDispatch, getState: () => AppState) => {\r\n const {\r\n deals: { dealSortBy, dealSortDirection, transactionsOffset },\r\n searchTransactions: { searchTermItems },\r\n } = amrPipelineSelector(pipelineType)(getState());\r\n const { lastAppliedFilter } = amrPipelineFilterSelector(pipelineType)(getState());\r\n\r\n const { deals, dealsClasses } = groupSearchByDealAndClassIndicators(searchTermItems);\r\n\r\n const filterCriteria = {\r\n ...getFilterCriteria(lastAppliedFilter, pipelineType),\r\n deals,\r\n dealsClasses,\r\n count: 40,\r\n };\r\n\r\n const dealSortCriteria = mergeSortCriteria(\r\n dealSortBy,\r\n dealSortDirection,\r\n constants.defaultDealOrderCriteria,\r\n );\r\n\r\n dispatch(searchTransactions(true));\r\n\r\n try {\r\n const transactions: TransactionResponse = await amrPipelineService.getTransactionsList(\r\n { ...filterCriteria, offset: transactionsOffset },\r\n dealSortCriteria,\r\n );\r\n\r\n dispatch(searchTransactions(false));\r\n dispatch({\r\n type: actionTypes.PIPELINE_STORE_TRANSACTIONS,\r\n pipelineType,\r\n transactions,\r\n });\r\n\r\n if (pipelineType === PipelineType.IOIs && !transactions.items.length) {\r\n const oneIOIs: TransactionResponse = await amrPipelineService.getTransactionsList({\r\n hasIOIs: true,\r\n includeIois: true,\r\n count: 1,\r\n });\r\n\r\n const anyIOIsExists = !!oneIOIs.items.length;\r\n dispatch({\r\n type: actionTypes.PIPELINE_SET_ANY_IOIS_EXISTS,\r\n pipelineType,\r\n anyIOIsExists,\r\n });\r\n }\r\n } catch (e) {\r\n dispatch(searchTransactions(false));\r\n dispatch(errorActions.criticalError(e));\r\n }\r\n };\r\n }\r\n\r\n function loadClasses() {\r\n return async (dispatch: TDispatch, getState: () => AppState) => {\r\n const {\r\n deals: { classSortBy, classSortDirection, classesOffset },\r\n searchTransactions: { searchTermItems },\r\n } = amrPipelineSelector(pipelineType)(getState());\r\n const { lastAppliedFilter } = amrPipelineFilterSelector(pipelineType)(getState());\r\n\r\n const { deals, dealsClasses } = groupSearchByDealAndClassIndicators(searchTermItems);\r\n\r\n const filterCriteria = {\r\n ...getFilterCriteria(lastAppliedFilter, pipelineType),\r\n deals,\r\n dealsClasses,\r\n count: 40,\r\n };\r\n\r\n const classSortCriteria = mergeSortCriteria(\r\n classSortBy,\r\n classSortDirection,\r\n constants.defaultClassOrderCriteria,\r\n );\r\n\r\n dispatch(searchClasses(true));\r\n\r\n try {\r\n const classes: TransactionClassResponse = await amrPipelineService.getTransactionClasses(\r\n { ...filterCriteria, offset: classesOffset },\r\n classSortCriteria,\r\n );\r\n\r\n dispatch(searchClasses(false));\r\n dispatch({\r\n type: actionTypes.PIPELINE_STORE_CLASSES,\r\n pipelineType,\r\n classes,\r\n });\r\n } catch (e) {\r\n dispatch(searchClasses(false));\r\n dispatch(errorActions.criticalError(e));\r\n }\r\n };\r\n }\r\n\r\n function changeDealSelectFromTable(dealLegalName: string, dealReferenceName: string) {\r\n return (dispatch: TDispatch, getState: () => AppState) => {\r\n const {\r\n searchTransactions: { searchTermItems },\r\n } = amrPipelineSelector(pipelineType)(getState());\r\n const isDealSelected =\r\n searchTermItems.some(i => i.referenceName === dealReferenceName) && searchTermItems.length === 1;\r\n\r\n dispatch(filterActions.resetFiltersAndUnselectSavedFilter());\r\n dispatch(searchTransactionsActions.reset());\r\n\r\n isDealSelected\r\n ? dispatch(searchTransactionsActions.removeSearchItem(0))\r\n : dispatch(\r\n searchTransactionsActions.addSearchItem({\r\n label: dealLegalName,\r\n referenceName: dealReferenceName,\r\n }),\r\n );\r\n\r\n dispatch(apply());\r\n };\r\n }\r\n\r\n function filterReset() {\r\n return (dispatch: TDispatch) => {\r\n dispatch(filterActions.resetFiltersAndUnselectSavedFilter());\r\n dispatch(apply());\r\n };\r\n }\r\n\r\n function resetTransactions() {\r\n return {\r\n type: actionTypes.PIPELINE_RESET_TRANSACTIONS,\r\n pipelineType,\r\n };\r\n }\r\n\r\n function setExpanded(expanded: boolean) {\r\n return {\r\n type: actionTypes.PIPELINE_SET_EXPANDED,\r\n pipelineType,\r\n expanded,\r\n };\r\n }\r\n\r\n function setExportLoading(isLoading: boolean) {\r\n return {\r\n type: actionTypes.PIPELINE_EXPORT_LOAD,\r\n pipelineType,\r\n isLoading,\r\n };\r\n }\r\n\r\n function setSyndicateContacts(\r\n dealLegalName: string,\r\n dealReferenceName: string,\r\n transactionReferenceName: string,\r\n arrangerName: string,\r\n ) {\r\n return async (dispatch: TDispatch) => {\r\n try {\r\n const contacts = await amrPipelineService.getSyndicateContacts(\r\n dealReferenceName,\r\n transactionReferenceName,\r\n );\r\n\r\n dispatch({\r\n type: actionTypes.PIPELINE_SET_SYNDICATE_CONTACTS,\r\n pipelineType,\r\n transactionName: dealLegalName,\r\n contacts,\r\n arrangerName,\r\n });\r\n } catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n }\r\n };\r\n }\r\n\r\n function resetSyndicateContacts() {\r\n return {\r\n type: actionTypes.PIPELINE_SET_SYNDICATE_CONTACTS,\r\n pipelineType,\r\n syndicateContacts: null,\r\n };\r\n }\r\n\r\n return {\r\n init,\r\n reset,\r\n handleVisibilityFilter,\r\n filterReset,\r\n apply,\r\n searchTransactions,\r\n resetTransactions,\r\n dealSortingChanged,\r\n classSortingChanged,\r\n setExpanded,\r\n applyFilterAndSearch,\r\n exportTransactionsClasses,\r\n changeDealSelectFromTable,\r\n loadTransactions,\r\n loadClasses,\r\n setSyndicateContacts,\r\n resetSyndicateContacts,\r\n logInitialAccessToIM,\r\n loadFilters,\r\n initFilter,\r\n };\r\n};\r\n","import { createAction } from \"typesafe-actions\";\r\nimport { TreeSelectOption } from '../components/controls/TreeSelect';\r\nimport { TransactionAccessType } from '../types/amr-pipeline/enums/TransactionAccessType';\r\nimport {\r\n TransactionClientActivity,\r\n TransactionViewHistory,\r\n} from '../types/amr-pipeline/models/TransactionSession';\r\nimport { DocumentDownloadsStatistic } from '../types/amr-pipeline/models/DocumentDownloadsStatistic';\r\nimport { TransactionVersion } from \"../types/amr-pipeline/models/TransactionVersion\";\r\nimport { TransactionAnalyticsFilter } from '../types/analytics/AnalyticsFilter';\r\n\r\ninterface AnalyticsInitResponse {\r\n documentDownloads: DocumentDownloadsStatistic[];\r\n totalDocumentsDownloads: number;\r\n recentTransactionViews: number;\r\n totalTransactionViews: number;\r\n daysInMarket: number;\r\n versions: TransactionVersion[];\r\n clientsActivity: TransactionClientActivity[];\r\n users: TreeSelectOption[];\r\n}\r\n\r\nconst analyticsInit = createAction(\r\n \"amrPipelineTransactionAnalytics/INIT\",\r\n (resolve) => (dealReferenceName: string, transactionReferenceName: string) =>\r\n resolve({ dealReferenceName, transactionReferenceName })\r\n);\r\n\r\nconst analyticsInitResponse = createAction(\r\n \"amrPipelineTransactionAnalytics/INIT/RESPONSE\",\r\n (resolve) => (analytics: AnalyticsInitResponse) => resolve(analytics)\r\n);\r\n\r\nconst clientsActivityRequest = createAction(\r\n 'amrPipelineTransactionAnalytics/clientsActivity/REQUEST',\r\n resolve => (\r\n dealReferenceName: string,\r\n transactionReferenceName: string,\r\n startDate?: Date,\r\n endDate?: Date,\r\n ) => resolve({\r\n dealReferenceName,\r\n transactionReferenceName,\r\n startDate,\r\n endDate,\r\n })\r\n);\r\n\r\nconst clientsActivityResponse = createAction(\r\n 'amrPipelineTransactionAnalytics/clientsActivity/RESPONSE',\r\n resolve => (data: TransactionClientActivity[]) => resolve({ data })\r\n);\r\n\r\nconst transactionViewHistoryRequest = createAction(\r\n 'amrPipelineTransactionAnalytics/transactionViewHistory/REQUEST',\r\n resolve => (dealReferenceName: string, transactionReferenceName: string, startDate?: Date, endDate?: Date) =>\r\n resolve({\r\n dealReferenceName,\r\n transactionReferenceName,\r\n startDate,\r\n endDate,\r\n }),\r\n);\r\n\r\nconst transactionViewHistoryResponse = createAction(\r\n 'amrPipelineTransactionAnalytics/transactionViewHistory/RESPONSE',\r\n resolve => (data: TransactionViewHistory[]) => resolve({ data }),\r\n);\r\n\r\nconst clientsActivityFilterChange = createAction(\r\n 'amrPipelineTransactionAnalytics/clientsActivity/FILTER_CHANGE',\r\n resolve => (filter: TransactionAnalyticsFilter) => resolve(filter),\r\n);\r\n\r\nconst transactionViewHistoryFilterChange = createAction(\r\n 'amrPipelineTransactionAnalytics/transactionViewHistory/FILTER_CHANGE',\r\n resolve => (filter: TransactionAnalyticsFilter) => resolve(filter),\r\n);\r\n\r\nconst transactionViewHistoryFilterByBar = createAction(\r\n 'amrPipelineTransactionAnalytics/transactionViewHistory/FILTER_BY_BAR',\r\n resolve => (\r\n dealReferenceName: string,\r\n transactionReferenceName: string,\r\n accessType: TransactionAccessType,\r\n date: Date\r\n ) => resolve({\r\n dealReferenceName,\r\n transactionReferenceName,\r\n accessType,\r\n date\r\n }),\r\n);\r\n\r\nconst reset = createAction('amrPipelineTransactionAnalytics/RESET');\r\n\r\nexport const amrTransactionAnalyticsActions = {\r\n analyticsInit,\r\n analyticsInitResponse,\r\n clientsActivityRequest,\r\n clientsActivityResponse,\r\n transactionViewHistoryRequest,\r\n transactionViewHistoryResponse,\r\n clientsActivityFilterChange,\r\n transactionViewHistoryFilterChange,\r\n transactionViewHistoryFilterByBar,\r\n reset,\r\n};\r\n","import { createAction } from 'typesafe-actions';\r\nimport { AutoCompleteSourceItem } from '../components/amrPipeline/types/AutoCompleteInputSourceItem';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { Contact } from '../types/amr-pipeline/models/Contact';\r\nimport { PipelineHistoryItem } from '../types/state/PipelineHistoryState';\r\n\r\ninterface TransactionDetails {\r\n syndicateContacts: Contact[];\r\n}\r\n\r\nconst transactionHistoryRequest = createAction(\r\n 'amrPipelineTransactionHistory/REQUEST',\r\n resolve => (dealReferenceName: string, transactionReferenceName: string) => resolve({ dealReferenceName, transactionReferenceName })\r\n);\r\n\r\nconst transactionHistoryResponse = createAction(\r\n 'amrPipelineTransactionHistory/RESPONSE',\r\n resolve => (requestState: RequestState, transactionsHistory?: PipelineHistoryItem[], allHistoryClassesList?: AutoCompleteSourceItem[]) => resolve({ requestState, transactionsHistory, allHistoryClassesList })\r\n);\r\n\r\nconst loadTransactionDetais = createAction(\r\n 'amrPipelineTransactionHistory/loadTransactionDetais',\r\n resolve => (version: number, dealReferenceName: string, transactionReferenceName: string, companyReferenceName?: string) =>\r\n resolve({ version, dealReferenceName, transactionReferenceName, companyReferenceName })\r\n);\r\n\r\nconst storeTransactionDetais = createAction(\r\n 'amrPipelineTransactionHistory/storeTransactionDetais',\r\n resolve => (version: number, transactionDetails: TransactionDetails) =>\r\n resolve({ version, transactionDetails })\r\n);\r\n\r\nconst reset = createAction(\r\n 'amrPipelineTransactionHistory/RESET',\r\n resolve => () => resolve()\r\n);\r\n\r\nconst transactionFieldsUpdatedRequest = createAction(\r\n 'amrPipelineTransactionFieldsUpdated/REQUEST',\r\n resolve => (dealReferenceName: string, transactionReferenceName: string, classReferenceName?: string,) =>\r\n resolve({ dealReferenceName, transactionReferenceName, classReferenceName })\r\n);\r\n\r\nconst transactionFieldsUpdatedResponse = createAction(\r\n 'amrPipelineTransactionFieldsUpdated/RESPONSE',\r\n resolve => (\r\n requestState: RequestState,\r\n lastUpdatedFields?: {\r\n guidance?: Date;\r\n subscription?: Date;\r\n },\r\n ) => resolve({ requestState, lastUpdatedFields })\r\n);\r\n\r\nconst transactionFieldsUpdatedReset = createAction('amrPipelineTransactionFieldsUpdated/RESET');\r\n\r\nexport const amrTransactionHistoryActions = {\r\n transactionHistoryRequest,\r\n transactionHistoryResponse,\r\n loadTransactionDetais,\r\n storeTransactionDetais,\r\n reset,\r\n transactionFieldsUpdatedRequest,\r\n transactionFieldsUpdatedResponse,\r\n transactionFieldsUpdatedReset,\r\n};\r\n","import { createAction } from 'typesafe-actions';\r\nimport { ApiOperation } from '../types/api-operation/ApiOperation';\r\nimport { ApiOperationResult } from '../types/api-operation/ApiOperationResult';\r\nimport { ApiOperationType } from '../types/api-operation/ApiOperationType';\r\n\r\nconst waitResult = createAction(\r\n 'apiOperation/WAIT_RESULT',\r\n resolve => (...requests: ApiOperation[]) => resolve({ requests })\r\n);\r\nconst result = createAction(\r\n 'apiOperation/RESULT',\r\n resolve => (result: ApiOperationResult) => resolve({ result })\r\n)\r\nconst earlyResult = createAction(\r\n 'apiOperation/EARLY_RESULT',\r\n resolve => (result: ApiOperationResult) => resolve({ result })\r\n)\r\nconst remove = createAction(\r\n 'apiOperation/REMOVE',\r\n resolve => (token: string) => resolve({ token })\r\n)\r\nconst success = createAction(\r\n 'apiOperation/SUCCESS',\r\n resolve => (result: ApiOperationResult) => resolve({ result })\r\n)\r\nconst error = createAction(\r\n 'apiOperation/ERROR',\r\n resolve => (result: ApiOperationResult) => resolve({ result })\r\n)\r\nconst resetEvent = createAction(\r\n 'apiOperation/RESET_EVENT',\r\n resolve => (event: ApiOperationType) => resolve({ event })\r\n);\r\nconst reset = createAction('apiOperation/RESET');\r\nconst trackStuckOperations = createAction('apiOperation/TRACK_STUCK_OPERATIONS')\r\n\r\nexport const apiOperationActions = {\r\n waitResult,\r\n result,\r\n earlyResult,\r\n success,\r\n error,\r\n remove,\r\n resetEvent,\r\n reset,\r\n trackStuckOperations\r\n}\r\n","import { ActionType, createAction } from \"typesafe-actions\";\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { CompanySlim } from \"../types/company/CompanySlim\";\r\n\r\nconst request = createAction('entities/asset-manager/REQUEST');\r\nconst requestResult = createAction('entities/asset-manager/REQUEST_RESULT',\r\n resolve => (requestState: RequestState, companies: CompanySlim[] = []) =>\r\n resolve({ requestState, companies })\r\n);\r\n\r\nexport type TAssetManagerActionType =\r\n ActionType<\r\n typeof request |\r\n typeof requestResult\r\n >;\r\n\r\nexport const assetManagerActions = {\r\n request,\r\n requestResult\r\n}\r\n","import { AnyAction } from 'redux';\r\nimport { ThunkAction, ThunkDispatch } from 'redux-thunk';\r\nimport { autoFeedbackSettingsActions as actionTypes } from '../constants';\r\nimport { AutoFeedbackSettings } from '../types/models/AutoFeedbackSettings';\r\nimport { blastMessageService, bwicService } from '../services';\r\nimport { errorActions } from './error.actions';\r\nimport { controlPanelActions } from './control-panel.actions';\r\nimport { TradeStatus } from '../types/trades/TradeStatus';\r\nimport { getLatestStage1Bids, getSecuritiesWithLatestBids } from '../selectors';\r\nimport { biddingUtils, numericUtils } from '../utils';\r\nimport { BwicPosition } from '../types/bwic/BwicPosition';\r\nimport { Bid } from '../types/bidding/Bid';\r\nimport { feedbackTypes } from '../constants/bidding';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { Bwic } from '../types/bwic/Bwic';\r\nimport { CompanySlim } from '../types/company/CompanySlim';\r\nimport { BlastMessage } from '../types/blast-message/BlastMessage';\r\nimport { BwicProcessType } from '../types/models/Process';\r\nimport { OpenBiddingStatus } from '../types/enums/OpenBiddingStatus';\r\nimport { BidLevel } from '../types/bidding/BidLevel';\r\nimport moment from 'moment';\r\nimport dateTimeUtils from '../utils/dateTime.utils';\r\nimport { calculateStage2Participants } from '../utils/stage2-participants-calculator';\r\nimport { BidRequestType } from '../types/bidding/BidRequest';\r\n\r\nexport const autoFeedbackSettingsActions = {\r\n showAutoFeedbackSettingsPanel,\r\n toggleAutoFeedbackSettingsPanel,\r\n toggleAutofeedback\r\n}\r\n\r\ntype TDispatch = ThunkDispatch;\r\ntype TAction = ThunkAction;\r\n\r\nfunction toggleAutofeedback() {\r\n return (dispatch: TDispatch, getState: () => any): void => {\r\n const { bwic } = getState().bidding;\r\n const settings: AutoFeedbackSettings = bwic.autoFeedbackConfiguration;\r\n\r\n const autoFeedbackSettings = {\r\n onPlatform: !settings.onPlatform,\r\n offPlatform: !settings.offPlatform\r\n };\r\n\r\n dispatch(saveAutoFeedbackSettings(bwic.referenceName, autoFeedbackSettings));\r\n };\r\n}\r\n\r\nfunction saveAutoFeedbackSettings(\r\n bwicReferenceName: string,\r\n settings: AutoFeedbackSettings\r\n): TAction {\r\n return (dispatch: TDispatch, getState: () => AppState): void => {\r\n const bwic: Bwic = getState().bidding.bwic;\r\n\r\n if (bwic) {\r\n dispatch(saving(true));\r\n\r\n bwicService\r\n .saveAutoFeedbackConfiguration(bwicReferenceName, settings)\r\n .then(saved)\r\n .catch(() => errorActions.unexpectedError())\r\n .finally(() => dispatch(saving(false)));\r\n }\r\n\r\n function saved() {\r\n dispatch(storeSettings(settings));\r\n\r\n const isTopXStage2 =\r\n bwic.process.type === BwicProcessType.TopX &&\r\n bwic.process.stagedBiddingStatus === OpenBiddingStatus.stage1Ended;\r\n\r\n if (settings.onPlatform && settings.onPlatform) {\r\n\r\n const securities = getState().sellerBidding.securities\r\n .filter(s => s.trade == null || s.trade.status === TradeStatus.rejected);\r\n\r\n const blastMessage: BlastMessage = { companyMessages: [] };\r\n\r\n securities.forEach((s: BwicPosition) => {\r\n if (isTopXStage2) {\r\n addTopXStage2BlastMessageItems(blastMessage, s, bwic);\r\n } else {\r\n addBlastMessageItems(blastMessage, s, bwic.companies)\r\n }\r\n });\r\n\r\n let shouldSendBlastMessage = true;\r\n if (bwic.process.autoFeedbackDelay) {\r\n const autoFeedbackDelayMinutes = dateTimeUtils.parseTimeSpan(bwic.process.autoFeedbackDelay).totalMinutes;\r\n if (autoFeedbackDelayMinutes) {\r\n const bwicBidsDueDatePlusAutoFeedbackDelay = moment\r\n .utc(bwic.bidsDueUtc)\r\n .add(autoFeedbackDelayMinutes, 'minutes')\r\n shouldSendBlastMessage = moment().isSameOrAfter(bwicBidsDueDatePlusAutoFeedbackDelay);\r\n }\r\n }\r\n\r\n if (shouldSendBlastMessage && blastMessage.companyMessages.some(m => m.positionMessages.length > 0)) {\r\n dispatch(sendBlastMessage(bwic.referenceName, blastMessage));\r\n }\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction addTopXStage2BlastMessageItems(message: BlastMessage, security: BwicPosition, bwic: Bwic) {\r\n const [{ bids }] = getSecuritiesWithLatestBids({ securities: [security] }); // Take latest bids to build actual top rate\r\n const bidsByLevel = biddingUtils.groupBidsByLevel(bids);\r\n\r\n // Send feedack to Top [x] participaants\r\n bidsByLevel\r\n .slice(0, bwic.process.topX!.improverCount) // Take top x\r\n .forEach((group, index) => {\r\n const level = index as BidLevel;\r\n let feedback: number | undefined;\r\n switch (level) {\r\n case BidLevel.Best: feedback = group.length === 1 ? feedbackTypes.best : feedbackTypes.tiedForBest; break;\r\n case BidLevel.Cover: feedback = feedbackTypes.cover; break;\r\n case BidLevel.Third: feedback = feedbackTypes.third; break;\r\n case BidLevel.Fourth: feedback = feedbackTypes.fourth; break;\r\n case BidLevel.Fifth: feedback = feedbackTypes.fifth; break;\r\n default: feedback = undefined;\r\n }\r\n\r\n if (feedback != null) {\r\n group.forEach(b => addBlastMessageItem(message, security.id, b.company.id, b, feedback));\r\n }\r\n });\r\n\r\n // Send 'Not in top [x]' to participants who passed to stage 2 but out of top [x]\r\n const stage2Participants = calculateStage2Participants(getLatestStage1Bids(security.bids ?? []), bwic.process);\r\n bidsByLevel\r\n .slice(bwic.process.topX!.improverCount, bidsByLevel.length) // Out of top x\r\n .forEach(group =>\r\n group.forEach(b => {\r\n if (stage2Participants[biddingUtils.getBidCompanyIdentifier(b)]) {\r\n addBlastMessageItem(message, security.id, b.company.id, b, feedbackTypes.outOfTop3);\r\n }\r\n })\r\n )\r\n}\r\n\r\nfunction addBlastMessageItems(message: BlastMessage, security: BwicPosition, participants: CompanySlim[]) {\r\n const [{ bids }] = getSecuritiesWithLatestBids({ securities: [security] }); // Take latest bids\r\n const [best, cover, third, ...notInTop3] = biddingUtils.groupBidsByLevel(bids);\r\n const hasManyBestBids = best?.length > 1;\r\n\r\n (best || []).forEach(b => addBlastMessageItem(\r\n message,\r\n security.id,\r\n b.company.id,\r\n b,\r\n hasManyBestBids ? feedbackTypes.tiedForBest : feedbackTypes.best));\r\n\r\n cover && cover.forEach(b => addBlastMessageItem(message, security.id, b.company.id, b, feedbackTypes.cover));\r\n third && third.forEach(b => addBlastMessageItem(message, security.id, b.company.id, b, feedbackTypes.third));\r\n\r\n if (notInTop3 && notInTop3.length) {\r\n notInTop3.flat().forEach(b => addBlastMessageItem(message, security.id, b.company.id, b, feedbackTypes.outOfTop3));\r\n }\r\n\r\n // Send 'bid or pass' to participants without bids\r\n participants\r\n .filter(p => !security.bids?.some(b => biddingUtils.getBidCompanyIdentifier(b) === String(p.id)))\r\n .forEach(p => addBlastMessageItem(message, security.id, p.id, undefined, undefined, BidRequestType.BidOrPass));\r\n}\r\n\r\nfunction addBlastMessageItem(\r\n message: BlastMessage,\r\n positionId: number,\r\n brokerDealerCompanyId: number,\r\n bid?: Bid,\r\n feedbackType?: number,\r\n bidRequestType?: number) {\r\n let companyMessages = message.companyMessages.find(c =>\r\n c.brokerDealerCompanyId === brokerDealerCompanyId &&\r\n numericUtils.numberOrDefault(c.buyerPseudoOrderNumber) === numericUtils.numberOrDefault(bid?.buyerPseudoOrderNumber)\r\n );\r\n\r\n if (!companyMessages) {\r\n companyMessages = {\r\n brokerDealerCompanyId,\r\n buyerPseudoOrderNumber: bid?.buyerPseudoOrderNumber,\r\n positionMessages: []\r\n };\r\n\r\n message.companyMessages.push(companyMessages);\r\n }\r\n\r\n companyMessages.positionMessages.push({\r\n positionId,\r\n feedbackBidId: bid?.id,\r\n feedbackType,\r\n bidRequestType\r\n });\r\n}\r\n\r\nfunction sendBlastMessage(bwicReferenceName: string, message: BlastMessage) {\r\n return async (dispatch: TDispatch) => {\r\n dispatch(blastMessageSendingState(true));\r\n\r\n try {\r\n await blastMessageService.send(bwicReferenceName, message);\r\n } catch (e) {\r\n dispatch(errorActions.unexpectedError(e));\r\n } finally {\r\n dispatch(blastMessageSendingState(false));\r\n }\r\n }\r\n}\r\n\r\nfunction blastMessageSendingState(isSending: boolean) {\r\n return {\r\n type: actionTypes.AUTO_FEEDBACK_BLAST_MESSAGE_SENDING,\r\n isSending\r\n };\r\n}\r\n\r\nfunction saving(isSaving: boolean): AnyAction {\r\n return {\r\n type: actionTypes.AUTO_FEEDBACK_SETTINGS_SAVING,\r\n isSaving\r\n };\r\n}\r\n\r\nfunction storeSettings(settings: AutoFeedbackSettings): AnyAction {\r\n return {\r\n type: actionTypes.AUTO_FEEDBACK_SETTINGS_STORE,\r\n settings\r\n };\r\n}\r\n\r\nfunction toggleAutoFeedbackSettingsPanel(): TAction {\r\n return (dispatch: TDispatch, getState: () => any) => {\r\n const visible: boolean = getState().sellerBidding.autoFeedbackSettingsVisible;\r\n\r\n dispatch(showAutoFeedbackSettingsPanel(!visible));\r\n };\r\n}\r\n\r\nfunction showAutoFeedbackSettingsPanel(visible: boolean): TAction {\r\n return (dispatch: TDispatch, getState: () => AppState) => {\r\n if (visible) {\r\n dispatch(controlPanelActions.hide());\r\n }\r\n\r\n const { autoFeedbackSettingsVisible } = getState().sellerBidding;\r\n if (autoFeedbackSettingsVisible !== visible) {\r\n dispatch({\r\n type: actionTypes.AUTO_FEEDBACK_SETTINGS_PANEL_VISIBLE,\r\n visible\r\n });\r\n }\r\n };\r\n}\r\n","import { ActionType, createAction } from 'typesafe-actions';\r\nimport { Bank } from '../types/banks/Bank';\r\nimport { BankDetailed } from '../types/banks/BankDetailed';\r\nimport { ManagersTransactionAggregated } from '../types/banks/ManagersTransactionAggregated';\r\nimport { ManagersTransactionCountFilterValues } from '../types/banks/ManagersTransactionCountFilterValues';\r\nimport { CompanyEvent } from '../types/banks/CompanyEvent';\r\nimport { BankSyndicateContacts } from '../types/banks/BankSyndicateContacts';\r\nimport { BrokerDealerSave } from '../types/banks/BrokerDealerSave';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { BankAccessType } from '../types/amr-pipeline/enums/BankAccessType';\r\nimport { BankAnalyticsFilter } from '../types/analytics/AnalyticsFilter';\r\nimport { BankClientActivity, BankProfileView } from '../types/amr-pipeline/models/BankSession';\r\nimport { TreeSelectOption } from '../components/controls/TreeSelect';\r\nimport { BankAnalytics } from '../types/banks/BankAnalytics';\r\nimport { ExportManagersTransQueryParams } from '../services/banks.service';\r\n\r\nconst getBanks = createAction(\r\n 'banks/get/REQUEST',\r\n resolve => (userCompanyReferenceName?: string) => resolve({ userCompanyReferenceName })\r\n);\r\n\r\nconst getBanksResult = createAction('banks/get/REQUEST_RESULT',\r\n resolve => (banks: Bank[]) => resolve({ banks })\r\n);\r\n\r\nconst getBankDetails = createAction(\r\n 'banks/getOne/REQUEST',\r\n resolve => (referenceName: string) => resolve({ referenceName }),\r\n);\r\n\r\nconst getBankDetailsResult = createAction(\r\n 'banks/getOne/REQUEST_RESULT',\r\n resolve => (\r\n referenceName: string,\r\n bankDetails: BankDetailed,\r\n aggregatedManagerTransactions: ManagersTransactionAggregated[],\r\n syndicateContacts: BankSyndicateContacts,\r\n companyEvents: CompanyEvent[],\r\n ) => resolve({\r\n referenceName,\r\n bankDetails,\r\n aggregatedManagerTransactions,\r\n syndicateContacts,\r\n companyEvents,\r\n }),\r\n);\r\n\r\nconst managersTransactionCountFilter = createAction(\r\n 'banks/managersTransactionCount/FILTER',\r\n resolve => (filter: ManagersTransactionCountFilterValues) => resolve(filter),\r\n);\r\n\r\nconst managersTransactionCountFilterResult = createAction(\r\n 'banks/managersTransactionCount/FILTER_RESULT',\r\n resolve => (aggregatedManagerTransactions: ManagersTransactionAggregated[]) =>\r\n resolve(aggregatedManagerTransactions),\r\n);\r\n\r\nconst exportTransactionCountRequest = createAction(\r\n 'banks/managersTransactionCount/EXPORT',\r\n resolve => (\r\n legalName: string,\r\n referenceName: string,\r\n params: ExportManagersTransQueryParams\r\n ) => resolve({legalName, referenceName, params}),\r\n);\r\n\r\nconst exportTransactionCountResponse = createAction(\r\n 'banks/managersTransactionCount/EXPORT_RESPONSE'\r\n);\r\n\r\nconst editBank = createAction('banks/EDIT');\r\n\r\nconst editBankReset = createAction('banks/EDIT_RESET');\r\n\r\nconst updateBank = createAction(\r\n 'banks/upodate/REQUEST',\r\n resole => (\r\n referenceName: string,\r\n formData: {\r\n events: CompanyEvent[];\r\n headOfDesk?: BrokerDealerSave;\r\n headOfTrading?: BrokerDealerSave;\r\n }\r\n ) => resole({\r\n referenceName,\r\n formData,\r\n }),\r\n);\r\n\r\nconst updateBankResult = createAction(\r\n 'banks/upodate/RESULT',\r\n resole => (\r\n requestState: RequestState,\r\n result?: {\r\n syndicateContacts: BankSyndicateContacts,\r\n events: CompanyEvent[]\r\n }\r\n ) => resole({\r\n requestState,\r\n result,\r\n }),\r\n);\r\n\r\nconst setBankForAlertPopup = createAction(\r\n 'banks/alerts/SET_BANK_FOR_ALERT_POPUP',\r\n resolve => (referenceName?: string) => resolve({ referenceName }),\r\n);\r\n\r\nconst logUserActivity = createAction(\r\n 'banks/logUserActivity/REQUEST',\r\n resolve => (companyReferenceName: string, accessType: BankAccessType) =>\r\n resolve({ companyReferenceName, accessType })\r\n);\r\n\r\nconst analyticsInit = createAction(\r\n 'banks/analytics/INIT',\r\n (resolve) => (companyReferenceName: string) => resolve({ companyReferenceName })\r\n);\r\n\r\nconst analyticsInitResponse = createAction(\r\n 'banks/analytics/INIT/RESPONSE',\r\n (resolve) =>\r\n (data: {\r\n users: TreeSelectOption[];\r\n analytics: BankAnalytics;\r\n numberOfHiddenItems: number;\r\n }) =>\r\n resolve(data)\r\n);\r\n\r\nconst analyticsReset = createAction('banks/analytics/RESET');\r\n\r\nconst clientsActivityRequest = createAction(\r\n 'banks/clientsActivity/REQUEST',\r\n resolve => (\r\n companyReferenceName: string,\r\n startDate?: Date,\r\n endDate?: Date,\r\n ) => resolve({\r\n companyReferenceName,\r\n startDate,\r\n endDate,\r\n })\r\n);\r\n\r\nconst clientsActivityResponse = createAction(\r\n 'banks/clientsActivity/RESPONSE',\r\n resolve => (data: BankClientActivity[], numberOfHiddenItems: number) => resolve({ data, numberOfHiddenItems })\r\n);\r\n\r\nconst clientsActivityFilterChange = createAction(\r\n 'banks/clientsActivity/FILTER_CHANGE',\r\n resolve => (filter: BankAnalyticsFilter) => resolve(filter),\r\n);\r\n\r\nconst profileViewHistoryRequest = createAction(\r\n 'banks/profileViewHistory/REQUEST',\r\n resolve => (companyReferenceName: string, startDate?: Date | null, endDate?: Date | null) =>\r\n resolve({\r\n companyReferenceName,\r\n startDate,\r\n endDate,\r\n }),\r\n);\r\n\r\nconst profileViewHistoryResponse = createAction(\r\n 'banks/profileViewHistory/RESPONSE',\r\n resolve => (data: BankProfileView[], numberOfHiddenItems: number) => resolve({ data, numberOfHiddenItems }),\r\n);\r\n\r\nconst profileViewHistoryFilterChange = createAction(\r\n 'banks/profileViewHistory/FILTER_CHANGE',\r\n resolve => (filter: BankAnalyticsFilter) => resolve(filter),\r\n);\r\n\r\nconst profileViewHistoryFilterByBar = createAction(\r\n 'banks/profileViewHistory/FILTER_BY_BAR',\r\n resolve => (\r\n companyReferenceName: string,\r\n accessType: BankAccessType,\r\n date: Date\r\n ) => resolve({\r\n companyReferenceName,\r\n accessType,\r\n date\r\n }),\r\n);\r\n\r\nconst reset = createAction('banks/RESET');\r\n\r\n\r\nexport type TBanksActions = ActionType;\r\n\r\nexport const banksActions = {\r\n getBanks,\r\n getBanksResult,\r\n getBankDetails,\r\n getBankDetailsResult,\r\n managersTransactionCountFilter,\r\n managersTransactionCountFilterResult,\r\n exportTransactionCountRequest,\r\n exportTransactionCountResponse,\r\n editBank,\r\n editBankReset,\r\n updateBank,\r\n updateBankResult,\r\n setBankForAlertPopup,\r\n logUserActivity,\r\n analyticsInit,\r\n analyticsInitResponse,\r\n analyticsReset,\r\n clientsActivityRequest,\r\n clientsActivityResponse,\r\n clientsActivityFilterChange,\r\n profileViewHistoryRequest,\r\n profileViewHistoryResponse,\r\n profileViewHistoryFilterChange,\r\n profileViewHistoryFilterByBar,\r\n reset,\r\n};\r\n","import { InventoryPosition } from '../types/inventory/InventoryPosition';\r\nimport { uploadDocumentsActions } from './upload.documents.actions';\r\nimport { AppDispatch } from '../effects/useAppDispatch';\r\nimport { AppState } from '../types/state/AppState';\r\n\r\nfunction init() {\r\n return async (dispatch: AppDispatch, getState: () => AppState) => {\r\n const inventories: InventoryPosition[] = getState().entities.inventory.items;\r\n const securityIds = inventories.map(s => s.securityId);\r\n\r\n dispatch(uploadDocumentsActions.init(securityIds))\r\n }\r\n}\r\nfunction reset() {\r\n return uploadDocumentsActions.reset();\r\n}\r\n\r\nexport const bdInventoryDocuments = {\r\n init,\r\n reset\r\n};\r\n","import { createAction } from 'typesafe-actions';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { InventoryPosition } from '../types/inventory/InventoryPosition';\r\nimport { InventoryPositionStatus } from '../types/inventory/InventoryPositionStatus';\r\n\r\nconst loadBdInventory = createAction('bd-inventory/LOAD_BD_INVENTORY');\r\n\r\nconst request = createAction('entities/bd-inventory/REQUEST');\r\nconst requestResult = createAction(\r\n 'entities/bd-inventory/REQUEST_RESULT',\r\n resolve => (requestState: RequestState, response: { inventorySecurities: InventoryPosition[], lockModifiedDate: Date } | {}) =>\r\n resolve({ requestState, response })\r\n);\r\nconst inventoryStatusChange = createAction(\r\n 'entities/bd-inventory/INVENTORY_STATUS_CHANGE',\r\n resolve => (inventoryPositionId: number, status: InventoryPositionStatus) => resolve({ inventoryPositionId, status })\r\n);\r\nconst init = createAction('bd-inventory/INIT');\r\nconst requestInventoryExistFlag = createAction('bd-inventory/INVENTORY_EXIST_REQUEST');\r\nconst inventoryExistFlag = createAction(\r\n 'bd-inventory/INVENTORY_EXIST_FLAG',\r\n resolve => (exist: boolean) => resolve({ exist })\r\n);\r\nconst pushInventory = createAction(\r\n 'entities/bd-inventory/PUSH_INVENTORY',\r\n resolve => (data: { lockModifiedDate: Date, updatedInventorySecurities: InventoryPosition[] }) => resolve({ data })\r\n);\r\n\r\nconst resetEntities = createAction('entities/bd-inventory/RESET');\r\nconst reset = createAction('bd-inventory/RESET');\r\nconst exportInventoryRequest = createAction(\r\n 'bd-inventory/EXPORT_INVENTORY_REQUEST',\r\n resolve => (sortField: string, sortDirection: string) => resolve({ sortField, sortDirection })\r\n);\r\nconst exportInventoryResponse = createAction('bd-inventory/EXPORT_INVENTORY_RESPONSE');\r\nconst requestSendEmail = createAction(\r\n 'bd-inventory/SEND_EMAIL',\r\n resolve => (params: { selectedDealerEmail: boolean, selectedBloombergEmail: boolean }) => resolve(params)\r\n);\r\nconst toggleVisibleAddBloombergEmailForm = createAction('bd-inventory/TOGGLE_VISIBLE_ADD_BLOOMBERG_EMAIL_FORM');\r\nconst addBloombergEmailRequest = createAction(\r\n 'bd-inventory/ADD_BLOOMBERG_EMAIL_REQUEST',\r\n resolve => (email: string) => resolve({ email })\r\n);\r\nconst addBloombergEmailResponse = createAction('bd-inventory/ADD_BLOOMBERG_EMAIL_RESPONSE');\r\n\r\nconst applyFilter = createAction('bd-inventory/FILTER_APPLY');\r\nconst clearFilter = createAction('bd-inventory/FILTER_CLEAR');\r\nconst advancedFilterBlocked = createAction('bd-inventory/ADVANCED_FILTER_BLOCKED', resolve => (blocked: boolean) => resolve({ blocked }));\r\n\r\nexport const bdInventoryActions = {\r\n init,\r\n requestInventoryExistFlag,\r\n inventoryExistFlag,\r\n loadBdInventory,\r\n request,\r\n resetEntities,\r\n requestResult,\r\n inventoryStatusChange,\r\n pushInventory,\r\n applyFilter,\r\n clearFilter,\r\n reset,\r\n exportInventoryRequest,\r\n exportInventoryResponse,\r\n requestSendEmail,\r\n toggleVisibleAddBloombergEmailForm,\r\n addBloombergEmailRequest,\r\n addBloombergEmailResponse,\r\n advancedFilterBlocked\r\n};\r\n","import { createAction } from 'typesafe-actions';\r\nimport { SubmitResultState } from '../types/state/BrokerDealerBiddingState';\r\n\r\nconst confirmation = createAction('bidConfirmation/SHOW',\r\n resolve => (positionIdList: number[]) => resolve({ positionIdList })\r\n);\r\nconst submitInProgress = createAction('bidConfirmation/SUBMIT_IN_PROGRESS',\r\n resolve => (inProgress: boolean, positionId?: number) => resolve({ inProgress, positionId })\r\n);\r\nconst reset = createAction('bidConfirmation/RESET');\r\nconst submitResults = createAction('bidConfirmation/SUBMIT_RESULTS',\r\n resolve => (result: { [positionId: number]: SubmitResultState }) => resolve({ result }));\r\n\r\nexport const bidConfirmationActions = {\r\n confirmation,\r\n submitInProgress,\r\n reset,\r\n submitResults\r\n}\r\n","import { AnyAction } from \"redux\";\r\nimport { ThunkDispatch } from \"redux-thunk\";\r\nimport { entries, values } from \"lodash\";\r\nimport { history } from '../history';\r\nimport { AppState } from \"../types/state/AppState\";\r\nimport { GridColumn, GridDataItem, GridUploadStatus } from '../types/state/GridState';\r\nimport { errorActions } from './error.actions';\r\nimport { gridActions } from './grid.actions';\r\nimport { errorMessages, constants, createCompanyBobColumn } from '../constants';\r\nimport { bidOnBehalfService } from '../services/bid-on-behalf.service';\r\nimport { BidOnBehalfFileUploadResultItem } from \"../types/bid-on-behalf/BidOnBehalfFileUploadResultItem\";\r\nimport { arrayUtils } from \"../utils/array.utils\";\r\nimport { BidOnBehalfParseResultItem } from \"../types/state/BidOnBehalfState\";\r\nimport { apiUtils } from \"../utils/api.utils\";\r\nimport { notificationActions } from \"./notification.actions\";\r\nimport { dealerListPanelActions } from \"./dealer-list-panel.actions\";\r\nimport { bidOnBehalfActions } from \"./bid-on-behalf.actions\";\r\nimport { formatUtils } from \"../utils/format.utils\";\r\nimport { LocationStateBuilder } from \"../types/state/ui/LocationState\";\r\nimport { getSecuritiesWithLatestBids } from \"../selectors\";\r\nimport { BwicPosition } from \"../types/bwic/BwicPosition\";\r\nimport { Bid } from \"../types/bidding/Bid\";\r\nimport { bidOnBehalfUtils } from \"../utils\";\r\nimport { biddingUtils } from \"../utils\";\r\n\r\nexport const bidOnBehalfParseActions = {\r\n uploadFile,\r\n parseClipboard,\r\n addCompany,\r\n deleteItemsWithErrors,\r\n removeUnknownCompanyColumns,\r\n saveBids\r\n}\r\n\r\ntype TDispatch = ThunkDispatch;\r\n\r\nfunction uploadFile(file: File) {\r\n return (dispatch: TDispatch, getState: () => AppState) => {\r\n const { position, upload, mountedKey, headers, dataItems } = getState().grid;\r\n const { process } = getState().bidding.bwic;\r\n\r\n if (upload.status === GridUploadStatus.Uploading) return;\r\n\r\n const extension = (file.name.split('.').pop() || '').toLowerCase();\r\n\r\n if (extension !== 'csv' && extension !== 'xlsx') {\r\n return dispatch(errorActions.error(\r\n null,\r\n errorMessages.invalidFileType,\r\n 'Invalid file type.'\r\n ));\r\n\r\n } else if (file.size > constants.gridFileUploadMaximumSize * 1024 * 1024) {\r\n return dispatch(errorActions.error(\r\n null,\r\n errorMessages.fileSizeLimitExceeded(constants.gridFileUploadMaximumSize),\r\n 'The file is too big.'\r\n ));\r\n }\r\n\r\n if (position?.editing) {\r\n dispatch(gridActions.applyOrCancelEdit());\r\n }\r\n\r\n bidOnBehalfService\r\n .uploadFile(file, progress)\r\n .then(success)\r\n .catch(failure);\r\n\r\n dispatch(gridActions.setUploadState(GridUploadStatus.Uploading, 0, file.name));\r\n\r\n function success(fileUploadResult?: BidOnBehalfFileUploadResultItem[]) {\r\n const currentMountedKey = getState().grid.mountedKey;\r\n\r\n if (mountedKey === currentMountedKey && fileUploadResult && fileUploadResult?.length) {\r\n const { securities } = getState().sellerBidding;\r\n const acceptedTickers = apiUtils.normalize(securities, s => normalizeUppercase(s.ticker), s => s.trade != null);\r\n const result = fileUploadResult?.filter(x =>\r\n x.shortCode?.trim() && // Skip empty company short codes\r\n !acceptedTickers[normalizeUppercase(x.ticker)] // Skip traded positions\r\n ).map(x => {\r\n const level = x.level?.trim()\r\n return {\r\n level: level ? formatUtils.formatBid(Number(level), level) : '',\r\n shortCode: normalizeUppercase(x.shortCode),\r\n ticker: normalizeUppercase(x.ticker)\r\n }\r\n });\r\n\r\n if (!result?.length) {\r\n dispatch(\r\n notificationActions.notificationAddErrorMessageModal(\r\n \"The data was copied incorrectly and could not be parsed by the system. Please copy the data by selecting the Ticker and Broker-Dealer Shortcode columns.\",\r\n \"Incorrect copied data\")\r\n );\r\n dispatch(gridActions.setUploadState(GridUploadStatus.None));\r\n return;\r\n }\r\n\r\n const bidsByTicker: BidOnBehalfFileUploadResultItem[][] = [\r\n ...arrayUtils\r\n .groupBy(result, item => normalizeUppercase(item.ticker))\r\n .values()\r\n ];\r\n\r\n const acceptedCompanyShortCodes = apiUtils.normalize(\r\n getState().bidOnBehalf.companies,\r\n c => normalizeUppercase(c.code),\r\n () => true\r\n );\r\n const companyShortCodes = result.map(x => x.shortCode!);\r\n const newDataItems: BidOnBehalfParseResultItem[] = bidsByTicker.map(x => ({\r\n ticker: x[0].ticker,\r\n ...apiUtils.normalize(x, item => item.shortCode ?? '', item => item.level)\r\n }));\r\n\r\n dispatch(addDataItems(newDataItems, dataItems));\r\n dispatch(addColumns(\r\n companyShortCodes,\r\n headers,\r\n acceptedCompanyShortCodes,\r\n bidOnBehalfUtils.isBidDecreaseDisabled(process),\r\n getSecuritiesWithLatestBids({ securities })\r\n ));\r\n dispatch(gridActions.validate());\r\n setTimeout(() => dispatch(gridActions.setUploadState(GridUploadStatus.None)), 500);\r\n }\r\n }\r\n\r\n function failure(e: Error) {\r\n dispatch(gridActions.setUploadState(GridUploadStatus.None));\r\n const currentMountedKey = getState().grid.mountedKey;\r\n if (mountedKey === currentMountedKey) {\r\n dispatch(errorActions.unexpectedError(e));\r\n }\r\n }\r\n\r\n function progress(e: any) {\r\n const currentMountedKey = getState().grid.mountedKey;\r\n if (e.lengthComputable && mountedKey === currentMountedKey) {\r\n var percentComplete = (e.loaded / e.total) * 100;\r\n dispatch(gridActions.setUploadState(GridUploadStatus.Uploading, percentComplete, file.name));\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction parseClipboard(text: string) {\r\n return (dispatch: TDispatch, getState: () => AppState) => {\r\n const { mountedKey, headers, dataItems } = getState().grid;\r\n\r\n dispatch(gridActions.dataProcessing(true));\r\n\r\n bidOnBehalfService\r\n .parseClipboard(text)\r\n .then(success)\r\n .catch(failure)\r\n .finally(() => dispatch(gridActions.dataProcessing(false)));\r\n\r\n function success(parseResult: string[][]) {\r\n const currentMountedKey = getState().grid.mountedKey;\r\n if (mountedKey === currentMountedKey && parseResult?.length) {\r\n dispatch(applyClipboardParseResult(parseResult, headers, dataItems.filter(i => !i.draft)));\r\n dispatch(gridActions.validate());\r\n }\r\n }\r\n\r\n function failure(e: Error) {\r\n dispatch(gridActions.setUploadState(GridUploadStatus.None));\r\n const currentMountedKey = getState().grid.mountedKey;\r\n if (mountedKey === currentMountedKey) {\r\n dispatch(errorActions.unexpectedError(e));\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction validateDecreaseBid(bidDecreaseDisabled: boolean, securities: BwicPosition[], c: string) {\r\n return (editingBid: number, dataItem: GridDataItem) => {\r\n if (bidDecreaseDisabled) {\r\n const position = securities.find((s: BwicPosition) => s.ticker.localeCompare(dataItem.ticker as string, undefined, { sensitivity: 'accent' }) === 0);\r\n if (position) {\r\n const bid = position.bids?.find((b: Bid) => b.company.code.localeCompare(c, undefined, { sensitivity: 'accent' }) === 0);\r\n if (bid && Number(editingBid) < bid.value) {\r\n return errorMessages.valueCannotBeLess;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n}\r\n\r\nfunction addColumns(\r\n companyShortCodes: string[],\r\n existingColumns: GridColumn[],\r\n acceptedCompanes: { [companyCode: string]: boolean },\r\n bidDecreaseDisabled: boolean,\r\n securities: BwicPosition[]) {\r\n return (dispatch: TDispatch) => {\r\n const sanitized = companyShortCodes.filter(c => c?.trim()).map(c => c?.trim());\r\n const newShortCodeColumns: GridColumn[] = arrayUtils\r\n .distinct(sanitized, code => code)\r\n .filter(c => !existingColumns.some(ec => ec.name.localeCompare(c, undefined, { sensitivity: 'accent' }) === 0))\r\n .map(c =>\r\n createCompanyBobColumn(\r\n c.toUpperCase(),\r\n validateDecreaseBid(bidDecreaseDisabled, securities, c),\r\n acceptedCompanes[c] == null ? 'Company is not found' : undefined) as GridColumn\r\n );\r\n\r\n if (newShortCodeColumns.length) {\r\n const selectBdColumn = existingColumns[existingColumns.length - 1];\r\n const tickerAndShortCodeColumns = existingColumns.slice(0, -1);\r\n\r\n dispatch(gridActions.setColumns([...tickerAndShortCodeColumns, ...newShortCodeColumns, selectBdColumn]));\r\n }\r\n };\r\n}\r\n\r\nfunction addDataItems(dataItems: BidOnBehalfParseResultItem[], existingDataItems: BidOnBehalfParseResultItem[]) {\r\n return (dispatch: TDispatch) => {\r\n const isTickerEquals = (a?: string, b?: string) =>\r\n (a ?? '').trim().localeCompare((b ?? '').trim(), undefined, { sensitivity: 'accent' }) === 0;\r\n\r\n const newItems = dataItems\r\n .filter(i =>\r\n values(i).some(v => v) && ( // not empty\r\n !i.ticker?.trim() ||\r\n !existingDataItems.some(ei => isTickerEquals(ei.ticker, i.ticker))\r\n )\r\n );\r\n const updatedItems = existingDataItems\r\n .map(ei => {\r\n const sameTickerItem: BidOnBehalfParseResultItem | undefined = dataItems.find(i => i.ticker && isTickerEquals(i.ticker, ei.ticker));\r\n return sameTickerItem ? { ...ei, ...sameTickerItem } : ei;\r\n });\r\n const items = updatedItems.concat(newItems);\r\n\r\n dispatch(gridActions.clear());\r\n dispatch(gridActions.addDataItems(items));\r\n };\r\n}\r\n\r\nfunction normalizeUppercase(value?: string) {\r\n return value?.trim().toUpperCase() ?? '';\r\n}\r\n\r\nfunction applyClipboardParseResult(\r\n parseResult: string[][],\r\n columns: GridColumn[],\r\n dataItems: GridDataItem[]) {\r\n return (dispatch: TDispatch, getState: () => AppState) => {\r\n const { companies } = getState().bidOnBehalf;\r\n const { securities } = getState().sellerBidding;\r\n const { process } = getState().bidding.bwic;\r\n\r\n const acceptedCompanyShortCodes = apiUtils.normalize(companies, c => normalizeUppercase(c.code), () => true);\r\n\r\n if (!parseResult?.length || !companies?.length || !securities.length || !process) return;\r\n\r\n const hasCompanyCodes = parseResult[0]\r\n .filter(cc => cc)\r\n .some(cc => acceptedCompanyShortCodes[normalizeUppercase(cc)]);\r\n const acceptedTickers = apiUtils.normalize(securities, s => normalizeUppercase(s.ticker), s => s.trade != null);\r\n const hasTickers = parseResult.some(([ticker]) => acceptedTickers[normalizeUppercase(ticker)] != null);\r\n\r\n if (!hasCompanyCodes || !hasTickers) {\r\n return dispatch(\r\n notificationActions.notificationAddErrorMessageModal(\r\n \"The data was copied incorrectly and could not be parsed by the system. Please copy the data by selecting the Ticker and Broker-Dealer Shortcode columns.\",\r\n \"Incorrect copied data\")\r\n );\r\n }\r\n\r\n const [[, ...companyCodesRaw], ...dataRows] = parseResult.filter(row => row.some(x => x));\r\n const companyCodes = companyCodesRaw.map(c => c!.trim().toUpperCase());\r\n const parsedDataItems: BidOnBehalfParseResultItem[] =\r\n dataRows\r\n .map(([ticker, ...bids]) => ({\r\n ticker: normalizeUppercase(ticker),\r\n ...apiUtils.normalize(\r\n bids.filter((b, index) => companyCodes[index]?.trim()), // skip bid if company short code is not specified\r\n (_, index) => companyCodes[index],\r\n bid => acceptedTickers[normalizeUppercase(ticker)] || !bid?.trim() ? '' : formatUtils.formatBid(Number(bid?.trim()), bid?.trim())) // Skip bids if traded\r\n }));\r\n\r\n dispatch(addDataItems(parsedDataItems, dataItems));\r\n dispatch(addColumns(\r\n companyCodes,\r\n columns,\r\n acceptedCompanyShortCodes,\r\n bidOnBehalfUtils.isBidDecreaseDisabled(process),\r\n getSecuritiesWithLatestBids({ securities })\r\n ))\r\n };\r\n}\r\n\r\nfunction addCompany(companyCode: string) {\r\n return (dispatch: TDispatch, getState: () => AppState) => {\r\n const headers = getState().grid.headers;\r\n const { process } = getState().bidding.bwic;\r\n const { securities } = getState().sellerBidding;\r\n\r\n dispatch(gridActions.addColumn(\r\n createCompanyBobColumn(companyCode.toUpperCase(), validateDecreaseBid(bidOnBehalfUtils.isBidDecreaseDisabled(process), getSecuritiesWithLatestBids({ securities }), companyCode)),\r\n headers.length - 1));\r\n dispatch(gridActions.moveColumnData('selectBd', companyCode));\r\n dispatch(gridActions.validate());\r\n };\r\n}\r\n\r\nfunction deleteItemsWithErrors() {\r\n return (dispatch: TDispatch, getState: () => AppState) => {\r\n const dataItems: GridDataItem[] =\r\n getState().grid.dataItems.filter((x: GridDataItem) => !x.draft)\r\n\r\n const resetInvalidBids = (dataItem: GridDataItem): GridDataItem => {\r\n const columnsToReset = apiUtils.normalize(dataItem.errors ?? [], e => e.columnName, () => '');\r\n const clear = {\r\n ...dataItem,\r\n ...columnsToReset,\r\n };\r\n\r\n delete clear['errors'];\r\n return clear;\r\n }\r\n\r\n const withoutErrors = dataItems\r\n .filter(x => !x.errors?.some(e => e.columnName === 'ticker'))\r\n .map(x => x.errors?.length ? resetInvalidBids(x) : x)\r\n .map(x => ({ ...x, selectBd: undefined }))\r\n\r\n dispatch(gridActions.clear());\r\n if (withoutErrors.length) {\r\n dispatch(gridActions.addDataItems(withoutErrors))\r\n }\r\n };\r\n}\r\n\r\nfunction removeUnknownCompanyColumns() {\r\n return (dispatch: TDispatch, getState: () => AppState) => {\r\n const columns = getState().grid.headers;\r\n const companies = getState().bidOnBehalf.companies;\r\n\r\n const acceptedCompanyShortCodes = apiUtils.normalize(\r\n companies,\r\n c => c.code?.toUpperCase() ?? '',\r\n () => true\r\n );\r\n\r\n columns\r\n .filter(c => c.name !== 'ticker' && c.name !== 'selectBd' && !acceptedCompanyShortCodes[c.name?.trim()?.toUpperCase()])\r\n .forEach(c => dispatch(gridActions.removeColumn(c.name)));\r\n };\r\n}\r\n\r\nfunction saveBids() {\r\n return (dispatch: TDispatch, getState: () => AppState) => {\r\n dispatch(gridActions.validate());\r\n\r\n const isValid = getState().grid.isValid;\r\n if (!isValid) return;\r\n\r\n history.replace({\r\n ...history.location,\r\n state: new LocationStateBuilder().resetPopup().result()\r\n });\r\n\r\n\r\n const companies = getState().bidOnBehalf.companies;\r\n const positions = getState().sellerBidding.securities;\r\n\r\n getState().grid.dataItems\r\n .filter((i: GridDataItem) => !i.draft)\r\n .forEach((i: GridDataItem) =>\r\n entries(i)\r\n .forEach(([shortCode, bid]) => {\r\n const company = companies.find(c => c.code.localeCompare(shortCode, undefined, { sensitivity: 'accent' }) === 0);\r\n const position = positions.find(p => p.ticker.localeCompare(i.ticker!, undefined, { sensitivity: 'accent' }) === 0);\r\n const originalBid = position?.bids?.find(b => b.company.id === company?.id);\r\n\r\n if (company && position && bid && (!originalBid || originalBid.value !== Number(bid))) {\r\n if (getState().dealerListPanel.companyHiddenState[biddingUtils.getBidCompanyIdentifier({ company })]) {\r\n dispatch(dealerListPanelActions.toggleCompanyVisible(biddingUtils.getBidCompanyIdentifier({ company })));\r\n }\r\n\r\n dispatch(bidOnBehalfActions.editBid(position.id, company.id, formatUtils.formatBid(Number(bid)), true));\r\n }\r\n })\r\n );\r\n };\r\n}\r\n","import { createAction } from \"typesafe-actions\";\r\nimport { BidOnBehalfConflict } from \"../types/bid-on-behalf/BidOnBehalfConflict\";\r\nimport { CompanySlim } from \"../types/company/CompanySlim\";\r\n\r\nconst requestCompanies = createAction('bidOnBehalf/REQUEST');\r\nconst setCompainesRequesting = createAction(\r\n 'bidOnBehalf/REQUESTING',\r\n resolve => (isRequesting: boolean) => resolve({ isRequesting })\r\n);\r\nconst reset = createAction('bidOnBehalf/RESET');\r\nconst storeCompanies = createAction(\r\n 'bidOnBehalf/STORE',\r\n resolve => (companies: CompanySlim[]) => resolve({ companies })\r\n);\r\nconst editBid = createAction(\r\n 'bidOnBehalf/EDIT_BID',\r\n resolve => (positionId: number, companyId: number, value: string, editCompleted: boolean, error?: string) =>\r\n resolve({ positionId, companyId, value, editCompleted, error })\r\n);\r\nconst resetBidEdit = createAction(\r\n 'bidOnBehalf/RESET_BID_EDIT',\r\n resolve => (positionId: number, companyId: number) => resolve({ positionId, companyId })\r\n);\r\nconst resetCompanyBidsEdit = createAction(\r\n 'bidOnBehalf/RESET_COMPANY_BIDS_EDIT',\r\n resolve => (companyId: number) => resolve({ companyId })\r\n);\r\nconst resetEdit = createAction('bidOnBehalf/RESET_EDIT');\r\nconst pass = createAction(\r\n 'bidOnBehalf/PASS',\r\n resolve => (positionId: number, companyId: number) => resolve({ positionId, companyId })\r\n);\r\nconst axed = createAction(\r\n 'bidOnBehalf/AXED',\r\n resolve => (positionId: number, companyId: number, axed: boolean) => resolve({ positionId, companyId, axed })\r\n);\r\nconst final = createAction(\r\n 'bidOnBehalf/FINAL',\r\n resolve => (positionId: number, companyId: number, final: boolean) => resolve({ positionId, companyId, final })\r\n);\r\nconst submit = createAction(\r\n 'bidOnBehalf/SUBMIT',\r\n resolve => (resolveConflicts?: boolean) => resolve({ resolveConflicts })\r\n);\r\nconst submitProgress = createAction('bidOnBehalf/SUBMIT_POGRESS',\r\n resolve => (inProgress: boolean) => resolve({ inProgress })\r\n);\r\nconst storeConflicts = createAction(\r\n 'bidOnBehalf/CONFLICTS',\r\n resolve => (conflicts: BidOnBehalfConflict[]) => resolve({ conflicts })\r\n);\r\nconst resetConflicts = createAction('bidOnBehalf/RESET_CONFLICTS');\r\nconst conflictsPopupVisible = createAction(\r\n 'bidOnBehalf/CONFLICTS_POPUP_VISIBLE',\r\n resolve => (visible: boolean) => resolve({ visible })\r\n);\r\nconst moveNextBid = createAction('bidOnBehalf/MOVE_NEXT_BID',\r\n resolve => (companyId: number, positionId: number) => resolve({ companyId, positionId })\r\n);\r\nconst setNextBidIdentifiers = createAction('bidOnBehalf/SET_NEXT_BID_IDENTIFIERS',\r\n resolve => (companyId: number, positionId: number) => resolve({ companyId, positionId })\r\n);\r\nconst resetNextBidIdentifiers = createAction('bidOnBehalf/RESET_NEXT_BID_IDENTIFIERS');\r\n\r\nexport const bidOnBehalfActions = {\r\n requestCompanies,\r\n setCompainesRequesting,\r\n reset,\r\n storeCompanies,\r\n editBid,\r\n resetEdit,\r\n resetBidEdit,\r\n resetCompanyBidsEdit,\r\n pass,\r\n axed,\r\n final,\r\n submit,\r\n submitProgress,\r\n storeConflicts,\r\n resetConflicts,\r\n conflictsPopupVisible,\r\n moveNextBid,\r\n setNextBidIdentifiers,\r\n resetNextBidIdentifiers\r\n}\r\n","import { createAction } from 'typesafe-actions';\r\nimport { bidPlacementActions as actionTypes } from '../constants';\r\nimport { stringUtils, formatUtils, biddingUtils } from '../utils';\r\n\r\nconst setBidCanSubmit = createAction(actionTypes.SET_BID_CAN_SUBMIT, resolve => positionId => resolve({ positionId }));\r\nconst storeCanSubmitPositionFlag = createAction(actionTypes.BID_PLACEMENT_SET_BID_CAN_SUBMIT,\r\n resolve => (positionId, canSubmit) => resolve({ positionId, canSubmit })\r\n);\r\nconst revert = createAction(actionTypes.REVERT, resolve => positionId => resolve({ positionId }));\r\nconst revertAll = createAction(actionTypes.REVERT_ALL);\r\nconst commissionChangeAction = createAction(actionTypes.COMMISSION_CHANGE,\r\n resolve => (positionId, commission, error) => resolve({ positionId, commission, error })\r\n);\r\n\r\nexport const bidPlacementActions = {\r\n bidChange,\r\n axedChange,\r\n finalChange,\r\n passChange,\r\n revert,\r\n revertAll,\r\n validateSingle,\r\n validate,\r\n formatBid,\r\n setBidCanSubmit,\r\n storeCanSubmitPositionFlag,\r\n commissionChange\r\n}\r\n\r\nfunction bidChange(positionId, bid) {\r\n return (dispatch, getState) => {\r\n const editBid = getState().brokerDealerBidding.editBid[positionId];\r\n\r\n dispatch({\r\n type: actionTypes.BID_PLACEMENT_BID_CHANGE,\r\n positionId,\r\n bid\r\n });\r\n\r\n if (stringUtils.isNullOrWhiteSpace(bid)) {\r\n dispatch(setBidErrors([{ positionId, errors: {} }]));\r\n } else if (editBid && editBid.errors) {\r\n dispatch(validateSingle(positionId));\r\n }\r\n\r\n dispatch(setBidCanSubmit(positionId));\r\n };\r\n}\r\n\r\nfunction formatBid(positionId) {\r\n return (dispatch, getState) => {\r\n const position = getState().brokerDealerBidding.securities.find(s => s.id === positionId);\r\n const edit = getState().brokerDealerBidding.editBid[positionId];\r\n\r\n if (!position || !edit || edit.pass || edit.value == null) return;\r\n\r\n dispatch({\r\n type: actionTypes.BID_PLACEMENT_BID_CHANGE,\r\n positionId,\r\n bid: edit.value ? formatUtils.formatBid(edit.value) : undefined\r\n });\r\n\r\n dispatch(validateSingle(positionId));\r\n dispatch(setBidCanSubmit(positionId));\r\n };\r\n}\r\n\r\nfunction axedChange(positionId, axed) {\r\n return dispatch => {\r\n dispatch({\r\n type: actionTypes.BID_PLACEMENT_AXED_CHANGE,\r\n positionId,\r\n axed\r\n });\r\n\r\n dispatch(setBidCanSubmit(positionId));\r\n };\r\n}\r\n\r\nfunction finalChange(positionId, final) {\r\n return dispatch => {\r\n dispatch({\r\n type: actionTypes.BID_PLACEMENT_FINAL_CHANGE,\r\n positionId,\r\n final\r\n });\r\n\r\n dispatch(setBidCanSubmit(positionId));\r\n };\r\n}\r\n\r\nfunction passChange(positionId, pass) {\r\n return dispatch => {\r\n dispatch({\r\n type: actionTypes.BID_PLACEMENT_PASS_CHANGE,\r\n positionId,\r\n pass\r\n });\r\n\r\n dispatch(setBidCanSubmit(positionId));\r\n };\r\n}\r\n\r\nfunction validateSingle(positionId) {\r\n return (dispatch, getState) => {\r\n const { securities, editBid } = getState().brokerDealerBidding;\r\n const { process } = getState().bidding.bwic;\r\n const position = securities.find(s => s.id === positionId);\r\n\r\n if (position != null) {\r\n const currentBid = biddingUtils.getCurrentBid(position.bids);\r\n const errors = biddingUtils.validateBid(\r\n currentBid,\r\n editBid[positionId],\r\n process,\r\n position.openBiddingStage2Level\r\n );\r\n dispatch(setBidErrors([{ positionId, errors }]));\r\n }\r\n };\r\n}\r\n\r\nfunction validate() {\r\n return (dispatch, getState) => {\r\n const { securities, editBid } = getState().brokerDealerBidding;\r\n const { process } = getState().bidding.bwic;\r\n\r\n const validationResult = securities\r\n .filter(s => editBid[s.id] && editBid[s.id].canSubmit)\r\n .map(s => {\r\n const currentBid = biddingUtils.getCurrentBid(s.bids);\r\n const errors = biddingUtils.validateBid(\r\n currentBid,\r\n editBid[s.id],\r\n process,\r\n s.openBiddingStage2Level\r\n );\r\n\r\n return {\r\n positionId: s.id,\r\n errors\r\n };\r\n });\r\n\r\n dispatch(setBidErrors(validationResult));\r\n };\r\n}\r\n\r\nfunction setBidErrors(errors) {\r\n return {\r\n type: actionTypes.BID_PLACEMENT_SET_BID_ERRORS,\r\n errors\r\n };\r\n}\r\n\r\nfunction commissionChange(positionId, commission, error){\r\n return dispatch => {\r\n dispatch(commissionChangeAction(positionId, commission, error));\r\n dispatch(setBidCanSubmit(positionId));\r\n }\r\n}","import { biddingActions as actionTypes, roles, routes } from '../constants';\r\nimport { bwicService, companiesService } from '../services';\r\nimport {\r\n errorActions,\r\n sellerBiddingActions,\r\n brokerDealerBiddingActions,\r\n otherSellerBiddingActions,\r\n rulesActions,\r\n bwicHistoryActions\r\n} from '.';\r\nimport { user } from '../user';\r\nimport { controlPanelActions } from './control-panel.actions';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { BwicVisitorType } from '../types/state/BiddingState';\r\nimport { BwicStatus } from '../types/enums/BwicStatus';\r\nimport { history } from '../history';\r\n\r\n\r\nexport const biddingActions = {\r\n init,\r\n reset,\r\n bwicStatusChange,\r\n loadBwicParticipants,\r\n liveBiddingStage2TimeoutEnd,\r\n loading\r\n};\r\n\r\nfunction init(referenceName) {\r\n return async dispatch => {\r\n dispatch(loading(true));\r\n\r\n try {\r\n const bwicPromise = bwicService.getByReferenceName(referenceName);\r\n const userCompanyPromise = companiesService.getCurrentUserCompany();\r\n\r\n const userCompany = await userCompanyPromise;\r\n const bwic = await bwicPromise;\r\n\r\n const visitorType = getBiddingVisitorType(bwic, userCompany);\r\n\r\n dispatch({\r\n type: actionTypes.BIDDING_STORE_VISITOR_TYPE,\r\n visitorType,\r\n userCompany\r\n });\r\n\r\n dispatch(bwicHistoryActions.init(bwic.referenceName, bwic.actionHistory));\r\n dispatch(storeOriginalBwic(bwic));\r\n await dispatch(initVisitorState(visitorType, bwic));\r\n\r\n } catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n } finally {\r\n dispatch(loading(false));\r\n }\r\n };\r\n}\r\n\r\nfunction bwicStatusChange(bwicReferenceName, nextStatus) {\r\n return (dispatch, getState) => {\r\n const { bwic, visitorType } = getState().bidding;\r\n\r\n const isBwicMatch = bwic && bwic.referenceName === bwicReferenceName;\r\n if (!isBwicMatch) return;\r\n\r\n const isScheduled = bwic.status === BwicStatus.scheduled;\r\n const isNextBidding = nextStatus === BwicStatus.bidding;\r\n const isAllToAllBuyer = bwic.isAllToAll && visitorType === BwicVisitorType.Buyer;\r\n if (isScheduled && isNextBidding && isAllToAllBuyer) {\r\n // Change bwic status in store for all-to-all bidding bwic on buyer screen\r\n return dispatch({\r\n type: actionTypes.BIDDING_BWIC_STATUS_CHANGE,\r\n nextStatus\r\n });\r\n }\r\n\r\n dispatch(reset());\r\n dispatch(init(bwicReferenceName));\r\n };\r\n}\r\n\r\nfunction initVisitorState(visitorType, bwic) {\r\n return dispatch => {\r\n switch (visitorType) {\r\n case (BwicVisitorType.Seller):\r\n return dispatch(sellerBiddingActions.init(bwic));\r\n case (BwicVisitorType.OtherSeller):\r\n return dispatch(otherSellerBiddingActions.init(bwic));\r\n case (BwicVisitorType.BrokerDealer):\r\n case (BwicVisitorType.Buyer):\r\n return dispatch(brokerDealerBiddingActions.init(bwic));\r\n case (BwicVisitorType.Admin):\r\n return;\r\n default:\r\n return history.push(routes.forbidden);\r\n }\r\n };\r\n}\r\n\r\nfunction loading(isLoading) {\r\n return {\r\n type: actionTypes.BIDDING_LOADING,\r\n isLoading\r\n };\r\n}\r\n\r\nfunction storeOriginalBwic(bwic) {\r\n if (bwic.companies) {\r\n bwic.companies.sort((a, b) => a.name.localeCompare(b.name));\r\n }\r\n\r\n return {\r\n type: actionTypes.BIDDING_STORE_ORIGINAL_BWIC,\r\n bwic\r\n };\r\n}\r\n\r\nfunction getBiddingVisitorType(bwic, userCompany) {\r\n let visitorType;\r\n if (user.hasRoles(...roles.seller())) {\r\n visitorType = !bwic.isParsed && bwic.seller?.id === userCompany.id\r\n ? BwicVisitorType.Seller\r\n : BwicVisitorType.OtherSeller;\r\n } else if (user.hasRoles(...roles.bd())) {\r\n if (bwic.seller?.id === userCompany.id) return BwicVisitorType.Seller\r\n return bwic.isAllToAll ? BwicVisitorType.Buyer : BwicVisitorType.BrokerDealer;\r\n } else if (user.hasRoles(roles.Administrator)) {\r\n visitorType = BwicVisitorType.Admin\r\n }\r\n\r\n return visitorType;\r\n}\r\n\r\nfunction reset() {\r\n return dispatch => {\r\n dispatch(rulesActions.hide());\r\n dispatch({ type: actionTypes.BIDDING_RESET });\r\n dispatch(controlPanelActions.hide());\r\n };\r\n}\r\n\r\nfunction loadBwicParticipants() {\r\n return (dispatch, getState) => {\r\n const { bwic } = getState().bidding;\r\n if (bwic) {\r\n dispatch(setLoadParticipantsRequestStatus(RequestState.request));\r\n\r\n companiesService\r\n .getBwicParticipants(bwic.referenceName)\r\n .then(dealers => {\r\n dispatch(storeBwicDealers(dealers));\r\n dispatch(setLoadParticipantsRequestStatus(RequestState.success));\r\n })\r\n .catch(e => {\r\n dispatch(setLoadParticipantsRequestStatus(RequestState.failure));\r\n dispatch(errorActions.criticalError(e));\r\n });\r\n }\r\n };\r\n}\r\n\r\nfunction setLoadParticipantsRequestStatus(requestState) {\r\n return {\r\n type: actionTypes.BIDDING_LOAD_PARTICIPANTS_REQUEST_STATUS,\r\n payload: { requestState }\r\n };\r\n}\r\n\r\nfunction storeBwicDealers(bwicDealers) {\r\n return dispatch => {\r\n const bwicDealerUsers = [];\r\n const bwicDealerContacts = [];\r\n bwicDealers.forEach(dealer => {\r\n (dealer.users || []).forEach(user => {\r\n bwicDealerUsers.push({ ...user, companyId: dealer.id });\r\n });\r\n (dealer.contacts || []).forEach(contact => {\r\n bwicDealerContacts.push({ ...contact, companyId: dealer.id })\r\n })\r\n });\r\n\r\n dispatch({\r\n type: actionTypes.STORE_BWIC_PARTICIPANTS,\r\n payload: { bwicDealers, bwicDealerUsers, bwicDealerContacts }\r\n })\r\n };\r\n}\r\n\r\nfunction liveBiddingStage2TimeoutEnd() {\r\n return { type: actionTypes.LIVE_BIDDING_STAGE_2_TIMEOUT_END };\r\n}\r\n\r\n"],"names":["accountActions","login","email","password","pathname","arguments","length","undefined","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","dispatch","fingerprint","success","wrap","_context","prev","next","response","roles","loginSuccess","smsAllowed","phoneText","verifyIdentityActions","verify","getFingerprint","sent","loading","accountService","then","catch","error","failure","finally","stop","_x","apply","status","type","actionTypes","LOGIN_FAILURE","errorMessage","errorMessages","signInFailed","notificationActions","notificationAddErrorMessage","unexpectedError","resetPassword","history","replace","routes","forgotPasswordFinished","isFinished","RESET_PASSWORD_FAILURE","resetPasswordReset","RESET_PASSWORD_RESET","setUpPassword","newPassword","confirmPassword","getState","_getState$authenticat","authentication","resetToken","stringUtils","isNullOrWhiteSpace","setUpPasswordFailure","setupPasswordLinkInvalid","model","isLinkValid","setPasswordFinished","setupPasswordLinkExpired","e","message","json","jsonUtils","tryParse","formatErrorsFromJson","passwordValidationFailure","setUpPasswordInit","SETUP_PASSWORD_INIT_COMPLETE","setuPasswordInitComplete","setUpPasswordReset","SETUP_PASSWORD_RESET","changePhoneNumber","phone","profileActions","savePhoneNumber","toggleEditPhoneMode","savePhoneNumberFailure","changePhoneNumberReset","CHANGE_PHONE_NUMBER_RESET","changePassword","currentPassword","_ref2","_callee2","deviceId","_context2","CHANGE_PASSWORD_FAILURE","wrongCurrentPassword","CHANGE_PASSWORD_SUCCESS","_x2","changePasswordReset","CHANGE_PASSWORD_RESET","resetStore","sessionStorage","clear","allBWICSActions","reset","manageParsedBwicsActions","portfolioActions","companiesActions","userProfilePhotoActions","bidOnBehalfActions","imUserConfigActions","bwicHistoryActions","amrPipelineCommonActions","resetLiveBiddingDataRequestState","resetSettlementAgentAgreementsRequestState","refreshAuthentication","LOGIN_REFRESH_AUTHENTICATION","_getFingerprint","_callee3","fpPromise","fp","result","components","_context3","FingerprintJS","get","_objectSpread","audio","canvas","cookiesEnabled","touchSupport","fontPreferences","screenFrame","screenResolution","abrupt","t0","logger","exception","user","LOGIN_SUCCESS","fetchUserImage","id","salesRepresentativeActions","loadUserSalesRepresentatives","registerUser","root","isLoading","LOGIN_LOADING","setPasswordExpired","isExpired","SETUP_PASSWORD_FAILURE","Object","keys","map","k","join","activeInventorySecurityActions","requestActiveInventorySecurities","createAction","requestActiveInventorySecuritiesSuccess","resolve","securityIds","requestActiveInventorySecuritiesError","setPopupVisibility","visible","setSelectedPortfolio","selectedPortfolio","addToPortfolioActions","addSecurityToPortfolio","position","size","newPortfolioName","setSubmittingProgress","isSaving","storeError","addressActions","loadCountries","loadCountriesResponse","countries","loadStates","countryId","loadStatesResponse","states","loadCities","stateId","loadCitiesResponse","cities","adminInventoryEditActions","loadInventory","companyId","requestInventory","requestInventorySuccess","company","positions","lockModifiedDate","requestInventoryError","init","myBwicsOnly","isAllToAll","filterQueryString","bwicMonitorTab","setMyBWICsFlag","ALL_TO_ALL","setAllToAllBwicsFlag","defaultConfigFilter","queryString","trim","filterType","getFilterType","filterActions","createFilterActions","resetFilter","resetFiltersVisibility","advancedFilterBlocked","canUseSavedFilters","hasFeatures","SubscriptionFeature","BwicMonitorSavedFilters","BwicFilterType","BwicMonitor","_getState$entities$pa","_getState$entities$pa2","filters","entities","pageConfig","configs","PageConfigType","BwicMonitorAll","find","filter","default","filterState","getFilterState","filterToInit","initialFilter","date","AllBwicsTab","All","bwicMonitorFilters","defaultFilters","canUseHistoricalData","BwicMonitorHistoricalData","_colors","_colors2","from","to","sizeMin","sizeMax","maturityFrom","maturityTo","vintageFrom","vintageTo","closingFrom","closingTo","trusteesValues","amrValue","ratingsValues","statusValues","currencyValues","collateralTypeValues","managerValues","euComplianceValue","esgValue","staticDealValue","sortBy","colors","colorRangeFrom","colorRangeTo","collateralManagerReferenceNames","collateralManagers","items","x","referenceName","applyRadio","flag","key","filterVisibilityChange","filterRadioChange","_mixedDateRange","mixedDateRange","_mixedDateRange2","_slicedToArray","ncEndSerializers","getNcEndDeserializeResult","_mixedDateRange3","_mixedDateRange4","riEndSerializers","getRiEndDeserializeResult","identifieList","serializers","identifiers","list","forEach","i","push","dateFrom","dateTo","ratings","statuses","multipleCurrencies","currencies","sizeFrom","min","sizeTo","max","collateralTypes","types","esg","value","euCompliance","staticDeals","concat","_toConsumableArray","managers","trustees","values","amr","sorting","color","c","colorFrom","colorTo","queryStringSerializer","deserialize","ncEndDeserializeResult","riEndDeserializeResult","canUseAdvancedFilters","BwicMonitorAvancedFilters","identifiersCommand","canExecute","shouldExecute","execute","searchSecuritiesActions","addSearchItem","ncEnd","dates","years","filterDateQueryStringDeserialized","riEnd","ratingsCommand","r","filterSelectChange","statusesCommand","s","Number","callatTypes","t","m","numericUtils","isNumber","changeRangeFilter","selectedDateOption","getDateOptionByRange","dateRangeFilterOptions","TodayAndUpcoming","filterDateSelectOption","filterDateSelectCustomRange","euComplianceCommand","esgCommand","staticDeal","trusteesCommand","_trusteesValues","name","maturity","isNil","makeFilterVisible","filterOption","ThisWeek","vintage","closing","arm","isTradedSelected","some","ColorFilterType","Traded","isTradedColorSelected","TradedColor","colorCommand","_colors3","colorRangeCommand","sortByCommand","BwicMonitorSorting","sortFieldChanged","DeserializeCommandHandler","addCommand","process","selectFilterFromConfig","moment","toDate","setDefaultFilter","searchBwics","RESET","setActiveBwic","bwicReferenceName","SET_ACTIVE_BWIC","setBwicCollapsed","collapsed","SET_BWIC_COLLAPSED_STATE","bwic","_getState$allBWICS3","allBWICS","bwics","collapseAll","collapsedCount","b","setCollapseAll","exportBwics","_getState$allBWICS4","currentPageNumber","pageSize","searchTermItems","searchSecurities","criteria","getFilterCriteria","lastAppliedFilter","isGroupView","setExportingBwicStatus","bwicService","file","saveAs","blob","errorActions","loadNextPage","_getState$allBWICS5","searchInProgress","isNextPageRequesting","isRequesting","nextPageRequesting","liveBiddingStage2Expired","positionId","LIVE_BIDDING_STAGE2_EXPIRED","addPositionBids","bids","ADD_POSITION_BIDS","sortChanged","state","Buy","bwicMonitorBuy","Sell","bwicMonitorSell","bwicMonitor","BwicMonitorBuy","BwicMonitorSell","blocked","ADVANCED_FILTER_BLOCKED","applyFilter","isSearchTermChange","_getState$allBWICS","summary","ALL_BWICS_RESET_PAGING","bwicsSearchProgress","RequestState","request","controlPanelActions","hide","isFilterChanged","RESET_SUMMARY","_getState$allBWICS2","requestingPage","_criteria$nonCallEndF","_criteria$nonCallEndT","_criteria$reinvestmen","_criteria$reinvestmen2","totalRecordNumber","summaryProps","_objectWithoutProperties","_excluded","currency","selected","nonCallEndFrom","nonCallEndFromYear","nonCallEndFromDate","nonCallEndTo","nonCallEndToYear","nonCallEndToDate","reinvestmentEndFrom","reinvestmentEndFromYear","reinvestmentEndFromDate","reinvestmentEndTo","reinvestmentEndToYear","reinvestmentEndToDate","_criteria$color","noop","outOfNC","outOfRI","serialize","location","redirectWithFilterArguments","BWICS_SEARCH_COMPLETE","isRequestCancelationError","criticalError","isinCusipsAndTickers","_filter$maturity","_filter$vintage","_filter$closing","_filter$collateralTyp","_filter$managers","_filter$esg","_filter$staticDeal","_filter$euCompliance","_filter$trustees","_filter$amr","_filter$outOfNC","_filter$outOfRI","_filter$color","defaultDateRange","selectedCurrencies","nonCallEndYears","getYearsRange","nonCallEnd","nonCallEndDates","selectedDateOptions","reinvestmentEndYears","reinvestmentEnd","reinvestmentEndDates","maturityRange","selectedOption","convertToApiCriteria","options","vintageRange","closingRange","f","collateralType","tradedColor","MY_BWICS","BWICS_SEARCH_PROGRESS","SET_COLLAPSE_ALL","ALL_BWICS_SET_EXPORTING_STATUS","payload","ALL_BWICS_NEXT_PAGE_REQUESTING","SORTING_CHANGED","initFilter","applyFilterAndSearch","arrangerPipelinesRequest","resetPipelines","dealsRequest","searchTerm","dealsResponse","requestState","deals","dealsSearchResponse","arrangerPipelineDeals","selectDealsFromSearch","dealsLegalNames","resetDeals","arrangerPipelinesResponse","arrangerPipelines","nonVisibleCount","submitArrangerPipeline","sortingChange","sortDirection","edit","setEditLoadingStatus","submitArrangerPipelineStatus","isSubmitted","changeDealReferenceName","dealReferenceName","changeDealLegalName","dealLegalName","updateFields","collateralManagerReferenceName","setAnyPipelineExists","anyPipelineExists","checkIfArrangerPipelineExist","exportPipelines","exportLoad","amrArrangerPipelineActions","arrangerPipelineStatisticRequest","arrangerPipelineStatisticResponse","deleteArrangerPipeline","loadUserCompanyRequest","loadUserCompanyResponse","userCompany","loadUserCompanyError","redirectInvitedClientToTransactionDetails","amrPipelineDetailedActions","transactionReferenceName","token","isInvitedClient","hasSingleRole","ArrangersClient","amrPipelineService","updateArrangerClient","logAccessToSharedTransaction","Promise","all","loadTransactions","loadInitialTransaction","transactionsSearchTermChange","tab","_ref4","_callee4","_context4","issuanceMonitor","amrPipelineDetailed","isTransactionDetailsRequesting","requestCancelationController","abort","transactionDetailsRequesting","resetTransactions","_x7","_x8","searchTermChange","SEARCH_TERM_CHANGE","documentsSearchTermChange","_ref5","_callee5","_getState2","_getState2$issuanceMo","loadedTransactionsWithDetails","initialTransaction","selectedTransaction","documents","filteredDocuments","_context5","getSearchedTransactionDocuments","storeDocumentsSearchResults","_x9","_x10","loadTransactionDetails","loadIOIs","_ref7","_callee6","_getState3","_getState3$issuanceMo","_getState3$issuanceMo2","hasImSubscription","transaction","limitedAccess","limitedClientsAccess","hasArrangerProSubscription","withoutImAndArrangerProSubscriptions","isMedia","portfolioPromise","documentsPromise","collateralQualityTestsPromise","syndicateContactsPromise","ioisPromise","intexFilePromise","managerPresentationFilePromise","disclosureFilePromise","invitedClientsPromise","_yield$Promise$all","_yield$Promise$all2","portfolio","collateralQualityTests","_yield$Promise$all2$","syndicateContacts","iois","intexFile","managerPresentationFile","disclosureFile","invitedClients","_context6","amrPipelineCommon","IssuanceMonitorFullAccess","getTransaction","hasLimitedAccess","hasInvitedClientsAccess","transactionHasArrangerProSubscription","hasRoles","Media","getPortfolio","getDocuments","getCollateralQualityTest","getSyndicateContacts","getIOIs","getIntexFile","getManagerPresentationFile","getDisclosureFile","getSharedClients","storeTransactionDetails","isDetailsLoaded","STORE_IOIS","dataItems","t1","finish","_x11","_x12","transactionsRequesting","exportPortfolio","format","constants","dateFormat","editIOIs","submitIOIs","activeTab","_ref10","_callee9","grid","isAnyIoI","_grid$dataItems$filte","ioisForSubmit","notificationSubj","notificationBody","_context9","gridActions","validate","draft","isValid","ioisSubmitting","item","pushNotificationService","sendNotification","PipelineDetailedTabTypes","ioi","_x17","_x18","showGridIOIs","_ref8","_callee7","_currentTransaction$i","_getState4","_getState4$issuanceMo","currentTransaction","classReferenceNameColumn","floaterIndexColumn","columns","_context7","isDeleted","isIoIonDisabledClass","classes","gridColumns","classReferenceName","selectSourceItemsCallback","_currentTransaction$c","title","originatingTransactionClassStatus","OriginatingTransactionClassStatus","Open","transactionClassStatusTitles","disabled","NotOffered","Subject","updateDependencyColumnsCallback","index","updateReadOnlyIOIColumns","ioiFloaterIndex","ioiFloaterIndexes","_x13","_x14","readIOIsByUser","ioisReferenceNames","_ref12","_callee11","_context11","_x20","setUnreadIOIsRead","SET_UNREAD_IOIS_READ","exportIOIs","excludeRemovedClass","showInvestorPopup","_ref11","_callee10","_yield$Promise$all3","_yield$Promise$all4","members","companyWithMembers","_context10","amrCompaniesService","getCompanyInfo","getMembersList","SHOW_INVESTOR_POPUP","isPopupVisible","_x19","hideInvestorPopup","isCompanyPopupVisible","logTabAccess","tabAccessType","_callee12","_context12","_getState$issuanceMon","_getState$issuanceMon2","dealSortBy","dealSortDirection","_getState$issuanceMon3","offset","isTransactionsRequesting","filterCriteria","searchCriteria","transactions","amrPipeline","defaultTransactionsSearchCriteria","toLowerCase","hasIois","field","ascending","SORT","ASC","defaultDealOrderCriteria","getTransactionsList","storeTransactions","_x3","_x4","_ref3","_getState","transactionLimitedAccess","storeInitialTransaction","includes","AMRPipeline","_x5","_x6","RESET_TRANSACTIONS","gridItemIndex","_ref9","_callee8","_getState5","_getState5$issuanceMo","availableClassesForIOIs","row","className","selectedClass","propsShouldBeUpdated","_context8","v","deleteRow","ioiRatings","expectedRatingMoodys","emptyPlaceholder","expectedRatingSnP","expectedRatingFitch","expectedRatingKbra","expectedRatingDbrs","insertDataItems","_x15","_x16","isEdit","EDIT_IOIS","STORE_TRANSACTIONS","STORE_INITIAL_TRANSACTION","STORE_TRANSACTION_DETAILS","STORE_DOCUMENTS_SEARCH_RESULTS","TRANSACTIONS_REQUESTING_STATE","TRANSACTION_DETAILS_REQUESTING_STATE","isSubmitting","TRANSACTION_DETAILS_IOIS_SUBMITTING","createAmrPipelineActions","pipelineType","searchTransactionsActions","createSearchTransactionActions","filterExistingOptions","optionsNames","optionFilter","o","loadFilters","_issuanceMonitorFilte2","redirectFilters","_arrangers","classNames","_trustees","issuanceMonitorFilterSelector","storeFilterData","filterName","getManagersList","HavingDealType","CmHavingAllPublishedDeals","getArrangersList","getTransactionClassesNames","getTrusteeList","arrangers","data","sort","a","legalName","localeCompare","text","code","_redirectFilters$clas","_redirectFilters$clas2","amrPipelineFilterSelector","newFilter","statusOptions","TransactionStatuses","getAllRolesExclude","admin","DataEntry","TransactionStatus","Draft","updateFilterState","searchTransactions","isSearching","PIPELINE_SEARCH_TRANSACTIONS","searchClasses","PIPELINE_SEARCH_CLASSES","summaryRequesting","PIPELINE_SUMMARY_REQUESTING_STATE","_ref6","loadClasses","_amrPipelineSelector2","_summarySelector","shouldShowTransactionsSummary","shouldShowClassesSummary","transactionsSummaryPromise","classesSummaryPromise","transactionsSummary","classesSummary","amrPipelineSelector","summarySelector","count","getTransactionsSummary","statsToCalculateWithoutMedians","getTransactionClassesSummary","PIPELINE_STORE_SUMMARY","_amrPipelineSelector3","_amrPipelineSelector4","transactionsOffset","_amrPipelineFilterSel5","_groupSearchByDealAnd2","dealsClasses","dealSortCriteria","oneIOIs","anyIOIsExists","groupSearchByDealAndClassIndicators","mergeSortCriteria","PIPELINE_STORE_TRANSACTIONS","PipelineType","IOIs","hasIOIs","includeIois","PIPELINE_SET_ANY_IOIS_EXISTS","_amrPipelineSelector5","_amrPipelineSelector6","classSortBy","classSortDirection","classesOffset","_amrPipelineFilterSel6","_groupSearchByDealAnd3","classSortCriteria","defaultClassOrderCriteria","getTransactionClasses","PIPELINE_STORE_CLASSES","PIPELINE_RESET_TRANSACTIONS","setExportLoading","PIPELINE_EXPORT_LOAD","_amrPipelineFilterSel","filtersConfig","selectedFilter","IssuanceMonitorFiltersEmailAlerts","imUserConfig","ArrangerPipeline","UserConfigType","imFilter","apFilter","_issuanceMonitorFilte","arrangerReferenceNames","transactionTypesValues","currenciesValues","collateralTypesValues","ratingValues","filterReferenceName","dealsReferenceNames","dealsLegalNamesValues","trusteesReferenceNames","riEndFromValue","riEndToValue","ncEndFromValue","ncEndToValue","pricingDateFromValue","pricingDateToValue","couponValue","isAmrValue","outOfNCValue","outOfRIValue","arrangersSerializer","collateralManagersSerializer","transactionTypesSerializer","currenciesSerializer","statusSerializer","collateralTypesSerializer","ratingsSerializer","filterSerializer","trusteesSerializer","dealsReferenceNamesSerializer","dealsLegalNamesSerializer","riEndFromSerializer","riEndToSerializer","ncEndFromSerializer","ncEndToSerializer","pricingDateFromSerializer","pricingDateToSerializer","couponSerializer","esgSerializer","euComplianceSerializer","staticDealsSerializer","isAmrSerializer","outOfNCSerializer","outOfRISerializer","hasImFiltersAccess","generalSerializers","imFilterSubscriptionSerializers","search","arrangerNames","transactionTypes","transactionStatuses","savedFilter","trusteesNames","riEndFrom","riEndTo","ncEndFrom","ncEndTo","pricingDateFrom","pricingDateTo","coupon","resetFiltersAndUnselectSavedFilter","YearsRange","filterDateSelectYearsRange","Custom","_dealsLegalNamesValue","label","transactionType","rating","resetFilterState","PIPELINE_RESET","handleVisibilityFilter","_amrPipelineFilterSel2","filterChanged","filterUtils","filterReset","dealSortingChanged","direction","PIPELINE_DEAL_SORTING_CHANGED","classSortingChanged","PIPELINE_CLASS_SORTING_CHANGED","setExpanded","expanded","PIPELINE_SET_EXPANDED","exportTransactionsClasses","exportedFrom","_amrPipelineSelector","_amrPipelineSelector$","_groupSearchByDealAnd","exportCriteria","issuanceMonitorExportDateFormat","changeDealSelectFromTable","isDealSelected","removeSearchItem","setSyndicateContacts","arrangerName","contacts","PIPELINE_SET_SYNDICATE_CONTACTS","transactionName","resetSyndicateContacts","logInitialAccessToIM","logImUserActivity","PIPELINE_INITIAL_LOAD","amrTransactionAnalyticsActions","analyticsInit","analyticsInitResponse","analytics","clientsActivityRequest","startDate","endDate","clientsActivityResponse","transactionViewHistoryRequest","transactionViewHistoryResponse","clientsActivityFilterChange","transactionViewHistoryFilterChange","transactionViewHistoryFilterByBar","accessType","amrTransactionHistoryActions","transactionHistoryRequest","transactionHistoryResponse","transactionsHistory","allHistoryClassesList","loadTransactionDetais","version","companyReferenceName","storeTransactionDetais","transactionDetails","transactionFieldsUpdatedRequest","transactionFieldsUpdatedResponse","lastUpdatedFields","transactionFieldsUpdatedReset","waitResult","_len","requests","Array","_key","earlyResult","remove","apiOperationActions","resetEvent","event","trackStuckOperations","requestResult","companies","assetManagerActions","autoFeedbackSettingsActions","showAutoFeedbackSettingsPanel","toggleAutoFeedbackSettingsPanel","sellerBidding","autoFeedbackSettingsVisible","toggleAutofeedback","bidding","settings","autoFeedbackConfiguration","autoFeedbackSettings","onPlatform","offPlatform","saved","AUTO_FEEDBACK_SETTINGS_STORE","storeSettings","isTopXStage2","BwicProcessType","TopX","stagedBiddingStatus","OpenBiddingStatus","stage1Ended","securities","trade","TradeStatus","rejected","blastMessage","companyMessages","security","_security$bids","_getSecuritiesWithLat","getSecuritiesWithLatestBids","bidsByLevel","biddingUtils","groupBidsByLevel","slice","topX","improverCount","group","feedback","BidLevel","Best","feedbackTypes","best","tiedForBest","Cover","cover","Third","third","Fourth","fourth","Fifth","fifth","addBlastMessageItem","stage2Participants","calculateStage2Participants","getLatestStage1Bids","getBidCompanyIdentifier","outOfTop3","addTopXStage2BlastMessageItems","participants","_getSecuritiesWithLat3","_biddingUtils$groupBi","_biddingUtils$groupBi2","_toArray","notInTop3","hasManyBestBids","flat","p","_security$bids2","String","BidRequestType","BidOrPass","addBlastMessageItems","shouldSendBlastMessage","autoFeedbackDelay","autoFeedbackDelayMinutes","dateTimeUtils","parseTimeSpan","totalMinutes","bwicBidsDueDatePlusAutoFeedbackDelay","bidsDueUtc","add","isSameOrAfter","positionMessages","blastMessageSendingState","blastMessageService","send","sendBlastMessage","saving","saveAutoFeedbackConfiguration","saveAutoFeedbackSettings","brokerDealerCompanyId","bid","feedbackType","bidRequestType","numberOrDefault","buyerPseudoOrderNumber","feedbackBidId","isSending","AUTO_FEEDBACK_BLAST_MESSAGE_SENDING","AUTO_FEEDBACK_SETTINGS_SAVING","AUTO_FEEDBACK_SETTINGS_PANEL_VISIBLE","banksActions","getBanks","userCompanyReferenceName","getBanksResult","banks","getBankDetails","getBankDetailsResult","bankDetails","aggregatedManagerTransactions","companyEvents","managersTransactionCountFilter","managersTransactionCountFilterResult","exportTransactionCountRequest","params","exportTransactionCountResponse","editBank","editBankReset","updateBank","resole","formData","updateBankResult","setBankForAlertPopup","logUserActivity","analyticsReset","numberOfHiddenItems","profileViewHistoryRequest","profileViewHistoryResponse","profileViewHistoryFilterChange","profileViewHistoryFilterByBar","bdInventoryDocuments","inventories","inventory","securityId","uploadDocumentsActions","loadBdInventory","inventoryStatusChange","inventoryPositionId","requestInventoryExistFlag","inventoryExistFlag","exist","pushInventory","resetEntities","exportInventoryRequest","sortField","exportInventoryResponse","requestSendEmail","toggleVisibleAddBloombergEmailForm","addBloombergEmailRequest","addBloombergEmailResponse","bdInventoryActions","clearFilter","bidConfirmationActions","confirmation","positionIdList","submitInProgress","inProgress","submitResults","bidOnBehalfParseActions","uploadFile","_getState$grid","upload","mountedKey","headers","GridUploadStatus","Uploading","extension","split","pop","invalidFileType","gridFileUploadMaximumSize","fileSizeLimitExceeded","editing","applyOrCancelEdit","bidOnBehalfService","currentMountedKey","lengthComputable","percentComplete","loaded","total","setUploadState","fileUploadResult","acceptedTickers","apiUtils","normalize","normalizeUppercase","ticker","_x$shortCode","shortCode","_x$level","level","formatUtils","formatBid","notificationAddErrorMessageModal","None","bidsByTicker","arrayUtils","groupBy","acceptedCompanyShortCodes","bidOnBehalf","companyShortCodes","newDataItems","_item$shortCode","addDataItems","addColumns","bidOnBehalfUtils","isBidDecreaseDisabled","setTimeout","parseClipboard","_getState$grid2","dataProcessing","parseResult","hasCompanyCodes","cc","hasTickers","_parseResult$filter","_parseResult$filter2","companyCodesRaw","dataRows","companyCodes","toUpperCase","_companyCodes$index","_","applyClipboardParseResult","addCompany","companyCode","addColumn","createCompanyBobColumn","validateDecreaseBid","moveColumnData","deleteItemsWithErrors","withoutErrors","_x$errors","errors","columnName","_x$errors2","dataItem","_dataItem$errors","columnsToReset","resetInvalidBids","selectBd","removeUnknownCompanyColumns","_c$code$toUpperCase","_c$code","_c$name","_c$name$trim","removeColumn","saveBids","LocationStateBuilder","resetPopup","entries","_position$bids2","sensitivity","originalBid","dealerListPanel","companyHiddenState","dealerListPanelActions","toggleCompanyVisible","editBid","bidDecreaseDisabled","editingBid","_position$bids","valueCannotBeLess","existingColumns","acceptedCompanes","sanitized","newShortCodeColumns","distinct","ec","selectBdColumn","tickerAndShortCodeColumns","setColumns","existingDataItems","isTickerEquals","newItems","_i$ticker","ei","sameTickerItem","_value$trim$toUpperCa","requestCompanies","setCompainesRequesting","storeCompanies","editCompleted","resetBidEdit","resetCompanyBidsEdit","resetEdit","pass","axed","final","submit","resolveConflicts","submitProgress","storeConflicts","conflicts","resetConflicts","conflictsPopupVisible","moveNextBid","setNextBidIdentifiers","resetNextBidIdentifiers","setBidCanSubmit","SET_BID_CAN_SUBMIT","storeCanSubmitPositionFlag","BID_PLACEMENT_SET_BID_CAN_SUBMIT","canSubmit","revert","REVERT","revertAll","REVERT_ALL","commissionChangeAction","COMMISSION_CHANGE","commission","bidPlacementActions","bidChange","brokerDealerBidding","BID_PLACEMENT_BID_CHANGE","setBidErrors","validateSingle","axedChange","BID_PLACEMENT_AXED_CHANGE","finalChange","BID_PLACEMENT_FINAL_CHANGE","passChange","BID_PLACEMENT_PASS_CHANGE","_getState$brokerDeale2","currentBid","getCurrentBid","validateBid","openBiddingStage2Level","commissionChange","_getState$brokerDeale","BID_PLACEMENT_SET_BID_ERRORS","biddingActions","bwicStatusChange","nextStatus","_getState$bidding","visitorType","isScheduled","BwicStatus","scheduled","isNextBidding","isAllToAllBuyer","BwicVisitorType","Buyer","BIDDING_BWIC_STATUS_CHANGE","loadBwicParticipants","setLoadParticipantsRequestStatus","companiesService","getBwicParticipants","dealers","bwicDealers","bwicDealerUsers","bwicDealerContacts","dealer","users","contact","STORE_BWIC_PARTICIPANTS","liveBiddingStage2TimeoutEnd","LIVE_BIDDING_STAGE_2_TIMEOUT_END","bwicPromise","userCompanyPromise","getByReferenceName","getCurrentUserCompany","getBiddingVisitorType","BIDDING_STORE_VISITOR_TYPE","actionHistory","storeOriginalBwic","initVisitorState","Seller","sellerBiddingActions","OtherSeller","otherSellerBiddingActions","BrokerDealer","brokerDealerBiddingActions","Admin","forbidden","BIDDING_LOADING","BIDDING_STORE_ORIGINAL_BWIC","seller","_bwic$seller","isParsed","_bwic$seller2","bd","Administrator","rulesActions","BIDDING_RESET","BIDDING_LOAD_PARTICIPANTS_REQUEST_STATUS"],"sourceRoot":""}