{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./external/containers/unit/form/config/Constants.js","webpack:///./external/containers/configuration/config/PermissionKeys.js","webpack:///./internal/redux/config/CustomHeadersConfigs.js","webpack:///./external/config/constants/PermissionKeys.js","webpack:///./internal/config/constants/PermissionKeys.js","webpack:///./internal/redux/config/Dependency.js","webpack:///./internal/redux/config/Action.js","webpack:///./external/redux/config/Action.js","webpack:///./internal/redux/config/onMountConfigs.js","webpack:///./external/redux/config/onMountConfigs.js","webpack:///./external/redux/config/CustomHeadersConfigs.js","webpack:///./external/redux/postProcessors/estimatePostProcessor.js","webpack:///./external/redux/postProcessors/unitPostProcessor.js","webpack:///./external/redux/postProcessors/configPostProcessor.js","webpack:///./external/redux/config/ConfigurationDependencies.js","webpack:///./external/redux/postProcessors/configSubPostProcessor.js","webpack:///./external/redux/postProcessors/reservationPostProcessor.js","webpack:///./external/redux/postProcessors/inventoryListPostProcessor.js","webpack:///./external/redux/postProcessors/unpaidArPostProcessor.js","webpack:///./external/redux/postProcessors/contactLogPostProcessor.js","webpack:///./external/redux/postProcessors/arPostProcessor.js","webpack:///./external/redux/postProcessors/facilityPostProcessor.js","webpack:///./external/redux/postProcessors/manualLateEventPostProcessor.js","webpack:///./external/redux/postProcessors/maintenanceOperationPostProcessor.js","webpack:///./external/redux/postProcessors/unitBevMiniPostProcessor.js","webpack:///./external/redux/postProcessors/leadPostProcessor.js","webpack:///./external/redux/postProcessors/delinquencyPostProcessor.js","webpack:///./external/redux/postProcessors/preRequisitePostProcessor.js","webpack:///./external/redux/postProcessors/reportsPostProcessor.js","webpack:///./external/redux/postProcessors/unitBevPostProcessor.js","webpack:///./external/redux/utils/ConversationHelper.js","webpack:///./external/redux/postProcessors/textConversationPostProcessor.js","webpack:///./external/redux/postProcessors/emailConversationPostProcessor.js","webpack:///./external/redux/utils/AccessCodeProcessingHelper.js","webpack:///./external/redux/postProcessors/ledgerAccessCodePostProcessor.js","webpack:///./external/redux/postProcessors/unitAccessCodePostProcessor.js","webpack:///./external/redux/postProcessors/achTransactionPostProcessor.js","webpack:///./external/redux/postProcessors/textPostProcessor.js","webpack:///./external/redux/postProcessors/emailPostProcessor.js","webpack:///./external/redux/postProcessors/rentAdjustmentPostProcessor.js","webpack:///./external/redux/postProcessors/rateHistoryPostProcessor.js","webpack:///./external/redux/postProcessors/tenantsForDocumentPostProcessor.js","webpack:///./external/redux/postProcessors/reprintDataPostProcessor.js","webpack:///./external/redux/postProcessors/viewRentAdjustmentGridPostProcessor.js","webpack:///./external/redux/postProcessors/automaticCreditCardDeclinesPostProcessor.js","webpack:///./external/redux/postProcessors/failedReturnsPostProcessor.js","webpack:///./external/redux/postProcessors/lateEventsPostProcessor.js","webpack:///./external/redux/postProcessors/tenantEmailChangesPostProcessor.js","webpack:///./external/redux/postProcessors/waitingListPostProcessor.js","webpack:///./external/redux/postProcessors/moveInSearchPostProcessor.js","webpack:///./external/redux/postProcessors/paymentPostProcessor.js","webpack:///./external/redux/postProcessors/vehicleDataPostProcessor.js","webpack:///./external/redux/postProcessors/sampleLetterPostProcessor.js","webpack:///./external/redux/postProcessors/printFailuresPostProcessor.js","webpack:///./external/redux/postProcessors/ccAboutToExpirePostProcessor.js","webpack:///./external/redux/postProcessors/pendingInvoiceDeliveryPostProcessor.js","webpack:///./external/redux/postProcessors/tenantListPostProcessor.js","webpack:///./external/redux/postProcessors/emailAuditPostProcessor.js","webpack:///./external/redux/postProcessors/overbookUnitsCountPostProcessor.js","webpack:///./external/redux/postProcessors/savedDocumentPostProcessor.js","webpack:///./external/redux/postProcessors/unitsWithInvalidAccessCodesPostProcessor.js","webpack:///./external/redux/postProcessors/tenantsWithInvalidAccessCodesPostProcessor.js","webpack:///./external/redux/postProcessors/index.js","webpack:///./internal/redux/postProcessors/sandboxPostProcessor.js","webpack:///./internal/redux/postProcessors/facilitiesPostProcessor.js","webpack:///./internal/redux/postProcessors/allFacilitiesPostProcessor.js","webpack:///./internal/redux/postProcessors/savedDocumentsPostProcessor.js","webpack:///./internal/redux/postProcessors/permissionRolesPostProcessor.js","webpack:///./internal/redux/postProcessors/delinquencyTrackingPostProcessor.js","webpack:///./internal/redux/postProcessors/facilitiesWithBusinessGroupPostProcessor.js","webpack:///./internal/redux/postProcessors/journalPostProcessor.js","webpack:///./index.js","webpack:///./internal/containers/delinquencyTracking/list/config/Enums.js","webpack:///./internal/containers/delinquencyTracking/list/config/Constants.js","webpack:///./external/containers/unit/form/config/UnitPermissionKeys.js","webpack:///./external/redux/config/RouteNames.js","webpack:///./internal/containers/journal/list/config/Enums.js","webpack:///./internal/containers/journal/list/config/Constants.js","webpack:///./external/containers/inventory/list/config/InventoryPermissionKeys.js","webpack:///./external/containers/unit/config/Enums.js","webpack:///./external/containers/pointOfSale/config/Enums.js","webpack:///./external/containers/pointOfSale/config/Constants.js","webpack:///./external/containers/viewtenant/config/Enums.js","webpack:///./external/containers/tenant/form/config/PermissionKeys.js","webpack:///./external/containers/viewtenant/config/Constants.js","webpack:///./external/containers/rentalConfiguration/config/RentalFormConfigs.js","webpack:///./external/containers/operations/components/rentAdjustment/config/Enums.js","webpack:///./external/containers/report/config/PermissionKeys.js","webpack:///./external/containers/manualForm/config/PermissionKeys.js","webpack:///./external/containers/ledgerreview/config/PermissionKeys.js","webpack:///./external/redux/postProcessors/configSDPostProcessor.js","webpack:///./external/containers/operations/components/rentAdjustment/config/PermissionKey.js","webpack:///./external/containers/moveout/config/PermissionKeys.js","webpack:///./external/containers/operations/components/rentAdjustment/config/Constants.js","webpack:///./external/containers/unit/list/config/Constants.js","webpack:///./external/containers/operations/components/maintenanceEvents/config/Enums.js","webpack:///./external/containers/operations/components/maintenanceEvents/config/Constants.js","webpack:///./external/containers/operations/components/maintenanceEvents/config/PermmissionKeys.js","webpack:///./public/containers/login/config/LoginConstants.js","webpack:///./external/redux/postProcessors/timezonePostProcessor.js","webpack:///./external/containers/inventory/audit/config/AuditPermissionKeys.js","webpack:///./external/containers/facilityConfiguration/config/PermissionKeys.js","webpack:///./external/containers/operations/components/lateEvent/PermissionKeys.js","webpack:///./external/containers/viewtenant/config/SeverityLevelAndMode.js","webpack:///./external/containers/configuration/config/ConfigRequestType.js","webpack:///./external/containers/configuration/config/Enums.js","webpack:///./external/containers/configuration/config/Constants.js","webpack:///./external/containers/customerengagement/config/Config.js","webpack:///./external/containers/operations/components/rentAdjustment/utils/Utils.js","webpack:///./external/containers/viewtenant/styles/FormatterStyle.js","webpack:///./external/redux/config/Dependency.js","webpack:///./internal/redux/config/RouteNames.js","webpack:///./App.js","webpack:///./external/containers/createoccupancy/config/PermissionKeys.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","9","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","SHOW_HIDE_LIST","label","PERIOD_LABEL_MAP","Day","Month","Week","Quarter","Twenty_Eight_Day","Bi_Annual","Annual","Seasonal","PERIOD","mapEnum","enums","period","PERIOD_WITH_CUSTOM_LABEL","OVERLOCK_STATUS","overlockStatus","RENTAL_STATUS","rentalStatus","PROMO_PLAN_STATE","promoPlanState","CALCULATION_STYLE","calculationStyle","localisable","percentageOfUnitRate","VACANT_AVAILABILITY_STATUS","vacantAvailabilityStatus","RENTED_AVAILABILITY_STATUS","rentedAvailabilityStatus","LATE_EVENT_TRIGGER","lateEventTrigger","LATE_EVENT_STATUS","lateEventStatus","LEASE_STATUS","leaseSignStatus","NON_OVERRIDABLE_FIELDS","NRAD_ACTION_TYPE","createEnumMap","nradActionType","RATE_HISTORY_STATUS","rateHistoryStatus","DEPENDENT_FIELDS","NEXT_AMOUNT_PAYABLE","valueFieldName","initFieldName","RESERVATION_INFO_TENANT_NAME_LENGTH_BREAKPOINT","RATE_HISTORY_WIDTH_FOR_RESPONSIVE","EXTRA_SPACE_IN_RATE_HISTORY_HEIGHT_FOR_RESPONSIVE","EXTRA_SPACE_IN_RATE_HISTORY_HEIGHT","EXTRA_SPACE_IN_RATE_HISTORY_WIDTH","CONFIGURATION_PERMISSION_KEYS","replace","match","toUpperCase","CustomHeaders","ACCOUNT","BUSINESS_GROUP","FACILITY","StoreCustomHeaders","facility","id","currentFacility","status","STATUS","LOADING","facilityId","account","currentAccountId","accountId","moveIn","rentAssessment","moveOut","PAYMENT_PERMISSION_KEYS","PAYMENT","EFFECTIVE_DATE","NEGATIVE_PAYMENT","REFUNDS","DELETE_PAYMENT","REVERSE_PAYMENT","MOVE_IN_PERMISSION_KEYS","MOVE_IN_DATE","EDIT_SETUP_FEE","WAIVE_SETUP_FEE","EDIT_DEPOSITS","WAIVE_DEPOSITS","PRORATE","BILL_TO_DATE","UNIT_RATE_UP","UNIT_RATE_DOWN","UNIT_PERMISSION_KEYS","UNIT_GENERAL","CURRENT_RATE","NEXT_DATE","PAID_TO_DATE","UNIT_TYPE","INVENTORY_REPORT","UNIT_MOVE_IN_DATE","AUDIT_PERMISSION_KEYS","NEGATIVE_INVENTORY","RESERVATION_PERMISSION_KEYS","ACCESS","WAVE_DEPOSIT","INVENTORY_PERMISSION_KEYS","NEGATIVE_SALE","INVENTORY_AUDIT","EDIT_INVENTORY","RESTOCK","SELL","ADD_INVENTORY_AT_POS","RETURN_INVENTORY","CHARGE_PERMISSION_KEYS","REVERSE_CHARGE","DELETE_CHARGE","REVERSE_SECURE_CHARGE","DELETE_SECURE_CHARGE","MANUAL_CHARGE_PERMISSION_KEYS","MANUAL_CHARGE","NEGATIVE_MANUAL_CHARGE","MANUAL_CHARGE_SECURE_CATEGORIES","EDIT_DEPOSIT","TENANT_PERMISSION_KEYS","CONTACT_LOG","ALLOW_SECURE_INFO","ALLOW_LATE_EXEMPTION","TENANT_GENERAL","VIEW_SECURE_INFO","MOVE_OUT_PERMISSION_KEYS","MOVE_OUT_DATE","OVERRIDE_RESOLVE_CHARGES","WAIVE_NOTIFICATION_PENALTY","MAINTENANCE_EVENTS_PERMISSION_KEYS","CLOSE_EVENT","CANCEL_EVENT","USER_MANAGEMENT_PERMISSION_KEY","FACILITY_MANAGEMENT_PERMISSION_KEY","REPORT_PERMISSION_KEYS","ACCOUNT_CONSOLIDATED_REPORT","BUSINESS_GROUP_CONSOLIDATED_REPORT","FACILITY_CONSOLIDATED_REPORT","FACILITY_INCOME_REPORT","FACILITY_CUSTOM_CATEGORIES","RENT_ADJUSTMENT_KEYS","SCHEDULE","WAIVE","FACILITY_DEACTIVATE_CONFIG","FACILITY_ACCESS","FACILITY_ACCESS_FINANCIALS","FACILITY_ACCESS_FINANCIAL_GROUPING","FACILITY_ACCESS_OCCUPANCY","FACILITY_ACCESS_DELINQUENCY","FACILITY_ACCESS_LETTER","FACILITY_ACCESS_UNIT_TYPE","FACILITY_ACCESS_TFW","FACILITY_ACCESS_CUSTOMER","BUSINESS_GROUP_DEACTIVATE_CONFIG","BUSINESS_GROUP_ACCESS","BUSINESS_GROUP_ACCESS_FINANCIALS","BUSINESS_GROUP_ACCESS_FINANCIAL_GROUPING","BUSINESS_GROUP_ACCESS_OCCUPANCY","BUSINESS_GROUP_ACCESS_DELINQUENCY","BUSINESS_GROUP_ACCESS_LETTER","BUSINESS_GROUP_ACCESS_UNIT_TYPE","BUSINESS_GROUP_ACCESS_TFW","BUSINESS_GROUP_ACCESS_CUSTOMER","SYRAPAY_MERCHANT_PORTAL_PERMISSION","BUSINESS_GROUP_MANAGEMENT_PERMISSION_KEY","LATE_EVENT_PERMISSION_KEYS","ASSESS_LATE_CHARGES","userSetUpConfig","lazy","user","DependencyConfig","HeaderInt","onDemand","userProfile","FacilityList","facilities","allFacilities","FacilityForm","AccountForm","accounts","UserForm","permissionKey","UserSetupAction","businessGroup","userRoleAction","onMount","SearchableDropdown","timezone","RentAssessmentHistory","rentAssessmentHistory","AutoPaymentHistory","dailyTaskSummary","AutoInvoicingHistory","RentAdjustmentSummary","DelinquencySummary","TaskSummary","critical","LateEventsTracking","DELINQUENCY_TRACKING_LATE_EVENT_STORE","LockoutEventsTracking","DELINQUENCY_TRACKING_LOCKOUT_EVENT_STORE","DelinquencyOverview","DELINQUENCY_TRACKING_OVERVIEW_STORE","JournalConfigurationChanges","JOURNAL_CONFIGURATION_CHANGES_STORE","JournalLateEvents","JOURNAL_LATE_EVENT_STORE","JournalLockoutEvents","JOURNAL_LOCKOUT_EVENT_STORE","JournalUserRoles","JOURNAL_USER_ROLE_STORE","JournalUserManagements","JOURNAL_USER_MANAGEMENT_STORE","SchedulerCreation","missingSchedulers","ScheduledEventsTracking","DELINQUENCY_TRACKING_SCHEDULED_EVENT_STORE","WrongEntriesTracking","DELINQUENCY_TRACKING_WRONG_ENTRY_STORE","INTERNAL_ROUTES","INTERNAL_MAIN","permissionRoles","permission","dependency","USER_PROFILE","SYRASOFT_USER_ROLES","userRole","EDIT_SYRASOFT_USER_ROLE","ACCOUNT_LIST","DELINQUENCY_TRACKING_OVERVIEW","JOURNAL","SCHEDULE_LIST","schedules","USER_LIST","allUsers","DAILY_SUMMARY_LIST","SAVED_DOCUMENTS_LIST","savedDocuments","ASYNC_TASK_LIST","asyncTaskList","ACCOUNT_MANAGEMENT","currentAccount","BUSINESS_GROUP_LIST","businessGroups","SANDBOX","sandbox","FACILITY_VIEW","USER_SETUP","EDIT_USER_SET_UP","FACILITY_CREATE_FROM_ACCOUNT","FACILITY_EDIT_FROM_ACCOUNT","delinquencyEvents","read","methodType","endPoint","OPERATIONS_ENDPOINTS","lateEvent","body","view","VIEW","list","journal","JOURNAL_ENDPOINTS","search","includeRelations","User","ActionConfig","DELINQUENCY_ENDPOINTS","searchMissingSchedulers","customHeaderOptions","update","delete","BUSINESS_GROUP_ENDPOINTS","detail","FACILITY_ENDPOINTS","Missing_Configs","searchAll","size","ACCOUNT_ENDPOINTS","SEARCH_MAX_SIZE","tenant","USER_ENDPOINTS","sort","created_date","order","scheduledDate","DOCUMENT_ENDPOINTS","searchForInternalConsole","createdDate","Tenant","date_done","SANDBOX_ENDPOINTS","searchSchedulers","Unit","Late_Event","overview","wrongEntries","Account_Receivable","pendingInvoiceDeliveryActionConfig","filter","terms","DOCUMENT_STATUS","Ready_For_Delivery","subDocumentType","SUB_DOCUMENT_TYPE","Invoice_Pre_Billing_Detailed","exists","batchId","Permissions","Global_Encryption_Key","Business_Group","Agreement_Link","store","keys","unit","UNIT_ENDPOINTS","createUnit","rateHistory","rateHistorySearch","effectiveDate","standaloneApp","STANDALONE_APP_ENDPOINTS","onboarding","ONBOARDING_ENDPOINTS","entities","Facility","Facility_General","Tax_Code","Unit_Type","Customer_General","Reservation","Move_In","Move_Out","vendor","inventoryList","verifyEmail","tenantsWithInvalidAccessCodes","ledger","gate_access","is_access_code_invalid","lastName","firstName","unitsWithInvalidAccessCodes","rental_status","Rented","tenantsForDocument","ledgerAccessCode","access_code","gateAccess","code","unitAccessCode","unitForDocuments","lead","config","ar","cash","preRequisite","RENTAL_ENDPOINTS","prerequisite","reservation","RESERVATION_ENDPOINTS","waitingList","WAITING_LIST_ENDPOINTS","unitBev","unitBevMini","users","unpaidAr","FINANCIAL_ENDPOINTS","tenantAlert","TENANT_ENDPOINTS","tenantAlertSearch","contactLog","contactLogSearch","tenantDepositToBePaid","arAggregation","aggregationName","AR_AGGREGATION","TENANT_DEPOSIT_TO_BE_PAID","maintenanceOperation","MAINTENANCE_OPERATION_ENDPOINTS","start_date","manualLateEvent","range","to","getCurrentDate","vacantUnitsCountByUnitType","aggregation","UNIT_AGGREGATION","VACANT_UNITS_COUNT_BY_UNIT_TYPE","vacantAndReservedUnitsCountByUnitType","VACANT_AND_RESERVATION_UNITS_COUNT_BY_UNIT_TYPE","failedReturnsCount","RETAIL_SALE_ENDPOINTS","returnsCount","originalPurchaseOrder","balance","fromStrict","failedReturns","purchaseOrderSearch","purchaseDate","delinquency","wcSearch","noOfDaysLate","from","from_strict","include_relations","Delinquency_Ledger_Info","estimate","pendingOverlockUnlockCount","count","overlock_status","Unlock_Pending","Overlock_Pending","Active","availabilityStatus","Available","Unavailable_On_Move_Out","restockInventoryCount","inventoryCount","available_quantity","to_field_strict","inventoryAuditCount","to_strict","applyLateEventsCount","PENDING_TASKS_ENDPOINTS","pastDueReservationsCount","RESERVATION_STATUS","Reserved","rentalInfo","moveInDate","dateFormatter","subtractFromDate","SEARCH_DATE_FORMAT","unitsPendingOverlockUnlock","textConversation","CONVERSATION_ENDPOINTS","listText","emailConversation","listEmail","text","searchText","email","searchEmail","textOrEmailUnreadCount","unreadCount","achTransaction","ACH_ENDPOINTS","searchTransactions","creditCardBatches","DAILY_SUMMARY_ENDPOINTS","task","BATCH_PAYMENT_TASKS","Auto_Payment","lastFinancialExport","documentType","DOCUMENT_TYPE","Financial_Export","savedDocument","DOCUMENTATION_STATUS","Pending","Delivery_Error","Generate_Error","Upload_Error","rentAdjustment","RENT_ADJUSTMENT_ENDPOINTS","rentAdjustmentGrid","automaticCreditCardDeclinesCount","CARD_PROCESSOR_TRANSACTION_ENDPOINTS","lastStatus","CARD_PROCESSOR_TRANSACTION_STATUS","Duplicate","Declined","Unknown","autoPay","parentTransaction","ledgerId","viewRentAdjustmentGrid","automaticCreditCardDeclines","lateEvents","unitId","tenantChangesCount","TENANT_CHANGE_TRACKING_ENDPOINTS","TENANT_CHANGE_TRACKING_STATUS","Queued","moveInCount","OCCUPANCY_HISTORY_ENDPOINTS","OTHER_EXTERNAL_ACTIVITY_TRACKING_STATUS","moveInSearch","payment","PAYMENT_ENDPOINTS","tfwReservationCount","approvalStatus","paymentCount","ccAboutToExpire","financials","card_info","token","expiration_date","year","addToDate","TIME_WINDOW","DAYS","FULL_YEAR_FORMAT","SHORT_YEAR_FORMAT","month","lte","getMonth","gte","tenantEmailChanges","change_type","TENANT_CHANGE_TYPE","tenantPhoneChanges","phone","tenantAddressChanges","address","tenantAlternateContactChanges","alternate_contact","tenantChangeTypeCount","depositLog","DEPOSIT_LOG_ENDPOINTS","printFailures","PRINT_FAILURES_ENDPOINTS","vehicleData","VEHICLE_ENDPOINTS","ccBatchTenants","BATCH_PAYMENT_ENDPOINTS","ledgerSearch","gt","sampleLetter","CONFIG_ENDPOINTS","config_type","CONFIG_TYPE","LETTER","entity_type","ENTITY_LEVEL","System_Facility","letter_type","LETTER_TYPE","System","_extra","include_system","pendingRentAdjustmentsForAUnit","RENT_ADJUSTMENT_STATUS","PENDING","subDocumentPrintFailures","deliveryMethod","DELIVERY_METHOD","Print","Rent_Adjustment","Receipt","printFailuresCount","pendingInvoiceDeliveryCount","pendingInvoiceDelivery","source","SEARCH_DOCUMENT_SOURCE","PENDING_INVOICE_DELIVERY","emailAudit","additional_info","delivery_status","customer_type","onMountConfigs","resolvePermission","roles","relationalData","roleId","permissionRoleId","actionKey","payload","method","resolveConfiguration","configType","extraFilters","entityId","api","entityType","resolveRequiredFields","resolveUnitType","resolveSuggestedFields","resolveCustomerGeneral","resolveRentalGeneral","resolveMoveIn","resolveChargeCategory","resolveTaxExemptCategory","resolveMoveOut","resolvePaymentMethod","resolveTenantWebsites","resolveFinancialPayment","resolveTenantSections","resolveLevel","resolveInventory","resolveLetter","resolveBevColors","resolveLateEvent","resolveActiveLateEvents","resolveFacilityGeneral","resolveCardProcessor","resolveLeaseStyle","resolveMaintenanceEvent","resolveInvoicing","resolveGate","resolveTransfer","resolveInsuranceCoverage","resolvePromoPlan","resolveVehicle","VEHICLE","resolvePlaceholder","PLACEHOLDER","resolveFinancialGeneral","FINANCIAL_GENERAL","resolveCurrentAccountId","_","__","routeProps","params","resolveFacility","defaultConfig","context","resolveCurrentFacility","defaultFacilityId","facilityList","fid","find","facilityMap","getCurrentFacility","userType","isSyrasoftUser","resolveChargeCategoryWithRestricted","__includeRestricted","resolveActivePaymentMethod","resolvePaymentAccessiblePromoPlans","accessibility","features","Payment","resolveActiveCardProcessor","resolvePendingRentAdjustmentsForAUnit","storeConfig","defaultTerms","rest","apiResult","callback","dispatch","localReqOptions","processedData","baseProcessor","mapRelationalData","dataKey","relationalDataKey","unMappedTenantData","outerData","processedUnits","tenantData","allUnitsData","nestedData","units","tenantsMappedByLedgerId","reduce","acc","ac","forEach","unitLedgerId","mapTenantData","processPayload","response","transformedKey","pascalCaseWithUnderscore","totalCount","dataObject","toObject","LOADED","processOtherResponses","configPostProcessor","async","storeData","subProcessor","requestOptions","timestamp","isQueued","QUEUED","curQueue","remove","log","handleError","handleStatusError","configData","responseKeys","map","camelCase","processValidResponse","postProcessor","getPostProcessor","chargeCategory","path","TAX_CODE","taxCode","CHARGE_CATEGORY","taxExemptCategory","unitType","maintenanceEvent","leaseStyle","paymentMethod","pushIfDoesNotExist","array","item","includes","fetchExtraData","dataToProcess","keysToResolveInfo","currentData","headers","idsToFetch","indicesToProcessWhileMerging","configTypes","updatedConfigTypes","updatedData","dataItem","dataIndex","childConfiguration","childValue","selectedEntityType","deCapitalize","getValue","childNestedData","Array","isArray","nestedDataId","toString","setValue","fetchedData","Set","getResolvedData","restFetchedData","restData","success","cleanData","handleConfigInheritance","ERROR","finalData","dataFromStore","currentDataIndex","mergedNestedData","mergedData","resolvedData","dataId","String","selectedOverriddenProcessedConfig","mergedNestedDataForChild","stringId","selectedOverriddenFinalConfig","postProcessResolvedData","configSubPostProcessor","resolvedUpdatedData","otherData","dependentConfig","filteredFinalData","description","reservationList","reservationData","unitTypeId","tenantId","activeInventoryList","requestType","activeInventoryListData","RequestTypes","PAGINATE","inventory","inventoryData","inventoryItem","vendorId","vendorStatus","mergedInventoryItem","restInnerData","mergeChildConfigWithParent","isDataReversed","arData","reverse","facilityData","permissions","facilityToRoleMapping","missingConfigs","accountNumber","facilityGeneral","processedRoles","profileId","flattenObject","updatedFacilityData","setupStatus","SETUP_STATUS","INCOMPLETE","COMPLETE","manualLateEventPostProcessor","processedResponse","allProcessedData","processedLateEvents","responseData","tenants","ledgerTenantObj","oldData","ledgerIdToTenantIdMapping","prevVal","ledgersOfTenant","newData","eachData","requiredTenantId","remainingData","prevValue","unitTypeData","userData","createdBy","userId","interestedUnitTypes","delinquencyPostProcessor","resTotalCount","statusList","processedLedgers","actualRows","newTotalCount","eachLedger","delinquencyInfo","restOuterData","updatedUnitType","unitTypeDetail","resolveCustomHeaders","apiOptions","processCustomHeaders","processedApiOptions","resolveInsuranceResponse","insuranceConfig","insuranceVendors","configResponse","configResponseTimestamp","Insurance","providerId","insuranceVendorResponse","Insurance_Provider","vendors","filterInsuranceVendor","fetchInsuranceConfig","insuranceConfigApiOptions","insuranceConfigBody","INSURANCE","entity_id","getInsuranceConfigApiOptions","insuranceProviderApiOptions","insuranceProviderConfigBody","INSURANCE_PROVIDER","getInsuranceVendorApiOptions","insuranceProviders","fetchInsuranceCategoryReports","insuranceCategoryId","insuranceCategoryApiOptions","baseUrl","process","REPORT_WC_ENDPOINTS","report","category","getInsuranceCategoryReportsApiOptions","insuranceCategoryReports","fetchInsuranceCategory","categoryApiOptions","getCategoryApiOptions","insuranceCategory","insurance","others","categoryId","reportCategory","categoryData","insuranceVendor","reports","resolveInsuranceVendorReports","insuranceCategoryIdForAllReports","insuranceReportsId","filteredReports","getCustomerList","leads","conversations","conversationKey","tenantObject","leadObject","getName","customerWithConversations","conversationType","conversationEntry","customerType","customerId","additionalData","displayName","texts","emails","a","b","dateDiff","lastContacted","MILLISECONDS","mapIdsByAccessCode","mappedData","accessCode","ids","innerData","transactions","ledgers","ledgerObject","tenantName","amount","restValues","paymentAmount","convertToNumber","toFixed","refundAmount","textData","emailData","parentMailIds","comments","additionalInfo","externalId","references","mostRecentEmailDate","parentMailId","emailsInAThread","parentMailIdSubject","unitList","allTenantsMap","v","ledgerData","ledgerName","viewRentAdjustmentDataFormatter","ledgerIds","processDeclines","allDeclines","declinesData","processedDeclines","allDeclinesData","declines","customTotalCount","decline","onResolvedLedgerIds","passedLedgerIds","resolveLedgerResults","resolveLedgerApiOptions","resolveLedgerIds","automaticCreditCardDeclinesPostProcessor","restDeclines","tenantAndLedgerData","failedReturnsData","failedReturnsItem","restFailedReturnsItem","WALK_IN_CUSTOMER_NAME","WALK_IN_CUSTOMER_ID","CUSTOMER_TYPE","Letter","ledgerMap","eachTenant","eachUnit","isObjWithKeys","Is_Delinquent","tenantsDelinquentStatus","isDelinquent","emailAuditFormatCustomerId","resultData","getTenantNameFromCustomerId","Reservation_Count_By_Unit_Type","reservedUnits","Vacant_Units_Count_By_Unit_Type","vacantUnits","restReservedUnits","deepCopy","overbookedCounts","vacantCount","reservedCount","tenantLookup","updatedUnit","unMappedUnitData","initialCount","unitData","flatMap","newTenant","mapUnitData","tenantPhoneChangesPostProcessor","tenantEmailChangesPostProcessor","tenantAlternateContactChangesPostProcessor","tenantAddressChangesPostProcessor","restProcessedData","processedFacility","processedFacilityData","processedItems","isTenantRelationalData","isUnitRelationalData","unitRelationalData","accumulator","modifiedData","obj","modifiedObj","metaInfo","requestEndpoint","changeType","unitDetails","eachUnitId","unitLabel","parseInt","requestEndpointParts","split","isStaging","Sentry","SENTRY_CONFIG","ReactDOM","render","getElementById","searchType","lockoutEventType","lateType","SEARCH_TYPE","LATE_TYPE","LATE_EVENT_TYPE","ALLOWED_LATE_EVENT_STATUS","DELINQUENCY_STATUS","Processed","Skipped","Waived","ALL_LOCKOUT_EVENT_TYPES","LOCKOUT_TYPE","Unit_Overlock","Gate_Lockout","Tenant_Portal_Lockout","ALLOWED_LATE_EVENT_TYPE","One_Time","Recurring","Dollar_Per_Day","DELINQUENCY_TRACKING_OVERVIEW_DEFAULT_FILTER","anniversary","DELINQUENCY_TRACKING_LATE_EVENTS_DEFAULT_FILTER","DELINQUENCY_TRACKING_LOCKOUT_EVENTS_DEFAULT_FILTER","DELINQUENCY_TRACKING_SCHEDULED_EVENTS_DEFAULT_FILTER","Inactive","DELINQUENCY_TRACKING_WRONG_ENTRY_DEFAULT_FILTER","events","getHeaderText","delinquencySearchType","facilityName","headerText","labelFormatter","concat","TABLE_WIDTH","TABLE_LEFT_AND_RIGHT_PADDING","PATHS","PAYMENT_METHOD","TAX_EXEMPT","PROMO_PLAN","PROMO_PLAN_TEMPLATE","LATE_EVENT","MAINTENANCE_EVENT","OPERATIONS_MAINTENANCE_EVENTS","LEASE_STYLE","RENT_ADJUSTMENT","CARD_PROCESSOR","OPERATIONS_BATCH_PAYMENT","VIOLATION","ROUTE","PENDING_TASKS","LIVE_DATA","PULLED_DATA","EXTERNAL_MAIN","SETTINGS_LIVE","SETTINGS_PULLED","SETTINGS_MAIN","ONBOARDING","TENANT_LIST","FINANCIAL_LIST","UNIT_LIST","LEAD_LIST","RESERVATION_LIST","EDIT_RESERVATION","EDIT_WAITING","VENDOR_LIST","INVENTORY_LIST","EDIT_TENANT","VIEW_TENANT","CREATE_TENANT","LEDGER_REVIEW","CREATE_LEAD","EDIT_LEAD","CREATE_AR","EDIT_UNIT","CREATE_UNIT","MOVE_IN","MOVE_OUT","CREATE_USER","EDIT_USER","CONFIGURATION","SYSTEM_CONFIGURATION","CHARGE_CATEGORY_LIST","PAYMENT_METHOD_LIST","TAX_CODE_LIST","TAX_EXEMPT_LIST","UNIT_TYPE_LIST","FACILITY_GENERAL","FINANCIAL_EXPORT","VIOLATION_LIST","VIOLATION_CONFIGURATION","GATES","RETAIL_SALE","ACH","QUICKBOOK_CONFIG","BEV_COLOR_SETUP","WALK_AROUND","MAINTENANCE_EVENT_LIST","MAINTENANCE_EVENT_FORM","CUSTOMER_GENERAL","RENTAL_GENERAL","PROMO_PLAN_LIST","PROMO_PLAN_TEMPLATE_LIST","PROMO_PLAN_FORM","PROMO_PLAN_TEMPLATE_FORM","UNIT_TYPE_FORM","RESERVATION","ESTIMATE","WAITING","TAX_EXEMPT_CATEGORY","PAYMENT_CONFIGURATION","CHARGE_CATEGORY_MAPPING","TENANT_CHANGE_TRACKING","TENANT_ACCOUNT_TYPE","TENANT_SECTIONS","USER_ROLE","CARD_PROCESSOR_LIST","EDIT_USER_ROLE","CREATE_ROLE","BEV_VIEW","BEV_SETUP","POINT_OF_SALE","RETAIL_SALE_RETURNS","LETTER_LIST","LETTER_CONFIGURATION","REPORT_WC","CONSOLIDATED_REPORT_WC","LATE_EVENT_LIST","LATE_EVENT_FORM","CONVERSATIONS","EMAIL_AUDIT","INTERNAL_APP","DOCS_RB","DOCS_GD","WAITING_LIST","REPORT","CONSOLIDATED_REPORT","OPERATIONS","MANUAL_LATE_EVENT","MANUAL_RENT_ASSESSMENT","ACH_OPERATIONS","BATCH_PAYMENT","LETTER_UTILITY","OPERATIONS_MAINTENANCE_EVENTS_LIST","OPERATIONS_MAINTENANCE_EVENTS_FORM","OPERATIONS_MAINTENANCE_EVENTS_EDIT","RENT_ADJUSTMENT_LIST","MANUAL_RENT_ADJUSTMENT_CREATE","AUTO_RENT_ADJUSTMENT_CREATE","VIEW_RENT_ADJUSTMENT","DEPOSIT_LOG","OPERATIONS_CREDIT_CARD_BATCH_CREATE","TENANT_WEBSITES","DELINQUENCY_LIST","DEPOSIT_UPDATE","LEASE_GENERAL","LEASE_STYLE_LIST","LEASE_STYLE_FORM","PENDING_OVERLOCK_UNLOCK_LIST","INVOICING","TRANSFER","AUTOMATIC_CREDIT_CARD_DECLINES_LIST","FAILED_RETURNS_LIST","TENANT_CHANGES","OTHER_EXTERNAL_ACTIVITY","activityType","VIEW_CC_BATCH","UNIT_TYPE_BULK","SINGLE_UNIT_RENT_ADJUSTMENT","PRINT_FAILURES","DELIVER_INVOICE","CC_ABOUT_TO_EXPIRE","gateAccessType","userManagementCategory","GATE_ACCESS_TYPE","USER_MANAGEMENT_CATEGORY_TYPE","FACILITY_CONTEXT_SEARCH_TYPES","Configuration_Changes","Late_Events","Lockout_Events","ACCOUNT_CONTEXT_SEARCH_TYPES","User_Role","User_Management","JOURNAL_CONFIG_LIST","CONFIGURATION_TYPE","Facility_Configuration","toLowerCase","Financial_Configuration","Unit_Configuration","Customer_Configuration","Rental_Configuration","Customer_Engagement_Configuration","JOURNAL_CONFIGURATION_CHANGES_DOES_NOT_EXISTS_FILTER","oldValue__value__templateContent","oldValue__value__text_friendly__templateContent","JOURNAL_CONFIGURATION_CHANGES_DEFAULT_FILTER","notExists","JOURNAL_LOCKOUT_EVENTS_DEFAULT_FILTER","Ledger_Gate_Access","Unit_Gate_Access","Unit_Overlock_Status","JOURNAL_USER_ROLES_DEFAULT_FILTER","JOURNAL_USER_MANAGEMENT_DEFAULT_FILTER","journalSearchType","ADDITIONAL_FILTERS_TO_INCLUDE_WITH_FACILITY_CONFIG","Retail_Sale_Configuration","JOURNAL_LIST_ROW_HEIGHT","TABLE_WIDTH_OFFSET","TABLE_HEIGHT_OFFSET","Enums","action","ACTION","CALLING_SOURCE","MINIMUM_CART_WIDTH","DEFAULT_CART_WIDTH","DEFAULT_CART_HEIGHT","CART_LEFT_RIGHT_PADDING","desktop","responsive","CART_TOP_BOTTOM_PADDING","SCAN_BARCODE_TIMEOUT","DEFAULT_LIST_WIDTH","DEFAULT_LIST_HEIGHT","HORIZONTAL_PADDING","VERTICAL_PADDING","CONTAINER_PADDING","websiteAccess","visibleAt","contactLogCustomerType","contactLogType","contactLogAutoMode","contactLogSource","invoiceType","invoiceStyle","invoicingStatus","recipientType","viewTenantAlerts","documentationStatus","autoInvoiceDeliveryType","alertConfigurationModules","useStyles","makeStyles","formatterStyle","LabelComponent","Component","icon","isSeverityIcon","classes","start","className","clsx","iconColor","variant","noWrap","propTypes","PropTypes","func","string","bool","props","mapObject","formatter","mappedObject","WEBSITE_ACCESS","SEVERITY_LEVEL","severityLevel","MODE","NUMBER_OF_ROWS_WHEN_COLLAPSED","NUMBER_OF_ROWS_WHEN_EXPANDED","MAX_VISIBLE_UNITS","MAX_VISIBLE_UNITS_FOR_MOBILE","TOTAL_MARGIN","TOTAL_MARGIN_CRM","SMART_LIST_WIDTH_FOR_VIEW_TENANT_COMPONENTS","DROPDOWN_MAX_HEIGHT","DROPDOWN_WIDTH","TABLE_HEADER_HEIGHT","VISIBLE_AT","CONTACT_LOG_CUSTOMER_TYPE","CONTACT_LOG_TYPE","CONTACT_LOG_AUTO_MODE","DOCUMENTATION_RESPONSIVE_WIDTH","DOCUMENTATION_RESPONSIVE_HEIGHT","INVOICE_STYLE","INVOICE_TYPE","INVOICING_STATUS","RECIPIENT_TYPE","AUTO_INVOICE_DELIVERY_TYPE","updatedLabel","getInvoicingInitValues","daysBeforeRentAssessment","invoicing","isEnabled","generateForZeroBalance","TENANT_ALERT","tenantAlertList","MODULE","VIEW_TENANT_ALERT_NAME","UNPAID_AR_STORE","PRORATE_CALC_DAYS","PERIOD_LIST","RESERVATION_LOCKED_RATE_FIELDS","BILLING_TYPE","ACTIONS","BALANCE_DUE","CREDIT_DUE","DEPOSIT_CALC","DEPOSIT_TYPE","MOVE_OUT_DOCUMENTS","MOVE_IN_DOCUMENTS","RESERVATION_DOCUMENTS","RESERVATION_CONFIG_FIELDS","FIELD_ACTIONS","ROUNDING_TYPE","DEFAULT_CONFIG_VALUES","general","maxDaysBeforeMoveIn","deposit","Refundable","calculationType","Flat","cancellation","Non_Refundable","TRANSFER_INIT_VALUES","isChargeable","fee","TRANSFER_DOCS","TRANSFER_DOCUMENTS","LEASE_AGREEMENT","transferDocument","UNIT_TRANSFER","isLetter","byTenantFiltersType","recurPeriod","roundingType","calcTypesForSchedulingOnRentedUnits","calcTypesForSchedulingOnVacantUnits","warningType","warningResolutionType","chargesAfterRentAdjustmentRequestSource","rentAdjustmentPeriod","addParentConfigToList","updatedConfigList","configList","shouldAddParentConfigToList","eachChildConfiguration","childId","updatedConfig","configKey","OVERRIDABLE_CONFIGS","configSDPostProcessor","DATA_FETCH_TIMEOUT","CHARGES_AFTER_RENT_ADJUSTMENT_REQUEST_SOURCE","rentalStatusRadioList","rented","vacant","Vacant","BY_TENANTS_FILTERS_TYPE","RECUR_PERIOD","CALCULATION_TYPES_FOR_SCHEDULING_ON_RENTED_UNITS","CALCULATION_TYPES_FOR_SCHEDULING_ON_VACANT_UNITS","WARNING_TYPE","WARNING_RESOLUTION_TYPE","RENT_ADJUSTMENT_ALREADY_EXISTS_WARNING_CURRENT_ROW_ID","RENT_ADJUSTMENT_PERIOD_LIST","capitalize","RENT_ADJUSTMENT_STATUS_LIST","scheduled","UNIT_DEFAULT_SORT","UNIT_DEFAULT_FILTER","includeInRentableInventoryCount","maintenanceEventStatus","maintenanceEventActionItem","MAINTENANCE_EVENT_STATUS","MAINTENANCE_EVENT_ACTION_ITEM","STAGE_STATUS","VERIFY_USER","SUCCESS_SIGNIN","SUCCESS_SIGNIN_2FA","RESET_PASSWORD","CREATE_PASSWORD","FORGOT_PASSWORD","RESET_PASSWORD_2FA","USER_LOCKED","PASSWORD_POLICY_STATUSES","SUBSTATUS_CODES","AUTHORIZED_USER","UNAUTHORIZED_USER","CREATED_USER","EXPIRED_PASSWORD","TWO_FACTOR_EXPIRED","ACCESS_CODE_EXPIRED","SAME_AS_PREVIOUS","INVALID_TOKEN","HAS_ACTIVE_ADMIN_SESSIONS","ERROR_MESSAGES","VERIFY_OLD_PASSWORD","NEW_PASSWORD_MATCH","SEND_CODE_ERROR","SEND_CODE_UNSUCCESSFUL","RESET_PASSWORD_ERROR","PASSWORD_EXPIRED","GENERIC_ERROR","AUTH_CODE_TYPES","ACCESS_CODE","TWO_FACTOR","AUTH_CODE_SOURCES","getTimezoneList","IconComponent","fullWidth","deactivateType","configurationTab","TEXT_FIELD_WIDTH","SMALL_DROPDOWN_MAX_HEIGHT","SMALL_TEXTFIELD_WIDTH","EXTRA_SMALL_TEXTFIELD_WIDTH","LARGE_TEXTFIELD_WIDTH","EXTRA_LARGE_TEXTFIELD_WIDTH","CONFIGURATION_DEFAULT_SORT","FIXED_FILTERS_KEYS","ENTITY_TYPE","CONFIG_LEVEL_TYPE","DEACTIVATE_TYPE","CONFIGURATION_TABS","RESOURCE_NAME_TO_CONFIG_MAPPING","RESOURCE_URL_TO_CONFIG_TAB_MAPPING","BILLING_AND_ALLOCATION","UNITS","TENANTS","OCCUPANCY","PAYMENTS","DOCUMENTATION","THIRD_PARTY_SUPPORT","FACILITY_CONFIG_TAB_ID_MAPPING","BUSINESS_GROUP_CONFIG_TAB_ID_MAPPING","LETTER_SOURCE","PAPER_SIZE","LETTER_FORMAT","BUTTON_TYPE","MERGE_FIELD_SECTION_TYPE","headerButton","getLabelWithSymbol","currency","otherSymbol","CURRENCY_MAP","unitTypes","el","singleLedger","currentRate","recurringCharges","tenantTemp","theme","indicator","fontSize","cursor","required","color","palette","main","disabled","input","isTenantAlert","textAlign","height","paddingBottom","spacing","paddingTop","dropdown","width","listItem","padding","Warning","topMargin","marginTop","checkBoxLabel","tenantFormCriticalKeys","requiredFields","suggestedFields","tenantSections","gate","cardProcessor","financialPayment","tenantFormOnMountKeys","funcName","tenantFormConfig","leadFormConfig","editUserFormConfig","createUserFormConfig","reportWcConfig","occupancyConfig","printer","bevConfig","placeholder","level","bevColors","rentalGeneral","externalConfig","reprintDocuments","vehicle","letter","tenantWebsites","transfer","customerGeneral","financialGeneral","configurationDependencies","promoPlan","promoPlanTemplate","customMergeFields","insuranceCoverage","violation","settingsDependencies","liveDataConfig","liveSettingsConfig","Header","Login","PendingTasks","TenantInvalidAccessCodeList","UnitInvalidAccessCodeList","TenantForm","LeadForm","UnitForm","RateHistory","LateEvents","VendorForm","InventoryAudit","InventoryBulkRestock","InventoryIndividualRestock","InventoryForm","PointOfSale","HomePage","DeliveryMethodDropdown","Documentation","TenantAlerts","UnpaidBills","ReservationCRM","ContactLog","TenantDeposit","WrappedInventoryBulkRestock","WrappedInventoryAudit","AllBatches","CurrentBatch","CreditCardBatches","TextList","EmailList","TextOrEmailSelection","ListOrCompose","UnitDepositUpdate","DepositUpdate","TenantDepositUpdate","TenantAddressChanges","TenantAlternateContactChanges","TenantEmailChanges","TenantPhoneChanges","GenerateLeaseAgreement","LetterTemplateList","LeaseStyleBulk","CCAboutToExpireList","AUTO_PAYMENT","RENT_ASSESSMENT","AUTO_INVOICING","DELINQUENCY","FACILITY_LIST","BUSINESS_GROUP_MANAGEMENT","AUTO_PAYMENT_TASK_SUMMARY","RENT_ASSESSMENT_TASK_SUMMARY","DELINQUENCY_TASK_SUMMARY","AUTO_INVOICING_TASK_SUMMARY","EDIT_FACILITY","CREATE_FACILITY","EDIT_ACCOUNT","CREATE_ACCOUNT","MIGRATION","MIGRATION_DETAILS","CREATE_USER_SET_UP","ACCOUNT_FACILITY_LIST","BG_LIST","createStore","reducer","App","constructor","super","componentDidMount","addEventListener","this","onResize","componentWillUnmount","removeEventListener","debounce","updateWindowDimensions","forceUpdate","updateDeviceInfo","deviceInfo","info","getDeviceOSInfo","isMobile","innerWidth","screenMaxWidth","mobile","isPhablet","screenMinWidth","phablet","isTablet","tablet","isDesktop","laptop","setUserLoginState","loginStatus","pathToRedirect","setState","isUserLoggedIn","withProvider","state","getCookie","COOKIE_KEY","TOKEN","eventEmitter","newEventEmitter","subscribe","deleteCookie","DEFAULT_FACILITY_ID","PAYMENT_TOKEN","storeKey","DEFAULT_EXTERNAL_ROUTE","redirectTo","newProps","router","getRouter","ROLLBAR_CONFIG","useAnchorTag","base","Theme","maxSnack","containerAnchorOriginBottomLeft","bottomLeftSnackbarContainer","Provider","withStyles","baseStyle"],"mappings":"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","file":"index_bundle.12b834bd9ca43cb731d7.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t9: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"1\":\"external\",\"3\":\"public\",\"4\":\"internal\",\"5\":\"account-list\",\"6\":\"async-task-list\",\"7\":\"cc-about-to-expire-list\",\"8\":\"journal\",\"10\":\"moveout\",\"11\":\"onboarding-main\",\"12\":\"sandbox\",\"13\":\"scheduler-creation\",\"14\":\"user-edit\",\"15\":\"user-form\",\"16\":\"user-form-ext\",\"17\":\"user-setup\",\"18\":\"vehicle-list\",\"19\":\"vendor-list\",\"20\":\"view-tenant\"}[chunkId]||chunkId) + \".\" + {\"1\":\"12b1c034c8a768824005\",\"3\":\"56f87770adfffb7aa454\",\"4\":\"fa5cff2e5d61d8d4b2c7\",\"5\":\"776bb52c805a6bbbd983\",\"6\":\"cfab017fc23c348474c9\",\"7\":\"86ae0ec5de42d9a58cd8\",\"8\":\"a403d6ccf357b645f1db\",\"10\":\"c9683caf241320664555\",\"11\":\"ddff3087b81e61a69755\",\"12\":\"2c27e7a626b555edfbb5\",\"13\":\"08d5e2237e2c1c7c6a83\",\"14\":\"913fdd8f2a0919fc1961\",\"15\":\"7f9661f25cd8f4f890b3\",\"16\":\"2bcc125b8564004a0bdb\",\"17\":\"b2d67bcaebac69104226\",\"18\":\"ef870fe7f9c73e577066\",\"19\":\"72aa436d03e0bcbb09a9\",\"20\":\"18fa20b72d4d50d902d6\",\"21\":\"39cb66c3198966c0c147\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([1110,0,2]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import Icon from 'Commons/components/generic/icon/components/Icon';\r\nimport { mapEnum, createEnumMap } from 'Commons/helpers/utils/Formatter';\r\nimport localisable from 'Commons/config/strings/localisable';\r\nimport enums from '../../config/Enums';\r\n\r\nconst YES_NO_LIST = [\r\n {\r\n label: 'Yes',\r\n value: 'true',\r\n },\r\n {\r\n label: 'No',\r\n value: 'false',\r\n },\r\n];\r\nconst REQUIRED_LIST = [\r\n {\r\n label: 'Always',\r\n value: 'always',\r\n },\r\n {\r\n label: 'On Demand',\r\n value: 'onDemand',\r\n },\r\n {\r\n label: 'Optional',\r\n value: 'optional',\r\n },\r\n];\r\n\r\n\r\nconst SHOW_HIDE_LIST = [\r\n {\r\n label: 'Show',\r\n value: true,\r\n },\r\n {\r\n label: 'Hide',\r\n value: false,\r\n },\r\n];\r\n\r\nconst ORIENTATION_LIST = [\r\n {\r\n label: 'Vertical',\r\n value: 'vertical',\r\n },\r\n {\r\n label: 'Horizontal',\r\n value: 'horizontal',\r\n },\r\n];\r\nconst SECTION_NAMES = {\r\n BASIC_INFORMATION: 'Basic Information',\r\n OCCUPANCY: 'Occupancy',\r\n INSURANCE: 'Insurance',\r\n INVOICE: 'Invoice',\r\n LEASE: 'Lease',\r\n MAP: 'Map',\r\n};\r\nconst EDIT_ACTION_ITEMS_LIST = [\r\n {\r\n addon: { start: },\r\n label: 'Preview',\r\n },\r\n {\r\n addon: { start: history },\r\n label: 'History',\r\n },\r\n {\r\n addon: { start: },\r\n label: 'Delete',\r\n },\r\n];\r\n\r\nconst PERIOD_LABEL_MAP = {\r\n Day: 'Daily',\r\n Month: 'Monthly',\r\n Week: 'Weekly',\r\n Quarter: 'Quarterly',\r\n Twenty_Eight_Day: '28-days',\r\n Bi_Annual: 'Bi-Annual',\r\n Annual: 'Annual',\r\n Seasonal: 'Seasonal',\r\n};\r\n\r\n\r\nconst PERIOD = mapEnum(enums.period);\r\nconst PERIOD_WITH_CUSTOM_LABEL = mapEnum(enums.period, label => PERIOD_LABEL_MAP[label]);\r\nconst OVERLOCK_STATUS = mapEnum(enums.overlockStatus);\r\nconst RENTAL_STATUS = mapEnum(enums.rentalStatus);\r\nconst PROMO_PLAN_STATE = mapEnum(enums.promoPlanState);\r\nconst CALCULATION_STYLE = mapEnum(enums.calculationStyle, label => (label === 'Percentage' ? localisable.percentageOfUnitRate : label));\r\nconst VACANT_AVAILABILITY_STATUS = mapEnum(enums.vacantAvailabilityStatus);\r\nconst RENTED_AVAILABILITY_STATUS = mapEnum(enums.rentedAvailabilityStatus);\r\nconst LATE_EVENT_TRIGGER = mapEnum(enums.lateEventTrigger);\r\nconst LATE_EVENT_STATUS = mapEnum(enums.lateEventStatus);\r\nconst LEASE_STATUS = mapEnum(enums.leaseSignStatus);\r\nconst NON_OVERRIDABLE_FIELDS = ['availabilityStatus', 'rentalStatus', 'nextRentAssessmentDate',\r\n 'nextAmountPayable', 'rentChargeCategoryId', 'nextRentAssessmentRate', 'currentRate'];\r\n\r\nconst MONTHS_IN_PERIOD = {\r\n [PERIOD.Month.value]: 1,\r\n [PERIOD.Quarter.value]: 3,\r\n [PERIOD.Bi_Annual.value]: 6,\r\n [PERIOD.Annual.value]: 12,\r\n};\r\n\r\nconst NRAD_ACTION_TYPE = createEnumMap(enums.nradActionType);\r\nconst RATE_HISTORY_STATUS = mapEnum(enums.rateHistoryStatus);\r\n\r\nconst DEPENDENT_FIELDS = {\r\n NEXT_AMOUNT_PAYABLE: [{\r\n valueFieldName: 'currentRate',\r\n initFieldName: 'initialCurrentRate',\r\n }],\r\n};\r\n\r\nconst RESERVATION_INFO_TENANT_NAME_LENGTH_BREAKPOINT = 25;\r\nconst RATE_HISTORY_WIDTH_FOR_RESPONSIVE = 1032;\r\nconst EXTRA_SPACE_IN_RATE_HISTORY_HEIGHT_FOR_RESPONSIVE = 108;\r\nconst EXTRA_SPACE_IN_RATE_HISTORY_HEIGHT = 78;\r\nconst EXTRA_SPACE_IN_RATE_HISTORY_WIDTH = 64;\r\n\r\nexport {\r\n PERIOD,\r\n YES_NO_LIST,\r\n RENTAL_STATUS,\r\n SECTION_NAMES,\r\n REQUIRED_LIST,\r\n SHOW_HIDE_LIST,\r\n DEPENDENT_FIELDS,\r\n OVERLOCK_STATUS,\r\n PROMO_PLAN_STATE,\r\n CALCULATION_STYLE,\r\n MONTHS_IN_PERIOD,\r\n NRAD_ACTION_TYPE,\r\n ORIENTATION_LIST,\r\n RATE_HISTORY_STATUS,\r\n NON_OVERRIDABLE_FIELDS,\r\n EDIT_ACTION_ITEMS_LIST,\r\n PERIOD_WITH_CUSTOM_LABEL,\r\n VACANT_AVAILABILITY_STATUS,\r\n RENTED_AVAILABILITY_STATUS,\r\n RATE_HISTORY_WIDTH_FOR_RESPONSIVE,\r\n EXTRA_SPACE_IN_RATE_HISTORY_WIDTH,\r\n EXTRA_SPACE_IN_RATE_HISTORY_HEIGHT,\r\n RESERVATION_INFO_TENANT_NAME_LENGTH_BREAKPOINT,\r\n EXTRA_SPACE_IN_RATE_HISTORY_HEIGHT_FOR_RESPONSIVE,\r\n LATE_EVENT_TRIGGER,\r\n LATE_EVENT_STATUS,\r\n PERIOD_LABEL_MAP,\r\n LEASE_STATUS,\r\n};\r\n","import { createEnumMap } from 'Commons/helpers/utils/Formatter';\r\n\r\nconst formatter = label => label.replace(/([A-Z])/g, match => `_${match}`).toUpperCase();\r\nconst CONFIGURATION_PERMISSION_KEYS = createEnumMap(\r\n [\r\n 'facilityDeactivateConfig',\r\n 'facilityAccess',\r\n 'facilityAccessFinancials',\r\n 'facilityAccessFinancialGrouping',\r\n 'facilityAccessOccupancy',\r\n 'facilityAccessDelinquency',\r\n 'facilityAccessLetter',\r\n 'facilityAccessUnitType',\r\n 'facilityAccessTfw',\r\n 'facilityAccessCustomer',\r\n 'businessGroupDeactivateConfig',\r\n 'businessGroupAccess',\r\n 'businessGroupAccessFinancials',\r\n 'businessGroupAccessFinancialGrouping',\r\n 'businessGroupAccessOccupancy',\r\n 'businessGroupAccessDelinquency',\r\n 'businessGroupAccessLetter',\r\n 'businessGroupAccessUnitType',\r\n 'businessGroupAccessTfw',\r\n 'businessGroupAccessCustomer',\r\n ],\r\n formatter,\r\n);\r\n\r\nexport { CONFIGURATION_PERMISSION_KEYS };\r\n","/* eslint-disable consistent-return */\r\nimport STATUS from '../../../commons/config/constants/StoreKeyStatus';\r\n\r\nconst CustomHeaders = {\r\n ACCOUNT: 'Account',\r\n BUSINESS_GROUP: 'Business_Group',\r\n FACILITY: 'Facility',\r\n};\r\n\r\nconst StoreCustomHeaders = {\r\n facility: {\r\n type: CustomHeaders.FACILITY,\r\n id: ({ currentFacility }) => {\r\n if (currentFacility && currentFacility.status > STATUS.LOADING) {\r\n const { data: { id: facilityId } } = currentFacility;\r\n return facilityId;\r\n }\r\n },\r\n },\r\n account: {\r\n type: CustomHeaders.ACCOUNT,\r\n id: ({ currentAccountId }) => {\r\n if (currentAccountId && currentAccountId.status > STATUS.LOADING) {\r\n const { data: { id: accountId } } = currentAccountId;\r\n return accountId;\r\n }\r\n },\r\n },\r\n};\r\n\r\nexport {\r\n CustomHeaders,\r\n StoreCustomHeaders,\r\n};\r\n","import { MOVE_IN_PERMISSION_KEYS, RESERVATION_PERMISSION_KEYS } from\r\n 'External/containers/createoccupancy/config/PermissionKeys';\r\nimport { UNIT_PERMISSION_KEYS } from 'External/containers/unit/form/config/UnitPermissionKeys';\r\nimport { AUDIT_PERMISSION_KEYS } from 'External/containers/inventory/audit/config/AuditPermissionKeys';\r\nimport { INVENTORY_PERMISSION_KEYS } from 'External/containers/inventory/list/config/InventoryPermissionKeys';\r\nimport { MANUAL_CHARGE_PERMISSION_KEYS } from 'External/containers/manualForm/config/PermissionKeys';\r\nimport { TENANT_PERMISSION_KEYS } from 'External/containers/tenant/form/config/PermissionKeys';\r\nimport MOVE_OUT_PERMISSION_KEYS from 'External/containers/moveout/config/PermissionKeys';\r\nimport MAINTENANCE_EVENTS_PERMISSION_KEYS from\r\n 'External/containers/operations/components/maintenanceEvents/config/PermmissionKeys';\r\nimport PAYMENT_PERMISSION_KEYS from 'Commons/components/business/payment/config/PermissionKeys';\r\nimport CHARGE_PERMISSION_KEYS from 'External/containers/ledgerreview/config/PermissionKeys';\r\nimport { REPORT_PERMISSION_KEYS } from 'External/containers/report/config/PermissionKeys';\r\nimport { SYRAPAY_MERCHANT_PORTAL_PERMISSION } from 'External/containers/facilityConfiguration/config/PermissionKeys';\r\nimport { FACILITY_MANAGEMENT_PERMISSION_KEY, USER_MANAGEMENT_PERMISSION_KEY } from 'Commons/components/business/user/config/Constants';\r\nimport { RENT_ADJUSTMENT_KEYS } from 'External/containers/operations/components/rentAdjustment/config/PermissionKey';\r\nimport { CONFIGURATION_PERMISSION_KEYS } from 'External/containers/configuration/config/PermissionKeys';\r\n\r\nexport default {\r\n moveIn: ['facility.occupancy.moveIn.access'],\r\n rentAssessment: ['facility.occupancy.rentAssessment.access'],\r\n moveOut: ['facility.occupancy.moveOut.access'],\r\n [PAYMENT_PERMISSION_KEYS.PAYMENT]: ['facility.financials.payment.access'],\r\n [PAYMENT_PERMISSION_KEYS.EFFECTIVE_DATE]: ['facility.financials.payment.editEffectiveDate'],\r\n [PAYMENT_PERMISSION_KEYS.NEGATIVE_PAYMENT]: ['facility.financials.payment.negativeAmount'],\r\n [PAYMENT_PERMISSION_KEYS.REFUNDS]: ['facility.financials.refunds'],\r\n [PAYMENT_PERMISSION_KEYS.DELETE_PAYMENT]: ['facility.financials.payment.delete'],\r\n [PAYMENT_PERMISSION_KEYS.REVERSE_PAYMENT]: ['facility.financials.payment.reverse'],\r\n [MOVE_IN_PERMISSION_KEYS.PERIOD]: ['facility.occupancy.moveIn.nonStandardPeriods'],\r\n [MOVE_IN_PERMISSION_KEYS.MOVE_IN_DATE]: ['facility.occupancy.moveIn.editMoveInDate'],\r\n [MOVE_IN_PERMISSION_KEYS.EDIT_SETUP_FEE]: ['facility.occupancy.moveIn.editSetupFee'],\r\n [MOVE_IN_PERMISSION_KEYS.WAIVE_SETUP_FEE]: ['facility.occupancy.moveIn.waiveSetupFee'],\r\n [MOVE_IN_PERMISSION_KEYS.EDIT_DEPOSITS]: ['facility.occupancy.moveIn.editDeposits'],\r\n [MOVE_IN_PERMISSION_KEYS.WAIVE_DEPOSITS]: ['facility.occupancy.moveIn.waiveDeposits'],\r\n [MOVE_IN_PERMISSION_KEYS.PRORATE]: ['facility.occupancy.moveIn.waiveProrate'],\r\n [MOVE_IN_PERMISSION_KEYS.BILL_TO_DATE]: ['facility.occupancy.moveIn.billToDate'],\r\n [MOVE_IN_PERMISSION_KEYS.UNIT_RATE_UP]: ['facility.occupancy.moveIn.unitRateUp'],\r\n [MOVE_IN_PERMISSION_KEYS.UNIT_RATE_DOWN]: ['facility.occupancy.moveIn.unitRateDown'],\r\n [UNIT_PERMISSION_KEYS.UNIT_GENERAL]: ['facility.unit.edit.general'],\r\n [UNIT_PERMISSION_KEYS.CURRENT_RATE]: ['facility.unit.edit.currentRate'],\r\n [UNIT_PERMISSION_KEYS.NEXT_DATE]: ['facility.unit.edit.nextRentAssessmentDate'],\r\n [UNIT_PERMISSION_KEYS.PAID_TO_DATE]: ['facility.unit.edit.paidToDate'],\r\n [UNIT_PERMISSION_KEYS.UNIT_TYPE]: ['facility.unit.edit.unitType'],\r\n [UNIT_PERMISSION_KEYS.INVENTORY_REPORT]: ['facility.unit.edit.inventoryReport'],\r\n [UNIT_PERMISSION_KEYS.UNIT_MOVE_IN_DATE]: ['facility.unit.edit.moveInDate'],\r\n [UNIT_PERMISSION_KEYS.RENTAL_STATUS]: ['facility.unit.edit.rentalStatus'],\r\n [AUDIT_PERMISSION_KEYS.NEGATIVE_INVENTORY]: ['facility.retailSale.negativeInventory'],\r\n [RESERVATION_PERMISSION_KEYS.ACCESS]: ['facility.reservation.access'],\r\n [RESERVATION_PERMISSION_KEYS.WAVE_DEPOSIT]: ['facility.reservation.waiveDeposit'],\r\n [INVENTORY_PERMISSION_KEYS.NEGATIVE_SALE]: ['facility.retailSale.negativeSale'],\r\n [INVENTORY_PERMISSION_KEYS.INVENTORY_AUDIT]: ['facility.retailSale.inventoryAudit'],\r\n [INVENTORY_PERMISSION_KEYS.EDIT_INVENTORY]: ['facility.retailSale.editInventory'],\r\n [INVENTORY_PERMISSION_KEYS.RESTOCK]: ['facility.retailSale.restock'],\r\n [INVENTORY_PERMISSION_KEYS.SELL]: ['facility.retailSale.sell'],\r\n [INVENTORY_PERMISSION_KEYS.ADD_INVENTORY_AT_POS]: ['facility.retailSale.addInventoryAtPos'],\r\n [INVENTORY_PERMISSION_KEYS.RETURN_INVENTORY]: ['facility.retailSale.returnInventory'],\r\n [CHARGE_PERMISSION_KEYS.REVERSE_CHARGE]: ['facility.financials.charge.reverse.access'],\r\n [CHARGE_PERMISSION_KEYS.DELETE_CHARGE]: ['facility.financials.charge.delete.access'],\r\n [CHARGE_PERMISSION_KEYS.REVERSE_SECURE_CHARGE]: ['facility.financials.charge.reverse.secureCategory'],\r\n [CHARGE_PERMISSION_KEYS.DELETE_SECURE_CHARGE]: ['facility.financials.charge.delete.secureCategory'],\r\n [MANUAL_CHARGE_PERMISSION_KEYS.MANUAL_CHARGE]: ['facility.financials.charge.manualCharge.access'],\r\n [MANUAL_CHARGE_PERMISSION_KEYS.NEGATIVE_MANUAL_CHARGE]: ['facility.financials.charge.manualCharge.negativeAmount'],\r\n [MANUAL_CHARGE_PERMISSION_KEYS.MANUAL_CHARGE_SECURE_CATEGORIES]: ['facility.financials.charge.manualCharge.secureCategory'],\r\n [MANUAL_CHARGE_PERMISSION_KEYS.EDIT_DEPOSIT]: ['facility.tenant.edit.deposit'],\r\n [TENANT_PERMISSION_KEYS.CONTACT_LOG]: ['facility.tenant.contactLog'],\r\n [TENANT_PERMISSION_KEYS.ALLOW_SECURE_INFO]: ['facility.tenant.edit.allowSecureInfo'],\r\n [TENANT_PERMISSION_KEYS.ALLOW_LATE_EXEMPTION]: ['facility.tenant.edit.allowLateExemption'],\r\n [TENANT_PERMISSION_KEYS.STATUS]: ['facility.tenant.edit.status'],\r\n [TENANT_PERMISSION_KEYS.TENANT_GENERAL]: ['facility.tenant.edit.general'],\r\n [TENANT_PERMISSION_KEYS.VIEW_SECURE_INFO]: ['facility.tenant.viewSecureInfo'],\r\n [MOVE_OUT_PERMISSION_KEYS.MOVE_OUT_DATE]: ['facility.occupancy.moveOut.editMoveOutDate'],\r\n [MOVE_OUT_PERMISSION_KEYS.OVERRIDE_RESOLVE_CHARGES]: ['facility.occupancy.moveOut.overrideResolveCharges'],\r\n [MOVE_OUT_PERMISSION_KEYS.WAIVE_NOTIFICATION_PENALTY]: ['facility.occupancy.moveOut.waiveNotificationPenalty'],\r\n [MAINTENANCE_EVENTS_PERMISSION_KEYS.CLOSE_EVENT]: ['facility.maintenanceEvent.close'],\r\n [MAINTENANCE_EVENTS_PERMISSION_KEYS.CANCEL_EVENT]: ['facility.maintenanceEvent.cancel'],\r\n [USER_MANAGEMENT_PERMISSION_KEY]: ['account.setup.userManagement'],\r\n [FACILITY_MANAGEMENT_PERMISSION_KEY]: ['account.setup.facilityManagement'],\r\n [REPORT_PERMISSION_KEYS.ACCOUNT_CONSOLIDATED_REPORT]: ['account.reports.consolidatedReports'],\r\n [REPORT_PERMISSION_KEYS.BUSINESS_GROUP_CONSOLIDATED_REPORT]: ['businessGroup.reports.consolidatedReports'],\r\n [REPORT_PERMISSION_KEYS.FACILITY_CONSOLIDATED_REPORT]: ['facility.reports.consolidatedReports'],\r\n [REPORT_PERMISSION_KEYS.FACILITY_INCOME_REPORT]: ['facility.reports.standardCategories.incomeReports'],\r\n [REPORT_PERMISSION_KEYS.FACILITY_CUSTOM_CATEGORIES]: ['facility.reports.customCategories.addOrEdit'],\r\n [RENT_ADJUSTMENT_KEYS.SCHEDULE]: ['facility.occupancy.rentAdjustment.schedule'],\r\n [RENT_ADJUSTMENT_KEYS.WAIVE]: ['facility.occupancy.rentAdjustment.waive'],\r\n [CONFIGURATION_PERMISSION_KEYS.FACILITY_DEACTIVATE_CONFIG]: ['facility.configurations.deactivateConfig'],\r\n [CONFIGURATION_PERMISSION_KEYS.FACILITY_ACCESS]: ['facility.configurations.createEdit.access'],\r\n [CONFIGURATION_PERMISSION_KEYS.FACILITY_ACCESS_FINANCIALS]: ['facility.configurations.createEdit.financials'],\r\n [CONFIGURATION_PERMISSION_KEYS.FACILITY_ACCESS_FINANCIAL_GROUPING]: ['facility.configurations.createEdit.financialGrouping'],\r\n [CONFIGURATION_PERMISSION_KEYS.FACILITY_ACCESS_OCCUPANCY]: ['facility.configurations.createEdit.occupancy'],\r\n [CONFIGURATION_PERMISSION_KEYS.FACILITY_ACCESS_DELINQUENCY]: ['facility.configurations.createEdit.delinquency'],\r\n [CONFIGURATION_PERMISSION_KEYS.FACILITY_ACCESS_LETTER]: ['facility.configurations.createEdit.letter'],\r\n [CONFIGURATION_PERMISSION_KEYS.FACILITY_ACCESS_UNIT_TYPE]: ['facility.configurations.createEdit.unitType'],\r\n [CONFIGURATION_PERMISSION_KEYS.FACILITY_ACCESS_TFW]: ['facility.configurations.createEdit.tenantFacingWebsite'],\r\n [CONFIGURATION_PERMISSION_KEYS.FACILITY_ACCESS_CUSTOMER]: ['facility.configurations.createEdit.customer'],\r\n [CONFIGURATION_PERMISSION_KEYS.BUSINESS_GROUP_DEACTIVATE_CONFIG]: ['businessGroup.configurations.deactivateConfig'],\r\n [CONFIGURATION_PERMISSION_KEYS.BUSINESS_GROUP_ACCESS]: ['businessGroup.configurations.createEdit.access'],\r\n [CONFIGURATION_PERMISSION_KEYS.BUSINESS_GROUP_ACCESS_FINANCIALS]: ['businessGroup.configurations.createEdit.financials'],\r\n [CONFIGURATION_PERMISSION_KEYS.BUSINESS_GROUP_ACCESS_FINANCIAL_GROUPING]: ['businessGroup.configurations.createEdit.financialGrouping'],\r\n [CONFIGURATION_PERMISSION_KEYS.BUSINESS_GROUP_ACCESS_OCCUPANCY]: ['businessGroup.configurations.createEdit.occupancy'],\r\n [CONFIGURATION_PERMISSION_KEYS.BUSINESS_GROUP_ACCESS_DELINQUENCY]: ['businessGroup.configurations.createEdit.delinquency'],\r\n [CONFIGURATION_PERMISSION_KEYS.BUSINESS_GROUP_ACCESS_LETTER]: ['businessGroup.configurations.createEdit.letter'],\r\n [CONFIGURATION_PERMISSION_KEYS.BUSINESS_GROUP_ACCESS_UNIT_TYPE]: ['businessGroup.configurations.createEdit.unitType'],\r\n [CONFIGURATION_PERMISSION_KEYS.BUSINESS_GROUP_ACCESS_TFW]: ['businessGroup.configurations.createEdit.tenantFacingWebsite'],\r\n [CONFIGURATION_PERMISSION_KEYS.BUSINESS_GROUP_ACCESS_CUSTOMER]: ['businessGroup.configurations.createEdit.customer'],\r\n [SYRAPAY_MERCHANT_PORTAL_PERMISSION]: [\r\n 'facility.financials.payment.syrapayMerchantPortal.pciManagement',\r\n 'facility.financials.payment.syrapayMerchantPortal.reporting',\r\n 'facility.financials.payment.syrapayMerchantPortal.reverseOpenTransactions',\r\n 'facility.financials.payment.syrapayMerchantPortal.reverseSettledTransactions',\r\n 'facility.financials.payment.syrapayMerchantPortal.terminalManagement',\r\n 'facility.financials.payment.syrapayMerchantPortal.transactionSearch',\r\n ],\r\n};\r\n","// TODO We can move all external permission to common or remove the external and unused keys.\r\nimport { MOVE_IN_PERMISSION_KEYS, RESERVATION_PERMISSION_KEYS } from\r\n 'External/containers/createoccupancy/config/PermissionKeys';\r\nimport { UNIT_PERMISSION_KEYS } from 'External/containers/unit/form/config/UnitPermissionKeys';\r\nimport { AUDIT_PERMISSION_KEYS } from 'External/containers/inventory/audit/config/AuditPermissionKeys';\r\nimport { INVENTORY_PERMISSION_KEYS } from 'External/containers/inventory/list/config/InventoryPermissionKeys';\r\nimport { MANUAL_CHARGE_PERMISSION_KEYS } from 'External/containers/manualForm/config/PermissionKeys';\r\nimport { TENANT_PERMISSION_KEYS } from 'External/containers/tenant/form/config/PermissionKeys';\r\nimport MOVE_OUT_PERMISSION_KEYS from 'External/containers/moveout/config/PermissionKeys';\r\nimport MAINTENANCE_EVENTS_PERMISSION_KEYS from\r\n 'External/containers/operations/components/maintenanceEvents/config/PermmissionKeys';\r\nimport {\r\n USER_MANAGEMENT_PERMISSION_KEY,\r\n BUSINESS_GROUP_MANAGEMENT_PERMISSION_KEY,\r\n FACILITY_MANAGEMENT_PERMISSION_KEY,\r\n} from 'Commons/components/business/user/config/Constants';\r\nimport PAYMENT_PERMISSION_KEYS from 'Commons/components/business/payment/config/PermissionKeys';\r\nimport CHARGE_PERMISSION_KEYS from 'External/containers/ledgerreview/config/PermissionKeys';\r\nimport { REPORT_PERMISSION_KEYS } from 'External/containers/report/config/PermissionKeys';\r\nimport { SYRAPAY_MERCHANT_PORTAL_PERMISSION } from 'External/containers/facilityConfiguration/config/PermissionKeys';\r\nimport { RENT_ADJUSTMENT_KEYS } from 'External/containers/operations/components/rentAdjustment/config/PermissionKey';\r\nimport LATE_EVENT_PERMISSION_KEYS from 'External/containers/operations/components/lateEvent/PermissionKeys';\r\n\r\nexport default {\r\n moveIn: ['facility.occupancy.moveIn.access'],\r\n rentAssessment: ['facility.occupancy.rentAssessment.access'],\r\n moveOut: ['facility.occupancy.moveOut.access'],\r\n [PAYMENT_PERMISSION_KEYS.PAYMENT]: ['facility.financials.payment.access'],\r\n [PAYMENT_PERMISSION_KEYS.EFFECTIVE_DATE]: ['facility.financials.payment.editEffectiveDate'],\r\n [PAYMENT_PERMISSION_KEYS.NEGATIVE_PAYMENT]: ['facility.financials.payment.negativeAmount'],\r\n [PAYMENT_PERMISSION_KEYS.REFUNDS]: ['facility.financials.refunds'],\r\n [PAYMENT_PERMISSION_KEYS.DELETE_PAYMENT]: ['facility.financials.payment.delete'],\r\n [PAYMENT_PERMISSION_KEYS.REVERSE_PAYMENT]: ['facility.financials.payment.reverse'],\r\n [MOVE_IN_PERMISSION_KEYS.PERIOD]: ['facility.occupancy.moveIn.nonStandardPeriods'],\r\n [MOVE_IN_PERMISSION_KEYS.MOVE_IN_DATE]: ['facility.occupancy.moveIn.editMoveInDate'],\r\n [MOVE_IN_PERMISSION_KEYS.EDIT_SETUP_FEE]: ['facility.occupancy.moveIn.editSetupFee'],\r\n [MOVE_IN_PERMISSION_KEYS.WAIVE_SETUP_FEE]: ['facility.occupancy.moveIn.waiveSetupFee'],\r\n [MOVE_IN_PERMISSION_KEYS.EDIT_DEPOSITS]: ['facility.occupancy.moveIn.editDeposits'],\r\n [MOVE_IN_PERMISSION_KEYS.WAIVE_DEPOSITS]: ['facility.occupancy.moveIn.waiveDeposits'],\r\n [MOVE_IN_PERMISSION_KEYS.PRORATE]: ['facility.occupancy.moveIn.waiveProrate'],\r\n [MOVE_IN_PERMISSION_KEYS.BILL_TO_DATE]: ['facility.occupancy.moveIn.billToDate'],\r\n [MOVE_IN_PERMISSION_KEYS.UNIT_RATE_UP]: ['facility.occupancy.moveIn.unitRateUp'],\r\n [MOVE_IN_PERMISSION_KEYS.UNIT_RATE_DOWN]: ['facility.occupancy.moveIn.unitRateDown'],\r\n [UNIT_PERMISSION_KEYS.UNIT_GENERAL]: ['facility.unit.edit.general'],\r\n [UNIT_PERMISSION_KEYS.CURRENT_RATE]: ['facility.unit.edit.currentRate'],\r\n [UNIT_PERMISSION_KEYS.NEXT_DATE]: ['facility.unit.edit.nextRentAssessmentDate'],\r\n [UNIT_PERMISSION_KEYS.PAID_TO_DATE]: ['facility.unit.edit.paidToDate'],\r\n [UNIT_PERMISSION_KEYS.UNIT_TYPE]: ['facility.unit.edit.unitType'],\r\n [UNIT_PERMISSION_KEYS.INVENTORY_REPORT]: ['facility.unit.edit.inventoryReport'],\r\n [UNIT_PERMISSION_KEYS.UNIT_MOVE_IN_DATE]: ['facility.unit.edit.moveInDate'],\r\n [UNIT_PERMISSION_KEYS.RENTAL_STATUS]: ['facility.unit.edit.rentalStatus'],\r\n [AUDIT_PERMISSION_KEYS.NEGATIVE_INVENTORY]: ['facility.retailSale.negativeInventory'],\r\n [RESERVATION_PERMISSION_KEYS.WAVE_DEPOSIT]: ['facility.reservation.waiveDeposit'],\r\n [INVENTORY_PERMISSION_KEYS.NEGATIVE_SALE]: ['facility.retailSale.negativeSale'],\r\n [INVENTORY_PERMISSION_KEYS.INVENTORY_AUDIT]: ['facility.retailSale.inventoryAudit'],\r\n [INVENTORY_PERMISSION_KEYS.EDIT_INVENTORY]: ['facility.retailSale.editInventory'],\r\n [INVENTORY_PERMISSION_KEYS.RESTOCK]: ['facility.retailSale.restock'],\r\n [INVENTORY_PERMISSION_KEYS.SELL]: ['facility.retailSale.sell'],\r\n [INVENTORY_PERMISSION_KEYS.ADD_INVENTORY_AT_POS]: ['facility.retailSale.addInventoryAtPos'],\r\n [CHARGE_PERMISSION_KEYS.REVERSE_CHARGE]: ['facility.financials.charge.reverse.access'],\r\n [CHARGE_PERMISSION_KEYS.DELETE_CHARGE]: ['facility.financials.charge.delete.access'],\r\n [CHARGE_PERMISSION_KEYS.REVERSE_SECURE_CHARGE]: ['facility.financials.charge.reverse.secureCategory'],\r\n [CHARGE_PERMISSION_KEYS.DELETE_SECURE_CHARGE]: ['facility.financials.charge.delete.secureCategory'],\r\n [MANUAL_CHARGE_PERMISSION_KEYS.MANUAL_CHARGE]: ['facility.financials.charge.manualCharge.access'],\r\n [MANUAL_CHARGE_PERMISSION_KEYS.NEGATIVE_MANUAL_CHARGE]: ['facility.financials.charge.manualCharge.negativeAmount'],\r\n [MANUAL_CHARGE_PERMISSION_KEYS.MANUAL_CHARGE_SECURE_CATEGORIES]: ['facility.financials.charge.manualCharge.secureCategory'],\r\n [MANUAL_CHARGE_PERMISSION_KEYS.EDIT_DEPOSIT]: ['facility.tenant.edit.deposit'],\r\n [TENANT_PERMISSION_KEYS.CONTACT_LOG]: ['facility.tenant.contactLog'],\r\n [TENANT_PERMISSION_KEYS.ALLOW_SECURE_INFO]: ['facility.tenant.edit.allowSecureInfo'],\r\n [TENANT_PERMISSION_KEYS.ALLOW_LATE_EXEMPTION]: ['facility.tenant.edit.allowLateExemption'],\r\n [TENANT_PERMISSION_KEYS.STATUS]: ['facility.tenant.edit.status'],\r\n [TENANT_PERMISSION_KEYS.TENANT_GENERAL]: ['facility.tenant.edit.general'],\r\n [TENANT_PERMISSION_KEYS.VIEW_SECURE_INFO]: ['facility.tenant.viewSecureInfo'],\r\n [MOVE_OUT_PERMISSION_KEYS.MOVE_OUT_DATE]: ['facility.occupancy.moveOut.editMoveOutDate'],\r\n [MOVE_OUT_PERMISSION_KEYS.OVERRIDE_RESOLVE_CHARGES]: ['facility.occupancy.moveOut.overrideResolveCharges'],\r\n [MOVE_OUT_PERMISSION_KEYS.WAIVE_NOTIFICATION_PENALTY]: ['facility.occupancy.moveOut.waiveNotificationPenalty'],\r\n [MAINTENANCE_EVENTS_PERMISSION_KEYS.CLOSE_EVENT]: ['facility.maintenanceEvent.close'],\r\n [MAINTENANCE_EVENTS_PERMISSION_KEYS.CANCEL_EVENT]: ['facility.maintenanceEvent.cancel'],\r\n [USER_MANAGEMENT_PERMISSION_KEY]: ['account.setup.userManagement'],\r\n [BUSINESS_GROUP_MANAGEMENT_PERMISSION_KEY]: ['account.setup.businessGroupManagement'],\r\n [FACILITY_MANAGEMENT_PERMISSION_KEY]: ['account.setup.facilityManagement'],\r\n [REPORT_PERMISSION_KEYS.ACCOUNT_CONSOLIDATED_REPORT]: ['account.reports.consolidatedReports'],\r\n [REPORT_PERMISSION_KEYS.BUSINESS_GROUP_CONSOLIDATED_REPORT]: ['businessGroup.reports.consolidatedReports'],\r\n [REPORT_PERMISSION_KEYS.FACILITY_CONSOLIDATED_REPORT]: ['facility.reports.consolidatedReports'],\r\n [RENT_ADJUSTMENT_KEYS.SCHEDULE]: ['facility.occupancy.rentAdjustment.schedule'],\r\n [RENT_ADJUSTMENT_KEYS.WAIVE]: ['facility.occupancy.rentAdjustment.waive'],\r\n [SYRAPAY_MERCHANT_PORTAL_PERMISSION]: [\r\n 'facility.financials.payment.syrapayMerchantPortal.pciManagement',\r\n 'facility.financials.payment.syrapayMerchantPortal.reporting',\r\n 'facility.financials.payment.syrapayMerchantPortal.reverseOpenTransactions',\r\n 'facility.financials.payment.syrapayMerchantPortal.reverseSettledTransactions',\r\n 'facility.financials.payment.syrapayMerchantPortal.terminalManagement',\r\n 'facility.financials.payment.syrapayMerchantPortal.transactionSearch',\r\n ],\r\n [LATE_EVENT_PERMISSION_KEYS.ASSESS_LATE_CHARGES]: ['facility.lateEvents.assessLateCharges'],\r\n};\r\n","import INTERNAL_ROUTES from 'Internal/redux/config/RouteNames';\r\nimport {\r\n BUSINESS_GROUP_MANAGEMENT_PERMISSION_KEY, FACILITY_MANAGEMENT_PERMISSION_KEY,\r\n USER_MANAGEMENT_PERMISSION_KEY,\r\n} from 'Commons/components/business/user/config/Constants';\r\nimport LATE_EVENT_PERMISSION_KEYS from 'External/containers/operations/components/lateEvent/PermissionKeys';\r\nimport {\r\n DELINQUENCY_TRACKING_LATE_EVENT_STORE,\r\n DELINQUENCY_TRACKING_LOCKOUT_EVENT_STORE,\r\n DELINQUENCY_TRACKING_SCHEDULED_EVENT_STORE,\r\n DELINQUENCY_TRACKING_OVERVIEW_STORE,\r\n DELINQUENCY_TRACKING_WRONG_ENTRY_STORE,\r\n} from 'Internal/containers/delinquencyTracking/list/config/Constants';\r\nimport {\r\n JOURNAL_CONFIGURATION_CHANGES_STORE,\r\n JOURNAL_LATE_EVENT_STORE,\r\n JOURNAL_LOCKOUT_EVENT_STORE,\r\n JOURNAL_USER_MANAGEMENT_STORE,\r\n JOURNAL_USER_ROLE_STORE,\r\n} from 'Internal/containers/journal/list/config/Constants';\r\n\r\n/**\r\n * Structure of Dependency Config\r\n * Dependency Config contains all component names at the top level.\r\n * If it is not a component name it is considered as a route.\r\n * To specify config by Component Name:\r\n * DependencyConfig['componentName'] = {\r\n * critical: {\r\n * 'storeKey1': { //Each key can specify the list of dependencies\r\n * dependency: ['storeKey2', 'storeKey3']\r\n * },\r\n * }, // These are the critical keys that the component requires to even load.\r\n * lazy: {\r\n * 'storeKey4': {\r\n * dependency: ['storeKey5', 'storeKey6']\r\n * }\r\n * }, // These are the lazy store keys that needs to be loaded after the component is loaded\r\n * onDemand: {\r\n *\r\n * }, // These are the storeKeys that the component can have access to when needed, but will always listen.\r\n * onMount: {\r\n *\r\n * }, // The store keys to be fetched after the hoc has been mounted.\r\n * }\r\n * To specify config by Route:\r\n * Route: '/a/facilities/45/units'\r\n * DependencyConfig['a']['facilities/:id']['units]\r\n * While resolving the route directly,\r\n * We traverse the config from the top most level.\r\n * At Each level the critical keys are resolved along with its dependencies\r\n */\r\n\r\nconst userSetUpConfig = { lazy: { user: {} } };\r\n\r\nconst DependencyConfig = {\r\n HeaderInt: { onDemand: { userProfile: {} } },\r\n FacilityList: { lazy: { facilities: {}, allFacilities: {} } },\r\n FacilityForm: { onDemand: { facilities: {} } },\r\n AccountForm: { onDemand: { accounts: {} } },\r\n UserForm: {\r\n onDemand: { currentAccountId: {}, accounts: {}, userProfile: {} },\r\n permissionKey: USER_MANAGEMENT_PERMISSION_KEY,\r\n },\r\n UserSetupAction: {\r\n lazy: { userProfile: {}, account: {} },\r\n onDemand: { businessGroup: {}, userRoleAction: {}, facilities: {} },\r\n onMount: { facilities: {} },\r\n permissionKey: USER_MANAGEMENT_PERMISSION_KEY,\r\n },\r\n SearchableDropdown: { onDemand: { timezone: {} } },\r\n RentAssessmentHistory: { lazy: { rentAssessmentHistory: {} }, onDemand: { rentAssessmentHistory: {} } },\r\n AutoPaymentHistory: { lazy: { dailyTaskSummary: {} }, onDemand: { dailyTaskSummary: {} } },\r\n AutoInvoicingHistory: { lazy: { dailyTaskSummary: {} }, onDemand: { dailyTaskSummary: {} } },\r\n RentAdjustmentSummary: { lazy: { dailyTaskSummary: {} }, onDemand: { dailyTaskSummary: {} } },\r\n DelinquencySummary: { lazy: { dailyTaskSummary: {} }, onDemand: { dailyTaskSummary: {} } },\r\n TaskSummary: { critical: { allFacilities: {} } },\r\n LateEventsTracking: { lazy: { [DELINQUENCY_TRACKING_LATE_EVENT_STORE]: {} } },\r\n LockoutEventsTracking: { lazy: { [DELINQUENCY_TRACKING_LOCKOUT_EVENT_STORE]: {} } },\r\n DelinquencyOverview: { lazy: { [DELINQUENCY_TRACKING_OVERVIEW_STORE]: {} } },\r\n JournalConfigurationChanges: { lazy: { [JOURNAL_CONFIGURATION_CHANGES_STORE]: {} } },\r\n JournalLateEvents: { lazy: { [JOURNAL_LATE_EVENT_STORE]: {} } },\r\n JournalLockoutEvents: { lazy: { [JOURNAL_LOCKOUT_EVENT_STORE]: {} } },\r\n JournalUserRoles: { lazy: { [JOURNAL_USER_ROLE_STORE]: {} } },\r\n JournalUserManagements: { lazy: { [JOURNAL_USER_MANAGEMENT_STORE]: {} } },\r\n SchedulerCreation: { lazy: { missingSchedulers: {} } },\r\n ScheduledEventsTracking: { lazy: { [DELINQUENCY_TRACKING_SCHEDULED_EVENT_STORE]: {} } },\r\n WrongEntriesTracking: { lazy: { [DELINQUENCY_TRACKING_WRONG_ENTRY_STORE]: {} } },\r\n [INTERNAL_ROUTES.INTERNAL_MAIN]: {\r\n critical: { userProfile: {}, permissionRoles: {}, permission: { dependency: ['permissionRoles'] } },\r\n onMount: { permission: {}, permissionRoles: {} },\r\n [INTERNAL_ROUTES.USER_PROFILE]: { onDemand: { userProfile: {} } },\r\n [INTERNAL_ROUTES.SYRASOFT_USER_ROLES]: {\r\n critical: { userRole: {} },\r\n permissionKey: USER_MANAGEMENT_PERMISSION_KEY,\r\n },\r\n [INTERNAL_ROUTES.EDIT_SYRASOFT_USER_ROLE]: {\r\n critical: { userRole: {} },\r\n permissionKey: USER_MANAGEMENT_PERMISSION_KEY,\r\n },\r\n [INTERNAL_ROUTES.ACCOUNT_LIST]: { lazy: { accounts: {} } },\r\n [INTERNAL_ROUTES.DELINQUENCY_TRACKING_OVERVIEW]: {\r\n permissionKey:\r\n LATE_EVENT_PERMISSION_KEYS.ASSESS_LATE_CHARGES,\r\n onDemand: {\r\n [DELINQUENCY_TRACKING_LATE_EVENT_STORE]: {},\r\n [DELINQUENCY_TRACKING_LOCKOUT_EVENT_STORE]: {},\r\n [DELINQUENCY_TRACKING_SCHEDULED_EVENT_STORE]: {},\r\n [DELINQUENCY_TRACKING_OVERVIEW_STORE]: {},\r\n [DELINQUENCY_TRACKING_WRONG_ENTRY_STORE]: {},\r\n },\r\n },\r\n [INTERNAL_ROUTES.JOURNAL]: {\r\n onDemand: {\r\n [JOURNAL_CONFIGURATION_CHANGES_STORE]: {},\r\n [JOURNAL_LATE_EVENT_STORE]: {},\r\n [JOURNAL_LOCKOUT_EVENT_STORE]: {},\r\n [JOURNAL_USER_ROLE_STORE]: {},\r\n [JOURNAL_USER_MANAGEMENT_STORE]: {},\r\n },\r\n },\r\n [INTERNAL_ROUTES.SCHEDULE_LIST]: { critical: { schedules: {}, facilities: {} } },\r\n [INTERNAL_ROUTES.USER_LIST]: { lazy: { user: {}, allUsers: {} }, permissionKey: USER_MANAGEMENT_PERMISSION_KEY },\r\n [INTERNAL_ROUTES.DAILY_SUMMARY_LIST]: {\r\n critical: { allFacilities: {} },\r\n onDemand: { rentAssessmentHistory: {}, dailyTaskSummary: {} },\r\n },\r\n [INTERNAL_ROUTES.SAVED_DOCUMENTS_LIST]: {\r\n critical: { allFacilities: {} },\r\n lazy: { savedDocuments: {} },\r\n onDemand: { savedDocuments: {} },\r\n },\r\n [INTERNAL_ROUTES.ASYNC_TASK_LIST]: { lazy: { asyncTaskList: {} } },\r\n [INTERNAL_ROUTES.ACCOUNT_MANAGEMENT]: {\r\n onDemand: { facilities: {}, currentAccount: {}, userRole: {} },\r\n [INTERNAL_ROUTES.BUSINESS_GROUP_LIST]: { lazy: { businessGroups: {} } },\r\n },\r\n [INTERNAL_ROUTES.SANDBOX]: { lazy: { sandbox: {} }, critical: { userProfile: {}, userRole: {} } },\r\n [INTERNAL_ROUTES.FACILITY_VIEW]: { onDemand: { facilities: {}, user: {} } },\r\n [INTERNAL_ROUTES.USER_SETUP]: { ...userSetUpConfig },\r\n [INTERNAL_ROUTES.EDIT_USER_SET_UP]: { ...userSetUpConfig },\r\n [INTERNAL_ROUTES.FACILITY_CREATE_FROM_ACCOUNT]: { permissionKey: BUSINESS_GROUP_MANAGEMENT_PERMISSION_KEY },\r\n [INTERNAL_ROUTES.FACILITY_EDIT_FROM_ACCOUNT]: { permissionKey: FACILITY_MANAGEMENT_PERMISSION_KEY },\r\n },\r\n};\r\n\r\nexport default DependencyConfig;\r\n","import { SEARCH_MAX_SIZE, VIEW } from 'Commons/config/constants/Constants';\r\nimport {\r\n ACCOUNT_ENDPOINTS,\r\n BUSINESS_GROUP_ENDPOINTS,\r\n DELINQUENCY_ENDPOINTS,\r\n DOCUMENT_ENDPOINTS,\r\n FACILITY_ENDPOINTS,\r\n JOURNAL_ENDPOINTS,\r\n OPERATIONS_ENDPOINTS,\r\n SANDBOX_ENDPOINTS,\r\n USER_ENDPOINTS,\r\n} from 'Commons/config/constants/Endpoints';\r\nimport {\r\n DELINQUENCY_TRACKING_LATE_EVENT_STORE,\r\n DELINQUENCY_TRACKING_LOCKOUT_EVENT_STORE,\r\n DELINQUENCY_TRACKING_SCHEDULED_EVENT_STORE,\r\n DELINQUENCY_TRACKING_OVERVIEW_STORE,\r\n DELINQUENCY_TRACKING_WRONG_ENTRY_STORE,\r\n} from 'Internal/containers/delinquencyTracking/list/config/Constants';\r\nimport {\r\n JOURNAL_CONFIGURATION_CHANGES_STORE,\r\n JOURNAL_LATE_EVENT_STORE,\r\n JOURNAL_LOCKOUT_EVENT_STORE,\r\n JOURNAL_USER_MANAGEMENT_STORE,\r\n JOURNAL_USER_ROLE_STORE,\r\n} from 'Internal/containers/journal/list/config/Constants';\r\n\r\nconst delinquencyEvents = {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: OPERATIONS_ENDPOINTS.lateEvent,\r\n body: { view: VIEW.list.value },\r\n },\r\n};\r\n\r\nconst journal = {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: JOURNAL_ENDPOINTS.search,\r\n body: {\r\n view: VIEW.list.value,\r\n includeRelations: { User: {} },\r\n },\r\n },\r\n};\r\n\r\nconst ActionConfig = {\r\n missingSchedulers: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: DELINQUENCY_ENDPOINTS.searchMissingSchedulers,\r\n },\r\n },\r\n userRole: {\r\n read: {\r\n methodType: 'GET',\r\n endPoint: 'user-role/user-type',\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'account',\r\n },\r\n },\r\n create: {\r\n methodType: 'POST',\r\n endPoint: 'user-role',\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'account',\r\n },\r\n },\r\n },\r\n userProfile: {\r\n create: {\r\n methodType: 'POST',\r\n endPoint: 'user/',\r\n },\r\n read: {\r\n methodType: 'GET',\r\n endPoint: 'user',\r\n },\r\n update: {\r\n methodType: 'PUT',\r\n endPoint: 'user/edit',\r\n },\r\n delete: {\r\n methodType: 'DELETE',\r\n endPoint: 'user/remove',\r\n },\r\n },\r\n businessGroups: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: BUSINESS_GROUP_ENDPOINTS.search,\r\n body: { view: VIEW.detail.value },\r\n },\r\n update: {\r\n methodType: 'PUT',\r\n endPoint: 'businessgroup/edit',\r\n },\r\n },\r\n facilities: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: FACILITY_ENDPOINTS.search,\r\n body: {\r\n view: VIEW.list.value,\r\n includeRelations: { Missing_Configs: {} },\r\n },\r\n },\r\n update: {\r\n methodType: 'PUT',\r\n endPoint: 'facility/edit',\r\n },\r\n delete: {\r\n methodType: 'DELETE',\r\n endPoint: 'facility/remove',\r\n },\r\n },\r\n allFacilities: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: FACILITY_ENDPOINTS.searchAll,\r\n body: {\r\n view: VIEW.list.value,\r\n size: 1000,\r\n },\r\n },\r\n },\r\n account: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: ACCOUNT_ENDPOINTS.search,\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'account',\r\n },\r\n },\r\n },\r\n accounts: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: ACCOUNT_ENDPOINTS.search,\r\n body: {\r\n view: VIEW.detail.value,\r\n size: SEARCH_MAX_SIZE,\r\n },\r\n // NOTE: Uncomment this if you want to test via default, and onInit\r\n /* customHeaderOptions: {\r\n type: 'default',\r\n context: {\r\n type: CustomHeaders.ACCOUNT,\r\n id: 'accountId',\r\n },\r\n }, */\r\n // NOTE: Uncomment this if you want to test via store, and onInit\r\n /* customHeaderOptions: {\r\n type: 'store',\r\n key: 'accounts',\r\n }, */\r\n },\r\n update: {\r\n methodType: 'PUT',\r\n endPoint: 'account/edit',\r\n },\r\n delete: {\r\n methodType: 'DELETE',\r\n endPoint: 'account/remove',\r\n },\r\n },\r\n tenant: {\r\n read: {\r\n methodType: 'GET',\r\n endPoint: 'tenant/search',\r\n body: { view: VIEW.detail.value },\r\n },\r\n },\r\n user: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'user/search',\r\n body: { view: VIEW.detail.value },\r\n },\r\n },\r\n allUsers: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: USER_ENDPOINTS.searchAll,\r\n body: {\r\n view: VIEW.detail.value,\r\n size: 1000,\r\n },\r\n },\r\n },\r\n rentAssessmentHistory: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'rental/assessment/history/search',\r\n body: {\r\n view: VIEW.list.value,\r\n sort: [\r\n { created_date: { order: 'desc' } },\r\n ],\r\n },\r\n },\r\n },\r\n dailyTaskSummary: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'scheduler/daily-summary',\r\n body: {\r\n view: VIEW.detail.value,\r\n sort: [{ scheduledDate: { order: 'desc' } }],\r\n },\r\n },\r\n },\r\n savedDocuments: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: DOCUMENT_ENDPOINTS.searchForInternalConsole,\r\n body: {\r\n view: VIEW.list.value,\r\n sort: [{ createdDate: { order: 'desc' } }],\r\n includeRelations: { Tenant: {} },\r\n },\r\n },\r\n },\r\n schedules: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'scheduler/search',\r\n body: {\r\n view: VIEW.list.value,\r\n sort: [\r\n { id: { order: 'desc' } },\r\n ],\r\n },\r\n },\r\n },\r\n asyncTaskList: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'tasks/result/search',\r\n body: {\r\n view: VIEW.list.value,\r\n sort: [\r\n { date_done: { order: 'desc' } },\r\n ],\r\n },\r\n },\r\n },\r\n sandbox: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: SANDBOX_ENDPOINTS.search,\r\n body: {\r\n view: VIEW.detail.value,\r\n size: 100,\r\n },\r\n },\r\n },\r\n userRoleAction: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'user-role/search',\r\n body: { view: 'detail' },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'account',\r\n },\r\n },\r\n },\r\n businessGroup: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: BUSINESS_GROUP_ENDPOINTS.search,\r\n body: { view: 'detail' },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'account',\r\n },\r\n },\r\n },\r\n permissionRoles: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'user/permission/search',\r\n },\r\n },\r\n [DELINQUENCY_TRACKING_LATE_EVENT_STORE]: { ...delinquencyEvents },\r\n [DELINQUENCY_TRACKING_LOCKOUT_EVENT_STORE]: { ...delinquencyEvents },\r\n [DELINQUENCY_TRACKING_SCHEDULED_EVENT_STORE]: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: DELINQUENCY_ENDPOINTS.searchSchedulers,\r\n body: {\r\n view: VIEW.list.value,\r\n includeRelations: { Tenant: {}, Unit: {}, Late_Event: {} },\r\n },\r\n },\r\n },\r\n [DELINQUENCY_TRACKING_OVERVIEW_STORE]: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: DELINQUENCY_ENDPOINTS.overview,\r\n body: { },\r\n },\r\n },\r\n [DELINQUENCY_TRACKING_WRONG_ENTRY_STORE]: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: DELINQUENCY_ENDPOINTS.wrongEntries,\r\n body: { },\r\n },\r\n },\r\n [JOURNAL_CONFIGURATION_CHANGES_STORE]: { ...journal },\r\n [JOURNAL_LOCKOUT_EVENT_STORE]: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: JOURNAL_ENDPOINTS.search,\r\n body: {\r\n view: VIEW.list.value,\r\n includeRelations: { User: {}, Unit: {}, Tenant: {} },\r\n },\r\n },\r\n },\r\n [JOURNAL_USER_ROLE_STORE]: { ...journal },\r\n [JOURNAL_USER_MANAGEMENT_STORE]: { ...journal },\r\n [JOURNAL_LATE_EVENT_STORE]: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: OPERATIONS_ENDPOINTS.lateEvent,\r\n body: {\r\n view: VIEW.list.value,\r\n includeRelations: { Account_Receivable: {} },\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default ActionConfig;\r\n","import {\r\n ACCOUNT_ENDPOINTS,\r\n ACH_ENDPOINTS,\r\n BATCH_PAYMENT_ENDPOINTS,\r\n BUSINESS_GROUP_ENDPOINTS,\r\n CARD_PROCESSOR_TRANSACTION_ENDPOINTS,\r\n CONFIG_ENDPOINTS,\r\n CONVERSATION_ENDPOINTS,\r\n DAILY_SUMMARY_ENDPOINTS,\r\n DELINQUENCY_ENDPOINTS,\r\n DEPOSIT_LOG_ENDPOINTS,\r\n DOCUMENT_ENDPOINTS,\r\n FACILITY_ENDPOINTS,\r\n FINANCIAL_ENDPOINTS,\r\n MAINTENANCE_OPERATION_ENDPOINTS,\r\n OCCUPANCY_HISTORY_ENDPOINTS,\r\n ONBOARDING_ENDPOINTS,\r\n OPERATIONS_ENDPOINTS,\r\n PAYMENT_ENDPOINTS,\r\n PENDING_TASKS_ENDPOINTS,\r\n PRINT_FAILURES_ENDPOINTS,\r\n RENT_ADJUSTMENT_ENDPOINTS,\r\n RENTAL_ENDPOINTS,\r\n RESERVATION_ENDPOINTS,\r\n RETAIL_SALE_ENDPOINTS,\r\n STANDALONE_APP_ENDPOINTS,\r\n TENANT_CHANGE_TRACKING_ENDPOINTS,\r\n TENANT_ENDPOINTS,\r\n UNIT_ENDPOINTS,\r\n VEHICLE_ENDPOINTS,\r\n WAITING_LIST_ENDPOINTS,\r\n} from 'Commons/config/constants/Endpoints';\r\nimport {\r\n BATCH_PAYMENT_TASKS,\r\n CARD_PROCESSOR_TRANSACTION_STATUS,\r\n ENTITY_LEVEL,\r\n FULL_YEAR_FORMAT,\r\n OTHER_EXTERNAL_ACTIVITY_TRACKING_STATUS,\r\n RESERVATION_STATUS,\r\n SEARCH_DATE_FORMAT,\r\n SEARCH_DOCUMENT_SOURCE,\r\n SHORT_YEAR_FORMAT,\r\n STATUS,\r\n TENANT_CHANGE_TRACKING_STATUS,\r\n TENANT_CHANGE_TYPE,\r\n TIME_WINDOW,\r\n UNIT_AGGREGATION,\r\n VIEW,\r\n} from 'Commons/config/constants/Constants';\r\nimport { addToDate, dateFormatter, getCurrentDate, getMonth, subtractFromDate } from 'Commons/helpers/utils/DateTime';\r\nimport CONFIG_TYPE from 'External/containers/configuration/config/ConfigRequestType';\r\nimport { LETTER_TYPE } from 'External/containers/customerengagement/config/Config';\r\nimport { OVERLOCK_STATUS, RENTED_AVAILABILITY_STATUS, RENTAL_STATUS } from 'External/containers/unit/form/config/Constants';\r\nimport { AR_AGGREGATION, DOCUMENTATION_STATUS } from 'External/containers/viewtenant/config/Constants';\r\nimport { RENT_ADJUSTMENT_STATUS } from 'External/containers/operations/components/rentAdjustment/config/Constants';\r\nimport {\r\n DOCUMENT_STATUS,\r\n DOCUMENT_TYPE,\r\n SUB_DOCUMENT_TYPE,\r\n} from 'Commons/components/business/filtersAndSorts/components/savedDocumentsListFilter/config/Constants';\r\nimport { DELIVERY_METHOD } from 'Commons/components/generic/deliveryMethodDropdown/config/Constants';\r\n\r\nconst pendingInvoiceDeliveryActionConfig = {\r\n methodType: 'POST',\r\n body: {\r\n filter: [{\r\n terms: {\r\n status: [DOCUMENT_STATUS.Ready_For_Delivery.value],\r\n subDocumentType: [SUB_DOCUMENT_TYPE.Invoice_Pre_Billing_Detailed.value],\r\n },\r\n exists: { batchId: [true] },\r\n }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n};\r\n\r\nconst ActionConfig = {\r\n userProfile: {\r\n create: {\r\n methodType: 'POST',\r\n endPoint: 'user/',\r\n },\r\n read: {\r\n methodType: 'GET',\r\n endPoint: 'user',\r\n },\r\n update: {\r\n methodType: 'PUT',\r\n endPoint: 'user/edit',\r\n },\r\n delete: {\r\n methodType: 'DELETE',\r\n endPoint: 'user/remove',\r\n },\r\n },\r\n facility: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: FACILITY_ENDPOINTS.search,\r\n body: {\r\n view: 'mini',\r\n includeRelations: {\r\n User: {},\r\n Permissions: {},\r\n Global_Encryption_Key: {},\r\n Business_Group: {},\r\n Missing_Configs: {},\r\n Agreement_Link: {},\r\n },\r\n size: 500,\r\n },\r\n store: { keys: ['facility', 'userProfile', 'permissionRoles'] },\r\n },\r\n update: {\r\n methodType: 'PUT',\r\n endPoint: 'facility/edit',\r\n },\r\n delete: {\r\n methodType: 'DELETE',\r\n endPoint: 'facility/remove',\r\n },\r\n },\r\n unit: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: UNIT_ENDPOINTS.search,\r\n body: {\r\n view: 'list',\r\n includeRelations: { Tenant: { view: 'mini_list' } },\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n create: {},\r\n update: {\r\n methodType: 'PUT',\r\n endPoint: UNIT_ENDPOINTS.createUnit,\r\n },\r\n },\r\n rateHistory: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: UNIT_ENDPOINTS.rateHistorySearch,\r\n body: {\r\n view: VIEW.detail.value,\r\n includeRelations: {\r\n Tenant: {},\r\n User: {},\r\n },\r\n sort: [{ effectiveDate: { order: 'desc' } }],\r\n size: 20,\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n standaloneApp: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: STANDALONE_APP_ENDPOINTS.search,\r\n body: {\r\n view: VIEW.detail.value,\r\n filter: [{ terms: { status: ['Active'] } }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n onboarding: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: ONBOARDING_ENDPOINTS.search,\r\n body: {\r\n entities: {\r\n Facility: {},\r\n Facility_General: {},\r\n Tax_Code: {},\r\n Unit_Type: {},\r\n Customer_General: {},\r\n Reservation: {},\r\n Move_In: {},\r\n Move_Out: {},\r\n Tenant: {},\r\n Unit: {},\r\n },\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n vendor: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'vendor/search',\r\n body: { view: 'list' },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n create: {},\r\n update: {\r\n methodType: 'PUT',\r\n endPoint: 'vendor',\r\n },\r\n },\r\n inventoryList: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'inventory/search',\r\n body: { view: 'list' },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n verifyEmail: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'conversation/email/verify-and-enable',\r\n body: {},\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n tenant: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'tenant/search',\r\n body: { view: 'list' },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n tenantsWithInvalidAccessCodes: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'tenant/search',\r\n body: {\r\n view: 'invalid_access_code',\r\n filter: [{ terms: { ledger: { gate_access: { is_access_code_invalid: [true] } } } }],\r\n sort: [{ name: { lastName: { order: 'asc' }, firstName: { order: 'asc' } } }],\r\n includeRelations: { Unit: {} },\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n unitsWithInvalidAccessCodes: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'unit/search',\r\n body: {\r\n view: 'invalid_access_code',\r\n filter: [{\r\n terms: {\r\n gate_access: { is_access_code_invalid: [true] },\r\n rental_status: [RENTAL_STATUS.Rented],\r\n },\r\n }],\r\n sort: [{ label: { order: 'asc' } }],\r\n includeRelations: { Tenant: { view: 'invalid_access_code' } },\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n tenantsForDocument: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'tenant/search',\r\n // ToDo change the view once modified in backend accordingly\r\n body: {\r\n view: 'detail',\r\n size: 1000,\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n ledgerAccessCode: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'tenant/search',\r\n body: {\r\n view: VIEW.access_code.value,\r\n filter: [{ exists: { ledger: { gateAccess: { code: [true] } } } }],\r\n size: 1000,\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n unitAccessCode: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'unit/search',\r\n body: {\r\n view: VIEW.access_code.value,\r\n filter: [{ exists: { gateAccess: { code: [true] } } }],\r\n size: 1000,\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n unitForDocuments: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'unit/search',\r\n body: {\r\n view: VIEW.access_code.value,\r\n filter: [{ terms: { rentalStatus: ['Rented'] } }],\r\n size: 1000,\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n lead: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'lead/search',\r\n body: { view: 'detail' },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n config: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'configuration/search',\r\n body: {\r\n view: 'detail',\r\n filter: [],\r\n },\r\n },\r\n },\r\n ar: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'financial/ar/search',\r\n body: { view: 'detail' },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n cash: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'financial/cash/search',\r\n body: { view: 'detail' },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n userRole: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'user-role/search',\r\n body: { view: 'detail' },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'account',\r\n },\r\n },\r\n },\r\n account: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: ACCOUNT_ENDPOINTS.search,\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'account',\r\n },\r\n },\r\n },\r\n businessGroup: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: BUSINESS_GROUP_ENDPOINTS.search,\r\n body: { view: 'detail' },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'account',\r\n },\r\n },\r\n },\r\n user: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'user/search',\r\n body: { view: 'detail' },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'account',\r\n },\r\n },\r\n },\r\n preRequisite: {\r\n read: {\r\n methodType: 'GET',\r\n endPoint: RENTAL_ENDPOINTS.prerequisite,\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n reservation: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: RESERVATION_ENDPOINTS.search,\r\n body: {\r\n view: VIEW.list.value,\r\n includeRelations: {\r\n Tenant: { view: 'list' },\r\n Unit: {},\r\n },\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n waitingList: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: WAITING_LIST_ENDPOINTS.search,\r\n body: { view: VIEW.list.value },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n unitBev: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: UNIT_ENDPOINTS.search,\r\n body: {\r\n view: 'bev',\r\n filter: [{ terms: { status: ['Active'] } }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n unitBevMini: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: UNIT_ENDPOINTS.search,\r\n body: {\r\n view: 'mini',\r\n size: 1000,\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n users: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'user/search',\r\n body: { view: 'detail' },\r\n },\r\n },\r\n unpaidAr: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: FINANCIAL_ENDPOINTS.unpaidAr,\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n tenantAlert: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: TENANT_ENDPOINTS.tenantAlertSearch,\r\n body: { view: VIEW.detail.value, size: 50 },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n contactLog: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: TENANT_ENDPOINTS.contactLogSearch,\r\n body: { view: VIEW.detail.value },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n tenantDepositToBePaid: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: FINANCIAL_ENDPOINTS.arAggregation,\r\n body: { aggregationName: AR_AGGREGATION.TENANT_DEPOSIT_TO_BE_PAID },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n maintenanceOperation: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: MAINTENANCE_OPERATION_ENDPOINTS.search,\r\n body: {\r\n view: VIEW.detail.value,\r\n sort: [{ start_date: { order: 'asc' } }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n manualLateEvent: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: OPERATIONS_ENDPOINTS.lateEvent,\r\n body: {\r\n view: VIEW.list.value,\r\n filter: [{\r\n terms: { status: ['Active'] },\r\n range: { effectiveDate: { to: getCurrentDate() } },\r\n }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n vacantUnitsCountByUnitType: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: UNIT_ENDPOINTS.aggregation,\r\n body: { aggregationName: UNIT_AGGREGATION.VACANT_UNITS_COUNT_BY_UNIT_TYPE },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n vacantAndReservedUnitsCountByUnitType: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: UNIT_ENDPOINTS.aggregation,\r\n body: { aggregationName: UNIT_AGGREGATION.VACANT_AND_RESERVATION_UNITS_COUNT_BY_UNIT_TYPE },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n failedReturnsCount: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: RETAIL_SALE_ENDPOINTS.returnsCount,\r\n body: {\r\n filter: [\r\n {\r\n exists: { originalPurchaseOrder: [true] },\r\n range: { balance: { fromStrict: 0 } },\r\n terms: { status: ['Pending', 'Partial_Pending'] },\r\n },\r\n ],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n failedReturns: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: RETAIL_SALE_ENDPOINTS.purchaseOrderSearch,\r\n body: {\r\n view: 'detail',\r\n filter: [\r\n {\r\n exists: { originalPurchaseOrder: [true] },\r\n range: { balance: { fromStrict: 0 } },\r\n terms: { status: ['Pending', 'Partial_Pending'] },\r\n },\r\n ],\r\n sort: [{ purchaseDate: { order: 'desc' } }],\r\n includeRelations: {\r\n Tenant: { view: 'detail' },\r\n User: {},\r\n },\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n delinquency: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: DELINQUENCY_ENDPOINTS.wcSearch,\r\n body: {\r\n view: 'list',\r\n filter: [{\r\n range: {\r\n noOfDaysLate: { from: 1 },\r\n balance: { from_strict: 0 },\r\n },\r\n }],\r\n include_relations: { Delinquency_Ledger_Info: {} },\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n estimate: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: 'estimate/search',\r\n body: { view: 'detail' },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n pendingOverlockUnlockCount: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: UNIT_ENDPOINTS.count,\r\n body: {\r\n filter: [{\r\n terms: {\r\n overlock_status: [\r\n OVERLOCK_STATUS.Unlock_Pending.value,\r\n OVERLOCK_STATUS.Overlock_Pending.value,\r\n ],\r\n status: [STATUS.Active.value],\r\n availabilityStatus: [RENTED_AVAILABILITY_STATUS.Available.value,\r\n RENTED_AVAILABILITY_STATUS.Unavailable_On_Move_Out.value],\r\n },\r\n }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n restockInventoryCount: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: RETAIL_SALE_ENDPOINTS.inventoryCount,\r\n body: {\r\n filter: [{\r\n terms: { status: [STATUS.Active.value] },\r\n range: { available_quantity: { to_field_strict: 'reorder_point' } },\r\n }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n inventoryAuditCount: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: RETAIL_SALE_ENDPOINTS.inventoryCount,\r\n body: {\r\n filter: [{\r\n terms: { status: [STATUS.Active.value] },\r\n range: { available_quantity: { to_strict: 0 } },\r\n }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n applyLateEventsCount: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: PENDING_TASKS_ENDPOINTS.applyLateEventsCount,\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n pastDueReservationsCount: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: RESERVATION_ENDPOINTS.count,\r\n body: {\r\n filter: [{\r\n terms: { status: [RESERVATION_STATUS.Reserved] },\r\n range: { rentalInfo: { moveInDate: { to: dateFormatter(subtractFromDate(), SEARCH_DATE_FORMAT) } } },\r\n }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n unitsPendingOverlockUnlock: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: UNIT_ENDPOINTS.search,\r\n body: {\r\n view: 'list',\r\n filter: [{\r\n terms: {\r\n status: [STATUS.Active.value],\r\n availabilityStatus: [RENTED_AVAILABILITY_STATUS.Available.value,\r\n RENTED_AVAILABILITY_STATUS.Unavailable_On_Move_Out.value],\r\n },\r\n }],\r\n includeRelations: { Tenant: {} },\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n textConversation: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: CONVERSATION_ENDPOINTS.listText,\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n emailConversation: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: CONVERSATION_ENDPOINTS.listEmail,\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n text: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: CONVERSATION_ENDPOINTS.searchText,\r\n body: {\r\n view: 'detail',\r\n sort: [{ createdDate: { order: 'desc' } }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n email: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: CONVERSATION_ENDPOINTS.searchEmail,\r\n body: {\r\n view: 'detail',\r\n sort: [{ createdDate: { order: 'desc' } }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n textOrEmailUnreadCount: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: CONVERSATION_ENDPOINTS.unreadCount,\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n achTransaction: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: ACH_ENDPOINTS.searchTransactions,\r\n body: { view: 'detail' },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n creditCardBatches: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: DAILY_SUMMARY_ENDPOINTS.search,\r\n body: {\r\n view: 'detail',\r\n filter: [{ terms: { task: [BATCH_PAYMENT_TASKS.Auto_Payment.value] } }],\r\n sort: [{ createdDate: { order: 'desc' } }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n lastFinancialExport: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: DOCUMENT_ENDPOINTS.search,\r\n body: {\r\n view: 'detail',\r\n filter: [{ terms: { documentType: [DOCUMENT_TYPE.Financial_Export.value] } }],\r\n sort: [{ createdDate: { order: 'desc' } }],\r\n size: 1,\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n savedDocument: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: DOCUMENT_ENDPOINTS.search,\r\n body: {\r\n view: 'list',\r\n filter: [{\r\n terms: {\r\n status: [DOCUMENTATION_STATUS.Active.value,\r\n DOCUMENTATION_STATUS.Pending.value,\r\n DOCUMENTATION_STATUS.Delivery_Error.value,\r\n DOCUMENTATION_STATUS.Generate_Error.value,\r\n DOCUMENTATION_STATUS.Upload_Error.value],\r\n },\r\n }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n rentAdjustment: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: RENT_ADJUSTMENT_ENDPOINTS.search,\r\n body: {\r\n view: 'list',\r\n include_relations: { User: {} },\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n rentAdjustmentGrid: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: UNIT_ENDPOINTS.search,\r\n body: {\r\n view: 'detail',\r\n include_relations: {\r\n Tenant: {},\r\n Unit_Type: {},\r\n },\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n automaticCreditCardDeclinesCount: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: CARD_PROCESSOR_TRANSACTION_ENDPOINTS.count,\r\n body: {\r\n view: 'latest_card_declines',\r\n filter: [{\r\n terms: {\r\n lastStatus: [CARD_PROCESSOR_TRANSACTION_STATUS.Error,\r\n CARD_PROCESSOR_TRANSACTION_STATUS.Duplicate,\r\n CARD_PROCESSOR_TRANSACTION_STATUS.Declined, CARD_PROCESSOR_TRANSACTION_STATUS.Unknown],\r\n autoPay: true,\r\n parentTransaction: null,\r\n },\r\n range: { ledger: { balance: { fromStrict: 0 } } },\r\n }],\r\n sort: [\r\n { ledgerId: { order: 'asc' } },\r\n { id: { order: 'desc' } },\r\n ],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n viewRentAdjustmentGrid: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: RENT_ADJUSTMENT_ENDPOINTS.search,\r\n body: {\r\n view: 'detail',\r\n include_relations: {\r\n User: {},\r\n Unit: {},\r\n Tenant: {},\r\n Unit_Type: {},\r\n },\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n automaticCreditCardDeclines: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: CARD_PROCESSOR_TRANSACTION_ENDPOINTS.search,\r\n body: {\r\n view: 'latest_card_declines',\r\n filter: [{\r\n terms: {\r\n lastStatus: [CARD_PROCESSOR_TRANSACTION_STATUS.Error,\r\n CARD_PROCESSOR_TRANSACTION_STATUS.Duplicate,\r\n CARD_PROCESSOR_TRANSACTION_STATUS.Declined, CARD_PROCESSOR_TRANSACTION_STATUS.Unknown],\r\n parentTransaction: null,\r\n autoPay: true,\r\n },\r\n range: { ledger: { balance: { fromStrict: 0 } } },\r\n }],\r\n sort: [\r\n { ledgerId: { order: 'asc' } },\r\n { id: { order: 'desc' } },\r\n ],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n lateEvents: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: UNIT_ENDPOINTS.lateEvents,\r\n body: { unitId: '' },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n tenantChangesCount: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: TENANT_CHANGE_TRACKING_ENDPOINTS.count,\r\n body: { filter: [{ terms: { status: [TENANT_CHANGE_TRACKING_STATUS.Queued] } }] },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n moveInCount: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: OCCUPANCY_HISTORY_ENDPOINTS.count,\r\n body: { filter: [{ terms: { status: [OTHER_EXTERNAL_ACTIVITY_TRACKING_STATUS.Queued] } }] },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n moveInSearch: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: OCCUPANCY_HISTORY_ENDPOINTS.search,\r\n body: {\r\n view: 'detail',\r\n filter: [{ terms: { status: [OTHER_EXTERNAL_ACTIVITY_TRACKING_STATUS.Queued] } }],\r\n includeRelations: {\r\n Unit: {},\r\n Tenant: { view: 'detail' },\r\n Unit_Type: {},\r\n },\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n payment: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: PAYMENT_ENDPOINTS.search,\r\n body: {\r\n view: 'list',\r\n filter: [{ terms: { status: [OTHER_EXTERNAL_ACTIVITY_TRACKING_STATUS.Queued] } }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n tfwReservationCount: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: RESERVATION_ENDPOINTS.count,\r\n body: { filter: [{ terms: { approvalStatus: [OTHER_EXTERNAL_ACTIVITY_TRACKING_STATUS.Queued] } }] },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n paymentCount: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: PAYMENT_ENDPOINTS.count,\r\n body: { filter: [{ terms: { status: [OTHER_EXTERNAL_ACTIVITY_TRACKING_STATUS.Queued] } }] },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n ccAboutToExpire: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: TENANT_ENDPOINTS.search,\r\n body: {\r\n view: 'detail',\r\n filter: [\r\n {\r\n exists: { ledger: { financials: { card_info: { token: [true] } } } },\r\n terms: {\r\n status: [STATUS.Active.value],\r\n ledger: {\r\n financials: {\r\n card_info: {\r\n expiration_date: {\r\n year: [\r\n addToDate(\r\n getCurrentDate(), 30, TIME_WINDOW.DAYS, true, FULL_YEAR_FORMAT,\r\n ),\r\n addToDate(\r\n getCurrentDate(), 30, TIME_WINDOW.DAYS, true, SHORT_YEAR_FORMAT,\r\n ),\r\n ],\r\n },\r\n },\r\n },\r\n },\r\n },\r\n\r\n range: {\r\n ledger: {\r\n financials: {\r\n card_info: {\r\n expiration_date: {\r\n month: {\r\n lte: getMonth() + 1,\r\n gte: getMonth(addToDate(getCurrentDate(), 30, TIME_WINDOW.DAYS)) + 1,\r\n },\r\n },\r\n },\r\n },\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n tenantEmailChanges: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: TENANT_CHANGE_TRACKING_ENDPOINTS.search,\r\n body: {\r\n view: 'list',\r\n filter: [{\r\n terms: {\r\n status: [TENANT_CHANGE_TRACKING_STATUS.Queued],\r\n change_type: [TENANT_CHANGE_TYPE.email],\r\n },\r\n }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n tenantPhoneChanges: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: TENANT_CHANGE_TRACKING_ENDPOINTS.search,\r\n body: {\r\n view: 'list',\r\n filter: [{\r\n terms: {\r\n status: [TENANT_CHANGE_TRACKING_STATUS.Queued],\r\n change_type: [TENANT_CHANGE_TYPE.phone],\r\n },\r\n }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n tenantAddressChanges: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: TENANT_CHANGE_TRACKING_ENDPOINTS.search,\r\n body: {\r\n view: 'list',\r\n filter: [{\r\n terms: {\r\n status: [TENANT_CHANGE_TRACKING_STATUS.Queued],\r\n change_type: [TENANT_CHANGE_TYPE.address],\r\n },\r\n }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n tenantAlternateContactChanges: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: TENANT_CHANGE_TRACKING_ENDPOINTS.search,\r\n body: {\r\n view: 'list',\r\n filter: [{\r\n terms: {\r\n status: [TENANT_CHANGE_TRACKING_STATUS.Queued],\r\n change_type: [TENANT_CHANGE_TYPE.alternate_contact],\r\n },\r\n }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n tenantChangeTypeCount: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: TENANT_CHANGE_TRACKING_ENDPOINTS.aggregation,\r\n body: {},\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n depositLog: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: DEPOSIT_LOG_ENDPOINTS.search,\r\n body: { view: VIEW.detail.value },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n printFailures: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: PRINT_FAILURES_ENDPOINTS.search,\r\n body: { view: 'list' },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n vehicleData: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: VEHICLE_ENDPOINTS.search,\r\n body: { view: VIEW.detail.value },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n ccBatchTenants: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: BATCH_PAYMENT_ENDPOINTS.ledgerSearch,\r\n body: {\r\n view: VIEW.detail.value,\r\n filter: [{\r\n terms: { status: [STATUS.Active.value] },\r\n range: { balance: { gt: 0 } },\r\n }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n sampleLetter: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: CONFIG_ENDPOINTS.search,\r\n body: {\r\n view: 'detail',\r\n filter: [{\r\n terms: {\r\n config_type: [CONFIG_TYPE.LETTER],\r\n entity_type: [ENTITY_LEVEL.System_Facility.value],\r\n value: {\r\n status: [STATUS.Active.value],\r\n letter_type: [LETTER_TYPE.System.value],\r\n },\r\n _extra: { include_system: true },\r\n },\r\n }],\r\n },\r\n },\r\n },\r\n pendingRentAdjustmentsForAUnit: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: RENT_ADJUSTMENT_ENDPOINTS.search,\r\n body: {\r\n view: 'detail',\r\n filter: [{ terms: { status: [RENT_ADJUSTMENT_STATUS.PENDING] } }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n subDocumentPrintFailures: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: PRINT_FAILURES_ENDPOINTS.search,\r\n body: {\r\n view: 'list',\r\n filter: [{\r\n terms: {\r\n status: [DOCUMENT_STATUS.Generate_Error.value,\r\n DOCUMENT_STATUS.Upload_Error.value,\r\n DOCUMENT_STATUS.Delivery_Error.value],\r\n deliveryMethod: [DELIVERY_METHOD.Print.value],\r\n subDocumentType: [\r\n SUB_DOCUMENT_TYPE.Rent_Adjustment.value,\r\n SUB_DOCUMENT_TYPE.Late_Event.value,\r\n SUB_DOCUMENT_TYPE.Receipt.value,\r\n ],\r\n },\r\n exists: { batchId: [true] },\r\n }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n printFailuresCount: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: PENDING_TASKS_ENDPOINTS.printFailuresCount,\r\n body: {\r\n filter: [{\r\n terms: {\r\n status: [DOCUMENT_STATUS.Generate_Error.value,\r\n DOCUMENT_STATUS.Upload_Error.value,\r\n DOCUMENT_STATUS.Delivery_Error.value],\r\n deliveryMethod: [DELIVERY_METHOD.Print.value],\r\n subDocumentType: [\r\n SUB_DOCUMENT_TYPE.Rent_Adjustment.value,\r\n SUB_DOCUMENT_TYPE.Late_Event.value,\r\n SUB_DOCUMENT_TYPE.Receipt.value,\r\n ],\r\n },\r\n exists: { batchId: [true] },\r\n }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n pendingInvoiceDeliveryCount: {\r\n read: {\r\n ...pendingInvoiceDeliveryActionConfig,\r\n endPoint: PENDING_TASKS_ENDPOINTS.pendingInvoiceDeliveryCount,\r\n },\r\n },\r\n pendingInvoiceDelivery: {\r\n read: {\r\n ...pendingInvoiceDeliveryActionConfig,\r\n endPoint: DOCUMENT_ENDPOINTS.search,\r\n body: {\r\n ...pendingInvoiceDeliveryActionConfig.body,\r\n view: VIEW.detail.value,\r\n includeRelations: { Tenant: {}, Unit: {} },\r\n sort: [{ createdDate: { order: 'desc' } }],\r\n source: SEARCH_DOCUMENT_SOURCE.PENDING_INVOICE_DELIVERY,\r\n size: 20,\r\n },\r\n },\r\n },\r\n emailAudit: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: TENANT_ENDPOINTS.contactLogSearch,\r\n body: {\r\n view: VIEW.detail.value,\r\n filter: [\r\n {\r\n terms: {\r\n additional_info: {\r\n delivery_status: [\r\n 'Delivered',\r\n ],\r\n },\r\n customer_type: ['Tenant'],\r\n mode: ['Email'],\r\n },\r\n },\r\n ],\r\n sort: [{ createdDate: { order: 'desc' } }],\r\n include_relations: { Tenant: { view: 'mini' } },\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default ActionConfig;\r\n","const onMountConfigs = {\r\n resolvePermission: (store = {}) => {\r\n const {\r\n permissionRoles: {\r\n data: {\r\n data: roles = {},\r\n relationalData: { user: { roleId: permissionRoleId } = {} } = {},\r\n } = {},\r\n },\r\n } = store;\r\n return {\r\n store: {\r\n key: 'permission',\r\n actionKey: 'permission_create',\r\n payload: { data: { data: roles['-1'] || roles[permissionRoleId] || {} } },\r\n },\r\n method: 'create',\r\n };\r\n },\r\n};\r\n\r\nexport default onMountConfigs;\r\n","import { STATUS } from 'Commons/config/constants/Constants';\r\nimport { isSyrasoftUser } from 'Commons/helpers/utils/Utils';\r\nimport CONFIG_TYPE from 'External/containers/configuration/config/ConfigRequestType';\r\n\r\nconst getCurrentFacility = (store, routeProps) => {\r\n // TODO: change key defaultFacilityId(assumed key) accordingly\r\n const {\r\n userProfile: { data: { data: [{ defaultFacilityId } = {}] = [], data: userProfile = [] } },\r\n facility: { data: { data: facilityList = [] } },\r\n } = store;\r\n\r\n const { match: { params: { fid } } } = routeProps;\r\n\r\n if (fid) return facilityList.find(({ id }) => id === fid);\r\n\r\n return (userProfile.length && defaultFacilityId)\r\n ? (defaultFacilityId && this.facilityMap[defaultFacilityId])\r\n : facilityList[0] && facilityList[0];\r\n};\r\n\r\nconst resolveConfiguration = (store, configType, extraFilters = {}) => {\r\n const { currentFacility: { data: { id: entityId } = {} } = {} } = store;\r\n return {\r\n api: {\r\n body: {\r\n filter: [{\r\n terms: {\r\n configType: [configType],\r\n entityType: ['Facility'],\r\n ...(entityId && { entityId: [entityId] }),\r\n ...extraFilters,\r\n },\r\n }],\r\n },\r\n },\r\n };\r\n};\r\n\r\nconst onMountConfigs = {\r\n resolveRequiredFields: (store = {}) => resolveConfiguration(store, 'Required_Fields'),\r\n resolveUnitType: (store = {}) => resolveConfiguration(store, 'Unit_Type'),\r\n resolveSuggestedFields: (store = {}) => resolveConfiguration(store, 'Suggested_Fields'),\r\n resolveCustomerGeneral: (store = {}) => resolveConfiguration(store, 'Customer_General'),\r\n resolveRentalGeneral: (store = {}) => resolveConfiguration(store, 'Rental_General'),\r\n resolveMoveIn: (store = {}) => resolveConfiguration(store, 'Move_In'),\r\n resolveChargeCategory: (store = {}) => resolveConfiguration(store, 'Charge_Category'),\r\n resolveTaxExemptCategory: (store = {}) => resolveConfiguration(store, 'Tax_Exempt_Category'),\r\n resolveMoveOut: (store = {}) => resolveConfiguration(store, 'Move_Out'),\r\n resolvePaymentMethod: (store = {}) => resolveConfiguration(store, 'Payment_Method'),\r\n resolveTenantWebsites: (store = {}) => resolveConfiguration(store, 'Tenant_Websites'),\r\n resolveFinancialPayment: (store = {}) => resolveConfiguration(store, 'Financial_Payment'),\r\n resolveTenantSections: (store = {}) => resolveConfiguration(store, 'Tenant_Sections'),\r\n resolveLevel: (store = {}) => resolveConfiguration(store, 'Level'),\r\n resolveInventory: (store = {}) => resolveConfiguration(store, 'Inventory'),\r\n resolveLetter: (store = {}) => resolveConfiguration(store, 'Letter'),\r\n resolveBevColors: (store = {}) => resolveConfiguration(store, 'Bev_Colors'),\r\n resolveLateEvent: (store = {}) => resolveConfiguration(store, 'Late_Event'),\r\n resolveActiveLateEvents: (store = {}) => resolveConfiguration(store, 'Late_Event', { value: { status: ['Active'] } }),\r\n resolveFacilityGeneral: (store = {}) => resolveConfiguration(store, 'Facility_General'),\r\n resolveCardProcessor: (store = {}) => resolveConfiguration(store, 'Card_Processor'),\r\n resolveLeaseStyle: (store = {}) => resolveConfiguration(store, 'Lease_Style'),\r\n resolveMaintenanceEvent: (store = {}) => resolveConfiguration(store, 'Maintenance_Event'),\r\n resolveInvoicing: (store = {}) => resolveConfiguration(store, 'Invoicing'),\r\n resolveGate: (store = {}) => resolveConfiguration(store, 'Gate'),\r\n resolveTransfer: (store = {}) => resolveConfiguration(store, 'Transfer'),\r\n resolveInsuranceCoverage: (store = {}) => resolveConfiguration(store, 'Insurance_Coverage'),\r\n resolvePromoPlan: (store = {}) => resolveConfiguration(store, 'Promo_Plan'),\r\n resolveVehicle: (store = {}) => resolveConfiguration(store, CONFIG_TYPE.VEHICLE),\r\n resolvePlaceholder: (store = {}) => resolveConfiguration(store, CONFIG_TYPE.PLACEHOLDER),\r\n resolveFinancialGeneral: (store = {}) => resolveConfiguration(store, CONFIG_TYPE.FINANCIAL_GENERAL),\r\n\r\n resolveCurrentAccountId: (_, __, routeProps = {}) => {\r\n const { match: { params: { accountId } } = {} } = routeProps;\r\n return {\r\n store: {\r\n key: 'currentAccountId',\r\n actionKey: 'currentAccountId_create',\r\n payload: { data: { id: accountId } },\r\n },\r\n method: 'create',\r\n };\r\n },\r\n\r\n resolveFacility: (_, defaultConfig = {}, routeProps = {}) => {\r\n const { match: { params: { accountId } } = {} } = routeProps;\r\n return {\r\n api: {\r\n ...defaultConfig,\r\n ...accountId && {\r\n customHeaderOptions: {\r\n type: 'default',\r\n context: { id: accountId, type: 'Account' },\r\n },\r\n },\r\n },\r\n store: {\r\n key: 'facility',\r\n actionKey: 'facility_read',\r\n },\r\n };\r\n },\r\n\r\n resolveCurrentFacility: (store = {}, _, routeProps = {}) => {\r\n const payload = getCurrentFacility(store, routeProps);\r\n return {\r\n store: {\r\n key: 'currentFacility',\r\n actionKey: 'currentFacility_create',\r\n payload: { data: payload },\r\n },\r\n method: 'create',\r\n };\r\n },\r\n\r\n resolvePermission: (store = {}) => {\r\n const {\r\n currentFacility: { data: { permissionRoleId } = {} } = {},\r\n permissionRoles: { data: { data: roles = {} } = {} } = {},\r\n userProfile: { data: { data: [{ userType } = {}] = [] } = {} } = {},\r\n } = store;\r\n return {\r\n store: {\r\n key: 'permission',\r\n actionKey: 'permission_create',\r\n payload: {\r\n data: {\r\n data: (isSyrasoftUser(userType)\r\n ? roles['-1'] : roles[permissionRoleId]) || {},\r\n },\r\n },\r\n },\r\n method: 'create',\r\n };\r\n },\r\n\r\n resolveChargeCategoryWithRestricted: (store = {}) => {\r\n const config = resolveConfiguration(store, 'Charge_Category');\r\n // eslint-disable-next-line no-underscore-dangle\r\n config.api.body.__includeRestricted = ['Prepay'];\r\n return config;\r\n },\r\n\r\n resolveActivePaymentMethod: (store = {}) => {\r\n const extraFilters = { value: { status: [STATUS.Active.value] } };\r\n return resolveConfiguration(store, 'Payment_Method', extraFilters);\r\n },\r\n\r\n resolvePaymentAccessiblePromoPlans: (store = {}) => {\r\n const extraFilters = { value: { accessibility: { features: { Payment: [true] } } } };\r\n return resolveConfiguration(store, 'Promo_Plan', extraFilters);\r\n },\r\n\r\n resolveActiveCardProcessor: (store = {}) => {\r\n const extraFilters = { value: { status: [STATUS.Active.value] } };\r\n return resolveConfiguration(store, 'Card_Processor', extraFilters);\r\n },\r\n\r\n resolvePendingRentAdjustmentsForAUnit: (_, defaultConfig, routeProps = {}, storeConfig) => {\r\n const { match: { params: { unitId } = {} } = {} } = routeProps;\r\n const { body: { filter: [{ terms: defaultTerms } = {}] = [] } = {}, ...rest } = defaultConfig;\r\n return {\r\n api: {\r\n ...rest,\r\n body: {\r\n view: 'mini',\r\n filter: [{\r\n terms: {\r\n ...defaultTerms,\r\n unitId: [unitId],\r\n },\r\n }],\r\n },\r\n },\r\n store: storeConfig,\r\n };\r\n },\r\n};\r\n\r\nexport default onMountConfigs;\r\n","/* eslint-disable consistent-return */\r\nimport STATUS from '../../../commons/config/constants/StoreKeyStatus';\r\n\r\nconst CustomHeaders = {\r\n ACCOUNT: 'Account',\r\n BUSINESS_GROUP: 'Business_Group',\r\n FACILITY: 'Facility',\r\n};\r\n\r\nconst StoreCustomHeaders = {\r\n facility: {\r\n type: CustomHeaders.FACILITY,\r\n id: ({ currentFacility }) => {\r\n if (currentFacility && currentFacility.status > STATUS.LOADING) {\r\n const { data: { id: facilityId } } = currentFacility;\r\n return facilityId;\r\n }\r\n },\r\n },\r\n account: {\r\n type: CustomHeaders.ACCOUNT,\r\n id: ({ currentAccountId }) => {\r\n if (currentAccountId && currentAccountId.status > STATUS.LOADING) {\r\n const { data: { id: accountId } } = currentAccountId;\r\n return accountId;\r\n }\r\n },\r\n },\r\n};\r\n\r\nexport {\r\n CustomHeaders,\r\n StoreCustomHeaders,\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from '../../../commons/redux/helper/RelationalDataMap';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const keys = [{\r\n dataKey: 'unitTypeId',\r\n relationalDataKey: 'unitType',\r\n }];\r\n processedData = mapRelationalData(processedData, keys);\r\n return processedData;\r\n};\r\n","import { mapRelationalData } from 'Commons/redux/helper/RelationalDataMap';\r\nimport baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\n\r\nconst mapTenantData = (processedUnits, tenantData) => {\r\n const { data: { data: allUnitsData = [], ...nestedData } = {} } = processedUnits;\r\n const units = [];\r\n const tenantsMappedByLedgerId = tenantData.reduce((acc, tenant) => {\r\n const { ledger = [] } = tenant;\r\n return {\r\n ...acc,\r\n ...ledger.reduce((ac, { id }) => ({\r\n ...ac,\r\n [id]: tenant,\r\n }), {}),\r\n };\r\n }, {});\r\n allUnitsData.forEach((unit) => {\r\n const { ledger: { id: unitLedgerId } = {} } = unit;\r\n let tenant;\r\n if (unitLedgerId) {\r\n tenant = tenantsMappedByLedgerId[unitLedgerId];\r\n }\r\n units.push({ ...unit, tenant });\r\n });\r\n return { data: units, ...nestedData };\r\n};\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const {\r\n data: { relationalData: { tenant: unMappedTenantData = [] } = {} } = {},\r\n ...outerData\r\n } = processedData;\r\n\r\n const keys = [{ dataKey: 'unitType.id', relationalDataKey: 'unitType' }];\r\n processedData = mapRelationalData(processedData, keys);\r\n processedData = mapTenantData(processedData, unMappedTenantData);\r\n\r\n return {\r\n ...outerData,\r\n data: { ...processedData },\r\n };\r\n};\r\n","/* eslint-disable import/prefer-default-export */\r\nimport handleError, { handleStatusError } from 'Commons/redux/error/ErrorHandler';\r\nimport STATUS from 'Commons/config/constants/StoreKeyStatus';\r\nimport { curQueue } from 'Commons/helpers/api/Queue';\r\nimport { toObject, pascalCaseWithUnderscore, camelCase } from 'Commons/helpers/utils/DataHelpers';\r\nimport { getPostProcessor } from '../../../commons/redux/postProcessor/allProcessors';\r\n\r\nconst processPayload = (keys, response) => keys.reduce((payload, key) => {\r\n const transformedKey = pascalCaseWithUnderscore(key);\r\n const data = (response && response[transformedKey] && response[transformedKey].data) || [];\r\n const singleConfigData = {\r\n data: {\r\n data,\r\n totalCount: data ? data.length : 0,\r\n },\r\n dataObject: toObject(data),\r\n status: STATUS.LOADED,\r\n };\r\n return {\r\n ...payload,\r\n [key]: singleConfigData,\r\n };\r\n}, {});\r\n\r\nconst processValidResponse = (apiResult, keys, storeData, api) => {\r\n const { data: response = {}, totalCount = 0 } = apiResult;\r\n if (keys.length && totalCount) {\r\n return processPayload(keys, response, storeData, api);\r\n }\r\n\r\n if (totalCount) {\r\n const responseKeys = Object.keys(response).map(key => camelCase(key));\r\n const payload = processPayload(responseKeys, response, storeData, api);\r\n return {\r\n data: {\r\n data: payload,\r\n totalCount,\r\n },\r\n status: STATUS.LOADED,\r\n };\r\n }\r\n return response;\r\n};\r\n\r\nconst processOtherResponses = ({ data, status }, keys) => keys.reduce((payload, key) => ({\r\n ...payload,\r\n [key]: {\r\n data,\r\n status,\r\n },\r\n}), {});\r\n\r\n// eslint-disable-next-line consistent-return\r\nconst configPostProcessor = async (apiResult, callback, dispatch, localReqOptions) => {\r\n const { keys, storeData, api, subProcessor, requestOptions } = localReqOptions;\r\n const { error: err, response, timestamp } = apiResult;\r\n const isQueued = response && response.status === STATUS.QUEUED;\r\n\r\n if (!isQueued) {\r\n // Removing request via timestamp\r\n curQueue.remove(timestamp, storeData);\r\n }\r\n\r\n if (err) {\r\n console.log('Error:', err);\r\n handleError(err, callback);\r\n const error = handleStatusError(err, dispatch, localReqOptions);\r\n return processOtherResponses(error, keys);\r\n }\r\n\r\n // No Error, Successful response\r\n if (isQueued) {\r\n return processOtherResponses({\r\n data: null,\r\n status: STATUS.LOADING,\r\n }, keys);\r\n }\r\n let configData = processValidResponse(response, keys, storeData, api);\r\n if (subProcessor) {\r\n const postProcessor = getPostProcessor(`${subProcessor}SubPostProcessor`);\r\n configData = await postProcessor(configData,\r\n storeData, api, requestOptions);\r\n }\r\n if (!isQueued && callback) {\r\n callback(err, configData);\r\n }\r\n return configData;\r\n};\r\nexport { configPostProcessor };\r\n","import CONFIG_TYPE from 'External/containers/configuration/config/ConfigRequestType';\r\n\r\nexport default {\r\n chargeCategory: [{\r\n path: 'taxes',\r\n configType: CONFIG_TYPE.TAX_CODE,\r\n }],\r\n taxCode: [{\r\n path: 'chargeCategory',\r\n configType: CONFIG_TYPE.CHARGE_CATEGORY,\r\n }],\r\n taxExemptCategory: [{\r\n path: 'customExemptList',\r\n configType: CONFIG_TYPE.TAX_CODE,\r\n }],\r\n unitType: [{\r\n path: 'rate.chargeCategory',\r\n configType: CONFIG_TYPE.CHARGE_CATEGORY,\r\n }],\r\n maintenanceEvent: [{\r\n path: 'billing.chargeCategory',\r\n configType: CONFIG_TYPE.CHARGE_CATEGORY,\r\n }],\r\n leaseStyle: [\r\n {\r\n path: 'leaseDocument',\r\n configType: CONFIG_TYPE.LETTER,\r\n },\r\n {\r\n path: 'addendum',\r\n configType: CONFIG_TYPE.LETTER,\r\n },\r\n ],\r\n // Dummy entry to handle config inheritance. Need to refactor the code to handle for configs without dependents\r\n paymentMethod: [{\r\n path: 'taxes',\r\n configType: CONFIG_TYPE.TAX_CODE,\r\n }],\r\n};\r\n","import { setValue, getValue, deCapitalize } from 'Commons/helpers/utils/DataHelpers';\r\nimport { curQueue } from 'Commons/helpers/api/Queue';\r\nimport STATUS from 'Commons/config/constants/StoreKeyStatus';\r\nimport dependentConfig from '../config/ConfigurationDependencies';\r\nimport { handleConfigInheritance } from './configSDPostProcessor';\r\n\r\nconst pushIfDoesNotExist = (array, item) => {\r\n if (!array.includes(item)) {\r\n array.push(item);\r\n }\r\n};\r\n\r\nconst getResolvedData = async (currentData, store, keysToResolveInfo = [], api, {\r\n body: {\r\n filter: [{\r\n terms: {\r\n entityType: [entityType] = [],\r\n entityId: [entityId] = [],\r\n } = {},\r\n } = {}] = [],\r\n } = {},\r\n headers,\r\n}) => {\r\n const idsToFetch = [];\r\n const indicesToProcessWhileMerging = [];\r\n let processedData = [];\r\n\r\n const configTypes = keysToResolveInfo.reduce((updatedConfigTypes, { configType, path }) => {\r\n processedData = currentData.reduce((updatedData, dataItem, dataIndex) => {\r\n const { value = {}, childConfiguration = [] } = dataItem;\r\n const { value: childValue = {} } = childConfiguration.find(({ entityType: selectedEntityType }) => selectedEntityType === entityType) || {};\r\n\r\n const { [deCapitalize(configType.replace('_', ''))]: { dataObject = {} } = {} } = store || {};\r\n let nestedData = getValue(value, path);\r\n let childNestedData = getValue(childValue, path);\r\n if (typeof nestedData === 'object' && !Object.keys(nestedData).length) {\r\n nestedData = [];\r\n }\r\n if (typeof childNestedData === 'object' && !Object.keys(childNestedData).length) {\r\n childNestedData = [];\r\n }\r\n if (nestedData) {\r\n pushIfDoesNotExist(indicesToProcessWhileMerging, dataIndex);\r\n nestedData = !Array.isArray(nestedData) ? [nestedData] : nestedData;\r\n nestedData.forEach((nestedDataId) => {\r\n if (!dataObject[dataItem]) {\r\n idsToFetch.push(nestedDataId);\r\n }\r\n });\r\n }\r\n if (childNestedData) {\r\n pushIfDoesNotExist(indicesToProcessWhileMerging, dataIndex);\r\n childNestedData = !Array.isArray(childNestedData) ? [childNestedData] : childNestedData;\r\n childNestedData.forEach((nestedDataId) => {\r\n if (!dataObject[dataItem]) {\r\n idsToFetch.push(nestedDataId.toString());\r\n }\r\n });\r\n }\r\n setValue(value, path, nestedData || []);\r\n updatedData.push({ ...dataItem, value });\r\n return updatedData; // Avoid directly return of updatedData.push, it will return promise\r\n }, []);\r\n updatedConfigTypes.push(configType);\r\n return updatedConfigTypes;\r\n }, []);\r\n\r\n let fetchedData = [];\r\n if (idsToFetch.length) {\r\n fetchedData = await api({\r\n api: {\r\n methodType: 'POST',\r\n endPoint: 'configuration/search',\r\n body: {\r\n view: 'detail',\r\n filter: [{\r\n terms: {\r\n configType: [...new Set(configTypes)],\r\n entityType: [entityType],\r\n ...(entityId && { entityId: [entityId] }),\r\n id: [...new Set(idsToFetch)],\r\n },\r\n }],\r\n },\r\n headers,\r\n },\r\n });\r\n }\r\n return { processedData, fetchedData, indicesToProcessWhileMerging };\r\n};\r\n\r\nconst postProcessResolvedData = (data, store, keysToResolveInfo, entityType) => {\r\n const {\r\n indicesToProcessWhileMerging, processedData,\r\n fetchedData: { error, response, timestamp },\r\n } = data || {};\r\n curQueue.remove(timestamp);\r\n if (error) {\r\n return {\r\n data: null,\r\n status: STATUS.ERROR,\r\n };\r\n }\r\n const finalData = [...processedData];\r\n if (response) {\r\n keysToResolveInfo.forEach(({ path, configType }) => {\r\n const { data: { [configType]: { data: fetchedData = [] } = {} } = {} } = response;\r\n const {\r\n [deCapitalize(configType.replace('_', ''))]: { data: { data: dataFromStore = [] } = {} } = {},\r\n dataObject = {},\r\n } = store || {};\r\n\r\n indicesToProcessWhileMerging.forEach((currentDataIndex) => {\r\n const dataToProcessAndMerge = getValue(processedData[currentDataIndex].value, path);\r\n const mergedNestedData = dataToProcessAndMerge.reduce((mergedData, id) => {\r\n const resolvedData = dataFromStore[dataObject[id] || -1]\r\n || fetchedData.find(({ id: dataId }) => String(dataId) === String(id));\r\n mergedData.push(resolvedData);\r\n return mergedData;\r\n }, []);\r\n setValue(finalData[currentDataIndex].value, path, mergedNestedData);\r\n if (processedData[currentDataIndex].childConfiguration) {\r\n const selectedOverriddenProcessedConfig = processedData[currentDataIndex].childConfiguration.find(({ entityType: selectedEntityType }) => entityType === selectedEntityType);\r\n const dataToProcessAndMergeForChild = getValue(selectedOverriddenProcessedConfig.value, path);\r\n const mergedNestedDataForChild = dataToProcessAndMergeForChild.reduce((mergedData, id) => {\r\n const stringId = id.toString();\r\n const resolvedData = dataFromStore[dataObject[stringId] || -1]\r\n || fetchedData.find(({ id: dataId }) => dataId === stringId);\r\n mergedData.push(resolvedData);\r\n return mergedData;\r\n }, []);\r\n const selectedOverriddenFinalConfig = finalData[currentDataIndex].childConfiguration.find(({ entityType: selectedEntityType }) => entityType === selectedEntityType);\r\n setValue(selectedOverriddenFinalConfig.value, path, mergedNestedDataForChild);\r\n }\r\n });\r\n });\r\n }\r\n return finalData;\r\n};\r\n\r\nconst fetchExtraData = async (dataToProcess, store, api, keysToResolveInfo, requestOptions) => {\r\n const { body: { filter: [{ terms: { entityType: [entityType] = [] } = {} } = {}] = [] } = {} } = requestOptions;\r\n const data = await getResolvedData(dataToProcess, store, keysToResolveInfo, api, requestOptions);\r\n const { fetchedData: { response = {}, ...restFetchedData }, ...restData } = data || {};\r\n const { data: { data: { success, totalCount, ...cleanData } = {} } = {} } = handleConfigInheritance(response);\r\n const updatedData = { fetchedData: { response: { ...response, data: cleanData }, ...restFetchedData }, ...restData };\r\n return postProcessResolvedData(updatedData, store, keysToResolveInfo, entityType);\r\n};\r\n\r\nconst configSubPostProcessor = async (currentData = {}, store = {}, api = () => { },\r\n requestOptions = {}) => Object.keys(currentData).reduce(async (updatedData, key) => {\r\n const resolvedUpdatedData = await updatedData;\r\n const {\r\n [key]: otherData = {}, [key]: {\r\n data = {},\r\n data: { data: dataToProcess = [], totalCount = 0 } = {},\r\n } = {},\r\n } = currentData;\r\n const keysToResolveInfo = dependentConfig[key];\r\n if (keysToResolveInfo) {\r\n const finalData = await fetchExtraData(dataToProcess, store, api, keysToResolveInfo, requestOptions);\r\n const filteredFinalData = finalData.filter(({ value: { description } = {} }) => description);\r\n return {\r\n ...resolvedUpdatedData,\r\n [key]: {\r\n ...otherData,\r\n data: {\r\n ...data,\r\n totalCount: totalCount - (dataToProcess.length - filteredFinalData.length),\r\n data: filteredFinalData,\r\n },\r\n },\r\n };\r\n }\r\n return currentData;\r\n}, currentData, Promise.resolve([]));\r\n\r\nexport default configSubPostProcessor;\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const { data: { data: reservationList = [], relationalData = {}, ...restData } = {} } = processedData;\r\n const reservationData = reservationList.map((reservation) => {\r\n const { unitTypeId = '', unitId = '', tenant: { id: tenantId = '' } = {} } = reservation;\r\n const unitType = relationalData.unitType.find(({ id }) => id === unitTypeId) || {};\r\n const unit = relationalData.unit.find(({ id }) => id === unitId) || {};\r\n const tenant = relationalData.tenant.find(({ id }) => id === tenantId) || {};\r\n return { ...reservation, unitType, unit, tenant };\r\n });\r\n\r\n if (processedData) {\r\n processedData = {\r\n ...processedData,\r\n data: { data: reservationData, ...restData },\r\n };\r\n }\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { STATUS } from 'Commons/config/constants/Constants';\r\nimport RequestTypes from 'Commons/config/constants/RequestTypes';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions) || {};\r\n const { storeData: { inventoryList: { activeInventoryList = [] } = {} } = {}, requestType } = localReqOptions;\r\n const { data = {} } = processedData;\r\n const activeInventoryListData = requestType === RequestTypes.PAGINATE ? activeInventoryList : [];\r\n if (data) {\r\n const { data: inventory = [], relationalData: { vendor = [] } = {}, ...restData } = data;\r\n const inventoryData = inventory.map((inventoryItem) => {\r\n const {\r\n id: vendorId,\r\n status: vendorStatus,\r\n ...rest\r\n } = vendor.find(({ id }) => id === inventoryItem.vendorId) || {};\r\n const mergedInventoryItem = { ...inventoryItem, vendorStatus, ...rest };\r\n if (inventoryItem.status === STATUS.Active.value && vendorStatus === STATUS.Active.value) {\r\n activeInventoryListData.push(mergedInventoryItem);\r\n }\r\n return mergedInventoryItem;\r\n });\r\n processedData = {\r\n ...processedData,\r\n data: { data: inventoryData, ...restData },\r\n activeInventoryList: activeInventoryListData,\r\n };\r\n }\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from '../../../commons/redux/helper/RelationalDataMap';\r\nimport { mergeChildConfigWithParent } from './configSDPostProcessor';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const { data: { relationalData = {}, ...restInnerData } = {}, ...outerData } = processedData;\r\n const processedRelationalData = Object.keys(relationalData).reduce((acc, key) => ({\r\n ...acc,\r\n [key]: mergeChildConfigWithParent(relationalData[key]),\r\n }), {});\r\n processedData = { ...outerData, data: { ...restInnerData, relationalData: processedRelationalData } };\r\n const keys = [{ dataKey: 'chargeCategoryId', relationalDataKey: 'chargeCategory' }];\r\n processedData = mapRelationalData(processedData, keys);\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from '../../../commons/redux/helper/RelationalDataMap';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const keys = [{ dataKey: 'additionalInfo.unitId', relationalDataKey: 'unit' }];\r\n processedData = mapRelationalData(processedData, keys);\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from '../../../commons/redux/helper/RelationalDataMap';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n const { isDataReversed } = localReqOptions;\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const { data: { data: arData = [], relationalData = {}, ...restData } = {} } = processedData;\r\n if (isDataReversed) {\r\n processedData = { data: { data: arData.reverse(), relationalData, ...restData } };\r\n }\r\n const keys = [{ dataKey: 'chargeCategoryId', relationalDataKey: 'chargeCategory' }];\r\n processedData = mapRelationalData(processedData, keys);\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { flattenObject } from 'Commons/helpers/utils/DataHelpers';\r\nimport { SETUP_STATUS } from 'Commons/config/constants/Constants';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n const processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const { data: { relationalData, ...data } = {}, data: { data: facilityData = [] } = {} } = processedData;\r\n const {\r\n user = [], permissions: {\r\n permissions: [{ permission: { facility: facilityToRoleMapping = {} } = {} } = {}] = [],\r\n roles = [],\r\n } = {},\r\n missingConfigs = {},\r\n accountNumber = '',\r\n facilityGeneral = {},\r\n } = relationalData || {};\r\n\r\n // converting roles to key, value pair where key is the id of role\r\n const processedRoles = roles.reduce((acc, { id: profileId, permission }) => ({\r\n ...acc,\r\n [profileId]: permission ? flattenObject(permission) : {},\r\n }), {});\r\n\r\n let updatedFacilityData = facilityData;\r\n // adding profile id to the facility, to resolve it on facility select\r\n updatedFacilityData = facilityData.map(({ id, ...facility }) => {\r\n const { [id]: { roleId } = {} } = facilityToRoleMapping;\r\n return {\r\n ...facility,\r\n id,\r\n permissionRoleId: roleId,\r\n setupStatus: missingConfigs[id].length ? SETUP_STATUS.INCOMPLETE : SETUP_STATUS.COMPLETE,\r\n ...facilityGeneral[id] || {},\r\n };\r\n });\r\n\r\n return {\r\n facility: {\r\n ...processedData,\r\n data: {\r\n ...data,\r\n relationalData,\r\n data: updatedFacilityData,\r\n },\r\n },\r\n userProfile: {\r\n ...processedData,\r\n data: {\r\n ...data,\r\n data: user,\r\n totalCount: user.length,\r\n accountNumber,\r\n },\r\n },\r\n permissionRoles: {\r\n ...processedData,\r\n data: {\r\n ...data,\r\n data: processedRoles,\r\n totalCount: roles.length,\r\n },\r\n },\r\n };\r\n};\r\n","import STATUS from 'Commons/config/constants/StoreKeyStatus';\r\nimport baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from '../../../commons/redux/helper/RelationalDataMap';\r\n\r\n\r\nconst manualLateEventPostProcessor = (apiResult, callback, dispatch, localReqOptions) => {\r\n const processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n\r\n const keys = [\r\n { dataKey: 'lateEventConfigId', relationalDataKey: 'lateEvent' },\r\n { dataKey: 'unitId', relationalDataKey: 'unit' },\r\n ];\r\n const processedResponse = mapRelationalData(processedData, keys);\r\n\r\n // Processing Tenant Explicitly because the way ledger and tenant is associated\r\n const data = [];\r\n const { data: allProcessedData, data: { data: processedLateEvents = [] } = {} } = processedResponse || {};\r\n const { data: responseData } = processedData;\r\n const { relationalData: { tenant: tenants = [] } = {} } = responseData || {};\r\n\r\n if (tenants && Array.isArray(tenants) && tenants.length) {\r\n const ledgerTenantObj = {};\r\n tenants.forEach((tenant) => {\r\n const { ledger = [] } = tenant;\r\n ledger.forEach(({ id }) => {\r\n ledgerTenantObj[id] = tenant;\r\n });\r\n });\r\n\r\n processedLateEvents.forEach((lateEvent) => {\r\n const { ledgerId } = lateEvent || {};\r\n const tenant = ledgerTenantObj[ledgerId];\r\n data.push({ ...lateEvent, tenant });\r\n });\r\n }\r\n\r\n return {\r\n data: {\r\n ...allProcessedData,\r\n data,\r\n },\r\n status: STATUS.LOADED,\r\n };\r\n};\r\n\r\nexport { manualLateEventPostProcessor };\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from '../../../commons/redux/helper/RelationalDataMap';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const keys = [{\r\n dataKey: 'unitIdOrUnitTypeId',\r\n relationalDataKey: 'unit',\r\n }];\r\n processedData = mapRelationalData(processedData, keys);\r\n const { data: oldData, data: { data = [], relationalData: { tenant: tenantData = {} } = {} } = {} } = processedData;\r\n\r\n const ledgerIdToTenantIdMapping = Object.keys(tenantData).reduce((prevVal, tenantId) => {\r\n const { [tenantId]: { ledger: ledgersOfTenant = [] } = {} } = tenantData || {};\r\n const ledgerIdsMappedToTenantId = ledgersOfTenant.reduce((acc, { id } = {}) => ({ ...acc, [id]: tenantId }), {});\r\n return { ...prevVal, ...ledgerIdsMappedToTenantId };\r\n }, {});\r\n\r\n const newData = data.map((eachData) => {\r\n const { unit: { ledger: { id: ledgerId } = {} } = {} } = eachData;\r\n const { [ledgerId]: requiredTenantId } = ledgerIdToTenantIdMapping;\r\n const { [requiredTenantId]: tenant = {} } = tenantData;\r\n return {\r\n ...eachData,\r\n tenant,\r\n };\r\n });\r\n processedData = {\r\n ...processedData,\r\n data: {\r\n ...oldData,\r\n data: newData,\r\n },\r\n };\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const { data: { data = [], ...remainingData } = {} } = processedData;\r\n const newData = data.reduce((prevValue, { id, label } = {}) => ({\r\n ...prevValue,\r\n [label]: id,\r\n }), {});\r\n processedData = {\r\n ...processedData,\r\n data: { ...remainingData, data: newData },\r\n };\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from '../../../commons/redux/helper/RelationalDataMap';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n processedData = mapRelationalData(processedData);\r\n const { data: oldData, data: { data = [], relationalData: { unitType: unitTypeData = [], user: userData = [] } = {} } = {} } = processedData;\r\n const newData = data.map((eachData) => {\r\n const { createdBy: { id: userId } = {} } = eachData;\r\n let { interestedUnitTypes = [] } = eachData;\r\n if (interestedUnitTypes && interestedUnitTypes.length) {\r\n interestedUnitTypes = interestedUnitTypes.map(unitTypeId => unitTypeData[unitTypeId]);\r\n }\r\n return {\r\n ...eachData,\r\n interestedUnitTypes,\r\n createdBy: userId ? userData[userId] : {},\r\n };\r\n });\r\n processedData = {\r\n ...processedData,\r\n data: {\r\n ...oldData,\r\n data: newData,\r\n },\r\n };\r\n return processedData;\r\n};\r\n","import STATUS from 'Commons/config/constants/StoreKeyStatus';\r\nimport baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\n\r\nconst delinquencyPostProcessor = (apiResult, callback, dispatch, localReqOptions) => {\r\n const processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n\r\n const { data: allProcessedData, data: { data: tenants = [], totalCount: resTotalCount = 0, relationalData: statusList = {} } = {} } = processedData || {};\r\n const { Delinquency_Ledger_Info: processedLedgers = {} } = statusList;\r\n const data = [];\r\n\r\n const { storeData: { delinquency: { data: { actualRows = 0, totalCount = 0 } = {} } = {} } = {} } = localReqOptions || {};\r\n let newTotalCount = totalCount || resTotalCount;\r\n\r\n if (tenants && Array.isArray(tenants) && tenants.length) {\r\n tenants.forEach((tenant) => {\r\n const { ledger = [] } = tenant;\r\n ledger.forEach((eachLedger) => {\r\n const delinquencyInfo = processedLedgers[eachLedger.id] || [];\r\n data.push({ ...tenant, delinquencyInfo, ledger: [{ ...eachLedger }] });\r\n });\r\n newTotalCount += (ledger.length - 1);\r\n });\r\n }\r\n\r\n return {\r\n data: {\r\n ...allProcessedData,\r\n data,\r\n totalCount: newTotalCount,\r\n actualRows: actualRows + tenants.length,\r\n },\r\n status: STATUS.LOADED,\r\n };\r\n};\r\n\r\nexport { delinquencyPostProcessor };\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n const {\r\n data: { data: { unitType = [], ...restInnerData } = {}, ...restOuterData } = {},\r\n ...processedData\r\n } = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const updatedUnitType = {};\r\n unitType.forEach((unitTypeDetail = {}) => {\r\n const { value: { description } = {}, value, id } = unitTypeDetail;\r\n updatedUnitType[id] = { ...unitTypeDetail, label: description, data: value };\r\n });\r\n return {\r\n ...processedData,\r\n data: {\r\n ...restOuterData,\r\n data: {\r\n ...restInnerData,\r\n unitType: updatedUnitType,\r\n },\r\n },\r\n };\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { toObject } from 'Commons/helpers/utils/DataHelpers';\r\nimport localisable from 'Commons/config/strings/localisable';\r\nimport { curQueue } from 'Commons/helpers/api/Queue';\r\nimport CONFIG_TYPE from 'External/containers/configuration/config/ConfigRequestType';\r\nimport { ENTITY_LEVEL } from 'Commons/config/constants/Constants';\r\nimport { CONFIG_ENDPOINTS, REPORT_WC_ENDPOINTS } from 'Commons/config/constants/Endpoints';\r\n\r\nconst resolveCustomHeaders = (apiOptions, processCustomHeaders) => {\r\n if (processCustomHeaders) {\r\n const { api: processedApiOptions } = processCustomHeaders({ api: apiOptions });\r\n return processedApiOptions;\r\n }\r\n return apiOptions;\r\n};\r\n\r\nconst filterInsuranceVendor = (providerId, insuranceVendorResponse) => {\r\n const { response, timestamp } = insuranceVendorResponse;\r\n curQueue.remove(timestamp);\r\n if (response) {\r\n const { data: { Insurance_Provider: { data: vendors = [] } = {} } = {} } = response;\r\n const insuranceVendor = vendors.find(vendor => vendor.id === providerId.toString()) || {};\r\n return insuranceVendor;\r\n }\r\n return {};\r\n};\r\n\r\nconst resolveInsuranceResponse = (insuranceConfig, insuranceVendors) => {\r\n const { response: configResponse, timestamp: configResponseTimestamp } = insuranceConfig;\r\n curQueue.remove(configResponseTimestamp);\r\n if (configResponse) {\r\n const {\r\n data: {\r\n Insurance: { data: [{ value: { providerId = '' } = {} } = {}] = [] }\r\n = {},\r\n } = {},\r\n } = configResponse;\r\n if (providerId) {\r\n return filterInsuranceVendor(providerId, insuranceVendors);\r\n }\r\n }\r\n return {};\r\n};\r\n\r\nconst getInsuranceConfigApiOptions = (facilityId, processCustomHeaders) => {\r\n const insuranceConfigBody = {\r\n view: 'detail',\r\n filter: [{\r\n terms: {\r\n config_type: [CONFIG_TYPE.INSURANCE],\r\n entity_type: [ENTITY_LEVEL.Facility.value],\r\n entity_id: [facilityId],\r\n },\r\n }],\r\n };\r\n return resolveCustomHeaders({\r\n methodType: 'POST',\r\n endPoint: CONFIG_ENDPOINTS.search,\r\n body: insuranceConfigBody,\r\n }, processCustomHeaders);\r\n};\r\n\r\nconst getInsuranceVendorApiOptions = (processCustomHeaders) => {\r\n const insuranceProviderConfigBody = {\r\n view: 'detail',\r\n filter: [{\r\n terms: {\r\n config_type: [CONFIG_TYPE.INSURANCE_PROVIDER],\r\n entity_type: [ENTITY_LEVEL.System_Facility.value],\r\n },\r\n }],\r\n };\r\n return resolveCustomHeaders({\r\n methodType: 'POST',\r\n endPoint: CONFIG_ENDPOINTS.search,\r\n body: insuranceProviderConfigBody,\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n }, processCustomHeaders);\r\n};\r\n\r\nconst getCategoryApiOptions = processCustomHeaders => resolveCustomHeaders({\r\n methodType: 'POST',\r\n baseUrl: process.env.REPORT_URL,\r\n endPoint: REPORT_WC_ENDPOINTS.category.search,\r\n body: {},\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n}, processCustomHeaders);\r\n\r\nconst getInsuranceCategoryReportsApiOptions = (insuranceCategoryId, processCustomHeaders) => resolveCustomHeaders({\r\n methodType: 'POST',\r\n baseUrl: process.env.REPORT_URL,\r\n endPoint: REPORT_WC_ENDPOINTS.report.search,\r\n body: { filter: [{ terms: { category: { id: [insuranceCategoryId] } } }] },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n}, processCustomHeaders);\r\n\r\nconst fetchInsuranceConfig = async (facilityId, api, processCustomHeaders) => {\r\n // api options for fetching insurance configuration for facility\r\n const insuranceConfigApiOptions = getInsuranceConfigApiOptions(facilityId, processCustomHeaders);\r\n\r\n // api options for fetching insurance providers\r\n const insuranceProviderApiOptions = getInsuranceVendorApiOptions(processCustomHeaders);\r\n\r\n // doing parallel calls to save time, edge case (Facility doesn't have insurance provider but still we will call both)\r\n const [insuranceConfig, insuranceProviders] = await Promise.all(\r\n [\r\n api({ api: insuranceConfigApiOptions }),\r\n api({ api: insuranceProviderApiOptions }),\r\n ],\r\n );\r\n return resolveInsuranceResponse(insuranceConfig, insuranceProviders);\r\n};\r\n\r\nconst fetchInsuranceCategoryReports = async (insuranceCategoryId, api, processCustomHeaders) => {\r\n const insuranceCategoryApiOptions = getInsuranceCategoryReportsApiOptions(insuranceCategoryId, processCustomHeaders);\r\n const insuranceCategoryReports = await api({ api: insuranceCategoryApiOptions });\r\n const { response, timestamp } = insuranceCategoryReports;\r\n curQueue.remove(timestamp);\r\n if (response) {\r\n const { data = [] } = response;\r\n return data;\r\n }\r\n return [];\r\n};\r\n\r\nconst fetchInsuranceCategory = async (api, processCustomHeaders) => {\r\n const categoryApiOptions = getCategoryApiOptions(processCustomHeaders);\r\n const category = await api({ api: categoryApiOptions });\r\n const { response, timestamp } = category;\r\n curQueue.remove(timestamp);\r\n if (response) {\r\n const { data = [] } = response;\r\n const insuranceCategory = data.find(({ description }) => description === localisable.insurance) || {};\r\n const { id: insuranceCategoryId = '' } = insuranceCategory;\r\n return insuranceCategoryId.toString();\r\n }\r\n return '';\r\n};\r\n\r\nconst resolveInsuranceVendorReports = (insuranceVendor, data, restData, others) => {\r\n const { value: { description } = {} } = insuranceVendor;\r\n const reports = data.filter(item => item.name.includes(description));\r\n return {\r\n data: {\r\n data: reports,\r\n dataObject: toObject(reports),\r\n ...restData,\r\n },\r\n ...others,\r\n totalCount: reports.length,\r\n };\r\n};\r\n\r\nexport default async (apiResult, callback, dispatch, localReqOptions) => {\r\n const processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const { data: { data = [], ...others } = {}, ...restData } = processedData || {};\r\n const {\r\n api,\r\n processCustomHeaders,\r\n requestOptions: {\r\n body: {\r\n filter: [\r\n { terms: { category: { id: [categoryId] = '' } = {} } = {} } = {},\r\n ] = [],\r\n } = {},\r\n } = {},\r\n storeData: {\r\n currentFacility: { data: { id: facilityId } = {} } = {},\r\n reportCategory: { data: { data: categoryData = [] } = {} } = {},\r\n } = {},\r\n } = localReqOptions;\r\n const insuranceCategory = categoryData.find(category => category.description === localisable.insurance) || {};\r\n const { id: insuranceCategoryId = '' } = insuranceCategory;\r\n if (categoryId === insuranceCategoryId.toString()) {\r\n const insuranceVendor = await fetchInsuranceConfig(facilityId, api, processCustomHeaders);\r\n return resolveInsuranceVendorReports(insuranceVendor, data, restData, others, categoryId);\r\n }\r\n if (!categoryId) {\r\n const insuranceCategoryIdForAllReports = await fetchInsuranceCategory(api, processCustomHeaders);\r\n if (insuranceCategoryIdForAllReports) {\r\n const insuranceReports = await fetchInsuranceCategoryReports(insuranceCategoryIdForAllReports, api, processCustomHeaders);\r\n const insuranceReportsId = insuranceReports.map(({ id }) => id.toString());\r\n const insuranceVendor = await fetchInsuranceConfig(facilityId, api, processCustomHeaders);\r\n const { value: { description } = {} } = insuranceVendor;\r\n const filteredReports = data.filter(({ id, name }) => (insuranceReportsId.includes(id.toString()) ? name.includes(description) : true));\r\n return {\r\n data: {\r\n data: filteredReports,\r\n dataObject: toObject(filteredReports),\r\n ...restData,\r\n },\r\n ...others,\r\n totalCount: filteredReports.length,\r\n };\r\n }\r\n }\r\n return {\r\n data: {\r\n data,\r\n dataObject: toObject(data),\r\n ...restData,\r\n },\r\n ...others,\r\n };\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from 'Commons/redux/helper/RelationalDataMap';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const keys = [{ dataKey: 'unitType.id', relationalDataKey: 'unitType' }];\r\n processedData = mapRelationalData(processedData, keys);\r\n return processedData;\r\n};\r\n","import getName from 'Commons/helpers/utils/NameHelper';\r\n\r\nconst getCustomerList = (tenants, leads, conversations, conversationKey) => {\r\n const tenantObject = {};\r\n const leadObject = {};\r\n tenants.forEach(({ id, name }) => {\r\n tenantObject[id] = getName(name);\r\n });\r\n leads.forEach(({ id, name }) => {\r\n leadObject[id] = getName(name);\r\n });\r\n const customerWithConversations = [];\r\n Object.keys(conversations).forEach((conversationType) => {\r\n const conversationEntry = conversations[conversationType];\r\n const { customerType, customerId } = conversationEntry.additionalData[0];\r\n conversationEntry.additionalData[0].displayName = (customerType === 'Tenant' ? tenantObject[customerId] : leadObject[customerId]) || '';\r\n customerWithConversations.push({ [conversationKey]: conversationType, ...conversationEntry });\r\n });\r\n return customerWithConversations;\r\n};\r\n\r\nexport default getCustomerList;\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport getCustomerList from '../utils/ConversationHelper';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions) || {};\r\n const { data = {} } = processedData;\r\n if (data) {\r\n const { data: texts = {}, relationalData: { tenant: tenants = [], lead: leads = [] } = {} } = data;\r\n processedData = {\r\n ...processedData,\r\n data: { data: getCustomerList(tenants, leads, texts, 'phoneNumber') },\r\n };\r\n }\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { dateDiff } from 'Commons/helpers/utils/DateTime';\r\nimport { TIME_WINDOW } from 'Commons/config/constants/Constants';\r\nimport getCustomerList from '../utils/ConversationHelper';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions) || {};\r\n const { data = {} } = processedData;\r\n if (data) {\r\n const { data: emails = {}, relationalData: { tenant: tenants = [], lead: leads = [] } = {} } = data;\r\n const customerWithConversations = getCustomerList(tenants, leads, emails, 'emailAddress');\r\n customerWithConversations.sort((a, b) => dateDiff(b.lastContacted, a.lastContacted, TIME_WINDOW.MILLISECONDS));\r\n processedData = {\r\n ...processedData,\r\n data: { data: customerWithConversations },\r\n };\r\n }\r\n return processedData;\r\n};\r\n","/* eslint-disable no-param-reassign */\r\nconst mapIdsByAccessCode = (mappedData, accessCode, id) => {\r\n const ids = mappedData[accessCode] || [];\r\n if (!ids.includes(id)) {\r\n ids.push(id);\r\n mappedData[accessCode] = ids;\r\n }\r\n};\r\n\r\nexport { mapIdsByAccessCode };\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapIdsByAccessCode } from '../utils/AccessCodeProcessingHelper';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n const processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const { data: { data = [], ...innerData } = {}, ...outerData } = processedData;\r\n const mappedData = {};\r\n const relationalData = {};\r\n data.forEach(({ ledger = [], id }) => {\r\n ledger.forEach(({ id: ledgerId, gateAccess: { code } = {} }) => {\r\n mapIdsByAccessCode(mappedData, code, id);\r\n relationalData[ledgerId] = code;\r\n });\r\n });\r\n return { ...outerData, data: { ...innerData, data: mappedData, relationalData } };\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapIdsByAccessCode } from '../utils/AccessCodeProcessingHelper';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n const processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const { data: { data = [], ...innerData } = {}, ...outerData } = processedData;\r\n const mappedData = {};\r\n const relationalData = {};\r\n data.forEach(({ id: unitId, gateAccess: { code } = {} }) => {\r\n mapIdsByAccessCode(mappedData, code, unitId);\r\n relationalData[unitId] = code;\r\n });\r\n return { ...outerData, data: { ...innerData, data: mappedData, relationalData } };\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { dateFormatter } from 'Commons/helpers/utils/DateTime';\r\nimport getName from 'Commons/helpers/utils/NameHelper';\r\nimport { convertToNumber } from 'Commons/helpers/utils/Utils';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions) || {};\r\n const { data = {} } = processedData;\r\n if (data) {\r\n const { data: transactions = [], relationalData: { ledger: ledgers = [] } = {} } = data;\r\n const ledgerObject = {};\r\n ledgers.forEach(({ id, label, tenantName }) => {\r\n ledgerObject[id] = { label, tenantName: getName(tenantName) };\r\n });\r\n const finalData = [];\r\n transactions.forEach(({ customerId, effectiveDate, value: { amount, ...restValues }, ...rest }) => {\r\n finalData.push({\r\n customerId,\r\n ...ledgerObject[customerId],\r\n ...rest,\r\n ...restValues,\r\n effectiveDate: dateFormatter(effectiveDate),\r\n ...(amount > 0\r\n ? { paymentAmount: convertToNumber(amount).toFixed(2) }\r\n : { refundAmount: convertToNumber(-amount).toFixed(2) }),\r\n });\r\n });\r\n processedData = {\r\n ...processedData,\r\n data: { data: finalData },\r\n };\r\n }\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions) || {};\r\n const { isDataReversed } = localReqOptions;\r\n const { data: { data: textData = [], relationalData = {}, ...restData } = {} } = processedData;\r\n if (isDataReversed) {\r\n processedData = { data: { data: textData.reverse(), relationalData, ...restData } };\r\n }\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { dateDiff } from 'Commons/helpers/utils/DateTime';\r\nimport { TIME_WINDOW } from 'Commons/config/constants/Constants';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions) || {};\r\n const { data: { data: emailData = [], relationalData = {}, ...restData } = {} } = processedData;\r\n const parentMailIds = [];\r\n const emails = [];\r\n emailData.forEach((email) => {\r\n const { createdDate, comments, additionalInfo: { externalId, references = [] } = {} } = email;\r\n if (!externalId) {\r\n emails.push({ comments, emails: [email], mostRecentEmailDate: createdDate });\r\n } else if (!references.length) {\r\n parentMailIds.push(externalId);\r\n }\r\n });\r\n parentMailIds.forEach((parentMailId) => {\r\n const emailsInAThread = [];\r\n let parentMailIdSubject = '';\r\n emailData.forEach((email) => {\r\n const { comments, additionalInfo: { externalId, references = [] } = {} } = email;\r\n if (externalId === parentMailId) {\r\n parentMailIdSubject = comments;\r\n }\r\n if (references.includes(parentMailId) || externalId === parentMailId) {\r\n emailsInAThread.push(email);\r\n }\r\n });\r\n emails.push({ comments: parentMailIdSubject, emails: emailsInAThread, mostRecentEmailDate: emailsInAThread[0].createdDate });\r\n });\r\n emails.sort((a, b) => dateDiff(b.mostRecentEmailDate, a.mostRecentEmailDate, TIME_WINDOW.MILLISECONDS));\r\n processedData = { data: { data: emails, relationalData, ...restData } };\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from '../../../commons/redux/helper/RelationalDataMap';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n processedData = mapRelationalData(processedData);\r\n const { data: oldData, data: { data = [], relationalData: { user: userData = [] } = {} } = {} } = processedData;\r\n const newData = data.map((eachData) => {\r\n const { createdBy: userId } = eachData;\r\n return {\r\n ...eachData,\r\n createdBy: userId ? userData[userId] : {},\r\n };\r\n });\r\n processedData = {\r\n ...processedData,\r\n data: {\r\n ...oldData,\r\n data: newData,\r\n },\r\n };\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from '../../../commons/redux/helper/RelationalDataMap';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const keys = [\r\n { dataKey: 'tenant', relationalDataKey: 'tenant' },\r\n { dataKey: 'user', relationalDataKey: 'user' },\r\n ];\r\n processedData = mapRelationalData(processedData, keys);\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n const processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const data = [];\r\n const { data: { data: tenants = [] } = {} } = processedData;\r\n tenants.forEach((tenant) => {\r\n const { unitList = [] } = tenant || {};\r\n if (unitList.length > 1) {\r\n unitList.forEach(unit => data.push({ ...tenant, unitList: [{ ...unit }] }));\r\n } else {\r\n data.push(tenant);\r\n }\r\n });\r\n processedData.data.data = data;\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport getName from 'Commons/helpers/utils/NameHelper';\r\nimport STATUS from 'Commons/config/constants/StoreKeyStatus';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n const { error, response = {} } = apiResult;\r\n const processedData = baseProcessor(apiResult, undefined, dispatch, localReqOptions);\r\n const { data: { relationalData: { tenant: tenants = [] } = {}, data = [] } = {} } = processedData;\r\n const allTenantsMap = tenants.reduce((a, v) => ({ ...a, [v.id]: v }), {});\r\n const updatedData = data.map((document) => {\r\n const tenantData = allTenantsMap[document.tenantId];\r\n const ledgerData = tenantData && tenantData.ledger.filter(item => item.id === document.ledgerId)[0];\r\n return {\r\n ...document,\r\n ...(tenantData && tenantData.name && { tenantName: getName(tenantData.name) }),\r\n ...(ledgerData && ledgerData.label && { ledgerName: ledgerData.label }),\r\n };\r\n });\r\n processedData.data.data = updatedData;\r\n const isQueued = response.status === STATUS.QUEUED;\r\n if (!isQueued && callback) {\r\n callback(error, processedData.data);\r\n }\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { viewRentAdjustmentDataFormatter } from 'External/containers/operations/components/rentAdjustment/utils/Utils';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n const processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const { data = {} } = processedData;\r\n processedData.data = viewRentAdjustmentDataFormatter(data);\r\n return processedData;\r\n};\r\n","/* eslint-disable import/prefer-default-export */\r\nimport handleError, { handleStatusError } from 'Commons/redux/error/ErrorHandler';\r\nimport STATUS from 'Commons/config/constants/StoreKeyStatus';\r\nimport { curQueue } from 'Commons/helpers/api/Queue';\r\n\r\nlet ledgerIds = {};\r\nconst onResolvedLedgerIds = (processedDeclines, { err, response, timestamp }) => {\r\n const { data: allDeclinesData = [], ...nestedData } = processedDeclines;\r\n\r\n curQueue.remove(timestamp);\r\n const declines = [];\r\n let customTotalCount = 0;\r\n if (err) {\r\n return {\r\n data: null,\r\n status: STATUS.ERROR,\r\n };\r\n }\r\n if (response) {\r\n const { totalCount = 0, data: tenants = [] } = response;\r\n customTotalCount = totalCount;\r\n if (totalCount > 0) {\r\n tenants.forEach((tenant) => {\r\n const { ledger: ledgers = [] } = tenant;\r\n ledgers.forEach((ledger = {}) => {\r\n const { id } = ledger;\r\n if (ledgerIds[id]) {\r\n ledgerIds[id] = { tenant, ledger };\r\n }\r\n });\r\n });\r\n allDeclinesData.forEach((decline) => {\r\n const { ledgerId = '' } = decline;\r\n const { tenant = {}, ledger = {} } = ledgerIds[ledgerId] || {};\r\n if (ledgerId) {\r\n declines.push({ ...decline, tenant, ledger });\r\n } else {\r\n declines.push(decline);\r\n }\r\n }, []);\r\n }\r\n }\r\n return { totalCount: customTotalCount, data: declines, ...nestedData };\r\n};\r\n\r\nconst resolveCustomHeaders = (apiOptions, processCustomHeaders) => {\r\n if (processCustomHeaders) {\r\n const { api: processedApiOptions } = processCustomHeaders({ api: apiOptions });\r\n return processedApiOptions;\r\n }\r\n return apiOptions;\r\n};\r\n\r\nconst resolveLedgerIds = async (passedLedgerIds = {}, api, processCustomHeaders) => {\r\n let resolveLedgerResults = {};\r\n if (Object.keys(passedLedgerIds).length > 0) {\r\n const resolveLedgerIdBody = {\r\n view: 'mini_list',\r\n filter: [{ terms: { ledger: { id: Object.keys(passedLedgerIds) } } }],\r\n };\r\n\r\n const resolveLedgerApiOptions = resolveCustomHeaders({\r\n methodType: 'POST',\r\n endPoint: 'tenant/search',\r\n body: resolveLedgerIdBody,\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n }, processCustomHeaders);\r\n resolveLedgerResults = await api({ api: resolveLedgerApiOptions });\r\n }\r\n return resolveLedgerResults;\r\n};\r\n\r\nconst processDeclines = async (data, api, processCustomHeaders) => {\r\n /* Could have combined the processing of ledgerIds and unit types in one loop, since we already\r\n have a util to map relational data properly, it is being used here. Once we start getting the\r\n tenant data in relational data, traversing to get ledger ids will go away. Also, remove this\r\n comment once start getting tenant data in relational data */\r\n\r\n const { data: allDeclines = [], success, totalCount, ...nestedData } = data;\r\n if (success) {\r\n ledgerIds = allDeclines.reduce((result, { ledgerId }) => {\r\n if (ledgerId) {\r\n return {\r\n ...result,\r\n [ledgerId]: {},\r\n };\r\n }\r\n return result;\r\n }, {});\r\n }\r\n\r\n if (!Object.keys(ledgerIds).length) {\r\n return { data: allDeclines, success, ...nestedData };\r\n }\r\n\r\n const tenantData = await resolveLedgerIds(ledgerIds, api, processCustomHeaders);\r\n const declinesData = onResolvedLedgerIds(data, tenantData);\r\n declinesData.totalCount = totalCount;\r\n\r\n return declinesData;\r\n};\r\n\r\n\r\n// eslint-disable-next-line consistent-return\r\nconst automaticCreditCardDeclinesPostProcessor = async (apiResult, callback, dispatch, localReqOptions) => {\r\n const { api, processCustomHeaders } = localReqOptions;\r\n const { error: err, response, timestamp } = apiResult;\r\n curQueue.remove(timestamp);\r\n if (err) {\r\n handleError(err, callback);\r\n return handleStatusError(err, dispatch, localReqOptions);\r\n }\r\n const isQueued = response.status === STATUS.QUEUED;\r\n if (!isQueued && callback) {\r\n callback(err, response);\r\n }\r\n if (isQueued) {\r\n return {\r\n data: null,\r\n status: STATUS.LOADING,\r\n };\r\n }\r\n // custom process logic\r\n const declines = await processDeclines(response, api, processCustomHeaders);\r\n const { data = [], ...restDeclines } = declines;\r\n return {\r\n data: {\r\n ...response,\r\n data,\r\n ...restDeclines,\r\n },\r\n status: STATUS.LOADED,\r\n };\r\n};\r\n\r\nexport default automaticCreditCardDeclinesPostProcessor;\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport getName from 'Commons/helpers/utils/NameHelper';\r\nimport { WALK_IN_CUSTOMER_NAME, WALK_IN_CUSTOMER_ID } from 'External/containers/pointOfSale/config/Constants';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions) || {};\r\n const { data = {} } = processedData;\r\n if (data) {\r\n const { data: failedReturns = [], relationalData: { tenant = [], user = [] } = {}, ...restData } = data;\r\n const tenantAndLedgerData = {};\r\n const userData = {};\r\n tenant.forEach((tenantData) => {\r\n const { ledger, name } = tenantData;\r\n ledger.forEach((eachLedger) => {\r\n const { id, label } = eachLedger;\r\n tenantAndLedgerData[id] = {\r\n tenantName: getName(name),\r\n ledgerName: label,\r\n tenant: tenantData,\r\n ledger: eachLedger,\r\n };\r\n });\r\n });\r\n user.forEach(({ id, firstName, lastName }) => {\r\n userData[id] = getName({ firstName, lastName });\r\n });\r\n const failedReturnsData = failedReturns.map((failedReturnsItem) => {\r\n const { customerId: ledgerId, createdBy: { id }, ...restFailedReturnsItem } = failedReturnsItem;\r\n return {\r\n ...restFailedReturnsItem,\r\n tenantName: WALK_IN_CUSTOMER_NAME,\r\n ledger: { id: WALK_IN_CUSTOMER_ID },\r\n tenant: { id: WALK_IN_CUSTOMER_ID, name: { lastName: WALK_IN_CUSTOMER_NAME } },\r\n ...tenantAndLedgerData[ledgerId],\r\n user: userData[id],\r\n customerId: ledgerId || WALK_IN_CUSTOMER_ID,\r\n };\r\n });\r\n processedData = {\r\n ...processedData,\r\n data: { data: failedReturnsData, ...restData },\r\n };\r\n }\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from 'Commons/redux/helper/RelationalDataMap';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const keys = [{ dataKey: 'lateEventConfigId', relationalDataKey: 'lateEvent' }];\r\n processedData = mapRelationalData(processedData, keys);\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from '../../../commons/redux/helper/RelationalDataMap';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const keys = [\r\n { dataKey: 'tenant', relationalDataKey: 'tenant' },\r\n ];\r\n processedData = mapRelationalData(processedData, keys);\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from 'Commons/redux/helper/RelationalDataMap';\r\nimport { CUSTOMER_TYPE } from 'Commons/components/business/filtersAndSorts/components/waitingListFilter/config/Constants';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const { data: { relationalData: { tenant: tenants = [] } = {} } = {} } = processedData;\r\n const tenantData = {};\r\n const ledgerData = {};\r\n tenants.forEach((tenant) => {\r\n const { ledger: ledgers = [] } = tenant;\r\n ledgers.forEach(({ id: ledgerId, ...ledger }) => {\r\n tenantData[ledgerId] = tenant;\r\n ledgerData[ledgerId] = { id: ledgerId, ...ledger };\r\n });\r\n });\r\n const keys = [{ dataKey: 'unitTypeId', relationalDataKey: 'unitType' }];\r\n processedData = mapRelationalData(processedData, keys);\r\n const { data: { data = {}, relationalData: { lead = {} } = {} } = {} } = processedData;\r\n const newData = data.map((eachData) => {\r\n const { customerId, customerType } = eachData;\r\n return {\r\n ...eachData,\r\n ...(customerType === CUSTOMER_TYPE.Tenant.value ? {\r\n tenant: tenantData[customerId],\r\n ledger: ledgerData[customerId],\r\n }\r\n : { lead: lead[customerId] }),\r\n };\r\n });\r\n processedData.data.data = newData;\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from 'Commons/redux/helper/RelationalDataMap';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const { data: { relationalData: { tenant: tenants = {} } } = {} } = processedData;\r\n const tenantData = {};\r\n const ledgerData = {};\r\n tenants.forEach((tenant) => {\r\n const { ledger: ledgers = [] } = tenant;\r\n ledgers.forEach(({ id: ledgerId, ...ledger }) => {\r\n tenantData[ledgerId] = tenant;\r\n ledgerData[ledgerId] = { id: ledgerId, ...ledger };\r\n });\r\n });\r\n const keys = [{ dataKey: 'unit.id', relationalDataKey: 'unit' }];\r\n processedData = mapRelationalData(processedData, keys);\r\n const { data: { data = {}, relationalData: { unitType = {} } = {} } } = processedData;\r\n const newData = data.map((eachData) => {\r\n const { ledger: { id: ledgerId = '' } = {}, value: { unitTypeId = '' } = {} } = eachData;\r\n const tenant = tenantData[ledgerId];\r\n return {\r\n ...eachData,\r\n tenant,\r\n email: tenant.email || {},\r\n phone: tenant.phone || {},\r\n ledger: ledgerData[ledgerId],\r\n unitType: unitType[unitTypeId],\r\n };\r\n });\r\n processedData.data.data = newData;\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from 'Commons/redux/helper/RelationalDataMap';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const { data: { relationalData: { tenant: tenants = {} } } = {} } = processedData;\r\n const tenantData = {};\r\n const ledgerData = {};\r\n tenants.forEach((tenant) => {\r\n const { ledger: ledgers = [] } = tenant;\r\n ledgers.forEach(({ id: ledgerId, ...ledger }) => {\r\n tenantData[ledgerId] = tenant;\r\n ledgerData[ledgerId] = { id: ledgerId, ...ledger };\r\n });\r\n });\r\n const keys = [{ dataKey: 'paymentMethodId', relationalDataKey: 'paymentMethod' }];\r\n processedData = mapRelationalData(processedData, keys);\r\n const { data: { data = {} } } = processedData;\r\n const newData = data.map((eachData) => {\r\n const { customerId } = eachData;\r\n const tenant = tenantData[customerId];\r\n return {\r\n ...eachData,\r\n tenant,\r\n email: tenant.email || {},\r\n phone: tenant.phone || {},\r\n ledger: ledgerData[customerId],\r\n };\r\n });\r\n processedData.data.data = newData;\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from '../../../commons/redux/helper/RelationalDataMap';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const keys = [{ dataKey: 'tenant', relationalDataKey: 'tenant' }, { dataKey: 'unit', relationalDataKey: 'unit' }];\r\n processedData = mapRelationalData(processedData, keys);\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n const processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const { data: { data: { Letter: { data = [] } = {} } = {}, totalCount } = {} } = processedData;\r\n const modifiedData = {\r\n ...processedData,\r\n data: {\r\n totalCount,\r\n data,\r\n },\r\n };\r\n return modifiedData;\r\n};\r\n","import { mapRelationalData } from 'Commons/redux/helper/RelationalDataMap';\r\nimport baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const keys = [\r\n { dataKey: 'tenantId', relationalDataKey: 'tenant' },\r\n ];\r\n processedData = mapRelationalData(processedData, keys);\r\n return processedData;\r\n};\r\n","import STATUS from 'Commons/config/constants/StoreKeyStatus';\r\nimport baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n const processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const data = [];\r\n const { data: allProcessedData, data: { data: tenants = [], totalCount: resTotalCount = 0 } = {} } = processedData;\r\n\r\n const {\r\n storeData:\r\n {\r\n ccAboutToExpire:\r\n { data: { actualRows = 0, totalCount = 0 } = {} } = {},\r\n } = {},\r\n } = localReqOptions || {};\r\n let newTotalCount = totalCount || resTotalCount;\r\n\r\n tenants.forEach((tenant) => {\r\n const { ledger = [] } = tenant || {};\r\n if (ledger.length > 1) {\r\n ledger.forEach((ledgerData) => {\r\n const { balance = 0 } = ledgerData;\r\n data.push({ ...tenant, ledger: [ledgerData], balance });\r\n });\r\n } else {\r\n const [{ balance = 0 }] = ledger;\r\n data.push({ ...tenant, balance, ledger });\r\n }\r\n newTotalCount += (ledger.length - 1);\r\n });\r\n processedData.data.data = data;\r\n return {\r\n data: {\r\n ...allProcessedData,\r\n data,\r\n totalCount: newTotalCount,\r\n actualRows: actualRows + tenants.length,\r\n },\r\n status: STATUS.LOADED,\r\n };\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from 'Commons/redux/helper/RelationalDataMap';\r\nimport { isObjWithKeys } from 'Commons/helpers/utils/DataHelpers';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const { data: { relationalData: { tenant = [], unit = [] } = {} } = {} } = processedData;\r\n const ledgerMap = {};\r\n\r\n tenant.forEach((eachTenant) => {\r\n const { ledger = [] } = eachTenant;\r\n ledger.forEach((eachLedger) => {\r\n const { id } = eachLedger;\r\n ledgerMap[id] = { ...eachLedger, tenant: eachTenant };\r\n });\r\n });\r\n\r\n unit.forEach((eachUnit) => {\r\n const { ledger: { id: ledgerId } = {} } = eachUnit;\r\n const { [ledgerId]: { units = [], ...ledgerData } = {} } = ledgerMap;\r\n ledgerMap[ledgerId] = { ...ledgerData, units: [...units, eachUnit] };\r\n });\r\n\r\n if (isObjWithKeys(ledgerMap)) processedData.data.relationalData.ledger = ledgerMap;\r\n const ledgerDataKeys = [{ dataKey: 'ledgerId', relationalDataKey: 'ledger' }];\r\n processedData = mapRelationalData(processedData, ledgerDataKeys, true);\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n const processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const {\r\n data: {\r\n data = [],\r\n relationalData: { Is_Delinquent: { tenants: tenantsDelinquentStatus = {} } = {} } = {},\r\n } = {},\r\n } = processedData;\r\n processedData.data.data = data.map((eachData) => {\r\n const { id } = eachData;\r\n const { [id]: { isDelinquent = false } = {} } = tenantsDelinquentStatus;\r\n return {\r\n ...eachData,\r\n isDelinquent,\r\n };\r\n });\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\n\r\nconst emailAuditFormatCustomerId = (data) => {\r\n const { data: resultData = [], relationalData: { tenant: tenantData = [] } = {} } = data;\r\n const getTenantNameFromCustomerId = (customerId) => {\r\n const tenant = tenantData.find(({ id }) => id === customerId);\r\n return tenant ? { ...tenant.name, id: tenant.id } : '';\r\n };\r\n resultData.map((item) => {\r\n // eslint-disable-next-line no-param-reassign\r\n item.tenantName = getTenantNameFromCustomerId(item.customerId);\r\n return item;\r\n });\r\n return resultData;\r\n};\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n const processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const { data = {} } = processedData;\r\n processedData.data.data = emailAuditFormatCustomerId(data);\r\n return processedData;\r\n};\r\n","import { deepCopy } from 'Commons/helpers/utils/DeepCopy';\r\nimport baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n const processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const {\r\n data: {\r\n data: {\r\n Reservation_Count_By_Unit_Type: reservedUnits = {},\r\n Vacant_Units_Count_By_Unit_Type: vacantUnits = {},\r\n } = {},\r\n } = {},\r\n } = processedData;\r\n let restReservedUnits = deepCopy(reservedUnits);\r\n let overbookedCounts = Object.keys(vacantUnits).reduce((acc, unitTypeId) => {\r\n const { [unitTypeId]: { totalCount: vacantCount = 0 } = {} } = vacantUnits;\r\n const { [unitTypeId]: { totalCount: reservedCount = 0 } = {}, ...rest } = restReservedUnits;\r\n restReservedUnits = { ...rest };\r\n return {\r\n ...acc,\r\n [unitTypeId]: { totalCount: reservedCount - vacantCount },\r\n };\r\n }, {});\r\n\r\n overbookedCounts = { ...overbookedCounts, ...restReservedUnits };\r\n\r\n processedData.data.data = overbookedCounts;\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from 'Commons/redux/helper/RelationalDataMap';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const keys = [\r\n { dataKey: 'unitId', relationalDataKey: 'unit' },\r\n ];\r\n processedData = mapRelationalData(processedData, keys);\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\n\r\nconst mapTenantData = (processedUnits, tenantData) => {\r\n const { data: { data: allUnitsData = [], ...nestedData } = {} } = processedUnits;\r\n const tenantLookup = {};\r\n tenantData.forEach((tenant) => {\r\n tenant.ledger.forEach((ledger) => {\r\n tenantLookup[ledger.id] = tenant;\r\n });\r\n });\r\n\r\n const unitDataWithTenants = allUnitsData.map((unit) => {\r\n const { ledger: { id } = {} } = unit || {};\r\n const tenant = id && tenantLookup[id];\r\n const updatedUnit = { ...unit };\r\n if (tenant) updatedUnit.tenant = tenant;\r\n if (tenant && tenant.phone) updatedUnit.phone = tenant.phone;\r\n if (tenant && tenant.email) updatedUnit.email = tenant.email;\r\n return updatedUnit;\r\n });\r\n return { data: unitDataWithTenants, ...nestedData };\r\n};\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const {\r\n data: { relationalData: { tenant: unMappedTenantData = [] } = {} } = {},\r\n ...outerData\r\n } = processedData;\r\n\r\n processedData = mapTenantData(processedData, unMappedTenantData);\r\n\r\n return {\r\n ...outerData,\r\n data: { ...processedData },\r\n };\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\n\r\nconst mapUnitData = (processedUnits, unitData) => {\r\n const { data: { data: tenantData = [], ...nestedData } = {} } = processedUnits;\r\n const ledgerList = tenantData.flatMap(tenant => tenant.ledger.map((eachLedger) => {\r\n const newTenant = { ...tenant };\r\n newTenant.ledger = [eachLedger];\r\n newTenant.unitList = unitData\r\n .filter(unit => unit.ledger.id === eachLedger.id)\r\n .map(unit => ({ id: unit.id, label: unit.label }));\r\n return newTenant;\r\n }));\r\n return { data: ledgerList, ...nestedData };\r\n};\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const {\r\n storeData:\r\n {\r\n tenantsWithInvalidAccessCodes:\r\n { data: { actualRows = 0 } = {} } = {},\r\n } = {},\r\n } = localReqOptions || {};\r\n\r\n const {\r\n data: { relationalData: { Unit: unMappedUnitData = [] } = {}, data: unMappedTenantData, totalCount: initialCount = 0 } = {},\r\n ...outerData\r\n } = processedData;\r\n\r\n processedData = mapUnitData(processedData, unMappedUnitData);\r\n\r\n const totalCount = unMappedTenantData.length < 20 ? initialCount : 10000;\r\n return {\r\n ...outerData,\r\n data: { ...processedData, totalCount, actualRows: actualRows + unMappedTenantData.length },\r\n };\r\n};\r\n","import estimatePostProcessor from 'External/redux/postProcessors/estimatePostProcessor';\r\nimport unitPostProcessor from './unitPostProcessor';\r\nimport { configPostProcessor } from './configPostProcessor';\r\nimport configSubPostProcessor from './configSubPostProcessor';\r\nimport reservationPostProcessor from './reservationPostProcessor';\r\nimport inventoryListPostProcessor from './inventoryListPostProcessor';\r\nimport unpaidArPostProcessor from './unpaidArPostProcessor';\r\nimport contactLogPostProcessor from './contactLogPostProcessor';\r\nimport arPostProcessor from './arPostProcessor';\r\nimport facilityPostProcessor from './facilityPostProcessor';\r\nimport { manualLateEventPostProcessor } from './manualLateEventPostProcessor';\r\nimport maintenanceOperationPostProcessor from './maintenanceOperationPostProcessor';\r\nimport unitBevMiniPostProcessor from './unitBevMiniPostProcessor';\r\nimport leadPostProcessor from './leadPostProcessor';\r\nimport { delinquencyPostProcessor } from './delinquencyPostProcessor';\r\nimport { configSDPostProcessor } from './configSDPostProcessor';\r\nimport preRequisitePostProcessor from './preRequisitePostProcessor';\r\nimport reportsPostProcessor from './reportsPostProcessor';\r\nimport unitBevPostProcessor from './unitBevPostProcessor';\r\nimport timezonePostProcessor from './timezonePostProcessor';\r\nimport textConversationPostProcessor from './textConversationPostProcessor';\r\nimport emailConversationPostProcessor from './emailConversationPostProcessor';\r\nimport ledgerAccessCodePostProcessor from './ledgerAccessCodePostProcessor';\r\nimport unitAccessCodePostProcessor from './unitAccessCodePostProcessor';\r\nimport achTransactionPostProcessor from './achTransactionPostProcessor';\r\nimport textPostProcessor from './textPostProcessor';\r\nimport emailPostProcessor from './emailPostProcessor';\r\nimport rentAdjustmentPostProcessor from './rentAdjustmentPostProcessor';\r\nimport rateHistoryPostProcessor from './rateHistoryPostProcessor';\r\nimport tenantsForDocumentPostProcessor from './tenantsForDocumentPostProcessor';\r\nimport reprintDataPostProcessor from './reprintDataPostProcessor';\r\nimport viewRentAdjustmentGridPostProcessor from './viewRentAdjustmentGridPostProcessor';\r\nimport automaticCreditCardDeclinesPostProcessor from './automaticCreditCardDeclinesPostProcessor';\r\nimport failedReturnsPostProcessor from './failedReturnsPostProcessor';\r\nimport lateEventsPostProcessor from './lateEventsPostProcessor';\r\nimport tenantEmailChangesPostProcessor from './tenantEmailChangesPostProcessor';\r\nimport waitingListPostProcessor from './waitingListPostProcessor';\r\nimport moveInSearchPostProcessor from './moveInSearchPostProcessor';\r\nimport paymentPostProcessor from './paymentPostProcessor';\r\nimport vehicleDataPostProcessor from './vehicleDataPostProcessor';\r\nimport sampleLetterPostProcessor from './sampleLetterPostProcessor';\r\nimport printFailuresPostProcessor from './printFailuresPostProcessor';\r\nimport ccAboutToExpirePostProcessor from './ccAboutToExpirePostProcessor';\r\nimport pendingInvoiceDeliveryPostProcessor from './pendingInvoiceDeliveryPostProcessor';\r\nimport tenantListPostProcessor from './tenantListPostProcessor';\r\nimport emailAuditPostProcessor from './emailAuditPostProcessor';\r\nimport overbookUnitsCountPostProcessor from './overbookUnitsCountPostProcessor';\r\nimport savedDocumentPostProcessor from './savedDocumentPostProcessor';\r\nimport unitsWithInvalidAccessCodesPostProcessor from './unitsWithInvalidAccessCodesPostProcessor';\r\nimport tenantsWithInvalidAccessCodesPostProcessor from './tenantsWithInvalidAccessCodesPostProcessor';\r\n\r\nconst tenantPhoneChangesPostProcessor = tenantEmailChangesPostProcessor;\r\nconst tenantAlternateContactChangesPostProcessor = tenantEmailChangesPostProcessor;\r\nconst tenantAddressChangesPostProcessor = tenantEmailChangesPostProcessor;\r\n\r\nexport {\r\n reportsPostProcessor,\r\n configPostProcessor,\r\n unitPostProcessor,\r\n configSubPostProcessor,\r\n reservationPostProcessor,\r\n inventoryListPostProcessor,\r\n unpaidArPostProcessor,\r\n contactLogPostProcessor,\r\n arPostProcessor,\r\n facilityPostProcessor,\r\n manualLateEventPostProcessor,\r\n maintenanceOperationPostProcessor,\r\n unitBevMiniPostProcessor,\r\n leadPostProcessor,\r\n estimatePostProcessor,\r\n delinquencyPostProcessor,\r\n configSDPostProcessor,\r\n preRequisitePostProcessor,\r\n unitBevPostProcessor,\r\n timezonePostProcessor,\r\n textConversationPostProcessor,\r\n emailConversationPostProcessor,\r\n ledgerAccessCodePostProcessor,\r\n unitAccessCodePostProcessor,\r\n achTransactionPostProcessor,\r\n textPostProcessor,\r\n emailPostProcessor,\r\n rentAdjustmentPostProcessor,\r\n rateHistoryPostProcessor,\r\n tenantsForDocumentPostProcessor,\r\n reprintDataPostProcessor,\r\n viewRentAdjustmentGridPostProcessor,\r\n automaticCreditCardDeclinesPostProcessor,\r\n failedReturnsPostProcessor,\r\n lateEventsPostProcessor,\r\n tenantEmailChangesPostProcessor,\r\n tenantAddressChangesPostProcessor,\r\n tenantPhoneChangesPostProcessor,\r\n tenantAlternateContactChangesPostProcessor,\r\n waitingListPostProcessor,\r\n moveInSearchPostProcessor,\r\n paymentPostProcessor,\r\n vehicleDataPostProcessor,\r\n sampleLetterPostProcessor,\r\n printFailuresPostProcessor,\r\n ccAboutToExpirePostProcessor,\r\n pendingInvoiceDeliveryPostProcessor,\r\n tenantListPostProcessor,\r\n emailAuditPostProcessor,\r\n overbookUnitsCountPostProcessor,\r\n savedDocumentPostProcessor,\r\n unitsWithInvalidAccessCodesPostProcessor,\r\n tenantsWithInvalidAccessCodesPostProcessor,\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from 'Commons/redux/helper/RelationalDataMap';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const {\r\n data: {\r\n relationalData = {},\r\n relationalData: { facility = [], businessGroup = [] } = {}, ...restData\r\n } = {}, ...restProcessedData\r\n } = processedData;\r\n\r\n let processedFacility = { data: { data: facility, relationalData: { businessGroup } } };\r\n if (businessGroup.length) {\r\n processedFacility = mapRelationalData(\r\n processedFacility, [{ dataKey: 'businessGroup', relationalDataKey: 'businessGroup' }],\r\n );\r\n }\r\n if (facility.length) {\r\n const { data: { data: facilityData = [] } = {} } = processedFacility;\r\n processedData = {\r\n ...restProcessedData,\r\n data: { ...restData, relationalData: { ...relationalData, facility: facilityData } },\r\n };\r\n const keys = [{ dataKey: 'facility', relationalDataKey: 'facility' }];\r\n processedData = mapRelationalData(processedData, keys);\r\n }\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { SETUP_STATUS } from 'Commons/config/constants/Constants';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n const processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const { data: { relationalData, ...data } = {}, data: { data: facilityData = [] } = {} } = processedData;\r\n const { missingConfigs = {}, facilityGeneral = {} } = relationalData || {};\r\n const processedFacilityData = facilityData.map(({ id, ...facility }) => ({\r\n id,\r\n ...facility,\r\n setupStatus: missingConfigs[id].length ? SETUP_STATUS.INCOMPLETE : SETUP_STATUS.COMPLETE,\r\n ...facilityGeneral[id] || {},\r\n }));\r\n return {\r\n ...processedData,\r\n data: {\r\n ...data,\r\n relationalData,\r\n data: processedFacilityData,\r\n },\r\n };\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { SETUP_STATUS } from 'Commons/config/constants/Constants';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n const processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const { data: { relationalData, ...data } = {}, data: { data: facilityData = [] } = {} } = processedData;\r\n const { missingConfigs = {}, facilityGeneral = {} } = relationalData || {};\r\n const processedFacilityData = facilityData.map(({ id, ...facility }) => ({\r\n id,\r\n ...facility,\r\n setupStatus: missingConfigs[id].length ? SETUP_STATUS.INCOMPLETE : SETUP_STATUS.COMPLETE,\r\n ...facilityGeneral[id] || {},\r\n }));\r\n return {\r\n ...processedData,\r\n data: {\r\n ...data,\r\n relationalData,\r\n data: processedFacilityData,\r\n },\r\n };\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from 'Commons/redux/helper/RelationalDataMap';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const keys = [\r\n { dataKey: 'tenantId', relationalDataKey: 'tenant' },\r\n ];\r\n processedData = mapRelationalData(processedData, keys);\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { flattenObject } from 'Commons/helpers/utils/DataHelpers';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n const processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const {\r\n data: {\r\n data: {\r\n permissions: [{ permission: { roleId } = {} } = {}] = [],\r\n roles = [],\r\n } = {},\r\n relationalData: [user] = [],\r\n ...data\r\n },\r\n } = processedData || {};\r\n\r\n // converting roles to key, value pair where key is the id of role\r\n const processedRoles = roles.reduce((acc, { id: profileId, permission }) => ({\r\n ...acc,\r\n [profileId]: permission ? flattenObject(permission) : {},\r\n }), {});\r\n\r\n return {\r\n ...processedData,\r\n data: {\r\n ...data,\r\n data: processedRoles,\r\n relationalData: {\r\n user: {\r\n ...user,\r\n roleId,\r\n },\r\n },\r\n totalCount: roles.length,\r\n },\r\n };\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from 'Commons/redux/helper/RelationalDataMap';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n const { data: { relationalData: { tenant = [] } = {} } = {} } = processedData;\r\n const ledgerMap = {};\r\n tenant.forEach((eachTenant) => {\r\n const { ledger = [] } = eachTenant;\r\n ledger.forEach((eachLedger) => {\r\n const { id } = eachLedger;\r\n ledgerMap[id] = { ...eachLedger, tenant: eachTenant };\r\n });\r\n });\r\n\r\n const keys = [\r\n { dataKey: 'lateEventConfigId', relationalDataKey: 'lateEvent' },\r\n { dataKey: 'unitId', relationalDataKey: 'unit' },\r\n ];\r\n processedData = mapRelationalData(processedData, keys);\r\n\r\n processedData.data.relationalData.ledger = ledgerMap;\r\n const ledgerDataKeys = [{ dataKey: 'ledgerId', relationalDataKey: 'ledger' }];\r\n processedData = mapRelationalData(processedData, ledgerDataKeys, true);\r\n return processedData;\r\n};\r\n","import STATUS from 'Commons/config/constants/StoreKeyStatus';\r\nimport baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from '../../../commons/redux/helper/RelationalDataMap';\r\n\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n const { error, response = {} } = apiResult;\r\n let processedData = baseProcessor(apiResult, undefined, dispatch, localReqOptions);\r\n const keys = [{ dataKey: 'businessGroup', relationalDataKey: 'businessGroup' }];\r\n processedData = mapRelationalData(processedData, keys);\r\n const isQueued = response.status === STATUS.QUEUED;\r\n if (!isQueued && callback) {\r\n callback(error, processedData.data);\r\n }\r\n return processedData;\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { mapRelationalData } from 'Commons/redux/helper/RelationalDataMap';\r\n\r\nexport default (apiResult, callback, dispatch, localReqOptions) => {\r\n let processedData = baseProcessor(apiResult, callback, dispatch, localReqOptions);\r\n\r\n const {\r\n data: {\r\n data: processedItems = [],\r\n relationalData: {\r\n tenant = [],\r\n tenant: isTenantRelationalData,\r\n unit: isUnitRelationalData,\r\n unit: unitRelationalData = [],\r\n } = {},\r\n } = {},\r\n } = processedData;\r\n const ledgerMap = tenant.reduce((accumulator, { ledger = [], ...eachTenant }) => {\r\n ledger.forEach(({ id, ...eachLedger }) => {\r\n accumulator[id] = { ...eachLedger, id, tenant: eachTenant };\r\n });\r\n return accumulator;\r\n }, {});\r\n\r\n if (processedItems.length) {\r\n const modifiedData = processedItems.map((obj) => {\r\n const modifiedObj = obj;\r\n const { metaInfo: { requestEndpoint = '', units = [], tenantId, unitId, ledgerId } = {}, changeType, categoryId } = obj;\r\n if (tenantId || unitId || ledgerId || units.length) {\r\n ['tenantId', 'unitId', 'ledgerId', 'units'].forEach((key) => {\r\n if (key === 'units') {\r\n const unitDetails = units.map((eachUnitId) => {\r\n // eslint-disable-next-line radix\r\n const [{ label: unitLabel = 'Default Label' } = {}] = unitRelationalData.filter(({ id }) => id === parseInt(eachUnitId)) || [{}];\r\n return { id: eachUnitId, label: unitLabel };\r\n });\r\n modifiedObj[key] = unitDetails;\r\n } else if (obj.metaInfo[key]) modifiedObj[key] = obj.metaInfo[key];\r\n });\r\n } else {\r\n const requestEndpointParts = requestEndpoint.split('/');\r\n const entityId = requestEndpointParts[requestEndpointParts.length - 1]; // tenant/unit id\r\n let entityType;\r\n if (changeType === 'Ledger_Gate_Access') {\r\n entityType = 'tenantId';\r\n modifiedObj.ledgerId = categoryId;\r\n } else if (changeType === 'Unit_Gate_Access') {\r\n entityType = 'unitId';\r\n }\r\n if (entityType) modifiedObj[entityType] = entityId;\r\n }\r\n return modifiedObj;\r\n });\r\n processedData.data.data = modifiedData;\r\n }\r\n processedData.data.relationalData.ledger = ledgerMap;\r\n const keys = [\r\n { dataKey: 'createdBy.id', relationalDataKey: 'user' },\r\n { dataKey: 'ledgerId', relationalDataKey: 'ledger' },\r\n ...(isTenantRelationalData ? [{ dataKey: 'tenantId', relationalDataKey: 'tenant' }] : []),\r\n ...(isUnitRelationalData ? [{ dataKey: 'unitId', relationalDataKey: 'unit' }] : []),\r\n ];\r\n processedData = mapRelationalData(processedData, keys);\r\n return processedData;\r\n};\r\n","import ReactDOM from 'react-dom';\r\nimport * as Sentry from '@sentry/react';\r\nimport { isStaging } from 'Commons/helpers/utils/Utils';\r\nimport { SENTRY_CONFIG } from 'Commons/config/constants/ErrorTracking';\r\nimport App from './App';\r\n// import registerServiceWorker from './registerServiceWorker';\r\n\r\nif (isStaging()) {\r\n Sentry.init(SENTRY_CONFIG);\r\n}\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n// registerServiceWorker();\r\n","const enums = {\r\n searchType: [\r\n 'Delinquency_Overview',\r\n 'Late_Events',\r\n 'Lockout_Events',\r\n 'Scheduled_Events',\r\n 'Wrong_Entries',\r\n ],\r\n lockoutEventType: ['Unit_Overlock', 'Gate_Lockout', 'Tenant_Portal_Lockout'],\r\n lateType: ['One_Time', 'Recurring', 'Dollar_Per_Day'],\r\n};\r\nexport default enums;\r\n","import { labelFormatter, mapEnum, createEnumMap } from 'Commons/helpers/utils/Formatter';\r\nimport { DELINQUENCY_STATUS, LOCKOUT_TYPE, STATUS } from 'Commons/config/constants/Constants';\r\nimport enums from './Enums';\r\n\r\nconst SEARCH_TYPE = mapEnum(enums.searchType);\r\nconst LATE_TYPE = mapEnum(enums.lateType);\r\nconst LATE_EVENT_TYPE = createEnumMap(['Late', 'Lockout']);\r\n\r\nconst ALLOWED_LATE_EVENT_STATUS = [\r\n DELINQUENCY_STATUS.Active.value,\r\n DELINQUENCY_STATUS.Processed.value,\r\n DELINQUENCY_STATUS.Skipped.value,\r\n DELINQUENCY_STATUS.Waived.value,\r\n];\r\nconst ALL_LOCKOUT_EVENT_TYPES = [\r\n LOCKOUT_TYPE.Unit_Overlock.value,\r\n LOCKOUT_TYPE.Gate_Lockout.value,\r\n LOCKOUT_TYPE.Tenant_Portal_Lockout.value,\r\n];\r\n\r\nconst ALLOWED_LATE_EVENT_TYPE = [\r\n LATE_TYPE.One_Time.value,\r\n LATE_TYPE.Recurring.value,\r\n LATE_TYPE.Dollar_Per_Day.value,\r\n];\r\n\r\n// Default Filters\r\nconst DELINQUENCY_TRACKING_OVERVIEW_DEFAULT_FILTER = { terms: { anniversary: ['true', 'false'] } };\r\nconst DELINQUENCY_TRACKING_LATE_EVENTS_DEFAULT_FILTER = {\r\n terms: {\r\n status: ALLOWED_LATE_EVENT_STATUS,\r\n type: ALLOWED_LATE_EVENT_TYPE,\r\n },\r\n};\r\nconst DELINQUENCY_TRACKING_LOCKOUT_EVENTS_DEFAULT_FILTER = {\r\n terms: {\r\n status: [DELINQUENCY_STATUS.Active.value, DELINQUENCY_STATUS.Processed.value],\r\n type: ALL_LOCKOUT_EVENT_TYPES,\r\n },\r\n};\r\nconst DELINQUENCY_TRACKING_SCHEDULED_EVENTS_DEFAULT_FILTER = {\r\n terms: {\r\n status: [STATUS.Active.value,\r\n STATUS.Inactive.value],\r\n },\r\n};\r\nconst DELINQUENCY_TRACKING_WRONG_ENTRY_DEFAULT_FILTER = { terms: { events: ALL_LOCKOUT_EVENT_TYPES } };\r\n\r\n// stores\r\nconst DELINQUENCY_TRACKING_OVERVIEW_STORE = 'delinquencyTrackingOverview';\r\nconst DELINQUENCY_TRACKING_LATE_EVENT_STORE = 'delinquencyTrackingLateEvent';\r\nconst DELINQUENCY_TRACKING_LOCKOUT_EVENT_STORE = 'delinquencyTrackingLockoutEvent';\r\nconst DELINQUENCY_TRACKING_SCHEDULED_EVENT_STORE = 'delinquencyTrackingScheduledEvent';\r\nconst DELINQUENCY_TRACKING_WRONG_ENTRY_STORE = 'delinquencyTrackingWrongEntries';\r\n\r\nconst getDelinquencyTrackingStoreKey = (delinquencyType) => {\r\n let storeKey;\r\n switch (delinquencyType) {\r\n case (SEARCH_TYPE.Late_Events.value):\r\n storeKey = DELINQUENCY_TRACKING_LATE_EVENT_STORE;\r\n break;\r\n case (SEARCH_TYPE.Lockout_Events.value):\r\n storeKey = DELINQUENCY_TRACKING_LOCKOUT_EVENT_STORE;\r\n break;\r\n case (SEARCH_TYPE.Scheduled_Events.value):\r\n storeKey = DELINQUENCY_TRACKING_SCHEDULED_EVENT_STORE;\r\n break;\r\n case (SEARCH_TYPE.Wrong_Entries.value):\r\n storeKey = DELINQUENCY_TRACKING_WRONG_ENTRY_STORE;\r\n break;\r\n default:\r\n storeKey = DELINQUENCY_TRACKING_OVERVIEW_STORE;\r\n break;\r\n }\r\n return storeKey;\r\n};\r\n\r\n\r\nconst getHeaderText = (delinquencySearchType = '', facilityName) => {\r\n let headerText = labelFormatter(delinquencySearchType);\r\n if (facilityName) headerText = headerText.concat(` - ${facilityName}`);\r\n return headerText;\r\n};\r\n\r\n\r\nconst TABLE_WIDTH = 1020;\r\nconst TABLE_LEFT_AND_RIGHT_PADDING = 0;\r\n\r\nexport {\r\n SEARCH_TYPE, LATE_TYPE, getDelinquencyTrackingStoreKey, getHeaderText,\r\n DELINQUENCY_TRACKING_OVERVIEW_STORE, DELINQUENCY_TRACKING_LATE_EVENT_STORE, DELINQUENCY_TRACKING_LOCKOUT_EVENT_STORE,\r\n DELINQUENCY_TRACKING_SCHEDULED_EVENT_STORE, DELINQUENCY_TRACKING_WRONG_ENTRY_STORE,\r\n DELINQUENCY_TRACKING_OVERVIEW_DEFAULT_FILTER, DELINQUENCY_TRACKING_LATE_EVENTS_DEFAULT_FILTER,\r\n DELINQUENCY_TRACKING_LOCKOUT_EVENTS_DEFAULT_FILTER, DELINQUENCY_TRACKING_SCHEDULED_EVENTS_DEFAULT_FILTER,\r\n DELINQUENCY_TRACKING_WRONG_ENTRY_DEFAULT_FILTER,\r\n TABLE_WIDTH, TABLE_LEFT_AND_RIGHT_PADDING, LATE_EVENT_TYPE,\r\n};\r\n","import { createEnumMap } from 'Commons/helpers/utils/Formatter';\r\n\r\nconst formatter = label => label.replace(/([A-Z])/g, match => `_${match}`).toUpperCase();\r\nconst UNIT_PERMISSION_KEYS = createEnumMap(['unitGeneral', 'currentRate', 'nextDate',\r\n 'paidToDate', 'unitType', 'inventoryReport', 'unitMoveInDate', 'rentalStatus'], formatter);\r\n\r\nexport default UNIT_PERMISSION_KEYS;\r\nexport { UNIT_PERMISSION_KEYS };\r\n","\r\nconst PATHS = {\r\n CHARGE_CATEGORY: 'charge-category',\r\n PAYMENT_METHOD: 'payment-method',\r\n TAX_CODE: 'tax-code',\r\n TAX_EXEMPT: 'tax-exempt',\r\n UNIT_TYPE: 'unit-type',\r\n PROMO_PLAN: 'promo-plan',\r\n PROMO_PLAN_TEMPLATE: 'promo-plan-template',\r\n LETTER: 'letter',\r\n LATE_EVENT: 'late-event',\r\n MAINTENANCE_EVENT: 'maintenance-event',\r\n OPERATIONS_MAINTENANCE_EVENTS: 'maintenance-events',\r\n LEASE_STYLE: 'lease-style',\r\n RENT_ADJUSTMENT: 'rent-adjustment',\r\n INSURANCE: 'insurance',\r\n CARD_PROCESSOR: 'card-processor',\r\n OPERATIONS_BATCH_PAYMENT: 'batch-payment',\r\n VIOLATION: 'violation',\r\n};\r\n\r\nconst ROUTE = {\r\n PENDING_TASKS: 'pending-tasks',\r\n LIVE_DATA: 'l/:accountId?/facility/:fid?',\r\n PULLED_DATA: 'p/:sandboxId?/:accountId?/facility/:fid?',\r\n EXTERNAL_MAIN: 'a/facility/:fid?',\r\n SETTINGS_LIVE: 'l/s/:accountId?',\r\n SETTINGS_PULLED: 'p/s/:sandboxId?/:accountId?',\r\n SETTINGS_MAIN: 'a/s',\r\n ONBOARDING: 'onboarding',\r\n TENANT_LIST: 'tenant/list',\r\n FINANCIAL_LIST: 'financial/list',\r\n UNIT_LIST: 'unit/list',\r\n LEAD_LIST: 'lead/list',\r\n RESERVATION_LIST: 'reservation/list',\r\n EDIT_RESERVATION: 'reservation/:reservationId/edit',\r\n EDIT_WAITING: 'waiting/:waitingId/edit',\r\n VENDOR_LIST: 'vendor/list',\r\n INVENTORY_LIST: 'inventory/list',\r\n EDIT_TENANT: 'tenant/:tenantId/edit/:sectionLabel?/:subSectionId?',\r\n VIEW_TENANT: 'tenant/:tenantId/view',\r\n CREATE_TENANT: 'tenant/create/:sectionLabel?',\r\n LEDGER_REVIEW: 'ledger/:ledgerId',\r\n CREATE_LEAD: 'lead/create',\r\n EDIT_LEAD: 'lead/:leadId/edit',\r\n CREATE_AR: 'financial/ar/create',\r\n EDIT_UNIT: 'unit/:unitId/edit',\r\n CREATE_UNIT: 'unit/create',\r\n MOVE_IN: 'movein',\r\n MOVE_OUT: 'moveout',\r\n USER_PROFILE: 'user-profile/:userId',\r\n PAYMENT: 'payment',\r\n USER_LIST: 'user/list',\r\n CREATE_USER: 'user/create',\r\n EDIT_USER: 'user/:userId/edit',\r\n CONFIGURATION: 'c/:entityLevel/:entityId?',\r\n SYSTEM_CONFIGURATION: 'sc/:entityLevel?',\r\n CHARGE_CATEGORY_LIST: `${PATHS.CHARGE_CATEGORY}/list`,\r\n PAYMENT_METHOD_LIST: `${PATHS.PAYMENT_METHOD}/list`,\r\n TAX_CODE_LIST: `${PATHS.TAX_CODE}/list`,\r\n TAX_EXEMPT_LIST: `${PATHS.TAX_EXEMPT}/list`,\r\n UNIT_TYPE_LIST: `${PATHS.UNIT_TYPE}/list`,\r\n FINANCIAL_GENERAL: 'financial-general',\r\n FACILITY_GENERAL: 'facility-general',\r\n FINANCIAL_EXPORT: 'financial-export',\r\n VIOLATION_LIST: `${PATHS.VIOLATION}/list`,\r\n VIOLATION_CONFIGURATION: `${PATHS.VIOLATION}/:configId?`,\r\n GATES: 'gates',\r\n RETAIL_SALE: 'retail-sale',\r\n ACH: 'ach',\r\n QUICKBOOK_CONFIG: 'quickbook',\r\n BEV_COLOR_SETUP: 'bev-color-setup',\r\n WALK_AROUND: 'walk-around',\r\n MAINTENANCE_EVENT_LIST: `${PATHS.MAINTENANCE_EVENT}/list`,\r\n MAINTENANCE_EVENT_FORM: `${PATHS.MAINTENANCE_EVENT}/:configId?`,\r\n CUSTOMER_GENERAL: 'customer-general',\r\n RENTAL_GENERAL: 'rental-general',\r\n INSURANCE: 'insurance',\r\n PROMO_PLAN_LIST: `${PATHS.PROMO_PLAN}/list`,\r\n PROMO_PLAN_TEMPLATE_LIST: `${PATHS.PROMO_PLAN_TEMPLATE}/list`,\r\n PROMO_PLAN_FORM: `${PATHS.PROMO_PLAN}/:configId?`,\r\n PROMO_PLAN_TEMPLATE_FORM: `${PATHS.PROMO_PLAN_TEMPLATE}/:configId?`,\r\n UNIT_TYPE_FORM: `${PATHS.UNIT_TYPE}/:configId?`,\r\n RESERVATION: 'reservation',\r\n ESTIMATE: 'estimate',\r\n WAITING: 'waiting',\r\n CHARGE_CATEGORY: `${PATHS.CHARGE_CATEGORY}/:configId?`,\r\n PAYMENT_METHOD: `${PATHS.PAYMENT_METHOD}/:configId?`,\r\n TAX_CODE: `${PATHS.TAX_CODE}/:configId?`,\r\n TAX_EXEMPT_CATEGORY: `${PATHS.TAX_EXEMPT}/:configId?`,\r\n PAYMENT_CONFIGURATION: 'payment-configuration',\r\n CHARGE_CATEGORY_MAPPING: 'charge-category-mapping',\r\n TENANT_CHANGE_TRACKING: 'tenant-change-tracking',\r\n TENANT_ACCOUNT_TYPE: 'tenant-account-type',\r\n TENANT_SECTIONS: 'tenant-sections',\r\n USER_ROLE: 'user-role',\r\n CARD_PROCESSOR_LIST: `${PATHS.CARD_PROCESSOR}/list`,\r\n CARD_PROCESSOR: `${PATHS.CARD_PROCESSOR}/:configId?`,\r\n EDIT_USER_ROLE: 'user-role/:roleId/edit',\r\n CREATE_ROLE: 'user-role/create',\r\n BEV_VIEW: 'bev/view',\r\n BEV_SETUP: 'bev/setup',\r\n POINT_OF_SALE: 'pos',\r\n RETAIL_SALE_RETURNS: 'returns',\r\n LETTER_LIST: `${PATHS.LETTER}/list`,\r\n LETTER_CONFIGURATION: `${PATHS.LETTER}/:configId?`,\r\n REPORT_WC: 'report/:entityLevel?/:entityId?',\r\n CONSOLIDATED_REPORT_WC: 'consolidated-report/:entityLevel?/:entityId?',\r\n LATE_EVENT_LIST: `${PATHS.LATE_EVENT}/list`,\r\n LATE_EVENT_FORM: `${PATHS.LATE_EVENT}/:configId?`,\r\n CONVERSATIONS: 'conversations',\r\n EMAIL_AUDIT: 'conversations/email-audit/list',\r\n INTERNAL_APP: 'internal-app',\r\n DOCS_RB: 'reprint',\r\n DOCS_GD: 'generate-documents',\r\n WAITING_LIST: 'waiting/list',\r\n REPORT: 'report',\r\n CONSOLIDATED_REPORT: 'consolidated-report',\r\n\r\n // Operations Route\r\n OPERATIONS: 'operations',\r\n MANUAL_LATE_EVENT: 'manual-late-event',\r\n MANUAL_RENT_ASSESSMENT: 'manual-rent-assessment',\r\n ACH_OPERATIONS: 'ach-operations',\r\n BATCH_PAYMENT: 'batch-payment',\r\n LETTER_UTILITY: 'letter-utility', // Change to Admin Utility when speced out\r\n OPERATIONS_MAINTENANCE_EVENTS_LIST: `${PATHS.OPERATIONS_MAINTENANCE_EVENTS}/list`,\r\n OPERATIONS_MAINTENANCE_EVENTS_FORM: `${PATHS.OPERATIONS_MAINTENANCE_EVENTS}/create`,\r\n OPERATIONS_MAINTENANCE_EVENTS_EDIT: `${PATHS.OPERATIONS_MAINTENANCE_EVENTS}/:eventId/edit`,\r\n RENT_ADJUSTMENT_LIST: `${PATHS.RENT_ADJUSTMENT}/list`,\r\n MANUAL_RENT_ADJUSTMENT_CREATE: `${PATHS.RENT_ADJUSTMENT}/manual/create`,\r\n AUTO_RENT_ADJUSTMENT_CREATE: `${PATHS.RENT_ADJUSTMENT}/auto/create`,\r\n VIEW_RENT_ADJUSTMENT: `${PATHS.RENT_ADJUSTMENT}/:rentAdjustmentId/view`,\r\n DEPOSIT_LOG: 'deposit-log',\r\n OPERATIONS_CREDIT_CARD_BATCH_CREATE: `${PATHS.OPERATIONS_BATCH_PAYMENT}/credit-card/create`,\r\n TENANT_WEBSITES: 'tenant-websites',\r\n DELINQUENCY_LIST: 'delinquency/list',\r\n DEPOSIT_UPDATE: 'deposit-update',\r\n\r\n LEASE_GENERAL: 'lease-general',\r\n LEASE_STYLE_LIST: `${PATHS.LEASE_STYLE}/list`,\r\n LEASE_STYLE_FORM: `${PATHS.LEASE_STYLE}/:configId?`,\r\n\r\n PENDING_OVERLOCK_UNLOCK_LIST: 'pending-overlock-unlock/list',\r\n INVOICING: 'invoicing',\r\n TRANSFER: 'transfer',\r\n\r\n AUTOMATIC_CREDIT_CARD_DECLINES_LIST: 'automatic-credit-card-declines/list',\r\n FAILED_RETURNS_LIST: 'failed-returns/list',\r\n\r\n TENANT_CHANGES: 'tenant-changes/list',\r\n OTHER_EXTERNAL_ACTIVITY: activityType => `other-external-activity/${activityType}/list`,\r\n VEHICLE: 'vehicle/list',\r\n\r\n // batch payment\r\n VIEW_CC_BATCH: 'batch/:batchId/view',\r\n\r\n UNIT_TYPE_BULK: 'unit-type/bulk',\r\n\r\n SINGLE_UNIT_RENT_ADJUSTMENT: 'unit/:unitId/rent-adjustment',\r\n PRINT_FAILURES: 'print-failures/list',\r\n DELIVER_INVOICE: 'deliver-invoice/list',\r\n CC_ABOUT_TO_EXPIRE: 'cc-expiry/list',\r\n};\r\n\r\n\r\nexport { PATHS, ROUTE };\r\n","const enums = {\r\n searchType: [\r\n 'Configuration_Changes',\r\n 'Late_Events',\r\n 'Lockout_Events',\r\n 'User_Role',\r\n 'User_Management',\r\n ],\r\n lockoutEventType: ['Unit_Overlock', 'Gate_Lockout', 'Tenant_Portal_Lockout'],\r\n gateAccessType: ['Ledger_Gate_Access', 'Unit_Gate_Access', 'Unit_Overlock_Status'],\r\n userManagementCategory: ['Standard_Permission', 'User'],\r\n};\r\nexport default enums;\r\n","import { labelFormatter, mapEnum } from 'Commons/helpers/utils/Formatter';\r\nimport { CONFIGURATION_TYPE, DELINQUENCY_STATUS } from 'Commons/config/constants/Constants';\r\nimport { LATE_TYPE } from 'Internal/containers/delinquencyTracking/list/config/Constants';\r\nimport enums from './Enums';\r\n\r\nconst SEARCH_TYPE = mapEnum(enums.searchType);\r\nconst GATE_ACCESS_TYPE = mapEnum(enums.gateAccessType);\r\nconst USER_MANAGEMENT_CATEGORY_TYPE = mapEnum(enums.userManagementCategory);\r\n\r\nconst FACILITY_CONTEXT_SEARCH_TYPES = [SEARCH_TYPE.Configuration_Changes.value, SEARCH_TYPE.Late_Events.value, SEARCH_TYPE.Lockout_Events.value];\r\nconst ACCOUNT_CONTEXT_SEARCH_TYPES = [SEARCH_TYPE.User_Role.value, SEARCH_TYPE.User_Management.value];\r\n\r\n\r\nconst JOURNAL_CONFIG_LIST = [\r\n CONFIGURATION_TYPE.Facility_Configuration.value.toLowerCase(),\r\n CONFIGURATION_TYPE.Financial_Configuration.value.toLowerCase(),\r\n CONFIGURATION_TYPE.Unit_Configuration.value.toLowerCase(),\r\n CONFIGURATION_TYPE.Customer_Configuration.value.toLowerCase(),\r\n CONFIGURATION_TYPE.Rental_Configuration.value.toLowerCase(),\r\n CONFIGURATION_TYPE.Customer_Engagement_Configuration.value.toLowerCase(),\r\n];\r\n\r\n\r\nconst JOURNAL_CONFIGURATION_CHANGES_DOES_NOT_EXISTS_FILTER = {\r\n oldValue__value__templateContent: true,\r\n oldValue__value__text_friendly__templateContent: true,\r\n};\r\n\r\n// Default Filters\r\nconst JOURNAL_CONFIGURATION_CHANGES_DEFAULT_FILTER = {\r\n terms: { category: JOURNAL_CONFIG_LIST },\r\n notExists: JOURNAL_CONFIGURATION_CHANGES_DOES_NOT_EXISTS_FILTER,\r\n};\r\nconst JOURNAL_LOCKOUT_EVENTS_DEFAULT_FILTER = {\r\n terms: {\r\n changeType: [\r\n GATE_ACCESS_TYPE.Ledger_Gate_Access.value,\r\n GATE_ACCESS_TYPE.Unit_Gate_Access.value,\r\n GATE_ACCESS_TYPE.Unit_Overlock_Status.value,\r\n ],\r\n },\r\n};\r\nconst JOURNAL_USER_ROLES_DEFAULT_FILTER = { terms: { changeType: [SEARCH_TYPE.User_Role.value] } };\r\nconst JOURNAL_USER_MANAGEMENT_DEFAULT_FILTER = { terms: { changeType: [SEARCH_TYPE.User_Management.value] } };\r\n\r\nconst ALLOWED_LATE_EVENT_STATUS = [\r\n DELINQUENCY_STATUS.Waived.value,\r\n];\r\n\r\nconst ALLOWED_LATE_EVENT_TYPE = [\r\n LATE_TYPE.One_Time.value,\r\n LATE_TYPE.Recurring.value,\r\n LATE_TYPE.Dollar_Per_Day.value,\r\n];\r\n\r\nconst DELINQUENCY_TRACKING_LATE_EVENTS_DEFAULT_FILTER = {\r\n terms: {\r\n status: ALLOWED_LATE_EVENT_STATUS,\r\n type: ALLOWED_LATE_EVENT_TYPE,\r\n },\r\n};\r\n\r\n// stores\r\nconst JOURNAL_CONFIGURATION_CHANGES_STORE = 'journalConfigurationChanges';\r\nconst JOURNAL_LATE_EVENT_STORE = 'journalLateEvent';\r\nconst JOURNAL_LOCKOUT_EVENT_STORE = 'journalLockoutEvent';\r\nconst JOURNAL_USER_ROLE_STORE = 'journalUserRole';\r\nconst JOURNAL_USER_MANAGEMENT_STORE = 'journalUserManagement';\r\n\r\nconst getJournalStoreKey = (journalType) => {\r\n let storeKey;\r\n switch (journalType) {\r\n case (SEARCH_TYPE.Late_Events.value):\r\n storeKey = JOURNAL_LATE_EVENT_STORE;\r\n break;\r\n case (SEARCH_TYPE.Lockout_Events.value):\r\n storeKey = JOURNAL_LOCKOUT_EVENT_STORE;\r\n break;\r\n case (SEARCH_TYPE.User_Role.value):\r\n storeKey = JOURNAL_USER_ROLE_STORE;\r\n break;\r\n case (SEARCH_TYPE.User_Management.value):\r\n storeKey = JOURNAL_USER_MANAGEMENT_STORE;\r\n break;\r\n default:\r\n storeKey = JOURNAL_CONFIGURATION_CHANGES_STORE;\r\n break;\r\n }\r\n return storeKey;\r\n};\r\n\r\n\r\nconst getHeaderText = (journalSearchType = '', facilityName) => {\r\n let headerText = labelFormatter(journalSearchType);\r\n if (facilityName) headerText = headerText.concat(` - ${facilityName}`);\r\n return headerText;\r\n};\r\n\r\nconst ADDITIONAL_FILTERS_TO_INCLUDE_WITH_FACILITY_CONFIG = ['facility', CONFIGURATION_TYPE.Retail_Sale_Configuration.value.toLowerCase()];\r\n\r\nconst TABLE_WIDTH = 1020;\r\nconst TABLE_LEFT_AND_RIGHT_PADDING = 0;\r\nconst JOURNAL_LIST_ROW_HEIGHT = 100;\r\nconst TABLE_WIDTH_OFFSET = 16;\r\nconst TABLE_HEIGHT_OFFSET = 196;\r\n\r\nexport {\r\n SEARCH_TYPE, getJournalStoreKey, getHeaderText,\r\n JOURNAL_CONFIGURATION_CHANGES_STORE, JOURNAL_LATE_EVENT_STORE, JOURNAL_LOCKOUT_EVENT_STORE,\r\n JOURNAL_USER_ROLE_STORE, JOURNAL_USER_MANAGEMENT_STORE, TABLE_WIDTH_OFFSET, TABLE_HEIGHT_OFFSET,\r\n JOURNAL_CONFIGURATION_CHANGES_DEFAULT_FILTER, JOURNAL_LOCKOUT_EVENTS_DEFAULT_FILTER,\r\n TABLE_WIDTH, TABLE_LEFT_AND_RIGHT_PADDING, JOURNAL_USER_ROLES_DEFAULT_FILTER, JOURNAL_USER_MANAGEMENT_DEFAULT_FILTER,\r\n FACILITY_CONTEXT_SEARCH_TYPES, ACCOUNT_CONTEXT_SEARCH_TYPES, USER_MANAGEMENT_CATEGORY_TYPE, JOURNAL_LIST_ROW_HEIGHT,\r\n JOURNAL_CONFIGURATION_CHANGES_DOES_NOT_EXISTS_FILTER, ADDITIONAL_FILTERS_TO_INCLUDE_WITH_FACILITY_CONFIG,\r\n DELINQUENCY_TRACKING_LATE_EVENTS_DEFAULT_FILTER,\r\n};\r\n","import { createEnumMap } from 'Commons/helpers/utils/Formatter';\r\n\r\nconst formatter = label => label.replace(/([A-Z])/g, match => `_${match}`).toUpperCase();\r\nconst INVENTORY_PERMISSION_KEYS = createEnumMap(['sell', 'negativeSale', 'restock', 'inventoryAudit',\r\n 'editInventory', 'addInventoryAtPos', 'returnInventory'], formatter);\r\n\r\nexport default INVENTORY_PERMISSION_KEYS;\r\nexport { INVENTORY_PERMISSION_KEYS };\r\n","const enums = {\r\n rentalStatus: ['Rented', 'Vacant'],\r\n overlockStatus: ['Unlocked', 'Unlock_Pending', 'Overlocked', 'Overlock_Pending'],\r\n period: ['Day', 'Month', 'Week', 'Quarter', 'Twenty_Eight_Day', 'Bi_Annual', 'Annual', 'Seasonal'],\r\n promoPlanState: ['Added', 'Deleted'],\r\n calculationStyle: ['Flat', 'Percentage'],\r\n nradActionType: ['Get_Charges', 'Create_Charges', 'Waive_Charges'],\r\n vacantAvailabilityStatus: ['Available', 'Unavailable'],\r\n rentedAvailabilityStatus: ['Available', 'Unavailable_On_Move_Out'],\r\n rateHistoryStatus: ['Pending', 'Applied', 'Moved_In', 'Moved_Out', 'Reversed', 'Reversed_To', 'Waived', 'Stopped', 'Unknown'],\r\n lateEventTrigger: ['Manual'],\r\n lateEventStatus: ['Active'],\r\n leaseSignStatus: ['Pending', 'Complete'],\r\n};\r\n\r\nexport default enums;\r\n","const Enums = {\r\n customerType: ['Retail_Sale_Walk_In', 'Tenant_With_Ledger'],\r\n action: ['Add', 'Increment', 'Clear', 'Clear_All', 'Restocked'],\r\n source: ['Post_Move_In', 'Post_Move_In_Responsive'],\r\n};\r\n\r\nexport default Enums;\r\n","import { createEnumMap } from 'Commons/helpers/utils/Formatter';\r\nimport Enums from './Enums';\r\n\r\nconst WALK_IN_CUSTOMER_ID = -1;\r\nconst WALK_IN_CUSTOMER_NAME = 'Walk-In';\r\nconst ACTION = createEnumMap(Enums.action);\r\nconst CUSTOMER_TYPE = createEnumMap(Enums.customerType);\r\nconst CALLING_SOURCE = createEnumMap(Enums.source);\r\n\r\n// Cart\r\nconst MINIMUM_CART_WIDTH = 538;\r\nconst DEFAULT_CART_WIDTH = 710;\r\nconst DEFAULT_CART_HEIGHT = 300;\r\nconst POST_MOVE_IN_FOOTER_HEIGHT = 290;\r\nconst POS_FOOTER_HEIGHT = 272;\r\nconst CART_LEFT_RIGHT_PADDING = {\r\n desktop: 48,\r\n responsive: 32,\r\n};\r\nconst CART_TOP_BOTTOM_PADDING = {\r\n desktop: 72,\r\n responsive: 32,\r\n};\r\nconst SCAN_BARCODE_TIMEOUT = 100;\r\n\r\n// CustomerProductList\r\nconst DEFAULT_LIST_WIDTH = 300;\r\nconst DEFAULT_LIST_HEIGHT = 400;\r\nconst HORIZONTAL_PADDING = 48;\r\nconst VERTICAL_PADDING = 496;\r\nconst CONTAINER_PADDING = {\r\n desktop: 44,\r\n responsive: 32,\r\n};\r\n\r\n\r\nexport {\r\n WALK_IN_CUSTOMER_ID,\r\n WALK_IN_CUSTOMER_NAME,\r\n ACTION,\r\n CUSTOMER_TYPE,\r\n CALLING_SOURCE,\r\n MINIMUM_CART_WIDTH,\r\n DEFAULT_CART_WIDTH,\r\n DEFAULT_CART_HEIGHT,\r\n POST_MOVE_IN_FOOTER_HEIGHT,\r\n POS_FOOTER_HEIGHT,\r\n CART_LEFT_RIGHT_PADDING,\r\n DEFAULT_LIST_WIDTH,\r\n DEFAULT_LIST_HEIGHT,\r\n HORIZONTAL_PADDING,\r\n VERTICAL_PADDING,\r\n CONTAINER_PADDING,\r\n SCAN_BARCODE_TIMEOUT,\r\n CART_TOP_BOTTOM_PADDING,\r\n};\r\n","const enums = {\r\n websiteAccess: ['Restricted_Login', 'View_Only', 'Full'],\r\n visibleAt: ['All', 'Move_in', 'Payment', 'View_Tenant'],\r\n contactLogCustomerType: ['Tenant', 'Lead'],\r\n contactLogType: ['Auto', 'Manual'],\r\n contactLogAutoMode: ['Text', 'Email', 'Print'],\r\n contactLogSource: ['Lead', 'Tenant'],\r\n invoiceType: ['All_Charges_Due', 'Pre-Billing'],\r\n invoiceStyle: ['Detailed_Transactions', 'Summarized_Transactions'],\r\n invoicingStatus: ['Enabled', 'Disabled', 'Disable_After_Current_Period'],\r\n recipientType: ['User', 'Tenant', 'Lead', 'Unknown'],\r\n viewTenantAlerts: ['discard', 'unit', 'invoice'],\r\n arAggregation: ['Tenant_Deposit_To_Be_Paid'],\r\n documentationStatus: ['Active', 'Inactive', 'Generate_Error', 'Upload_Error', 'Delivery_Error', 'Pending'],\r\n autoInvoiceDeliveryType: ['Automatic', 'Manual'],\r\n alertConfigurationModules: ['Move_In', 'View_Tenant', 'Payment'],\r\n};\r\n\r\nexport default enums;\r\n","import { createEnumMap } from 'Commons/helpers/utils/Formatter';\r\n\r\nconst formatter = label => label.replace(/([A-Z])/g, match => `_${match}`).toUpperCase();\r\n\r\nconst TENANT_PERMISSION_KEYS = createEnumMap(['contactLog', 'allowSecureInfo',\r\n 'allowLateExemption', 'status', 'tenantGeneral', 'viewSecureInfo'], formatter);\r\n\r\nexport default TENANT_PERMISSION_KEYS;\r\nexport { TENANT_PERMISSION_KEYS };\r\n","import { mapEnum, createEnumMap } from 'Commons/helpers/utils/Formatter';\r\nimport LabelWithAddons from 'Generic/labelwithaddons/components/LabelWithAddons';\r\nimport { Typography, makeStyles } from 'Generic/componentlibrary/components/Components';\r\nimport { clsx } from 'Commons/helpers/utils/clsx';\r\nimport enums from './Enums';\r\nimport { severityLevel, mode, tenantAlertList } from './SeverityLevelAndMode';\r\nimport formatterStyle from '../styles/FormatterStyle';\r\n\r\nconst useStyles = makeStyles(formatterStyle, { name: 'LabelFormatter' });\r\n\r\nconst LabelComponent = ({ Component = 'div', value = '', icon, isSeverityIcon }) => {\r\n const classes = useStyles({ ...isSeverityIcon && { value } });\r\n return (\r\n }>\r\n \r\n {value}\r\n \r\n \r\n );\r\n};\r\n\r\nLabelComponent.propTypes = {\r\n Component: PropTypes.func,\r\n value: PropTypes.string,\r\n icon: PropTypes.string,\r\n isSeverityIcon: PropTypes.bool,\r\n};\r\n\r\nconst labelFormatter = props => ;\r\n\r\nconst autoInvoiceDeliveryTypeFormatter = (label) => {\r\n let updatedLabel = label.replace(/_/g, ' ');\r\n if (label === 'Manual') updatedLabel += '/ Pending Tasks';\r\n return updatedLabel;\r\n};\r\n\r\n\r\nconst mapObject = (list, formatter = labelFormatter, isSeverityIcon = false) => {\r\n const mappedObject = {};\r\n list.forEach((object) => {\r\n const { value, ...rest } = object;\r\n mappedObject[value] = {\r\n label: formatter({ ...object, isSeverityIcon }),\r\n value,\r\n ...rest,\r\n };\r\n });\r\n return mappedObject;\r\n};\r\n\r\nconst WEBSITE_ACCESS = mapEnum(enums.websiteAccess);\r\n\r\nconst SEVERITY_LEVEL = mapObject(severityLevel, labelFormatter, true);\r\n\r\nconst MODE = mapObject(mode, labelFormatter);\r\n\r\nconst NUMBER_OF_ROWS_WHEN_COLLAPSED = 3;\r\nconst NUMBER_OF_ROWS_WHEN_EXPANDED = 5;\r\n\r\nconst MAX_VISIBLE_UNITS = 2;\r\nconst MAX_VISIBLE_UNITS_FOR_MOBILE = 1;\r\n\r\nconst TOTAL_MARGIN = 64;\r\nconst TOTAL_MARGIN_CRM = 32;\r\nconst SMART_LIST_DEFAULT_WIDTH = 1000;\r\n\r\nconst SMART_LIST_WIDTH_FOR_VIEW_TENANT_COMPONENTS = 800;\r\n\r\nconst DROPDOWN_MAX_HEIGHT = 100;\r\nconst DROPDOWN_WIDTH = 150;\r\n\r\nconst TABLE_HEADER_HEIGHT = 48;\r\n\r\nconst VISIBLE_AT = createEnumMap(enums.visibleAt);\r\n\r\nconst CONTACT_LOG_CUSTOMER_TYPE = createEnumMap(enums.contactLogCustomerType);\r\nconst CONTACT_LOG_TYPE = createEnumMap(enums.contactLogType);\r\nconst CONTACT_LOG_AUTO_MODE = createEnumMap(enums.contactLogAutoMode);\r\n\r\nconst DOCUMENTATION_DEFAULT_WIDTH = 864;\r\nconst DOCUMENTATION_DEFAULT_HEIGHT = 796;\r\nconst DOCUMENTATION_RESPONSIVE_WIDTH = 1024;\r\nconst DOCUMENTATION_RESPONSIVE_HEIGHT = 300;\r\n\r\nconst INVOICE_STYLE = mapEnum(enums.invoiceStyle);\r\nconst INVOICE_TYPE = mapEnum(enums.invoiceType);\r\nconst INVOICING_STATUS = createEnumMap(enums.invoicingStatus);\r\nconst RECIPIENT_TYPE = createEnumMap(enums.recipientType);\r\nconst AUTO_INVOICE_DELIVERY_TYPE = mapEnum(enums.autoInvoiceDeliveryType, autoInvoiceDeliveryTypeFormatter);\r\n\r\nconst getInvoicingInitValues = ({ daysBeforeRentAssessment = 0 } = {}) => ({\r\n invoicing: {\r\n isEnabled: false,\r\n daysBeforeRentAssessment,\r\n generateForZeroBalance: false,\r\n },\r\n});\r\n\r\nconst TENANT_ALERT = mapEnum(tenantAlertList);\r\n\r\nconst MODULE = mapEnum(enums.alertConfigurationModules);\r\n\r\nconst VIEW_TENANT_ALERT_NAME = createEnumMap(enums.viewTenantAlerts);\r\n\r\nconst UNPAID_AR_STORE = 'unpaidAr';\r\n\r\nconst AR_AGGREGATION = createEnumMap(enums.arAggregation);\r\n\r\nconst DOCUMENTATION_STATUS = mapEnum(enums.documentationStatus);\r\n\r\n\r\nexport {\r\n WEBSITE_ACCESS, SEVERITY_LEVEL, NUMBER_OF_ROWS_WHEN_COLLAPSED, MAX_VISIBLE_UNITS, VISIBLE_AT,\r\n NUMBER_OF_ROWS_WHEN_EXPANDED, MODE, TOTAL_MARGIN, TOTAL_MARGIN_CRM, SMART_LIST_DEFAULT_WIDTH, DROPDOWN_MAX_HEIGHT,\r\n DROPDOWN_WIDTH, TABLE_HEADER_HEIGHT, MAX_VISIBLE_UNITS_FOR_MOBILE, DOCUMENTATION_DEFAULT_WIDTH,\r\n DOCUMENTATION_DEFAULT_HEIGHT, DOCUMENTATION_RESPONSIVE_WIDTH, DOCUMENTATION_RESPONSIVE_HEIGHT,\r\n CONTACT_LOG_CUSTOMER_TYPE, CONTACT_LOG_TYPE, CONTACT_LOG_AUTO_MODE, INVOICE_STYLE, INVOICE_TYPE,\r\n RECIPIENT_TYPE, getInvoicingInitValues, TENANT_ALERT, SMART_LIST_WIDTH_FOR_VIEW_TENANT_COMPONENTS,\r\n VIEW_TENANT_ALERT_NAME, INVOICING_STATUS, UNPAID_AR_STORE, AR_AGGREGATION, DOCUMENTATION_STATUS, AUTO_INVOICE_DELIVERY_TYPE, MODULE,\r\n};\r\n","import { mapEnum, createEnumMap, labelFormatter } from 'Commons/helpers/utils/Formatter';\r\nimport localisable from 'Commons/config/strings/localisable';\r\n\r\nconst enums = {\r\n billingTypes: ['Prorate_First', 'Prorate_Second', 'Prorate_First_Bill_Second',\r\n 'Prorate_First_Bill_Second_After_Days'],\r\n actions: ['Prorate_Out', 'Do_Nothing'],\r\n actionsOnDueBalance: ['Apply_Payment', 'Hold_Balance_On_Ledger', 'Write_Off'],\r\n actionsOnDueCredit: ['Hold_Refund_On_Ledger', 'Assess_To_Tenant_Refund', 'Apply_Cash_Refund',\r\n 'Apply_To_Bank_Via_Ach', 'Apply_To_Credit_Card'],\r\n depositCalculation: ['Flat', 'Unit_Deposit', 'Unit_Rate', 'Percent_Of_Unit_Rate'],\r\n depositTypes: ['Refundable', 'Non_Refundable'],\r\n features: ['Move_In', 'Ledger_Review', 'Estimates'],\r\n moveOutDocuments: ['Move_Out_Document', 'Ledger_History', 'Contact_Log', 'Thank_You_Letter'],\r\n moveInDocuments: ['Welcome_Letter', 'Lease_Agreement', 'Demographics_Letter'],\r\n transferDocuments: ['Lease_Agreement', 'Unit_Transfer'],\r\n // Add lease letter when completed\r\n reservationDocuments: ['Reservation_Quote', 'Cancellation_Letter'],\r\n reservationConfigFields: ['deposit', 'cancellation'],\r\n fieldAction: ['add', 'remove', 'replace'],\r\n roundingType: ['Nearest_Cent', 'Round_To_Nearest_Dollar', 'Round_Up_To_Nearest_Dollar'],\r\n};\r\n\r\nconst PRORATE_CALC_DAYS = [\r\n {\r\n label: 'Actual days in a period',\r\n value: 'Actual_Days',\r\n },\r\n {\r\n label: '30 days in a month',\r\n value: 'Thirty_Days',\r\n },\r\n];\r\n\r\nconst PERIOD_LIST = [\r\n {\r\n label: 'Daily',\r\n value: 'Day',\r\n },\r\n {\r\n label: 'Weekly',\r\n value: 'Week',\r\n },\r\n {\r\n label: 'Monthly',\r\n value: 'Month',\r\n },\r\n {\r\n label: '28-days',\r\n value: 'Twenty_Eight_Day',\r\n },\r\n {\r\n label: 'Seasonal',\r\n value: 'Seasonal',\r\n },\r\n {\r\n label: 'Quarterly',\r\n value: 'Quarter',\r\n },\r\n {\r\n label: 'Bi-Annual',\r\n value: 'Bi_Annual',\r\n },\r\n {\r\n label: 'Annual',\r\n value: 'Annual',\r\n },\r\n];\r\nconst RESERVATION_LOCKED_RATE_FIELDS = ['Unit Rate', 'Tenant Deposit', 'Unit Deposit', 'Setup Fee'];\r\n\r\nconst BILLING_TYPE = mapEnum(enums.billingTypes);\r\nconst ACTIONS = mapEnum(enums.actions);\r\nconst BALANCE_DUE = mapEnum(enums.actionsOnDueBalance);\r\nconst CREDIT_DUE = mapEnum(enums.actionsOnDueCredit);\r\nconst DEPOSIT_CALC = mapEnum(enums.depositCalculation);\r\nconst DEPOSIT_TYPE = mapEnum(enums.depositTypes);\r\nconst FEATURES = mapEnum(enums.features);\r\nconst MOVE_OUT_DOCUMENTS = mapEnum(enums.moveOutDocuments);\r\nconst MOVE_IN_DOCUMENTS = mapEnum(enums.moveInDocuments);\r\nconst RESERVATION_DOCUMENTS = mapEnum(enums.reservationDocuments);\r\nconst RESERVATION_CONFIG_FIELDS = createEnumMap(enums.reservationConfigFields);\r\nconst FIELD_ACTIONS = createEnumMap(enums.fieldAction);\r\nconst ROUNDING_TYPE = mapEnum(enums.roundingType);\r\n\r\nconst MAX_DAYS_BEFORE_MOVE_IN = 7;\r\n\r\nconst DEFAULT_CONFIG_VALUES = {\r\n general: { maxDaysBeforeMoveIn: MAX_DAYS_BEFORE_MOVE_IN },\r\n deposit: { type: DEPOSIT_TYPE.Refundable.value, calculationType: DEPOSIT_CALC.Flat.value },\r\n cancellation: { type: DEPOSIT_TYPE.Non_Refundable.value },\r\n};\r\n\r\n// Transfer\r\nconst TRANSFER_INIT_VALUES = {\r\n isChargeable: true,\r\n fee: '0.00',\r\n};\r\nconst TRANSFER_DOCS = createEnumMap(enums.transferDocuments);\r\nconst TRANSFER_DOCUMENTS = [\r\n {\r\n label: labelFormatter(TRANSFER_DOCS.LEASE_AGREEMENT),\r\n value: TRANSFER_DOCS.LEASE_AGREEMENT,\r\n },\r\n {\r\n label: localisable.transferDocument,\r\n value: TRANSFER_DOCS.UNIT_TRANSFER,\r\n isLetter: false,\r\n },\r\n];\r\n\r\nexport {\r\n PRORATE_CALC_DAYS, BILLING_TYPE, ACTIONS, BALANCE_DUE, CREDIT_DUE, DEPOSIT_CALC, DEPOSIT_TYPE, FEATURES,\r\n MOVE_OUT_DOCUMENTS, MOVE_IN_DOCUMENTS, RESERVATION_CONFIG_FIELDS, RESERVATION_DOCUMENTS, ROUNDING_TYPE,\r\n PERIOD_LIST, FIELD_ACTIONS, RESERVATION_LOCKED_RATE_FIELDS, DEFAULT_CONFIG_VALUES, TRANSFER_INIT_VALUES,\r\n TRANSFER_DOCUMENTS, TRANSFER_DOCS,\r\n};\r\n","const enums = {\r\n status: ['Pending', 'Completed', 'Stopped'],\r\n byTenantFiltersType: ['last_adjustment', 'occupancy_over'],\r\n recurPeriod: ['Day', 'Week', 'Month', 'Annual', 'Quarter', 'Bi_Annual', 'Twenty_Eight_Day', 'Unit_Billing_Period'],\r\n roundingType: ['Nearest_Cent', 'Round_To_Nearest_Dollar', 'Round_Up_To_Nearest_Dollar'],\r\n calcTypesForSchedulingOnRentedUnits: ['Flat', 'Percent_Of_Std', 'Increase_To_Std', 'Percent_Of_Cur_Amt',\r\n 'Lower_Of_Flat_Or_Percent_Of_Cur', 'Lower_Of_Flat_Or_Percent_Of_Std',\r\n 'Higher_Of_Flat_Or_Percent_Of_Cur', 'Higher_Of_Flat_Or_Percent_Of_Std',\r\n ],\r\n calcTypesForSchedulingOnVacantUnits: ['Flat', 'Percent_Of_Std', 'Increase_To_Std',\r\n 'Lower_Of_Flat_Or_Percent_Of_Std', 'Higher_Of_Flat_Or_Percent_Of_Std',\r\n ],\r\n warningType: ['Rent_Adj_Already_Exists', 'New_Rate_Exceeds_Std_Rate',\r\n 'New_Rate_Exceeds_X_Percent_Of_Cur_Rate', 'Invoice_To_Date_Is_After_Rent_Adj_Date'],\r\n warningResolutionType: ['Cancel_This', 'Cancel_Existing', 'Continue_as_is', 'Match_XPercent_Increase', 'Increase_Effective_Date',\r\n 'Create_New_Invoice', 'Increase_to_Standard'],\r\n chargesAfterRentAdjustmentRequestSource: ['ViewRentAdjustment', 'RentAdjustmentCreate'],\r\n rentAdjustmentPeriod: ['months', 'days'],\r\n};\r\n\r\nexport default enums;\r\n","import { createEnumMap } from 'Commons/helpers/utils/Formatter';\r\n\r\nconst formatter = label => label.replace(/([A-Z])/g, match => `_${match}`).toUpperCase();\r\nconst REPORT_PERMISSION_KEYS = createEnumMap(\r\n ['accountConsolidatedReport', 'businessGroupConsolidatedReport', 'facilityConsolidatedReport', 'facilityIncomeReport',\r\n 'facilityCustomCategories'],\r\n formatter,\r\n);\r\n\r\nexport { REPORT_PERMISSION_KEYS, formatter };\r\n","import { createEnumMap } from 'Commons/helpers/utils/Formatter';\r\n\r\nconst formatter = label => label.replace(/([A-Z])/g, match => `_${match}`).toUpperCase();\r\nconst MANUAL_CHARGE_PERMISSION_KEYS = createEnumMap(['manualCharge', 'negativeManualCharge',\r\n 'manualChargeSecureCategories', 'editDeposit'], formatter);\r\n\r\nexport default MANUAL_CHARGE_PERMISSION_KEYS;\r\nexport { MANUAL_CHARGE_PERMISSION_KEYS };\r\n","import { createEnumMap } from 'Commons/helpers/utils/Formatter';\r\n\r\nconst formatter = label => label.replace(/([A-Z])/g, match => `_${match}`).toUpperCase();\r\nconst CHARGE_PERMISSION_KEYS = createEnumMap(['deleteCharge', 'reverseCharge', 'reverseSecureCharge', 'deleteSecureCharge'], formatter);\r\n\r\nexport default CHARGE_PERMISSION_KEYS;\r\n","import STATUS from 'Commons/config/constants/StoreKeyStatus';\r\nimport baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { OVERRIDABLE_CONFIGS } from 'External/containers/configuration/config/Constants';\r\n\r\nconst addParentConfigToList = (updatedConfigList, configData, id) => updatedConfigList.push({ ...configData, id: id.toString() });\r\n\r\nconst mergeChildConfigWithParent = (configList = [], shouldAddParentConfigToList = false) => {\r\n const updatedConfigList = [];\r\n configList.forEach((configData = {}) => {\r\n const {\r\n id, value = {}, value: { description } = {},\r\n childConfiguration = [],\r\n } = configData;\r\n if (description) {\r\n if (childConfiguration.length) {\r\n childConfiguration.forEach((eachChildConfiguration = {}) => {\r\n const { id: childId, value: childValue = {} } = eachChildConfiguration;\r\n updatedConfigList.push({\r\n ...eachChildConfiguration,\r\n id: childId.toString(),\r\n value: { ...value, ...childValue },\r\n });\r\n });\r\n if (shouldAddParentConfigToList) {\r\n addParentConfigToList(updatedConfigList, configData, id);\r\n }\r\n } else {\r\n addParentConfigToList(updatedConfigList, configData, id);\r\n }\r\n }\r\n });\r\n return updatedConfigList;\r\n};\r\n\r\n/* If config(system one) is overridden, then it adds the detail of the configuration to each of its child configuration,\r\nand remove it(system one) from the list. It(system one) remains as it is, if configuration is not overridden */\r\nconst handleConfigInheritance = (dataToProcess = {}, status) => {\r\n const { data = {}, ...restData } = dataToProcess;\r\n const updatedConfig = {};\r\n let totalCount = 0;\r\n Object.keys(data).forEach((configKey) => {\r\n const { [configKey]: { data: configList = [] } = {} } = data;\r\n let updatedConfigList = [];\r\n if (OVERRIDABLE_CONFIGS.includes(configKey)) {\r\n updatedConfigList = mergeChildConfigWithParent(configList);\r\n } else {\r\n updatedConfigList = configList;\r\n }\r\n updatedConfig[configKey] = { data: updatedConfigList };\r\n totalCount += updatedConfigList.length;\r\n });\r\n return {\r\n data: {\r\n data: {\r\n ...restData,\r\n ...updatedConfig,\r\n },\r\n totalCount,\r\n ...status && { status },\r\n },\r\n };\r\n};\r\n\r\nconst configSDPostProcessor = (apiResult, callback, dispatch, localReqOptions) => {\r\n const { error, response = {} } = apiResult;\r\n const processedData = baseProcessor(apiResult, undefined, dispatch, localReqOptions);\r\n const { data, status } = processedData;\r\n const updatedData = handleConfigInheritance(data, status);\r\n const isQueued = response.status === STATUS.QUEUED;\r\n if (!isQueued && callback) {\r\n callback(error, updatedData.data);\r\n }\r\n return updatedData;\r\n};\r\n\r\nexport { configSDPostProcessor, handleConfigInheritance, mergeChildConfigWithParent };\r\n","import { createEnumMap } from 'Commons/helpers/utils/Formatter';\r\n\r\nconst formatter = label => label.replace(/([A-Z])/g, match => `_${match}`).toUpperCase();\r\nconst RENT_ADJUSTMENT_KEYS = createEnumMap(\r\n ['schedule', 'waive'],\r\n formatter,\r\n);\r\n\r\n\r\nexport { RENT_ADJUSTMENT_KEYS };\r\n","import { createEnumMap } from 'Commons/helpers/utils/Formatter';\r\nimport { formatter } from 'External/containers/createoccupancy/config/PermissionKeys';\r\n\r\nconst MOVE_OUT_PERMISSION_KEYS = createEnumMap(['moveOutDate', 'overrideResolveCharges',\r\n 'waiveNotificationPenalty'], formatter);\r\n\r\nexport default MOVE_OUT_PERMISSION_KEYS;\r\n","import localisable from 'Commons/config/strings/localisable';\r\nimport { createEnumMap, mapEnum } from 'Commons/helpers/utils/Formatter';\r\nimport { RENTAL_STATUS } from 'External/containers/unit/form/config/Constants';\r\nimport { capitalize } from 'Commons/helpers/utils/DataHelpers';\r\nimport enums from './Enums';\r\n\r\nconst DATA_FETCH_TIMEOUT = 300;\r\n\r\nconst RENT_ADJUSTMENT_STATUS = createEnumMap(enums.status);\r\n\r\nconst CHARGES_AFTER_RENT_ADJUSTMENT_REQUEST_SOURCE = createEnumMap(enums.chargesAfterRentAdjustmentRequestSource);\r\n\r\nconst rentalStatusRadioList = [{\r\n label: localisable.rented,\r\n value: RENTAL_STATUS.Rented.value,\r\n}, {\r\n label: localisable.vacant,\r\n value: RENTAL_STATUS.Vacant.value,\r\n}];\r\n\r\nconst BY_TENANTS_FILTERS_TYPE = createEnumMap(enums.byTenantFiltersType);\r\n\r\nconst RECUR_PERIOD = mapEnum(enums.recurPeriod, (label) => {\r\n if (label === 'Twenty_Eight_Day') return '28 Days';\r\n return label.replace(/_/g, ' ');\r\n});\r\n\r\nconst ROUNDING_TYPE = mapEnum(enums.roundingType);\r\n\r\nconst CALCULATION_TYPES_FOR_SCHEDULING_ON_RENTED_UNITS = mapEnum(enums.calcTypesForSchedulingOnRentedUnits, label => label.replace('Cur', 'Current').replace('Std', 'Standard').replace('Amt', 'Amount').replace(/_/g, ' '));\r\n\r\nconst CALCULATION_TYPES_FOR_SCHEDULING_ON_VACANT_UNITS = mapEnum(enums.calcTypesForSchedulingOnVacantUnits, label => label.replace('Std', 'Standard').replace(/_/g, ' '));\r\n\r\nconst WARNING_TYPE = createEnumMap(enums.warningType);\r\n\r\nconst WARNING_RESOLUTION_TYPE = mapEnum(enums.warningResolutionType, label => label.replace('Percent', '%').replace(/_/g, ' '));\r\n\r\nconst RENT_ADJUSTMENT_ALREADY_EXISTS_WARNING_CURRENT_ROW_ID = '-1';\r\nconst RENT_ADJUSTMENT_PERIOD_LIST = mapEnum(enums.rentAdjustmentPeriod, label => capitalize(label));\r\nconst RENT_ADJUSTMENT_STATUS_LIST = mapEnum(enums.status, label => (label === 'Pending' ? localisable.scheduled : label));\r\n\r\nexport {\r\n RECUR_PERIOD,\r\n WARNING_TYPE,\r\n ROUNDING_TYPE,\r\n DATA_FETCH_TIMEOUT,\r\n rentalStatusRadioList,\r\n RENT_ADJUSTMENT_STATUS,\r\n WARNING_RESOLUTION_TYPE,\r\n BY_TENANTS_FILTERS_TYPE,\r\n CALCULATION_TYPES_FOR_SCHEDULING_ON_RENTED_UNITS,\r\n CALCULATION_TYPES_FOR_SCHEDULING_ON_VACANT_UNITS,\r\n RENT_ADJUSTMENT_ALREADY_EXISTS_WARNING_CURRENT_ROW_ID,\r\n CHARGES_AFTER_RENT_ADJUSTMENT_REQUEST_SOURCE,\r\n RENT_ADJUSTMENT_PERIOD_LIST,\r\n RENT_ADJUSTMENT_STATUS_LIST,\r\n};\r\n","import { mapEnum } from '../../../../../commons/helpers/utils/Formatter';\r\nimport enums from '../../config/Enums';\r\n\r\nconst RENTAL_STATUS = mapEnum(enums.rentalStatus);\r\n\r\nconst UNIT_DEFAULT_SORT = {\r\n label: 'Unit Number',\r\n value: 'Unit Number',\r\n sort: [{ label: { order: 'asc' } }],\r\n};\r\n\r\nconst UNIT_DEFAULT_FILTER = {\r\n terms: {\r\n status: ['Active'],\r\n additionalInfo: { includeInRentableInventoryCount: ['true', 'false'] },\r\n },\r\n};\r\n\r\nexport { RENTAL_STATUS, UNIT_DEFAULT_SORT, UNIT_DEFAULT_FILTER };\r\n","const enums = {\r\n maintenanceEventStatus: ['Upcoming', 'Pending', 'Completed', 'Closed', 'Cancelled'],\r\n maintenanceEventActionItem: ['Mark_as_pending', 'Complete_Event', 'Close_Event', 'Cancel_Event'],\r\n};\r\n\r\nexport default enums;\r\n","import { createEnumMap, mapEnum } from 'Commons/helpers/utils/Formatter';\r\nimport enums from './Enums';\r\n\r\nconst MAINTENANCE_EVENT_STATUS = createEnumMap(enums.maintenanceEventStatus, status => status);\r\nconst MAINTENANCE_EVENT_ACTION_ITEM = mapEnum(enums.maintenanceEventActionItem);\r\n\r\nexport { MAINTENANCE_EVENT_STATUS, MAINTENANCE_EVENT_ACTION_ITEM };\r\n","import { createEnumMap } from 'Commons/helpers/utils/Formatter';\r\n\r\nconst formatter = label => label.replace(/([A-Z])/g, match => `_${match}`).toUpperCase();\r\n\r\nconst MAINTENANCE_EVENTS_PERMISSION_KEYS = createEnumMap(['closeEvent', 'cancelEvent'], formatter);\r\n\r\nexport default MAINTENANCE_EVENTS_PERMISSION_KEYS;\r\n","export const STAGE_STATUS = {\r\n VERIFY_USER: 1,\r\n SUCCESS_SIGNIN: 2,\r\n SUCCESS_SIGNIN_2FA: 3,\r\n RESET_PASSWORD: 4,\r\n CREATE_PASSWORD: 5,\r\n FORGOT_PASSWORD: 6,\r\n RESET_PASSWORD_2FA: 7,\r\n USER_LOCKED: 8,\r\n};\r\n\r\nexport const PASSWORD_POLICY_STATUSES = [STAGE_STATUS.RESET_PASSWORD, STAGE_STATUS.CREATE_PASSWORD, STAGE_STATUS.FORGOT_PASSWORD];\r\n\r\n\r\nexport const SUBSTATUS_CODES = {\r\n // TODO: Handle User_Locked\r\n AUTHORIZED_USER: 'Authorized_User',\r\n UNAUTHORIZED_USER: 'Unauthorized_User',\r\n CREATED_USER: 'Created_User',\r\n EXPIRED_PASSWORD: 'Expired_Password',\r\n TWO_FACTOR_EXPIRED: 'Two_Factor_Code_Expired',\r\n ACCESS_CODE_EXPIRED: 'Access_Code_Expired',\r\n SAME_AS_PREVIOUS: 'Same_As_Previous',\r\n INVALID_TOKEN: 'Invalid_Token',\r\n USER_LOCKED: 'User_Locked',\r\n HAS_ACTIVE_ADMIN_SESSIONS: 'Has_Active_Admin_Sessions',\r\n};\r\n\r\nexport const ERROR_MESSAGES = {\r\n TWO_FACTOR_EXPIRED: 'Invalid Access Code/Access Code Expired',\r\n ACCESS_CODE_EXPIRED: 'Access Code Expired',\r\n VERIFY_OLD_PASSWORD: 'Old password Does not Match',\r\n SAME_AS_PREVIOUS: 'Old & New Passwords are same',\r\n NEW_PASSWORD_MATCH: 'New Password Does Not Match',\r\n SEND_CODE_ERROR: 'Error during Send Access Code',\r\n SEND_CODE_UNSUCCESSFUL: 'Oops Something went wrong',\r\n RESET_PASSWORD_ERROR: 'Error during resetting password',\r\n PASSWORD_EXPIRED: 'Password has expired',\r\n GENERIC_ERROR: 'Something Went Wrong!!',\r\n USER_LOCKED: 'User Account Has Been Temporarily Locked',\r\n};\r\n\r\nexport const AUTH_CODE_TYPES = {\r\n ACCESS_CODE: 'Access_Code',\r\n TWO_FACTOR: 'Two_Factor_Access_Code',\r\n};\r\n\r\nexport const AUTH_CODE_SOURCES = {\r\n CREATE_PASSWORD: 'Create_Password',\r\n FORGOT_PASSWORD: 'Forgot_Password',\r\n};\r\n","import baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\nimport { getTimezoneList } from 'Commons/components/business/timezone/utils/TimezoneHelpers';\r\nimport STATUS from 'Commons/config/constants/StoreKeyStatus';\r\n\r\nexport default (payload, callback, dispatch, localReqOptions) => {\r\n const timezones = getTimezoneList(payload);\r\n const result = { response: timezones, status: STATUS.LOADED, error: null };\r\n return baseProcessor(result, callback, dispatch, localReqOptions);\r\n};\r\n","import { createEnumMap } from 'Commons/helpers/utils/Formatter';\r\n\r\nconst formatter = label => label.replace(/([A-Z])/g, match => `_${match}`).toUpperCase();\r\nconst AUDIT_PERMISSION_KEYS = createEnumMap(['negativeInventory'], formatter);\r\n\r\nexport default AUDIT_PERMISSION_KEYS;\r\nexport { AUDIT_PERMISSION_KEYS };\r\n","const SYRAPAY_MERCHANT_PORTAL_PERMISSION = 'merchantPortal';\r\n\r\nexport { SYRAPAY_MERCHANT_PORTAL_PERMISSION };\r\n","import { createEnumMap } from 'Commons/helpers/utils/Formatter';\r\n\r\nconst formatter = label => label.replace(/([A-Z])/g, match => `_${match}`).toUpperCase();\r\nconst LATE_EVENT_PERMISSION_KEYS = createEnumMap(['assessLateCharges', 'waiveLateCharges'], formatter);\r\n\r\nexport default LATE_EVENT_PERMISSION_KEYS;\r\n","import Icon from 'Generic/icon/components/Icon';\r\n\r\nconst IconComponent = ({ icon, className }) => (\r\n \r\n);\r\n\r\nIconComponent.propTypes = { icon: PropTypes.string, className: PropTypes.string };\r\n\r\nconst severityLevel = [\r\n { icon: 'cp-warning', Component: IconComponent, value: 'Warning' },\r\n { icon: 'cp-error', Component: IconComponent, value: 'Error' },\r\n { icon: 'cp-query', Component: IconComponent, value: 'Query' },\r\n { icon: 'cp-info-colored', Component: IconComponent, value: 'Information' },\r\n];\r\nconst mode = [\r\n { icon: 'cp-email-outlined', Component: IconComponent, value: 'Email' },\r\n { icon: 'cp-phone', Component: IconComponent, value: 'Phone' },\r\n { icon: 'cp-text-outlined', Component: IconComponent, value: 'Text' },\r\n { icon: 'cp-print', Component: IconComponent, value: 'Print' },\r\n];\r\n\r\nconst tenantAlertList = ['Do_Not_Rent', 'Do_Not_Accept_Checks'];\r\n\r\nexport { severityLevel, mode, tenantAlertList };\r\n","import { createEnumMap } from 'Commons/helpers/utils/Formatter';\r\n\r\nconst CONFIG_TYPE = createEnumMap([\r\n 'Charge_Category', 'Tax_Code', 'Tax_Exempt_Category', 'Payment_Method', 'Unit_Type', 'Financial_Payment',\r\n 'Promo_Plan', 'Promo_Plan_Template',\r\n 'Facility_General', 'Customer_General', 'Financial_General', 'Rental_General',\r\n 'Charge_Category_Mapping', 'Move_In', 'Move_Out', 'Reservation', 'Gate',\r\n 'Tenant_Change_Tracking', 'Tenant_Account_Type', 'Tenant_Sections', 'Letter', 'Required_Fields',\r\n 'Suggested_Fields', 'Inventory', 'Late_Event', 'Bev_Colors', 'Maintenance_Event', 'Tenant_Websites', 'Level',\r\n 'Card_Processor', 'Lease_General', 'Lease_Style', 'Invoicing', 'Ach', 'Transfer', 'Insurance', 'Insurance_Coverage',\r\n 'Insurance_Provider', 'Custom_Merge_Fields', 'Quickbooks', 'Vehicle', 'Walk_Around', 'Placeholder',\r\n 'Financial_Export', 'Violation',\r\n]);\r\n\r\nexport default CONFIG_TYPE;\r\n","const enums = {\r\n entityType: ['Facility', 'System_Facility', 'Business_Group', 'Account', 'System_Account', 'System_Business_Group'],\r\n configType: ['Normal_Config', 'System_Config'],\r\n deactivateType: ['Hard_Deactivate', 'Deactivate_For_Future', 'Not_Allowed'],\r\n configurationTab: ['Facility', 'Billing_And_Allocation', 'Payments', 'Occupancy', 'Units', 'Tenants', 'Documentation', 'Third_Party_Support'],\r\n};\r\n\r\nexport default enums;\r\n","import { createEnumMap } from 'Commons/helpers/utils/Formatter';\r\nimport { ROUTE } from 'External/redux/config/RouteNames';\r\nimport enums from './Enums';\r\nimport CONFIG_TYPE from './ConfigRequestType';\r\n\r\nconst TEXT_FIELD_WIDTH = 250;\r\nconst DROPDOWN_MAX_HEIGHT = 300;\r\nconst SMALL_DROPDOWN_MAX_HEIGHT = 250;\r\nconst SMALL_TEXTFIELD_WIDTH = 200;\r\nconst EXTRA_SMALL_TEXTFIELD_WIDTH = 50;\r\nconst LARGE_TEXTFIELD_WIDTH = 300;\r\nconst EXTRA_LARGE_TEXTFIELD_WIDTH = 350;\r\n\r\nconst CONFIGURATION_DEFAULT_SORT = {\r\n label: 'Description',\r\n value: 'Description',\r\n sort: [{ value: { description: { order: 'asc' } } }],\r\n};\r\nconst FIXED_FILTERS_KEYS = ['configType', 'entityType', 'entityId'];\r\nconst OVERRIDABLE_CONFIGS = [CONFIG_TYPE.CHARGE_CATEGORY, CONFIG_TYPE.PAYMENT_METHOD];\r\n\r\nconst ENTITY_TYPE = createEnumMap(enums.entityType);\r\nconst CONFIG_LEVEL_TYPE = createEnumMap(enums.configType);\r\nconst DEACTIVATE_TYPE = createEnumMap(enums.deactivateType);\r\nconst CONFIGURATION_TABS = createEnumMap(enums.configurationTab);\r\n\r\n\r\nconst RESOURCE_NAME_TO_CONFIG_MAPPING = {\r\n [ROUTE.RETAIL_SALE]: 'retail_sale_configuration',\r\n [ROUTE.FACILITY_GENERAL]: 'facility_configuration',\r\n [ROUTE.BEV_COLOR_SETUP]: 'facility_configuration',\r\n [ROUTE.MAINTENANCE_EVENT_LIST]: 'facility_configuration',\r\n [ROUTE.FINANCIAL_GENERAL]: 'financial_configuration',\r\n [ROUTE.CUSTOMER_GENERAL]: 'customer_configuration',\r\n [ROUTE.RENTAL_GENERAL]: 'rental_configuration',\r\n [ROUTE.UNIT_TYPE_LIST]: 'unit_configuration',\r\n [ROUTE.PROMO_PLAN_LIST]: 'rental_configuration',\r\n [ROUTE.PROMO_PLAN_TEMPLATE_LIST]: 'rental_configuration',\r\n [ROUTE.MOVE_IN]: 'rental_configuration',\r\n [ROUTE.MOVE_OUT]: 'rental_configuration',\r\n [ROUTE.RESERVATION]: 'rental_configuration',\r\n [ROUTE.CHARGE_CATEGORY_LIST]: 'financial_configuration',\r\n [ROUTE.PAYMENT_METHOD_LIST]: 'financial_configuration',\r\n [ROUTE.TAX_CODE_LIST]: 'financial_configuration',\r\n [ROUTE.TAX_EXEMPT_LIST]: 'financial_configuration',\r\n [ROUTE.PAYMENT_CONFIGURATION]: 'financial_configuration',\r\n [ROUTE.CHARGE_CATEGORY_MAPPING]: 'financial_configuration',\r\n [ROUTE.TENANT_SECTIONS]: 'customer_configuration',\r\n [ROUTE.LETTER_LIST]: 'customer_engagement_configuration',\r\n [ROUTE.TENANT_WEBSITES]: 'facility_configuration',\r\n [ROUTE.LATE_EVENT_LIST]: 'rental_configuration',\r\n [ROUTE.FINANCIAL_EXPORT]: 'financial_configuration',\r\n};\r\n\r\nconst RESOURCE_URL_TO_CONFIG_TAB_MAPPING = {\r\n [ROUTE.RETAIL_SALE]: CONFIGURATION_TABS.BILLING_AND_ALLOCATION,\r\n [ROUTE.FACILITY_GENERAL]: CONFIGURATION_TABS.FACILITY,\r\n [ROUTE.BEV_COLOR_SETUP]: CONFIGURATION_TABS.UNITS,\r\n [ROUTE.MAINTENANCE_EVENT_LIST]: CONFIGURATION_TABS.BILLING_AND_ALLOCATION,\r\n [ROUTE.FINANCIAL_GENERAL]: CONFIGURATION_TABS.BILLING_AND_ALLOCATION,\r\n [ROUTE.CUSTOMER_GENERAL]: CONFIGURATION_TABS.TENANTS,\r\n [ROUTE.RENTAL_GENERAL]: CONFIGURATION_TABS.BILLING_AND_ALLOCATION,\r\n [ROUTE.UNIT_TYPE_LIST]: CONFIGURATION_TABS.UNITS,\r\n [ROUTE.PROMO_PLAN_LIST]: CONFIGURATION_TABS.BILLING_AND_ALLOCATION,\r\n [ROUTE.MOVE_IN]: CONFIGURATION_TABS.OCCUPANCY,\r\n [ROUTE.MOVE_OUT]: CONFIGURATION_TABS.OCCUPANCY,\r\n [ROUTE.RESERVATION]: CONFIGURATION_TABS.OCCUPANCY,\r\n [ROUTE.TRANSFER]: CONFIGURATION_TABS.OCCUPANCY,\r\n [ROUTE.CHARGE_CATEGORY_LIST]: CONFIGURATION_TABS.BILLING_AND_ALLOCATION,\r\n [ROUTE.PAYMENT_METHOD_LIST]: CONFIGURATION_TABS.PAYMENTS,\r\n [ROUTE.TAX_CODE_LIST]: CONFIGURATION_TABS.BILLING_AND_ALLOCATION,\r\n [ROUTE.TAX_EXEMPT_LIST]: CONFIGURATION_TABS.BILLING_AND_ALLOCATION,\r\n [ROUTE.PAYMENT_CONFIGURATION]: CONFIGURATION_TABS.PAYMENTS,\r\n [ROUTE.CHARGE_CATEGORY_MAPPING]: CONFIGURATION_TABS.BILLING_AND_ALLOCATION,\r\n [ROUTE.TENANT_SECTIONS]: CONFIGURATION_TABS.TENANTS,\r\n [ROUTE.LETTER_LIST]: CONFIGURATION_TABS.DOCUMENTATION,\r\n [ROUTE.TENANT_WEBSITES]: CONFIGURATION_TABS.FACILITY,\r\n [ROUTE.LATE_EVENT_LIST]: CONFIGURATION_TABS.BILLING_AND_ALLOCATION,\r\n [ROUTE.FINANCIAL_EXPORT]: CONFIGURATION_TABS.BILLING_AND_ALLOCATION,\r\n [ROUTE.DELINQUENCY_LIST]: CONFIGURATION_TABS.BILLING_AND_ALLOCATION,\r\n [ROUTE.ACH]: CONFIGURATION_TABS.PAYMENTS,\r\n [ROUTE.UNIT_TYPE_BULK]: CONFIGURATION_TABS.UNITS,\r\n [ROUTE.VEHICLE]: CONFIGURATION_TABS.TENANTS,\r\n [ROUTE.INVOICING]: CONFIGURATION_TABS.DOCUMENTATION,\r\n [ROUTE.LEASE_GENERAL]: CONFIGURATION_TABS.DOCUMENTATION,\r\n [ROUTE.LEASE_STYLE_LIST]: CONFIGURATION_TABS.DOCUMENTATION,\r\n [ROUTE.INTERNAL_APP]: CONFIGURATION_TABS.DOCUMENTATION,\r\n [ROUTE.GATES]: CONFIGURATION_TABS.THIRD_PARTY_SUPPORT,\r\n [ROUTE.INSURANCE]: CONFIGURATION_TABS.THIRD_PARTY_SUPPORT,\r\n};\r\n\r\n\r\nconst FACILITY_CONFIG_TAB_ID_MAPPING = {\r\n [CONFIGURATION_TABS.FACILITY]: 0,\r\n [CONFIGURATION_TABS.BILLING_AND_ALLOCATION]: 1,\r\n [CONFIGURATION_TABS.PAYMENTS]: 2,\r\n [CONFIGURATION_TABS.OCCUPANCY]: 3,\r\n [CONFIGURATION_TABS.UNITS]: 4,\r\n [CONFIGURATION_TABS.TENANTS]: 5,\r\n [CONFIGURATION_TABS.DOCUMENTATION]: 6,\r\n [CONFIGURATION_TABS.THIRD_PARTY_SUPPORT]: 7,\r\n};\r\n\r\nconst BUSINESS_GROUP_CONFIG_TAB_ID_MAPPING = {\r\n [CONFIGURATION_TABS.BILLING_AND_ALLOCATION]: 0,\r\n [CONFIGURATION_TABS.PAYMENTS]: 1,\r\n [CONFIGURATION_TABS.DOCUMENTATION]: 2,\r\n};\r\n\r\nexport {\r\n TEXT_FIELD_WIDTH, DROPDOWN_MAX_HEIGHT, SMALL_TEXTFIELD_WIDTH, LARGE_TEXTFIELD_WIDTH, ENTITY_TYPE,\r\n EXTRA_SMALL_TEXTFIELD_WIDTH, CONFIGURATION_DEFAULT_SORT, FIXED_FILTERS_KEYS, CONFIG_LEVEL_TYPE,\r\n RESOURCE_NAME_TO_CONFIG_MAPPING, SMALL_DROPDOWN_MAX_HEIGHT, OVERRIDABLE_CONFIGS, EXTRA_LARGE_TEXTFIELD_WIDTH,\r\n DEACTIVATE_TYPE, CONFIGURATION_TABS, RESOURCE_URL_TO_CONFIG_TAB_MAPPING, FACILITY_CONFIG_TAB_ID_MAPPING, BUSINESS_GROUP_CONFIG_TAB_ID_MAPPING,\r\n};\r\n","import { mapEnum } from 'Commons/helpers/utils/Formatter';\r\n\r\nconst letterSource = ['Main_Application', 'Tenant_Portal', 'Kiosk', 'Pay_At_The_Gate'];\r\nconst paperSize = ['Standard', 'Legal'];\r\nconst letterFormat = ['html', 'tx'];\r\nconst buttonType = ['Save', 'Exit_Without_Saving', 'Custom_Merge_Fields', 'Insert_Merge_Field'];\r\nconst letterType = ['System'];\r\n\r\nconst LETTER_SOURCE = mapEnum(letterSource);\r\nconst PAPER_SIZE = mapEnum(paperSize);\r\nconst LETTER_FORMAT = mapEnum(letterFormat);\r\nconst BUTTON_TYPE = mapEnum(buttonType);\r\nconst LETTER_TYPE = mapEnum(letterType);\r\nconst MERGE_FIELD_SECTION_TYPE = { headerButton: 'Button' };\r\n\r\n\r\nexport { LETTER_SOURCE, PAPER_SIZE, LETTER_FORMAT, BUTTON_TYPE, LETTER_TYPE, MERGE_FIELD_SECTION_TYPE };\r\n","import { CURRENCY_MAP, STATUS } from 'Commons/config/constants/Constants';\r\nimport { RENTAL_STATUS } from 'External/containers/unit/list/config/Constants';\r\n\r\n\r\nconst getLabelWithSymbol = (label, currency, otherSymbol) => `${label.toUpperCase()} (${currency ? (CURRENCY_MAP[currency] || '') : otherSymbol})`;\r\n\r\nconst viewRentAdjustmentDataFormatter = (response) => {\r\n const processedData = response;\r\n const { data = [], relationalData: { tenant = [], unit = [], unitType = [] } = {} } = processedData;\r\n const unitTypes = unitType.reduce((a, v) => ({ ...a, [v.id]: v }), {});\r\n const units = unit.reduce((a, v) => ({ ...a, [v.id]: v }), {});\r\n const tenants = {};\r\n tenant.forEach((el) => {\r\n const { ledger = [] } = el;\r\n ledger.forEach((singleLedger) => { tenants[singleLedger.id] = { ...el, ledger: [singleLedger] }; });\r\n });\r\n // filtering out rented units data\r\n const newData = [];\r\n data.forEach((el) => {\r\n const { unit: unitId = '' } = el;\r\n const { [unitId]: { status = '', rentalStatus = '', ledger: { id = '' } = {}, unitType: { id: unitTypeId = '' } = {}, label = '', period = '', currentRate = '', recurringCharges = [] } = {} } = units;\r\n if (rentalStatus === RENTAL_STATUS.Rented.value && status !== STATUS.Inactive.value) {\r\n const tenantTemp = tenants[id];\r\n newData.push({ ...el, ledger: { id }, tenant: tenantTemp, unitType: unitTypes[unitTypeId], label, period, currentRate, recurringCharges });\r\n }\r\n });\r\n processedData.data = newData;\r\n return processedData;\r\n};\r\n\r\nexport { getLabelWithSymbol, viewRentAdjustmentDataFormatter };\r\n","import { SEVERITY_LEVEL } from '../config/Constants';\r\n\r\nconst formatterStyle = theme => ({\r\n indicator: {\r\n fontSize: '0.5rem',\r\n cursor: 'default',\r\n },\r\n required: { color: theme.palette.error.main },\r\n disabled: { color: theme.palette.text.disabled },\r\n input: ({ isTenantAlert } = {}) => ({\r\n textAlign: isTenantAlert ? 'center' : 'flex-start',\r\n height: '100%',\r\n paddingBottom: theme.spacing(0.375),\r\n paddingTop: isTenantAlert ? theme.spacing(1) : theme.spacing(1.25),\r\n }),\r\n dropdown: { width: '100%' },\r\n listItem: { padding: theme.spacing(1) },\r\n iconColor: ({ value = SEVERITY_LEVEL.Warning.value } = {}) => ({ color: theme.palette[value.toLowerCase()].icon }),\r\n topMargin: { marginTop: theme.spacing(0.5) },\r\n checkBoxLabel: { padding: theme.spacing(0, 1) },\r\n icon: { cursor: 'default' },\r\n});\r\n\r\nexport default formatterStyle;\r\n","import { USER_MANAGEMENT_PERMISSION_KEY } from 'Commons/components/business/user/config/Constants';\r\nimport { INVENTORY_PERMISSION_KEYS } from 'External/containers/inventory/list/config/InventoryPermissionKeys';\r\nimport { RESERVATION_PERMISSION_KEYS } from 'External/containers/createoccupancy/config/PermissionKeys';\r\nimport { ROUTE } from 'External/redux/config/RouteNames';\r\nimport { RENT_ADJUSTMENT_KEYS } from 'External/containers/operations/components/rentAdjustment/config/PermissionKey';\r\nimport { CONFIGURATION_PERMISSION_KEYS } from 'External/containers/configuration/config/PermissionKeys';\r\n\r\n/**\r\n * Structure of Dependency Config\r\n * Dependency Config contains all component names at the top level.\r\n * If it is not a component name it is considered as a route.\r\n * To specify config by Component Name:\r\n * DependencyConfig['componentName'] = {\r\n * critical: {\r\n * 'storeKey1': { //Each key can specify the list of dependencies\r\n * dependency: ['storeKey2', 'storeKey3']\r\n * },\r\n * }, // These are the critical keys that the component requires to even load.\r\n * lazy: {\r\n * 'storeKey4': {\r\n * dependency: ['storeKey5', 'storeKey6']\r\n * }\r\n * }, // These are the lazy store keys that needs to be loaded after the component is loaded\r\n * onDemand: {\r\n *\r\n * }, // These are the storeKeys that the component can have access to when needed, but will always listen.\r\n * onMount: {\r\n *\r\n * }, // The store keys to be fetched after the hoc has been mounted.\r\n * }\r\n * To specify config by Route:\r\n * Route: '/a/facilities/45/units'\r\n * DependencyConfig['a']['facilities/:id']['units]\r\n * While resolving the route directly,\r\n * We traverse the config from the top most level.\r\n * At Each level the critical keys are resolved along with its dependencies\r\n */\r\n\r\nconst tenantFormCriticalKeys = {\r\n requiredFields: {},\r\n suggestedFields: {},\r\n taxExemptCategory: {},\r\n tenantSections: {},\r\n paymentMethod: {},\r\n gate: {},\r\n cardProcessor: {},\r\n financialPayment: {},\r\n leaseStyle: {},\r\n};\r\n\r\nconst tenantFormOnMountKeys = {\r\n requiredFields: {},\r\n suggestedFields: {},\r\n taxExemptCategory: {},\r\n tenantSections: {},\r\n paymentMethod: { funcName: 'resolveActivePaymentMethod' },\r\n gate: {},\r\n cardProcessor: {},\r\n financialPayment: {},\r\n leaseStyle: {},\r\n};\r\n\r\nconst tenantFormConfig = {\r\n critical: {\r\n ...tenantFormCriticalKeys,\r\n ledgerAccessCode: {},\r\n },\r\n onDemand: { tenant: {}, facility: {} },\r\n onMount: {\r\n ...tenantFormOnMountKeys,\r\n ledgerAccessCode: {},\r\n },\r\n};\r\n\r\nconst leadFormConfig = { onDemand: { lead: {} }, critical: { suggestedFields: {} }, onMount: { suggestedFields: {} } };\r\n\r\nconst editUserFormConfig = {\r\n critical: { userRole: {}, facility: {}, userProfile: {} },\r\n lazy: { account: {}, businessGroup: {} },\r\n onMount: { facility: {} },\r\n onDemand: { user: {} },\r\n permissionKey: USER_MANAGEMENT_PERMISSION_KEY,\r\n};\r\n\r\nconst createUserFormConfig = {\r\n critical: { userRole: {}, facility: {} },\r\n lazy: { account: {}, businessGroup: {} },\r\n onMount: { facility: {} },\r\n onDemand: { user: {} },\r\n permissionKey: USER_MANAGEMENT_PERMISSION_KEY,\r\n};\r\n\r\nconst reportWcConfig = {\r\n critical: { standaloneApp: {} },\r\n onDemand: {\r\n facility: {},\r\n userProfile: {},\r\n reportCategory: {},\r\n reports: {},\r\n permissionRoles: {},\r\n currentFacility: {},\r\n currentAccountId: {},\r\n },\r\n lazy: { users: {}, userRole: {} },\r\n};\r\n\r\nconst occupancyConfig = {\r\n onDemand: {\r\n unit: {},\r\n tenant: {},\r\n ledgerAccessCode: {},\r\n unitAccessCode: {},\r\n vacantUnitsCountByUnitType: {},\r\n vacantAndReservedUnitsCountByUnitType: {},\r\n printer: {},\r\n },\r\n critical: { ...tenantFormCriticalKeys, preRequisite: {}, gate: {}, facilityGeneral: {} },\r\n onMount: { ...tenantFormOnMountKeys, gate: {}, facilityGeneral: {} },\r\n};\r\n\r\nconst bevConfig = {\r\n onDemand: { placeholder: {} },\r\n critical: { unitBevMini: {}, level: {}, bevColors: {}, facilityGeneral: {}, maintenanceEvent: {}, lateEvent: {}, rentalGeneral: {} },\r\n lazy: { unitBev: {} },\r\n onMount: { level: {}, bevColors: {}, facilityGeneral: {}, maintenanceEvent: {}, lateEvent: {}, placeholder: {}, rentalGeneral: {} },\r\n};\r\n\r\nconst externalConfig = {\r\n critical: {\r\n facility: {},\r\n currentFacility: { dependency: ['facility'] },\r\n permission: { dependency: ['currentFacility'] },\r\n },\r\n onDemand: { userProfile: {}, permissionRoles: {} },\r\n onMount: { facility: {}, currentFacility: {}, permission: {} },\r\n [ROUTE.ONBOARDING]: { critical: { onboarding: {}, chargeCategory: {} }, onMount: { chargeCategory: {} } },\r\n [ROUTE.DELINQUENCY_LIST]: { lazy: { delinquency: {} } },\r\n [ROUTE.TENANT_LIST]: { lazy: { tenant: {} } },\r\n [ROUTE.RESERVATION_LIST]: { lazy: { reservation: {} } },\r\n [ROUTE.DOCS_RB]: { lazy: { reprintDocuments: {} } },\r\n [ROUTE.DOCS_GD]: {\r\n critical: { unitForDocuments: {} },\r\n lazy: { tenantsForDocument: {} },\r\n onMount: { unitForDocuments: {} },\r\n },\r\n [ROUTE.WAITING_LIST]: { lazy: { waitingList: {} } },\r\n // NOTE: Temporary for financial List page\r\n [ROUTE.FINANCIAL_LIST]: {\r\n critical: { chargeCategory: {}, paymentMethod: {} },\r\n onMount: { chargeCategory: { funcName: 'resolveChargeCategoryWithRestricted' }, paymentMethod: {} },\r\n lazy: { ar: {}, cash: {} },\r\n },\r\n [ROUTE.UNIT_LIST]: { lazy: { unit: {} } },\r\n [ROUTE.POINT_OF_SALE]: {\r\n lazy: { inventoryList: {} },\r\n critical: { inventory: {} },\r\n onMount: { inventory: {} },\r\n },\r\n [ROUTE.RETAIL_SALE_RETURNS]: {\r\n critical: { financialPayment: {} },\r\n onMount: { financialPayment: {} },\r\n permissionKey: INVENTORY_PERMISSION_KEYS.RETURN_INVENTORY,\r\n },\r\n [ROUTE.CONVERSATIONS]: {\r\n lazy: { textConversation: {}, emailConversation: {} },\r\n critical: { textOrEmailUnreadCount: {} },\r\n onDemand: { text: {} },\r\n },\r\n [ROUTE.OPERATIONS]: {\r\n onDemand: {\r\n savedDocument: {},\r\n creditCardBatches: {},\r\n unit: {},\r\n unitType: {},\r\n viewRentAdjustmentGrid: {},\r\n rentAdjustmentGrid: {},\r\n tenant: {},\r\n },\r\n [ROUTE.OPERATIONS_MAINTENANCE_EVENTS_LIST]: { lazy: { maintenanceOperation: {} } },\r\n [ROUTE.MANUAL_LATE_EVENT]: {\r\n lazy: { manualLateEvent: {} },\r\n critical: { lateEvent: {} },\r\n onMount: { lateEvent: { funcName: 'resolveActiveLateEvents' } },\r\n },\r\n [ROUTE.RENT_ADJUSTMENT_LIST]: { lazy: { rentAdjustment: {} } },\r\n [ROUTE.AUTO_RENT_ADJUSTMENT_CREATE]: {\r\n critical: { rentalGeneral: {} },\r\n onMount: { rentalGeneral: {} },\r\n lazy: { rentAdjustmentGrid: {} },\r\n permissionKey: RENT_ADJUSTMENT_KEYS.SCHEDULE,\r\n },\r\n [ROUTE.VIEW_RENT_ADJUSTMENT]: { lazy: { viewRentAdjustmentGrid: {} } },\r\n [ROUTE.FINANCIAL_EXPORT]: { critical: { lastFinancialExport: {} } },\r\n },\r\n [ROUTE.VENDOR_LIST]: { lazy: { vendor: {} }, onDemand: { inventoryList: {} } },\r\n [ROUTE.INVENTORY_LIST]: { lazy: { inventoryList: {} }, onDemand: { inventoryList: {} } },\r\n [ROUTE.LEAD_LIST]: { lazy: { lead: {} } },\r\n [ROUTE.EDIT_TENANT]: { ...tenantFormConfig },\r\n [ROUTE.CREATE_TENANT]: { ...tenantFormConfig },\r\n [ROUTE.CREATE_LEAD]: { ...leadFormConfig },\r\n [ROUTE.EDIT_LEAD]: { ...leadFormConfig, lazy: { estimate: {} } },\r\n\r\n // NOTE: Temporary for financial List page\r\n [ROUTE.CREATE_AR]: { onDemand: { unit: {} } },\r\n [ROUTE.MOVE_IN]: {\r\n ...occupancyConfig,\r\n permissionKey: 'moveIn',\r\n critical: {\r\n ...occupancyConfig.critical,\r\n paymentMethod: {},\r\n moveIn: {},\r\n invoicing: {},\r\n leaseStyle: {},\r\n vehicle: {},\r\n letter: {},\r\n },\r\n onMount: {\r\n ...occupancyConfig.onMount,\r\n paymentMethod: {},\r\n tenantWebsites: {},\r\n moveIn: {},\r\n invoicing: {},\r\n leaseStyle: {},\r\n vehicle: {},\r\n letter: {},\r\n },\r\n lazy: { tenantWebsites: {}, ledgerAccessCode: {} },\r\n },\r\n [ROUTE.TRANSFER]: {\r\n permissionKey: 'moveIn',\r\n critical: {\r\n leaseStyle: {},\r\n transfer: {},\r\n preRequisite: {},\r\n gate: {},\r\n paymentMethod: {},\r\n vacantUnitsCountByUnitType: {},\r\n },\r\n onMount: {\r\n gate: {},\r\n leaseStyle: {},\r\n transfer: {},\r\n paymentMethod: {},\r\n },\r\n onDemand: { unitAccessCode: {}, ledgerAccessCode: {} },\r\n },\r\n [ROUTE.RESERVATION]: { ...occupancyConfig, permissionKey: RESERVATION_PERMISSION_KEYS.ACCESS },\r\n [ROUTE.EDIT_RESERVATION]: { ...occupancyConfig },\r\n [ROUTE.ESTIMATE]: { ...occupancyConfig },\r\n [ROUTE.WAITING]: { ...occupancyConfig },\r\n [ROUTE.EDIT_WAITING]: { ...occupancyConfig },\r\n [ROUTE.MOVE_OUT]: {\r\n onDemand: { unit: {}, tenant: {} },\r\n permissionKey: 'moveOut',\r\n critical: {\r\n unitType: {},\r\n rentalGeneral: {},\r\n customerGeneral: {},\r\n moveOut: {},\r\n paymentMethod: {},\r\n cardProcessor: {},\r\n requiredFields: {},\r\n suggestedFields: {},\r\n financialPayment: {},\r\n },\r\n onMount: {\r\n unitType: {},\r\n rentalGeneral: {},\r\n customerGeneral: {},\r\n moveOut: {},\r\n paymentMethod: {},\r\n cardProcessor: {},\r\n requiredFields: {},\r\n suggestedFields: {},\r\n financialPayment: {},\r\n },\r\n },\r\n [ROUTE.BEV_VIEW]: { ...bevConfig },\r\n [ROUTE.BEV_SETUP]: { ...bevConfig },\r\n [ROUTE.VIEW_TENANT]: {\r\n critical: {\r\n paymentMethod: {},\r\n invoicing: {},\r\n taxExemptCategory: {},\r\n gate: {},\r\n facilityGeneral: {},\r\n leaseStyle: {},\r\n letter: {},\r\n requiredFields: {},\r\n suggestedFields: {},\r\n },\r\n onMount: {\r\n paymentMethod: {},\r\n tenantWebsites: {},\r\n invoicing: {},\r\n taxExemptCategory: {},\r\n gate: {},\r\n facilityGeneral: {},\r\n leaseStyle: {},\r\n letter: {},\r\n requiredFields: {},\r\n suggestedFields: {},\r\n },\r\n onDemand: { savedDocument: {} },\r\n lazy: { tenantWebsites: {} },\r\n },\r\n [ROUTE.LEDGER_REVIEW]: {\r\n lazy: { ar: {} },\r\n critical: { cardProcessor: {}, financialPayment: {}, paymentMethod: {}, financialGeneral: {} },\r\n onMount: { cardProcessor: {}, financialPayment: {}, paymentMethod: {}, financialGeneral: {} },\r\n },\r\n [ROUTE.USER_PROFILE]: { critical: { facility: {}, userProfile: {} } },\r\n [ROUTE.REPORT_WC]: { ...reportWcConfig },\r\n [ROUTE.PENDING_OVERLOCK_UNLOCK_LIST]: { lazy: { unitsPendingOverlockUnlock: {} } },\r\n [ROUTE.AUTOMATIC_CREDIT_CARD_DECLINES_LIST]: {\r\n lazy: { automaticCreditCardDeclines: {} },\r\n critical: { financialPayment: {} },\r\n onMount: { financialPayment: {} },\r\n },\r\n [ROUTE.FAILED_RETURNS_LIST]: { lazy: { failedReturns: {} } },\r\n [ROUTE.TENANT_CHANGES]: { critical: { tenantChangeTypeCount: {} } },\r\n [ROUTE.PRINT_FAILURES]: { lazy: { printFailures: {} }, critical: { subDocumentPrintFailures: {} } },\r\n [ROUTE.OTHER_EXTERNAL_ACTIVITY('moveIn')]: { lazy: { moveInSearch: {} } },\r\n [ROUTE.OTHER_EXTERNAL_ACTIVITY('reservation')]: { lazy: { reservation: {} } },\r\n [ROUTE.OTHER_EXTERNAL_ACTIVITY('payment')]: { lazy: { payment: {} } },\r\n [ROUTE.VEHICLE]: {\r\n critical: {\r\n requiredFields: {},\r\n suggestedFields: {},\r\n },\r\n onMount: {\r\n requiredFields: {},\r\n suggestedFields: {},\r\n },\r\n lazy: { vehicleData: {} },\r\n },\r\n [ROUTE.OPERATIONS_CREDIT_CARD_BATCH_CREATE]: {\r\n critical: { paymentMethod: {}, financialPayment: {} },\r\n onMount: { paymentMethod: {}, financialPayment: {} },\r\n lazy: { ccBatchTenants: {} },\r\n },\r\n [ROUTE.SINGLE_UNIT_RENT_ADJUSTMENT]: {\r\n critical: { pendingRentAdjustmentsForAUnit: {} },\r\n onMount: { pendingRentAdjustmentsForAUnit: { funcName: 'resolvePendingRentAdjustmentsForAUnit' } },\r\n lazy: { unit: {} },\r\n },\r\n [ROUTE.DELIVER_INVOICE]: {\r\n critical: { invoicing: {} },\r\n lazy: { pendingInvoiceDelivery: {} },\r\n onMount: { invoicing: {} },\r\n },\r\n [ROUTE.EMAIL_AUDIT]: {\r\n onMount: { emailAudit: {} },\r\n lazy: { emailAudit: {} },\r\n },\r\n};\r\n\r\nconst configurationDependencies = {\r\n critical: { facility: {} },\r\n lazy: { businessGroup: {} },\r\n onDemand: { permissionRoles: {}, userProfile: {} },\r\n [ROUTE.CHARGE_CATEGORY_LIST]: { lazy: { chargeCategory: {} }, onDemand: { taxCode: {} } },\r\n // NOTE: Permission key for charge category will only work at facility level, it will fail for BG for now\r\n // TODO: Depending on selected level check the right permission key\r\n [ROUTE.CHARGE_CATEGORY]: { permissionKey: CONFIGURATION_PERMISSION_KEYS.FACILITY_ACCESS_FINANCIAL_GROUPING },\r\n [ROUTE.CARD_PROCESSOR_LIST]: { lazy: { cardProcessor: {} } },\r\n [ROUTE.TAX_CODE_LIST]: { lazy: { taxCode: {} }, onDemand: { chargeCategory: {} } },\r\n [ROUTE.TAX_EXEMPT_LIST]: { lazy: { taxExemptCategory: {} }, onDemand: { taxCode: {} } },\r\n [ROUTE.PAYMENT_METHOD_LIST]: { lazy: { paymentMethod: {} } },\r\n [ROUTE.UNIT_TYPE_LIST]: { lazy: { unitType: {} }, onDemand: { chargeCategory: {} } },\r\n [ROUTE.PROMO_PLAN_LIST]: { lazy: { promoPlan: {} }, onDemand: { chargeCategory: {} } },\r\n [ROUTE.PROMO_PLAN_TEMPLATE_LIST]: { lazy: { promoPlanTemplate: {} } },\r\n [ROUTE.LETTER_LIST]: { lazy: { letter: {} } },\r\n [ROUTE.LETTER_CONFIGURATION]: { onDemand: { customMergeFields: {} } },\r\n [ROUTE.LATE_EVENT_LIST]: { lazy: { lateEvent: {} } },\r\n [ROUTE.LATE_EVENT_FORM]: { lazy: { unitType: {} }, onMount: { unitType: {} } },\r\n [ROUTE.BEV_COLOR_SETUP]: { lazy: { bevColors: {} }, onMount: { bevColors: {} } },\r\n [ROUTE.MAINTENANCE_EVENT_LIST]: { lazy: { maintenanceEvent: {} }, onDemand: { chargeCategory: {} } },\r\n [ROUTE.LEASE_STYLE_LIST]: { lazy: { leaseStyle: {} } },\r\n [ROUTE.INSURANCE]: { lazy: { insuranceCoverage: {} } },\r\n [ROUTE.INTERNAL_APP]: { critical: { standaloneApp: {} } },\r\n [ROUTE.UNIT_TYPE_FORM]: { critical: { rentalGeneral: {} }, onMount: { rentalGeneral: {} } },\r\n [ROUTE.UNIT_TYPE_BULK]: {\r\n critical: { rentalGeneral: {}, unitType: {}, chargeCategory: {} },\r\n onMount: { rentalGeneral: {}, unitType: {}, chargeCategory: {} },\r\n },\r\n [ROUTE.VIOLATION_LIST]: { lazy: { violation: {} } },\r\n [ROUTE.VIOLATION_CONFIGURATION]: { lazy: { violation: {} }, critical: { chargeCategory: {} }, onMount: { chargeCategory: {} } },\r\n};\r\n\r\nconst settingsDependencies = {\r\n critical: {\r\n userProfile: {},\r\n facility: { dependency: ['userProfile'] },\r\n currentFacility: { dependency: ['facility'] },\r\n permission: { dependency: ['currentFacility'] },\r\n },\r\n onDemand: { userProfile: {}, permissionRoles: {} },\r\n onMount: { permission: {}, currentFacility: {}, permissionRoles: {} },\r\n [ROUTE.USER_PROFILE]: { critical: { facility: {}, userProfile: {} } },\r\n [ROUTE.USER_LIST]: {\r\n lazy: { user: {} },\r\n onDemand: { userProfile: {} },\r\n permissionKey: USER_MANAGEMENT_PERMISSION_KEY,\r\n },\r\n [ROUTE.CREATE_USER]: { ...createUserFormConfig },\r\n [ROUTE.EDIT_USER]: { ...editUserFormConfig },\r\n [ROUTE.USER_ROLE]: { critical: { userRole: {}, userProfile: {} }, permissionKey: USER_MANAGEMENT_PERMISSION_KEY },\r\n [ROUTE.EDIT_USER_ROLE]: {\r\n critical: { userRole: {}, userProfile: {} },\r\n permissionKey: USER_MANAGEMENT_PERMISSION_KEY,\r\n },\r\n [ROUTE.CREATE_ROLE]: {\r\n critical: { userRole: {}, userProfile: {} },\r\n permissionKey: USER_MANAGEMENT_PERMISSION_KEY,\r\n },\r\n [ROUTE.CONFIGURATION]: { ...configurationDependencies },\r\n [ROUTE.SYSTEM_CONFIGURATION]: { ...configurationDependencies },\r\n [ROUTE.REPORT_WC]: { ...reportWcConfig },\r\n [ROUTE.CONSOLIDATED_REPORT_WC]: { ...reportWcConfig },\r\n};\r\n\r\nconst liveDataConfig = {\r\n ...externalConfig,\r\n critical: {\r\n ...externalConfig.critical,\r\n currentAccountId: { dependency: ['facility'] },\r\n },\r\n onMount: {\r\n ...externalConfig.onMount,\r\n facility: {},\r\n currentAccountId: {},\r\n },\r\n};\r\n\r\nconst liveSettingsConfig = {\r\n ...settingsDependencies,\r\n critical: {\r\n ...settingsDependencies.critical,\r\n currentAccountId: { dependency: ['facility'] },\r\n },\r\n onMount: {\r\n ...settingsDependencies.onMount,\r\n facility: {},\r\n currentAccountId: {},\r\n },\r\n [ROUTE.CONFIGURATION]: {\r\n ...settingsDependencies[ROUTE.CONFIGURATION],\r\n onMount: { ...settingsDependencies[ROUTE.CONFIGURATION].onMount, facility: {} },\r\n },\r\n [ROUTE.SYSTEM_CONFIGURATION]: {\r\n ...settingsDependencies[ROUTE.SYSTEM_CONFIGURATION],\r\n onMount: { ...settingsDependencies[ROUTE.SYSTEM_CONFIGURATION].onMount, facility: {} },\r\n },\r\n};\r\n\r\nconst DependencyConfig = {\r\n Header: { onDemand: { userProfile: {}, facility: {}, permissionRoles: {}, businessGroup: {} } },\r\n Login: { onDemand: { userProfile: {} } },\r\n PendingTasks: {\r\n lazy: {\r\n printFailuresCount: {},\r\n pendingOverlockUnlockCount: {},\r\n restockInventoryCount: {},\r\n inventoryAuditCount: {},\r\n applyLateEventsCount: {},\r\n pastDueReservationsCount: {},\r\n automaticCreditCardDeclinesCount: {},\r\n userProfile: {},\r\n failedReturnsCount: {},\r\n tenantChangesCount: {},\r\n moveInCount: {},\r\n tfwReservationCount: {},\r\n paymentCount: {},\r\n textOrEmailUnreadCount: {},\r\n ccAboutToExpire: {},\r\n pendingInvoiceDeliveryCount: {},\r\n },\r\n critical: { tenantWebsites: {}, gate: {} },\r\n onMount: { tenantWebsites: {}, gate: {} },\r\n },\r\n TenantInvalidAccessCodeList: { lazy: { tenantsWithInvalidAccessCodes: {} } },\r\n UnitInvalidAccessCodeList: { lazy: { unitsWithInvalidAccessCodes: {} } },\r\n [ROUTE.EXTERNAL_MAIN]: { ...externalConfig },\r\n [ROUTE.LIVE_DATA]: { ...liveDataConfig },\r\n [ROUTE.PULLED_DATA]: { ...liveDataConfig },\r\n TenantForm: { ...tenantFormConfig },\r\n LeadForm: { ...leadFormConfig, lazy: { estimate: {} } },\r\n UnitForm: {\r\n critical: { level: {}, gate: {}, leaseStyle: {}, moveIn: {} },\r\n onMount: { level: {}, gate: {}, leaseStyle: {}, moveIn: {} },\r\n onDemand: { rateHistory: {}, unitAccessCode: {} },\r\n },\r\n RateHistory: { lazy: { rateHistory: {} } },\r\n LateEvents: { lazy: { lateEvents: {} }, onDemand: { lateEvents: {} } },\r\n VendorForm: { onDemand: { vendor: {} } },\r\n InventoryAudit: { critical: { inventory: {}, inventoryList: {} }, onMount: { inventory: {} } },\r\n InventoryBulkRestock: { critical: { inventoryList: {} } },\r\n InventoryIndividualRestock: { onDemand: { inventoryList: {} } },\r\n InventoryForm: { onDemand: { inventoryList: {} }, critical: { inventory: {} }, onMount: { inventory: {} } },\r\n PointOfSale: {\r\n lazy: { inventoryList: {} },\r\n critical: { inventory: {}, financialPayment: {} },\r\n onMount: { inventory: {}, financialPayment: {} },\r\n },\r\n HomePage: { onDemand: { userProfile: {} } },\r\n Payment: {\r\n critical: { paymentMethod: {}, financialPayment: {}, cardProcessor: {}, userProfile: {}, promoPlan: {} },\r\n permissionKey: 'payment',\r\n onMount: {\r\n paymentMethod: { funcName: 'resolveActivePaymentMethod' },\r\n financialPayment: {},\r\n cardProcessor: { funcName: 'resolveActiveCardProcessor' },\r\n promoPlan: { funcName: 'resolvePaymentAccessiblePromoPlans' },\r\n },\r\n },\r\n DeliveryMethodDropdown: { onDemand: { printer: {}, currentFacility: {} } },\r\n Documentation: { lazy: { savedDocument: {} } },\r\n TenantAlerts: { lazy: { tenantAlert: {} } },\r\n UnpaidBills: { lazy: { unpaidAr: {} } },\r\n ReservationCRM: { lazy: { reservation: {} } },\r\n ContactLog: { lazy: { contactLog: {} } },\r\n TenantDeposit: { lazy: { tenantDepositToBePaid: {} } },\r\n WrappedInventoryBulkRestock: { lazy: { inventoryList: {} } },\r\n WrappedInventoryAudit: { lazy: { inventoryList: {} } },\r\n SearchableDropdown: { onDemand: { timezone: {} } },\r\n AllBatches: { lazy: { savedDocument: {} } },\r\n CurrentBatch: { lazy: { achTransaction: {} } },\r\n CreditCardBatches: { lazy: { creditCardBatches: {} } },\r\n TextList: { lazy: { text: {} } },\r\n EmailList: { lazy: { email: {} } },\r\n TextOrEmailSelection: {\r\n lazy: {\r\n textConversation: {},\r\n emailConversation: {},\r\n },\r\n onDemand: { textOrEmailUnreadCount: {} },\r\n },\r\n ListOrCompose: { onDemand: { text: {} } },\r\n UnitDepositUpdate: { lazy: { unit: {} }, onDemand: { unit: {} } },\r\n DepositUpdate: { lazy: { unit: {}, tenant: {} }, onDemand: { unit: {}, tenant: {} } },\r\n TenantDepositUpdate: { lazy: { tenant: {} }, onDemand: { tenant: {} } },\r\n\r\n [ROUTE.SETTINGS_MAIN]: { ...settingsDependencies },\r\n [ROUTE.SETTINGS_LIVE]: { ...liveSettingsConfig },\r\n [ROUTE.SETTINGS_PULLED]: { ...liveSettingsConfig },\r\n TenantAddressChanges: { lazy: { tenantAddressChanges: {} }, onDemand: { tenantAddressChanges: {} } },\r\n TenantAlternateContactChanges: {\r\n lazy: { tenantAlternateContactChanges: {} },\r\n onDemand: { tenantAlternateContactChanges: {} },\r\n },\r\n TenantEmailChanges: { lazy: { tenantEmailChanges: {} }, onDemand: { tenantEmailChanges: {} } },\r\n TenantPhoneChanges: { lazy: { tenantPhoneChanges: {} } },\r\n GenerateLeaseAgreement: {\r\n critical: { moveIn: {}, leaseStyle: {} },\r\n onMount: { moveIn: {}, leaseStyle: {} },\r\n },\r\n LetterTemplateList: { lazy: { sampleLetter: {} }, onMount: { sampleLetter: {} } },\r\n LeaseStyleBulk: { lazy: { unitType: {} }, critical: { leaseStyle: {} }, onMount: { unitType: {}, leaseStyle: {} } },\r\n CCAboutToExpireList: { lazy: { ccAboutToExpire: {} } },\r\n};\r\n\r\nexport default DependencyConfig;\r\n","\r\nconst PATHS = {\r\n AUTO_PAYMENT: 'auto-pay',\r\n RENT_ASSESSMENT: 'ra',\r\n AUTO_INVOICING: 'auto-invoicing',\r\n DELINQUENCY: 'delinquency',\r\n};\r\n\r\nconst INTERNAL_ROUTES = {\r\n INTERNAL_MAIN: 'i',\r\n FACILITY_LIST: 'facility/list',\r\n SCHEDULE_LIST: 'schedule/list',\r\n ASYNC_TASK_LIST: 'async-task/list',\r\n ACCOUNT_MANAGEMENT: 'account-management',\r\n BUSINESS_GROUP_MANAGEMENT: 'business-group-management',\r\n ACCOUNT_LIST: 'account/list',\r\n USER_LIST: 'user/list',\r\n DAILY_SUMMARY_LIST: 'daily-summary/list',\r\n AUTO_PAYMENT_TASK_SUMMARY: `${PATHS.AUTO_PAYMENT}/:summaryId/summary`,\r\n RENT_ASSESSMENT_TASK_SUMMARY: `${PATHS.RENT_ASSESSMENT}/:summaryId/summary`,\r\n DELINQUENCY_TASK_SUMMARY: `${PATHS.DELINQUENCY}/:summaryId/summary`,\r\n SAVED_DOCUMENTS_LIST: 'saved-documents/list',\r\n AUTO_INVOICING_TASK_SUMMARY: `${PATHS.AUTO_INVOICING}/:summaryId/summary`,\r\n EDIT_FACILITY: 'facility/:facilityId/edit',\r\n CREATE_FACILITY: 'facility/create',\r\n EDIT_ACCOUNT: 'account/:accountId/edit',\r\n CREATE_ACCOUNT: 'account/create',\r\n EDIT_USER: 'user/:userId/edit',\r\n CREATE_USER: 'user/create',\r\n DELINQUENCY_TRACKING_OVERVIEW: 'delinquency-tracking',\r\n JOURNAL: 'journal',\r\n SYRASOFT_USER_ROLES: 'syrasoft-user-roles',\r\n EDIT_SYRASOFT_USER_ROLE: 'syrasoft-user-roles/:userType/edit',\r\n USER_PROFILE: 'user-profile/:userId',\r\n SANDBOX: 'sandbox',\r\n MIGRATION: 'migration',\r\n MIGRATION_DETAILS: ':migrationId/migration-details',\r\n FACILITY_VIEW: 'account/:accountId/facility/:fid/view',\r\n USER_SETUP: 'account/:accountId/user/list',\r\n EDIT_USER_SET_UP: 'account/:accountId/user/:userId/edit',\r\n CREATE_USER_SET_UP: 'account/:accountId/user/create',\r\n ACCOUNT_FACILITY_LIST: 'account/:accountId/facility/list',\r\n BUSINESS_GROUP_LIST: 'account/:accountId/bg/list',\r\n BG_LIST: 'bg/list',\r\n FACILITY_CREATE_FROM_ACCOUNT: 'account/:accountId/facility/create',\r\n FACILITY_EDIT_FROM_ACCOUNT: 'account/:accountId/facility/:facilityId/edit',\r\n};\r\n\r\nexport default INTERNAL_ROUTES;\r\n\r\nexport { PATHS as INTERNAL_PATHS };\r\n","/* eslint-disable no-underscore-dangle */\r\nimport { Component } from 'react';\r\nimport { createStore } from 'redux';\r\nimport { Provider } from 'react-redux';\r\nimport { Provider as RollbarProvider } from '@rollbar/react';\r\n\r\n// import { whyDidYouUpdate } from 'why-did-you-update';\r\nimport { SnackbarProvider } from 'notistack';\r\nimport { debounce } from 'Commons/helpers/utils/Utils';\r\nimport { DEFAULT_EXTERNAL_ROUTE } from 'Commons/redux/config/Constants';\r\nimport { ROLLBAR_CONFIG } from 'Commons/config/constants/ErrorTracking';\r\nimport RouterContext from 'Commons/contexts/RouterContext';\r\nimport { getRouter } from 'Commons/helpers/utils/RouteHelpers';\r\nimport Theme from './commons/theme/Theme';\r\nimport reducer from './commons/redux/reducers/reducers';\r\nimport withProvider from './commons/components/business/provider/hoc';\r\nimport { getCookie, deleteCookie } from './commons/redux/helper/CookieManager';\r\nimport {\r\n MuiThemeProvider,\r\n withStyles,\r\n RouterProvider,\r\n} from './commons/components/generic/componentlibrary/components/Components';\r\nimport baseStyle from './commons/theme/styles/BaseStyle';\r\nimport newEventEmitter from './commons/helpers/EventEmitters';\r\nimport ErrorBoundaries from './commons/components/generic/errorboundaries/components/ErrorBoundaries';\r\nimport { screenMaxWidth, screenMinWidth } from './commons/config/constants/ScreenWidths';\r\nimport { getDeviceOSInfo } from './commons/helpers/deviceFingerprint';\r\nimport COOKIE_KEY from './commons/redux/config/CookieKey';\r\n\r\nconst createAStore = () => {\r\n if (process.env.MODE === 'DEV') {\r\n return createStore(\r\n reducer, /* preloadedState, */\r\n window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__(),\r\n );\r\n }\r\n return createStore(reducer);\r\n};\r\nconst store = createAStore();\r\nclass App extends Component {\r\n constructor(props) {\r\n super(props);\r\n window.withProvider = withProvider;\r\n window.deviceInfo = {};\r\n this.HomePage = withProvider('HomePage', this.props, false);\r\n this.state = { isUserLoggedIn: !!getCookie(COOKIE_KEY.TOKEN) };\r\n this.eventEmitter = newEventEmitter;\r\n this.eventEmitter.subscribe('logout', () => {\r\n deleteCookie(COOKIE_KEY.TOKEN);\r\n deleteCookie(COOKIE_KEY.DEFAULT_FACILITY_ID);\r\n deleteCookie(COOKIE_KEY.PAYMENT_TOKEN);\r\n this.setState({ isUserLoggedIn: false }, () => {\r\n const { dispatch } = store;\r\n dispatch(\r\n {\r\n type: 'clear_store',\r\n payload: {},\r\n storeKey: {},\r\n },\r\n );\r\n });\r\n });\r\n this.updateWindowDimensions();\r\n this.updateDeviceInfo();\r\n // if (process.env.MODE !== 'production') {\r\n // whyDidYouUpdate(React);\r\n // }\r\n }\r\n\r\n componentDidMount = () => {\r\n window.addEventListener('resize', this.onResize);\r\n }\r\n\r\n componentWillUnmount = () => {\r\n window.removeEventListener('resize', this.onResize);\r\n }\r\n\r\n onResize = debounce(() => {\r\n this.updateWindowDimensions();\r\n this.forceUpdate();\r\n }, 100);\r\n\r\n updateDeviceInfo = () => {\r\n const { deviceInfo } = window;\r\n deviceInfo.info = getDeviceOSInfo();\r\n }\r\n\r\n updateWindowDimensions = () => {\r\n const { deviceInfo } = window;\r\n deviceInfo.isMobile = window.innerWidth <= screenMaxWidth.mobile;\r\n deviceInfo.isPhablet = (screenMinWidth.phablet <= window.innerWidth)\r\n && (window.innerWidth < screenMaxWidth.phablet);\r\n deviceInfo.isTablet = (screenMinWidth.tablet <= window.innerWidth)\r\n && (window.innerWidth <= screenMaxWidth.tablet);\r\n deviceInfo.isDesktop = (screenMinWidth.laptop <= window.innerWidth);\r\n };\r\n\r\n setUserLoginState = ({ loginStatus, pathToRedirect = '' }) => {\r\n this.setState({ isUserLoggedIn: loginStatus, pathToRedirect });\r\n }\r\n\r\n render() {\r\n const { isUserLoggedIn, pathToRedirect = DEFAULT_EXTERNAL_ROUTE } = this.state;\r\n const redirectTo = isUserLoggedIn ? pathToRedirect : '/';\r\n const { HomePage, setUserLoginState } = this;\r\n const { classes, ...newProps } = this.props;\r\n\r\n const router = getRouter(isUserLoggedIn, newProps, redirectTo, HomePage, setUserLoginState);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nApp.propTypes = { classes: PropTypes.object, deviceInfo: PropTypes.object };\r\n\r\nexport default withStyles(baseStyle)(App);\r\n","import { createEnumMap } from 'Commons/helpers/utils/Formatter';\r\n\r\nconst formatter = label => label.replace(/([A-Z])/g, match => `_${match}`).toUpperCase();\r\nconst MOVE_IN_PERMISSION_KEYS = createEnumMap(\r\n ['period', 'moveInDate', 'editSetupFee', 'waiveSetupFee', 'waiveDeposits', 'editDeposits',\r\n 'prorate', 'billToDate', 'unitRateUp', 'unitRateDown'],\r\n formatter,\r\n);\r\n\r\nconst RESERVATION_PERMISSION_KEYS = createEnumMap(['access', 'waveDeposit'], formatter);\r\n\r\nexport { MOVE_IN_PERMISSION_KEYS, RESERVATION_PERMISSION_KEYS, formatter };\r\n"],"sourceRoot":""}