{"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/otherMethodBatchPaymentTenantsPostProcessor.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/redux/config/RouteNames.js","webpack:///./external/containers/unit/form/config/UnitPermissionKeys.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","batchList","DAILY_SUMMARY_ENDPOINTS","notTerms","paymentMethod","PAYMENT_METHOD","CASH","MONEY_ORDER","CHECK","task","BATCH_PAYMENT_TASKS","Auto_Payment","otherBatches","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","batchTenants","BATCH_PAYMENT_ENDPOINTS","ledgerSearch","gt","otherMethodBatchPaymentTenants","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","resolveViolation","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","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","otherMethodBatchPaymentTenantsPostProcessor","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","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","OPERATIONS_CASH_CHECK_MONEY_ORDER_BATCH_CREATE","OPERATIONS_ACH_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","VIEW_ACH_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","violation","configurationDependencies","promoPlan","promoPlanTemplate","customMergeFields","insuranceCoverage","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","OtherBatches","BatchList","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.c260cd01963be80d23b8.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\":\"1e87d6c7a3896dead983\",\"3\":\"ea67b3aba7930fa097b9\",\"4\":\"e6f3337f4ac102a84901\",\"5\":\"f1ee33a8b5c234587767\",\"6\":\"a852bce55c3555217e07\",\"7\":\"a2da776ca461bf705c11\",\"8\":\"d74daa623d2135eabefb\",\"10\":\"0299f5c9f828134a6fd0\",\"11\":\"4e00b6c78ade7fa35523\",\"12\":\"a96bc777b65628f368c1\",\"13\":\"3834ba453ed84151815d\",\"14\":\"81529b6862a01ebc2777\",\"15\":\"d599291213cc0a4f7ef6\",\"16\":\"a5cd1b84b0064a438307\",\"17\":\"9e9c83f68f4d37130cec\",\"18\":\"4d737ba243a3177b4800\",\"19\":\"3eaff0130281c3e4c125\",\"20\":\"9580d8584a62a19e8622\",\"21\":\"e5bd60e5825abeffbb40\"}[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([1111,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\nimport { PAYMENT_METHOD } from 'Commons/components/business/payment/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 batchList: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: DAILY_SUMMARY_ENDPOINTS.search,\r\n body: {\r\n view: 'detail',\r\n filter: [{\r\n notTerms: { paymentMethod: [PAYMENT_METHOD.CASH, PAYMENT_METHOD.MONEY_ORDER, PAYMENT_METHOD.CHECK] },\r\n terms: { task: [BATCH_PAYMENT_TASKS.Auto_Payment.value] },\r\n }],\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 otherBatches: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: DAILY_SUMMARY_ENDPOINTS.search,\r\n body: {\r\n view: 'detail',\r\n filter: [{\r\n terms: {\r\n task: [BATCH_PAYMENT_TASKS.Auto_Payment.value],\r\n paymentMethod: [PAYMENT_METHOD.CASH, PAYMENT_METHOD.MONEY_ORDER, PAYMENT_METHOD.CHECK],\r\n },\r\n }],\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: {\r\n view: VIEW.detail.value,\r\n filter: [{ terms: { status: [STATUS.Active.value] } }],\r\n },\r\n customHeaderOptions: {\r\n type: 'store',\r\n key: 'facility',\r\n },\r\n },\r\n },\r\n batchTenants: {\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 otherMethodBatchPaymentTenants: {\r\n read: {\r\n methodType: 'POST',\r\n endPoint: TENANT_ENDPOINTS.search,\r\n body: {\r\n view: VIEW.detail.value,\r\n size: 10000,\r\n filter: [\r\n { range: { ledger: { balance: { gt: 0 } } } },\r\n ],\r\n sort: [{ name: { lastName: { order: 'asc' }, firstName: { order: 'asc' } } }],\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 resolveViolation: (store = {}) => resolveConfiguration(store, 'Violation'),\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 STATUS from 'Commons/config/constants/StoreKeyStatus';\r\nimport baseProcessor from 'Commons/redux/postProcessor/BaseProcessor';\r\n\r\nconst otherMethodBatchPaymentTenantsPostProcessor = (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 } = {} } = processedData || {};\r\n const data = [];\r\n\r\n const { storeData: { otherMethodBatchPaymentTenants: { 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 = [], name } = tenant;\r\n ledger.forEach((eachLedger) => {\r\n const { id, balance, label } = eachLedger;\r\n data.push({ tenantName: name, ledgerId: id, label, balance, ...eachLedger });\r\n });\r\n newTotalCount += (ledger.length - 1);\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 { otherMethodBatchPaymentTenantsPostProcessor };\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\nimport { otherMethodBatchPaymentTenantsPostProcessor } from './otherMethodBatchPaymentTenantsPostProcessor';\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 otherMethodBatchPaymentTenantsPostProcessor,\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","\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 OPERATIONS_CASH_CHECK_MONEY_ORDER_BATCH_CREATE: `${PATHS.OPERATIONS_BATCH_PAYMENT}/other-batch/create`,\r\n OPERATIONS_ACH_CREATE: `${PATHS.OPERATIONS_BATCH_PAYMENT}/ach/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: 'cc-batch/:batchId/view',\r\n VIEW_ACH_BATCH: 'ach-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","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","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', 'Email_Template',\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 batchList: {},\r\n unit: {},\r\n unitType: {},\r\n viewRentAdjustmentGrid: {},\r\n rentAdjustmentGrid: {},\r\n tenant: {},\r\n otherBatches: {},\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: {}, violation: {} },\r\n onMount: { cardProcessor: {}, financialPayment: {}, paymentMethod: {}, financialGeneral: {}, violation: {} },\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 vehicle: {},\r\n },\r\n onMount: {\r\n requiredFields: {},\r\n suggestedFields: {},\r\n vehicle: {},\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: { batchTenants: {} },\r\n },\r\n [ROUTE.OPERATIONS_ACH_CREATE]: {\r\n critical: { paymentMethod: {}, financialPayment: {} },\r\n onMount: { paymentMethod: {}, financialPayment: {} },\r\n lazy: { batchTenants: {} },\r\n },\r\n [ROUTE.OPERATIONS_CASH_CHECK_MONEY_ORDER_BATCH_CREATE]: {\r\n critical: { paymentMethod: {}, financialPayment: {} },\r\n onMount: { paymentMethod: {}, financialPayment: {} },\r\n lazy: { otherMethodBatchPaymentTenants: {} },\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.TENANT_WEBSITES]: { onDemand: { customMergeFields: {} } },\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: {}, vehicle: {} },\r\n onMount: { tenantWebsites: {}, gate: {}, vehicle: {} },\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 OtherBatches: { lazy: { otherBatches: {} } },\r\n BatchList: { lazy: { batchList: {} } },\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":""}