{"version":3,"file":"js/react_app-91ba99f2c73ec8070624.js","mappings":"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","sources":["webpack://app/./app/javascript/components/ sync ^\\.\\/.*$","webpack://app/./app/javascript/pages/ lazy ^\\.\\/.*\\/.*$ namespace object","webpack://app/./app/javascript/pages/ sync ^\\.\\/.*$","webpack://app/./app/javascript/assets/icons/NoBudgetData.svg","webpack://app/./app/javascript/assets/icons/Tasks-Outlined.svg","webpack://app/./app/javascript/api/AssetRegistry.ts","webpack://app/./app/javascript/api/Bill.ts","webpack://app/./app/javascript/api/CurrentUser.ts","webpack://app/./app/javascript/api/FixedAssetAdditions.ts","webpack://app/./app/javascript/api/budgets.ts","webpack://app/./app/javascript/api/dimensions.ts","webpack://app/./app/javascript/api/recurring_transactions.ts","webpack://app/./app/javascript/components/EditableTable/index.tsx","webpack://app/./app/javascript/components/Errors/ServerError.tsx","webpack://app/./app/javascript/components/form/SelectWithSearch/index.tsx","webpack://app/./app/javascript/components/layout/AntdWithTheme.tsx","webpack://app/./app/javascript/components/layout/BackButton.tsx","webpack://app/./app/javascript/components/layout/Footer.tsx","webpack://app/./app/javascript/components/layout/Header.tsx","webpack://app/./app/javascript/components/layout/Logo.tsx","webpack://app/./app/javascript/components/layout/NoMatch.tsx","webpack://app/./app/javascript/components/layout/Portal.tsx","webpack://app/./app/javascript/components/layout/QContent.tsx","webpack://app/./app/javascript/components/layout/QIcon.tsx","webpack://app/./app/javascript/components/layout/QOnBoardingIndex.tsx","webpack://app/./app/javascript/components/layout/QPageHeader.tsx","webpack://app/./app/javascript/components/layout/QPageLayout.tsx","webpack://app/./app/javascript/components/layout/QReportContent.tsx","webpack://app/./app/javascript/components/layout/QReportLayout.tsx","webpack://app/./app/javascript/components/layout/QServiceContent.tsx","webpack://app/./app/javascript/components/layout/QServiceLayout.tsx","webpack://app/./app/javascript/components/layout/QStatusTag.tsx","webpack://app/./app/javascript/assets/icons/Bills-Outlined.svg","webpack://app/./app/javascript/assets/icons/ManualJornal-Outlined.svg","webpack://app/./app/javascript/assets/icons/Reports-Outlined.svg","webpack://app/./app/javascript/assets/icons/Customers-Outlined.svg","webpack://app/./app/javascript/assets/icons/Products-Outlined.svg","webpack://app/./app/javascript/assets/icons/Cutsomer Receipts-Outlined.svg","webpack://app/./app/javascript/assets/icons/Projects-Outlined.svg","webpack://app/./app/javascript/assets/icons/Vendor Receipts-Outlined.svg","webpack://app/./app/javascript/assets/icons/FolderOpen-r.svg","webpack://app/./app/javascript/assets/icons/dimension_settings.svg","webpack://app/./app/javascript/assets/icons/Purchases Orders.svg","webpack://app/./app/javascript/assets/icons/Vendors-Outlined.svg","webpack://app/./app/javascript/assets/icons/Inovice-Outlined.svg","webpack://app/./app/javascript/assets/icons/Quotations-Outlined.svg","webpack://app/./app/javascript/assets/icons/Deductions-Outlined.svg","webpack://app/./app/javascript/assets/icons/Loan-Outlined.svg","webpack://app/./app/javascript/assets/icons/SoundOutlined.svg","webpack://app/./app/javascript/assets/icons/qFilled.svg","webpack://app/./app/javascript/assets/icons/disposal.svg","webpack://app/./app/javascript/assets/icons/Budgeting-icon.svg","webpack://app/./app/javascript/assets/icons/currencyMenu.svg","webpack://app/./app/javascript/assets/icons/Q_Academy.svg","webpack://app/./app/javascript/assets/icons/Cleanup.svg","webpack://app/./app/javascript/assets/icons/Training.svg","webpack://app/./app/javascript/assets/icons/ConsultationService.svg","webpack://app/./app/javascript/assets/icons/Setup_Service.svg","webpack://app/./app/javascript/assets/icons/InvoiceDesign.svg","webpack://app/./app/javascript/assets/icons/BalanceEntries.svg","webpack://app/./app/javascript/assets/icons/TransferAccountsIcon.svg","webpack://app/./app/javascript/assets/icons/VAT_Service.svg","webpack://app/./app/javascript/assets/icons/FixedAssetAddition.svg","webpack://app/./app/javascript/tokens/layout.tsx","webpack://app/./app/javascript/components/layout/SideMenu.tsx","webpack://app/./app/javascript/components/layout/antd.tsx","webpack://app/./app/javascript/components/layout/emptyIndex.tsx","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/AssetRegistryShow/FillReceiveDate.tsx","webpack://app/./app/javascript/assets/fallbackImage.ts","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/AssetRegistryShow/index.tsx","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/CalculateDepreciation/CalculationDepreciationEntry.tsx","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/CalculateDepreciation/ShowDepreciation.tsx","webpack://app/./app/javascript/api/Depreciation.ts","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/CalculateDepreciation/index.tsx","webpack://app/./app/javascript/api/Contact.ts","webpack://app/./app/javascript/api/PaymentTerm.ts","webpack://app/./app/javascript/api/Inventory.ts","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/CreateBill/BillForm/BillDetails.tsx","webpack://app/./app/javascript/api/Tax.ts","webpack://app/./app/javascript/api/Product.ts","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/CreateBill/BillForm/LineItems/index.tsx","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/CreateBill/BillForm/TotalEntry.tsx","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/CreateBill/BillForm/index.tsx","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/CreateBill/index.tsx","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/FixedAssetAdditionActionButtons.tsx","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/FixedAssetAdditionEdit/index.tsx","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/FixedAssetAdditionFilterForm.tsx","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/FixedAssetAdditionNew/Card.tsx","webpack://app/./app/javascript/api/FixedAssets.ts","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/GeneralForm/index.tsx","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/LinkBill/AssetRegistryList.tsx","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/LinkBill/BillSelector.tsx","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/LinkBill/DepreciationDetails.tsx","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/LinkBill/index.tsx","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/Merge/index.tsx","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/SubmitButton.tsx","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/helpers/index.ts","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/hooks/index.ts","webpack://app/./app/javascript/components/tenant/additional_services/InfoItem.tsx","webpack://app/./app/javascript/components/tenant/additional_services/Poster.tsx","webpack://app/./app/javascript/components/tenant/budgets/AccountBudgeting.tsx","webpack://app/./app/javascript/components/tenant/budgets/AttachmentField.tsx","webpack://app/./app/javascript/components/tenant/budgets/BreakDownModal.tsx","webpack://app/./app/javascript/components/tenant/budgets/BudgetActionButton.tsx","webpack://app/./app/javascript/components/tenant/budgets/BudgetCard.tsx","webpack://app/./app/javascript/components/tenant/budgets/BudgetDetails.tsx","webpack://app/./app/javascript/components/tenant/budgets/BudgetDetailsHeaderSection.tsx","webpack://app/./app/javascript/components/tenant/budgets/BudgetDimensions.tsx","webpack://app/./app/javascript/components/tenant/budgets/BudgetTable.tsx","webpack://app/./app/javascript/components/tenant/budgets/FilterForm.tsx","webpack://app/./app/javascript/components/tenant/budgets/ItemBudgeting.tsx","webpack://app/./app/javascript/assets/icons/add_stock.svg","webpack://app/./app/javascript/assets/icons/barcode.svg","webpack://app/./app/javascript/assets/icons/checkbox.svg","webpack://app/./app/javascript/assets/icons/scanner.svg","webpack://app/./app/javascript/components/tenant/commercial_document/internal/BarcodeGuidanceButton.tsx","webpack://app/./app/javascript/tokens/guidance_items.ts","webpack://app/./app/javascript/components/tenant/commercial_document/internal/GuidanceFooter.tsx","webpack://app/./app/javascript/components/tenant/commercial_document/internal/GuidanceItem.tsx","webpack://app/./app/javascript/components/tenant/dimensions/ConfigurationOptions.tsx","webpack://app/./app/javascript/components/tenant/dimensions/DimensionConfiguration.tsx","webpack://app/./app/javascript/components/tenant/form/CustomField.tsx","webpack://app/./app/javascript/components/tenant/form/DueIssueDatePicker.tsx","webpack://app/./app/javascript/components/tenant/form/SelectLocations.tsx","webpack://app/./app/javascript/components/tenant/recurring_transactions/CustomFormItems.tsx","webpack://app/./app/javascript/assets/icons/Colored-Double-Right.svg","webpack://app/./app/javascript/components/tenant/recurring_transactions/SkipProcessModal.tsx","webpack://app/./app/javascript/components/tenant/recurring_transactions/documents/DocumentsFitlers.tsx","webpack://app/./app/javascript/components/tenant/recurring_transactions/documents/DocumentsTable.tsx","webpack://app/./app/javascript/components/tenant/recurring_transactions/documents/index.tsx","webpack://app/./app/javascript/assets/icons/Recurring-Transactions.svg","webpack://app/./app/javascript/components/tenant/recurring_transactions/index/NoRecurringTransactions.tsx","webpack://app/./app/javascript/components/tenant/recurring_transactions/index/RecordsFilter.tsx","webpack://app/./app/javascript/components/tenant/recurring_transactions/index/RecordsTable.tsx","webpack://app/./app/javascript/components/tenant/recurring_transactions/index/Tabs.tsx","webpack://app/./app/javascript/components/tenant/recurring_transactions/show/RTInfoCards.tsx","webpack://app/./app/javascript/components/tenant/recurring_transactions/show/RelatedDocs.tsx","webpack://app/./app/javascript/components/tenant/recurring_transactions/show/SchedulesTable.tsx","webpack://app/./app/javascript/components/tenant/recurring_transactions/show/Status.tsx","webpack://app/./app/javascript/components/tenant/referrals/CardContent.tsx","webpack://app/./app/javascript/components/tenant/referrals/CardList.tsx","webpack://app/./app/javascript/components/tenant/referrals/ReferralCard.tsx","webpack://app/./app/javascript/components/tenant/referrals/ReferralHeader.tsx","webpack://app/./app/javascript/components/tenant/referrals/ReferralLinkInput.tsx","webpack://app/./app/javascript/components/tenant/referrals/RewardCard.tsx","webpack://app/./app/javascript/components/tenant/reports/dashboard/RecentReports.tsx","webpack://app/./app/javascript/styles/reports.css?e222","webpack://app/./app/javascript/components/tenant/reports/dashboard/ReportCard.tsx","webpack://app/./app/javascript/components/tenant/reports/dashboard/ReportDashboardSkeleton.tsx","webpack://app/./app/javascript/components/tenant/reports/dashboard/ReportsFilter.tsx","webpack://app/./app/javascript/components/tenant/subscription/OverviewTab.tsx","webpack://app/./app/javascript/assets/icons/map-pin-outline.svg","webpack://app/./app/javascript/assets/icons/payroll-outline.svg","webpack://app/./app/javascript/assets/icons/pos-outline.svg","webpack://app/./app/javascript/assets/icons/user-group-outlined.svg","webpack://app/./app/javascript/assets/images/404.svg","webpack://app/./app/javascript/components/tenant/subscription/OverviewTab/AddonsCard.tsx","webpack://app/./app/assets/images/mastercard-new.svg","webpack://app/./app/javascript/hooks/subscription.tsx","webpack://app/./app/javascript/components/tenant/subscription/OverviewTab/PlanCard.tsx","webpack://app/./app/javascript/contexts/Layout.ts","webpack://app/./app/javascript/contexts/RecordContext.ts","webpack://app/./app/javascript/contexts/UserContext.ts","webpack://app/./app/javascript/contexts/dimensions.ts","webpack://app/./app/javascript/helpers/app.ts","webpack://app/./app/javascript/helpers/budgets.ts","webpack://app/./app/javascript/helpers/dimensions.ts","webpack://app/./app/javascript/helpers/format-currency.ts","webpack://app/./app/javascript/hooks/useSettings.tsx","webpack://app/./app/javascript/hooks/additional_services.tsx","webpack://app/./app/javascript/hooks/app.tsx","webpack://app/./app/javascript/hooks/budgets.tsx","webpack://app/./app/javascript/hooks/dimensions.tsx","webpack://app/./app/javascript/hooks/usePermission.ts","webpack://app/./app/javascript/hooks/layout.tsx","webpack://app/./app/javascript/hooks/recurring_transactions.tsx","webpack://app/./app/javascript/api/referrals.ts","webpack://app/./app/javascript/hooks/referrals.tsx","webpack://app/./app/javascript/hooks/status.tsx","webpack://app/./app/javascript/packs/react_app.ts","webpack://app/./app/javascript/pages/layout/App.tsx","webpack://app/./app/javascript/pages/layout/Layout.tsx","webpack://app/./app/javascript/pages/tenant/additional_services/BalanceEntries.tsx","webpack://app/./app/javascript/pages/tenant/additional_services/BookKeeping.tsx","webpack://app/./app/javascript/pages/tenant/additional_services/Cleanup.tsx","webpack://app/./app/javascript/pages/tenant/additional_services/ConsultationService.tsx","webpack://app/./app/javascript/pages/tenant/additional_services/InvoiceDesign.tsx","webpack://app/./app/javascript/pages/tenant/additional_services/Setup.tsx","webpack://app/./app/javascript/pages/tenant/additional_services/Training.tsx","webpack://app/./app/javascript/pages/tenant/additional_services/TransferAccounts.tsx","webpack://app/./app/javascript/pages/tenant/additional_services/VAT.tsx","webpack://app/./app/javascript/pages/tenant/additional_services/qoyodAcademy.tsx","webpack://app/./app/javascript/pages/tenant/budgets/edit.tsx","webpack://app/./app/javascript/pages/tenant/budgets/index.tsx","webpack://app/./app/javascript/pages/tenant/budgets/new.tsx","webpack://app/./app/javascript/pages/tenant/budgets/show.tsx","webpack://app/./app/javascript/pages/tenant/dimension_values/edit.tsx","webpack://app/./app/javascript/pages/tenant/dimension_values/index.tsx","webpack://app/./app/javascript/pages/tenant/dimension_values/new.tsx","webpack://app/./app/javascript/pages/tenant/dimensions/edit.tsx","webpack://app/./app/javascript/assets/icons/empty-dimension.svg","webpack://app/./app/javascript/pages/tenant/dimensions/index.tsx","webpack://app/./app/javascript/pages/tenant/dimensions/lineItemModal/form.tsx","webpack://app/./app/javascript/pages/tenant/dimensions/lineItemModal/item.tsx","webpack://app/./app/javascript/pages/tenant/dimensions/lineItemModal/modal.tsx","webpack://app/./app/javascript/pages/tenant/dimensions/lineItemModal/modalShow.tsx","webpack://app/./app/javascript/pages/tenant/dimensions/lineItemModal/select.tsx","webpack://app/./app/javascript/pages/tenant/dimensions/new.tsx","webpack://app/./app/javascript/pages/tenant/dimensions/show.tsx","webpack://app/./app/javascript/pages/tenant/fixed_asset_additions/index.tsx","webpack://app/./app/javascript/assets/icons/FixedAssetAdditionMergeAssets.svg","webpack://app/./app/javascript/assets/icons/FixedAssetAdditionLinkBill.svg","webpack://app/./app/javascript/assets/icons/FixedAssetAdditionCreateBill.svg","webpack://app/./app/javascript/pages/tenant/fixed_asset_additions/new.tsx","webpack://app/./app/javascript/pages/tenant/fixed_asset_additions/new/create_bill.tsx","webpack://app/./app/javascript/pages/tenant/fixed_asset_additions/new/link_bill.tsx","webpack://app/./app/javascript/pages/tenant/fixed_asset_additions/new/merge.tsx","webpack://app/./app/javascript/pages/tenant/fixed_asset_additions/show.tsx","webpack://app/./app/javascript/pages/tenant/inventories/index.tsx","webpack://app/./app/javascript/pages/tenant/inventory_transfers/new.tsx","webpack://app/./app/javascript/pages/tenant/recurring_transactions/RecurringTransactionsInDashboard.tsx","webpack://app/./app/javascript/pages/tenant/recurring_transactions/index.tsx","webpack://app/./app/javascript/assets/icons/document-arrow-down-outline.svg","webpack://app/./app/javascript/pages/tenant/recurring_transactions/new.tsx","webpack://app/./app/javascript/pages/tenant/recurring_transactions/show.tsx","webpack://app/./app/javascript/helpers/referrals.tsx","webpack://app/./app/javascript/pages/tenant/referrals/index.tsx","webpack://app/./app/javascript/pages/tenant/reports/analysis_by_dimensions/index.tsx","webpack://app/./app/javascript/pages/tenant/reports/index.tsx","webpack://app/./app/javascript/api/Reports.ts","webpack://app/./app/javascript/pages/tenant/stock_takes/new.tsx","webpack://app/./app/javascript/pages/tenant/subscription/index.tsx","webpack://app/./app/javascript/assets/icons/bookkeeping_I.svg","webpack://app/./app/javascript/assets/icons/bookkeeping_II.svg","webpack://app/./app/javascript/assets/icons/bookkeeping_III.svg","webpack://app/./app/javascript/assets/icons/bookkeeping_IV.svg","webpack://app/./app/javascript/assets/icons/bookkeeping_V.svg","webpack://app/./app/javascript/assets/icons/bookkeeping_VI.svg","webpack://app/./app/javascript/assets/icons/cleanup_I.svg","webpack://app/./app/javascript/assets/icons/cleanup_II.svg","webpack://app/./app/javascript/assets/icons/training_I.svg","webpack://app/./app/javascript/assets/icons/training_II.svg","webpack://app/./app/javascript/assets/icons/training_III.svg","webpack://app/./app/javascript/assets/icons/setup_I.svg","webpack://app/./app/javascript/assets/icons/setup_II.svg","webpack://app/./app/javascript/assets/icons/setup_III.svg","webpack://app/./app/javascript/assets/icons/ConsultationServiceIcon_I.svg","webpack://app/./app/javascript/assets/icons/ConsultationServiceIcon_II.svg","webpack://app/./app/javascript/assets/icons/InvoiceDesignIcon_I.svg","webpack://app/./app/javascript/assets/icons/InvoiceDesignIcon_II.svg","webpack://app/./app/javascript/assets/icons/TransferAccountsIcon_I.svg","webpack://app/./app/javascript/assets/icons/TransferAccountsIcon_II.svg","webpack://app/./app/javascript/assets/icons/VAT_I.svg","webpack://app/./app/javascript/assets/icons/VAT_II.svg","webpack://app/./app/javascript/tokens/additional_services.ts","webpack://app/./app/javascript/tokens/dimensions.tsx","webpack://app/./app/javascript/tokens/query-keys.ts","webpack://app/./app/javascript/types/recurring_transactions.ts","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/styles.css","webpack://app/./app/javascript/styles/reports.css","webpack://app/./app/javascript/styles/layout.scss","webpack://app/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://app/./app/javascript/components/tenant/FixedAssetAdditions/styles.css?a282","webpack://app/./app/javascript/styles/layout.scss?e818"],"sourcesContent":["var map = {\n\t\"./EditableTable\": 3044,\n\t\"./EditableTable/\": 3044,\n\t\"./EditableTable/index\": 3044,\n\t\"./EditableTable/index.tsx\": 3044,\n\t\"./Errors/ServerError\": 95303,\n\t\"./Errors/ServerError.tsx\": 95303,\n\t\"./form/SelectWithSearch\": 8024,\n\t\"./form/SelectWithSearch/\": 8024,\n\t\"./form/SelectWithSearch/index\": 8024,\n\t\"./form/SelectWithSearch/index.tsx\": 8024,\n\t\"./layout/AntdWithTheme\": 10681,\n\t\"./layout/AntdWithTheme.tsx\": 10681,\n\t\"./layout/BackButton\": 65862,\n\t\"./layout/BackButton.tsx\": 65862,\n\t\"./layout/Footer\": 75683,\n\t\"./layout/Footer.tsx\": 75683,\n\t\"./layout/Header\": 26018,\n\t\"./layout/Header.tsx\": 26018,\n\t\"./layout/Logo\": 62490,\n\t\"./layout/Logo.tsx\": 62490,\n\t\"./layout/NoMatch\": 61296,\n\t\"./layout/NoMatch.tsx\": 61296,\n\t\"./layout/Portal\": 91939,\n\t\"./layout/Portal.tsx\": 91939,\n\t\"./layout/QContent\": 61525,\n\t\"./layout/QContent.tsx\": 61525,\n\t\"./layout/QIcon\": 23865,\n\t\"./layout/QIcon.tsx\": 23865,\n\t\"./layout/QOnBoardingIndex\": 54434,\n\t\"./layout/QOnBoardingIndex.tsx\": 54434,\n\t\"./layout/QPageHeader\": 42216,\n\t\"./layout/QPageHeader.tsx\": 42216,\n\t\"./layout/QPageLayout\": 5979,\n\t\"./layout/QPageLayout.tsx\": 5979,\n\t\"./layout/QReportContent\": 48142,\n\t\"./layout/QReportContent.tsx\": 48142,\n\t\"./layout/QReportLayout\": 94335,\n\t\"./layout/QReportLayout.tsx\": 94335,\n\t\"./layout/QServiceContent\": 37053,\n\t\"./layout/QServiceContent.tsx\": 37053,\n\t\"./layout/QServiceLayout\": 89303,\n\t\"./layout/QServiceLayout.tsx\": 89303,\n\t\"./layout/QStatusTag\": 45736,\n\t\"./layout/QStatusTag.tsx\": 45736,\n\t\"./layout/SideMenu\": 45642,\n\t\"./layout/SideMenu.tsx\": 45642,\n\t\"./layout/antd\": 59050,\n\t\"./layout/antd.tsx\": 59050,\n\t\"./layout/emptyIndex\": 20872,\n\t\"./layout/emptyIndex.tsx\": 20872,\n\t\"./tenant/FixedAssetAdditions\": 16833,\n\t\"./tenant/FixedAssetAdditions/\": 16833,\n\t\"./tenant/FixedAssetAdditions/AssetRegistryShow\": 8582,\n\t\"./tenant/FixedAssetAdditions/AssetRegistryShow/\": 8582,\n\t\"./tenant/FixedAssetAdditions/AssetRegistryShow/FillReceiveDate\": 95506,\n\t\"./tenant/FixedAssetAdditions/AssetRegistryShow/FillReceiveDate.tsx\": 95506,\n\t\"./tenant/FixedAssetAdditions/AssetRegistryShow/index\": 8582,\n\t\"./tenant/FixedAssetAdditions/AssetRegistryShow/index.tsx\": 8582,\n\t\"./tenant/FixedAssetAdditions/CalculateDepreciation\": 21734,\n\t\"./tenant/FixedAssetAdditions/CalculateDepreciation/\": 21734,\n\t\"./tenant/FixedAssetAdditions/CalculateDepreciation/CalculationDepreciationEntry\": 70299,\n\t\"./tenant/FixedAssetAdditions/CalculateDepreciation/CalculationDepreciationEntry.tsx\": 70299,\n\t\"./tenant/FixedAssetAdditions/CalculateDepreciation/ShowDepreciation\": 14948,\n\t\"./tenant/FixedAssetAdditions/CalculateDepreciation/ShowDepreciation.tsx\": 14948,\n\t\"./tenant/FixedAssetAdditions/CalculateDepreciation/index\": 21734,\n\t\"./tenant/FixedAssetAdditions/CalculateDepreciation/index.tsx\": 21734,\n\t\"./tenant/FixedAssetAdditions/CreateBill\": 88046,\n\t\"./tenant/FixedAssetAdditions/CreateBill/\": 88046,\n\t\"./tenant/FixedAssetAdditions/CreateBill/BillForm\": 13618,\n\t\"./tenant/FixedAssetAdditions/CreateBill/BillForm/\": 13618,\n\t\"./tenant/FixedAssetAdditions/CreateBill/BillForm/BillDetails\": 99918,\n\t\"./tenant/FixedAssetAdditions/CreateBill/BillForm/BillDetails.tsx\": 99918,\n\t\"./tenant/FixedAssetAdditions/CreateBill/BillForm/LineItems\": 85203,\n\t\"./tenant/FixedAssetAdditions/CreateBill/BillForm/LineItems/\": 85203,\n\t\"./tenant/FixedAssetAdditions/CreateBill/BillForm/LineItems/index\": 85203,\n\t\"./tenant/FixedAssetAdditions/CreateBill/BillForm/LineItems/index.tsx\": 85203,\n\t\"./tenant/FixedAssetAdditions/CreateBill/BillForm/TotalEntry\": 13986,\n\t\"./tenant/FixedAssetAdditions/CreateBill/BillForm/TotalEntry.tsx\": 13986,\n\t\"./tenant/FixedAssetAdditions/CreateBill/BillForm/index\": 13618,\n\t\"./tenant/FixedAssetAdditions/CreateBill/BillForm/index.tsx\": 13618,\n\t\"./tenant/FixedAssetAdditions/CreateBill/index\": 88046,\n\t\"./tenant/FixedAssetAdditions/CreateBill/index.tsx\": 88046,\n\t\"./tenant/FixedAssetAdditions/FixedAssetAdditionActionButtons\": 35466,\n\t\"./tenant/FixedAssetAdditions/FixedAssetAdditionActionButtons.tsx\": 35466,\n\t\"./tenant/FixedAssetAdditions/FixedAssetAdditionEdit\": 80989,\n\t\"./tenant/FixedAssetAdditions/FixedAssetAdditionEdit/\": 80989,\n\t\"./tenant/FixedAssetAdditions/FixedAssetAdditionEdit/index\": 80989,\n\t\"./tenant/FixedAssetAdditions/FixedAssetAdditionEdit/index.tsx\": 80989,\n\t\"./tenant/FixedAssetAdditions/FixedAssetAdditionFilterForm\": 90922,\n\t\"./tenant/FixedAssetAdditions/FixedAssetAdditionFilterForm.tsx\": 90922,\n\t\"./tenant/FixedAssetAdditions/FixedAssetAdditionNew/Card\": 27764,\n\t\"./tenant/FixedAssetAdditions/FixedAssetAdditionNew/Card.tsx\": 27764,\n\t\"./tenant/FixedAssetAdditions/GeneralForm\": 64405,\n\t\"./tenant/FixedAssetAdditions/GeneralForm/\": 64405,\n\t\"./tenant/FixedAssetAdditions/GeneralForm/index\": 64405,\n\t\"./tenant/FixedAssetAdditions/GeneralForm/index.tsx\": 64405,\n\t\"./tenant/FixedAssetAdditions/LinkBill\": 91669,\n\t\"./tenant/FixedAssetAdditions/LinkBill/\": 91669,\n\t\"./tenant/FixedAssetAdditions/LinkBill/AssetRegistryList\": 26890,\n\t\"./tenant/FixedAssetAdditions/LinkBill/AssetRegistryList.tsx\": 26890,\n\t\"./tenant/FixedAssetAdditions/LinkBill/BillSelector\": 59473,\n\t\"./tenant/FixedAssetAdditions/LinkBill/BillSelector.tsx\": 59473,\n\t\"./tenant/FixedAssetAdditions/LinkBill/DepreciationDetails\": 7373,\n\t\"./tenant/FixedAssetAdditions/LinkBill/DepreciationDetails.tsx\": 7373,\n\t\"./tenant/FixedAssetAdditions/LinkBill/index\": 91669,\n\t\"./tenant/FixedAssetAdditions/LinkBill/index.tsx\": 91669,\n\t\"./tenant/FixedAssetAdditions/Merge\": 33089,\n\t\"./tenant/FixedAssetAdditions/Merge/\": 33089,\n\t\"./tenant/FixedAssetAdditions/Merge/index\": 33089,\n\t\"./tenant/FixedAssetAdditions/Merge/index.tsx\": 33089,\n\t\"./tenant/FixedAssetAdditions/SubmitButton\": 56563,\n\t\"./tenant/FixedAssetAdditions/SubmitButton.tsx\": 56563,\n\t\"./tenant/FixedAssetAdditions/helpers\": 29625,\n\t\"./tenant/FixedAssetAdditions/helpers/\": 29625,\n\t\"./tenant/FixedAssetAdditions/helpers/index\": 29625,\n\t\"./tenant/FixedAssetAdditions/helpers/index.ts\": 29625,\n\t\"./tenant/FixedAssetAdditions/hooks\": 66450,\n\t\"./tenant/FixedAssetAdditions/hooks/\": 66450,\n\t\"./tenant/FixedAssetAdditions/hooks/index\": 66450,\n\t\"./tenant/FixedAssetAdditions/hooks/index.ts\": 66450,\n\t\"./tenant/FixedAssetAdditions/index\": 16833,\n\t\"./tenant/FixedAssetAdditions/index.tsx\": 16833,\n\t\"./tenant/FixedAssetAdditions/styles.css\": 95621,\n\t\"./tenant/additional_services/InfoItem\": 96158,\n\t\"./tenant/additional_services/InfoItem.tsx\": 96158,\n\t\"./tenant/additional_services/Poster\": 31403,\n\t\"./tenant/additional_services/Poster.tsx\": 31403,\n\t\"./tenant/budgets/AccountBudgeting\": 14724,\n\t\"./tenant/budgets/AccountBudgeting.tsx\": 14724,\n\t\"./tenant/budgets/AttachmentField\": 54674,\n\t\"./tenant/budgets/AttachmentField.tsx\": 54674,\n\t\"./tenant/budgets/BreakDownModal\": 43841,\n\t\"./tenant/budgets/BreakDownModal.tsx\": 43841,\n\t\"./tenant/budgets/BudgetActionButton\": 84686,\n\t\"./tenant/budgets/BudgetActionButton.tsx\": 84686,\n\t\"./tenant/budgets/BudgetCard\": 39371,\n\t\"./tenant/budgets/BudgetCard.tsx\": 39371,\n\t\"./tenant/budgets/BudgetDetails\": 82245,\n\t\"./tenant/budgets/BudgetDetails.tsx\": 82245,\n\t\"./tenant/budgets/BudgetDetailsHeaderSection\": 99818,\n\t\"./tenant/budgets/BudgetDetailsHeaderSection.tsx\": 99818,\n\t\"./tenant/budgets/BudgetDimensions\": 59038,\n\t\"./tenant/budgets/BudgetDimensions.tsx\": 59038,\n\t\"./tenant/budgets/BudgetTable\": 97330,\n\t\"./tenant/budgets/BudgetTable.tsx\": 97330,\n\t\"./tenant/budgets/FilterForm\": 74390,\n\t\"./tenant/budgets/FilterForm.tsx\": 74390,\n\t\"./tenant/budgets/ItemBudgeting\": 89671,\n\t\"./tenant/budgets/ItemBudgeting.tsx\": 89671,\n\t\"./tenant/commercial_document/internal/BarcodeGuidanceButton\": 29249,\n\t\"./tenant/commercial_document/internal/BarcodeGuidanceButton.tsx\": 29249,\n\t\"./tenant/commercial_document/internal/GuidanceFooter\": 90422,\n\t\"./tenant/commercial_document/internal/GuidanceFooter.tsx\": 90422,\n\t\"./tenant/commercial_document/internal/GuidanceItem\": 32789,\n\t\"./tenant/commercial_document/internal/GuidanceItem.tsx\": 32789,\n\t\"./tenant/dimensions/ConfigurationOptions\": 55313,\n\t\"./tenant/dimensions/ConfigurationOptions.tsx\": 55313,\n\t\"./tenant/dimensions/DimensionConfiguration\": 99722,\n\t\"./tenant/dimensions/DimensionConfiguration.tsx\": 99722,\n\t\"./tenant/form/CustomField\": 87663,\n\t\"./tenant/form/CustomField.tsx\": 87663,\n\t\"./tenant/form/DueIssueDatePicker\": 98317,\n\t\"./tenant/form/DueIssueDatePicker.tsx\": 98317,\n\t\"./tenant/form/SelectLocations\": 78666,\n\t\"./tenant/form/SelectLocations.tsx\": 78666,\n\t\"./tenant/recurring_transactions/CustomFormItems\": 35529,\n\t\"./tenant/recurring_transactions/CustomFormItems.tsx\": 35529,\n\t\"./tenant/recurring_transactions/SkipProcessModal\": 13719,\n\t\"./tenant/recurring_transactions/SkipProcessModal.tsx\": 13719,\n\t\"./tenant/recurring_transactions/documents\": 55473,\n\t\"./tenant/recurring_transactions/documents/\": 55473,\n\t\"./tenant/recurring_transactions/documents/DocumentsFitlers\": 41536,\n\t\"./tenant/recurring_transactions/documents/DocumentsFitlers.tsx\": 41536,\n\t\"./tenant/recurring_transactions/documents/DocumentsTable\": 46679,\n\t\"./tenant/recurring_transactions/documents/DocumentsTable.tsx\": 46679,\n\t\"./tenant/recurring_transactions/documents/index\": 55473,\n\t\"./tenant/recurring_transactions/documents/index.tsx\": 55473,\n\t\"./tenant/recurring_transactions/index/NoRecurringTransactions\": 10533,\n\t\"./tenant/recurring_transactions/index/NoRecurringTransactions.tsx\": 10533,\n\t\"./tenant/recurring_transactions/index/RecordsFilter\": 38665,\n\t\"./tenant/recurring_transactions/index/RecordsFilter.tsx\": 38665,\n\t\"./tenant/recurring_transactions/index/RecordsTable\": 70213,\n\t\"./tenant/recurring_transactions/index/RecordsTable.tsx\": 70213,\n\t\"./tenant/recurring_transactions/index/Tabs\": 68462,\n\t\"./tenant/recurring_transactions/index/Tabs.tsx\": 68462,\n\t\"./tenant/recurring_transactions/show/RTInfoCards\": 65683,\n\t\"./tenant/recurring_transactions/show/RTInfoCards.tsx\": 65683,\n\t\"./tenant/recurring_transactions/show/RelatedDocs\": 77933,\n\t\"./tenant/recurring_transactions/show/RelatedDocs.tsx\": 77933,\n\t\"./tenant/recurring_transactions/show/SchedulesTable\": 87366,\n\t\"./tenant/recurring_transactions/show/SchedulesTable.tsx\": 87366,\n\t\"./tenant/recurring_transactions/show/Status\": 23882,\n\t\"./tenant/recurring_transactions/show/Status.tsx\": 23882,\n\t\"./tenant/referrals/CardContent\": 55025,\n\t\"./tenant/referrals/CardContent.tsx\": 55025,\n\t\"./tenant/referrals/CardList\": 89842,\n\t\"./tenant/referrals/CardList.tsx\": 89842,\n\t\"./tenant/referrals/ReferralCard\": 49970,\n\t\"./tenant/referrals/ReferralCard.tsx\": 49970,\n\t\"./tenant/referrals/ReferralHeader\": 96269,\n\t\"./tenant/referrals/ReferralHeader.tsx\": 96269,\n\t\"./tenant/referrals/ReferralLinkInput\": 32487,\n\t\"./tenant/referrals/ReferralLinkInput.tsx\": 32487,\n\t\"./tenant/referrals/RewardCard\": 52047,\n\t\"./tenant/referrals/RewardCard.tsx\": 52047,\n\t\"./tenant/reports/dashboard/RecentReports\": 14823,\n\t\"./tenant/reports/dashboard/RecentReports.tsx\": 14823,\n\t\"./tenant/reports/dashboard/ReportCard\": 10340,\n\t\"./tenant/reports/dashboard/ReportCard.tsx\": 10340,\n\t\"./tenant/reports/dashboard/ReportDashboardSkeleton\": 65046,\n\t\"./tenant/reports/dashboard/ReportDashboardSkeleton.tsx\": 65046,\n\t\"./tenant/reports/dashboard/ReportsFilter\": 96980,\n\t\"./tenant/reports/dashboard/ReportsFilter.tsx\": 96980,\n\t\"./tenant/subscription/OverviewTab\": 62797,\n\t\"./tenant/subscription/OverviewTab.tsx\": 62797,\n\t\"./tenant/subscription/OverviewTab/AddonsCard\": 58988,\n\t\"./tenant/subscription/OverviewTab/AddonsCard.tsx\": 58988,\n\t\"./tenant/subscription/OverviewTab/PlanCard\": 80932,\n\t\"./tenant/subscription/OverviewTab/PlanCard.tsx\": 80932\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 982;","var map = {\n\t\"./layout/App\": 69087,\n\t\"./layout/App.tsx\": 69087,\n\t\"./layout/Layout\": 84157,\n\t\"./layout/Layout.tsx\": 84157,\n\t\"./tenant/additional_services/BalanceEntries\": 43310,\n\t\"./tenant/additional_services/BalanceEntries.tsx\": 43310,\n\t\"./tenant/additional_services/BookKeeping\": 21959,\n\t\"./tenant/additional_services/BookKeeping.tsx\": 21959,\n\t\"./tenant/additional_services/Cleanup\": 74769,\n\t\"./tenant/additional_services/Cleanup.tsx\": 74769,\n\t\"./tenant/additional_services/ConsultationService\": 2837,\n\t\"./tenant/additional_services/ConsultationService.tsx\": 2837,\n\t\"./tenant/additional_services/InvoiceDesign\": 1178,\n\t\"./tenant/additional_services/InvoiceDesign.tsx\": 1178,\n\t\"./tenant/additional_services/Setup\": 49885,\n\t\"./tenant/additional_services/Setup.tsx\": 49885,\n\t\"./tenant/additional_services/Training\": 63133,\n\t\"./tenant/additional_services/Training.tsx\": 63133,\n\t\"./tenant/additional_services/TransferAccounts\": 49015,\n\t\"./tenant/additional_services/TransferAccounts.tsx\": 49015,\n\t\"./tenant/additional_services/VAT\": 25503,\n\t\"./tenant/additional_services/VAT.tsx\": 25503,\n\t\"./tenant/additional_services/qoyodAcademy\": 58596,\n\t\"./tenant/additional_services/qoyodAcademy.tsx\": 58596,\n\t\"./tenant/budgets\": 27569,\n\t\"./tenant/budgets/\": 27569,\n\t\"./tenant/budgets/edit\": 58441,\n\t\"./tenant/budgets/edit.tsx\": 58441,\n\t\"./tenant/budgets/index\": 27569,\n\t\"./tenant/budgets/index.tsx\": 27569,\n\t\"./tenant/budgets/new\": 25204,\n\t\"./tenant/budgets/new.tsx\": 25204,\n\t\"./tenant/budgets/show\": 35688,\n\t\"./tenant/budgets/show.tsx\": 35688,\n\t\"./tenant/dimension_values\": 73207,\n\t\"./tenant/dimension_values/\": 73207,\n\t\"./tenant/dimension_values/edit\": 56764,\n\t\"./tenant/dimension_values/edit.tsx\": 56764,\n\t\"./tenant/dimension_values/index\": 73207,\n\t\"./tenant/dimension_values/index.tsx\": 73207,\n\t\"./tenant/dimension_values/new\": 19341,\n\t\"./tenant/dimension_values/new.tsx\": 19341,\n\t\"./tenant/dimensions\": 17602,\n\t\"./tenant/dimensions/\": 17602,\n\t\"./tenant/dimensions/edit\": 33769,\n\t\"./tenant/dimensions/edit.tsx\": 33769,\n\t\"./tenant/dimensions/index\": 17602,\n\t\"./tenant/dimensions/index.tsx\": 17602,\n\t\"./tenant/dimensions/lineItemModal/form\": 93510,\n\t\"./tenant/dimensions/lineItemModal/form.tsx\": 93510,\n\t\"./tenant/dimensions/lineItemModal/item\": 45017,\n\t\"./tenant/dimensions/lineItemModal/item.tsx\": 45017,\n\t\"./tenant/dimensions/lineItemModal/modal\": 81666,\n\t\"./tenant/dimensions/lineItemModal/modal.tsx\": 81666,\n\t\"./tenant/dimensions/lineItemModal/modalShow\": 81546,\n\t\"./tenant/dimensions/lineItemModal/modalShow.tsx\": 81546,\n\t\"./tenant/dimensions/lineItemModal/select\": 12362,\n\t\"./tenant/dimensions/lineItemModal/select.tsx\": 12362,\n\t\"./tenant/dimensions/new\": 79577,\n\t\"./tenant/dimensions/new.tsx\": 79577,\n\t\"./tenant/dimensions/show\": 47178,\n\t\"./tenant/dimensions/show.tsx\": 47178,\n\t\"./tenant/fixed_asset_additions\": 65654,\n\t\"./tenant/fixed_asset_additions/\": 65654,\n\t\"./tenant/fixed_asset_additions/index\": 65654,\n\t\"./tenant/fixed_asset_additions/index.tsx\": 65654,\n\t\"./tenant/fixed_asset_additions/new\": 58346,\n\t\"./tenant/fixed_asset_additions/new.tsx\": 58346,\n\t\"./tenant/fixed_asset_additions/new/create_bill\": 86181,\n\t\"./tenant/fixed_asset_additions/new/create_bill.tsx\": 86181,\n\t\"./tenant/fixed_asset_additions/new/link_bill\": 79186,\n\t\"./tenant/fixed_asset_additions/new/link_bill.tsx\": 79186,\n\t\"./tenant/fixed_asset_additions/new/merge\": 93150,\n\t\"./tenant/fixed_asset_additions/new/merge.tsx\": 93150,\n\t\"./tenant/fixed_asset_additions/show\": 62705,\n\t\"./tenant/fixed_asset_additions/show.tsx\": 62705,\n\t\"./tenant/inventories\": 35131,\n\t\"./tenant/inventories/\": 35131,\n\t\"./tenant/inventories/index\": 35131,\n\t\"./tenant/inventories/index.tsx\": 35131,\n\t\"./tenant/inventory_transfers/new\": 23938,\n\t\"./tenant/inventory_transfers/new.tsx\": 23938,\n\t\"./tenant/recurring_transactions\": 7344,\n\t\"./tenant/recurring_transactions/\": 7344,\n\t\"./tenant/recurring_transactions/RecurringTransactionsInDashboard\": 79120,\n\t\"./tenant/recurring_transactions/RecurringTransactionsInDashboard.tsx\": 79120,\n\t\"./tenant/recurring_transactions/index\": 7344,\n\t\"./tenant/recurring_transactions/index.tsx\": 7344,\n\t\"./tenant/recurring_transactions/new\": 26966,\n\t\"./tenant/recurring_transactions/new.tsx\": 26966,\n\t\"./tenant/recurring_transactions/show\": 76397,\n\t\"./tenant/recurring_transactions/show.tsx\": 76397,\n\t\"./tenant/referrals\": 27313,\n\t\"./tenant/referrals/\": 27313,\n\t\"./tenant/referrals/index\": 27313,\n\t\"./tenant/referrals/index.tsx\": 27313,\n\t\"./tenant/reports\": 8816,\n\t\"./tenant/reports/\": 8816,\n\t\"./tenant/reports/analysis_by_dimensions\": 90458,\n\t\"./tenant/reports/analysis_by_dimensions/\": 90458,\n\t\"./tenant/reports/analysis_by_dimensions/index\": 90458,\n\t\"./tenant/reports/analysis_by_dimensions/index.tsx\": 90458,\n\t\"./tenant/reports/index\": 8816,\n\t\"./tenant/reports/index.tsx\": 8816,\n\t\"./tenant/stock_takes/new\": 87627,\n\t\"./tenant/stock_takes/new.tsx\": 87627,\n\t\"./tenant/subscription\": 73338,\n\t\"./tenant/subscription/\": 73338,\n\t\"./tenant/subscription/index\": 73338,\n\t\"./tenant/subscription/index.tsx\": 73338\n};\n\nfunction webpackAsyncContext(req) {\n\treturn Promise.resolve().then(function() {\n\t\tif(!__webpack_require__.o(map, req)) {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t}\n\n\t\tvar id = map[req];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 21988;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./layout/App\": 69087,\n\t\"./layout/App.tsx\": 69087,\n\t\"./layout/Layout\": 84157,\n\t\"./layout/Layout.tsx\": 84157,\n\t\"./tenant/additional_services/BalanceEntries\": 43310,\n\t\"./tenant/additional_services/BalanceEntries.tsx\": 43310,\n\t\"./tenant/additional_services/BookKeeping\": 21959,\n\t\"./tenant/additional_services/BookKeeping.tsx\": 21959,\n\t\"./tenant/additional_services/Cleanup\": 74769,\n\t\"./tenant/additional_services/Cleanup.tsx\": 74769,\n\t\"./tenant/additional_services/ConsultationService\": 2837,\n\t\"./tenant/additional_services/ConsultationService.tsx\": 2837,\n\t\"./tenant/additional_services/InvoiceDesign\": 1178,\n\t\"./tenant/additional_services/InvoiceDesign.tsx\": 1178,\n\t\"./tenant/additional_services/Setup\": 49885,\n\t\"./tenant/additional_services/Setup.tsx\": 49885,\n\t\"./tenant/additional_services/Training\": 63133,\n\t\"./tenant/additional_services/Training.tsx\": 63133,\n\t\"./tenant/additional_services/TransferAccounts\": 49015,\n\t\"./tenant/additional_services/TransferAccounts.tsx\": 49015,\n\t\"./tenant/additional_services/VAT\": 25503,\n\t\"./tenant/additional_services/VAT.tsx\": 25503,\n\t\"./tenant/additional_services/qoyodAcademy\": 58596,\n\t\"./tenant/additional_services/qoyodAcademy.tsx\": 58596,\n\t\"./tenant/budgets\": 27569,\n\t\"./tenant/budgets/\": 27569,\n\t\"./tenant/budgets/edit\": 58441,\n\t\"./tenant/budgets/edit.tsx\": 58441,\n\t\"./tenant/budgets/index\": 27569,\n\t\"./tenant/budgets/index.tsx\": 27569,\n\t\"./tenant/budgets/new\": 25204,\n\t\"./tenant/budgets/new.tsx\": 25204,\n\t\"./tenant/budgets/show\": 35688,\n\t\"./tenant/budgets/show.tsx\": 35688,\n\t\"./tenant/dimension_values\": 73207,\n\t\"./tenant/dimension_values/\": 73207,\n\t\"./tenant/dimension_values/edit\": 56764,\n\t\"./tenant/dimension_values/edit.tsx\": 56764,\n\t\"./tenant/dimension_values/index\": 73207,\n\t\"./tenant/dimension_values/index.tsx\": 73207,\n\t\"./tenant/dimension_values/new\": 19341,\n\t\"./tenant/dimension_values/new.tsx\": 19341,\n\t\"./tenant/dimensions\": 17602,\n\t\"./tenant/dimensions/\": 17602,\n\t\"./tenant/dimensions/edit\": 33769,\n\t\"./tenant/dimensions/edit.tsx\": 33769,\n\t\"./tenant/dimensions/index\": 17602,\n\t\"./tenant/dimensions/index.tsx\": 17602,\n\t\"./tenant/dimensions/lineItemModal/form\": 93510,\n\t\"./tenant/dimensions/lineItemModal/form.tsx\": 93510,\n\t\"./tenant/dimensions/lineItemModal/item\": 45017,\n\t\"./tenant/dimensions/lineItemModal/item.tsx\": 45017,\n\t\"./tenant/dimensions/lineItemModal/modal\": 81666,\n\t\"./tenant/dimensions/lineItemModal/modal.tsx\": 81666,\n\t\"./tenant/dimensions/lineItemModal/modalShow\": 81546,\n\t\"./tenant/dimensions/lineItemModal/modalShow.tsx\": 81546,\n\t\"./tenant/dimensions/lineItemModal/select\": 12362,\n\t\"./tenant/dimensions/lineItemModal/select.tsx\": 12362,\n\t\"./tenant/dimensions/new\": 79577,\n\t\"./tenant/dimensions/new.tsx\": 79577,\n\t\"./tenant/dimensions/show\": 47178,\n\t\"./tenant/dimensions/show.tsx\": 47178,\n\t\"./tenant/fixed_asset_additions\": 65654,\n\t\"./tenant/fixed_asset_additions/\": 65654,\n\t\"./tenant/fixed_asset_additions/index\": 65654,\n\t\"./tenant/fixed_asset_additions/index.tsx\": 65654,\n\t\"./tenant/fixed_asset_additions/new\": 58346,\n\t\"./tenant/fixed_asset_additions/new.tsx\": 58346,\n\t\"./tenant/fixed_asset_additions/new/create_bill\": 86181,\n\t\"./tenant/fixed_asset_additions/new/create_bill.tsx\": 86181,\n\t\"./tenant/fixed_asset_additions/new/link_bill\": 79186,\n\t\"./tenant/fixed_asset_additions/new/link_bill.tsx\": 79186,\n\t\"./tenant/fixed_asset_additions/new/merge\": 93150,\n\t\"./tenant/fixed_asset_additions/new/merge.tsx\": 93150,\n\t\"./tenant/fixed_asset_additions/show\": 62705,\n\t\"./tenant/fixed_asset_additions/show.tsx\": 62705,\n\t\"./tenant/inventories\": 35131,\n\t\"./tenant/inventories/\": 35131,\n\t\"./tenant/inventories/index\": 35131,\n\t\"./tenant/inventories/index.tsx\": 35131,\n\t\"./tenant/inventory_transfers/new\": 23938,\n\t\"./tenant/inventory_transfers/new.tsx\": 23938,\n\t\"./tenant/recurring_transactions\": 7344,\n\t\"./tenant/recurring_transactions/\": 7344,\n\t\"./tenant/recurring_transactions/RecurringTransactionsInDashboard\": 79120,\n\t\"./tenant/recurring_transactions/RecurringTransactionsInDashboard.tsx\": 79120,\n\t\"./tenant/recurring_transactions/index\": 7344,\n\t\"./tenant/recurring_transactions/index.tsx\": 7344,\n\t\"./tenant/recurring_transactions/new\": 26966,\n\t\"./tenant/recurring_transactions/new.tsx\": 26966,\n\t\"./tenant/recurring_transactions/show\": 76397,\n\t\"./tenant/recurring_transactions/show.tsx\": 76397,\n\t\"./tenant/referrals\": 27313,\n\t\"./tenant/referrals/\": 27313,\n\t\"./tenant/referrals/index\": 27313,\n\t\"./tenant/referrals/index.tsx\": 27313,\n\t\"./tenant/reports\": 8816,\n\t\"./tenant/reports/\": 8816,\n\t\"./tenant/reports/analysis_by_dimensions\": 90458,\n\t\"./tenant/reports/analysis_by_dimensions/\": 90458,\n\t\"./tenant/reports/analysis_by_dimensions/index\": 90458,\n\t\"./tenant/reports/analysis_by_dimensions/index.tsx\": 90458,\n\t\"./tenant/reports/index\": 8816,\n\t\"./tenant/reports/index.tsx\": 8816,\n\t\"./tenant/stock_takes/new\": 87627,\n\t\"./tenant/stock_takes/new.tsx\": 87627,\n\t\"./tenant/subscription\": 73338,\n\t\"./tenant/subscription/\": 73338,\n\t\"./tenant/subscription/index\": 73338,\n\t\"./tenant/subscription/index.tsx\": 73338\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 55138;","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgNoBudgetData = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 95 88\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#234189\",\n d: \"M37.411 41.633 4.538 58.694c-3.575 1.855-3.54 6.979.058 8.787l33.075 16.61a21.898 21.898 0 0 0 19.658 0l33.075-16.61c3.598-1.808 3.633-6.932.058-8.787l-32.874-17.06a21.9 21.9 0 0 0-20.176 0z\",\n opacity: 0.8\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M37.411 22.735 4.538 39.795c-3.575 1.855-3.54 6.98.058 8.788l33.075 16.61a21.897 21.897 0 0 0 19.658 0l33.075-16.61c3.598-1.808 3.633-6.933.058-8.787l-32.874-17.06a21.9 21.9 0 0 0-20.176 0z\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m57.33 65.192 23.2-11.652-22.942-11.906a21.901 21.901 0 0 0-20.177 0L14.47 53.54l23.2 11.652a21.897 21.897 0 0 0 19.66 0z\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FAFAFA\",\n d: \"M37.411 3.837 4.538 20.897c-3.575 1.855-3.54 6.98.058 8.787L37.67 46.296a21.902 21.902 0 0 0 19.658 0l33.075-16.612c3.598-1.807 3.633-6.932.058-8.787L57.588 3.837a21.9 21.9 0 0 0-20.177 0z\"\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#234189\",\n d: \"m57.33 46.295 23.2-11.653-22.942-11.907a21.901 21.901 0 0 0-20.177 0L14.47 34.642l23.2 11.653a21.902 21.902 0 0 0 19.66 0z\",\n opacity: 0.8\n})), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m57.329 46.294 4.694-2.358-4.435-2.302a21.9 21.9 0 0 0-20.177 0l-4.436 2.302 4.695 2.358a21.902 21.902 0 0 0 19.659 0z\"\n})), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#19283A\",\n d: \"M47.5 49.989a23.3 23.3 0 0 1-10.448-2.464L3.978 30.913A6.285 6.285 0 0 1 .5 25.317a6.284 6.284 0 0 1 3.404-5.643l32.874-17.06a23.305 23.305 0 0 1 21.445 0l32.874 17.06a6.284 6.284 0 0 1 3.403 5.643 6.284 6.284 0 0 1-3.478 5.596L57.947 47.525A23.293 23.293 0 0 1 47.5 49.989zM38.046 5.057 5.172 22.117a3.495 3.495 0 0 0-1.918 3.18 3.496 3.496 0 0 0 1.96 3.155L38.29 45.063a20.61 20.61 0 0 0 18.422 0l33.075-16.611a3.496 3.496 0 0 0 1.96-3.154 3.497 3.497 0 0 0-1.918-3.18L56.953 5.058a20.545 20.545 0 0 0-18.907 0z\"\n})), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#19283A\",\n d: \"M47.5 68.887c-3.588 0-7.177-.822-10.448-2.465L3.977 49.813A6.284 6.284 0 0 1 .5 44.214a6.282 6.282 0 0 1 3.404-5.642l9.931-5.154 1.269 2.444-9.932 5.154a3.498 3.498 0 0 0-1.918 3.18 3.497 3.497 0 0 0 1.96 3.154L38.29 63.962a20.614 20.614 0 0 0 18.422 0L89.786 47.35a3.496 3.496 0 0 0 1.96-3.154 3.496 3.496 0 0 0-1.918-3.18l-9.932-5.154 1.269-2.444 9.932 5.154a6.283 6.283 0 0 1 3.403 5.642 6.284 6.284 0 0 1-3.478 5.598l-33.075 16.61A23.284 23.284 0 0 1 47.5 68.888z\"\n})), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#19283A\",\n d: \"M32.977 45.31a1.377 1.377 0 0 1-.635-2.598l4.436-2.303a23.176 23.176 0 0 1 20.05-.666 1.375 1.375 0 0 1 .709 1.813 1.378 1.378 0 0 1-1.814.71 20.432 20.432 0 0 0-17.677.588l-4.436 2.302a1.377 1.377 0 0 1-.633.155z\"\n})), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#19283A\",\n d: \"M47.5 87.786c-3.588 0-7.177-.82-10.448-2.464L3.977 68.711A6.282 6.282 0 0 1 .5 63.114a6.283 6.283 0 0 1 3.404-5.642l22.774-11.82a1.376 1.376 0 1 1 1.269 2.445L5.172 59.916a3.497 3.497 0 0 0-1.918 3.18 3.496 3.496 0 0 0 1.96 3.154L38.29 82.86a20.61 20.61 0 0 0 18.422 0l33.075-16.61a3.496 3.496 0 0 0 1.96-3.154 3.497 3.497 0 0 0-1.918-3.18L61.39 45.158a1.378 1.378 0 0 1 1.268-2.445l28.438 14.76a6.281 6.281 0 0 1 3.404 5.641 6.283 6.283 0 0 1-3.478 5.597L57.947 85.322A23.283 23.283 0 0 1 47.5 87.787zM14.47 36.018a1.378 1.378 0 0 1-.635-2.6l22.943-11.906a23.305 23.305 0 0 1 21.444 0s2.53 1.045 1.779 2.474c-.746 1.418-3.047-.03-3.047-.03a20.545 20.545 0 0 0-18.908 0L15.103 35.863a1.367 1.367 0 0 1-.633.155zm66.06 0a1.37 1.37 0 0 1-.634-.155l-16.413-8.518a1.377 1.377 0 1 1 1.269-2.444l16.413 8.517a1.378 1.378 0 0 1-.636 2.6z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgNoBudgetData);\nexport default Memo;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgTasksOutlined = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14 13.5H7.333a.504.504 0 0 1-.5-.5c0-.273.227-.5.5-.5H14c.273 0 .5.227.5.5s-.227.5-.5.5ZM14 8.833H7.333a.504.504 0 0 1-.5-.5c0-.273.227-.5.5-.5H14c.273 0 .5.227.5.5 0 .274-.227.5-.5.5ZM14 4.167H7.333a.504.504 0 0 1-.5-.5c0-.274.227-.5.5-.5H14c.273 0 .5.226.5.5 0 .273-.227.5-.5.5ZM2.667 4.833a.494.494 0 0 1-.354-.146l-.666-.667a.503.503 0 0 1 0-.707.503.503 0 0 1 .706 0l.314.314L4.313 1.98a.503.503 0 0 1 .707 0 .503.503 0 0 1 0 .707l-2 2c-.1.1-.227.146-.353.146ZM2.667 9.5a.494.494 0 0 1-.354-.147l-.666-.666a.503.503 0 0 1 0-.707.503.503 0 0 1 .706 0l.314.313 1.646-1.646a.503.503 0 0 1 .707 0 .503.503 0 0 1 0 .706l-2 2c-.1.1-.227.147-.353.147ZM2.667 14.167a.495.495 0 0 1-.354-.147l-.666-.667a.503.503 0 0 1 0-.706.503.503 0 0 1 .706 0l.314.313 1.646-1.647a.503.503 0 0 1 .707 0 .503.503 0 0 1 0 .707l-2 2c-.1.1-.227.147-.353.147Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgTasksOutlined);\nexport default Memo;","import axios from \"axios\";\nimport {\n AssetRegistries,\n AssetRegistry,\n AssetRegistriesResponse,\n} from \"types/AssetRegistry\";\n\nexport const getAssetRegistries = async ({\n search = \"\",\n page = 1,\n pageSize = 20,\n sorter = \"created_at desc\",\n filters = {},\n}: {\n search?: string;\n page?: number;\n pageSize?: number;\n sorter?: string;\n filters?: Record<\n string,\n string | number | boolean | Record<string, string | number | boolean>\n >;\n}): Promise<AssetRegistries> => {\n const { data } = await axios.get<AssetRegistriesResponse>(\n \"/tenant/asset_registers/fetch_all.json\",\n {\n params: {\n \"q[sku_cont]\": search,\n \"q[s]\": sorter || \"created_at desc\",\n page,\n per_page: pageSize || 20,\n ...filters,\n },\n },\n );\n return data.asset_registries;\n};\n\nexport const getAssetRegistry = async (\n assetRegistryID: number,\n params?: Record<\n string,\n | string\n | number\n | boolean\n | Record<string, string | number | boolean>\n | undefined\n >,\n): Promise<AssetRegistry> => {\n const { data } = await axios.get<AssetRegistry>(\n `/tenant/asset_registers/${assetRegistryID}.json`,\n {\n params: params,\n },\n );\n\n return data;\n};\n\nexport const updateAssetRegistry = async (registryParams: {\n id: number | string;\n start_depreciation_date: string;\n}): Promise<AssetRegistry> => {\n const { data } = await axios.put<AssetRegistry>(\n `/tenant/asset_registers/${registryParams.id}.json`,\n { asset_registry: registryParams },\n );\n\n return data;\n};\n","import axios from \"axios\";\nimport {\n AllCommercialDocuments,\n Bill,\n CommercialDocument,\n} from \"types/CommercialDocument\";\nimport { QueryParameters } from \"types/QueryParameters\";\n\nexport const getAllCommercialDocuments = async ({\n search = \"\",\n page = 1,\n pageSize = 20,\n sorter = \"created_at desc\",\n filters = {},\n}: QueryParameters): Promise<CommercialDocument[]> => {\n const { data } = await axios.get<AllCommercialDocuments>(\n \"/tenant/cds/all.json\",\n {\n params: {\n \"q[reference_cont]\": search,\n \"q[s]\": sorter || \"created_at desc\",\n page,\n per_page: pageSize || 20,\n ...filters,\n },\n },\n );\n\n return data.documents;\n};\n\nexport const getBill = async ({\n billID,\n}: {\n billID: number | string;\n}): Promise<Bill> => {\n const { data } = await axios.get<Bill>(`/tenant/bills/${billID}.json`);\n\n return data;\n};\n\nexport const getCommercialDocument = async ({\n commercialDocumentID,\n}: {\n commercialDocumentID: number;\n}): Promise<CommercialDocument> => {\n const { data } = await axios.get<CommercialDocument>(\n `/tenant/cds/all/${commercialDocumentID}.json`,\n );\n\n return data;\n};\n\nexport const calculateLineTotal = async (params: {\n quantity: number;\n unit_price: number;\n discount_value: number;\n discount_type: string;\n tax: number | string;\n is_inclusive: string;\n meta?: unknown;\n}): Promise<{\n amount_after_discount: number;\n tax_value: number;\n tax_percentage: number;\n line_total: number;\n meta?: Record<string, unknown>;\n}> => {\n const { data } = await axios.post<{\n amount_after_discount: number;\n tax_value: number;\n tax_percentage: number;\n line_total: number;\n meta?: Record<string, unknown>;\n }>(\"/tenant/cd/calculate_line_total.json\", params);\n\n return data;\n};\n\nexport const initializeBill = async (): Promise<{\n reference: string | null;\n numbering: string;\n}> => {\n const { data } = await axios.get<{\n reference: string | null;\n numbering: string;\n }>(\"/tenant/bills/new.json\");\n\n return data;\n};\n","import axios from \"axios\";\nimport { User } from \"types/User\";\n\nexport const getCurrentUser = async (): Promise<User> => {\n const { data } = await axios.get<User>(\"/tenant/current_user.json\");\n\n return data;\n};\n","import axios, { AxiosError } from \"axios\";\nimport {\n FixedAssetAddition,\n FixedAssetAdditionsWithPagination,\n FixedAssetAdditionWithErrors,\n} from \"types/FixedAssetAddition\";\n\nexport async function getFixedAssetAdditions(\n page: number,\n filters: Record<string, string | number | Record<string, string | number>>,\n pageSize: number,\n sorter: string,\n) {\n const { data } = await axios.get<FixedAssetAdditionsWithPagination>(\n `/tenant/fixed_asset_additions.json`,\n {\n params: {\n page,\n per_page: pageSize,\n \"q[s]\": sorter,\n ...filters,\n },\n },\n );\n return data;\n}\n\nexport async function getFixedAssetAddition(\n fixedAssetAdditionID: number | string,\n) {\n const { data } = await axios.get<FixedAssetAddition>(\n `/tenant/fixed_asset_additions/${fixedAssetAdditionID}.json`,\n );\n return data;\n}\n\nexport async function deleteFixedAssetAddition(record: FixedAssetAddition) {\n try {\n const { data } = await axios.delete<FixedAssetAddition>(\n `/tenant/fixed_asset_additions/${record.id}.json`,\n );\n\n return data;\n } catch (error: unknown) {\n throw (error as AxiosError)?.response?.data || error;\n }\n}\n\nexport const createFixedAssetAddition = async (\n values: HTMLFormElement,\n): Promise<FixedAssetAddition> => {\n const { data } = await axios.post<FixedAssetAddition>(\n \"/tenant/fixed_asset_additions.json\",\n values,\n {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n },\n );\n return data;\n};\n\nexport const updateFixedAssetAddition =\n (fixedAssetAdditionID: number) =>\n async (values: HTMLFormElement): Promise<FixedAssetAddition> => {\n const { data } = await axios.put<FixedAssetAddition>(\n `/tenant/fixed_asset_additions/${fixedAssetAdditionID}.json`,\n values,\n {\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n },\n );\n return data;\n };\n\nexport const initFixedAssetAddition = async (): Promise<FixedAssetAddition> => {\n const { data } = await axios.get<FixedAssetAddition>(\n \"/tenant/fixed_asset_additions/new.json\",\n );\n return data;\n};\n\nexport const validateFixedAssetAddition = async (values: {\n id: number | string;\n fixed_asset_addition: {\n reference: string;\n };\n}): Promise<FixedAssetAdditionWithErrors> => {\n const { data } = await axios.post<FixedAssetAdditionWithErrors>(\n \"/tenant/fixed_asset_additions/validate.json\",\n values,\n );\n return data;\n};\n","/* eslint-disable */\n//@ts-nocheck\nimport axios from \"axios\";\nimport { BudgetBreakdownReqBody, GetBreakdownResponse } from \"types/budget\";\nimport { Dimensions } from \"types/dimensions\";\nimport { AssetClassifications } from \"types/AssetClassification\";\n\nexport async function getBudgets(page, filters, pageSize, sorter) {\n const { data } = await axios.get(`/tenant/budgets.json`, {\n params: {\n page,\n per_page: pageSize,\n \"q[s]\": sorter,\n ...filters,\n },\n });\n return data;\n}\n\nexport async function getSingleBudget(id) {\n const { data } = await axios.get(`/tenant/budgets/${id}.json`, {});\n return data;\n}\nexport async function getDateRanges(id, type) {\n const { data } = await axios.get(\n `/tenant/budgets/${id}/date_ranges.json?cycle=${type}`,\n {},\n );\n return data.date_ranges;\n}\n\nexport async function getBudgetsLastReference() {\n const { data } = await axios.get(`/tenant/budgets/next_code.json`);\n return data;\n}\n\nexport async function getAccounts() {\n const { data } = await axios.get(`/tenant/accounts.json?nested=true`);\n return data;\n}\nexport async function getBudgetsPermissions() {\n const { data } = await axios.get(`/tenant/budgets/permissions.json`);\n return data;\n}\n\nexport async function getCategories() {\n const { data } = await axios.get(`/tenant/categories.json?nested=true`);\n return data;\n}\nexport async function getAssetClassifications({\n search = \"\",\n page = 1,\n pageSize = 20,\n sorter = \"created_at desc\",\n filters = {},\n}: {\n search?: string;\n page?: number;\n pageSize?: number;\n sorter?: string;\n filters?: any;\n} = {}): Promise<AssetClassifications> {\n const { data } = await axios.get(`/tenant/asset_classifications.json`, {\n params: {\n \"q[arabic_name_or_english_name_cont]\": search,\n \"q[s]\": sorter || \"created_at desc\",\n ...filters,\n page: page,\n per_page: pageSize,\n },\n });\n return data;\n}\n\nexport async function postBudget(formData, _id = null) {\n const response = await axios.post(\"/tenant/budgets.json\", formData, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n });\n return response.data;\n}\n\nexport async function updateBudget(formData, id = null) {\n const response = await axios.patch(`/tenant/budgets/${id}.json`, formData, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n });\n return response.data;\n}\n\nexport async function deleteBudget(id = null) {\n const response = await axios.delete(`/tenant/budgets/${id}.json`, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n });\n return response.data;\n}\n\nexport async function postBudgetDetails(formData, id) {\n const response = await axios.patch(`/tenant/budgets/${id}.json`, formData, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n });\n return response.data;\n}\n\nexport async function getBudgetDimensions(page): Promise<Dimensions> {\n const { data } = await axios.get(`/tenant/dimensions.json?page=${page}`);\n return data;\n}\n\nexport async function postBudgetingValueBreakdown(\n requestBody: BudgetBreakdownReqBody,\n) {\n const response = await axios.post(\n `/tenant/budgeting_value_breakdowns.json`,\n requestBody,\n {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n },\n );\n return response.data;\n}\n\nexport async function getBudgetingValueBreakdowns(\n id: number,\n valueIndex: number,\n): Promise<GetBreakdownResponse> {\n const { data } = await axios.get<GetBreakdownResponse>(\n `/tenant/budgeting_value_breakdowns.json?budgeting_value_id=${id}&value_index=${valueIndex}`,\n );\n return data;\n}\n\nexport async function getAllValuesBreakdowns(){\n const { data } = await axios.get<GetBreakdownResponse>(\n `/tenant/budgeting_value_breakdowns.json`\n );\n return data;\n}\n/* eslint-enable */\n","import axios from \"axios\";\nimport { QueryFunctionContext } from \"react-query\";\nimport { DimensionAssignableResponse, DimensionConfigs, DimensionType, DimensionValueResponse } from \"types/dimensions\";\n\n\nexport const getDimension = async({ dimensionID }: {dimensionID: string}): Promise<DimensionType> => {\n return (await axios.get<DimensionType>(`/tenant/dimensions/${dimensionID}.json`)).data\n}\n\nexport const getDimensions = async (props: {page?: number, 'q[sorts]': string[]}): Promise<DimensionType[]> => {\n const queryParams = new URLSearchParams();\n for(const [key, value] of Object.entries(props)) {\n if(Array.isArray(value)) {\n value.forEach(val => queryParams.append(`${key}[]`, String(val)))\n continue;\n }\n queryParams.set(key, String(value));\n }\n return (await axios.get<DimensionType[]>(`/tenant/dimensions.json?${queryParams.toString()}`)).data\n}\n\nexport const getConfiguration = async({ dimensionID }: {dimensionID: string}) => {\n return (await axios.get<DimensionConfigs[]>(`/tenant/dimensions/${dimensionID}/configurations.json?q[enabled_eq]=true`)).data\n}\n\nexport const updateConfigurations = async (): Promise<DimensionType> => {\n return (await axios.get<DimensionType>(`/tenant/dimensions.json`)).data\n}\n\nexport const getParentDimensionValues = async ({ dimensionID }: { dimensionID: string }, { pageParam }: Pick<QueryFunctionContext<string[], number>, 'pageParam'>) => { \n const { data } = await axios.get<DimensionValueResponse>(`/tenant/dimensions/${dimensionID}/values.json?page=${pageParam ?? 1}&q[value_type_eq]=parent_value`);\n return data;\n}\n\nexport const getUnAssignedDimensionValues = async ({ dimensionID }: { dimensionID: string }, { pageParam }: Pick<QueryFunctionContext<string[], number>, 'pageParam'>) => { \n const { data } = await axios.get<DimensionValueResponse>(`/tenant/dimensions/${dimensionID}/values/unassigned_dimension_values.json?page=${pageParam ?? 1}`);\n return data;\n}\n\ninterface ValuesProps { \n dimensionID: number; \n cdType: string;\n page: number;\n type: string; \n parentID?: number | null | undefined; \n perPage?: number;\n valueID: string;\n disabledDimensionValues?: boolean;\n lineItem?: number | string;\n}\n\nexport const getDimensionValues = async ({ dimensionID, page=1, parentID, cdType='', perPage=100, type='', valueID='', disabledDimensionValues, lineItem='' }: ValuesProps) => { \n let parentQueryParam = '';\n if(typeof parentID !== 'undefined') {\n parentQueryParam = parentID == null? 'q[parent_id_null]=true' : `q[parent_id_eq]=${parentID}`;\n }\n \n let disabledQueryParam = '';\n if(typeof disabledDimensionValues !== 'undefined') {\n disabledQueryParam = `q[activated_eq]=${disabledDimensionValues}`;\n }\n\n const { data } = await axios.get<DimensionValueResponse>(`/tenant/dimensions/${dimensionID}/values.json?per_page=${perPage}&page=${page}&q[available_for_cd]=${cdType}&q[value_type_eq]=${type}&q[id_eq]=${valueID}&q[available_for_line_item]=${lineItem}&${parentQueryParam}&${disabledQueryParam}`);\n return data;\n}\n\nexport const getActivatedDimensionValues = ({...props}: ValuesProps) => getDimensionValues({...props, disabledDimensionValues: true})\n\nexport const getValuesByLineItem = async ({ lineItemID, cdType }: { lineItemID: string, cdType: string }) => {\n const { data } = await axios.get<DimensionAssignableResponse>(`/tenant/dimension_value_assignables.json?q[by_external_line_item][line_item_id]=${lineItemID}&q[by_external_line_item][cd_type]=${cdType}`);\n return data;\n}\n","import axios, { AxiosResponse } from \"axios\";\nimport { QueryFunction, QueryFunctionContext } from \"react-query\";\nimport {\n CustomFieldApiResponse,\n InventoryApiResponse,\n InvoiceData,\n SimpleBillData,\n} from \"types/app\";\nimport {\n DocumentTypes,\n RecurringTransactionData,\n RTDocumentsTypes,\n RTIndexResponse,\n RTPermissions,\n RTSchedulesResponse,\n ScheduleApiResponse,\n ToggleStatus,\n TransactionApiResponse,\n} from \"types/recurring_transactions\";\n\nexport async function fetchDocuments<T extends DocumentTypes>(\n documentType: T | null,\n searchParams: string = \"\"\n): Promise<\n T extends \"Invoices\"\n ? { documents: InvoiceData[]; meta: { total_pages: number } }\n : { simple_bills: SimpleBillData[]; meta: { total_pages: number } }\n> {\n let baseURL: string = \"\";\n\n switch (documentType) {\n case \"Invoices\":\n baseURL = \"/tenant/invoices.json\";\n break;\n case \"Bills\":\n baseURL = \"/tenant/bills.json\";\n break;\n case \"SimpleBills\":\n baseURL = \"/tenant/simple_bills.json\";\n break;\n }\n\n const searchParamsObj = new URLSearchParams(searchParams);\n\n if (!searchParamsObj.has(\"reset\")) {\n searchParamsObj.set(\"reset\", \"true\");\n }\n\n if (!searchParamsObj.get(\"q[status_eq]\")) {\n searchParamsObj.append(\"q[status_in][]\", \"Approved\");\n searchParamsObj.append(\"q[status_in][]\", \"Paid\");\n searchParamsObj.append(\"q[status_in][]\", \"Partially Paid\");\n }\n\n const url = `${baseURL}?${searchParamsObj}`;\n\n return (await axios.get(url)).data;\n}\n\nexport async function getLocations({\n pageParam = 1,\n}: QueryFunctionContext<\"locations\", number>) {\n const res = await axios.get<InventoryApiResponse>(\n `/tenant/inventories.json?page=${pageParam}`\n );\n return res.data;\n}\n\nexport const getCustomFields: QueryFunction<CustomFieldApiResponse> = async ({\n queryKey,\n}) => {\n return (\n await axios.get(\n `/tenant/cpn_custom_fields.json?q[custom_field_for_eq]=${queryKey[1]}`\n )\n ).data;\n};\n\nexport async function getRTPermissions(): Promise<RTPermissions> {\n return (\n await axios.get(\n \"/tenant/tenant_roles/permissions?module_names=Recurring%20Transactions,Invoices,Bills,Simple%20Bills\"\n )\n ).data;\n}\n\nexport async function getSchedules(\n transactionId: number,\n querySearch: URLSearchParams\n) {\n return (\n await axios.get<ScheduleApiResponse>(\n `/tenant/recurring_transactions/${transactionId}/schedules?${querySearch.toString()}`\n )\n ).data;\n}\n\nexport async function getTransaction(\n id: number,\n querySearch?: URLSearchParams\n) {\n return (\n await axios.get<TransactionApiResponse>(\n `/tenant/recurring_transactions/${id}.json${\n querySearch ? `?${querySearch.toString()}` : \"\"\n }`\n )\n ).data;\n}\n\nexport const createRecurringTransaction = async (data: RecurringTransactionData) => {\n const response = await axios.post(\"/tenant/recurring_transactions\", data);\n return response.data;\n};\n\nexport const getNextReference = async () => {\n const response = await axios.get(\"/tenant/recurring_transactions/next_reference\");\n return response.data;\n};\n\nexport const getRecurringTransactionSchedules = async (\n currentPage: number,\n pageSize: number,\n documentType?: RTDocumentsTypes | null\n) => {\n let baseUrl = \"/tenant/recurring_transaction_schedules\";\n const params = new URLSearchParams();\n params.set(\"page\", currentPage.toString() || \"1\");\n params.set(\"per_page\", pageSize.toString() || \"10\");\n\n if (documentType) {\n params.set(\"q[recurring_transaction_document_type_eq]\", documentType);\n }\n\n const response = await axios.get<RTSchedulesResponse>(`${baseUrl}?${params.toString()}`);\n return response.data;\n};\n\nexport const getRTRecords = async (querySearch: string) => {\n return (\n await axios.get<RTIndexResponse>(\n `/tenant/recurring_transactions.json${querySearch}`\n )\n ).data;\n};\n\nexport const updateStatus = (newStatus: {\n id: number;\n status: ToggleStatus;\n}) => {\n return axios.post<{ status: ToggleStatus }>(\n `/tenant/recurring_transactions/${newStatus.id}/change_status`,\n {\n status: newStatus.status,\n }\n );\n};\n\nexport const deleteRT = (id: number) => {\n return axios.delete(`/tenant/recurring_transactions/${id}`, {\n headers: { Accept: \"application/json\" },\n });\n};\n\n\nexport const executeSchedule = async (\n id: number,\n operation: \"run\" | \"skip\"\n) => {\n return (\n await axios.post<\n {\n operation: \"run\" | \"skip\";\n },\n AxiosResponse<\n | {\n errors: string;\n }\n | { message: string }\n >\n >(`/tenant/recurring_transaction_schedules/${id}/execute`, { operation })\n ).data;\n};\n","import React, { useContext, useEffect, useRef, useState } from \"react\";\nimport type {\n FormRule,\n GetRef,\n InputRef,\n TableColumnGroupType,\n TableColumnType,\n TableProps,\n} from \"antd\";\nimport { Button, Form, Input, Popconfirm, Table } from \"antd\";\n\ntype FormInstance<T> = GetRef<typeof Form<T>>;\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst EditableContext = React.createContext<FormInstance<any> | null>(null);\n\ninterface Item {\n key: string;\n name: string;\n age: string;\n address: string;\n}\n\ninterface EditableRowProps {\n index: number;\n}\n\nconst EditableRow: React.FC<EditableRowProps> = ({ index, ...props }) => {\n const form = Form.useFormInstance();\n if (form)\n return (\n <EditableContext.Provider value={form}>\n <tr {...props} key={index} />\n </EditableContext.Provider>\n );\n\n const [newForm] = Form.useForm();\n return (\n <Form form={newForm} component={false}>\n <EditableContext.Provider value={form}>\n <tr {...props} />\n </EditableContext.Provider>\n </Form>\n );\n};\n\ninterface EditableCellProps {\n title: React.ReactNode;\n editable: boolean;\n dataIndex: keyof Item;\n record: Item;\n handleSave: (record: Item) => void;\n keepEditable?: boolean;\n formName?: string | number | (string | number)[];\n rules?: FormRule[];\n}\n\nconst EditableCell: React.FC<React.PropsWithChildren<EditableCellProps>> = ({\n title,\n editable,\n children,\n dataIndex,\n formName,\n record,\n keepEditable,\n handleSave,\n rules,\n ...restProps\n}) => {\n const [editing, setEditing] = useState(keepEditable ?? false);\n const inputRef = useRef<InputRef>(null);\n const form = useContext(EditableContext)!;\n const formFieldName = formName || dataIndex;\n\n useEffect(() => {\n if (editing) {\n inputRef.current?.focus();\n }\n }, [editing]);\n\n const toggleEdit = () => {\n if (keepEditable) return;\n\n setEditing(!editing);\n\n form.setFieldValue(formFieldName, record[dataIndex]);\n };\n\n const save = () => {\n const value = form.getFieldValue(formFieldName) as string;\n\n toggleEdit();\n handleSave({ ...record, [dataIndex]: value });\n };\n\n let childNode = children;\n\n if (editable) {\n childNode = editing ? (\n <Form.Item style={{ margin: 0 }} name={formFieldName} rules={rules}>\n <Input ref={inputRef} onPressEnter={save} onBlur={save} />\n </Form.Item>\n ) : (\n <div\n className=\"editable-cell-value-wrap\"\n style={{ paddingInlineEnd: 24 }}\n onClick={toggleEdit}\n >\n {children}\n </div>\n );\n }\n\n return (\n <td {...restProps} data-title={title}>\n {childNode}\n </td>\n );\n};\n\ninterface EditableTableProps extends TableProps {\n deletableRow?: boolean;\n addMore?: boolean;\n keepEditable?: boolean;\n}\n\ntype EditableColumnType = (TableColumnType<any> | TableColumnGroupType<any>) & {\n editable?: boolean;\n dataIndex: string;\n formName?: (\n record: Record<string, string | number | undefined>,\n ) => string | number | (string | number)[];\n rules?: (record: Record<string, string | number | undefined>) => FormRule[];\n};\n\nconst EditableTable = (props: EditableTableProps) => {\n const {\n dataSource,\n columns,\n deletableRow,\n addMore,\n keepEditable,\n ...restProps\n } = props;\n const [tableDataSource, setTableDataSource] = useState<\n Record<string, string | number | undefined>[]\n >(\n (dataSource as Record<string, string | number | undefined>[] | undefined) ??\n [],\n );\n\n const [count, setCount] = useState(dataSource?.length || 0);\n\n const handleDelete = (key: React.Key) => {\n const newData = tableDataSource.filter((item) => item.key !== key);\n setTableDataSource(newData);\n };\n\n const defaultColumns: EditableColumnType[] = columns as EditableColumnType[];\n\n if (deletableRow) {\n defaultColumns.push({\n title: \"operation\",\n dataIndex: \"operation\",\n render: (_, record: Record<string, string | number>) =>\n (dataSource?.length || 0) > 1 ? (\n <Popconfirm\n title=\"Sure to delete?\"\n onConfirm={() => handleDelete(record.key)}\n >\n <a>Delete</a>\n </Popconfirm>\n ) : null,\n });\n }\n\n const handleAdd = () => {\n const newData = {\n key: count,\n };\n setTableDataSource([...tableDataSource, newData]);\n setCount(count + 1);\n };\n\n const handleSave = (row: Record<string, string | number | undefined>) => {\n const newData = [...tableDataSource];\n const index = newData.findIndex(\n (item: Record<string, string | number | undefined>) =>\n row.key === item.key,\n );\n const item = newData[index];\n newData.splice(index, 1, {\n ...item,\n ...row,\n });\n setTableDataSource(newData);\n };\n\n const components = {\n body: {\n row: EditableRow,\n cell: EditableCell,\n },\n };\n\n const dataColumns = defaultColumns.map((col: EditableColumnType) => {\n if (!col.editable) {\n return col;\n }\n return {\n ...col,\n onCell: (record: Record<string, string | number | undefined>) => ({\n record,\n editable: col.editable,\n dataIndex: col.dataIndex as string | number,\n title: col.title,\n formName: col.formName?.(record),\n rules: col.rules?.(record),\n keepEditable,\n handleSave,\n }),\n };\n });\n\n return (\n <Table\n {...restProps}\n components={components}\n rowClassName={() => \"editable-row\"}\n dataSource={tableDataSource}\n columns={dataColumns as EditableColumnType[]}\n footer={() =>\n addMore ? (\n <Button\n onClick={handleAdd}\n type=\"primary\"\n style={{ marginBottom: 16 }}\n >\n Add a row\n </Button>\n ) : (\n \"\"\n )\n }\n />\n );\n};\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nexport default EditableTable;\n","import React from \"react\";\nimport { CloseCircleOutlined } from \"@ant-design/icons\";\nimport { Button, Result, Typography } from \"antd\";\nimport { useTranslation } from \"react-i18next\";\n\nconst { Paragraph } = Typography;\n\nconst ServerError: React.FC = () => {\n const { t } = useTranslation();\n\n return (\n <Result\n status=\"error\"\n title={t(\"home.registration_complete.title\")}\n subTitle={t(\n \"templates.integrations.flash_messages.internal_server_error\",\n )}\n extra={[\n <Button key=\"reload\" href=\"/tenant/dashboards\">\n {t(\"forms.buttons.try_again\")}\n </Button>,\n ]}\n >\n <div className=\"desc\">\n <Paragraph>\n <CloseCircleOutlined className=\"site-result-demo-error-icon\" />\n {t(\"templates.error_fetching\")}\n </Paragraph>\n </div>\n </Result>\n );\n};\n\nexport default ServerError;\n","import { UIEventHandler, useEffect, useRef } from \"react\";\nimport { ConfigProvider, Input, Select, SelectProps, Spin } from \"antd\";\nimport { useQuery } from \"react-query\";\nimport { uniqBy, compact, isEqual } from \"lodash\";\nimport { QueryKeyType } from \"types/query-keys\";\nimport { DefaultOptionType } from \"antd/es/select\";\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\ninterface SelectWithSearchProps extends SelectProps {\n queryFn: (options: any) => Promise<any>;\n queryKeyObject: QueryKeyType;\n dataLabelFn?: (data: any) => string;\n initialOpts?: (Record<string, any> | undefined | null)[];\n disabled?: boolean;\n filters?: Record<string, any>;\n selectFirstOption?: boolean;\n}\n\nexport const SelectWithSearch = (props: SelectWithSearchProps) => {\n const {\n queryFn,\n queryKeyObject,\n dataLabelFn = undefined,\n initialOpts = [],\n disabled = false,\n filters = {},\n onChange,\n selectFirstOption = false,\n ...selectOnlyProps\n } = props;\n\n const queryProps = useRef({\n search: \"\",\n pageNumber: 1,\n dropDownData: compact(initialOpts || []),\n });\n const valueRef = useRef<string | null>(props.value as string | null);\n const filterRef = useRef(filters || {});\n valueRef.current = props.value as string | null;\n\n const fetchDropDownData = async (search: string, page: number) => {\n if (disabled) {\n return [];\n }\n\n try {\n return queryFn({\n search,\n page,\n filters,\n }) as Promise<Record<string, any>[]>;\n } catch (_error) {\n console.log(_error);\n return [];\n }\n };\n\n const { data, refetch, isLoading } = useQuery({\n queryKey: queryKeyObject.paginate?.(\n { filters, search: queryProps.current.search },\n queryProps.current.pageNumber,\n ),\n queryFn: () =>\n fetchDropDownData(\n queryProps.current.search,\n queryProps.current.pageNumber,\n ),\n enabled: !disabled,\n });\n\n if (!isLoading && data) {\n if (isEqual(filterRef.current, filters)) {\n queryProps.current.dropDownData = uniqBy(\n [...queryProps.current.dropDownData, ...data],\n \"id\",\n );\n } else {\n valueRef.current = null;\n queryProps.current.dropDownData = data;\n filterRef.current = filters;\n }\n }\n\n const handleSearch = (keyword: string) => {\n queryProps.current = {\n ...queryProps.current,\n dropDownData: [],\n search: keyword,\n pageNumber: 1,\n };\n refetch().catch(() => {\n console.log(\"Error\");\n });\n };\n\n const handleScroll: UIEventHandler<HTMLDivElement> = (e) => {\n e.persist();\n const target = e.target as HTMLDivElement;\n if (\n target.scrollTop + target.offsetHeight === target.scrollHeight &&\n (data || []).length >= 20\n ) {\n queryProps.current = {\n ...queryProps.current,\n pageNumber: queryProps.current.pageNumber + 1,\n };\n refetch().catch(() => {\n console.log(\"Error\");\n });\n }\n };\n\n const handleChange = (\n value: string,\n option: DefaultOptionType | DefaultOptionType[],\n ) => {\n valueRef.current = value;\n onChange?.(value, option);\n };\n\n const handleFocus = () => {\n queryProps.current = {\n ...queryProps.current,\n search: \"\",\n pageNumber: 1,\n };\n refetch().catch(() => {\n console.log(\"Error\");\n });\n };\n\n let selectOptions = queryProps.current\n .dropDownData as unknown as DefaultOptionType[];\n if (dataLabelFn) {\n selectOptions = queryProps.current.dropDownData.map(\n (dt: DefaultOptionType) =>\n ({\n value: dt.id as string | number,\n label: dataLabelFn(dt),\n ...dt,\n }) as DefaultOptionType,\n );\n }\n\n useEffect(() => {\n if (selectFirstOption && selectOptions.length == 1) {\n valueRef.current = String(selectOptions[0].value);\n onChange?.(selectOptions[0].value, selectOptions[0]);\n }\n }, [selectFirstOption, selectOptions, onChange]);\n\n const { componentDisabled } = ConfigProvider.useConfig();\n\n if (componentDisabled) {\n const initialSelectedOpt =\n initialOpts.length === 0 ? selectOptions : compact(initialOpts || []);\n\n let selectedOpt = initialSelectedOpt.find((opt: DefaultOptionType) => {\n if (opt.id === valueRef.current) return true;\n\n if (\n (opt.options as DefaultOptionType[] | undefined)?.find(\n (subOpt: DefaultOptionType) => subOpt.id === valueRef.current,\n )\n )\n return true;\n\n return false;\n }) as DefaultOptionType | undefined;\n\n if (selectedOpt?.options) {\n selectedOpt = (selectedOpt.options as DefaultOptionType[]).find(\n (opt: DefaultOptionType) => opt.id === valueRef.current,\n );\n }\n const label =\n dataLabelFn?.(selectedOpt || {}) ||\n selectedOpt?.label ||\n valueRef.current ||\n \"\";\n\n return <Input value={String(label)} />;\n }\n\n return (\n <Select\n showSearch\n {...selectOnlyProps}\n options={selectOptions}\n value={valueRef.current}\n defaultActiveFirstOption={false}\n filterOption={false}\n onSearch={handleSearch}\n disabled={componentDisabled || disabled}\n notFoundContent={isLoading ? <Spin size=\"small\" /> : null}\n onChange={handleChange}\n onFocus={handleFocus}\n onPopupScroll={handleScroll}\n />\n );\n};\n/* eslint-enable @typescript-eslint/no-explicit-any */\n","//@ts-nocheck\nimport React from 'react'\nimport {ConfigProvider} from 'antd'\nimport { QueryClient, QueryClientProvider } from 'react-query'\nimport { antdConfigProps } from 'pages/layout/App';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n})\n\nconst AntdWithTheme = ({ children }) => (\n <QueryClientProvider client={queryClient}>\n <ConfigProvider {...antdConfigProps}>\n {children}\n </ConfigProvider>\n </QueryClientProvider>\n)\n\nexport default AntdWithTheme","//@ts-nocheck\nimport React from 'react'\nimport { ArrowLeftOutlined, ArrowRightOutlined } from '@ant-design/icons';\nimport { Button } from 'antd';\nimport i18next from 'i18next';\nimport { useTranslation } from 'react-i18next';\n\nconst BackButton = () => {\n\n const { t } = useTranslation();\n \n return (\n <Button icon={i18next.language === 'en'? <ArrowLeftOutlined /> : <ArrowRightOutlined />} type=\"primary\" onClick={window.go_back}>{t('forms.buttons.back')}</Button>\n )\n}\n\nexport default BackButton;","//@ts-nocheck\nimport React from 'react';\nimport {Layout, Space, Typography} from 'antd';\nimport i18next from 'i18next';\nimport { useTranslation } from 'react-i18next';\nimport GAMap from 'tokens/GAMap.json';\nimport ReactGA from 'react-ga4';\n\nconst {Footer} = Layout;\nconst {Text, Link} = Typography;\n\nconst mobileFooter = new Map<string, any>([\n ['Styles', {\n flexDirection: 'column',\n copyrightRank: -1,\n height: 154\n }]\n])\n\nconst pcFooter = new Map<string, any>([\n ['Styles', {\n flexDirection: 'row',\n copyrightRank: 0,\n height: 70\n }]\n])\n\nconst footerLinksAR = new Map([\n ['termsAndConditions', '/ara/terms-and-conditions'],\n ['privacyPolicy', '/ara/privacy-policy'],\n ['helpCenter', '/ara/مركز-المساعدة']\n])\n\nconst footerLinksEN = new Map([\n ['termsAndConditions', '/en/terms-and-conditions'],\n ['privacyPolicy', '/en/privacy-policy'],\n ['helpCenter', '/en/help-center']\n])\n\nconst trackGAEvent = (action: string) => {\n ReactGA.event({\n category: GAMap.footer.CATEGORY,\n action: action\n });\n}\n\n\nconst QFooter = ({broken}) => {\n const {t} = useTranslation();\n const footerDirection = (broken? mobileFooter.get('Styles') : pcFooter.get('Styles'))?.flexDirection\n const copyrightRank = (broken? mobileFooter.get('Styles') : pcFooter.get('Styles'))?.copyrightRank\n const footerLinks = i18next.language === 'en'? footerLinksEN : footerLinksAR;\n\n return (\n <Footer style={{ textAlign: 'center', display: 'flex', justifyContent: 'space-between', alignItems: 'center', paddingInline: 32, flexDirection: footerDirection, gap: 20, position: 'absolute', bottom: 0}}>\n <Space size='large' style={{display: 'flex'}}>\n <Text style={{wordBreak: 'unset'}}>{i18next.language === 'en'? 'EN' : 'العربية'}</Text>\n </Space>\n <Space size='large' style={{display: 'flex', order: copyrightRank}}>\n <Text style={{wordBreak: 'unset'}}>{t('activerecord.attributes.devise.qoyod')} © {(new Date()).getFullYear()}</Text>\n </Space>\n <Space size='large' style={{display: 'flex'}}>\n <Link style={{wordBreak: 'unset'}} onClick={() => { trackGAEvent(GAMap.footer.termsAndConditions); }} href={footerLinks.get('termsAndConditions')}>{t('activerecord.attributes.home.terms_of_use')}</Link>\n <Link style={{wordBreak: 'unset'}} onClick={() => { trackGAEvent(GAMap.footer.privacyPolicy); }} href={footerLinks.get('privacyPolicy')}>{t('activerecord.attributes.home.privacy_policy')}</Link>\n <Link style={{wordBreak: 'unset'}} onClick={() => { trackGAEvent(GAMap.footer.FAQ); }} href={footerLinks.get('helpCenter')}>{t('activerecord.attributes.home.faq')}</Link>\n </Space>\n </Footer>\n )\n}\n\nexport default QFooter","//@ts-nocheck\nimport React, {useEffect, useState, useContext, useCallback} from 'react';\nimport {Layout, Space, Typography, Dropdown, Button, Avatar, Divider, MenuProps, Drawer, Menu} from 'antd';\nimport {MessageOutlined, QuestionCircleOutlined, UserOutlined, MenuOutlined, MenuFoldOutlined, MenuUnfoldOutlined,TrophyOutlined} from '@ant-design/icons';\nimport i18next from 'i18next';\nimport { useTranslation } from 'react-i18next';\nimport {theme} from 'antd';\nimport QLogo from './Logo';\nimport QIcon from 'components/layout/QIcon';\nimport QLayoutContext from 'contexts/Layout';\nimport { useComments, useHelp, useTasks, useUserSetting } from 'hooks/layout';\nimport ReactGA from 'react-ga4';\nimport GAMap from 'tokens/GAMap.json';\nimport TasksOutlined from 'assets/icons/Tasks-Outlined.svg'\n\nconst {useToken} = theme;\n\nconst {Header} = Layout;\nconst {Text, Link, Paragraph} = Typography;\n\nconst trackGAEvent = (action) => {\n ReactGA.event({\n category: GAMap.header.CATEGORY,\n action: action\n });\n}\n\nconst mobileHeader = new Map<string, unknown>([\n ['Position', 'absolute'],\n ['Content', ({triggerCollapse, comments, tasks, helpItems, userSettings, getLatestTasks,showReferral}) => {\n\n const [open, setOpen] = useState(false);\n const [items, setItems] = useState([]);\n\n const showDrawer = () => {\n setOpen(true);\n };\n\n const onClose = () => {\n setOpen(false);\n };\n\n useEffect(() => {\n setItems(tasks);\n }, [ tasks ])\n\n return (\n <>\n <Space>\n {showReferral && \n <Button \n icon={<TrophyOutlined style= {{ color: \"#1890ff\" }} />}\n onClick={() => {\n window.location.href=\"/tenant/referrals\"\n }}\n />\n }\n <Button onClick={() => {setItems(comments); showDrawer(); trackGAEvent(GAMap.header.mentions.expand)}} type=\"text\" icon={<MessageOutlined />} />\n <Button onClick={() => {setItems(helpItems); showDrawer()}} type=\"text\" icon={<QuestionCircleOutlined />} />\n <Button onClick={() => {getLatestTasks(); showDrawer(); trackGAEvent(GAMap.header.tasks.expand)}} type=\"text\" icon={<QIcon component={TasksOutlined} />} />\n <Button onClick={() => {setItems(userSettings); showDrawer()}} type=\"text\" icon={<UserOutlined />} />\n <Button\n type=\"text\"\n icon={<MenuOutlined />}\n onClick={triggerCollapse}\n />\n </Space>\n <Drawer placement=\"top\" onClose={onClose} open={open} closeIcon={null}>\n <Space direction=\"vertical\" style={{width: '100%'}}>\n {items.map(item => item.label)}\n </Space>\n </Drawer>\n </>\n )}]\n ]);\n\n const pcHeader = new Map<string, unknown>([\n ['Position', 'relative'],\n ['Content', ({triggerCollapse, collapsed, currentUser, organizationName, comments, tasks, helpItems, userSettings, getLatestTasks, showReferral}) => (\n <div style={{display: 'flex', alignItems: 'center', width: '100%', justifyContent: 'space-between', gap: 8}}>\n <div style={{display: 'flex', alignItems: 'center', gap: 8, width: '50%'}}>\n <Button\n type=\"text\"\n icon={collapsed ? <MenuUnfoldOutlined style={{transform: i18next.dir() === 'rtl'? 'rotate(180deg)' : ''}} /> : <MenuFoldOutlined style={{transform: i18next.dir() === 'rtl'? 'rotate(180deg)' : ''}} />}\n onClick={triggerCollapse}\n style={{\n padding: 0\n }}\n />\n <Paragraph style={{margin: 0, width: 'calc(100% - 40px)'}} ellipsis={{rows: 1}}>{useTranslation().t('activerecord.attributes.layout.welcome')} <Link href={currentUser.href} onClick={() => trackGAEvent(GAMap.header.editProfile)} strong>{currentUser.label}</Link> {useTranslation().t('activerecord.attributes.layout.in_orgnization')} <Text strong>{organizationName}</Text></Paragraph>\n </div>\n <Space size={16} split={<Divider type=\"vertical\" />}>\n <Space>\n {showReferral && \n <Button \n icon={<TrophyOutlined style= {{ color: \"#1890ff\" }} />}\n onClick={() => {\n window.location.href=\"/tenant/referrals\"\n }}\n >\n {useTranslation().t('referrals.name')} \n </Button>\n }\n <Dropdown onOpenChange={(opened) => trackGAEvent(opened? GAMap.header.mentions.expand : GAMap.header.mentions.collapse)} menu={{ items: comments, style: {width: 443, maxHeight: '90vh', overflow: 'auto', border: '1px solid rgba(0, 0, 0, 10%)', padding: 0} }} trigger={[\"click\"]}>\n <Button icon={<MessageOutlined />} />\n </Dropdown>\n <Dropdown menu={{ items: helpItems, style: {border: '1px solid rgba(0, 0, 0, 10%)'} }} trigger={[\"click\"]}>\n <Button icon={<QuestionCircleOutlined />} />\n </Dropdown>\n <Dropdown onOpenChange={(opened) => { trackGAEvent(opened? GAMap.header.tasks.expand : GAMap.header.tasks.collapse); opened && getLatestTasks()}} menu={{ items: tasks, style: {width: 443, maxHeight: '90vh', overflow: 'auto', border: '1px solid rgba(0, 0, 0, 10%)', padding: 0} }} trigger={[\"click\"]}>\n <Button icon={<QIcon style={{fill: 'black'}} component={TasksOutlined} />} />\n </Dropdown>\n </Space>\n <Space size={8} align=\"center\">\n <Avatar shape=\"square\" size=\"large\" src={currentUser.tenantLogo} />\n <Dropdown.Button menu={{items: userSettings, style: {border: '1px solid rgba(0, 0, 0, 10%)'}}} onClick={() => {}} trigger={[\"click\"]}>\n {organizationName}\n </Dropdown.Button>\n </Space>\n </Space>\n </div>\n )]\n ])\n\n\nconst QHeader = ({broken, collapsed, logoURL, triggerCollapse, startIntro}) => {\n const {token} = useToken();\n const [headerView, setHeaderView] = useState(null);\n const {currentUser, organizationName, showReferral} = useContext(QLayoutContext);\n const comments = useComments();\n const { tasks, getLatestTasks } = useTasks();\n const helpItems = useHelp(broken, startIntro);\n const userSettings = useUserSetting();\n\n const menuTrigger = useCallback(() => {\n triggerCollapse();\n const eventID = collapsed? GAMap.header.menuTrigger.expand : GAMap.header.menuTrigger.collapse;\n trackGAEvent(eventID);\n }, [triggerCollapse])\n\n useEffect(() => {\n if(broken) {\n setHeaderView(mobileHeader);\n } else {\n setHeaderView(pcHeader)\n }\n }, [broken])\n\n const HeaderContent = headerView?.get('Content') ?? (() => null);\n\n return (\n <Header style={{ padding: 0, background: token.colorBgContainer, width: '100%', left: 0, position: headerView?.get('Position') }}>\n <div style={{paddingInline: token.paddingMD, display: 'flex', justifyContent: 'space-between'}}>\n {broken? <QLogo logoURL={logoURL} logoHeight={'80%'} /> : null}\n <HeaderContent triggerCollapse={menuTrigger} collapsed={collapsed} currentUser={currentUser} organizationName={organizationName} comments={comments} tasks={tasks} helpItems={helpItems} userSettings={userSettings} getLatestTasks={getLatestTasks}showReferral={showReferral} />\n </div>\n </Header>\n )\n}\n\nexport default QHeader\n","//@ts-nocheck\nimport React from 'react';\n\n\nconst QLogo = ({ logoURL, logoHeight }) => (\n <div style={{height: 64, display: 'flex', justifyContent: 'center', alignItems: 'center'}}>\n <img\n srcSet={`/assets/logos/${logoURL}/small.png 480w,\n /assets/logos/${logoURL}/medium.png 800w,\n /assets/logos/${logoURL}/large.png 1200w`}\n sizes=\"(max-width: 480px) 480px,\n (max-width: 800px) 800px,\n 1200px\"\n src={`/assets/logos/${logoURL}/large.png`} alt=\"qyd_logo\" style={{height: logoHeight}} />\n </div>\n)\n\nexport default QLogo","import { useTranslation } from \"react-i18next\";\n\nconst NoMatch = () => {\n const { t } = useTranslation();\n\n return (\n <div className=\"error-main-block\">\n <div className=\"col-md-12\">\n <div className=\"error-block clearfix\">\n <div className=\"col-md-6 col-md-offset-3\">\n <div className=\"error-block-content\">\n <div className=\"error400\">\n 404\n <sub>\n <br />\n {t(\"activerecord.attributes.home.bad_request\")}\n </sub>\n </div>\n <p>{t(\"activerecord.attributes.home.url\")}</p>\n <div className=\"error-btn-group\">\n <div className=\"back-btn pull-right\">\n <a onClick={() => history.back()}>\n <i className=\"fa fa-arrow-left client_primary_color fw-700\"></i>\n {t(\"forms.buttons.back\")}\n </a>\n </div>\n\n <a className=\"btn back-home\" href=\"/tenant/dashboards\">\n <i className=\"fa fa-home\"></i>\n {t(\"activerecord.attributes.home.home\")}\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default NoMatch;\n","//@ts-nocheck\nimport React from 'react'\nimport {createPortal} from 'react-dom'\n\n\nconst Portal = ({Component, htmlRoot}) => createPortal(Component, document.querySelector(`[data-react-root=${htmlRoot}]`))\n\nexport default Portal;","//@ts-nocheck\nimport React from 'react';\nimport { Layout, theme, Space, Typography } from 'antd';\nconst { Title } = Typography;\n\nconst { Content } = Layout;\nconst {useToken} = theme;\n\nconst QContent: React.FC<{title: string, children: React.ReactNode | React.ReactNode[]}> = ({ children, title }) => {\n\n const { token } = useToken();\n \n return (\n <>\n <div style={{ borderTop: \"4px solid #217CA8\", paddingInline: token.paddingMD, paddingBlock: token.paddingSM, backgroundColor: token.colorPrimary}}>\n <Title style={{ margin: 0, color: 'white', fontWeight: 'normal' }} level={3}>{title}</Title>\n </div>\n <Content\n style={{\n paddingInline: token.paddingMD,\n paddingTop: token.paddingLG,\n paddingBottom: 2*token.paddingMD,\n backgroundColor: token.colorBgContainer,\n margin: 0,\n minHeight: 280\n }}\n >\n <Space style={{display: 'flex'}} direction=\"vertical\" size={token.paddingLG}>\n {children}\n </Space>\n </Content>\n </>\n \n )\n}\n\n\n\nexport default QContent;","//@ts-nocheck\nimport React from 'react';\nimport Icon from '@ant-design/icons';\n\nconst QIcon = ({component, ...props}) => {\n return <Icon component={component} {...props} />\n}\n\nexport default QIcon;","//@ts-nocheck\nimport React, { ReactNode } from \"react\";\nimport { Col, Result, Row } from \"antd\";\n\ninterface QOnBoardingIndexProps {\n icon: React.ReactElement;\n title: string;\n subtitle: string;\n extra: ReactNode;\n iconSize?: number;\n}\n\nconst QOnBoardingIndex = ({\n icon,\n title,\n subtitle,\n extra,\n iconSize = 72,\n}: QOnBoardingIndexProps) => {\n const iconWithStyle = React.cloneElement(icon, { style: { fontSize: iconSize } });\n\n return (\n <Row justify=\"center\" align=\"middle\">\n <Col lg={22} xl={16} xxl={11}>\n <Result icon={iconWithStyle} title={title} subTitle={subtitle} extra={extra} />\n </Col>\n </Row>\n );\n};\n\nexport default QOnBoardingIndex;\n","//@ts-nocheck\nimport React from 'react'\n\nimport { Breadcrumb, theme } from 'antd'\nimport type { ItemType } from 'antd/es/breadcrumb/Breadcrumb'\n\nconst { useToken } = theme;\n\ninterface QPageHeaderProps {\n children: React.ReactNode | React.ReactNode[];\n breadCrumbData: ItemType[];\n}\n\nconst QPageHeader: React.FC<QPageHeaderProps> = ({ children, breadCrumbData }) => {\n\n const { token } = useToken();\n \n return (\n <>\n <Breadcrumb\n style={{paddingTop: token.paddingLG}}\n items={breadCrumbData}\n />\n <div style={{display: 'flex', justifyContent: 'flex-end', paddingBottom: token.paddingMD}}>\n {children}\n </div>\n </>\n )\n}\n\nexport default QPageHeader","//@ts-nocheck\nimport React, { useEffect } from 'react'\n\nimport { theme, Layout } from 'antd';\nimport QPageHeader from './QPageHeader';\nimport QContent from './QContent';\nimport type { ItemType } from 'antd/es/breadcrumb/Breadcrumb'\nimport styles from 'styles/layout.scss';\n\nconst { useToken } = theme;\n\ninterface QPageLayoutProps {\n children: React.ReactNode | React.ReactNode[];\n breadCrumbData: ItemType[]; \n actionBtns: React.ReactNode | React.ReactNode[];\n title: string;\n messageHolder?: React.ReactNode\n}\n\nconst QPageLayout: React.FC<QPageLayoutProps> = ({children, breadCrumbData, actionBtns, title, messageHolder}) => {\n\n const { token } = useToken();\n\n useEffect(()=> {\n document.title = title;\n }, [title])\n \n return (\n <Layout style={{ paddingInline: token.paddingLG }} className={styles.q_ant_input__radio}>\n {messageHolder}\n <QPageHeader breadCrumbData={breadCrumbData} >\n {actionBtns}\n </QPageHeader>\n <QContent title={title}>\n {children}\n </QContent>\n </Layout>\n)\n}\n\nexport default QPageLayout\n","//@ts-nocheck\nimport React from 'react';\nimport { Layout, theme, Space } from 'antd';\n\nconst { Content } = Layout;\nconst {useToken} = theme;\n\nconst QContent: React.FC<{filter: JSX.Element, children: React.ReactNode | React.ReactNode[]}> = ({ children, filter }) => {\n\n const { token } = useToken();\n \n return (\n <>\n <div style={{ borderTop: \"4px solid #217CA8\", paddingInline: token.paddingMD, paddingBlock: token.paddingSM, backgroundColor: token.colorPrimary}}>\n {filter}\n </div>\n <Content\n style={{\n paddingInline: token.paddingMD,\n paddingTop: token.paddingLG,\n paddingBottom: 2*token.paddingMD,\n backgroundColor: token.colorBgContainer,\n margin: 0,\n minHeight: 280\n }}\n >\n <Space style={{display: 'flex'}} direction=\"vertical\" size={token.paddingLG}>\n {children}\n </Space>\n </Content>\n </>\n \n )\n}\n\n\n\nexport default QContent;","//@ts-nocheck\nimport React, { useEffect } from 'react'\n\nimport { theme, Layout } from 'antd';\nimport QPageHeader from './QPageHeader';\nimport QReportContent from './QReportContent';\nimport type { ItemType } from 'antd/es/breadcrumb/Breadcrumb'\nimport styles from 'styles/layout.scss';\n\nconst { useToken } = theme;\n\ninterface QPageLayoutProps {\n children: React.ReactNode | React.ReactNode[];\n breadCrumbData: ItemType[]; \n actionBtns: React.ReactNode | React.ReactNode[];\n title: string;\n filter: JSX.Element;\n messageHolder?: React.ReactNode\n}\n\nconst QPageLayout: React.FC<QPageLayoutProps> = ({children, breadCrumbData, actionBtns, title, filter, messageHolder}) => {\n\n const { token } = useToken();\n\n useEffect(()=> {\n document.title = title;\n }, [title])\n \n return (\n <Layout style={{ paddingInline: token.paddingLG }} className={styles.q_ant_input__radio}>\n {messageHolder}\n <QPageHeader breadCrumbData={breadCrumbData} >\n {actionBtns}\n </QPageHeader>\n <QReportContent filter={filter}>\n {children}\n </QReportContent>\n </Layout>\n)\n}\n\nexport default QPageLayout\n","import { Layout, theme, Space, Divider, Typography } from 'antd';\nconst { Title } = Typography;\n\nconst { Content } = Layout;\nconst { useToken } = theme;\n\nconst QContent: React.FC<{children: React.ReactNode | React.ReactNode[], title: string}> = ({ children, title }) => {\n\n const { token } = useToken();\n \n return (\n <>\n <Content\n style={{\n paddingInline: token.paddingMD,\n paddingTop: token.paddingLG,\n paddingBottom: 2*token.paddingMD,\n backgroundColor: token.colorBgContainer,\n margin: 0,\n minHeight: 280\n }}\n >\n <Divider orientation='left'>\n <Title level={2} style={{ marginTop: 0 }}>{title}</Title>\n </Divider>\n <Space style={{display: 'flex'}} direction=\"vertical\" size={token.paddingLG}>\n {children}\n </Space>\n </Content>\n </>\n \n )\n}\n\n\n\nexport default QContent;","import { useEffect } from 'react'\n\nimport { theme, Layout } from 'antd';\nimport QPageHeader from './QPageHeader';\nimport QServiceContent from './QServiceContent';\nimport type { ItemType } from 'antd/es/breadcrumb/Breadcrumb'\nimport styles from 'styles/layout.scss';\n\nconst { useToken } = theme;\n\ninterface QPageLayoutProps {\n children: React.ReactNode | React.ReactNode[];\n breadCrumbData: ItemType[]; \n actionBtns: React.ReactNode | React.ReactNode[];\n title: string;\n messageHolder?: React.ReactNode\n}\n\nconst QPageLayout: React.FC<QPageLayoutProps> = ({children, breadCrumbData, actionBtns, title, messageHolder}) => {\n\n const { token } = useToken();\n\n useEffect(()=> {\n document.title = title;\n }, [title])\n \n return (\n <Layout style={{ paddingInline: token.paddingLG }} className={styles.q_ant_input__radio}>\n {messageHolder}\n <QPageHeader breadCrumbData={breadCrumbData} >\n {actionBtns}\n </QPageHeader>\n <QServiceContent title={title}>\n {children}\n </QServiceContent>\n </Layout>\n)\n}\n\nexport default QPageLayout\n","import { Tag } from \"antd\";\nimport { useTranslation } from \"react-i18next\";\nimport { useStatusMap } from \"hooks/status\";\nimport { Statuses } from \"types/app\";\n\ninterface QStatusTagProps {\n status: string;\n icon?: React.ReactNode;\n style?: React.CSSProperties;\n}\n\nexport const QStatusTag = ({ status, icon, style }: QStatusTagProps) => {\n const { t } = useTranslation();\n\n const statuses = useStatusMap();\n\n const normalizedStatus = statuses._normalize(status);\n\n const color = statuses[normalizedStatus as Statuses]?.color;\n\n const statusLabel = t(statuses[normalizedStatus as Statuses]?.label);\n\n return (\n <Tag color={color} icon={icon} style={{ marginInline: \"0\", ...style }}>\n {statusLabel}\n </Tag>\n );\n};\n","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgBillsOutlined = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.92 15.167H2.16c-.633 0-1.22-.294-1.6-.807a1.985 1.985 0 0 1-.307-1.793l2.807-9.02a1.988 1.988 0 0 1 1.907-1.414h8.2c.806 0 1.533.48 1.84 1.227.166.387.2.827.1 1.26l-2.247 9.02a1.984 1.984 0 0 1-1.94 1.527ZM4.973 3.14a1 1 0 0 0-.953.707l-2.807 9.02c-.093.313-.04.64.16.906.187.254.48.4.794.4h8.76c.46 0 .86-.313.966-.76l2.247-9.026a.976.976 0 0 0-.047-.634.99.99 0 0 0-.92-.62h-8.2v.007Z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.853 15.167h-3.186a.504.504 0 0 1-.5-.5c0-.274.226-.5.5-.5h3.186a.97.97 0 0 0 .714-.314c.186-.2.28-.466.26-.74l-.66-9.08a.5.5 0 0 1 .46-.533.504.504 0 0 1 .533.46l.66 9.08a1.988 1.988 0 0 1-.527 1.493 1.938 1.938 0 0 1-1.44.634ZM6.453 4.753a.5.5 0 0 1-.487-.62l.694-2.88a.5.5 0 1 1 .973.24l-.693 2.88a.499.499 0 0 1-.487.38ZM10.92 4.76c-.033 0-.073 0-.107-.013a.51.51 0 0 1-.386-.594l.626-2.893a.505.505 0 0 1 .594-.387c.266.054.44.327.386.594l-.626 2.893a.492.492 0 0 1-.487.4ZM10.467 8.5H5.134a.504.504 0 0 1-.5-.5c0-.273.226-.5.5-.5h5.333c.273 0 .5.227.5.5s-.227.5-.5.5ZM9.8 11.167H4.467a.504.504 0 0 1-.5-.5c0-.274.226-.5.5-.5H9.8c.273 0 .5.226.5.5 0 .273-.227.5-.5.5Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgBillsOutlined);\nexport default Memo;","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgManualJornalOutlined = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.72 10.733c-.24 0-.48-.06-.7-.186a1.382 1.382 0 0 1-.713-1.214v-2.38c0-.173-.114-.466-.254-.633l-1.68-1.767c-.313-.306-.54-.84-.54-1.246V2.273c0-.806.614-1.446 1.4-1.446h5.934a1.4 1.4 0 0 1 1.4 1.4v.986c0 .52-.3 1.094-.594 1.387L7.02 6.327c-.153.126-.28.433-.28.66V8.92c0 .46-.28.973-.647 1.193l-.613.4c-.24.147-.5.22-.76.22Zm-2.487-8.9c-.226 0-.4.194-.4.447v1.033c0 .114.114.4.26.547l1.72 1.807c.254.313.5.826.5 1.286v2.38c0 .2.127.3.207.34.107.06.28.094.427 0l.62-.4c.08-.046.173-.233.173-.346V6.993c0-.526.26-1.106.627-1.42l1.92-1.7c.12-.12.28-.446.28-.66v-.986c0-.22-.18-.4-.4-.4H2.233v.006Z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 15.167H6C2.38 15.167.833 13.62.833 10V8c0-.273.227-.5.5-.5.274 0 .5.227.5.5v2c0 3.073 1.094 4.167 4.167 4.167h4c3.073 0 4.167-1.094 4.167-4.167V6c0-1.933-.454-3.053-1.474-3.633-.106-.06-.46-.22-1.473-.38a.495.495 0 0 1-.413-.574A.502.502 0 0 1 11.38 1c.873.14 1.467.3 1.807.493 1.346.767 1.98 2.2 1.98 4.507v4c0 3.62-1.547 5.167-5.167 5.167Z\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 9.167H8.667a.504.504 0 0 1-.5-.5c0-.274.226-.5.5-.5H12c.273 0 .5.226.5.5 0 .273-.227.5-.5.5ZM12 11.833H7.333a.504.504 0 0 1-.5-.5c0-.273.227-.5.5-.5H12c.273 0 .5.227.5.5 0 .274-.227.5-.5.5Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgManualJornalOutlined);\nexport default Memo;","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgReportsOutlined = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.103 6.47h1.892a.296.296 0 1 0 0-.592H5.103a.296.296 0 1 0 0 .591ZM8.77 7.8H5.103a.296.296 0 1 0 0 .591H8.77a.296.296 0 0 0 0-.591Zm0 1.922H5.103a.296.296 0 1 0 0 .592H8.77a.296.296 0 1 0 0-.592Z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.999 11.94V2.624a1.08 1.08 0 0 0-1.11-1.124H5.532c-.65 0-1.257.474-1.257 1.124v.503h-.517A1.286 1.286 0 0 0 2.5 4.354v9.331a.518.518 0 0 0 .296.414.459.459 0 0 0 .503-.089l.902-.813 1.079.961c.08.075.186.117.296.119a.473.473 0 0 0 .295-.119l1.065-.96 1.065.96c.168.15.423.15.591 0l1.08-.96.887.812a.355.355 0 0 0 .444.09.443.443 0 0 0 .222-.415v-2.1l.177-.133.902.813a.429.429 0 0 0 .31.119.265.265 0 0 0 .148-.03.43.43 0 0 0 .237-.414Zm-2.366 1.42-.695-.68a.414.414 0 0 0-.577-.015l-1.08.961-1.05-.961a.473.473 0 0 0-.59 0l-1.065.961-1.08-.961a.488.488 0 0 0-.636.015l-.769.68V4.354a.695.695 0 0 1 .666-.635h6.358c.326 0 .518.31.518.635v9.006Zm1.774-10.736v8.99l-.739-.68c-.118-.118-.148-.147-.443-.103V4.354c0-.65-.459-1.227-1.11-1.227h-5.25v-.503c0-.325.341-.532.666-.532h6.359a.488.488 0 0 1 .517.532Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgReportsOutlined);\nexport default Memo;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgCustomersOutlined = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeOpacity: 0.65,\n d: \"M11.373 10.347a2 2 0 0 1 3.12 1.814c-.799.28-1.649.388-2.493.319A3.996 3.996 0 0 0 8 8.5a3.997 3.997 0 0 0-3.372 1.848m7.371 2.131v.021c0 .15-.007.298-.024.444A7.962 7.962 0 0 1 8 14a7.962 7.962 0 0 1-3.975-1.056A4.041 4.041 0 0 1 4 12.479m0 0a5.987 5.987 0 0 1-2.493-.318 2 2 0 0 1 3.12-1.813M4 12.479a3.982 3.982 0 0 1 .628-2.131M10 4.5a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm4 2a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm-9 0a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgCustomersOutlined);\nexport default Memo;","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgProductsOutlined = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 8.867a.497.497 0 0 1-.253-.067L1.86 5.394a.501.501 0 1 1 .507-.867L8 7.787l5.6-3.24a.507.507 0 0 1 .687.18c.14.24.053.547-.18.687L8.26 8.8a.627.627 0 0 1-.26.067Z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 14.907a.504.504 0 0 1-.5-.5V8.36c0-.273.227-.5.5-.5s.5.227.5.5v6.047c0 .273-.227.5-.5.5Z\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 15.166c-.586 0-1.166-.126-1.626-.38l-3.56-1.98c-.967-.533-1.72-1.82-1.72-2.926V6.113c0-1.107.753-2.387 1.72-2.927l3.56-1.973c.913-.507 2.34-.507 3.253 0l3.56 1.98c.967.533 1.72 1.82 1.72 2.927v3.766c0 1.107-.753 2.387-1.72 2.927l-3.56 1.973c-.46.254-1.04.38-1.627.38ZM8 1.833c-.42 0-.833.087-1.14.253L3.3 4.066c-.64.36-1.206 1.314-1.206 2.054v3.766c0 .734.566 1.694 1.206 2.054l3.56 1.98c.607.34 1.674.34 2.28 0l3.56-1.98c.64-.36 1.207-1.314 1.207-2.054V6.12c0-.734-.567-1.694-1.207-2.054l-3.56-1.98c-.306-.166-.72-.253-1.14-.253Z\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.334 9.326a.504.504 0 0 1-.5-.5V6.68l-6.08-3.507a.495.495 0 0 1-.18-.68c.14-.24.44-.32.68-.18l6.326 3.653a.501.501 0 0 1 .254.434v2.44c0 .26-.227.486-.5.486Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgProductsOutlined);\nexport default Memo;","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgCutsomerReceiptsOutlined = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.947 7.833h-2.28a.504.504 0 0 1-.5-.5v-4.66c0-.493.193-.953.54-1.3.346-.346.806-.54 1.3-.54h.006c.834.007 1.62.334 2.22.927.6.607.927 1.407.927 2.24v1.613c.007 1.327-.887 2.22-2.213 2.22Zm-1.78-1h1.78c.773 0 1.22-.446 1.22-1.22V4c0-.573-.227-1.12-.634-1.533a2.208 2.208 0 0 0-1.52-.634h-.006a.838.838 0 0 0-.594.247.827.827 0 0 0-.246.593v4.16Z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 15.553c-.313 0-.607-.12-.827-.346l-1.106-1.114a.164.164 0 0 0-.22-.013l-1.147.853c-.353.267-.82.314-1.22.114S.833 14.447.833 14V4C.833 1.987 1.987.833 4 .833h8c.273 0 .5.227.5.5 0 .274-.227.5-.5.5a.834.834 0 0 0-.833.834V14c0 .447-.247.847-.647 1.047-.4.2-.867.16-1.22-.107l-1.14-.853a.162.162 0 0 0-.213.013l-1.12 1.12c-.22.213-.514.333-.827.333Zm-2.06-2.506c.307 0 .607.113.833.346l1.107 1.114c.04.04.093.046.12.046.027 0 .08-.006.12-.046l1.12-1.12a1.16 1.16 0 0 1 1.527-.1l1.133.846c.073.054.14.034.173.014.034-.02.094-.06.094-.147V2.667c0-.3.073-.587.2-.834H4c-1.48 0-2.167.687-2.167 2.167v10c0 .093.06.133.094.153.04.02.106.034.173-.02l1.14-.853c.207-.153.453-.233.7-.233Z\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 9.173H6a.504.504 0 0 1-.5-.5c0-.273.227-.5.5-.5h2c.273 0 .5.227.5.5 0 .274-.227.5-.5.5ZM8 6.507H6a.504.504 0 0 1-.5-.5c0-.274.227-.5.5-.5h2c.273 0 .5.226.5.5 0 .273-.227.5-.5.5ZM3.98 6.673a.669.669 0 0 1-.667-.666c0-.367.3-.667.667-.667.367 0 .667.3.667.667 0 .366-.3.666-.667.666ZM3.98 9.34a.669.669 0 0 1-.667-.667c0-.366.3-.666.667-.666.367 0 .667.3.667.666 0 .367-.3.667-.667.667Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgCutsomerReceiptsOutlined);\nexport default Memo;","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgProjectsOutlined = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.86 7.92a2.59 2.59 0 0 1-1.013-.193L2.913 5.98c-1-.447-1.146-1.047-1.146-1.373 0-.327.146-.927 1.146-1.374l3.934-1.746c.58-.26 1.453-.26 2.033 0l3.94 1.746c.993.44 1.147 1.047 1.147 1.374 0 .326-.147.926-1.147 1.373L8.88 7.727c-.293.133-.653.193-1.02.193Zm0-5.627a1.52 1.52 0 0 0-.607.107L3.32 4.147c-.407.186-.553.373-.553.46 0 .086.146.28.546.46l3.934 1.746c.32.14.9.14 1.22 0l3.94-1.746c.406-.18.553-.374.553-.46 0-.087-.147-.28-.553-.46L8.473 2.4a1.683 1.683 0 0 0-.613-.107Z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 11.393c-.253 0-.507-.053-.747-.16L2.727 9.22C2.04 8.92 1.5 8.087 1.5 7.333c0-.273.227-.5.5-.5s.5.227.5.5c0 .367.3.827.633.98l4.527 2.014c.213.093.46.093.68 0l4.527-2.014c.333-.146.633-.613.633-.98 0-.273.227-.5.5-.5s.5.227.5.5c0 .754-.54 1.587-1.227 1.894L8.747 11.24c-.24.1-.494.153-.747.153Z\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 14.727c-.253 0-.507-.054-.747-.16l-4.526-2.014A2.07 2.07 0 0 1 1.5 10.66c0-.273.227-.5.5-.5s.5.233.5.507c0 .42.247.806.633.98L7.66 13.66a.86.86 0 0 0 .68 0l4.527-2.013c.386-.174.633-.554.633-.98 0-.274.227-.5.5-.5s.5.226.5.5c0 .82-.48 1.56-1.227 1.893l-4.526 2.013c-.24.1-.494.154-.747.154Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgProjectsOutlined);\nexport default Memo;","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgVendorReceiptsOutlined = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.947 7.833h-2.28a.504.504 0 0 1-.5-.5v-4.66c0-.493.193-.953.54-1.3.346-.346.806-.54 1.3-.54h.006c.834.007 1.62.334 2.22.927.6.607.927 1.407.927 2.24v1.613c.007 1.327-.887 2.22-2.213 2.22Zm-1.78-1h1.78c.773 0 1.22-.446 1.22-1.22V4c0-.573-.227-1.12-.634-1.533a2.208 2.208 0 0 0-1.52-.634h-.006a.838.838 0 0 0-.594.247.827.827 0 0 0-.246.593v4.16Z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 15.553c-.313 0-.607-.12-.827-.346l-1.106-1.114a.164.164 0 0 0-.22-.013l-1.147.853c-.353.267-.82.314-1.22.114S.833 14.447.833 14V4C.833 1.987 1.987.833 4 .833h8c.273 0 .5.227.5.5 0 .274-.227.5-.5.5a.834.834 0 0 0-.833.834V14c0 .447-.247.847-.647 1.047-.4.2-.867.16-1.22-.107l-1.14-.853a.162.162 0 0 0-.213.013l-1.12 1.12c-.22.213-.514.333-.827.333Zm-2.06-2.506c.307 0 .607.113.833.346l1.107 1.114c.04.04.093.046.12.046.027 0 .08-.006.12-.046l1.12-1.12a1.16 1.16 0 0 1 1.527-.1l1.133.846c.073.054.14.034.173.014.034-.02.094-.06.094-.147V2.667c0-.3.073-.587.2-.834H4c-1.48 0-2.167.687-2.167 2.167v10c0 .093.06.133.094.153.04.02.106.034.173-.02l1.14-.853c.207-.153.453-.233.7-.233Z\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 9.173H6a.504.504 0 0 1-.5-.5c0-.273.227-.5.5-.5h2c.273 0 .5.227.5.5 0 .274-.227.5-.5.5ZM8 6.507H6a.504.504 0 0 1-.5-.5c0-.274.227-.5.5-.5h2c.273 0 .5.226.5.5 0 .273-.227.5-.5.5ZM3.98 6.673a.669.669 0 0 1-.667-.666c0-.367.3-.667.667-.667.367 0 .667.3.667.667 0 .366-.3.666-.667.666ZM3.98 9.34a.669.669 0 0 1-.667-.667c0-.366.3-.666.667-.666.367 0 .667.3.667.666 0 .367-.3.667-.667.667Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgVendorReceiptsOutlined);\nexport default Memo;","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgFolderOpenR = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.5 5.5V7a.5.5 0 0 0 1 0V5.5c0-.414-.293-.707-.293-.707C12.914 4.5 12.5 4.5 12.5 4.5H8.169L6.43 3.2a1.123 1.123 0 0 0-.598-.2H2.5c-.414 0-.707.293-.707.293C1.5 3.586 1.5 4 1.5 4v9a.5.5 0 0 0 1 0V4h3.332L7.57 5.301c.266.198.599.199.599.199H12.5Z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13 13.5H2a.5.5 0 0 1-.474-.658l1.887-5.657s.1-.305.363-.495c0 0 .263-.19.587-.19h9.943s.24 0 .455.11c0 0 .214.109.355.304 0 0 .141.195.178.432 0 0 .037.238-.038.466l-1.782 5.346A.5.5 0 0 1 13 13.5Zm1.306-6-1.666 5H2.694l1.668-4.998V7.5h9.944Z\",\n clipRule: \"evenodd\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgFolderOpenR);\nexport default Memo;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgDimensionSettings = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m22.832 19.524-1.233-4.603a1.125 1.125 0 0 0-2.174.582l.534 1.99-6.836-3.946V5.654L14.58 7.11a1.125 1.125 0 1 0 1.591-1.59l-3.34-3.341a1.134 1.134 0 0 0-1.637-.029L7.825 5.52a1.125 1.125 0 1 0 1.591 1.59l1.457-1.457v7.893l-6.835 3.946.533-1.99a1.125 1.125 0 1 0-2.173-.582l-1.223 4.562a1.133 1.133 0 0 0 .794 1.433c.176.046 3.07.822 4.602 1.232a1.125 1.125 0 1 0 .582-2.173l-1.99-.533 6.835-3.947 6.836 3.947-1.99.533a1.125 1.125 0 1 0 .581 2.174l4.563-1.223c.696-.187.843-.723.874-.944.022-.153.012-.31-.03-.458z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgDimensionSettings);\nexport default Memo;","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgPurchasesOrders = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.207 11.3a.495.495 0 0 1-.354-.147l-1-1a.503.503 0 0 1 0-.706.503.503 0 0 1 .707 0l.647.646L9.52 7.78a.503.503 0 0 1 .707 0 .503.503 0 0 1 0 .707L7.56 11.153a.484.484 0 0 1-.353.147ZM9.333 4.5H6.667c-.64 0-1.834 0-1.834-1.833C4.833.833 6.027.833 6.667.833h2.666c.64 0 1.834 0 1.834 1.834 0 .64 0 1.833-1.834 1.833ZM6.667 1.833c-.66 0-.834 0-.834.834 0 .833.174.833.834.833h2.666c.834 0 .834-.173.834-.833 0-.834-.174-.834-.834-.834H6.667Z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 15.167H6c-3.747 0-4.5-1.72-4.5-4.5v-4c0-3.04 1.1-4.34 3.807-4.48a.5.5 0 0 1 .526.473c.014.28-.2.507-.473.52-1.893.107-2.86.673-2.86 3.487v4c0 2.466.487 3.5 3.5 3.5h4c3.013 0 3.5-1.034 3.5-3.5v-4c0-2.814-.967-3.38-2.86-3.487a.5.5 0 1 1 .053-1C13.4 2.327 14.5 3.627 14.5 6.66v4c0 2.787-.753 4.507-4.5 4.507Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgPurchasesOrders);\nexport default Memo;","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgVendorsOutlined = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5 8s1.036 0 1.768.732c0 0 .732.732.732 1.768 0 0 0 1.036-.732 1.768 0 0-.732.732-1.768.732 0 0-1.036 0-1.768-.732 0 0-.732-.732-.732-1.768 0 0 0-1.036.732-1.768C3.232 8.732 3.964 8 5 8Zm0 1s-.621 0-1.06.44c0 0-.44.439-.44 1.06 0 0 0 .621.44 1.06 0 0 .439.44 1.06.44 0 0 .621 0 1.06-.44 0 0 .44-.439.44-1.06 0 0 0-.621-.44-1.06 0 0-.439-.44-1.06-.44Z\",\n clipRule: \"evenodd\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.453 13.343c.687.343 1.147.957 1.147.957a.5.5 0 0 0 .4.2h.002A.5.5 0 0 0 8.5 14v-.007a.5.5 0 0 0-.1-.293c-.602-.803-1.5-1.251-1.5-1.251C6.004 12 5 12 5 12c-1.003 0-1.9.449-1.9.449-.898.448-1.5 1.251-1.5 1.251a.5.5 0 0 0-.1.3v.004a.499.499 0 0 0 .5.496h.004a.5.5 0 0 0 .396-.2c.46-.614 1.147-.957 1.147-.957C4.233 13 5 13 5 13c.767 0 1.453.343 1.453.343Z\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5 1.5s1.036 0 1.768.732c0 0 .732.732.732 1.768 0 0 0 1.036-.732 1.768 0 0-.732.732-1.768.732 0 0-1.036 0-1.768-.732 0 0-.732-.732-.732-1.768 0 0 0-1.036.732-1.768 0 0 .732-.732 1.768-.732Zm0 1s-.621 0-1.06.44c0 0-.44.439-.44 1.06 0 0 0 .621.44 1.06 0 0 .439.44 1.06.44 0 0 .621 0 1.06-.44 0 0 .44-.439.44-1.06 0 0 0-.621-.44-1.06 0 0-.439-.44-1.06-.44Z\",\n clipRule: \"evenodd\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.453 6.843C7.14 7.186 7.6 7.8 7.6 7.8A.5.5 0 0 0 8 8h.002a.5.5 0 0 0 .498-.5v-.007a.5.5 0 0 0-.1-.293c-.602-.803-1.5-1.251-1.5-1.251C6.004 5.5 5 5.5 5 5.5c-1.003 0-1.9.449-1.9.449C2.201 6.397 1.6 7.2 1.6 7.2a.5.5 0 0 0-.1.3v.004A.499.499 0 0 0 2 8h.004a.499.499 0 0 0 .396-.2c.46-.614 1.147-.957 1.147-.957C4.233 6.5 5 6.5 5 6.5c.767 0 1.453.343 1.453.343Z\"\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 8s1.036 0 1.768.732c0 0 .732.732.732 1.768 0 0 0 1.036-.732 1.768 0 0-.732.732-1.768.732 0 0-1.036 0-1.768-.732 0 0-.732-.732-.732-1.768 0 0 0-1.036.732-1.768 0 0 .732-.732 1.768-.732Zm0 1s-.621 0-1.06.44c0 0-.44.439-.44 1.06 0 0 0 .621.44 1.06 0 0 .439.44 1.06.44 0 0 .621 0 1.06-.44 0 0 .44-.439.44-1.06 0 0 0-.621-.44-1.06 0 0-.439-.44-1.06-.44Z\",\n clipRule: \"evenodd\"\n})), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.453 13.343c.687.343 1.147.957 1.147.957a.5.5 0 0 0 .4.2h.002a.5.5 0 0 0 .498-.5v-.007a.5.5 0 0 0-.1-.293c-.602-.803-1.5-1.251-1.5-1.251C12.004 12 11 12 11 12c-1.003 0-1.9.449-1.9.449-.898.448-1.5 1.251-1.5 1.251a.5.5 0 0 0-.1.3v.004a.5.5 0 0 0 .5.496h.004a.5.5 0 0 0 .396-.2c.46-.614 1.147-.957 1.147-.957C10.233 13 11 13 11 13c.767 0 1.453.343 1.453.343Z\"\n})), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 1.5s1.036 0 1.768.732c0 0 .732.732.732 1.768 0 0 0 1.036-.732 1.768 0 0-.732.732-1.768.732 0 0-1.036 0-1.768-.732 0 0-.732-.732-.732-1.768 0 0 0-1.036.732-1.768 0 0 .732-.732 1.768-.732Zm0 1s-.621 0-1.06.44c0 0-.44.439-.44 1.06 0 0 0 .621.44 1.06 0 0 .439.44 1.06.44 0 0 .621 0 1.06-.44 0 0 .44-.439.44-1.06 0 0 0-.621-.44-1.06 0 0-.439-.44-1.06-.44Z\",\n clipRule: \"evenodd\"\n})), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.453 6.843c.687.343 1.147.957 1.147.957a.5.5 0 0 0 .4.2h.002a.5.5 0 0 0 .498-.5v-.007a.5.5 0 0 0-.1-.293c-.602-.803-1.5-1.251-1.5-1.251C12.004 5.5 11 5.5 11 5.5c-1.003 0-1.9.449-1.9.449C8.201 6.397 7.6 7.2 7.6 7.2a.5.5 0 0 0-.1.3v.004A.5.5 0 0 0 8 8h.004a.499.499 0 0 0 .396-.2c.46-.614 1.147-.957 1.147-.957C10.233 6.5 11 6.5 11 6.5c.767 0 1.453.343 1.453.343Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgVendorsOutlined);\nexport default Memo;","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgInoviceOutlined = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.91 14.13H5.986a1.235 1.235 0 0 1-1.234-1.235V5.494c0-.68.554-1.234 1.234-1.234h5.922c.68 0 1.234.554 1.234 1.234v7.402c0 .681-.554 1.234-1.234 1.234ZM5.986 4.752a.741.741 0 0 0-.74.74v7.402c0 .409.332.74.74.74h5.922c.408 0 .74-.331.74-.74V5.494a.741.741 0 0 0-.74-.74H5.987Z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.013 12.65h-.494a1.235 1.235 0 0 1-1.233-1.235V3.52c0-.68.553-1.233 1.233-1.233h5.922c.68 0 1.234.553 1.234 1.233a.247.247 0 0 1-.493 0 .741.741 0 0 0-.74-.74H3.518a.741.741 0 0 0-.74.74v7.896c0 .409.332.74.74.74h.494a.247.247 0 0 1 0 .494Zm6.909-1.975H6.974a.247.247 0 1 1 0-.493h3.948a.247.247 0 0 1 0 .493Zm0 1.974H6.974a.247.247 0 1 1 0-.493h3.948a.247.247 0 0 1 0 .493Z\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.922 8.702H6.974a.247.247 0 1 1 0-.494h3.948a.247.247 0 0 1 0 .494Zm0-1.974H6.974a.247.247 0 0 1 0-.494h3.948a.247.247 0 0 1 0 .494Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgInoviceOutlined);\nexport default Memo;","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgQuotationsOutlined = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.947 7.833h-2.28a.504.504 0 0 1-.5-.5v-4.66c0-.493.193-.953.54-1.3.346-.346.806-.54 1.3-.54h.006c.834.007 1.62.334 2.22.927.6.607.927 1.407.927 2.24v1.613c.007 1.327-.887 2.22-2.213 2.22Zm-1.78-1h1.78c.773 0 1.22-.446 1.22-1.22V4c0-.573-.227-1.12-.634-1.533a2.208 2.208 0 0 0-1.52-.634h-.006a.838.838 0 0 0-.594.247.827.827 0 0 0-.246.593v4.16Z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 15.553c-.313 0-.607-.12-.827-.346l-1.106-1.114a.164.164 0 0 0-.22-.013l-1.14.853c-.354.267-.82.314-1.22.114S.84 14.447.84 14V4C.84 1.987 1.993.833 4.007.833h8c.273 0 .5.227.5.5 0 .274-.227.5-.5.5a.834.834 0 0 0-.834.834V14c0 .447-.246.847-.646 1.047-.4.2-.867.16-1.22-.107l-1.14-.853a.162.162 0 0 0-.214.013l-1.12 1.12a1.21 1.21 0 0 1-.833.333Zm-2.06-2.506c.307 0 .607.113.833.346l1.107 1.114c.04.04.093.046.12.046.027 0 .08-.006.12-.046l1.12-1.12a1.16 1.16 0 0 1 1.527-.1l1.133.846c.073.054.14.034.173.014.034-.02.093-.06.093-.147V2.667c0-.3.074-.587.2-.834H4c-1.48 0-2.167.687-2.167 2.167v10c0 .093.06.133.094.153.04.02.106.034.173-.02l1.14-.853c.207-.153.453-.233.7-.233Z\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.62 9.387a.664.664 0 0 1-.667-.667c0-.367.3-.667.667-.667.367 0 .667.3.667.667 0 .367-.3.667-.667.667ZM4.38 6.687a.664.664 0 0 1-.667-.667c0-.367.3-.667.667-.667.366 0 .666.3.666.667 0 .367-.3.667-.666.667ZM4.18 9.653a.494.494 0 0 1-.353-.146.503.503 0 0 1 0-.707l3.64-3.64a.503.503 0 0 1 .706 0 .503.503 0 0 1 0 .707l-3.64 3.64a.511.511 0 0 1-.353.146Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgQuotationsOutlined);\nexport default Memo;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgDeductionsOutlined = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 16 16\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#Deductions-Outlined_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.266 4.954a.184.184 0 0 0-.183.183v.76a.184.184 0 1 0 .367 0v-.76a.184.184 0 0 0-.184-.183Zm0-1.5a.184.184 0 0 0-.183.184v.76a.184.184 0 1 0 .367 0v-.76a.184.184 0 0 0-.184-.183Zm0 3.02a.184.184 0 0 0-.183.184v.76a.184.184 0 1 0 .367 0v-.76a.184.184 0 0 0-.184-.183Zm0 1.521a.184.184 0 0 0-.183.184v.76a.184.184 0 1 0 .367 0v-.76a.184.184 0 0 0-.184-.184Zm0 1.521a.184.184 0 0 0-.183.184v.76a.184.184 0 1 0 .367 0V9.7a.184.184 0 0 0-.184-.184Zm0 1.52a.184.184 0 0 0-.183.184v.76a.184.184 0 1 0 .367 0v-.76a.183.183 0 0 0-.184-.183ZM3.9 7.81a.564.564 0 1 0 1.128-.002.564.564 0 0 0-1.128.002Zm.76 0a.197.197 0 1 1-.394 0 .197.197 0 0 1 .394 0Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.505 4.314H2.184A.184.184 0 0 0 2 4.497v1.415a.184.184 0 1 0 .367 0V4.681h4.955v.393H3.704a.184.184 0 0 0-.183.184.564.564 0 0 1-.577.576.184.184 0 0 0-.184.184v3.583a.184.184 0 0 0 .184.184c.329 0 .577.248.577.576a.183.183 0 0 0 .183.184h1.88a.184.184 0 1 0 0-.367H3.872a.929.929 0 0 0-.743-.743v-3.25a.929.929 0 0 0 .743-.744h3.45v.405A1.975 1.975 0 0 0 5.534 7.81c0 1.025.787 1.87 1.789 1.963v.405h-.943a.184.184 0 1 0 0 .367h.943v.393H2.367v-4.24a.184.184 0 1 0-.367 0v4.424a.184.184 0 0 0 .184.183h5.321a.184.184 0 0 0 .184-.183V4.497a.184.184 0 0 0-.184-.183ZM5.9 7.81c0-.824.623-1.504 1.422-1.595v3.19A1.608 1.608 0 0 1 5.9 7.81Zm6.17-.564a.564.564 0 1 0 .001 1.129.564.564 0 0 0-.001-1.13Zm0 .76a.197.197 0 1 1 0-.393.197.197 0 0 1 0 .393Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.35 4.314H9.028a.184.184 0 0 0-.184.183v6.625a.183.183 0 0 0 .184.183h5.322a.184.184 0 0 0 .183-.183V4.497a.184.184 0 0 0-.183-.183Zm-5.138 1.9a1.608 1.608 0 0 1 1.421 1.596c0 .823-.622 1.503-1.421 1.594v-3.19Zm4.954 4.724H9.212v-.393h3.617a.184.184 0 0 0 .183-.184c0-.328.248-.576.577-.576a.184.184 0 0 0 .184-.184V8.104a.184.184 0 1 0-.367 0v1.33a.929.929 0 0 0-.744.744h-3.45v-.405A1.975 1.975 0 0 0 11 7.81a1.975 1.975 0 0 0-1.788-1.964V5.44h3.45c.072.38.364.671.744.743v1.13a.184.184 0 1 0 .367 0V6.017a.183.183 0 0 0-.184-.184.564.564 0 0 1-.577-.576.183.183 0 0 0-.183-.184H9.212v-.393h4.954v6.257Z\"\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"Deductions-Outlined_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M2 3.333h12.533v8.952H2z\"\n})))));\nconst Memo = /*#__PURE__*/memo(SvgDeductionsOutlined);\nexport default Memo;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgLoanOutlined = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 16 16\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#Loan-Outlined_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.802 9.414h-.79a.198.198 0 0 0-.198.198h-1.977a.197.197 0 0 0-.14.058l-1.113 1.113-3.92-.681a.646.646 0 0 0-.436 1.194l4.312 2.516a.644.644 0 0 0 .614.02l2.114-1.057h.546c0 .109.088.197.198.197h.79c.11 0 .198-.088.198-.197V9.612a.198.198 0 0 0-.198-.198Zm-.988 2.965h-.593a.199.199 0 0 0-.088.021l-2.156 1.078a.25.25 0 0 1-.238-.008l-4.312-2.515a.252.252 0 0 1-.035-.409.252.252 0 0 1 .204-.055l3.646.634-.16.16a.758.758 0 0 0 1.07 1.07l1.023-1.022-.28-.28-1.022 1.023a.362.362 0 0 1-.511-.511l1.557-1.558h1.895v2.372Zm.79.198h-.395V9.81h.396v2.767ZM9.059 5.066a1.187 1.187 0 0 0 0 2.372 1.187 1.187 0 0 0 0-2.372Zm0 1.976A.791.791 0 1 1 9.06 5.46a.791.791 0 0 1-.002 1.583Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.814 2.1H5.302a.198.198 0 0 0-.197.198V3.88H3.523a.197.197 0 0 0-.14.057L2 5.321l.28.28 1.325-1.326h1.5V5.46h-.989v.395h2.57a.396.396 0 0 1 0 .79H5.302a.195.195 0 0 0-.14.059l-.592.593.28.28.255-.256v1.104H2.14v.395h10.674c.11 0 .198-.088.198-.197V2.298a.198.198 0 0 0-.198-.198ZM5.5 4.077h.568a.794.794 0 0 1-.568.568v-.568Zm0 4.349v-.568c.277.072.497.29.568.568H5.5Zm7.116 0h-.568a.794.794 0 0 1 .568-.568v.568Zm0-.97a1.188 1.188 0 0 0-.97.97H6.47a1.187 1.187 0 0 0-.97-.97v-.414h1.185c.21 0 .41-.082.559-.232a.791.791 0 0 0-.559-1.35H5.5v-.412c.496-.084.887-.475.97-.97h5.176c.083.495.475.886.97.97v2.407Zm0-2.81a.794.794 0 0 1-.568-.569h.568v.568Zm0-.964H5.5v-.396h7.116v.396Zm0-.79H5.5v-.396h7.116v.395Z\"\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"Loan-Outlined_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M2 2h12v12H2z\"\n})))));\nconst Memo = /*#__PURE__*/memo(SvgLoanOutlined);\nexport default Memo;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgSoundOutlined = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.78 1.797a.482.482 0 0 0-.272.083L3.968 5.5H1.407a.25.25 0 0 0-.25.25v4.5c0 .137.113.25.25.25H3.97l5.539 3.62a.497.497 0 0 0 .773-.418V2.298a.5.5 0 0 0-.501-.501Zm-.624 10.75-4.572-2.99-.28-.182H2.28v-2.75h2.022l.28-.183 4.573-2.989v9.094Zm5.438-5.11h-2a.25.25 0 0 0-.25.25v.625c0 .138.112.25.25.25h2a.25.25 0 0 0 .25-.25v-.624a.25.25 0 0 0-.25-.25Zm-.655 4.091-1.723-.995a.248.248 0 0 0-.34.092l-.31.54a.25.25 0 0 0 .09.34l1.724.995a.248.248 0 0 0 .339-.092l.31-.54a.251.251 0 0 0-.09-.34Zm-2.064-6.153a.248.248 0 0 0 .34.092l1.723-.995a.25.25 0 0 0 .09-.34l-.31-.538a.25.25 0 0 0-.246-.123.248.248 0 0 0-.092.03l-1.724.996a.25.25 0 0 0-.09.34l.309.538Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgSoundOutlined);\nexport default Memo;","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgQFilled = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n \"data-name\": \"Layer 2\",\n viewBox: \"0 0 1080 1076.59\",\n width: \"1em\",\n height: \"1em\"\n}, props), /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Layer 1\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 491.87C0 235.24 184.45 0 495.88 0s494.55 235.24 494.55 491.87-184.46 491.87-494.55 491.87S0 748.5 0 491.87Zm769.88 0c0-153.71-104.25-296.73-274-296.73s-274 143.02-274 296.73 102.92 296.73 274 296.73 274-143.02 274-296.73Z\",\n style: {\n fill: \"#fff\"\n }\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M922.32 859.3h98.06c32.9 0 59.61 26.71 59.61 59.61v98.06c0 32.9-26.71 59.61-59.61 59.61h-98.07c-32.9 0-59.61-26.71-59.61-59.61v-98.06c0-32.9 26.71-59.61 59.61-59.61Z\",\n style: {\n fill: \"#49d8f7\"\n }\n})));\nconst Memo = /*#__PURE__*/memo(SvgQFilled);\nexport default Memo;","var _defs, _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgDisposal = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n id: \"disposal_svg__Layer_2\",\n \"data-name\": \"Layer 2\",\n viewBox: \"0 0 1666.68 1666.68\",\n width: \"1em\",\n height: \"1em\"\n}, props), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".disposal_svg__cls-1{fill:#fff}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"disposal_svg__Layer_1-2\",\n \"data-name\": \"Layer 1\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M833.34 818.62c-3.14 0-6.29-.63-9.24-1.9L289.65 587.67c-8.62-3.69-14.21-12.17-14.21-21.55s5.59-17.86 14.21-21.55L824.1 315.52c5.9-2.53 12.58-2.53 18.48 0l534.45 229.05c8.62 3.69 14.21 12.17 14.21 21.55s-5.59 17.86-14.21 21.55L842.58 816.72c-2.95 1.26-6.09 1.9-9.24 1.9Zm-474.92-252.5 474.92 203.54 474.92-203.54-474.92-203.54-474.92 203.54Z\",\n className: \"disposal_svg__cls-1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M833.34 1353.07c-12.95 0-23.45-10.5-23.45-23.45V795.17c0-12.95 10.5-23.45 23.45-23.45s23.45 10.5 23.45 23.45v534.45c0 12.95-10.5 23.45-23.45 23.45Z\",\n className: \"disposal_svg__cls-1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M833.34 1353.07c-3.14 0-6.29-.63-9.24-1.9l-534.45-229.05a23.451 23.451 0 0 1-14.21-21.55V566.12c0-12.95 10.5-23.45 23.45-23.45s23.45 10.5 23.45 23.45v518.99l511 219 511-219V566.12c0-12.95 10.5-23.45 23.45-23.45s23.45 10.5 23.45 23.45v534.45c0 9.38-5.59 17.86-14.21 21.55l-534.45 229.05c-2.95 1.26-6.09 1.9-9.24 1.9Z\",\n className: \"disposal_svg__cls-1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M833.34 1666.68c-112.49 0-221.63-22.04-324.38-65.5-99.24-41.97-188.36-102.06-264.88-178.58-76.53-76.53-136.61-165.64-178.58-264.88C22.04 1054.97 0 945.83 0 833.34s22.04-221.63 65.5-324.38c41.97-99.24 102.06-188.35 178.58-264.88S409.72 107.47 508.96 65.5C611.71 22.04 720.85 0 833.34 0s221.63 22.04 324.38 65.5c99.24 41.97 188.35 102.06 264.88 178.58 76.53 76.53 136.61 165.64 178.58 264.88 43.46 102.75 65.5 211.89 65.5 324.38s-22.04 221.63-65.5 324.38c-41.97 99.24-102.06 188.36-178.58 264.88-76.53 76.53-165.64 136.61-264.88 178.58-102.75 43.46-211.89 65.5-324.38 65.5Zm0-1619.78c-106.18 0-209.17 20.79-306.11 61.79-93.65 39.61-177.75 96.32-249.99 168.55-72.23 72.23-128.94 156.34-168.55 249.99-41 96.94-61.79 199.93-61.79 306.11s20.79 209.17 61.79 306.11c39.61 93.65 96.32 177.75 168.55 249.99 72.23 72.23 156.34 128.94 249.99 168.55 96.94 41 199.93 61.79 306.11 61.79s209.17-20.79 306.11-61.79c93.65-39.61 177.75-96.32 249.99-168.55 72.23-72.23 128.94-156.34 168.55-249.99 41-96.94 61.79-199.93 61.79-306.11s-20.79-209.17-61.79-306.11c-39.61-93.65-96.32-177.75-168.55-249.99-72.23-72.23-156.34-128.94-249.99-168.55-96.94-41-199.93-61.79-306.11-61.79Z\",\n className: \"disposal_svg__cls-1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M322.54 1485.34c-4.98 0-9.99-1.58-14.25-4.84-10.28-7.88-12.23-22.6-4.35-32.88l984.97-1285.18c7.88-10.28 22.6-12.23 32.88-4.35 10.28 7.88 12.23 22.6 4.35 32.88L341.17 1476.15c-4.62 6.02-11.58 9.19-18.63 9.19Z\",\n className: \"disposal_svg__cls-1\"\n}))));\nconst Memo = /*#__PURE__*/memo(SvgDisposal);\nexport default Memo;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgBudgetingIcon = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#82A3C3\",\n fillRule: \"evenodd\",\n d: \"m18.663 14.96.002.006c.057.078.12.151.188.22l.008.008a1.833 1.833 0 0 0 .324.262c.015.01.027.02.038.034a1.743 1.743 0 0 0 2.128-.27c.317-.317.514-.756.514-1.237v-1.22h-3.503v1.22c0 .362.11.698.3.977ZM14.305 4.34V2.928c.014-.576.224-1.034.543-1.358l.01-.01c.089-.09.186-.168.291-.236l-9.088-.092c-.316 0-.601.13-.81.338-.209.21-.34.499-.343.812l.001 1.958h9.396Zm2.84 11.27-.001-.017c0-2.122.005-4.706.012-7.346l.007-3.58H3.967v16.084l13.17-.044.008-5.096Zm.326-.179h1.154a2.126 2.126 0 0 1-.23-.282 2.22 2.22 0 0 1-.423-1.307V2.984a1.582 1.582 0 0 0-.466-1.121l-.008-.01a1.789 1.789 0 0 0-1.128-.516c-.486.003-.926.18-1.242.479a1.58 1.58 0 0 0-.495 1.101v.044l-.001.023V4.34h2.693c.09 0 .163.073.163.164l-.017 10.829v.098ZM2.74 18.477v-.663H1.562v.663l.588 1.24.59-1.24Zm0-8.865H1.562v.294H2.74v-.294Zm0 .62H1.562v7.255h.424v-6.593a.164.164 0 1 1 .327 0v6.593h.426v-7.254Zm0-.947V8.197a.111.111 0 0 0-.034-.077L2.7 8.114a.103.103 0 0 0-.07-.026H1.575l-.01.004-.002.009v1.184H2.74Zm12.988 2.18h-1.8a.164.164 0 0 1-.163-.163v-1.27c0-.09.073-.164.164-.164h1.799c.09 0 .163.074.163.164v1.27a.164.164 0 0 1-.163.164Zm-1.636-.327h1.472v-.943h-1.472v.943Zm-1.207.328h-1.8a.164.164 0 0 1-.163-.164v-1.27c0-.09.073-.164.163-.164h1.8c.09 0 .163.074.163.164v1.27a.164.164 0 0 1-.163.164Zm-1.636-.328h1.472v-.943H11.25v.943Zm-1.208.328H8.243a.164.164 0 0 1-.163-.164v-1.27c0-.09.073-.164.163-.164h1.8c.09 0 .163.074.163.164v1.27a.165.165 0 0 1-.164.164Zm-1.635-.328h1.472v-.943H8.407v.943Zm-1.208.328H5.4a.164.164 0 0 1-.163-.164v-1.27c0-.09.073-.164.164-.164h1.8c.09 0 .163.074.163.164v1.27a.164.164 0 0 1-.164.164Zm-1.636-.328h1.473v-.943H5.563v.943Zm10.002 6.45h-1.472v1.472h1.472v-1.472Zm-1.635-.327h1.799c.09 0 .163.073.163.164v1.799c0 .09-.073.163-.163.163h-1.8a.163.163 0 0 1-.163-.163v-1.8c0-.09.073-.163.164-.163Zm-1.208.327H11.25v1.472h1.472v-1.472Zm-1.636-.327h1.8c.09 0 .163.073.163.164v1.799c0 .09-.073.163-.163.163h-1.8a.163.163 0 0 1-.163-.163v-1.8c0-.09.073-.163.163-.163Zm-1.207.327H8.407v1.472h1.472v-1.472Zm-1.636-.327h1.8c.09 0 .163.073.163.164v1.799c0 .09-.073.163-.163.163h-1.8a.163.163 0 0 1-.163-.163v-1.8c0-.09.073-.163.163-.163Zm-1.207.327H5.563v1.472h1.473v-1.472ZM5.4 17.261h1.8c.09 0 .163.073.163.164v1.799c0 .09-.073.163-.164.163H5.4a.164.164 0 0 1-.163-.163v-1.8c0-.09.073-.163.164-.163Zm10.165-2.24h-1.472v1.471h1.472v-1.47Zm-1.635-.327h1.799c.09 0 .163.073.163.164v1.798c0 .09-.073.164-.163.164h-1.8a.163.163 0 0 1-.163-.164v-1.798c0-.09.073-.164.164-.164Zm-1.208.327H11.25v1.471h1.472v-1.47Zm-1.636-.327h1.8c.09 0 .163.073.163.164v1.798c0 .09-.073.164-.163.164h-1.8a.163.163 0 0 1-.163-.164v-1.798c0-.09.073-.164.163-.164Zm-1.207.327H8.407v1.471h1.472v-1.47Zm-1.636-.327h1.8c.09 0 .163.073.163.164v1.798c0 .09-.073.164-.163.164h-1.8a.163.163 0 0 1-.163-.164v-1.798c0-.09.073-.164.163-.164Zm-1.207.327H5.563v1.471h1.473v-1.47ZM5.4 14.694h1.8c.09 0 .163.073.163.164v1.798c0 .09-.073.164-.164.164H5.4a.163.163 0 0 1-.163-.164v-1.798c0-.09.073-.164.164-.164Zm10.165-2.24h-1.472v1.472h1.472v-1.473Zm-1.635-.328h1.799c.09 0 .163.074.163.164v1.8c0 .09-.073.163-.163.163h-1.8a.163.163 0 0 1-.163-.164V12.29c0-.09.073-.164.164-.164Zm-1.208.328H11.25v1.472h1.472v-1.473Zm-1.636-.328h1.8c.09 0 .163.074.163.164v1.8c0 .09-.073.163-.163.163h-1.8a.163.163 0 0 1-.163-.164V12.29c0-.09.073-.164.163-.164Zm-1.207.328H8.407v1.472h1.472v-1.473Zm-1.636-.328h1.8c.09 0 .163.074.163.164v1.8c0 .09-.073.163-.163.163h-1.8a.163.163 0 0 1-.163-.164V12.29c0-.09.073-.164.163-.164Zm-1.207.328H5.563v1.472h1.473v-1.473ZM5.4 12.126h1.8c.09 0 .163.074.163.164v1.8c0 .09-.073.163-.164.163H5.4a.163.163 0 0 1-.163-.164V12.29c0-.09.073-.164.164-.164ZM15.717 5.94H5.412v2.933h10.305V5.94ZM6.23 5.294c.06 0 .126-.04.146-.092a.163.163 0 0 0-.146-.234h-.328c-.06 0-.126.04-.146.092a.163.163 0 0 0 .146.234h.328Zm1.307 0c.061 0 .126-.04.146-.092a.163.163 0 0 0-.146-.234H7.21c-.061 0-.127.04-.146.092a.162.162 0 0 0 .146.234h.327Zm1.307 0c.061 0 .126-.04.146-.092a.163.163 0 0 0-.146-.234h-.327c-.063 0-.126.04-.148.092a.164.164 0 0 0 .148.234h.327Zm1.306 0c.063 0 .126-.04.148-.092.054-.11-.03-.234-.148-.234h-.326c-.062 0-.126.04-.147.092-.055.109.029.234.147.234h.326Zm1.307 0c.063 0 .127-.04.148-.092.054-.11-.03-.234-.148-.234h-.325c-.063 0-.127.04-.148.092-.055.109.03.234.148.234h.325Zm1.307 0c.063 0 .127-.04.148-.092a.163.163 0 0 0-.148-.234h-.326a.163.163 0 1 0 0 .326h.326Zm1.308 0c.061 0 .126-.04.146-.092a.163.163 0 0 0-.146-.234h-.327c-.061 0-.127.04-.147.092a.163.163 0 0 0 .147.234h.327Zm1.307 0c.061 0 .126-.04.146-.092a.163.163 0 0 0-.146-.234h-.327c-.061 0-.126.04-.146.092a.163.163 0 0 0 .146.234h.327Zm-9.02-2.91a.163.163 0 1 1 0-.327h3.574c.09 0 .164.073.164.163 0 .09-.075.164-.164.164H6.36Zm0 1.072a.163.163 0 1 1 0-.327h5.49c.088 0 .163.073.163.163 0 .09-.075.164-.164.164h-5.49ZM1.95 21.892a.163.163 0 1 1 0-.328h14.404a.163.163 0 1 1 0 .328H1.95Zm8.434.876a.163.163 0 1 1 0-.327h9.968a.164.164 0 0 1 0 .327h-9.968Zm10.987 0a.163.163 0 1 1 0-.327h1.247a.164.164 0 0 1 0 .327H21.37Zm-19.989-.027a.163.163 0 1 1 0-.327h4.724c.09 0 .164.073.164.164 0 .09-.075.163-.164.163H1.382Zm3.866-17.13h10.633c.09 0 .163.074.163.164v3.26c0 .09-.073.163-.164.163H5.248a.163.163 0 0 1-.163-.162V5.775c0-.09.073-.164.163-.164Z\",\n clipRule: \"evenodd\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgBudgetingIcon);\nexport default Memo;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgCurrencyMenu = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#currencyMenu_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#82A3C3\",\n d: \"M8 8c4.578 0 8-1.81 8-3.428 0-1.619-3.422-3.429-8-3.429-4.579 0-8 1.81-8 3.429C0 6.19 3.421 8 8 8zm0 13.714c.668 0 1.31-.04 1.923-.11a9.153 9.153 0 0 1-1.262-2.188c-.22.007-.44.012-.662.012-2.616 0-5.093-.518-6.976-1.46A9.05 9.05 0 0 1 0 17.375v.912c0 1.618 3.421 3.428 8 3.428zm0-4.572h.07a9.205 9.205 0 0 1 0-2.286l-.07.001c-2.617 0-5.094-.518-6.977-1.46A9.06 9.06 0 0 1 0 12.803v.912c0 1.618 3.421 3.428 8 3.428zm0-4.57c.226 0 .45-.005.67-.014a9.157 9.157 0 0 1 1.432-2.388 19.2 19.2 0 0 1-2.103.116c-2.616 0-5.093-.518-6.976-1.46A9.065 9.065 0 0 1 0 8.231v.912c0 1.617 3.42 3.427 8 3.427zm3.428-.362a6.82 6.82 0 0 0-1.074 4.767c.11.77.352 1.515.714 2.203a6.9 6.9 0 0 0 1.454 1.882 6.831 6.831 0 0 0 4.62 1.795A6.866 6.866 0 0 0 24 15.999a6.866 6.866 0 0 0-8.005-6.762 6.871 6.871 0 0 0-4.567 2.973z\"\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"currencyMenu_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M0 0h24v24H0z\"\n})))));\nconst Memo = /*#__PURE__*/memo(SvgCurrencyMenu);\nexport default Memo;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgQAcademy = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 20 20\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#fff\",\n fillOpacity: 0.65,\n clipPath: \"url(#Q_Academy_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.286 11.233a.66.66 0 0 0-.638-.03l-4.851 2.356c-.386.186-.847.19-1.23.012L4.58 11.25a.664.664 0 0 0-.633.038.644.644 0 0 0-.305.548v1.978c0 .667.373 1.27.973 1.576l4.74 2.414a1.817 1.817 0 0 0 1.665-.009l4.616-2.403c.592-.308.96-.91.96-1.568v-2.04a.642.642 0 0 0-.31-.55v-.002Zm-.303 2.592c0 .434-.242.83-.633 1.032l-4.616 2.403c-.342.178-.752.18-1.098.005l-4.74-2.413c-.395-.2-.64-.598-.64-1.04v-1.977s0-.024.02-.036a.043.043 0 0 1 .023-.007c.01 0 .016.003.02.005l4.986 2.32c.552.256 1.215.25 1.764-.016l4.85-2.356s.022-.01.043.002c.021.012.021.031.021.036v2.042Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.627 6.365 10.986 2.21a1.698 1.698 0 0 0-1.603-.015L1.4 6.348a1.65 1.65 0 0 0 .067 2.974l4.22 1.965c.09.042.194.038.28-.008l2.51-1.38a.303.303 0 0 0 .157-.264v-4.09c0-.198.133-.295.191-.327a.38.38 0 0 1 .382 0l3.61 2.055a.371.371 0 0 1 .193.327c0 .064-.02.228-.193.327l-5.941 3.386a.303.303 0 0 0-.153.275.303.303 0 0 0 .175.261l2.555 1.19c.228.107.473.159.719.159.245 0 .51-.057.747-.173l7.64-3.715c.565-.275.926-.832.94-1.453a1.655 1.655 0 0 0-.871-1.493v.001Zm-.34 2.403-7.641 3.716a1.082 1.082 0 0 1-.933.008l-2.025-.942 5.435-3.098a.973.973 0 0 0 0-1.703l-3.61-2.055a1.003 1.003 0 0 0-.996 0 .97.97 0 0 0-.498.85v3.913l-2.214 1.217-4.078-1.9a1.035 1.035 0 0 1-.614-.932c-.008-.41.205-.77.572-.96L9.67 2.728c.32-.168.701-.164 1.019.01l7.642 4.156c.356.194.563.548.554.95a1.037 1.037 0 0 1-.598.923l-.002.001Z\"\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"Q_Academy_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M.5 2h19v16H.5z\"\n})))));\nconst Memo = /*#__PURE__*/memo(SvgQAcademy);\nexport default Memo;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgCleanup = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 20 20\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#fff\",\n fillOpacity: 0.65,\n clipPath: \"url(#Cleanup_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.649 10.53v.082h2.116v-.54H11.65v.459Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.335 8.54a.911.911 0 0 0-.676-.31h-1.904a.913.913 0 0 0-.676.31 1.112 1.112 0 0 0-.282.748v2.106c0 .292.108.557.281.748a.91.91 0 0 0 .676.31h1.904a.91.91 0 0 0 .675-.31c.173-.191.28-.456.28-.748V9.288c0-.282-.1-.538-.265-.73l-.015-.017h.002Zm-.203 2.854a.553.553 0 0 1-.138.37.447.447 0 0 1-.334.153h-1.903a.452.452 0 0 1-.334-.153.544.544 0 0 1-.139-.37V9.288c0-.144.054-.275.139-.369a.447.447 0 0 1 .334-.153h1.903c.13 0 .248.059.334.153l.01.012c.08.093.13.22.13.357v2.106h-.002ZM11.649 15.96v.08h2.116v-.538H11.65v.457Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.659 13.178h-1.904a.908.908 0 0 0-.66.294l-.016.017c-.172.19-.28.456-.28.747v2.106c0 .292.108.556.28.748a.91.91 0 0 0 .676.31h1.904c.263 0 .503-.119.676-.31.172-.192.28-.456.28-.748v-2.106c0-.291-.107-.556-.28-.747a.911.911 0 0 0-.676-.31Zm.473 3.164a.554.554 0 0 1-.138.37.447.447 0 0 1-.334.153h-1.903a.452.452 0 0 1-.334-.153.547.547 0 0 1-.139-.37v-2.106c0-.144.054-.274.139-.37l.01-.01a.446.446 0 0 1 .324-.144h1.903c.13 0 .248.06.334.153a.553.553 0 0 1 .138.37V16.342Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.649 14.994v.081h2.116v-.539H11.65v.458ZM6.372 15.924l.346.384.578-.638.574.634.344-.38-.574-.636.574-.635-.347-.384-.573.635-.576-.635-.344.38.575.637-.527.58-.05.058Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.341 17.399h1.905c.263 0 .502-.12.675-.31.172-.192.28-.457.28-.748v-2.106c0-.292-.108-.557-.28-.748a.912.912 0 0 0-.675-.31H6.341c-.262 0-.5.119-.674.309-.173.194-.28.457-.28.747v2.106c0 .292.107.556.28.748a.91.91 0 0 0 .676.31l-.002.002Zm-.472-3.164a.55.55 0 0 1 .138-.37.447.447 0 0 1 .334-.153h1.905c.13 0 .248.06.333.153a.55.55 0 0 1 .138.37v2.106a.554.554 0 0 1-.138.37.447.447 0 0 1-.333.152H6.341a.455.455 0 0 1-.334-.153.554.554 0 0 1-.138-.37v-2.105Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.396 18.561c.244.27.582.439.953.439h9.302c.37 0 .708-.168.953-.439.243-.272.396-.644.396-1.053V2.492c0-.403-.146-.77-.383-1.039l-.013-.016A1.286 1.286 0 0 0 14.65 1H5.35a1.29 1.29 0 0 0-.954.437C4.152 1.707 4 2.082 4 2.492v15.014c0 .41.152.783.395 1.054l.001.001Zm.088-16.069c0-.263.097-.503.254-.677a.822.822 0 0 1 .61-.28h9.303c.237 0 .455.107.61.28l.013.012c.15.172.243.408.243.665v15.014c0 .264-.097.504-.254.677a.824.824 0 0 1-.612.281H5.35a.822.822 0 0 1-.612-.28 1.009 1.009 0 0 1-.254-.678V2.492h.001Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.112 7.056h7.782c.201 0 .383-.096.515-.252a.9.9 0 0 0 .208-.583v-2.79a.906.906 0 0 0-.208-.583.676.676 0 0 0-.515-.251H6.112c-.2 0-.383.097-.514.251a.893.893 0 0 0-.208.583v2.79c0 .226.079.432.208.583a.679.679 0 0 0 .514.252Zm-.239-3.623c0-.086.028-.162.074-.217a.218.218 0 0 1 .164-.082h7.782c.063 0 .121.03.164.082a.332.332 0 0 1 .074.217v2.79a.332.332 0 0 1-.074.216.219.219 0 0 1-.164.083h-7.78a.212.212 0 0 1-.164-.083.332.332 0 0 1-.075-.216v-2.79h-.001ZM7.048 11.431v.081h.49v-.904h.813v-.538h-.813v-.9h-.49v.9h-.813v.538h.813v.823Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.341 12.453h1.905c.263 0 .502-.12.675-.311.172-.191.28-.456.28-.748V9.288c0-.282-.1-.538-.266-.73l-.014-.017a.91.91 0 0 0-.675-.31H6.341a.91.91 0 0 0-.676.31c-.172.193-.28.456-.28.747v2.106c0 .292.108.557.28.748a.91.91 0 0 0 .676.31ZM5.87 9.288a.55.55 0 0 1 .138-.369.45.45 0 0 1 .334-.153h1.905a.45.45 0 0 1 .333.153l.012.012c.078.093.127.22.127.357v2.106a.553.553 0 0 1-.138.37.444.444 0 0 1-.333.153H6.343a.454.454 0 0 1-.334-.153.553.553 0 0 1-.139-.37V9.288H5.87Z\"\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"Cleanup_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M4 1h12v18H4z\"\n})))));\nconst Memo = /*#__PURE__*/memo(SvgCleanup);\nexport default Memo;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgTraining = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 20 20\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#fff\",\n fillOpacity: 0.65,\n clipPath: \"url(#Training_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.997 17.73c-.24-2.025-.706-4.032-2.468-4.997-.447-.244-.929-.354-1.394-.462-.206-.047-.418-.095-.618-.154a37.94 37.94 0 0 1-.188-.055c-.412-.12-.805-.234-1.028-.434l-.002-.001a.57.57 0 0 1-.145-.194c-.118-.274-.263-.964-.3-1.533.344-.33.607-.75.745-1.232.042.006.086.01.13.01.586 0 1.024-.755 1.024-1.43 0-.403-.177-.722-.466-.868.243-1.51.07-2.646-.519-3.373-.684-.845-1.757-.974-2.503-.999-.78-.025-2.376-.077-2.909 1.195a.924.924 0 0 0-.554.392c-.336.5-.325 1.42.034 2.734-.36.117-.588.466-.588.92 0 .675.438 1.43 1.023 1.43a.923.923 0 0 0 .131-.01c.134.468.393.894.744 1.231-.036.569-.182 1.26-.299 1.534-.144.33-.645.476-1.177.63l-.186.055c-.202.06-.413.108-.62.155-.465.106-.946.218-1.395.462-1.762.961-2.227 2.969-2.468 4.994a.241.241 0 0 0 .212.269h.029c.12 0 .225-.09.24-.212.21-1.767.571-3.727 2.218-4.63.39-.212.818-.31 1.271-.414a11.454 11.454 0 0 0 .834-.216c.373-.11.754-.22 1.05-.411l1.731 1.347-1.112.74-.687-1.172a.242.242 0 0 0-.419.245l.946 1.615.73-.488.133.533c.01.04.027.08.046.117v.005l-.267 2.675a.242.242 0 0 0 .217.264h.024a.242.242 0 0 0 .24-.217l.246-2.458h.642a.46.46 0 0 0 .226-.055.244.244 0 0 0 .1-.329.242.242 0 0 0-.326-.1h-.653c-.012 0-.022-.008-.025-.021l-.176-.701.515-.344.011.009.011-.009 1.674 1.115.946-1.614a.243.243 0 0 0-.418-.245l-.688 1.172-1.112-.741 1.732-1.347c.293.19.676.302 1.05.411.061.018.123.035.184.055.216.062.436.113.647.162.454.104.882.201 1.271.414 1.648.902 2.01 2.863 2.22 4.63a.24.24 0 0 0 .24.212l.028-.001a.241.241 0 0 0 .212-.268l.003.003ZM7.814 8.312l-.061-.34-.299.175a.351.351 0 0 1-.183.047c-.251 0-.539-.504-.539-.946 0-.098.022-.423.313-.475a.5.5 0 0 1 .097-.007h.01l.024-.003a.078.078 0 0 0 .024-.005c.004 0 .006 0 .01-.002l.012-.005c.008-.002.016-.006.023-.01l.02-.01.02-.013.02-.015.015-.016.016-.018a.105.105 0 0 0 .012-.02l.01-.02.01-.022.007-.023c.003-.007.004-.014.005-.022.001-.008.003-.016.003-.026v-.022c0-.008 0-.017-.002-.025 0-.009-.002-.016-.004-.024 0-.004 0-.007-.003-.01-.509-1.72-.326-2.362-.172-2.59a.46.46 0 0 1 .355-.207l.156-.016.05-.149c.315-.942 1.38-1.038 2.486-1.001 1.036.033 1.717.293 2.143.82.521.644.65 1.716.385 3.183v.001c0 .006 0 .012-.002.018l-.002.03.002.022c0 .009.002.017.004.026.001.008.005.015.007.022l.007.022.013.023.01.018c.004.008.01.014.016.02l.013.015.02.016c.006.005.01.01.017.013a.322.322 0 0 0 .02.011c.008.004.015.009.022.011.006.003.013.004.02.006l.026.008c.031.006.048.01.073.02.209.087.226.368.226.451 0 .443-.288.946-.54.946a.35.35 0 0 1-.185-.049l-.296-.169-.062.336a2.29 2.29 0 0 1-.752 1.322l-.003.002a2.192 2.192 0 0 1-1.42.537h-.02a.243.243 0 0 0-.243.242c0 .133.11.242.242.242h.023a2.67 2.67 0 0 0 1.39-.404c.06.518.182 1.078.307 1.371.024.055.052.106.083.153L10 13.172l-1.794-1.395c.032-.048.06-.1.085-.154.162-.38.32-1.21.342-1.814v-.012l-.001-.025c0-.007-.002-.016-.004-.023a.16.16 0 0 0-.014-.045c-.004-.007-.006-.014-.011-.02a.104.104 0 0 0-.012-.02l-.015-.018-.017-.018c-.002-.002-.004-.006-.008-.008a2.288 2.288 0 0 1-.738-1.306l.001-.002Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.253 4.93c.061.05.137.11.228.179.173.13.358.243.566.35.371.188.79.33 1.243.42.235.046.478.08.722.1h.021a.242.242 0 0 0 .02-.484 5.798 5.798 0 0 1-.668-.093 4.348 4.348 0 0 1-1.119-.376 3.25 3.25 0 0 1-.493-.305 5.318 5.318 0 0 1-.358-.294.24.24 0 0 0-.208-.12c-.009 0-.016.003-.025.004-.008 0-.016.002-.025.004-.01.002-.022.004-.031.008a.268.268 0 0 0-.046.022.264.264 0 0 0-.05.042l-.01.012a.21.21 0 0 0-.033.052v.001c-.161.328-.58.607-.897.749-.055.025-.114.05-.182.072a.242.242 0 0 0 .157.458c.082-.03.157-.058.224-.09.163-.074.647-.314.962-.715l.002.004ZM10.802 18l.025-.001a.243.243 0 0 0 .216-.266l-.175-1.64a.243.243 0 0 0-.481.05l.174 1.64a.242.242 0 0 0 .24.217Z\"\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"Training_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M2 2h16v16H2z\"\n})))));\nconst Memo = /*#__PURE__*/memo(SvgTraining);\nexport default Memo;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgConsultationService = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 20 20\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#fff\",\n clipPath: \"url(#ConsultationService_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.634 13.55c.06-.027.114-.05.158-.065l1.107-.377c.01-.003.02-.009.033-.014l.018-.008.027.026.031-.037-.02.046s.002 0 .003.002l.046.026v-.003l.079.028.043.015c.112.042.227.079.343.112.427.121.886.186 1.365.191h.016c1.73-.015 3.29-.879 4.177-2.311a4.709 4.709 0 0 0 .104-4.704c-.808-1.455-2.306-2.377-4.003-2.47-1.75-.092-3.37.687-4.337 2.091A4.71 4.71 0 0 0 2 8.704a4.723 4.723 0 0 0 1.094 3.033l-.188.889c-.01.04-.022.091-.038.148-.08.296-.202.744.085.896a.34.34 0 0 0 .16.035c.164 0 .357-.083.522-.154l-.001-.002Zm.838-.852a2.335 2.335 0 0 1-.184.071l-.967.329a.205.205 0 0 1-.028.007l.205-.969c.008-.04.018-.081.028-.122.02-.083.04-.17.051-.257.028-.192-.065-.298-.154-.402l-.061-.074a4.124 4.124 0 0 1-.766-3.522c.532-2.162 2.559-3.246 4.33-3.246.12 0 .237.005.352.015 1.875.157 3.882 1.697 3.995 4a4.182 4.182 0 0 1-1.21 3.13c-.826.837-1.958 1.303-3.186 1.313a4.662 4.662 0 0 1-1.034-.118 4.696 4.696 0 0 1-.426-.122c-.046-.015-.094-.038-.146-.06-.125-.058-.256-.117-.384-.102-.135.016-.278.075-.415.13Zm.508.378.003-.034.028.02a.048.048 0 0 1-.033.014h.002Zm.004-.035v-.007l.029.026-.028-.02Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.736 9.505a4.825 4.825 0 0 0-2.884-2.892 5.097 5.097 0 0 0-2.716-.207c-.125.023-.196.136-.174.274.021.137.136.263.289.234 1.586-.3 3.213.247 4.246 1.426 1.044 1.192 1.319 2.949.683 4.373a4.231 4.231 0 0 1-.51.857c-.021.026-.047.053-.074.082a.764.764 0 0 0-.152.2c-.055.125-.014.28.02.406.007.03.015.06.02.087l.228 1.08-.046-.012-1.371-.466c-.152-.052-.235-.081-.423-.004a4.505 4.505 0 0 1-5.24-1.311c-.057-.069-.13-.097-.205-.079a.267.267 0 0 0-.186.19.275.275 0 0 0 .051.254 4.964 4.964 0 0 0 5.508 1.529c.062-.022.108-.047.146-.068.05-.026.083-.044.12-.042a.63.63 0 0 1 .178.058c.032.014.065.026.093.036l.852.29c.033.011.076.027.122.045.173.067.403.158.592.158a.336.336 0 0 0 .233-.077c.084-.077.113-.206.086-.386-.055-.366-.14-.734-.222-1.089l-.09-.393c1.055-1.289 1.373-3.018.825-4.549l.001-.004Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m11.925 11.872 1.12 1.07a.26.26 0 0 0 .175.072.2.2 0 0 0 .161-.079l1.95-2.424a.276.276 0 0 0 .05-.257.269.269 0 0 0-.188-.188c-.076-.018-.147.011-.204.081l-1.8 2.24-.935-.89a.218.218 0 0 0-.236-.052.275.275 0 0 0-.17.207.24.24 0 0 0 .076.22ZM5.836 8.176c.126.025.231-.052.254-.19.07-.419.36-.872.831-.877h.006c.2 0 .43.108.575.27a.58.58 0 0 1 .154.405c-.01.32-.318.61-.564.842-.066.062-.127.12-.18.175a1.27 1.27 0 0 0-.33.958c.01.165.134.25.25.25h.019c.13-.01.214-.117.205-.258-.026-.386.219-.63.477-.888.113-.112.23-.23.324-.36.318-.445.35-.92.088-1.334-.279-.445-.794-.666-1.279-.55-.517.125-.934.622-1.038 1.239a.272.272 0 0 0 .207.318ZM7.019 10.544a.287.287 0 0 0-.212-.096c-.162 0-.296.147-.301.328a.33.33 0 0 0 .082.227.291.291 0 0 0 .214.106h.006a.293.293 0 0 0 .21-.094.34.34 0 0 0 .078-.15.244.244 0 0 0 .011-.086.287.287 0 0 0-.009-.076.33.33 0 0 0-.078-.159h-.001Z\"\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"ConsultationService_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M2 4h16v12H2z\"\n})))));\nconst Memo = /*#__PURE__*/memo(SvgConsultationService);\nexport default Memo;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgSetupService = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 20 20\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#fff\",\n fillOpacity: 0.65,\n clipPath: \"url(#Setup_Service_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.226 2.995c-.28.087-.553.2-.814.337a.181.181 0 0 1-.214-.034l-.042-.04-.006-.002a.815.815 0 0 0-.534-.198.816.816 0 0 0-.58.24l-.737.738a.816.816 0 0 0-.24.582c0 .203.074.395.21.546l.031.034a.18.18 0 0 1 .032.214c-.137.26-.25.534-.337.812a.18.18 0 0 1-.173.128.823.823 0 0 0-.822.821v1.041c0 .453.369.822.822.822.08 0 .15.05.173.127.087.28.202.553.337.814a.181.181 0 0 1-.033.214l-.03.03-.004.005a.816.816 0 0 0 .03 1.127l.738.738c.156.155.36.24.58.24a.815.815 0 0 0 .55-.212l.032-.028a.18.18 0 0 1 .214-.032c.26.137.533.25.812.337a.18.18 0 0 1 .127.173c0 .453.37.822.822.822h1.041a.823.823 0 0 0 .822-.822c0-.08.05-.15.127-.173.28-.088.553-.202.812-.337a.184.184 0 0 1 .215.033l.027.027h.003a.816.816 0 0 0 1.13-.025l.737-.738a.816.816 0 0 0 .03-1.127l-.031-.033a.18.18 0 0 1-.032-.214 4.8 4.8 0 0 0 .337-.814.18.18 0 0 1 .173-.127.823.823 0 0 0 .822-.822V7.178a.823.823 0 0 0-.822-.822.18.18 0 0 1-.173-.127 4.968 4.968 0 0 0-.337-.812.181.181 0 0 1 .033-.215l.03-.03.004-.004a.824.824 0 0 0-.03-1.129l-.738-.737a.818.818 0 0 0-1.114-.043l-.048.043a.18.18 0 0 1-.214.031 4.946 4.946 0 0 0-.812-.337.18.18 0 0 1-.128-.173.823.823 0 0 0-.821-.821H7.172a.823.823 0 0 0-.822.821c0 .081-.05.151-.127.175l.003-.003Zm.763-.173c0-.102.083-.186.186-.186h1.04c.103 0 .187.082.187.186 0 .359.23.674.574.78.243.076.481.175.707.294.3.159.66.116.914-.103l.048-.045a.183.183 0 0 1 .13-.054c.05 0 .095.02.132.054l.737.738a.184.184 0 0 1 .054.132c0 .049-.019.095-.054.13l-.03.03-.003.005a.816.816 0 0 0-.115.926c.12.226.218.465.294.708a.814.814 0 0 0 .78.574c.102 0 .187.082.187.185v1.041a.186.186 0 0 1-.186.186c-.361 0-.674.23-.78.574a4.23 4.23 0 0 1-.295.707.813.813 0 0 0 .115.927l.032.035a.186.186 0 0 1 0 .262l-.738.738a.183.183 0 0 1-.132.054.182.182 0 0 1-.13-.054l-.027-.027-.005-.003a.816.816 0 0 0-.93-.118 4.23 4.23 0 0 1-.707.294.814.814 0 0 0-.574.78.186.186 0 0 1-.186.186h-1.04a.186.186 0 0 1-.187-.186c0-.359-.23-.674-.573-.78a4.23 4.23 0 0 1-.708-.294.814.814 0 0 0-.928.116l-.032.03a.19.19 0 0 1-.262 0l-.737-.737a.184.184 0 0 1-.054-.132c0-.051.019-.096.054-.13l.03-.03.003-.005a.814.814 0 0 0 .115-.927 4.23 4.23 0 0 1-.295-.707.814.814 0 0 0-.78-.574.186.186 0 0 1-.186-.186V7.175c0-.102.083-.186.186-.186.36 0 .674-.23.78-.574a4.23 4.23 0 0 1 .295-.707.814.814 0 0 0-.115-.927l-.032-.035a.183.183 0 0 1-.054-.13c0-.05.02-.095.054-.132l.738-.737a.19.19 0 0 1 .262 0l.041.041.007.003c.254.218.613.26.912.103a4.23 4.23 0 0 1 .707-.294.814.814 0 0 0 .574-.78v.002Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.695 10.061a2.37 2.37 0 0 0 2.366-2.366 2.37 2.37 0 0 0-2.366-2.367 2.37 2.37 0 0 0-2.367 2.367 2.37 2.37 0 0 0 2.367 2.366Zm0-4.097c.953 0 1.73.775 1.73 1.73a1.732 1.732 0 0 1-3.461 0c0-.955.775-1.73 1.73-1.73ZM17.205 11.986a.155.155 0 0 1-.15-.111 3.954 3.954 0 0 0-.322-.773.154.154 0 0 1 .027-.184.792.792 0 0 0 0-1.122l-.41-.41a.79.79 0 0 0-.56-.236.827.827 0 0 0-.565.234.158.158 0 0 1-.111.045.155.155 0 0 1-.073-.018 4.102 4.102 0 0 0-.776-.324.143.143 0 0 1-.102-.113.317.317 0 0 0-.378-.243.317.317 0 0 0-.243.378c.06.285.272.51.545.588.226.067.443.16.653.274a.806.806 0 0 0 .936-.139.158.158 0 0 1 .113-.047c.024 0 .07.006.111.047l.415.415a.155.155 0 0 1-.003.221.787.787 0 0 0-.137.938c.113.206.205.426.27.648a.784.784 0 0 0 .759.568c.089 0 .159.07.159.159v.583c0 .089-.07.159-.16.159a.783.783 0 0 0-.757.564 3.388 3.388 0 0 1-.274.653.79.79 0 0 0 .139.936.16.16 0 0 1 .047.113c0 .024-.006.07-.047.11l-.415.415a.147.147 0 0 1-.108.044.155.155 0 0 1-.113-.047.788.788 0 0 0-.938-.137 3.283 3.283 0 0 1-.648.27.784.784 0 0 0-.568.758c0 .09-.07.16-.159.16h-.583a.157.157 0 0 1-.159-.16.783.783 0 0 0-.564-.758 3.426 3.426 0 0 1-.652-.272.805.805 0 0 0-.936.137.157.157 0 0 1-.113.048.16.16 0 0 1-.111-.048l-.415-.417a.155.155 0 0 1 .003-.22.797.797 0 0 0 .137-.938 3.292 3.292 0 0 1-.27-.649.784.784 0 0 0-.59-.548.319.319 0 0 0-.378.243.319.319 0 0 0 .243.379c.056.012.097.049.113.104.08.268.187.528.323.773a.154.154 0 0 1-.028.184.791.791 0 0 0 0 1.122l.41.41a.79.79 0 0 0 1.126.002.158.158 0 0 1 .111-.045c.027 0 .053.007.073.018.246.133.506.243.776.323.065.019.11.078.11.147 0 .439.356.795.794.795h.583a.796.796 0 0 0 .795-.795c0-.07.045-.128.111-.149.267-.08.528-.188.773-.323a.154.154 0 0 1 .184.027.791.791 0 0 0 1.122 0l.41-.41a.796.796 0 0 0 .002-1.125.158.158 0 0 1-.045-.111c0-.027.007-.053.018-.073a3.94 3.94 0 0 0 .323-.776.152.152 0 0 1 .147-.11.796.796 0 0 0 .795-.794v-.584a.795.795 0 0 0-.795-.794v.01Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.328 12.631a.319.319 0 0 0-.356.275c-.006.054-.01.108-.01.165 0 1.164.948 2.111 2.111 2.111 1.163 0 2.11-.947 2.11-2.11 0-1.164-.947-2.111-2.11-2.111a1.39 1.39 0 0 0-.165.01.318.318 0 0 0 .078.631 1.476 1.476 0 1 1 .086 2.945 1.476 1.476 0 0 1-1.47-1.561.318.318 0 0 0-.276-.356l.002.001Z\"\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"Setup_Service_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M2 2h16v16H2z\"\n})))));\nconst Memo = /*#__PURE__*/memo(SvgSetupService);\nexport default Memo;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgInvoiceDesign = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 20 20\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#fff\",\n clipPath: \"url(#InvoiceDesign_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.753 6.537h1.499c.139 0 .252-.122.252-.27 0-.148-.113-.27-.252-.27h-1.5c-.136 0-.247-.118-.247-.263V3.868c0-.733.56-1.33 1.247-1.33.334 0 .646.14.882.393.132.137.232.308.292.497.048.14.072.288.072.44V16.13c0 1.006.75 1.827 1.685 1.866l.023.002h9.542c.966 0 1.752-.837 1.752-1.868v-1.865c0-.444-.337-.803-.753-.803H8.75c-.415 0-.752.36-.752.803v1.798c0 .38-.148.751-.407 1.02-.237.247-.54.382-.855.377-.68-.01-1.231-.601-1.231-1.33V3.868c0-.215-.034-.426-.101-.62a1.844 1.844 0 0 0-.412-.7l-.01-.01h9.767c.335 0 .647.138.882.39.235.25.365.582.365.939v8.797c0 .148.113.27.252.27.14 0 .253-.122.253-.27V3.868c0-.501-.183-.971-.513-1.32a1.678 1.678 0 0 0-1.239-.55H3.752C2.786 2 2 2.838 2 3.868v1.866c0 .443.337.803.753.803Zm5.75 9.527v-1.798c0-.146.11-.264.247-.264h8.497c.137 0 .248.118.248.264v1.865c0 .733-.56 1.33-1.247 1.33H7.952c.35-.37.552-.877.552-1.397h-.001Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.25 5.738c.138 0 .252-.121.252-.27 0-.148-.114-.269-.253-.269H8.251c-.14 0-.253.121-.253.27 0 .148.114.269.253.269h4.998ZM14.5 7.332H7.002c-.14 0-.253.12-.253.269 0 .148.114.27.253.27H14.5c.139 0 .252-.122.252-.27 0-.148-.114-.27-.252-.27ZM14.5 9.464H7.002c-.14 0-.253.121-.253.27 0 .147.114.269.253.269H14.5c.139 0 .252-.122.252-.27 0-.148-.114-.27-.252-.27ZM14.5 11.596H7.002c-.14 0-.253.121-.253.27 0 .148.114.269.253.269H14.5c.139 0 .252-.121.252-.27 0-.148-.114-.269-.252-.269Z\"\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"InvoiceDesign_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M2 2h16v16H2z\"\n})))));\nconst Memo = /*#__PURE__*/memo(SvgInvoiceDesign);\nexport default Memo;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgBalanceEntries = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 20 20\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#fff\",\n clipPath: \"url(#BalanceEntries_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.577 17.5h4.072a.577.577 0 0 0 .577-.575V3.58a.577.577 0 0 0-.577-.576H1.577A.577.577 0 0 0 1 3.58v13.343c0 .317.26.576.577.576v.001Zm0-13.925 4.077.005v13.343s-.002.004-.005.004l-4.076-.004.004-13.35v.002Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.614 12.868a1.45 1.45 0 0 0-1.45 1.446c0 .798.65 1.445 1.45 1.445.8 0 1.45-.648 1.45-1.445a1.45 1.45 0 0 0-1.45-1.446Zm0 2.32a.877.877 0 0 1-.878-.874.878.878 0 0 1 1.755 0 .876.876 0 0 1-.877.874ZM4.777 4.745H2.45a.287.287 0 0 0-.286.285c0 .158.129.286.286.286h2.327a.287.287 0 0 0 .287-.286.287.287 0 0 0-.287-.285ZM4.777 11.127H2.45a.287.287 0 0 0-.286.285c0 .157.129.286.286.286h2.327a.287.287 0 0 0 .287-.286.287.287 0 0 0-.287-.285ZM7.074 17.5h3.23a.577.577 0 0 0 .576-.575V3.58a.577.577 0 0 0-.577-.576H7.074a.287.287 0 0 0-.286.286c0 .157.129.285.286.285l3.234.005-.005 13.349H7.074a.287.287 0 0 0-.286.286c0 .157.129.285.286.285Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.267 15.76a1.45 1.45 0 0 0 1.45-1.446 1.45 1.45 0 0 0-2.9 0c0 .798.65 1.445 1.45 1.445Zm0-2.321c.484 0 .878.393.878.875a.877.877 0 0 1-1.755 0c0-.481.393-.875.877-.875ZM7.104 5.316H9.43a.287.287 0 0 0 .286-.286.287.287 0 0 0-.286-.285H7.104a.287.287 0 0 0-.287.285c0 .158.13.286.287.286ZM7.104 11.698H9.43a.287.287 0 0 0 .286-.286.287.287 0 0 0-.286-.285H7.104a.287.287 0 0 0-.287.285c0 .157.13.286.287.286ZM15.542 2.929a.573.573 0 0 0-.706-.408l-3.153.843a.285.285 0 1 0 .149.551l3.157-.84 3.433 12.803-3.939 1.047L12.035 7.8a.286.286 0 0 0-.554.147l2.45 9.125a.583.583 0 0 0 .707.406l3.93-1.05a.566.566 0 0 0 .354-.27.583.583 0 0 0 .058-.438L15.542 2.929Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.41 12.508c-.374.1-.687.338-.88.67a1.424 1.424 0 0 0-.148 1.092 1.444 1.444 0 0 0 1.774 1.014 1.444 1.444 0 0 0 1.027-1.764 1.447 1.447 0 0 0-1.774-1.014l.001.002Zm1.22 1.162a.87.87 0 0 1-.623 1.064.874.874 0 0 1-1.072-.611.87.87 0 0 1 .852-1.094c.386 0 .739.254.843.641ZM14.441 4.415l-2.247.601a.285.285 0 0 0-.202.35.287.287 0 0 0 .351.201l2.247-.6a.286.286 0 1 0-.149-.551ZM16.086 10.537l-2.248.601a.285.285 0 0 0-.202.35.287.287 0 0 0 .35.201l2.249-.6a.286.286 0 1 0-.149-.551Z\"\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"BalanceEntries_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M1 2.5h18v15H1z\"\n})))));\nconst Memo = /*#__PURE__*/memo(SvgBalanceEntries);\nexport default Memo;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgTransferAccountsIcon = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 20 20\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#TransferAccountsIcon_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M17.64 5.003c-.631.1-1.261.206-1.892.312-1.219.204-2.438.407-3.655.614-1.412.239-2.824.483-4.237.726-1.231.213-2.463.428-3.693.65-.424.078-.847.158-1.268.253-.076.017-.153.032-.23.052-.015.005-.033.005-.048.012a.505.505 0 0 0-.053.019c-.03.006-.061.02-.092.029a1.517 1.517 0 0 0-.08.025c-.03.012-.04.005-.078.03a.571.571 0 0 0-.034.027c-.03.01-.067.043-.094.059-.02.013-.041.025-.06.04-.002 0-.003.003-.005.003h-.003c-.09.039-.154.143-.098.244l.01.014c-.037-.04-.007-.005.018.034a1.154 1.154 0 0 0 .132.13c.133.105.273.192.412.283.287.19.564.41.832.629.246.202.513.359.767.548.245.184.488.38.762.513l.003.001.006.004c.014.006.03.012.042.019a.25.25 0 0 0 .005.025c.01.087.04.165.066.247.12.37.25.733.387 1.095.318.845.654 1.681.996 2.513l.284.686c.086.202.31.19.44.066.156-.048.311-.172.427-.266.264-.218.527-.438.78-.668l.738-.67.282-.255.063-.055a40.71 40.71 0 0 1 .56.354c.34.218.67.465 1.015.675.072.164.244.27.422.141.098-.069.167-.184.24-.279.158-.206.314-.413.471-.62.514-.68 1.024-1.36 1.537-2.044 1.152-1.538 2.282-3.095 3.424-4.641.19-.257.38-.513.567-.771.094-.132.228-.266.277-.428.075-.244-.15-.406-.345-.375ZM5.203 9.739c-.61-.365-1.179-.814-1.757-1.234-.153-.11-.303-.233-.464-.329a1.814 1.814 0 0 0-.12-.067c.151-.024.301-.048.453-.07l.138-.021h.005l.067-.01.092-.016.33-.06c1.182-.21 2.366-.414 3.549-.616 1.411-.24 2.823-.478 4.234-.715.89-.15 1.78-.298 2.671-.447-.486.182-.973.367-1.458.55-1.123.424-2.245.849-3.366 1.277-.95.362-1.902.726-2.85 1.094-.3.116-.595.24-.891.366a4.308 4.308 0 0 0-.302.138c-.023.013-.048.024-.07.038-.068.026-.14.053-.202.088a.715.715 0 0 0-.056.034h-.003Zm1.959.877c-.11.074-.222.125-.314.216a.267.267 0 0 0-.147.205c-.003.026-.004.05-.003.076-.051.26.015.53.016.798l.008.805v.533a90.3 90.3 0 0 0-1.151-2.745l-.099-.226c-.014-.034-.026-.07-.042-.101l-.018-.024c.063-.01.127-.023.19-.039.026-.006.05-.014.076-.022.073-.023.145-.047.215-.072.271-.103.545-.198.817-.302.914-.35 1.826-.702 2.74-1.05a1199.525 1199.525 0 0 1 4.405-1.665 1093.433 1093.433 0 0 0-5.074 2.691c-.545.292-1.098.577-1.616.92l-.003.002Zm1.6 2.21-.733.68c-.243.226-.48.458-.723.684l-.03.03c-.013-.476-.035-.953-.04-1.43l-.01-.81c0-.079 0-.157-.002-.234l-.008-.092c.17.113.36.198.526.29.39.22.77.464 1.154.698l.032.019a6.915 6.915 0 0 1-.166.164v.001Zm6.553-4.794C14.167 9.535 13.04 11.06 11.9 12.57l-.576.76-.045.059c-.29-.204-.602-.385-.897-.574a49.414 49.414 0 0 0-1.164-.717c-.378-.226-.755-.455-1.143-.658a22.165 22.165 0 0 0-.582-.294l-.051-.025c.053-.036.106-.074.16-.108.165-.105.337-.195.505-.291l.137-.079c.208-.115.417-.23.625-.341.755-.407 1.512-.811 2.268-1.215.947-.504 1.893-1.005 2.84-1.507a767.21 767.21 0 0 0 2.502-1.33l.313-.17c-.486.655-.982 1.303-1.477 1.95l-.001.002Z\"\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"TransferAccountsIcon_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M2 5h16v10H2z\"\n})))));\nconst Memo = /*#__PURE__*/memo(SvgTransferAccountsIcon);\nexport default Memo;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgVatService = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 20 20\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#fff\",\n clipPath: \"url(#VAT_Service_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.163 3.834a.358.358 0 0 0-.507 0L3.838 15.66a.358.358 0 1 0 .507.507L16.164 4.341a.358.358 0 0 0 0-.507ZM5.661 8.324a2.665 2.665 0 0 0 2.662-2.663A2.664 2.664 0 0 0 5.66 3 2.665 2.665 0 0 0 3 5.663a2.664 2.664 0 0 0 2.661 2.662v-.001Zm0-4.607c1.073 0 1.946.872 1.946 1.946A1.948 1.948 0 0 1 5.66 7.609a1.947 1.947 0 0 1-1.945-1.946c0-1.074.872-1.946 1.945-1.946ZM14.339 11.676a2.665 2.665 0 0 0-2.662 2.663A2.664 2.664 0 0 0 14.34 17 2.664 2.664 0 0 0 17 14.34a2.664 2.664 0 0 0-2.661-2.663Zm0 4.607a1.948 1.948 0 0 1-1.946-1.946c0-1.073.873-1.946 1.946-1.946 1.072 0 1.945.873 1.945 1.946a1.948 1.948 0 0 1-1.945 1.947Z\"\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"VAT_Service_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M3 3h14v14H3z\"\n})))));\nconst Memo = /*#__PURE__*/memo(SvgVatService);\nexport default Memo;","var _path, _path2, _path3, _path4, _path5, _path6;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgFixedAssetAddition = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"currentColor\",\n viewBox: \"0 0 60 60\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M8.878.102c2.247-.39 3.845.426 4.796 2.449.101 1.223.136 2.447.102 3.673 8.64-.034 17.279 0 25.918.103l.306.306c.102 7.278.136 14.557.102 21.836 8.161-.937 14.046 2.26 17.653 9.592 2.434 7.718.495 14.079-5.816 19.082-5.57 3.243-11.215 3.379-16.939.408a17.597 17.597 0 0 1-4.694-4.286L1.94 53.061a1.495 1.495 0 0 1-.919-.714c-.136-15.17-.136-30.34 0-45.51l.51-.51a58.863 58.863 0 0 1 4.899-.103c-.647-2.697.17-4.738 2.449-6.122Zm1.02 2.04c.83.049 1.409.457 1.735 1.225.102.95.136 1.903.102 2.857H8.469a6.952 6.952 0 0 1 .51-3.469c.288-.261.594-.465.92-.612ZM3.163 8.266H6.43c-.088 2.261.014 4.506.306 6.735 1.342 2.078 3.145 2.589 5.408 1.53 1.433-.992 1.909-2.319 1.428-3.979-.345-.358-.753-.46-1.224-.306a34.189 34.189 0 0 0-1.224 2.245c-1.176.603-2.026.297-2.551-.919a69.065 69.065 0 0 1-.103-5.306h29.592c.034 6.94 0 13.878-.102 20.817-6.844 2.631-10.348 7.631-10.51 15a13.777 13.777 0 0 0 1.429 6.734c-8.572.102-17.143.136-25.715.102V8.265Zm24.286 7.143c2.776.046 3.83 1.406 3.163 4.082-1.42 1.728-2.984 1.864-4.693.408-.963-2.046-.453-3.542 1.53-4.49ZM40.92 30.51c5.76-.568 10.285 1.473 13.57 6.123 3.118 5.602 2.778 10.976-1.02 16.122-5.584 5.58-11.74 6.293-18.469 2.143-5.354-4.521-6.749-10.066-4.184-16.633 2.229-4.103 5.596-6.688 10.103-7.755Zm.612 6.53h3.06c-.033 1.635 0 3.267.103 4.899l.51.51c1.563.102 3.128.136 4.694.102v3.061a58.88 58.88 0 0 0-4.898.102l-.306.306c-.102 1.632-.136 3.264-.102 4.898H41.53c.034-1.702 0-3.402-.102-5.102a33.982 33.982 0 0 0-5.204-.204v-3.061c1.566.034 3.13 0 4.694-.102.186-.076.357-.178.51-.306.102-1.7.136-3.4.102-5.102Z\",\n clipRule: \"evenodd\",\n opacity: 0.862\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M27.653 13.163c4.236.324 5.971 2.569 5.204 6.735-1.154 2.465-3.093 3.52-5.816 3.163-2.888-.979-4.147-2.985-3.776-6.02.686-2.22 2.149-3.512 4.388-3.878Zm-.204 2.245c-1.983.948-2.493 2.444-1.53 4.49 1.71 1.456 3.274 1.32 4.693-.408.668-2.675-.387-4.036-3.163-4.082Z\",\n clipRule: \"evenodd\",\n opacity: 0.843\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M7.04 25.816c6.94-.034 13.879 0 20.817.102.816.68.816 1.36 0 2.041a530.69 530.69 0 0 1-20.816 0c-.815-.749-.815-1.463 0-2.143Z\",\n clipRule: \"evenodd\",\n opacity: 0.826\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M7.04 30.714c6.94-.034 13.879 0 20.817.102.816.68.816 1.36 0 2.041-6.87.136-13.741.136-20.612 0-.758-.333-.996-.911-.714-1.735.203-.115.373-.251.51-.408Z\",\n clipRule: \"evenodd\",\n opacity: 0.822\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M39.898 35c2.11-.034 4.219 0 6.326.102l.51.51a54.04 54.04 0 0 1 .103 4.694c1.566-.034 3.13 0 4.694.102.245.184.415.422.51.715a42.944 42.944 0 0 1 0 5.918.91.91 0 0 0-.306.408c-1.627.204-3.26.272-4.898.204.034 1.566 0 3.13-.102 4.694a2.352 2.352 0 0 1-.919.714 37.232 37.232 0 0 1-5.51 0 1.424 1.424 0 0 1-.714-.51c-.102-1.631-.136-3.264-.102-4.898a58.88 58.88 0 0 1-4.898-.102 1.424 1.424 0 0 1-.51-.714 40.036 40.036 0 0 1 0-5.715 1.93 1.93 0 0 1 .306-.51 22.702 22.702 0 0 1 5.102-.306c-.034-1.634 0-3.267.102-4.898a.88.88 0 0 0 .306-.408Zm1.633 2.04c.033 1.703 0 3.404-.102 5.103-.154.128-.324.23-.51.306a54.078 54.078 0 0 1-4.695.102v3.061a33.994 33.994 0 0 1 5.205.204c.102 1.7.135 3.4.102 5.102h3.06a58.88 58.88 0 0 1 .103-4.898l.306-.306c1.631-.102 3.264-.136 4.898-.102v-3.061c-1.566.034-3.13 0-4.694-.102l-.51-.51a58.88 58.88 0 0 1-.102-4.898H41.53Z\",\n clipRule: \"evenodd\",\n opacity: 0.864\n})), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M7.04 36.837c3.267-.034 6.532 0 9.797.102.578.747.51 1.428-.204 2.04-3.198.137-6.395.137-9.592 0-.815-.748-.815-1.463 0-2.142Z\",\n clipRule: \"evenodd\",\n opacity: 0.81\n})));\nconst Memo = /*#__PURE__*/memo(SvgFixedAssetAddition);\nexport default Memo;","import BillsOutlined from 'assets/icons/Bills-Outlined.svg'\nimport ManualJournalOutlined from 'assets/icons/ManualJornal-Outlined.svg'\nimport ReportsOutlined from 'assets/icons/Reports-Outlined.svg'\nimport CustomersOutlined from 'assets/icons/Customers-Outlined.svg'\nimport ProductsOutlined from 'assets/icons/Products-Outlined.svg'\nimport TasksOutlined from 'assets/icons/Tasks-Outlined.svg'\nimport CustomerReceiptsOutlined from 'assets/icons/Cutsomer Receipts-Outlined.svg'\nimport ProjectsOutlined from 'assets/icons/Projects-Outlined.svg'\nimport VendorReceiptsOutlined from 'assets/icons/Vendor Receipts-Outlined.svg'\nimport FolderOpenOutlined from 'assets/icons/FolderOpen-r.svg'\nimport DimensionSettingsOutlined from 'assets/icons/dimension_settings.svg'\nimport PurchasesOrdersOutlined from 'assets/icons/Purchases Orders.svg'\nimport VendorsOutlined from 'assets/icons/Vendors-Outlined.svg'\nimport InvoiceOutlined from 'assets/icons/Inovice-Outlined.svg'\nimport QuotationsOutlined from 'assets/icons/Quotations-Outlined.svg'\nimport DeductionOutlined from 'assets/icons/Deductions-Outlined.svg'\nimport LoanOutlined from 'assets/icons/Loan-Outlined.svg'\nimport SoundOutlined from 'assets/icons/SoundOutlined.svg'\nimport QFill from 'assets/icons/qFilled.svg'\nimport DisposalOutlined from 'assets/icons/disposal.svg'\nimport Budgeting from 'assets/icons/Budgeting-icon.svg'\nimport CurrencyIcon from 'assets/icons/currencyMenu.svg'\nimport Q_Academy from 'assets/icons/Q_Academy.svg'\nimport Cleanup from 'assets/icons/Cleanup.svg'\nimport Training from 'assets/icons/Training.svg'\nimport ConsultationService from 'assets/icons/ConsultationService.svg'\nimport SetupServices from 'assets/icons/Setup_Service.svg'\nimport InvoiceDesign from 'assets/icons/InvoiceDesign.svg'\nimport BalanceEntries from 'assets/icons/BalanceEntries.svg'\nimport TradferAccountsIcon from 'assets/icons/TransferAccountsIcon.svg'\nimport VAT_Service from 'assets/icons/VAT_Service.svg'\nimport FixedAssetAdditionIcon from \"assets/icons/FixedAssetAddition.svg\";\n\nimport {\n DashboardOutlined,\n DollarOutlined,\n TableOutlined,\n SettingOutlined,\n RocketOutlined,\n UserOutlined,\n FileProtectOutlined,\n FileAddOutlined,\n EditOutlined,\n PaperClipOutlined,\n QuestionCircleOutlined,\n EnvironmentOutlined,\n InsertRowBelowOutlined,\n FallOutlined,\n ToolOutlined,\n BarChartOutlined,\n ApartmentOutlined,\n GiftOutlined,\n SyncOutlined,\n} from \"@ant-design/icons\";\nimport QIcon from \"components/layout/QIcon\";\n\nexport const iconMap = new Map<string, React.ReactNode>([\n ['sidepanel_dashboards', <DashboardOutlined key=\"ICON\" />],\n ['sidepanel_advanced_accounting_portal', <DashboardOutlined key=\"ICON\" />],\n ['sidepanel_sales', <DollarOutlined key=\"ICON\" />],\n ['sidepanel_sales__customers', <QIcon key=\"ICON\" component={CustomersOutlined} />],\n ['sidepanel_sales__quotations', <QIcon key=\"ICON\" component={QuotationsOutlined} />],\n ['sidepanel_sales__invoices', <QIcon key=\"ICON\" component={InvoiceOutlined} />],\n ['sidepanel_sales__customer_receipts', <QIcon key=\"ICON\" component={CustomerReceiptsOutlined} />],\n ['sidepanel_purchases', <QIcon key=\"ICON\" component={PurchasesOrdersOutlined} />],\n ['sidepanel_purchases__vendors', <QIcon key=\"ICON\" component={VendorsOutlined} />],\n ['sidepanel_purchases__purchase_orders', <QIcon key=\"ICON\" component={PurchasesOrdersOutlined} />],\n ['sidepanel_purchases__bills', <QIcon key=\"ICON\" component={BillsOutlined} />],\n ['sidepanel_purchases__simple_bills', <QIcon key=\"ICON\" component={BillsOutlined} />],\n ['sidepanel_purchases__vendor_receipts', <QIcon key=\"ICON\" component={VendorReceiptsOutlined} />],\n ['sidepanel_products', <QIcon key=\"ICON\" component={ProductsOutlined} />],\n ['sidepanel_products__products', <QIcon key=\"ICON\" component={ProductsOutlined} />],\n ['sidepanel_products__inventories', <EnvironmentOutlined key=\"ICON\" />],\n ['sidepanel_products__productions', <InsertRowBelowOutlined key=\"ICON\" />],\n ['sidepanel_fixed_assets', <TableOutlined key=\"ICON\" />],\n ['sidepanel_fixed_assets__fixed_assets', <TableOutlined key=\"ICON\" />],\n ['sidepanel_fixed_assets__depreciations', <FallOutlined key=\"ICON\" />],\n ['sidepanel_fixed_assets__disposals', <QIcon key=\"ICON\" component={DisposalOutlined} />],\n [\"sidepanel_fixed_assets__additions\", <QIcon component={FixedAssetAdditionIcon} style={{ fontSize: \"20px\" }} />],\n ['sidepanel_payrolls', <QIcon key=\"ICON\" component={FolderOpenOutlined} />],\n ['sidepanel_payrolls__payroll_activate', <ToolOutlined key=\"ICON\" />],\n ['sidepanel_payrolls__onboarding_hr', <QIcon key=\"ICON\" component={SoundOutlined} />],\n ['sidepanel_payrolls__employees', <QIcon key=\"ICON\" component={CustomersOutlined} />],\n ['sidepanel_payrolls__payrolls', <QIcon key=\"ICON\" component={FolderOpenOutlined} />],\n ['sidepanel_payrolls__loans', <QIcon key=\"ICON\" component={LoanOutlined} />],\n ['sidepanel_payrolls__bonuses', <GiftOutlined key=\"ICON\" />],\n ['sidepanel_payrolls__deductions', <QIcon key=\"ICON\" component={DeductionOutlined} />],\n ['sidepanel_accounting', <QIcon key=\"ICON\" component={FolderOpenOutlined} />],\n ['sidepanel_accounting__easy_entries', <QIcon key=\"ICON\" component={ManualJournalOutlined} />],\n ['sidepanel_accounting__manual_journal_entries', <QIcon key=\"ICON\" component={ManualJournalOutlined} />],\n ['sidepanel_accounting__accounts', <BarChartOutlined key=\"ICON\" />],\n ['sidepanel_accounting__audit_processes', <ApartmentOutlined key=\"ICON\" />],\n ['sidepanel_accounting__budgets', <QIcon key=\"ICON\" component={Budgeting} />],\n ['sidepanel_accounting__recurring_transactions', <SyncOutlined key=\"ICON\" />],\n ['sidepanel_projects_tasks', <QIcon key=\"ICON\" component={TasksOutlined} />],\n ['sidepanel_projects_tasks__projects', <QIcon key=\"ICON\" component={ProjectsOutlined} />],\n ['sidepanel_projects_tasks__tasks', <QIcon key=\"ICON\" component={TasksOutlined} />],\n ['sidepanel_reports', <QIcon key=\"ICON\" component={ReportsOutlined} />],\n ['sidepanel_qoyod_services', <QIcon key=\"ICON\" component={QFill} />],\n ['sidepanel_qoyod_services__consultation_service', <QIcon key=\"ICON\" component={ConsultationService} />],\n ['sidepanel_qoyod_services__setup', <QIcon key=\"ICON\" component={SetupServices} />],\n ['sidepanel_qoyod_services__invoice_design', <QIcon key=\"ICON\" component={InvoiceDesign} />],\n ['sidepanel_qoyod_services__balance_entries', <QIcon key=\"ICON\" component={BalanceEntries} />],\n ['sidepanel_qoyod_services__qoyod_academy', <QIcon key=\"ICON\" component={Q_Academy} />],\n ['sidepanel_qoyod_services__transfer_accounts', <QIcon key=\"ICON\" component={TradferAccountsIcon} />],\n ['sidepanel_qoyod_services__bookkeeping', <QIcon key=\"ICON\" component={QFill} />],\n ['sidepanel_qoyod_services__cleanup', <QIcon key=\"ICON\" component={Cleanup} />],\n ['sidepanel_qoyod_services__training', <QIcon key=\"ICON\" component={Training} />],\n ['sidepanel_qoyod_services__vat', <QIcon key=\"ICON\" component={VAT_Service} />],\n ['sidepanel_settings', <SettingOutlined key=\"ICON\" />],\n ['sidepanel_settings__general_settings', <SettingOutlined key=\"ICON\" />],\n ['sidepanel_settings__dimensions', <QIcon key=\"ICON\" component={DimensionSettingsOutlined} />],\n ['sidepanel_settings__subscriptions', <SettingOutlined key=\"ICON\" />],\n ['sidepanel_settings__manage_subscriptions', <SettingOutlined key=\"ICON\" />],\n ['sidepanel_settings__integrations', <RocketOutlined key=\"ICON\" />],\n ['sidepanel_settings__taxes', <SettingOutlined key=\"ICON\" />],\n ['sidepanel_settings__payroll_settings', <SettingOutlined key=\"ICON\" />],\n ['sidepanel_settings__users', <UserOutlined key=\"ICON\" />],\n ['sidepanel_settings__payment_terms', <FileProtectOutlined key=\"ICON\" />],\n ['sidepanel_settings__custom_fields', <FileAddOutlined key=\"ICON\" />],\n ['sidepanel_settings__edit_profile', <EditOutlined key=\"ICON\" />],\n ['sidepanel_settings__attachments', <PaperClipOutlined key=\"ICON\" />],\n ['sidepanel_show_me_how', <QuestionCircleOutlined key=\"ICON\" />],\n ['sidepanel_knowledge_base', <QuestionCircleOutlined key=\"ICON\" />],\n ['sidepanel_qlend', <QIcon key=\"ICON\" component={QFill} />],\n ['sidepanel_qtahseel', <QIcon key=\"ICON\" component={QFill} />],\n ['sidepanel_settings__currencies', <QIcon key=\"ICON\" component={CurrencyIcon} /> ]\n])\n\nexport const labelMap = new Map<string, string>([\n ['sidepanel_dashboards', 'activerecord.attributes.layout.dashboard'],\n ['sidepanel_advanced_accounting_portal', 'activerecord.attributes.side_menu.advanced_accountant_portal'],\n ['sidepanel_sales', 'activerecord.attributes.layout.sales'],\n ['sidepanel_sales__customers', 'activerecord.attributes.layout.customers'],\n ['sidepanel_sales__quotations', 'activerecord.attributes.layout.quotations'],\n ['sidepanel_sales__invoices', 'activerecord.attributes.layout.invoices'],\n ['sidepanel_sales__customer_receipts', 'activerecord.attributes.layout.customer_receipts'],\n ['sidepanel_purchases', 'activerecord.attributes.layout.purchases'],\n ['sidepanel_purchases__vendors', 'activerecord.attributes.layout.vendors'],\n ['sidepanel_purchases__purchase_orders', 'activerecord.attributes.layout.orders'],\n ['sidepanel_purchases__bills', 'activerecord.attributes.layout.bills'],\n ['sidepanel_purchases__simple_bills', 'activerecord.attributes.layout.simple_bills'],\n ['sidepanel_purchases__vendor_receipts', 'activerecord.attributes.layout.vendor_receipts'],\n ['sidepanel_products', 'activerecord.attributes.layout.products'],\n ['sidepanel_products__products', 'activerecord.attributes.layout.products'],\n ['sidepanel_products__inventories', 'activerecord.attributes.layout.locations'],\n ['sidepanel_products__productions', 'activerecord.attributes.layout.productions'],\n ['sidepanel_fixed_assets', 'activerecord.attributes.layout.fixed_assets'],\n ['sidepanel_fixed_assets__fixed_assets', 'activerecord.attributes.layout.fixed_assets'],\n ['sidepanel_fixed_assets__depreciations', 'activerecord.attributes.fixed_asset.depreciation'],\n ['sidepanel_fixed_assets__disposals', 'activerecord.attributes.tenant_role.disposals'],\n [\"sidepanel_fixed_assets__additions\", \"fixed_asset_additions.layout.title\"],\n ['sidepanel_payrolls', 'activerecord.attributes.layout.human_resources'],\n ['sidepanel_payrolls__payroll_activate', 'activerecord.attributes.layout.onboarding.activate'],\n ['sidepanel_payrolls__onboarding_hr', 'activerecord.attributes.layout.onboarding.onboarding'],\n ['sidepanel_payrolls__employees', 'activerecord.attributes.layout.employees'],\n ['sidepanel_payrolls__payrolls', 'activerecord.attributes.layout.payrolls'],\n ['sidepanel_payrolls__loans', 'activerecord.attributes.layout.loans'],\n ['sidepanel_payrolls__bonuses', 'activerecord.attributes.layout.bonuses'],\n ['sidepanel_payrolls__deductions', 'activerecord.attributes.layout.deductions'],\n ['sidepanel_accounting', 'activerecord.attributes.layout.accounting'],\n ['sidepanel_accounting__easy_entries', 'activerecord.attributes.layout.easy_entries'],\n ['sidepanel_accounting__manual_journal_entries', 'activerecord.attributes.layout.manual_journal_entries'],\n ['sidepanel_accounting__accounts', 'activerecord.attributes.layout.chart_of_accounts'],\n ['sidepanel_accounting__audit_processes', 'audit_process.menu'],\n ['sidepanel_accounting__budgets', 'budgets.name'],\n ['sidepanel_accounting__recurring_transactions', 'recurring_transactions.title'],\n ['sidepanel_projects_tasks', 'templates.project_and_task'],\n ['sidepanel_projects_tasks__projects', 'templates.projects.projects'],\n ['sidepanel_projects_tasks__tasks', 'templates.tasks.tasks'],\n ['sidepanel_reports', 'activerecord.attributes.layout.reports'],\n ['sidepanel_qoyod_services', 'activerecord.attributes.layout.professional_services'],\n ['sidepanel_qoyod_services__setup', 'activerecord.attributes.layout.setup_service'],\n ['sidepanel_qoyod_services__invoice_design', 'activerecord.attributes.layout.invoice_design'],\n ['sidepanel_qoyod_services__balance_entries', 'activerecord.attributes.layout.balance_entries'],\n ['sidepanel_qoyod_services__transfer_accounts', 'activerecord.attributes.layout.transfer_accounts'],\n ['sidepanel_qoyod_services__qoyod_academy', 'activerecord.attributes.layout.qoyod_academy'],\n ['sidepanel_qoyod_services__bookkeeping', 'activerecord.attributes.layout.bookkeeping'],\n ['sidepanel_qoyod_services__cleanup', 'activerecord.attributes.layout.cleanup_service'],\n ['sidepanel_qoyod_services__training', 'activerecord.attributes.layout.training_service'],\n ['sidepanel_qoyod_services__consultation_service', 'activerecord.attributes.layout.consultation_service'],\n ['sidepanel_qoyod_services__vat', 'activerecord.attributes.layout.vat_service'],\n ['sidepanel_settings', 'activerecord.attributes.layout.settings'],\n ['sidepanel_settings__general_settings', 'activerecord.attributes.layout.general_settings'],\n ['sidepanel_settings__dimensions', 'activerecord.attributes.dimension.settings'],\n ['sidepanel_settings__subscriptions', 'activerecord.attributes.layout.subscription_settings'],\n ['sidepanel_settings__manage_subscriptions', 'activerecord.attributes.layout.manage_subscription_settings'],\n ['sidepanel_settings__integrations', 'templates.integration'],\n ['sidepanel_settings__taxes', 'activerecord.attributes.tax.layout.index'],\n ['sidepanel_settings__payroll_settings', 'activerecord.attributes.layout.human_resources_settings'],\n ['sidepanel_settings__users', 'activerecord.attributes.layout.users'],\n ['sidepanel_settings__payment_terms', 'activerecord.attributes.layout.payment_terms'],\n ['sidepanel_settings__custom_fields', 'activerecord.attributes.layout.custom_fields'],\n ['sidepanel_settings__edit_profile', 'activerecord.attributes.layout.edit_profile'],\n ['sidepanel_settings__attachments', 'activerecord.attributes.layout.attachments'],\n ['sidepanel_show_me_how', 'activerecord.attributes.help_content.btn_H'],\n ['sidepanel_knowledge_base', 'frontend.tooltips.on_boarding.knowledge_base'],\n ['sidepanel_qlend', 'activerecord.attributes.layout.qoyod_lend'],\n ['sidepanel_qtahseel', 'activerecord.attributes.layout.qoyod_tahseel'],\n ['sidepanel_settings__currencies', 'tenant.multi_currencies.title']\n])\n\nexport const tagMap = new Map([\n ['beta', {\n label: 'activerecord.attributes.fixed_asset.beta',\n color: 'gold'\n }],\n ['new', {\n label: 'status.new',\n color: 'orange'\n }],\n ['pending', {\n label: 'status.pending',\n color: 'blue'\n }],\n ['soon', {\n label: 'status.soon',\n color: 'blue'\n }],\n ['available', {\n label: 'status.available',\n color: 'green'\n }]\n])\n","/* eslint-disable */\nimport React, {useMemo, useState, useContext, useCallback, useEffect} from 'react'\nimport type { MenuProps } from 'antd';\nimport { Typography, Menu, theme, Button, Tag, ConfigProvider, Flex } from 'antd';\nimport type {ItemData as RawItemData} from 'types/layout';\nimport QLayoutContext from 'contexts/Layout';\nimport { useTranslation } from 'react-i18next';\nimport styles from 'styles/layout.scss';\nimport ReactGA from 'react-ga4';\nimport GAMap from 'tokens/GAMap.json';\nimport { TFunction } from 'i18next';\nimport { tagMap, iconMap, labelMap } from 'tokens/layout';\nimport { PlusOutlined } from '@ant-design/icons';\n\nconst {useToken} = theme;\nconst {Link} = Typography;\n\ntype MenuItem = Required<MenuProps>['items'][number];\n\nfunction getItem(\n label: React.ReactNode,\n key: React.Key,\n icon?: React.ReactNode,\n children?: MenuItem[],\n style?: React.CSSProperties,\n clickAction?: () => void,\n type?: 'group'\n ): MenuItem {\n return {\n key,\n icon,\n children,\n label,\n type,\n style: {height: 'auto', ...style},\n className: styles.q_ant_menu__sub_item,\n onTitleClick: clickAction\n } as MenuItem;\n }\n\nfunction getItems(broken: boolean, isMobileRequest: boolean, t: TFunction<'translation', undefined>, startIntro: () => void, setOpenKeys: (ids: string[]) => void, rawItem: RawItemData, style: React.CSSProperties = {}): MenuItem {\n\n if(!rawItem || !rawItem.props) {\n return null;\n }\n\n\n const {props, children, new_entity, tag} = rawItem;\n let actionElement = null;\n const { id } = props;\n let { href } = props;\n\n let showMeHow = () => {};\n if(id === 'sidepanel_show_me_how') {\n if(broken) return null;\n showMeHow = startIntro;\n }\n\n const moduleName = id.split('__')?.[1] ?? id.split('_').slice(1).join('_');\n let [path, newPath, dataToggle, dataTarget] = [href, new_entity?.link, \"\", \"\"];\n let mobileWarning: (module: string) => void = () => {};\n \n if(isMobileRequest && href && href !== '#' && !id.startsWith('sidepanel_settings') ) {\n [path, newPath, dataToggle, dataTarget] = ['#', '#', 'modal', `#${moduleName}`]\n mobileWarning = (module) => window.replaceModuleWords(module);\n }\n\n let TagElement: () => null | React.ReactNode = () => null;\n if(tag) {\n const tagData = tagMap.get(tag.type)!;\n TagElement = () => <Tag color={tagData.color}>{t(tagData.label)}</Tag>\n }\n\n if(new_entity?.allowed) {\n\n const newClickAction = () => {\n const createAction = (GAMap.sidemenu[id] as { create: string })?.create;\n if(createAction) {\n ReactGA.event({\n category: GAMap.sidemenu.CATEGORY,\n action: createAction\n });\n }\n mobileWarning(`new_${moduleName}`)\n }\n\n actionElement = (\n <Button type=\"link\" href={newPath} data-toggle={dataToggle} data-target={`#new_${moduleName}`} onClick={newClickAction} style={{color: 'inherit', display: 'inline'}} icon={ <PlusOutlined /> } />\n )\n }\n\n href = href || '#';\n\n let itemChildren: MenuItem[] | undefined = undefined;\n if(children?.length ?? 0 > 0) {\n itemChildren = [];\n children!.forEach(child => {\n itemChildren!.push(getItems(broken, isMobileRequest, t, startIntro, (() => {}), child, {display: 'flex'}))\n })\n }\n\n const clickAction = () => {\n const viewAction = (GAMap.sidemenu[id] as { view: string })?.view;\n if(viewAction) {\n ReactGA.event({\n category: GAMap.sidemenu.CATEGORY,\n action: viewAction\n });\n }\n showMeHow();\n mobileWarning(moduleName);\n }\n\n const openInNewTab = ['sidepanel_knowledge_base', 'sidepanel_advanced_accounting_portal']\n return getItem(\n <Flex gap={4} style={{display: 'inline-flex', justifyContent: 'space-between', lineHeight: 1.2, width: '100%'}}>\n <Link href={path} data-toggle={dataToggle} data-target={dataTarget} onClick={clickAction} style={{color: 'inherit', whiteSpace: 'break-spaces', wordBreak: 'unset', flex: 1}} target={openInNewTab.includes(id)? '_blank' : '_self'}>\n <Flex gap={4} justify='space-between' align='center'>\n {t(labelMap.get(id)!)}\n <TagElement />\n </Flex>\n </Link>\n {actionElement}\n </Flex>,\n id,\n iconMap.get(id),\n itemChildren,\n style,\n setOpenKeys.bind(null, [id])\n )\n}\n\ninterface SideMenuProps {\n startIntro: () => void;\n collapsed: boolean;\n broken: boolean;\n}\n\nconst SideMenu = ({startIntro, collapsed, broken}: SideMenuProps) => {\n const { t } = useTranslation();\n const { sideMenuData, currentActiveItem, currentActiveMenu, isMobileRequest } = useContext(QLayoutContext);\n const [openKeys, setOpenKeys] = useState<string[] | undefined>([currentActiveMenu]);\n const [lastOpenedKeys, setLastOpenedKeys] = useState<string[] | undefined>([currentActiveMenu])\n\n const {token} = useToken();\n\n const openKey = useCallback((keys: string[]) => {\n setOpenKeys((prevState) => prevState?.[0] === keys[0]? [] : keys)\n }, [ openKeys ])\n\n useEffect(() => {\n if(collapsed) {\n setLastOpenedKeys(openKeys);\n setOpenKeys(undefined);\n } else {\n setOpenKeys(lastOpenedKeys)\n }\n }, [collapsed])\n\n const items = useMemo<MenuItem[]>(() => sideMenuData?.map<MenuItem>((rawItem) => getItems(broken, isMobileRequest, t, startIntro, openKey, rawItem)), [sideMenuData, isMobileRequest, broken]);\n\n\n return (\n <>\n <ConfigProvider theme={{components: {\n Menu: {\n darkItemBg: token.colorPrimary,\n darkSubMenuItemBg: token.colorInfo,\n darkItemSelectedBg: token.colorInfo\n }\n }}}>\n <Menu items={items}\n style={{width: '100%'}}\n theme=\"dark\"\n openKeys={openKeys}\n mode=\"inline\"\n selectedKeys={[currentActiveItem]}\n />\n </ConfigProvider>\n </>\n )\n}\n/* eslint-enable */\n\nexport default SideMenu\n","//@ts-nocheck\nimport React, { ForwardRefRenderFunction } from 'react'\nimport * as AntD from 'antd'\nimport token from 'themes/light.json';\n\ninterface antComponentProps {\n component: string;\n}\n\nconst antComponent = React.forwardRef<HTMLElement, antComponentProps>(({component, ...props}, ref) => {\n const AntComponent = AntD[component];\n return (\n <AntD.ConfigProvider theme={token}>\n <AntComponent {...props} ref={ref} />\n </AntD.ConfigProvider>\n )\n})\n\nexport default antComponent","//@ts-nocheck\nimport React from 'react';\nimport { Typography, Flex } from 'antd';\n\nconst { Title } = Typography\n\ninterface EmptyIndexProps {\n title: string;\n subTitle: string;\n children: React.ReactNode | React.ReactNode[];\n Icon: React.FunctionComponent<React.SVGAttributes<SVGAElement>>\n}\n\nconst QEmptyIndex: React.FC<EmptyIndexProps> = ({ title, subTitle, Icon, children }) => {\n \n return (\n <Flex vertical align='center' style={{ marginTop: '1.2em' }} gap='1.2em'>\n <Icon width=\"8em\" height=\"8em\" />\n <Flex vertical align='center' style={{ width: '50%' }} gap='1.2em'>\n <Title style={{ margin: 0, textAlign: 'center', wordBreak: 'keep-all' }} level={2}>{title}</Title>\n <Title style={{ margin: 0, fontWeight: 'normal', textAlign: 'center', wordBreak: 'keep-all' }} level={5}>{subTitle}</Title>\n </Flex>\n <Flex gap='0.5em' style={{ marginTop: '1em' }}>\n {children}\n </Flex>\n </Flex>\n )\n}\n\n\n\nexport default QEmptyIndex;","import { Button, Card, DatePicker, Form, Input, Modal } from \"antd\";\nimport { updateAssetRegistry } from \"api/AssetRegistry\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useMutation, useQueryClient } from \"react-query\";\nimport { AssetRegistry } from \"types/AssetRegistry\";\n\nimport dayjs from \"dayjs\";\nimport { assetRegistryKeys } from \"tokens/query-keys\";\n\nconst FillReceiveDate = ({\n assetRegistry,\n onChange,\n}: {\n assetRegistry: AssetRegistry;\n onChange?: (registry: AssetRegistry) => void;\n}) => {\n const { t } = useTranslation();\n const [isModalOpen, setIsModalOpen] = React.useState(false);\n const startDepreciationDate = React.useRef<string>();\n const form = Form.useFormInstance();\n const queryClient = useQueryClient();\n\n const registryMuttation = useMutation({\n mutationFn: (data: { start_depreciation_date: string }) => {\n return updateAssetRegistry({\n id: assetRegistry.id,\n ...data,\n });\n },\n onSuccess: (response: AssetRegistry) => {\n setIsModalOpen(false);\n queryClient\n .invalidateQueries({\n queryKey: assetRegistryKeys.detail?.(response.id),\n })\n .catch((err) => console.log(err));\n onChange?.(response);\n\n form.setFieldValue(\"depreciation_calculated\", \"recalculate\");\n },\n });\n\n const updateRegistry = () => {\n form.setFieldValue(\n [\"assetRegistry\", assetRegistry.id, \"start_depreciation_date\"],\n startDepreciationDate.current,\n );\n\n form\n .validateFields(\n [[\"assetRegistry\", assetRegistry.id, \"start_depreciation_date\"]],\n { recursive: true },\n )\n .catch((err: { errorFields: { errors: string[] }[] }) => {\n console.log(err);\n if (!err.errorFields) return;\n\n if (err.errorFields.length === 0) return;\n\n const registryErrorField = document.querySelector(\n `#registry-${assetRegistry.id}-error`,\n );\n if (!registryErrorField) return;\n\n registryErrorField.innerHTML = err.errorFields[0]?.errors.join(\", \");\n });\n\n if (startDepreciationDate.current === undefined) return;\n\n registryMuttation.mutate({\n start_depreciation_date: startDepreciationDate.current,\n });\n };\n\n return (\n <>\n <Button type=\"primary\" onClick={() => setIsModalOpen(true)} size=\"small\">\n {t(\"forms.buttons.fill\")}\n </Button>\n <Form.Item\n name={[\"assetRegistry\", assetRegistry.id, \"start_depreciation_date\"]}\n rules={[{ required: true }]}\n initialValue={startDepreciationDate.current}\n hidden\n >\n <Input type=\"hidden\" />\n </Form.Item>\n <Modal\n open={isModalOpen}\n onOk={updateRegistry}\n onCancel={() => setIsModalOpen(false)}\n title={t(\"activerecord.attributes.fixed_asset.received_date\")}\n width=\"50%\"\n >\n <Card>\n <DatePicker\n style={{ width: \"60%\" }}\n disabledDate={(current) => {\n if (!assetRegistry.purchase_date) return false;\n\n return current.isBefore(dayjs(assetRegistry.purchase_date));\n }}\n onChange={(_dateFormat, date: string | string[]) => {\n const errorDom = document.querySelector(\n `#registry-${assetRegistry.id}-error`,\n );\n\n if (!errorDom) return;\n\n errorDom.innerHTML = \"\";\n\n if (Array.isArray(date)) startDepreciationDate.current = date[0];\n else startDepreciationDate.current = date;\n }}\n />\n <div\n style={{ color: \"#e13659\", boxSizing: \"border-box\" }}\n id={`registry-${assetRegistry.id}-error`}\n ></div>\n </Card>\n </Modal>\n </>\n );\n};\n\nexport { FillReceiveDate };\n","export const fallbackImage =\n \"data:image/png;base64,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\";\n","import {\n Card,\n Col,\n Divider,\n Form,\n Grid,\n Image,\n Input,\n Row,\n Tooltip,\n Typography,\n} from \"antd\";\n\nimport { fallbackImage } from \"assets/fallbackImage\";\nimport { useTranslation } from \"react-i18next\";\nimport { AssetRegistry } from \"types/AssetRegistry\";\nimport { formatCurrency } from \"helpers/format-currency\";\nimport { FillReceiveDate } from \"./FillReceiveDate\";\n\ntype RegistryWatch = Record<string, { start_depreciation_date: string }> | null;\n\nexport const AssetRegistryShow = ({\n assetRegistry,\n title,\n}: {\n assetRegistry: AssetRegistry;\n title: string;\n}) => {\n const { t } = useTranslation();\n const form = Form.useFormInstance();\n const registryWatch = Form.useWatch(\n [\"asset_registry\"],\n form,\n ) as RegistryWatch;\n const startDepreciationDate =\n registryWatch?.[assetRegistry.id]?.start_depreciation_date;\n\n const screens = Grid.useBreakpoint();\n return (\n <Row style={{ marginLeft: 20, marginBottom: 20 }}>\n <Typography.Title level={4} style={{ color: \"#677292\", fontWeight: 500 }}>\n {title}\n </Typography.Title>\n <Divider />\n <Col span={24}>\n <Card className=\"show-card\">\n <Row>\n <Col sm={8} xs={0} hidden={screens.xs}>\n <Card.Meta\n avatar={\n <Image\n width={200}\n preview={false}\n src={assetRegistry.fixed_asset?.image_url || fallbackImage}\n fallback={fallbackImage}\n />\n }\n />\n </Col>\n <Col sm={8} xs={24}>\n <Form.Item\n hidden\n name={[\n \"asset_registry\",\n `${assetRegistry.id}`,\n \"start_depreciation_date\",\n ]}\n rules={[\n {\n required: true,\n },\n ]}\n initialValue={assetRegistry.start_depreciation_date}\n >\n <Input type=\"hidden\" />\n </Form.Item>\n <div style={{ marginLeft: 10 }}>\n <Card.Meta\n title={t(\n \"activerecord.attributes.fixed_asset.asset_registry_other_info.serial_number\",\n )}\n description={assetRegistry.serial_number || assetRegistry.sku}\n />\n <Card.Meta\n title={t(\"activerecord.attributes.fixed_asset.received_date\")}\n description={\n assetRegistry.start_depreciation_date ||\n startDepreciationDate || (\n <FillReceiveDate\n assetRegistry={assetRegistry}\n onChange={(registry: AssetRegistry) => {\n form.setFieldValue(\n [\n \"asset_registry\",\n `${assetRegistry.id}`,\n \"start_depreciation_date\",\n ],\n registry.start_depreciation_date,\n );\n }}\n />\n )\n }\n />\n <Card.Meta\n title={t(\"activerecord.attributes.fixed_asset.book_value\")}\n description={formatCurrency(assetRegistry.book_value || 0)}\n />\n </div>\n </Col>\n <Col sm={8} xs={24}>\n <Card.Meta\n title={\n <Tooltip\n title={t(\n \"fixed_asset_additions.layout.accumulated_depreciation\",\n )}\n >\n {t(\"fixed_asset_additions.layout.accumulated_depreciation\")}\n </Tooltip>\n }\n description={formatCurrency(\n assetRegistry.accumulated_depreciation || 0,\n )}\n />\n <Card.Meta\n title={\n <Tooltip\n title={t(\n \"fixed_asset_additions.layout.unbooked_depreciation\",\n )}\n >\n {t(\"fixed_asset_additions.layout.unbooked_depreciation\")}\n </Tooltip>\n }\n description={formatCurrency(assetRegistry.unbooked_amount || 0)}\n />\n </Col>\n </Row>\n </Card>\n </Col>\n </Row>\n );\n};\n","import { FormRule, Table } from \"antd\";\nimport EditableTable from \"components/EditableTable\";\nimport i18next from \"i18next\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { AssetRegistry } from \"types/AssetRegistry\";\n\nexport const CalculationDepreciationEntry = ({\n registeries,\n isEditable = false,\n}: {\n registeries: AssetRegistry[];\n isEditable?: boolean;\n}) => {\n const { t } = useTranslation();\n const columns = [\n {\n key: \"fixed_asset_name\",\n dataIndex: \"fixed_asset_name\",\n title: t(\"activerecord.attributes.fixed_asset.asset_name\"),\n },\n {\n key: \"sku\",\n dataIndex: \"sku\",\n title: t(\"activerecord.attributes.fixed_asset.registered_asset_ref\"),\n },\n {\n key: \"description\",\n dataIndex: \"description\",\n title: t(\"activerecord.attributes.depreciation.desc\"),\n editable: true,\n formName: (record: AssetRegistry) => [\n \"depreciation\",\n `${record.id}`,\n \"description\",\n ],\n },\n {\n key: \"amount\",\n dataIndex: \"amount\",\n title: t(\"activerecord.attributes.depreciation.amount\"),\n editable: true,\n rules: (record: AssetRegistry) => {\n return [\n { required: true },\n {\n validator(_rule: FormRule, value: number) {\n if (Number(record.book_value) < Number(value))\n return Promise.reject(\n new Error(\n t(\n \"activerecord.assets.depreciation.less_than_salvage_value\",\n ),\n ),\n );\n\n return Promise.resolve();\n },\n },\n ];\n },\n formName: (record: AssetRegistry) => [\n \"depreciation\",\n `${record.id}`,\n \"amount\",\n ],\n },\n ];\n\n const dataSource = registeries.map((registery, index) => ({\n key: index,\n id: registery.id,\n book_value: registery.book_value,\n fixed_asset_name:\n i18next.language === \"en\"\n ? registery.fixed_asset?.en_name\n : registery.fixed_asset?.name,\n sku: registery.sku,\n description: registery.description,\n amount: registery.unbooked_amount,\n }));\n\n if (isEditable)\n return (\n <EditableTable\n dataSource={dataSource}\n columns={columns}\n keepEditable\n pagination={false}\n />\n );\n\n return <Table dataSource={dataSource} columns={columns} pagination={false} />;\n};\n","import { Skeleton, Table } from \"antd\";\nimport { getDepreciation } from \"api/Depreciation\";\nimport ServerError from \"components/Errors/ServerError\";\nimport { depreciationKeys } from \"tokens/query-keys\";\nimport { useTranslation } from \"react-i18next\";\nimport { useQuery } from \"react-query\";\nimport { ValueAdjustment } from \"types/ValueAdjustment\";\n\nconst ShowDepreciation = ({ depreciationID }: { depreciationID: number }) => {\n const { t } = useTranslation();\n const { data, isLoading, isError } = useQuery({\n queryKey: depreciationKeys.detail?.(depreciationID),\n queryFn: () => getDepreciation(depreciationID),\n });\n\n const columns = [\n {\n key: \"fixed_asset_name\",\n dataIndex: \"fixed_asset_name\",\n title: t(\"activerecord.attributes.fixed_asset.asset_name\"),\n },\n {\n key: \"sku\",\n dataIndex: \"sku\",\n title: t(\"activerecord.attributes.fixed_asset.registered_asset_ref\"),\n },\n {\n key: \"description\",\n dataIndex: \"description\",\n title: t(\"activerecord.attributes.depreciation.desc\"),\n },\n {\n key: \"amount\",\n dataIndex: \"amount\",\n title: t(\"activerecord.attributes.depreciation.amount\"),\n },\n ];\n\n const dataSource = data?.value_adjustments.map(\n (value_adjustment: ValueAdjustment) => {\n const registry = value_adjustment.asset_registry;\n\n return {\n key: value_adjustment.id,\n fixed_asset_name: registry?.fixed_asset?.locale_name,\n sku: registry?.serial_number || registry?.sku,\n description: value_adjustment.description,\n amount:\n Math.round((Number(value_adjustment.amount) + Number.EPSILON) * 100) /\n 100,\n };\n },\n );\n\n if (isLoading) {\n return <Skeleton />;\n }\n\n if (isError) {\n return <ServerError />;\n }\n\n return <Table dataSource={dataSource} columns={columns} pagination={false} />;\n};\n\nexport { ShowDepreciation };\n","import axios from \"axios\";\nimport { Depreciation } from \"types/Depreciation\";\n\nexport const getDepreciation = async (\n depreciationID: number,\n): Promise<Depreciation> => {\n const { data } = await axios.get<Depreciation>(\n `/tenant/depreciations/${depreciationID}.json`,\n );\n return data;\n};\n","import { useContext, useEffect, useState } from \"react\";\nimport {\n Button,\n Card,\n Col,\n Divider,\n Form,\n Grid,\n Input,\n Modal,\n Row,\n Tabs,\n} from \"antd\";\nimport { useTranslation } from \"react-i18next\";\nimport i18next from \"i18next\";\nimport { AssetRegistries } from \"types/AssetRegistry\";\nimport { CalculationDepreciationEntry } from \"./CalculationDepreciationEntry\";\nimport DisabledContext from \"antd/lib/config-provider/DisabledContext\";\nimport { ShowDepreciation } from \"./ShowDepreciation\";\n\nexport const CalculateDeprecation = ({\n registries,\n depreciationID,\n}: {\n registries: AssetRegistries;\n depreciationID?: number;\n}) => {\n const { t } = useTranslation();\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [isCalculated, setIsCalculated] = useState(false);\n const [activeTab, setActiveTab] = useState(\"depreciation-entries\");\n const form = Form.useFormInstance();\n const componentDisabled = useContext(DisabledContext);\n\n useEffect(() => {\n if (form.getFieldValue(\"depreciation_calculated\") === \"recalculate\") {\n setIsCalculated(false);\n }\n }, [form.getFieldValue(\"depreciation_calculated\")]);\n\n const calculateDepreciation = () => {\n setIsModalOpen(true);\n };\n\n const handleCancel = () => {\n setIsModalOpen(false);\n };\n\n const handleOk = () => {\n form\n .validateFields([\"depreciation\"], { recursive: true })\n .then(() => {\n setIsModalOpen(false);\n setIsCalculated(true);\n form.setFieldValue(\"depreciation_calculated\", \"calculated\");\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const depreciated = (\n <Card className=\"bg-gray-light\" style={{ width: \"70%\", float: \"right\" }}>\n <span>{t(\"fixed_asset_additions.layout.depreciation_calculated\")}</span>\n </Card>\n );\n\n const onTabChange = (active: string) => {\n setActiveTab(active);\n };\n\n const depreciatedRegisteries = registries.filter(\n (register) =>\n Number(register.unbooked_amount) !== 0 &&\n (register.fixed_asset?.depreciated ?? true),\n );\n const screens = Grid.useBreakpoint();\n if (componentDisabled && depreciationID) {\n return (\n <>\n <Row>\n <Col\n span={24}\n style={{\n color: \"#25233a\",\n fontWeight: 700,\n }}\n >\n <Divider\n className=\"form-divider\"\n orientation=\"left\"\n orientationMargin=\"0\"\n >\n {t(\"fixed_asset_additions.layout.depreciation\")}\n </Divider>\n </Col>\n </Row>\n <Row gutter={[0, 8]}>\n <Col\n sm={18}\n xs={24}\n offset={screens.xs ? 0 : 4}\n style={{ marginTop: 20 }}\n >\n <ShowDepreciation depreciationID={depreciationID} />\n </Col>\n </Row>\n </>\n );\n }\n\n const isDepreciated = depreciatedRegisteries.length === 0 || isCalculated;\n\n return (\n <>\n <Row>\n <Col\n span={24}\n style={{\n color: \"#25233a\",\n fontWeight: 700,\n }}\n >\n <Divider\n className=\"form-divider\"\n orientation=\"left\"\n orientationMargin=\"0\"\n >\n {t(\"fixed_asset_additions.layout.depreciation\")}\n </Divider>\n </Col>\n </Row>\n <Row gutter={[0, 8]}>\n <Col span={14}>\n <Card\n hidden={isDepreciated}\n className=\"bg-gray-light\"\n style={{ width: \"70%\", float: \"right\" }}\n >\n <Form.Item\n hidden\n name=\"depreciation_calculated\"\n initialValue={isDepreciated && \"calculated\"}\n rules={[\n {\n validator: (_rule, value) => {\n if (value === \"calculated\" || isDepreciated)\n return Promise.resolve();\n\n return Promise.reject(\n new Error(\"Depreciation should be calculated\"),\n );\n },\n },\n ]}\n >\n <Input type=\"hidden\" />\n </Form.Item>\n <span>{t(\"fixed_asset_additions.layout.depreciation_text\")}</span>\n\n <Button\n type=\"primary\"\n onClick={calculateDepreciation}\n style={{\n float: i18next.language === \"en\" ? \"right\" : \"left\",\n }}\n >\n {t(\"forms.buttons.calculate\")}\n </Button>\n <Modal\n open={isModalOpen}\n onOk={handleOk}\n onCancel={handleCancel}\n width=\"50%\"\n >\n <Tabs\n defaultActiveKey=\"1\"\n type=\"card\"\n size=\"middle\"\n onChange={onTabChange}\n activeKey={activeTab}\n items={[\n {\n label: t(\n \"activerecord.assets.classification.depreciation_type.posting_depreciation\",\n ),\n key: \"depreciation-entries\",\n children: activeTab === \"depreciation-entries\" && (\n <CalculationDepreciationEntry\n registeries={depreciatedRegisteries}\n />\n ),\n },\n {\n label: t(\n \"activerecord.assets.classification.depreciation_type.manual_depreciation\",\n ),\n key: \"manual-depreciation\",\n children: activeTab === \"manual-depreciation\" && (\n <CalculationDepreciationEntry\n registeries={depreciatedRegisteries}\n isEditable\n />\n ),\n },\n ]}\n />\n </Modal>\n </Card>\n {isDepreciated && depreciated}\n </Col>\n </Row>\n </>\n );\n};\n","import axios from \"axios\";\n\nimport { Contacts } from \"types/Contact\";\nimport { QueryParameters } from \"types/QueryParameters\";\n\nexport const getVendors = async ({\n search = \"\",\n page = 1,\n pageSize = 20,\n sorter = \"created_at desc\",\n filters = {},\n}: QueryParameters): Promise<Contacts> => {\n const { data } = await axios.get<{ contacts: Contacts }>(\n \"/tenant/contacts/vendor_index.json\",\n {\n params: {\n \"q[name_cont]\": search,\n \"q[s]\": sorter || \"name asc\",\n page,\n per_page: pageSize || 20,\n ...filters,\n },\n },\n );\n return data.contacts;\n};\n","import axios from \"axios\";\n\nimport { PaymentTerms, PaymentTermPagination } from \"types/PaymentTerm\";\nimport { QueryParameters } from \"types/QueryParameters\";\n\nexport const getPaymentTerms = async ({\n search = \"\",\n page = 1,\n pageSize = 20,\n sorter = \"created_at desc\",\n filters = {},\n}: QueryParameters): Promise<PaymentTerms> => {\n const { data } = await axios.get<PaymentTermPagination>(\n \"/tenant/tenant_payment_terms.json\",\n {\n params: {\n \"q[name_cont]\": search,\n \"q[s]\": sorter || \"name asc\",\n page,\n per_page: pageSize || 20,\n ...filters,\n },\n },\n );\n return data.payment_terms;\n};\n","import axios from \"axios\";\nimport { Inventories } from \"types/Inventory\";\nimport { QueryParameters } from \"types/QueryParameters\";\n\nexport const getInventories = async ({\n search = \"\",\n page = 1,\n pageSize = 20,\n sorter = \"created_at desc\",\n filters = {},\n}: QueryParameters): Promise<Inventories> => {\n const { data } = await axios.get<{\n inventories: Inventories;\n total_pages: number;\n }>(\"/tenant/inventories.json\", {\n params: {\n \"q[name_or_ar_name_cont]\": search,\n \"q[s]\": sorter || \"name asc\",\n page,\n per_page: pageSize || 20,\n ...filters,\n },\n });\n return data.inventories;\n};\n","import {\n Col,\n ConfigProvider,\n DatePicker,\n Form,\n Input,\n Row,\n Skeleton,\n Typography,\n} from \"antd\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport dayjs, { type Dayjs } from \"dayjs\";\n\nimport { getVendors } from \"api/Contact\";\nimport { SelectWithSearch } from \"components/form/SelectWithSearch\";\nimport { Contact } from \"types/Contact\";\nimport { getPaymentTerms } from \"api/PaymentTerm\";\nimport { PaymentTerm } from \"types/PaymentTerm\";\nimport { getInventories } from \"api/Inventory\";\nimport { Inventory } from \"types/Inventory\";\nimport i18next from \"i18next\";\nimport LineItem from \"./LineItems\";\nimport TotalEntry from \"./TotalEntry\";\nimport { Bill } from \"types/CommercialDocument\";\nimport {\n contactVendorKeys,\n inventoryKeys,\n tenantPaymentTermsKeys,\n} from \"tokens/query-keys\";\nimport { useAddition } from \"../../hooks\";\nimport { useQuery } from \"react-query\";\nimport { initializeBill } from \"api/Bill\";\nimport { DefaultOptionType } from \"antd/es/select\";\n\ntype NullableDayjs = Dayjs | undefined;\n\nconst BillDetails = ({ record }: { record?: Bill }) => {\n const { t } = useTranslation();\n const additionInstance = useAddition();\n const form = additionInstance.form;\n const billItems = React.useMemo(() => {\n return (\n (record?.bill_items && record.bill_items) ||\n (record?.bill_items_attributes &&\n Object.values(record.bill_items_attributes))\n );\n }, [record]);\n const billDate = additionInstance.additionDateWatch || dayjs();\n\n const dateValidator = (value: NullableDayjs, condition: boolean) => {\n if (!value) {\n return Promise.reject(\n new Error(t(\"forms.messages.journal.date_format_validation\")),\n );\n }\n\n if (condition)\n return Promise.reject(\n new Error(t(\"forms.messages.journal.date_format_validation\")),\n );\n else return Promise.resolve();\n };\n\n React.useEffect(() => {\n const issueDate = form.getFieldValue([\n \"bill\",\n \"issue_date\",\n ]) as NullableDayjs;\n if (issueDate?.isAfter(billDate)) {\n form.setFieldsValue({\n bill: {\n issue_date: billDate,\n due_date: billDate,\n supply_date: billDate,\n },\n });\n }\n }, [billDate]);\n\n const { data, isLoading } = useQuery({\n queryKey: [\"bills\", \"initialize\"],\n queryFn: initializeBill,\n cacheTime: 0,\n });\n\n const { componentDisabled } = ConfigProvider.useConfig();\n\n if (isLoading) return <Skeleton />;\n\n let vendorFilters = {};\n if (componentDisabled) {\n vendorFilters = {\n id_eq: record?.contact_id,\n };\n }\n\n if (!data) return <Skeleton />;\n\n return (\n <>\n <Row key=\"bill-details\">\n <Col md={12} xs={24}>\n <Form.Item\n name={[\"bill\", \"reference\"]}\n label={t(\"activerecord.external_documents.bill.reference\")}\n initialValue={record?.reference || data?.reference}\n extra={\n !(record?.id && record?.reference) &&\n data.numbering == \"locked\" && (\n <span>\n <Typography.Text>\n {t(\"activerecord.external_documents.bill.auto_no_text\")}\n </Typography.Text>\n </span>\n )\n }\n rules={[\n {\n required: true,\n },\n ]}\n >\n <Input\n disabled={data?.numbering == \"locked\" || componentDisabled}\n />\n </Form.Item>\n <Form.Item\n name={[\"bill\", \"contact_id\"]}\n label={t(\"activerecord.external_documents.bill.customer\")}\n initialValue={Number(record?.contact_id) || null}\n rules={[\n {\n required: true,\n },\n ]}\n >\n <SelectWithSearch\n queryKeyObject={contactVendorKeys}\n queryFn={getVendors}\n filters={vendorFilters}\n dataLabelFn={(contact: Contact) => contact.name}\n />\n </Form.Item>\n <Form.Item\n name={[\"bill\", \"issue_date\"]}\n label={t(\"activerecord.external_documents.bill.issue_date\")}\n initialValue={\n (record?.issue_date && dayjs(record.issue_date)) || billDate\n }\n rules={[\n {\n required: true,\n },\n {\n validator: (_, value: Dayjs) => {\n return dateValidator(\n value,\n billDate && value.isAfter(billDate),\n );\n },\n },\n ]}\n >\n <DatePicker\n style={{ width: \"100%\" }}\n disabledDate={(current) => {\n const date = additionInstance.additionDateWatch || dayjs();\n\n return current && current > date;\n }}\n />\n </Form.Item>\n <Form.Item\n name={[\"bill\", \"payment_term_id\"]}\n label={t(\"activerecord.attributes.invoice.payment_terms\")}\n >\n <SelectWithSearch\n queryKeyObject={tenantPaymentTermsKeys}\n queryFn={getPaymentTerms}\n onChange={(_value: number, option: DefaultOptionType) => {\n const numberOfDays = (option?.days_after as number) || 0;\n const currentIssueDate = dayjs(\n form.getFieldValue([\"bill\", \"issue_date\"]) as NullableDayjs,\n );\n\n form.setFieldValue(\n [\"bill\", \"due_date\"],\n currentIssueDate.add(numberOfDays, \"days\"),\n );\n }}\n dataLabelFn={(term: PaymentTerm) => term.payment_term}\n />\n </Form.Item>\n <Form.Item\n name={[\"bill\", \"inventory_id\"]}\n label={t(\"forms.placeholders.select_inventory\")}\n initialValue={Number(record?.inventory_id) || null}\n rules={[\n {\n required: true,\n },\n ]}\n >\n <SelectWithSearch\n initialOpts={record?.inventory ? [record?.inventory] : []}\n queryKeyObject={inventoryKeys}\n queryFn={getInventories}\n dataLabelFn={(inventory: Inventory) =>\n i18next.language === \"en\" ? inventory.name : inventory.ar_name\n }\n selectFirstOption\n />\n </Form.Item>\n </Col>\n <Col md={12} xs={24} key=\"bill-details-1\">\n <Form.Item\n name={[\"bill\", \"description\"]}\n label={t(\"activerecord.external_documents.bill.description\")}\n initialValue={record?.description}\n >\n <Input />\n </Form.Item>\n <Form.Item\n name={[\"bill\", \"due_date\"]}\n label={t(\"activerecord.external_documents.bill.due_date\")}\n initialValue={\n (record?.due_date && dayjs(record.due_date)) || billDate\n }\n rules={[\n {\n required: true,\n },\n {\n validator: (_, value: Dayjs) => {\n const issueDate = form.getFieldValue([\n \"bill\",\n \"issue_date\",\n ]) as NullableDayjs;\n\n return dateValidator(\n value,\n (issueDate && value.isBefore(issueDate)) || false,\n );\n },\n },\n ]}\n >\n <DatePicker\n style={{ width: \"100%\" }}\n disabledDate={(current) => {\n const endDay =\n (form.getFieldValue([\n \"bill\",\n \"issue_date\",\n ]) as NullableDayjs) || dayjs().endOf(\"day\");\n return current && current < endDay;\n }}\n />\n </Form.Item>\n <Form.Item\n name={[\"bill\", \"supply_date\"]}\n label={t(\"activerecord.external_documents.bill.supply_date\")}\n initialValue={\n (record?.supply_date && dayjs(record.supply_date)) || billDate\n }\n rules={[\n {\n required: true,\n },\n {\n validator: (_, value: Dayjs) => {\n const issueDate = form.getFieldValue([\n \"bill\",\n \"issue_date\",\n ]) as NullableDayjs;\n\n return dateValidator(\n value,\n (issueDate && value.isBefore(issueDate)) || false,\n );\n },\n },\n ]}\n >\n <DatePicker\n style={{ width: \"100%\" }}\n disabledDate={(current) => {\n const endDay =\n (form.getFieldValue([\n \"bill\",\n \"issue_date\",\n ]) as NullableDayjs) || dayjs().endOf(\"day\");\n return current && current < endDay;\n }}\n />\n </Form.Item>\n </Col>\n </Row>\n <LineItem records={billItems} />\n <TotalEntry />\n </>\n );\n};\n\nexport default BillDetails;\n","import axios from \"axios\";\nimport { QueryParameters } from \"types/QueryParameters\";\nimport { Taxes } from \"types/Taxes\";\n\nexport const getTaxes = async ({\n search = \"\",\n page = 1,\n pageSize = 20,\n sorter = \"created_at desc\",\n filters = {},\n}: QueryParameters): Promise<Taxes> => {\n const { data } = await axios.get<{ taxes: Taxes }>(\"/tenant/taxes.json\", {\n params: {\n \"q[arabic_name_or_english_name_cont]\": search,\n \"q[s]\": sorter || \"created_at desc\",\n page,\n per_page: pageSize || 20,\n ...filters,\n },\n });\n return data.taxes;\n};\n","import axios from \"axios\";\nimport { Products } from \"types/Product\";\nimport { QueryParameters } from \"types/QueryParameters\";\n\nexport const getProducts = async ({\n search = \"\",\n page = 1,\n pageSize = 20,\n sorter = \"created_at desc\",\n filters = {},\n}: QueryParameters): Promise<Products> => {\n const { data } = await axios.get<{ products: Products }>(\n \"/tenant/products.json\",\n {\n params: {\n \"q[name_or_en_name_cont]\": search,\n \"q[s]\": sorter || \"created_at desc\",\n page,\n per_page: pageSize || 20,\n ...filters,\n },\n },\n );\n return data.products;\n};\n","import React, { useState } from \"react\";\nimport {\n Button,\n Checkbox,\n Form,\n FormRule,\n Input,\n InputNumber,\n Popconfirm,\n Select,\n Table,\n Tooltip,\n} from \"antd\";\nimport { useTranslation } from \"react-i18next\";\nimport { SelectWithSearch } from \"components/form/SelectWithSearch\";\nimport { FixedAsset } from \"types/FixedAsset\";\nimport { getTaxes } from \"api/Tax\";\nimport { Tax } from \"types/Taxes\";\nimport { useMutation } from \"react-query\";\nimport { calculateLineTotal } from \"api/Bill\";\nimport i18next from \"i18next\";\nimport { LineItem } from \"types/CommercialDocument\";\nimport { productKeys, taxesKeys } from \"tokens/query-keys\";\nimport { getProducts } from \"api/Product\";\nimport { DeleteOutlined } from \"@ant-design/icons\";\nimport UserContext from \"contexts/UserContext\";\nimport { DefaultOptionType } from \"antd/es/select\";\n\ninterface CalculateLineItemResponse {\n amount_after_discount: number;\n tax_value: number;\n tax_percentage: number;\n line_total: number;\n meta?: Record<string, unknown>;\n}\n\ninterface FormChange {\n product_id: number;\n unit_price: number;\n tax_id: number;\n discount_type: string;\n discount_percentage?: number;\n is_inclusive?: boolean;\n quantity: number;\n indexKey: number;\n}\n\ninterface LineItemData extends LineItem {\n key?: number;\n}\n\ninterface CalculateLineTotalParams {\n quantity: number;\n unit_price: number;\n discount_value: number;\n discount_type: string;\n tax: number | string;\n is_inclusive: string;\n meta?: unknown;\n}\n\nconst InternalLineItem = ({ records }: { records?: LineItem[] }) => {\n const { t } = useTranslation();\n const form = Form.useFormInstance();\n\n const initialDataSource = React.useMemo(() => {\n if (records && records.length > 0) {\n return records?.map((record: LineItem, index) => {\n return {\n ...record,\n key: index,\n quantity: 1,\n } as LineItemData;\n });\n }\n return [{ key: 0 }] as LineItemData[];\n }, [records]);\n\n const [lineItems, setLineItems] = useState<LineItemData[]>(initialDataSource);\n const [count, setCount] = useState(lineItems.length);\n\n const getLineItemFieldValue = <T,>(field: string, index: number): T =>\n form.getFieldValue([\"bill\", \"bill_items_attributes\", index, field]) as T;\n\n const handleAdd = () => {\n const newData = {\n key: count,\n } as LineItemData;\n const newItems = [...lineItems, newData];\n setLineItems(newItems);\n form.resetFields([[\"bill\", \"bill_items_attributes\", newItems.length - 1]]);\n form.resetFields([[\"discount\", newItems.length - 1]]);\n setCount((count) => count + 1);\n };\n\n const handleDelete = (key: number) => {\n const record = lineItems[key];\n const newData = lineItems.filter((item) => item.key !== record.key);\n setLineItems(newData);\n form.resetFields([[\"bill\", \"bill_items_attributes\", key]]);\n form.resetFields([[\"discount\", key]]);\n };\n\n const updateLineItem = (data: CalculateLineItemResponse, index: number) => {\n const lineItem = lineItems[index];\n if (!lineItem) return;\n\n const newLineItem: LineItem = {\n ...lineItem,\n product_id: getLineItemFieldValue<number>(\"product_id\", index),\n product_description: getLineItemFieldValue<string>(\n \"product_description\",\n index,\n ),\n quantity: getLineItemFieldValue(\"quantity\", index) || 1,\n unit_price: getLineItemFieldValue(\"unit_price\", index),\n is_inclusive: getLineItemFieldValue(\"is_inclusive\", index),\n discount_percentage: getLineItemFieldValue(\"discount_percentage\", index),\n discount_type: getLineItemFieldValue(\"discount_type\", index),\n total_before_vat:\n data.amount_after_discount ||\n getLineItemFieldValue(\"total_before_vat\", index),\n tax_id:\n getLineItemFieldValue(\"tax_id\", index) ||\n getLineItemFieldValue(\"tax_id\", index),\n vat_value: data.tax_value || getLineItemFieldValue(\"vat_value\", index),\n amount: data.line_total || getLineItemFieldValue(\"amount\", index),\n } as LineItemData;\n const newItems = [...lineItems];\n newItems.splice(index, 1, newLineItem);\n setLineItems(newItems);\n };\n\n const calculateLineTotalMutation = useMutation<\n CalculateLineItemResponse,\n unknown,\n CalculateLineTotalParams\n >({\n mutationFn: calculateLineTotal,\n onSuccess: (data: CalculateLineItemResponse) => {\n const index = Number(data.meta?.index);\n if (data.line_total < 0) {\n updateLineItem({} as CalculateLineItemResponse, index);\n return;\n }\n\n form.setFieldValue(\n [\"bill\", \"bill_items_attributes\", index, \"total_before_vat\"],\n data.amount_after_discount,\n );\n form.setFieldValue(\n [\"bill\", \"bill_items_attributes\", index, \"vat_value\"],\n data.tax_value,\n );\n form.setFieldValue(\n [\"bill\", \"bill_items_attributes\", index, \"amount\"],\n data.line_total,\n );\n\n updateLineItem(data, index);\n },\n });\n\n const handleChange = (values: FormChange[]) => {\n if (!values) return;\n\n values.forEach((value) => {\n calculateLineTotalMutation.mutate({\n quantity: value.quantity || 1,\n unit_price: Number(value.unit_price),\n discount_value: value.discount_percentage || 0,\n discount_type: value.discount_type || \"percentage\",\n tax: value.tax_id,\n is_inclusive: value.is_inclusive ? \"true\" : \"false\",\n meta: { index: value.indexKey },\n });\n });\n };\n\n const handleProductChange =\n (index: number) => (val: string, record: DefaultOptionType) => {\n form.setFieldValue(\n [\"bill\", \"bill_items_attributes\", index, \"product_description\"],\n record.description,\n );\n form.setFieldValue(\n [\"bill\", \"bill_items_attributes\", index, \"unit_price\"],\n record.buying_price || record.selling_price,\n );\n form.setFieldValue(\n [\"bill\", \"bill_items_attributes\", index, \"tax_id\"],\n record.tax_id,\n );\n form.setFieldValue(\n [\"bill\", \"bill_items_attributes\", index, \"discount_type\"],\n \"percentage\",\n );\n form.setFieldValue(\n [\"bill\", \"bill_items_attributes\", index, \"quantity\"],\n 1,\n );\n handleChange([\n {\n product_id: Number(val),\n unit_price: record.buying_price as number,\n tax_id: record.tax_id as number,\n discount_type: \"percentage\",\n quantity: 1,\n indexKey: index,\n },\n ]);\n };\n\n const formChange = Form.useWatch<FormChange[]>(\n [\"bill\", \"bill_items_attributes\"],\n form,\n );\n React.useEffect(() => {\n handleChange(formChange);\n }, [form, formChange]);\n\n const currentUser = React.useContext(UserContext);\n const maxDiscount =\n currentUser?.userType === \"Merchant\" ? 100 : currentUser?.discount || 0;\n\n const columns = React.useMemo(() => {\n const items = [\n {\n key: \"product_id\",\n dataIndex: \"product_id\",\n title: t(\"activerecord.attributes.credit_note.products\"),\n width: \"20%\",\n render: (product_id: number, record: LineItem, index: number) => (\n <>\n <Form.Item\n hidden\n name={[\"bill\", \"bill_items_attributes\", index, \"indexKey\"]}\n initialValue={index}\n >\n <Input type=\"hidden\" value={index} />\n </Form.Item>\n <Form.Item\n name={[\"bill\", \"bill_items_attributes\", index, \"product_id\"]}\n initialValue={Number(product_id) || null}\n wrapperCol={{ span: 24 }}\n rules={[{ required: true }]}\n >\n <SelectWithSearch\n initialOpts={product_id ? [record?.product] : []}\n onChange={handleProductChange(index)}\n queryFn={getProducts}\n queryKeyObject={productKeys}\n filters={{\n \"q[track_quantity_true]\": false,\n \"q[purchase_item_true]\": true,\n }}\n dataLabelFn={(product: FixedAsset) =>\n i18next.language === \"en\"\n ? product.en_name || product.name\n : product.name || product.en_name\n }\n />\n </Form.Item>\n </>\n ),\n },\n {\n key: \"product_description\",\n dataIndex: \"product_description\",\n title: t(\"activerecord.attributes.credit_note.product_description\"),\n width: \"15%\",\n render: (text: string, _record: LineItem, index: number) => (\n <Form.Item\n name={[\n \"bill\",\n \"bill_items_attributes\",\n index,\n \"product_description\",\n ]}\n initialValue={text}\n wrapperCol={{ span: 24 }}\n >\n <Input />\n </Form.Item>\n ),\n },\n {\n key: \"quantity\",\n dataIndex: \"quantity\",\n title: t(\"activerecord.attributes.credit_note.qty\"),\n render: (text: number, _record: LineItem, index: number) => (\n <Form.Item\n initialValue={text}\n wrapperCol={{ span: 24 }}\n name={[\"bill\", \"bill_items_attributes\", index, \"quantity\"]}\n rules={[\n { required: true },\n {\n validator: (_rule: FormRule, value: number) => {\n if (value < 1)\n return Promise.reject(\n new Error(\n t(\n \"activerecord.errors.models.internal_line_item.attributes.value.value_greater_than\",\n ),\n ),\n );\n\n return Promise.resolve();\n },\n },\n ]}\n >\n <InputNumber />\n </Form.Item>\n ),\n },\n {\n key: \"unit_price\",\n dataIndex: \"unit_price\",\n title: t(\"activerecord.attributes.credit_note.unit_price\"),\n render: (text: string, _record: LineItem, index: number) => (\n <Form.Item\n name={[\"bill\", \"bill_items_attributes\", index, \"unit_price\"]}\n initialValue={text}\n rules={[{ required: true }]}\n >\n <InputNumber min={0.0} />\n </Form.Item>\n ),\n },\n {\n key: \"is_inclusive\",\n dataIndex: \"is_inclusive\",\n title: t(\"shorts.is_inclusive\"),\n render: (val: boolean, _record: LineItem, index: number) => (\n <Form.Item\n valuePropName=\"checked\"\n name={[\"bill\", \"bill_items_attributes\", index, \"is_inclusive\"]}\n initialValue={val}\n wrapperCol={{ span: 24 }}\n >\n <Checkbox />\n </Form.Item>\n ),\n },\n {\n key: \"discount_percentage\",\n dataIndex: \"discount_percentage\",\n title: t(\"activerecord.attributes.credit_note.discount\"),\n className: \"addon-select\",\n width: \"30%\",\n render: (text: number, record: LineItem, index: number) => (\n <React.Fragment>\n <Form.Item\n wrapperCol={{ span: 24 }}\n name={[\"discount\", index]}\n initialValue={text}\n className=\"addon-select\"\n rules={[\n {\n validator: (_rule: FormRule, value: number) => {\n if (!value) return Promise.resolve();\n\n const discountType = form.getFieldValue([\n \"bill\",\n \"bill_items_attributes\",\n index,\n \"discount_type\",\n ]) as string;\n\n const errorMsg = t(\n \"frontend.validations.discount_per_error\",\n ).replace(\"%{max}\", `${maxDiscount}`);\n\n if (discountType === \"percentage\" && value > maxDiscount) {\n return Promise.reject(new Error(errorMsg));\n }\n\n const unitPrice =\n (form.getFieldValue([\n \"bill\",\n \"bill_items_attributes\",\n index,\n \"unit_price\",\n ]) as number) || 0;\n const quantity =\n (form.getFieldValue([\n \"bill\",\n \"bill_items_attributes\",\n index,\n \"quantity\",\n ]) as number) || 1;\n const total = Number(unitPrice) * Number(quantity);\n const discountInPercentage = (value * 100.0) / total;\n if (\n discountType === \"value\" &&\n discountInPercentage > maxDiscount\n ) {\n return Promise.reject(\n new Error(t(\"frontend.validations.discount_amount\")),\n );\n }\n\n return Promise.resolve();\n },\n },\n ]}\n >\n <InputNumber\n min={0.0}\n onChange={(val: number | null) =>\n form.setFieldValue(\n [\n \"bill\",\n \"bill_items_attributes\",\n index,\n \"discount_percentage\",\n ],\n val,\n )\n }\n addonAfter={\n <Select\n style={{ width: \"100%\" }}\n onChange={(val: string) =>\n form.setFieldValue(\n [\n \"bill\",\n \"bill_items_attributes\",\n index,\n \"discount_type\",\n ],\n val,\n )\n }\n defaultValue={\n lineItems[index]?.discount_type || \"percentage\"\n }\n options={[\n { value: \"percentage\", label: \"%\" },\n {\n value: \"value\",\n label: t(\"activerecord.attributes.subscription.sar\"),\n },\n ]}\n />\n }\n />\n </Form.Item>\n <Form.Item\n hidden\n name={[\n \"bill\",\n \"bill_items_attributes\",\n index,\n \"discount_percentage\",\n ]}\n initialValue={text}\n >\n <Input type=\"hidden\" />\n </Form.Item>\n <Form.Item\n hidden\n name={[\"bill\", \"bill_items_attributes\", index, \"discount_type\"]}\n initialValue={record?.discount_type}\n >\n <Input type=\"hidden\" />\n </Form.Item>\n </React.Fragment>\n ),\n },\n {\n key: \"total_before_vat\",\n dataIndex: \"total_before_vat\",\n title: t(\"activerecord.attributes.credit_note.total_before_vat\"),\n render: (text: string, _record: LineItem, index: number) => (\n <Form.Item\n name={[\"bill\", \"bill_items_attributes\", index, \"total_before_vat\"]}\n initialValue={text}\n >\n <InputNumber min={0.0} disabled />\n </Form.Item>\n ),\n },\n {\n key: \"tax_id\",\n dataIndex: \"tax_id\",\n title: t(\"activerecord.attributes.credit_note.vat_percentage\"),\n width: \"20%\",\n render: (text: string, _record: LineItem, index: number) => (\n <Form.Item\n wrapperCol={{ span: 24 }}\n name={[\"bill\", \"bill_items_attributes\", index, \"tax_id\"]}\n initialValue={Number(text) || null}\n rules={[{ required: true }]}\n >\n <SelectWithSearch\n queryFn={getTaxes}\n queryKeyObject={taxesKeys}\n dataLabelFn={(tax: Tax) => tax.code_name || \"\"}\n />\n </Form.Item>\n ),\n },\n {\n key: \"vat_value\",\n dataIndex: \"vat_value\",\n title: t(\"activerecord.attributes.credit_note.vat_value\"),\n render: (text: string, _record: LineItem, index: number) => (\n <Form.Item\n name={[\"bill\", \"bill_items_attributes\", index, \"vat_value\"]}\n initialValue={text}\n >\n <InputNumber min={0.0} disabled />\n </Form.Item>\n ),\n },\n {\n key: \"amount\",\n dataIndex: \"amount\",\n title: t(\"activerecord.attributes.credit_note.amount\"),\n render: (text: string, _record: LineItem, index: number) => (\n <Form.Item\n name={[\"bill\", \"bill_items_attributes\", index, \"amount\"]}\n initialValue={text}\n >\n <InputNumber min={0.0} disabled />\n </Form.Item>\n ),\n },\n ];\n\n if (lineItems.length > 1) {\n items.push({\n key: \"actions\",\n dataIndex: \"actions\",\n title: t(\"activerecord.attributes.fixed_asset.action\"),\n render: (_text: string, _record: LineItem, index: number) => (\n <Popconfirm\n title={t(\"templates.sure_modal\")}\n onConfirm={() => handleDelete(index)}\n >\n <Tooltip placement=\"bottom\" title={t(\"tooltip.delete\")}>\n <Button\n icon={<DeleteOutlined />}\n danger\n style={{ marginBottom: 24 }}\n />\n </Tooltip>\n </Popconfirm>\n ),\n });\n }\n\n return items;\n }, [lineItems]);\n\n return (\n <Table\n key=\"line-item-table\"\n size=\"small\"\n dataSource={lineItems}\n columns={columns}\n style={{ width: \"100%\" }}\n pagination={false}\n className=\"modal-form\"\n scroll={{ x: true }}\n footer={() => (\n <Button type=\"primary\" onClick={handleAdd}>\n {t(\"forms.buttons.add_more\")}\n </Button>\n )}\n />\n );\n};\n\nexport default InternalLineItem;\n","import { Col, Divider, Form, Grid, Row } from \"antd\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { formatCurrency } from \"helpers/format-currency\";\nimport { type Bill, LineItem } from \"types/CommercialDocument\";\n\nconst TotalEntry = () => {\n const { t } = useTranslation();\n const form = Form.useFormInstance();\n const [totalVals, setTotalVals] = React.useState({\n totalBeforeVat: 0.0,\n vatValue: 0.0,\n totalAmount: 0.0,\n });\n const formVals = Form.useWatch([], form) as { bill: Bill };\n const screens = Grid.useBreakpoint();\n\n const styleProps = {\n style: { textAlign: screens.xs ? \"unset\" : \"right\" } as React.CSSProperties,\n };\n const colProps = {\n sm: 12,\n xs: 24,\n };\n\n React.useEffect(() => {\n if (!formVals?.bill?.bill_items_attributes?.length) return;\n\n const newTotals = {\n totalBeforeVat: 0.0,\n vatValue: 0.0,\n totalAmount: 0.0,\n };\n formVals.bill.bill_items_attributes.forEach((item: LineItem) => {\n newTotals.totalBeforeVat += Number(item.total_before_vat) || 0.0;\n newTotals.vatValue += Number(item.vat_value) || 0.0;\n newTotals.totalAmount += Number(item.amount) || 0.0;\n });\n setTotalVals(newTotals);\n }, [form, formVals]);\n\n return (\n <Row>\n <Col sm={8} xs={24} offset={screens.xs ? 0 : 16}>\n <Divider />\n <Row justify=\"end\">\n <Col {...colProps}>\n {t(\"activerecord.attributes.credit_note.total_before_vat\")}\n </Col>\n <Col {...colProps} {...styleProps}>\n {formatCurrency(totalVals.totalBeforeVat)}\n </Col>\n </Row>\n <Divider />\n <Row justify=\"end\">\n <Col {...colProps}>\n {t(\"activerecord.attributes.credit_note.vat_value\")}\n </Col>\n <Col {...colProps} {...styleProps}>\n {formatCurrency(totalVals.vatValue)}\n </Col>\n </Row>\n <Divider />\n <Row justify=\"end\">\n <Col {...colProps}>\n {t(\"activerecord.attributes.credit_note.amount\")}\n </Col>\n <Col {...colProps} {...styleProps}>\n {formatCurrency(totalVals.totalAmount)}\n </Col>\n </Row>\n </Col>\n </Row>\n );\n};\n\nexport default TotalEntry;\n","import { Button, Card, Modal, Form, Input, ConfigProvider, Flex } from \"antd\";\nimport { useState } from \"react\";\nimport BillDetails from \"./BillDetails\";\nimport { Bill } from \"types/CommercialDocument\";\nimport { useTranslation } from \"react-i18next\";\n\nconst BillForm = ({ record }: { record?: Bill }) => {\n const { t } = useTranslation();\n const [showFormModal, setShowFormModal] = useState(false);\n const form = Form.useFormInstance();\n\n const handleCancel = () => {\n setShowFormModal(false);\n };\n\n const handleOk = () => {\n form\n .validateFields([\"bill\"], { recursive: true })\n .then(() => {\n form\n .validateFields([\"discount\"], { recursive: true })\n .then(() => {\n setShowFormModal(false);\n form.setFieldValue(\"bill_created\", \"bill_created\");\n })\n .catch((errorInfo) => {\n console.log(\"errorInfo\", errorInfo);\n });\n })\n .catch((errorInfo) => {\n console.log(\"errorInfo\", errorInfo);\n });\n };\n\n const { componentDisabled } = ConfigProvider.useConfig();\n\n return (\n <Flex justify=\"center\" align=\"flex-start\" vertical>\n <Button\n type=\"primary\"\n onClick={() => setShowFormModal(true)}\n disabled={false}\n >\n {t(\"templates.head.bill\")}\n </Button>\n <Form.Item hidden name=\"bill_created\" rules={[{ required: true }]}>\n <Input hidden />\n </Form.Item>\n <Form.Item\n hidden\n name={[\n \"fixed_asset_addition\",\n \"fixed_asset_addition_transactions_attributes\",\n 0,\n \"transactionable_id\",\n ]}\n initialValue={record?.id || 0}\n >\n <Input type=\"hidden\" />\n </Form.Item>\n <Form.Item\n hidden\n name={[\n \"fixed_asset_addition\",\n \"fixed_asset_addition_transactions_attributes\",\n 0,\n \"transactionable_type\",\n ]}\n initialValue={\"Bill\"}\n >\n <Input type=\"hidden\" />\n </Form.Item>\n <Modal\n width=\"80%\"\n title={t(\"templates.head.bill\")}\n closable\n open={showFormModal}\n onOk={handleOk}\n onCancel={handleCancel}\n className={componentDisabled ? \"show-page\" : \"\"}\n >\n <Card>\n <BillDetails record={record} />\n </Card>\n </Modal>\n </Flex>\n );\n};\n\nexport default BillForm;\n","import React from \"react\";\nimport { Form, Input } from \"antd\";\n\nimport \"../styles.css\";\nimport { AssetRegistry } from \"types/AssetRegistry\";\nimport { UseMutationResult } from \"react-query\";\nimport { FixedAssetAddition } from \"types/FixedAssetAddition\";\nimport RecordContext from \"contexts/RecordContext\";\nimport GeneralForm from \"../GeneralForm\";\nimport { CalculateDeprecation } from \"../CalculateDepreciation\";\nimport BillForm from \"./BillForm\";\nimport { Bill } from \"types/CommercialDocument\";\nimport { AssetRegistryList } from \"../LinkBill/AssetRegistryList\";\nimport { AxiosError } from \"axios\";\nimport { ApiError } from \"types/Error\";\n\nexport const FixedAssetAdditionCreateBillForm = ({\n mutation,\n}: {\n mutation: UseMutationResult<\n FixedAssetAddition,\n AxiosError<ApiError>,\n HTMLFormElement,\n unknown\n >;\n}) => {\n const record = React.useContext(RecordContext) as FixedAssetAddition;\n const transaction = record?.fixed_asset_addition_transactions?.find(\n (tr) => tr.transactionable_type === \"Bill\",\n );\n const depreciationTransaction =\n record?.fixed_asset_addition_transactions?.find(\n (tr) => tr.transactionable_type === \"Depreciation\",\n );\n\n const showMergeRegistries = (mainRegistry: AssetRegistry) => {\n return <AssetRegistryList mainRegistry={mainRegistry} />;\n };\n\n const calculateDepreciationComponent = (mainRegistry: AssetRegistry) => {\n return (\n <CalculateDeprecation\n registries={[mainRegistry]}\n depreciationID={depreciationTransaction?.transactionable_id}\n />\n );\n };\n\n return (\n <GeneralForm\n record={record}\n mutation={mutation}\n renderListRegistryComponent={showMergeRegistries}\n renderCalculateDepreciationComponent={calculateDepreciationComponent}\n additionType=\"create_bill\"\n >\n <Form.Item\n hidden\n name={[\"fixed_asset_addition\", \"addition_type\"]}\n initialValue=\"create_bill\"\n >\n <Input type=\"hidden\" />\n </Form.Item>\n <BillForm\n record={\n (transaction?.transactionable ||\n transaction?.attributes?.bill) as Bill\n }\n />\n </GeneralForm>\n );\n};\n","import { PlusOutlined } from \"@ant-design/icons\";\nimport { Button, Flex, Space } from \"antd\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { usePermission } from \"hooks/index\";\n\nconst FixedAssetAdditionActionButtons = () => {\n const { t } = useTranslation();\n const permission = usePermission(\"fixedAssetAddition\");\n const assetClassificationPermission = usePermission(\"assetClassification\");\n\n return (\n <Flex vertical gap={10} align=\"end\">\n <Space>\n {permission.write && assetClassificationPermission?.read && (\n <a href=\"/tenant/fixed_asset_additions/new\">\n <Button icon={<PlusOutlined />} type=\"primary\">\n {t(\"fixed_asset_additions.layout.new\")}\n </Button>\n </a>\n )}\n </Space>\n </Flex>\n );\n};\n\nexport { FixedAssetAdditionActionButtons };\n","import { useTranslation } from \"react-i18next\";\nimport { Skeleton, Spin, message } from \"antd\";\n\nimport QPageLayout from \"components/layout/QPageLayout\";\nimport { UseMutationResult, useMutation, useQuery } from \"react-query\";\nimport {\n getFixedAssetAddition,\n updateFixedAssetAddition,\n} from \"api/FixedAssetAdditions\";\nimport { AxiosError } from \"axios\";\nimport { ApiError } from \"types/Error\";\nimport BackButton from \"components/layout/BackButton\";\nimport { FixedAssetAdditionMergeForm } from \"components/tenant/FixedAssetAdditions/Merge\";\nimport { FixedAssetAddition } from \"types/FixedAssetAddition\";\nimport { FixedAssetAdditionLinkBillForm } from \"../LinkBill\";\nimport { FixedAssetAdditionCreateBillForm } from \"../CreateBill\";\nimport { fixedAssetAdditionKeys } from \"tokens/query-keys\";\nimport { DisabledContextProvider } from \"antd/lib/config-provider/DisabledContext\";\nimport RecordContext from \"contexts/RecordContext\";\nimport { usePermission } from \"hooks/index\";\n\nconst EditForm = ({\n record,\n mutation,\n disabled = false,\n}: {\n record: FixedAssetAddition;\n mutation: UseMutationResult<\n FixedAssetAddition,\n AxiosError<ApiError>,\n HTMLFormElement,\n unknown\n >;\n disabled?: boolean;\n}) => {\n const billPermission = usePermission(\"bill\");\n\n if (record.addition_type === \"asset_merge\") {\n return <FixedAssetAdditionMergeForm mutation={mutation} />;\n } else if (record.addition_type === \"link_bill\" && billPermission?.read) {\n return <FixedAssetAdditionLinkBillForm mutation={mutation} />;\n } else if (\n record.addition_type === \"create_bill\" &&\n (billPermission?.approve || (billPermission.read && disabled))\n ) {\n return <FixedAssetAdditionCreateBillForm mutation={mutation} />;\n }\n\n return <></>;\n};\n\nexport const FixedAssetAdditionEdit = (props: {\n additionID: number;\n disabled?: boolean;\n}) => {\n const { t } = useTranslation();\n const [messageAPI, msgContext] = message.useMessage();\n\n const { data, isLoading, isError } = useQuery<FixedAssetAddition>({\n queryKey: fixedAssetAdditionKeys.detail?.(props.additionID),\n queryFn: () => getFixedAssetAddition(props.additionID),\n });\n\n const breadCrumbData = [\n {\n title: (\n <a href=\"/tenant/fixed_assets\">\n {t(\"activerecord.attributes.layout.fixed_assets\")}\n </a>\n ),\n },\n {\n title: (\n <a href=\"/tenant/fixed_asset_additions\">\n {t(\"fixed_asset_additions.layout.title\")}\n </a>\n ),\n },\n {\n title: t(\"fixed_asset_additions.layout.title\"),\n },\n ];\n\n const fixedAssetAdditionMutation = useMutation({\n mutationFn: updateFixedAssetAddition(Number(props.additionID)),\n onSuccess: (_data) => {\n window.location.href = \"/tenant/fixed_asset_additions\";\n },\n onError: (error: AxiosError<ApiError>) => {\n let errorMsg = t(\"forms.messages.error\");\n if (error.response?.data?.message?.errors) {\n errorMsg = error.response?.data?.message?.errors;\n }\n messageAPI.open({\n type: \"error\",\n content: errorMsg,\n });\n },\n });\n\n if (!data) {\n return <Skeleton />;\n }\n\n const { disabled } = props;\n\n return (\n <QPageLayout\n title={t(\"fixed_asset_additions.layout.title\")}\n actionBtns={<BackButton />}\n breadCrumbData={breadCrumbData}\n messageHolder={msgContext}\n >\n <DisabledContextProvider disabled={disabled}>\n <div className={disabled ? \"show-page\" : \"\"}>\n {isLoading || isError ? (\n <Spin size=\"large\">\n <FixedAssetAdditionMergeForm\n mutation={fixedAssetAdditionMutation}\n />\n </Spin>\n ) : (\n <RecordContext.Provider value={data || { id: 0 }}>\n <EditForm\n mutation={fixedAssetAdditionMutation}\n record={data}\n disabled={disabled}\n />\n </RecordContext.Provider>\n )}\n </div>\n </DisabledContextProvider>\n </QPageLayout>\n );\n};\n","import { Form, Space, Input, Select, Button, DatePicker, Row } from \"antd\";\nimport { FilterOutlined, RedoOutlined } from \"@ant-design/icons\";\nimport { useTranslation } from \"react-i18next\";\nimport dayjs, { Dayjs } from \"dayjs\";\n\nconst { Option } = Select;\n\ninterface FilterFormValues {\n \"q[reference_cont]\": string;\n \"q[asset_registry_fixed_asset_name_or_asset_registry_fixed_asset_en_name_cont]\": string;\n \"q[asset_registry_sku_cont]\": string;\n \"q[date_gteq]\": string;\n \"q[date_lteq]\": string;\n \"date-range\": Dayjs[] | null;\n \"q[addition_type_eq]\": string;\n}\n\nconst FixedAssetAdditionFilterForm = ({\n onSubmit,\n onReset,\n}: {\n onSubmit?: (formValues: any) => void;\n onReset?: () => void;\n}) => {\n const { t } = useTranslation();\n const [form] = Form.useForm();\n\n const handleFilterSubmit = () => {\n form\n .validateFields()\n .then((values: FilterFormValues) => {\n let dateFrom = \"\";\n let dateTo = \"\";\n if (values[\"date-range\"]) {\n dateFrom = dayjs(values[\"date-range\"][0]).format(\"YYYY-MM-DD\");\n dateTo = dayjs(values[\"date-range\"][1]).format(\"YYYY-MM-DD\");\n }\n onSubmit?.({\n ...values,\n \"q[date_gteq]\": dateFrom,\n \"q[date_lteq]\": dateTo,\n });\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const handleReset = () => {\n form.resetFields();\n onReset?.();\n };\n\n return (\n <Form form={form} onFinish={handleFilterSubmit}>\n <Row gutter={[16, 16]} style={{ marginBottom: 16 }}>\n <Space>\n <Form.Item name=\"q[reference_cont]\">\n <Input\n placeholder={t(\n \"activerecord.attributes.fixed_asset_addition.reference\",\n )}\n />\n </Form.Item>\n <Form.Item name=\"q[asset_registry_fixed_asset_name_or_asset_registry_fixed_asset_en_name_cont]\">\n <Input\n placeholder={t(\n \"activerecord.attributes.fixed_asset_addition.asset_name\",\n )}\n />\n </Form.Item>\n <Form.Item name=\"q[asset_registry_sku_cont]\">\n <Input\n placeholder={t(\n \"activerecord.attributes.fixed_asset_addition.asset_reference\",\n )}\n />\n </Form.Item>\n <Form.Item name=\"date-range\">\n <DatePicker.RangePicker />\n </Form.Item>\n <Form.Item name=\"q[addition_type_eq]\" wrapperCol={{ span: 30 }}>\n <Select\n placeholder={t(\n \"activerecord.attributes.fixed_asset_addition.addition_type\",\n )}\n >\n <Option value=\"0\">\n {t(\n \"activerecord.attributes.fixed_asset_addition.addition_types.asset_merge\",\n )}\n </Option>\n <Option value=\"1\">\n {t(\n \"activerecord.attributes.fixed_asset_addition.addition_types.link_bill\",\n )}\n </Option>\n <Option value=\"2\">\n {t(\n \"activerecord.attributes.fixed_asset_addition.addition_types.create_bill\",\n )}\n </Option>\n </Select>\n </Form.Item>\n <Form.Item>\n <Button icon={<FilterOutlined />} type=\"primary\" htmlType=\"submit\">\n {t(\"forms.buttons.filter\")}\n </Button>\n </Form.Item>\n <Form.Item>\n <Button icon={<RedoOutlined />} onClick={handleReset}>\n {t(\"forms.buttons.reset\")}\n </Button>\n </Form.Item>\n </Space>\n </Row>\n </Form>\n );\n};\n\nexport { FixedAssetAdditionFilterForm };\n","import { Flex, Space, Typography } from \"antd\";\n\ninterface Props {\n icon: any;\n text: string;\n}\n\nexport const FixedAssetAdditionCard = ({ icon, text }: Props) => {\n const { Text } = Typography;\n\n return (\n <Flex\n style={{\n backgroundColor: \"#f4f4f4\",\n border: \"1px solid #e2e2e2\",\n height: \"175px\",\n width: \"175px\",\n color: \"#234189\",\n }}\n justify=\"center\"\n align=\"center\"\n >\n <Space direction=\"vertical\" align=\"center\">\n {icon}\n <Text style={{ marginTop: \"25px\", fontSize: \"16px\", display: \"block\" }}>\n {text}\n </Text>\n </Space>\n </Flex>\n );\n};\n","import axios from \"axios\";\nimport { FixedAsset, FixedAssets } from \"types/FixedAsset\";\nimport { QueryParameters } from \"types/QueryParameters\";\nimport { FixedAssetResponse } from \"types/FixedAsset\";\n\nexport const getFixedAssets = async ({\n search = \"\",\n page = 1,\n pageSize = 20,\n sorter = \"created_at desc\",\n filters = {},\n}: QueryParameters): Promise<FixedAssets> => {\n const { data } = await axios.get<FixedAssetResponse>(\n `/tenant/fixed_assets.json`,\n {\n params: {\n \"q[arabic_name_or_english_name_cont]\": search,\n \"q[s]\": sorter || \"created_at desc\",\n ...(filters || {}),\n page: page,\n per_page: pageSize,\n },\n },\n );\n return data?.fixed_assets;\n};\n\nexport const getFixedAsset = async (\n fixedAssetID: number | string,\n): Promise<FixedAsset> => {\n const { data } = await axios.get<FixedAsset>(\n `/tenant/fixed_assets/${fixedAssetID}.json`,\n );\n\n return data;\n};\n","import React from \"react\";\nimport {\n Col,\n DatePicker,\n Divider,\n Form,\n InputNumber,\n Input,\n Radio,\n Row,\n Skeleton,\n theme,\n Spin,\n} from \"antd\";\nimport dayjs from \"dayjs\";\n\nimport { FixedAssetAddition } from \"types/FixedAssetAddition\";\nimport { SelectWithSearch } from \"components/form/SelectWithSearch\";\nimport { AdditionFormValues, UseAddition, useAddition } from \"../hooks\";\nimport { UseMutationResult } from \"react-query\";\nimport { useTranslation } from \"react-i18next\";\nimport { validateFixedAssetAddition } from \"api/FixedAssetAdditions\";\nimport {\n assetClassificationKeys,\n assetRegistryKeys,\n fixedAssetKeys,\n} from \"tokens/query-keys\";\nimport { getAssetClassifications } from \"api/budgets\";\nimport { AssetClassification } from \"types/AssetClassification\";\nimport i18next from \"i18next\";\nimport { getFixedAssets } from \"api/FixedAssets\";\nimport { FixedAsset } from \"types/FixedAsset\";\nimport { getAssetRegistries } from \"api/AssetRegistry\";\nimport { AssetRegistry } from \"types/AssetRegistry\";\nimport { AssetRegistryShow } from \"../AssetRegistryShow\";\nimport { SubmitButton } from \"../SubmitButton\";\nimport { AxiosError } from \"axios\";\nimport { ApiError } from \"types/Error\";\n\ninterface GeneralFormProps {\n record: FixedAssetAddition;\n mutation: UseMutationResult<\n FixedAssetAddition,\n AxiosError<ApiError>,\n HTMLFormElement,\n unknown\n >;\n children?: React.ReactNode | React.ReactNode[];\n renderListRegistryComponent?: (\n registry: AssetRegistry,\n ) => React.ReactNode | React.ReactNode[];\n renderCalculateDepreciationComponent?: (\n registry: AssetRegistry,\n ) => React.ReactNode | React.ReactNode[];\n additionHook?: UseAddition;\n additionType?: string;\n}\n\nconst GeneralForm = ({\n record,\n mutation,\n children,\n ...props\n}: GeneralFormProps) => {\n const { t } = useTranslation();\n const additionForm = props.additionHook || useAddition();\n const form = additionForm.form;\n\n const { token } = theme.useToken();\n\n const mainRegistry =\n additionForm.mainAssetRegistry.query.data || record.asset_registry;\n let additionStartDate = mainRegistry?.start_depreciation_date\n ? dayjs(mainRegistry.start_depreciation_date)\n : dayjs();\n\n if (additionStartDate.isBefore(dayjs())) {\n additionStartDate = dayjs();\n }\n\n let submitBtnText = t(\"fixed_asset_additions.buttons.save_and_merge\");\n if (props.additionType === \"link_bill\") {\n submitBtnText = t(\"fixed_asset_additions.buttons.save_and_link_bill\");\n } else if (props.additionType === \"create_bill\") {\n submitBtnText = t(\"fixed_asset_additions.buttons.save_and_create_bill\");\n }\n\n const formComponent = (\n <Form\n disabled={!!additionForm.isDisabled}\n layout=\"horizontal\"\n name=\"additionMerge\"\n className=\"label-light\"\n form={form}\n onFinish={(values: AdditionFormValues) =>\n additionForm.handleCreateAddition(values, mutation)\n }\n labelCol={{ span: 8 }}\n wrapperCol={{ span: 14 }}\n style={{\n fontSize: token.fontSizeSM,\n fontWeight: \"normal\",\n }}\n autoComplete=\"off\"\n colon={false}\n validateMessages={{\n required: t(\"activerecord.errors.messages.blank\"),\n }}\n requiredMark={(\n label: React.ReactNode,\n { required }: { required: boolean },\n ) => (\n <>\n {label}\n {required && <span style={{ color: \"red\" }}>*</span>}\n </>\n )}\n >\n <Form.Item name={[\"fixed_asset_addition\", \"status\"]}>\n <Input type=\"hidden\" value=\"\" />\n </Form.Item>\n <Row>\n <Col span={12}>\n <Form.Item\n label={t(\"activerecord.attributes.fixed_asset_addition.reference\")}\n name={[\"fixed_asset_addition\", \"reference\"]}\n key=\"fixed_asset_addition_reference\"\n initialValue={record?.reference}\n rules={[\n {\n required: true,\n },\n {\n validator: async (_, value: string) => {\n const req = {\n id: record?.id,\n fixed_asset_addition: {\n reference: value,\n },\n };\n const resp = await validateFixedAssetAddition(req);\n\n if (resp.errors?.reference)\n return Promise.reject(\n new Error(\n resp.errors?.reference.join(\", \") ||\n \"Invalid reference\",\n ),\n );\n else return Promise.resolve();\n },\n },\n ]}\n >\n <Input />\n </Form.Item>\n <Form.Item\n label={t(\"activerecord.assets.classification.label\")}\n name=\"asset_classification_id\"\n key=\"asset-classification\"\n initialValue={\n additionForm.assetClassification.assetClassificationID\n }\n rules={[\n {\n required: true,\n },\n ]}\n >\n <SelectWithSearch\n initialOpts={[record.asset_classification]}\n onChange={additionForm.assetClassification.handleChange}\n queryKeyObject={assetClassificationKeys}\n queryFn={getAssetClassifications}\n dataLabelFn={(cls: AssetClassification) =>\n i18next.language === \"en\" ? cls.english_name : cls.arabic_name\n }\n />\n </Form.Item>\n <Form.Item\n label={t(\"activerecord.attributes.fixed_asset_addition.asset_name\")}\n name=\"asset_name\"\n key=\"asset-name\"\n initialValue={additionForm.fixedAsset.assetID}\n rules={[\n {\n required: true,\n },\n ]}\n >\n <SelectWithSearch\n initialOpts={[record?.fixed_asset]}\n disabled={additionForm.fixedAsset.isDisabled}\n onChange={additionForm.fixedAsset.handleChange}\n queryKeyObject={fixedAssetKeys}\n filters={{\n \"q[asset_classification_id_eq]\":\n additionForm.assetClassification.assetClassificationID,\n }}\n queryFn={getFixedAssets}\n dataLabelFn={(asset: FixedAsset) =>\n i18next.language === \"en\" ? asset.en_name : asset.name\n }\n />\n </Form.Item>\n <Form.Item\n label={t(\n \"activerecord.attributes.fixed_asset_addition.asset_reference\",\n )}\n name={[\"fixed_asset_addition\", \"asset_registry_id\"]}\n key=\"asset-registry\"\n initialValue={additionForm.mainAssetRegistry.mainAssetRegistry}\n rules={[\n {\n required: true,\n },\n ]}\n >\n <SelectWithSearch\n initialOpts={[record?.asset_registry]}\n disabled={additionForm.mainAssetRegistry.isDisabled}\n onChange={additionForm.mainAssetRegistry.handleChange}\n filters={{\n \"q[fixed_asset_id_eq]\": additionForm.fixedAsset.assetID,\n }}\n queryKeyObject={assetRegistryKeys}\n queryFn={getAssetRegistries}\n dataLabelFn={(registry: AssetRegistry) => registry.sku}\n />\n </Form.Item>\n <Form.Item\n label={t(\n \"activerecord.attributes.fixed_asset_addition.addition_date\",\n )}\n name={[\"fixed_asset_addition\", \"date\"]}\n initialValue={record?.date && dayjs(record?.date)}\n rules={[\n {\n required: true,\n },\n ]}\n >\n <DatePicker\n style={{ width: \"100%\" }}\n defaultPickerValue={additionStartDate}\n disabledDate={(current) => {\n if (additionForm.mainAssetRegistry.query.isLoading) {\n return false;\n }\n\n const assetRegistry =\n additionForm.mainAssetRegistry.query.data ||\n record?.asset_registry;\n const endDay =\n assetRegistry?.start_depreciation_date &&\n dayjs(assetRegistry.start_depreciation_date);\n\n if (!endDay) return true;\n return current && current < endDay;\n }}\n />\n </Form.Item>\n <Form.Item\n initialValue={record?.description}\n label={t(\n \"activerecord.attributes.fixed_asset_addition.description\",\n )}\n name={[\"fixed_asset_addition\", \"description\"]}\n rules={[\n {\n validator: async (_, value: string) => {\n if (value && value.length > 255) {\n return Promise.reject(\n new Error(t(\"errors.messages.max_255_allowed\")),\n );\n }\n\n return Promise.resolve();\n },\n },\n ]}\n >\n <Input.TextArea rows={4} autoSize={false} />\n </Form.Item>\n {children}\n </Col>\n\n <Col span={12}>\n {additionForm.mainAssetRegistry.query.isLoading ? (\n <Skeleton />\n ) : (\n additionForm.mainAssetRegistry.query.data?.id && (\n <>\n <AssetRegistryShow\n assetRegistry={additionForm.mainAssetRegistry.query.data}\n title={t(\"fixed_asset_additions.layout.main_asset\")}\n />\n {additionForm.mainAssetRegistry.query.data &&\n props.renderListRegistryComponent?.(\n additionForm.mainAssetRegistry.query.data,\n )}\n </>\n )\n )}\n </Col>\n </Row>\n\n <Row>\n <Col\n span={24}\n style={{\n color: \"#25233a\",\n fontWeight: 700,\n }}\n >\n <Divider\n className=\"form-divider\"\n orientation=\"left\"\n orientationMargin=\"0\"\n >\n {t(\n \"activerecord.attributes.fixed_asset_addition.increment_life_cycle\",\n )}\n </Divider>\n </Col>\n </Row>\n <Row gutter={[0, 8]}>\n <Form.Item\n hidden\n name={[\"fixed_asset_addition\", \"life_cycle_type\"]}\n initialValue={record?.life_cycle_type || \"years\"}\n >\n <Input type=\"hidden\" value=\"\" />\n </Form.Item>\n <Col span={12}>\n <Form.Item\n name=\"lifecycle\"\n wrapperCol={{ span: 20, offset: 8 }}\n className=\"radio-checkbox\"\n initialValue={additionForm.lifeCycle.lifeCycle}\n hidden\n >\n <Radio.Group\n onChange={additionForm.lifeCycle.handleChange}\n options={[\n {\n label: t(\n \"activerecord.attributes.fixed_asset_addition.life_cycle_types.new_date_of_life_cycle\",\n ),\n value: \"new_date_of_life_cycle\",\n },\n {\n label: t(\n \"activerecord.attributes.fixed_asset_addition.life_cycle_types.add_to_life_cycle\",\n ),\n value: \"add_to_life_cycle\",\n },\n ]}\n />\n </Form.Item>\n {additionForm.lifeCycle.lifeCycle === \"new_date_of_life_cycle\" ? (\n <Form.Item\n initialValue={record?.life_cycle && dayjs(record?.life_cycle)}\n name={[\"fixed_asset_addition\", \"life_cycle\"]}\n wrapperCol={{ span: 20, offset: 8 }}\n >\n <DatePicker\n style={{ width: \"100%\" }}\n defaultPickerValue={\n mainRegistry?.life_cycle_start\n ? dayjs(mainRegistry.life_cycle_start)\n : dayjs().endOf(\"day\")\n }\n disabledDate={(current) => {\n if (additionForm.mainAssetRegistry.query.isLoading) {\n return false;\n }\n\n const endDay = mainRegistry?.life_cycle_start\n ? dayjs(mainRegistry.life_cycle_start)\n : dayjs().endOf(\"day\");\n return current && current < endDay;\n }}\n />\n </Form.Item>\n ) : (\n <Form.Item\n name={[\"fixed_asset_addition\", \"life_cycle\"]}\n initialValue={\n additionForm.lifeCycle.lifeCycle !== \"new_date_of_life_cycle\" &&\n record.life_cycle\n }\n wrapperCol={{ span: 20, offset: 8 }}\n rules={[\n {\n validator: async (_, value: string) => {\n if (!value || Number(value) > 0) {\n return Promise.resolve();\n } else\n return Promise.reject(\n new Error(\n t(\"activerecord.errors.messages.greater_than\"),\n ),\n );\n },\n },\n ]}\n >\n <InputNumber addonAfter={t(\"dropdowns.years\")} precision={0} />\n </Form.Item>\n )}\n </Col>\n </Row>\n {additionForm.mainAssetRegistry.query.data &&\n props.renderCalculateDepreciationComponent?.(\n additionForm.mainAssetRegistry.query.data,\n )}\n <SubmitButton buttonText={submitBtnText} />\n </Form>\n );\n\n if (mutation.isLoading && !mutation.isError)\n return <Spin size=\"large\">{formComponent}</Spin>;\n\n return formComponent;\n};\n\nexport default GeneralForm;\n","import React from \"react\";\nimport { AssetRegistry } from \"types/AssetRegistry\";\nimport { Form, Skeleton } from \"antd\";\n\nimport { useQuery } from \"react-query\";\nimport { assetRegistryKeys } from \"tokens/query-keys\";\nimport { AssetRegistryShow } from \"../AssetRegistryShow\";\nimport { getAssetRegistries } from \"api/AssetRegistry\";\nimport i18next from \"i18next\";\nimport DisabledContext from \"antd/lib/config-provider/DisabledContext\";\nimport dayjs, { Dayjs } from \"dayjs\";\n\ninterface BillWatch {\n transactionable_id: number;\n transactionable_type: string;\n}\n\nexport const AssetRegistryList = ({\n mainRegistry,\n}: {\n mainRegistry: AssetRegistry;\n}) => {\n const form = Form.useFormInstance();\n const billWatch = Form.useWatch<BillWatch>(\n [\"fixed_asset_addition\", \"fixed_asset_addition_transactions_attributes\", 0],\n form,\n );\n const additionDateWatch = Form.useWatch<Dayjs | undefined>(\n [\"fixed_asset_addition\", \"date\"],\n form,\n );\n const componentDisabled = React.useContext(DisabledContext);\n\n const registries = React.useRef<AssetRegistry[]>([]);\n\n const filters = {\n \"q[commercial_document_id_eq]\": billWatch?.transactionable_id,\n \"q[commercial_document_type_eq]\": \"Bill\",\n depreciation_date: additionDateWatch\n ? dayjs(additionDateWatch).format(\"YYYY-MM-DD\")\n : dayjs().format(\"YYYY-MM-DD\"),\n show_all: componentDisabled,\n };\n const registryQuery = useQuery({\n queryKey: assetRegistryKeys.list?.(filters),\n queryFn: () => {\n if (\n !billWatch?.transactionable_id ||\n billWatch?.transactionable_type !== \"Bill\"\n )\n return;\n\n return getAssetRegistries({ filters: filters });\n },\n });\n\n if (registryQuery.data) {\n registries.current = registryQuery.data.filter(\n (registry) => registry.id !== mainRegistry.id,\n );\n } else {\n registries.current = [];\n }\n\n React.useEffect(() => {\n if (!billWatch?.transactionable_id) return;\n\n registryQuery.refetch().catch((err) => {\n console.log(err);\n });\n }, [form, billWatch]);\n\n if (registryQuery.isLoading) return <Skeleton />;\n\n const assetRegistries = registries.current.map((registry: AssetRegistry) => {\n const assetName: string =\n (i18next.language === \"en\"\n ? registry.fixed_asset?.en_name\n : registry.fixed_asset?.name) || \"\";\n\n return (\n <AssetRegistryShow\n assetRegistry={registry}\n title={`${assetName} - ${registry.sku}`}\n key={`${registry.id}-${registry.sku}`}\n />\n );\n });\n\n return (\n <div style={{ maxHeight: 400, overflowY: \"scroll\" }}>{assetRegistries}</div>\n );\n};\n","import { Form, Input } from \"antd\";\nimport { useTranslation } from \"react-i18next\";\nimport { groupBy, snakeCase } from \"lodash\";\n\nimport { type CommercialDocument } from \"types/CommercialDocument\";\nimport { type QueryParameters } from \"types/QueryParameters\";\nimport { SelectWithSearch } from \"components/form/SelectWithSearch\";\nimport { getAllCommercialDocuments, getCommercialDocument } from \"api/Bill\";\nimport { commercialDocumentKeys } from \"tokens/query-keys\";\nimport { FixedAssetAdditionTransaction } from \"types/FixedAssetAddition\";\nimport { DefaultOptionType } from \"antd/es/select\";\nimport { ReactElement } from \"react\";\n\nexport const BillSelector = ({\n initialData,\n}: {\n initialData?: FixedAssetAdditionTransaction;\n}) => {\n const { t } = useTranslation();\n const form = Form.useFormInstance();\n const bill = initialData?.transactionable as CommercialDocument;\n\n const initialOpts = bill\n ? [\n {\n label: (\n <span>\n {t(\n `activerecord.external_documents.${snakeCase(bill.doc_kind || bill.type)}.title`,\n )}\n </span>\n ),\n title: bill.doc_kind || bill.type,\n options: [\n {\n value: bill.id,\n label: bill.reference,\n ...bill,\n },\n ],\n },\n ]\n : [];\n\n const groupDocuments = async (options: DefaultOptionType) => {\n const result = await getAllCommercialDocuments(options as QueryParameters);\n const groupedResult = groupBy(result, \"doc_kind\");\n\n const groupedOptions: Record<\n string,\n string | ReactElement | Record<string, string | number | ReactElement>[]\n >[] = [];\n for (const docType of Object.keys(groupedResult)) {\n groupedOptions.push({\n label: (\n <span>\n {t(`activerecord.external_documents.${snakeCase(docType)}.title`)}\n </span>\n ),\n title: docType,\n id: docType,\n options: groupedResult[docType].map((doc: CommercialDocument) => ({\n value: doc.id,\n label: doc.reference,\n ...doc,\n })),\n });\n }\n return groupedOptions;\n };\n\n const handleBillChange = (_value: string, option: DefaultOptionType) => {\n form.setFieldValue(\n [\n \"fixed_asset_addition\",\n \"fixed_asset_addition_transactions_attributes\",\n 0,\n \"transactionable_type\",\n ],\n option.doc_kind,\n );\n };\n\n return (\n <div>\n <Form.Item\n initialValue={bill?.id}\n label={t(\"activerecord.attributes.fixed_asset_addition.bill_reference\")}\n name={[\n \"fixed_asset_addition\",\n \"fixed_asset_addition_transactions_attributes\",\n 0,\n \"transactionable_id\",\n ]}\n key=\"linked-bill\"\n rules={[\n {\n required: true,\n },\n {\n validator: async (_, value: number) => {\n if (!value) return Promise.resolve();\n\n const bill = await getCommercialDocument({\n commercialDocumentID: value,\n });\n if (!bill) return Promise.resolve();\n\n if ((bill.addition_transactions_count ?? 0) > 0) {\n return Promise.reject(\n new Error(\n t(\"fixed_asset_additions.layout.form.already_linked\"),\n ),\n );\n }\n\n if (bill.doc_kind === \"SimpleBill\") {\n return Promise.resolve();\n }\n\n if (bill.untracked_products_count === 0) {\n return Promise.reject(\n new Error(\n t(\"fixed_asset_additions.layout.form.tracked_product\"),\n ),\n );\n }\n\n return Promise.resolve();\n },\n },\n ]}\n >\n <SelectWithSearch\n initialOpts={initialOpts}\n queryKeyObject={commercialDocumentKeys}\n filters={{\n \"q[type_in]\": [\"Bill\", \"SimpleBill\"],\n \"q[status_in]\": [\"Paid\", \"Partially Paid\", \"Approved\"],\n }}\n queryFn={groupDocuments}\n onChange={handleBillChange}\n />\n </Form.Item>\n <Form.Item\n hidden={true}\n initialValue={bill?.doc_kind || bill?.type || \"\"}\n name={[\n \"fixed_asset_addition\",\n \"fixed_asset_addition_transactions_attributes\",\n 0,\n \"transactionable_type\",\n ]}\n >\n <Input type=\"text\" value=\"\" />\n </Form.Item>\n </div>\n );\n};\n","import React from \"react\";\nimport { AssetRegistries, AssetRegistry } from \"types/AssetRegistry\";\nimport { CalculateDeprecation } from \"../CalculateDepreciation\";\nimport { Form, Spin } from \"antd\";\nimport { uniqBy } from \"lodash\";\n\nimport { useQuery } from \"react-query\";\nimport { assetRegistryKeys } from \"tokens/query-keys\";\nimport { getAssetRegistries } from \"api/AssetRegistry\";\nimport RecordContext from \"contexts/RecordContext\";\nimport { FixedAssetAddition } from \"types/FixedAssetAddition\";\nimport DisabledContext from \"antd/lib/config-provider/DisabledContext\";\n\ninterface BillWatch {\n transactionable_id: number;\n transactionable_type: string;\n}\n\ninterface AssetRegistryWatch {\n asset_registry: AssetRegistry;\n}\n\nexport const DepreciationDetails = ({\n mainRegistry,\n}: {\n mainRegistry: AssetRegistry;\n}) => {\n const form = Form.useFormInstance();\n const billWatch = Form.useWatch<BillWatch>(\n [\"fixed_asset_addition\", \"fixed_asset_addition_transactions_attributes\", 0],\n form,\n );\n const registryWatch = Form.useWatch<AssetRegistryWatch>(\n [\"asset_registry\"],\n form,\n );\n const registries = React.useRef([mainRegistry]);\n const componentDisabled = React.useContext(DisabledContext);\n\n const filters = {\n \"q[commercial_document_id_eq]\": billWatch?.transactionable_id,\n \"q[commercial_document_type_eq]\": \"Bill\",\n show_all: componentDisabled,\n };\n const registryQuery = useQuery<AssetRegistries>({\n queryKey: assetRegistryKeys.list?.(filters),\n queryFn: () => {\n if (\n !billWatch?.transactionable_id ||\n billWatch?.transactionable_type !== \"Bill\"\n )\n return [];\n\n return getAssetRegistries({ filters: filters });\n },\n });\n const record = React.useContext(RecordContext) as FixedAssetAddition;\n const depreciationTransaction =\n record?.fixed_asset_addition_transactions?.find(\n (tr) => tr.transactionable_type === \"Depreciation\",\n );\n\n if (registryQuery.data) {\n registries.current = uniqBy(\n [mainRegistry, ...registryQuery.data],\n \"id\",\n ) as AssetRegistries;\n } else {\n registries.current = [mainRegistry];\n }\n\n React.useEffect(() => {\n if (!billWatch) return;\n\n registryQuery.refetch().catch((err) => {\n console.error(err);\n });\n }, [form, billWatch, registryWatch]);\n\n const depreciationComponent = (\n <CalculateDeprecation\n registries={registries.current}\n depreciationID={depreciationTransaction?.transactionable_id}\n />\n );\n if (registryQuery.isLoading)\n return <Spin size=\"small\">{depreciationComponent}</Spin>;\n\n return depreciationComponent;\n};\n","import React from \"react\";\nimport { Form, Input } from \"antd\";\n\nimport \"../styles.css\";\nimport { AssetRegistry } from \"types/AssetRegistry\";\nimport { UseMutationResult } from \"react-query\";\nimport { FixedAssetAddition } from \"types/FixedAssetAddition\";\nimport { BillSelector } from \"./BillSelector\";\nimport RecordContext from \"contexts/RecordContext\";\nimport { DepreciationDetails } from \"./DepreciationDetails\";\nimport { AssetRegistryList } from \"./AssetRegistryList\";\nimport GeneralForm from \"../GeneralForm\";\nimport { AxiosError } from \"axios\";\nimport { ApiError } from \"types/Error\";\n\nexport const FixedAssetAdditionLinkBillForm = ({\n mutation,\n}: {\n mutation: UseMutationResult<\n FixedAssetAddition,\n AxiosError<ApiError>,\n HTMLFormElement,\n unknown\n >;\n}) => {\n const record = React.useContext(RecordContext) as FixedAssetAddition;\n\n const transaction = record?.fixed_asset_addition_transactions?.find(\n (tr) =>\n tr.transactionable_type === \"Bill\" ||\n tr.transactionable_type === \"SimpleBill\",\n );\n\n const showMergeRegistries = (mainRegistry: AssetRegistry) => {\n return <AssetRegistryList mainRegistry={mainRegistry} />;\n };\n\n const calculateDepreciationComponent = (mainRegistry: AssetRegistry) => {\n return <DepreciationDetails mainRegistry={mainRegistry} />;\n };\n\n return (\n <GeneralForm\n record={record}\n mutation={mutation}\n renderListRegistryComponent={showMergeRegistries}\n renderCalculateDepreciationComponent={calculateDepreciationComponent}\n additionType=\"link_bill\"\n >\n <Form.Item\n hidden\n name={[\"fixed_asset_addition\", \"addition_type\"]}\n initialValue=\"link_bill\"\n >\n <Input type=\"hidden\" />\n </Form.Item>\n <BillSelector initialData={transaction} />\n </GeneralForm>\n );\n};\n","import React, { useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Form, Skeleton, Typography } from \"antd\";\nimport dayjs from \"dayjs\";\n\nimport \"../styles.css\";\nimport { SelectWithSearch } from \"components/form/SelectWithSearch\";\nimport { getAssetRegistries, getAssetRegistry } from \"api/AssetRegistry\";\nimport { AssetRegistry } from \"types/AssetRegistry\";\nimport { Input } from \"antd/lib\";\nimport { CalculateDeprecation } from \"../CalculateDepreciation\";\nimport { AssetRegistryShow } from \"../AssetRegistryShow\";\nimport { UseMutationResult, useQuery } from \"react-query\";\nimport { FixedAssetAddition } from \"types/FixedAssetAddition\";\nimport { assetRegistryKeys } from \"tokens/query-keys\";\nimport RecordContext from \"contexts/RecordContext\";\nimport GeneralForm from \"../GeneralForm\";\nimport { useAddition } from \"../hooks\";\nimport { AxiosError } from \"axios\";\nimport { ApiError } from \"types/Error\";\n\nexport const FixedAssetAdditionMergeForm = ({\n mutation,\n}: {\n mutation: UseMutationResult<\n FixedAssetAddition,\n AxiosError<ApiError>,\n HTMLFormElement,\n unknown\n >;\n}) => {\n const { t } = useTranslation();\n const record = React.useContext(\n RecordContext,\n ) as unknown as FixedAssetAddition;\n const depreciationTransaction =\n record?.fixed_asset_addition_transactions?.find(\n (tr) => tr.transactionable_type === \"Depreciation\",\n );\n const transaction = record?.fixed_asset_addition_transactions?.find(\n (tr) => tr.transactionable_type === \"AssetRegistry\",\n );\n\n const addition = useAddition();\n\n const mergeRegistryID: string | undefined = Form.useWatch(\n [\n \"fixed_asset_addition\",\n \"fixed_asset_addition_transactions_attributes\",\n 0,\n \"transactionable_id\",\n ],\n addition.form,\n ) as string;\n\n const merge = useQuery({\n queryKey: assetRegistryKeys.details?.(\n Number(mergeRegistryID),\n addition.additionDateWatch &&\n dayjs(addition.additionDateWatch).format(\"YYYY-MM-DD\"),\n ),\n queryFn: () => {\n if (!mergeRegistryID) return;\n\n const dateString =\n addition.additionDateWatch &&\n dayjs(addition.additionDateWatch).format(\"YYYY-MM-DD\");\n\n return getAssetRegistry(Number(mergeRegistryID), {\n depreciation_date: dateString,\n });\n },\n });\n\n useEffect(() => {\n if (!mergeRegistryID) {\n return;\n }\n\n merge.refetch().catch(() => {\n console.log(\"Fetch failed\");\n });\n }, [addition.additionDateWatch, mergeRegistryID]);\n\n const mergeRegistryFilter = {\n q: {\n id_not_eq: addition.mainAssetRegistry.mainAssetRegistry,\n g: [\n {\n start_depreciation_date_and_received_date_lteq:\n record.date || dayjs().format(\"YYYY-MM-DD\"),\n start_depreciation_date_null: true,\n m: \"or\",\n },\n ],\n },\n };\n\n if (addition.additionDateWatch) {\n mergeRegistryFilter.q.g[0].start_depreciation_date_and_received_date_lteq =\n addition.additionDateWatch.format(\"YYYY-MM-DD\");\n }\n\n useEffect(() => {\n if (!addition.additionDateWatch && mergeRegistryID) {\n addition.form.setFieldValue(\n [\n \"fixed_asset_addition\",\n \"fixed_asset_addition_transactions_attributes\",\n 0,\n \"transactionable_id\",\n ],\n null,\n );\n }\n }, [addition.additionDateWatch]);\n\n const showMergeRegistry = () => {\n return merge.isLoading ? (\n <Skeleton />\n ) : (\n merge.data?.id && (\n <AssetRegistryShow\n assetRegistry={merge.data}\n title={t(\"fixed_asset_additions.layout.merge_asset\")}\n />\n )\n );\n };\n\n const calculateDepreciationComponent = (mainRegistry: AssetRegistry) => {\n return merge.isLoading ? (\n <Skeleton />\n ) : (\n merge.data && (\n <CalculateDeprecation\n registries={[mainRegistry, merge.data]}\n depreciationID={depreciationTransaction?.transactionable_id}\n />\n )\n );\n };\n\n return (\n <GeneralForm\n record={record}\n mutation={mutation}\n renderListRegistryComponent={showMergeRegistry}\n renderCalculateDepreciationComponent={calculateDepreciationComponent}\n additionHook={addition}\n additionType=\"asset_merge\"\n >\n <Form.Item\n hidden\n name={[\"fixed_asset_addition\", \"addition_type\"]}\n initialValue=\"asset_merge\"\n >\n <Input type=\"hidden\" />\n </Form.Item>\n <Form.Item\n name={[\n \"fixed_asset_addition\",\n \"fixed_asset_addition_transactions_attributes\",\n 0,\n \"transactionable_type\",\n ]}\n initialValue=\"AssetRegistry\"\n hidden\n >\n <Input type=\"hidden\" />\n </Form.Item>\n <Form.Item\n initialValue={transaction?.transactionable_id}\n label={t(\"activerecord.attributes.fixed_asset_addition.asset_to_merge\")}\n name={[\n \"fixed_asset_addition\",\n \"fixed_asset_addition_transactions_attributes\",\n 0,\n \"transactionable_id\",\n ]}\n key=\"asset-registry-merge\"\n extra={\n <span>\n <Typography.Text>\n {t(\n \"fixed_asset_additions.layout.registered_asset_to_merge.description\",\n )}\n </Typography.Text>\n </span>\n }\n rules={[\n {\n required: true,\n },\n ]}\n >\n <SelectWithSearch\n initialOpts={[transaction?.transactionable]}\n queryKeyObject={assetRegistryKeys}\n onChange={addition.mergeRegistry.handleChange}\n filters={mergeRegistryFilter}\n queryFn={getAssetRegistries}\n dataLabelFn={(registry: AssetRegistry) => registry.sku}\n />\n </Form.Item>\n </GeneralForm>\n );\n};\n","import React from \"react\";\nimport {\n Button,\n Col,\n ConfigProvider,\n Form,\n Grid,\n Row,\n Space,\n message,\n} from \"antd\";\nimport { usePermission } from \"hooks/index\";\nimport { useTranslation } from \"react-i18next\";\nimport RecordContext from \"contexts/RecordContext\";\nimport { FixedAssetAddition } from \"types/FixedAssetAddition\";\n\nexport const SubmitButton = ({ buttonText }: { buttonText?: string }) => {\n const { t } = useTranslation();\n const form = Form.useFormInstance();\n const permissions = usePermission(\"fixedAssetAddition\");\n const [notificationApi, notificationCtxHolder] = message.useMessage();\n\n const handleValidation = () => {\n form.validateFields().catch((err) => {\n console.log(err);\n notificationApi.error(t(\"fixed_asset_additions.layout.form.error\"));\n });\n };\n\n const { componentDisabled } = ConfigProvider.useConfig();\n const screens = Grid.useBreakpoint();\n const record = React.useContext(RecordContext) as FixedAssetAddition;\n const isEditable =\n permissions?.write &&\n (record.status === \"draft\" || record.status === \"awaiting\");\n\n if (componentDisabled) {\n return (\n <Row>\n <Col\n sm={16}\n xs={24}\n offset={screens.xs ? 0 : 8}\n style={{ marginTop: 20 }}\n >\n <Space>\n {isEditable && (\n <a href={`/tenant/fixed_asset_additions/${record.id}/edit`}>\n <Button type=\"primary\" disabled={false}>\n {t(\"forms.buttons.edit\")}\n </Button>\n </a>\n )}\n <a href=\"/tenant/fixed_asset_additions\">\n <Button htmlType=\"button\" disabled={false}>\n {t(\"forms.buttons.cancel\")}\n </Button>\n </a>\n </Space>\n </Col>\n </Row>\n );\n }\n\n return (\n <>\n {notificationCtxHolder}\n <Form.Item\n wrapperCol={{ offset: screens.xs ? 0 : 8, span: screens.xs ? 24 : 16 }}\n style={{ marginTop: 20 }}\n >\n <Space>\n <Button\n type=\"primary\"\n htmlType=\"submit\"\n onClick={() => {\n handleValidation();\n form.setFieldValue([\"fixed_asset_addition\", \"status\"], \"draft\");\n }}\n >\n {t(\"fixed_asset_additions.buttons.save_as_draft\")}\n </Button>\n {permissions.approve ? (\n <Button\n type=\"primary\"\n htmlType=\"submit\"\n onClick={() => {\n handleValidation();\n form.setFieldValue(\n [\"fixed_asset_addition\", \"status\"],\n \"completed\",\n );\n }}\n >\n {buttonText || t(\"forms.buttons.approve\")}\n </Button>\n ) : (\n <Button\n type=\"primary\"\n htmlType=\"submit\"\n onClick={() =>\n form.setFieldValue(\n [\"fixed_asset_addition\", \"status\"],\n \"awaiting\",\n )\n }\n >\n {t(\"forms.buttons.save\")}\n </Button>\n )}\n <a href=\"/tenant/fixed_asset_additions\">\n <Button htmlType=\"button\">{t(\"forms.buttons.cancel\")}</Button>\n </a>\n </Space>\n </Form.Item>\n </>\n );\n};\n","import { FormInstance } from \"antd\";\n\nexport const handleClassificationChange = (form: FormInstance) => {\n form.setFieldValue(\"asset_name\", \"\");\n form.setFieldValue([\"fixed_asset_addition\", \"asset_registry_id\"], \"\");\n};\n\nexport const handleAssetChange = (form: FormInstance) => {\n form.setFieldValue([\"fixed_asset_addition\", \"asset_registry_id\"], \"\");\n};\n","import { Form, FormInstance, RadioChangeEvent } from \"antd\";\nimport { getAssetRegistry } from \"api/AssetRegistry\";\nimport { assetRegistryKeys } from \"tokens/query-keys\";\nimport { useContext, useEffect, useState } from \"react\";\nimport { UseMutationResult, UseQueryResult, useQuery } from \"react-query\";\nimport { FixedAssetAddition } from \"types/FixedAssetAddition\";\nimport dayjs, { Dayjs } from \"dayjs\";\nimport DisabledContext from \"antd/lib/config-provider/DisabledContext\";\nimport { handleAssetChange, handleClassificationChange } from \"../helpers\";\nimport RecordContext from \"contexts/RecordContext\";\nimport { AssetRegistry } from \"types/AssetRegistry\";\nimport { AxiosError } from \"axios\";\nimport { ApiError } from \"types/Error\";\nimport { DefaultOptionType } from \"antd/es/select\";\n\nexport interface AdditionFormValues {\n fixed_asset_addition: Record<\n string,\n string | number | Dayjs | undefined | null\n >;\n bill: Record<string, string | number | undefined | null>;\n depreciation: Record<string, string | number>;\n}\n\nexport interface UseAddition {\n assetClassification: {\n assetClassificationID: number | null;\n setAssetClassificationID: (value: number) => void;\n handleChange: (value: string) => void;\n };\n fixedAsset: {\n assetID: number | null;\n setAssetID: (value: number) => void;\n handleChange: (value: string) => void;\n isDisabled: boolean;\n };\n lifeCycle: {\n lifeCycle: string;\n setLifeCycle: (value: string) => void;\n handleChange: (event: RadioChangeEvent) => void;\n };\n mainAssetRegistry: {\n mainAssetRegistry: number | null;\n setMainAssetRegistry: (value: number) => void;\n query: UseQueryResult<AssetRegistry | undefined, unknown>;\n handleChange: (\n value: string,\n options: DefaultOptionType | DefaultOptionType[],\n ) => void;\n isDisabled: boolean;\n };\n mergeRegistry: {\n handleChange: (\n value: string,\n options: DefaultOptionType | DefaultOptionType[],\n ) => void;\n };\n handleCreateAddition: (\n form: AdditionFormValues,\n mutation: UseMutationResult<\n FixedAssetAddition,\n AxiosError<ApiError>,\n HTMLFormElement,\n unknown\n >,\n ) => void;\n form: FormInstance;\n isDisabled: boolean;\n additionDateWatch: Dayjs | undefined;\n}\n\nconst initLifeCycle = (_record: FixedAssetAddition): string => {\n return \"add_to_life_cycle\";\n};\n\nexport const useAddition = () => {\n const record = useContext(RecordContext) as unknown as FixedAssetAddition;\n const [formState, setFormState] = useState({\n assetClassificationID: record?.asset_classification?.id || null,\n assetID: record?.fixed_asset?.id || null,\n lifeCycle: initLifeCycle(record),\n mainRegistry: record?.asset_registry_id || null,\n });\n const isAssetDisabled = !formState.assetClassificationID;\n const isRegistryDisabled = isAssetDisabled || !formState.assetID;\n\n const [newForm] = Form.useForm();\n const form = Form.useFormInstance() || newForm;\n const additionDate = Form.useWatch<Dayjs | undefined>(\n [\"fixed_asset_addition\", \"date\"],\n form,\n );\n const registryData = Form.useWatch<\n Record<string, { start_depreciation_date: Dayjs | undefined }>\n >([\"asset_registry\"], form);\n const componentDisabled = useContext(DisabledContext);\n\n const main = useQuery({\n queryKey: assetRegistryKeys.details?.(\n Number(formState.mainRegistry),\n additionDate,\n ),\n queryFn: () => {\n if (!formState.mainRegistry) return;\n\n const dateString =\n additionDate && dayjs(additionDate).format(\"YYYY-MM-DD\");\n return getAssetRegistry(formState.mainRegistry, {\n depreciation_date: dateString,\n });\n },\n });\n\n useEffect(() => {\n if (!formState.mainRegistry) {\n return;\n }\n\n if (\n !componentDisabled &&\n form.getFieldValue(\"lifecycle\") === \"new_date_of_life_cycle\"\n )\n form.setFieldValue([\"fixed_asset_addition\", \"life_cycle\"], \"\");\n\n main.refetch().catch(() => {\n console.log(\"Error\");\n });\n }, [formState.mainRegistry, registryData]);\n\n const handleChangeAssetClassification = (value: string) => {\n setFormState((prevState) => ({\n ...prevState,\n assetClassificationID: Number(value),\n assetID: null,\n mainRegistry: null,\n }));\n handleClassificationChange(form);\n form.setFieldValue([\"fixed_asset_addition\", \"date\"], \"\");\n };\n\n const handleChangeAsset = (value: string) => {\n setFormState((prevState) => ({\n ...prevState,\n assetID: Number(value),\n mainRegistry: null,\n }));\n handleAssetChange(form);\n form.setFieldValue([\"fixed_asset_addition\", \"date\"], \"\");\n };\n\n const showAssetRegistry = (registryType: string) => (value: string) => {\n const numberValue = Number(value);\n if (registryType === \"main\") {\n form.setFieldValue([\"fixed_asset_addition\", \"date\"], \"\");\n setFormState((prevState) => ({\n ...prevState,\n mainRegistry: numberValue,\n }));\n } else {\n setFormState((prevState) => ({\n ...prevState,\n mergeRegistry: numberValue,\n }));\n }\n };\n\n const handleLifeCycleChange = (event: RadioChangeEvent) => {\n form.setFieldValue([\"fixed_asset_addition\", \"life_cycle\"], \"\");\n\n if (event.target.value === \"new_date_of_life_cycle\") {\n form.setFieldValue(\n [\"fixed_asset_addition\", \"life_cycle_type\"],\n \"new_date_of_life_cycle\",\n );\n } else {\n form.setFieldValue([\"fixed_asset_addition\", \"life_cycle_type\"], \"years\");\n }\n\n setFormState((prevState) => ({\n ...prevState,\n lifeCycle: (event.target.value as string) || \"\",\n }));\n };\n\n const handleCreateAddition = (\n formValues: AdditionFormValues,\n mutation: UseMutationResult<\n FixedAssetAddition,\n AxiosError<ApiError>,\n HTMLFormElement,\n unknown\n >,\n ) => {\n const lifeCycleData =\n form.getFieldValue(\"lifecycle\") === \"new_date_of_life_cycle\"\n ? (\n formValues.fixed_asset_addition.life_cycle as Dayjs | undefined\n )?.format(\"YYYY-MM-DD\")\n : (formValues.fixed_asset_addition.life_cycle as string | undefined);\n let billAttributes = {};\n\n if (formValues.bill) {\n billAttributes = {\n ...formValues.bill,\n issue_date: (formValues.bill.issue_date as Dayjs | undefined)?.format(\n \"YYYY-MM-DD\",\n ),\n due_date: (formValues.bill.due_date as Dayjs | undefined)?.format(\n \"YYYY-MM-DD\",\n ),\n supply_date: (formValues.bill.supply_date as Dayjs | undefined)?.format(\n \"YYYY-MM-DD\",\n ),\n };\n }\n\n const values = {\n fixed_asset_addition: {\n ...formValues.fixed_asset_addition,\n date: (formValues.fixed_asset_addition.date as Dayjs).format(\n \"YYYY-MM-DD\",\n ),\n life_cycle: lifeCycleData,\n },\n depreciation: formValues.depreciation,\n bill: billAttributes,\n };\n\n mutation.mutate(values as unknown as HTMLFormElement);\n };\n\n const additionState: UseAddition = {\n assetClassification: {\n assetClassificationID: formState.assetClassificationID\n ? Number(formState.assetClassificationID)\n : null,\n setAssetClassificationID: (value: number) => {\n setFormState((prevState) => ({\n ...prevState,\n assetClassificationID: value,\n }));\n },\n handleChange: handleChangeAssetClassification,\n },\n fixedAsset: {\n assetID: formState.assetID ? Number(formState.assetID) : null,\n setAssetID: (value: number) => {\n setFormState((prevState) => ({\n ...prevState,\n assetID: value,\n }));\n },\n handleChange: handleChangeAsset,\n isDisabled: isAssetDisabled,\n },\n lifeCycle: {\n lifeCycle: formState.lifeCycle,\n setLifeCycle: (value: string) => {\n setFormState((prevState) => ({\n ...prevState,\n lifeCycle: value,\n }));\n },\n handleChange: handleLifeCycleChange,\n },\n mainAssetRegistry: {\n mainAssetRegistry: formState.mainRegistry\n ? Number(formState.mainRegistry)\n : null,\n setMainAssetRegistry: (value: number) => {\n setFormState((prevState) => ({\n ...prevState,\n mainRegistry: value,\n }));\n },\n query: main,\n handleChange: showAssetRegistry(\"main\"),\n isDisabled: isRegistryDisabled,\n },\n mergeRegistry: {\n handleChange: showAssetRegistry(\"merge\"),\n },\n handleCreateAddition,\n form,\n isDisabled: componentDisabled,\n additionDateWatch: additionDate,\n };\n\n return additionState;\n};\n","import { Col, Flex, Typography } from \"antd\"\nimport QIcon from \"components/layout/QIcon\"\nimport React, { SVGAttributes } from \"react\"\n\nconst { Paragraph, Title } = Typography;\n\ninterface Props {\n Icon: React.FunctionComponent<SVGAttributes<SVGElement>> | null;\n title: string;\n content: string;\n}\n\nconst InfoItem = ({ Icon, title, content }: Props) => {\n return (\n <Col md={12}>\n <Flex vertical gap={8}>\n <QIcon component={Icon} style={{fontSize: 48}} />\n <Title level={5}>{title}</Title>\n <Paragraph style={{ textAlign: 'justify' }}>{content}</Paragraph>\n </Flex>\n </Col>\n )\n}\n\nexport default InfoItem","import { Image } from \"antd\"\nimport { theme } from 'antd';\nconst { useToken } = theme;\n\nconst Poster = ({ src }: { src: string }) => {\n const { token } = useToken();\n return (\n <div style={{padding: token.paddingLG, backgroundColor: token.colorBgLayout, borderRadius: 10}}>\n <Image\n width={'100%'}\n style={{ borderRadius: 10 }}\n src={src}\n preview={false}\n fallback=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMIAAADDCAYAAADQvc6UAAABRWlDQ1BJQ0MgUHJvZmlsZQAAKJFjYGASSSwoyGFhYGDIzSspCnJ3UoiIjFJgf8LAwSDCIMogwMCcmFxc4BgQ4ANUwgCjUcG3awyMIPqyLsis7PPOq3QdDFcvjV3jOD1boQVTPQrgSkktTgbSf4A4LbmgqISBgTEFyFYuLykAsTuAbJEioKOA7DkgdjqEvQHEToKwj4DVhAQ5A9k3gGyB5IxEoBmML4BsnSQk8XQkNtReEOBxcfXxUQg1Mjc0dyHgXNJBSWpFCYh2zi+oLMpMzyhRcASGUqqCZ16yno6CkYGRAQMDKMwhqj/fAIcloxgHQqxAjIHBEugw5sUIsSQpBobtQPdLciLEVJYzMPBHMDBsayhILEqEO4DxG0txmrERhM29nYGBddr//5/DGRjYNRkY/l7////39v///y4Dmn+LgeHANwDrkl1AuO+pmgAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAwqADAAQAAAABAAAAwwAAAAD9b/HnAAAHlklEQVR4Ae3dP3PTWBSGcbGzM6GCKqlIBRV0dHRJFarQ0eUT8LH4BnRU0NHR0UEFVdIlFRV7TzRksomPY8uykTk/zewQfKw/9znv4yvJynLv4uLiV2dBoDiBf4qP3/ARuCRABEFAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghgg0Aj8i0JO4OzsrPv69Wv+hi2qPHr0qNvf39+iI97soRIh4f3z58/u7du3SXX7Xt7Z2enevHmzfQe+oSN2apSAPj09TSrb+XKI/f379+08+A0cNRE2ANkupk+ACNPvkSPcAAEibACyXUyfABGm3yNHuAECRNgAZLuYPgEirKlHu7u7XdyytGwHAd8jjNyng4OD7vnz51dbPT8/7z58+NB9+/bt6jU/TI+AGWHEnrx48eJ/EsSmHzx40L18+fLyzxF3ZVMjEyDCiEDjMYZZS5wiPXnyZFbJaxMhQIQRGzHvWR7XCyOCXsOmiDAi1HmPMMQjDpbpEiDCiL358eNHurW/5SnWdIBbXiDCiA38/Pnzrce2YyZ4//59F3ePLNMl4PbpiL2J0L979+7yDtHDhw8vtzzvdGnEXdvUigSIsCLAWavHp/+qM0BcXMd/q25n1vF57TYBp0a3mUzilePj4+7k5KSLb6gt6ydAhPUzXnoPR0dHl79WGTNCfBnn1uvSCJdegQhLI1vvCk+fPu2ePXt2tZOYEV6/fn31dz+shwAR1sP1cqvLntbEN9MxA9xcYjsxS1jWR4AIa2Ibzx0tc44fYX/16lV6NDFLXH+YL32jwiACRBiEbf5KcXoTIsQSpzXx4N28Ja4BQoK7rgXiydbHjx/P25TaQAJEGAguWy0+2Q8PD6/Ki4R8EVl+bzBOnZY95fq9rj9zAkTI2SxdidBHqG9+skdw43borCXO/ZcJdraPWdv22uIEiLA4q7nvvCug8WTqzQveOH26fodo7g6uFe/a17W3+nFBAkRYENRdb1vkkz1CH9cPsVy/jrhr27PqMYvENYNlHAIesRiBYwRy0V+8iXP8+/fvX11Mr7L7ECueb/r48eMqm7FuI2BGWDEG8cm+7G3NEOfmdcTQw4h9/55lhm7DekRYKQPZF2ArbXTAyu4kDYB2YxUzwg0gi/41ztHnfQG26HbGel/crVrm7tNY+/1btkOEAZ2M05r4FB7r9GbAIdxaZYrHdOsgJ/wCEQY0J74TmOKnbxxT9n3FgGGWWsVdowHtjt9Nnvf7yQM2aZU/TIAIAxrw6dOnAWtZZcoEnBpNuTuObWMEiLAx1HY0ZQJEmHJ3HNvGCBBhY6jtaMoEiJB0Z29vL6ls58vxPcO8/zfrdo5qvKO+d3Fx8Wu8zf1dW4p/cPzLly/dtv9Ts/EbcvGAHhHyfBIhZ6NSiIBTo0LNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiEC/wGgKKC4YMA4TAAAAABJRU5ErkJggg==\"\n />\n </div>\n )\n}\n\nexport default Poster","/* eslint-disable */\n//@ts-nocheck\nimport React, { useEffect, useState } from \"react\";\nimport {\n Button,\n DatePicker,\n Form,\n Input,\n message,\n Space,\n TreeSelect,\n} from \"antd\";\nimport { useTranslation } from \"react-i18next\";\nimport dayjs, { Dayjs } from \"dayjs\";\nimport { useMutation, useQuery } from \"react-query\";\nimport {\n getAccounts,\n getBudgetsLastReference,\n postBudget,\n updateBudget,\n} from \"api/budgets\";\nimport AttachmentField from \"./AttachmentField\";\nimport { AxiosError } from \"axios\";\nimport BudgetDimensions from \"./BudgetDimensions\";\nimport { Account, Budget, TreeNode } from \"types/budget\";\nimport { transformData } from \"helpers/budgets\";\n\n\n\nconst AccountBudgeting = ({\n type = \"new\",\n budget = {},\n id = null,\n hasValues = false,\n}) => {\n const [form] = Form.useForm();\n const { TextArea } = Input;\n const { t } = useTranslation();\n const currentYear = dayjs();\n const [isFormChanged, setIsFormChanged] = useState(false);\n const [initialValues, setInitialValues] = useState({});\n const disabledDate = (current: Dayjs | null): boolean => {\n return current ? current.year() < new Date().getFullYear() : false;\n };\n\n const alphanumericPattern = /^[a-zA-Z0-9-_]*\\d$/;\n\n const createBudget = useMutation({\n mutationFn: (data) => postBudget(data, id),\n onSuccess() {\n window.location.href = \"/tenant/budgets\";\n },\n onError: (error: AxiosError<any>) => {\n if (error.response.data.code || error.response.data.errors) {\n message.error(\n t(\"budgets.accounts_budgeting.fields.reference.validation3\")\n );\n }\n },\n });\n\n const editBudget = useMutation({\n mutationFn: (data) => updateBudget(data, id),\n onSuccess() {\n window.location.href = \"/tenant/budgets\";\n },\n onError: (error: AxiosError<any>) => {\n if (error.response.data.code || error.response.data.errors) {\n message.error(\n t(\"budgets.accounts_budgeting.fields.reference.validation3\")\n );\n }\n },\n });\n\n const lastReference = useQuery({\n queryKey: \"budgetsLastReference\",\n queryFn: () => getBudgetsLastReference(),\n }).data?.next_code;\n\n const accounts = useQuery({\n queryKey: \"accounts\",\n queryFn: () => getAccounts(),\n }).data?.accounts;\n\n const transformedData = transformData<Account>(accounts, \"code_name\");\n const filterTreeNode = (inputValue: string, treeNode: TreeNode) => {\n return (\n treeNode.title.toLowerCase().includes(inputValue.toLowerCase()) ||\n treeNode.value == inputValue\n );\n };\n\n const handleSubmit = (formData: FormData) => {\n if (type === \"new\") {\n createBudget.mutate(formData as any);\n } else {\n editBudget.mutate(formData as any);\n }\n };\n \n const onFinish = (values: Budget) => {\n const formData = new FormData();\n if (type == \"new\") {\n formData.append(\"budget[kind]\", \"accounts_budget\");\n formData.append(\"budget[code]\", values.code);\n values.description &&\n formData.append(\"budget[description]\", values.description);\n formData.append(\"budget[name_ar]\", values.name_ar);\n formData.append(\"budget[name_en]\", values.name_en);\n !hasValues &&\n formData.append(\n \"budget[fiscal_year]\",\n values.fiscal_year.add(0, \"month\").toISOString()\n );\n !hasValues &&\n values.accounts_ids.forEach((el, i) => {\n formData.append(`budget[account_ids][]`, el);\n });\n\n const attachment = values.attachment?.map((el) => {\n return el.originFileObj;\n });\n\n attachment?.forEach((file) => {\n formData.append(`budget[attachments][]`, file);\n });\n\n values.dimensions?.forEach((el) => {\n formData.append(`budget[dimension_ids][]`, el.selectedDimension.value);\n });\n handleSubmit(formData);\n } else {\n let hasData = false;\n const updatedFormData = new FormData();\n for (const key in values) {\n if (\n values.hasOwnProperty(key) &&\n JSON.stringify(values[key]) !== JSON.stringify(initialValues[key])\n ) {\n if (key === \"fiscal_year\") {\n const fiscalYearValue = values[key].add(0, \"month\").toISOString();\n updatedFormData.append(`budget[${key}]`, fiscalYearValue);\n } else if (key === \"accounts_ids\") {\n values[key].forEach((el) => {\n updatedFormData.append(`budget[account_ids][]`, el); \n });\n } else if (key === \"dimensions\") {\n values[key].forEach((dimension) => {\n const dimensionId = dimension.selectedDimension?.value; \n updatedFormData.append(`budget[dimension_ids][]`, dimensionId);\n });\n } else if (key === \"attachment\") {\n const attachment = values.attachment?.map((el) => el.originFileObj);\n attachment?.forEach((file) => {\n updatedFormData.append(\"budget[attachments][]\", file);\n });\n } else {\n updatedFormData.append(`budget[${key}]`, values[key]);\n }\n }\n } \n updatedFormData.forEach((value, key) => {\n hasData = true;\n }); \n if (hasData) {\n handleSubmit(updatedFormData as any); \n } \n }\n };\n\n useEffect(() => {\n if (lastReference) {\n const incomingData = type == \"edit\" ? budget : { code: lastReference };\n form.setFieldsValue(incomingData);\n setInitialValues(incomingData);\n }\n }, [lastReference, form]);\n\n return (\n <Form\n name=\"accountBudgeting\"\n form={form}\n labelCol={{ span: 8 }}\n wrapperCol={{ span: 16 }}\n style={{ maxWidth: 600, fontSize: \"12px\", fontWeight: \"normal\" }}\n onFinish={onFinish}\n initialValues={{\n fiscal_year: currentYear,\n }}\n autoComplete=\"off\"\n onValuesChange={() => setIsFormChanged(true)}\n >\n <Form.Item\n label={t(\"budgets.accounts_budgeting.fields.reference.name\")}\n name=\"code\"\n rules={[\n {\n required: true,\n message: t(\n \"budgets.accounts_budgeting.fields.reference.validation1\"\n ),\n },\n {\n max: 25,\n message: t(\n \"budgets.accounts_budgeting.fields.reference.validation4\"\n ),\n },\n {\n pattern: alphanumericPattern,\n message: t(\n \"budgets.accounts_budgeting.fields.reference.validation2\"\n ),\n },\n ]}\n >\n <Input />\n </Form.Item>\n <Form.Item\n label={t(\"budgets.accounts_budgeting.fields.description.name\")}\n name=\"description\"\n rules={[\n {\n max: 100,\n message: t(\n \"budgets.accounts_budgeting.fields.description.validation\"\n ),\n },\n ]}\n >\n <TextArea rows={4} />\n </Form.Item>\n <Form.Item\n label={t(\"budgets.accounts_budgeting.fields.arabic_name.name\")}\n name=\"name_ar\"\n rules={[\n {\n required: true,\n message: t(\n \"budgets.accounts_budgeting.fields.arabic_name.validation\"\n ),\n },\n {\n max: 25,\n message: t(\n \"budgets.accounts_budgeting.fields.arabic_name.validation1\"\n ),\n },\n ]}\n >\n <Input />\n </Form.Item>\n <Form.Item\n label={t(\"budgets.accounts_budgeting.fields.english_name.name\")}\n name=\"name_en\"\n rules={[\n {\n required: true,\n message: t(\n \"budgets.accounts_budgeting.fields.english_name.validation\"\n ),\n },\n {\n max: 25,\n message: t(\n \"budgets.accounts_budgeting.fields.english_name.validation1\"\n ),\n },\n ]}\n >\n <Input />\n </Form.Item>\n <Form.Item\n label={t(\"budgets.accounts_budgeting.fields.fiscal_year.name\")}\n name=\"fiscal_year\"\n rules={[\n {\n required: true,\n message: t(\n \"budgets.accounts_budgeting.fields.fiscal_year.validation\"\n ),\n },\n ]}\n >\n <DatePicker\n disabled={hasValues}\n inputReadOnly\n picker=\"year\"\n disabledDate={disabledDate}\n />\n </Form.Item>\n <Form.Item\n label={t(\"budgets.accounts_budgeting.fields.accounts.name\")}\n name=\"accounts_ids\"\n rules={[\n {\n required: true,\n message: t(\"budgets.accounts_budgeting.fields.accounts.validation\"),\n },\n ]}\n >\n <TreeSelect\n disabled={hasValues}\n treeData={transformedData}\n treeCheckable\n showCheckedStrategy={TreeSelect.SHOW_PARENT}\n style={{ width: \"100%\" }}\n filterTreeNode={filterTreeNode}\n />\n </Form.Item>\n <AttachmentField />\n <BudgetDimensions type={type} budget={budget} hasValues={hasValues} />\n <Form.Item wrapperCol={{ offset: 8, span: 16 }}>\n <Space>\n <Button type=\"primary\" \n htmlType=\"submit\"\n disabled={!isFormChanged}\n >\n {type == \"edit\"\n ? t(\"budgets.edit.update\")\n : t(\"forms.buttons.save\")}\n </Button>\n <Button htmlType=\"button\" onClick={() => window.go_back()}>\n {t(\"forms.buttons.cancel\")}\n </Button>\n </Space>\n </Form.Item>\n </Form>\n );\n};\n\nexport default AccountBudgeting;\n","//@ts-nocheck\nimport { InboxOutlined } from \"@ant-design/icons\";\nimport { Form, message, Upload } from \"antd\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nlet allowedFileTypes = [\n \"image/tiff\",\n \"image/raw\",\n \"image/svg\",\n \"image/jpg\",\n \"image/jpeg\",\n \"image/png\",\n \"image/gif\",\n \"application/plain\",\n \"application/doc\",\n \"application/docx\",\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n \"application/txt\",\n \"application/x-ole-storage\",\n \"application/xlsx\",\n \"application/xls\",\n \"application/xlslx\",\n \"application/pdf\",\n \"application/vnd.ms-excel\",\n \"application/msword\",\n \"application/zip\",\n \"application/x-zip\",\n \"application/x-zip-compressed\",\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n \"application/octet-stream\",\n \"text/plain\",\n \"text/csv\",\n \"text/txt\",\n \"audio/mp3\",\n \"audio/mp4\",\n \"audio/mpeg\",\n \"video/x-ms-asf\",\n \"audio/x-ms-wmv\",\n \"video/mp4\",\n \"video/x-ms-wmv\",\n \"video/wmv\",\n \"application/vnd.ms-asf\",\n];\nconst normFile = (e) => {\n if (Array.isArray(e)) {\n return e;\n }\n return e?.fileList;\n};\n\nconst AttachmentField = () => {\n const { t } = useTranslation();\n const beforeUpload = (file) => {\n const isAllowedType = allowedFileTypes.includes(file.type);\n if (!isAllowedType) {\n message.error(\n t(\"forms.messages.attachments.error.attachment_content_type\")\n );\n }\n\n const isLt2M = file.size / 1024 / 1024 < 100;\n if (!isLt2M) {\n message.error(t(\"forms.messages.attachments.error.attachment_file_size\"));\n }\n\n if (!isAllowedType || !isLt2M) {\n return Upload.LIST_IGNORE;\n }\n return false;\n };\n return (\n <Form.Item label={t(\"budgets.accounts_budgeting.fields.attachments.name\")}>\n <Form.Item\n name=\"attachment\"\n valuePropName=\"fileList\"\n getValueFromEvent={normFile}\n noStyle\n >\n <Upload.Dragger beforeUpload={beforeUpload} multiple name=\"attachment\">\n <p className=\"ant-upload-drag-icon\">\n <InboxOutlined />\n </p>\n <p className=\"ant-upload-text\">\n {t(\"forms.placeholders.drop_zone_placeholder\")}\n </p>\n </Upload.Dragger>\n </Form.Item>\n </Form.Item>\n );\n};\n\nexport default AttachmentField;\n","/*eslint-disable*/\n//@ts-nocheck\nimport React, { useContext, useEffect, useState } from \"react\";\nimport {\n Button,\n Modal,\n Table,\n Alert,\n Form,\n Space,\n message,\n InputNumber,\n TableProps,\n} from \"antd\";\nimport { BudgetContext } from \"./BudgetDetails\";\nimport { useTranslation } from \"react-i18next\";\nimport i18next from \"i18next\";\nimport { MinusCircleOutlined, PlusOutlined } from \"@ant-design/icons\";\nimport {\n postBudgetingValueBreakdown,\n getBudgetingValueBreakdowns,\n} from \"api/budgets\";\nimport {\n useDynamicDimensionsColumns,\n useBreakDownModalState,\n} from \"hooks/budgets\";\nimport { useMutation, useQuery } from \"react-query\";\nimport {\n BreakDownModalProps,\n BudgetBreakdownReqBody,\n BudgetContextType,\n DimensionValue,\n} from \"types/budget\";\n\nconst BreakDownModal = ({\n data,\n dateRanges,\n}) => {\n const { modalOpen, setModalOpen, selectedRow } =\n useContext<BudgetContextType>(BudgetContext);\n const [form] = Form.useForm();\n const { t } = useTranslation();\n const nameKey = i18next.language === \"en\" ? \"name_en\" : \"name_ar\";\n const name = data ? data[nameKey] : undefined;\n const breakDownValue = selectedRow?.[selectedRow?.field];\n const accountName = selectedRow?.name;\n const breakDownDateCode = selectedRow?.code;\n const valueIndex = selectedRow?.field - 1;\n const budgetingValueId = selectedRow?.budgeting_value_id;\n\n const { tableData, setTableData, errorMessage, setErrorMessage } =\n useBreakDownModalState(selectedRow);\n const [breakDownInputsValues, setBreakDownInputsValues] = useState<\n Record<number, number>\n >({});\n\n const [submittable, setSubmittable] = useState([]);\n\n const dynamicDimensionsColumns = useDynamicDimensionsColumns(\n data,\n (value: number, dimensionId: number, recordKey: number) => {\n setTableData((prevData) =>\n prevData.map((row) => {\n if (row.key === recordKey) {\n const updatedDimensions = row.dimensions_values.map(\n (dim: DimensionValue) => {\n if (dim.dimension_id === dimensionId) {\n return { ...dim, id: value };\n }\n return dim;\n }\n );\n\n if (\n !updatedDimensions.some(\n (dim: DimensionValue) => dim.dimension_id === dimensionId\n )\n ) {\n updatedDimensions.push({ id: value, dimension_id: dimensionId });\n }\n\n return { ...row, dimensions_values: updatedDimensions };\n }\n return row;\n })\n );\n },\n tableData\n );\n\n const { data: breakdownData } = useQuery({\n queryKey: [\"date_ranges\", modalOpen, selectedRow, form],\n queryFn: () => getBudgetingValueBreakdowns(budgetingValueId, valueIndex),\n });\n\n const processBreakdownData = () => {\n if (Array.isArray(breakdownData)) {\n const savedAmounts = breakdownData.reduce((acc, value, index) => {\n acc[index] = value.value_broken_down;\n return acc;\n }, {});\n setBreakDownInputsValues(savedAmounts);\n\n const formattedData =\n breakdownData.length === 0\n ? [\n {\n key: 1,\n kind: `${accountName}-${breakDownDateCode}`,\n amount: 0,\n dimensions_values: [],\n },\n ]\n : breakdownData.map((breakdown, index) => ({\n key: breakdown.id || index + 1,\n kind: `${accountName}-${breakDownDateCode}`,\n amount: breakdown.value_broken_down,\n dimensions_values:\n breakdown.dimensions_values.map(({ id, dimension_id }) => ({\n id,\n dimension_id,\n })) || [],\n }));\n\n setTableData(formattedData);\n\n form.setFieldsValue(\n formattedData.reduce((acc, row) => {\n acc[row.key] = { value_broken_down: row.amount };\n return acc;\n }, {})\n );\n } else {\n const initialRow = {\n key: 1,\n kind: `${accountName}-${breakDownDateCode}`,\n amount: 0,\n dimensions_values: [],\n };\n\n setTableData([initialRow]);\n form.setFieldsValue({\n [initialRow.key]: { value_broken_down: initialRow.amount },\n });\n }\n };\n\n const createBreakDownValues = useMutation({\n mutationFn: (data: BudgetBreakdownReqBody) => {\n return postBudgetingValueBreakdown(data);\n },\n onSuccess(data, variables, context) {\n message.success(t(\"budgets.show.budget_details.saved\"));\n setModalOpen(false);\n },\n });\n\n useEffect(() => {\n if (!modalOpen || !selectedRow) return;\n\n form.resetFields();\n setBreakDownInputsValues({});\n setTableData([]);\n\n processBreakdownData();\n }, [modalOpen, selectedRow, form, breakdownData]);\n\n useEffect(() => {\n setErrorMessage(\"\");\n }, [modalOpen]);\n\n const handleInputChange = (value: number, index: number) => {\n const newValues = { ...breakDownInputsValues, [index]: value };\n\n setBreakDownInputsValues(newValues);\n\n const total = Object.values(newValues).reduce(\n (sum, val) => sum + (val || 0),\n 0\n );\n\n if (total > breakDownValue) {\n setErrorMessage(`${t(\"budgets.break_down_popup.error_message\")}`);\n setSubmittable([...submittable, 2]);\n } else {\n setErrorMessage(\"\");\n setSubmittable(submittable.filter((item) => item !== 2));\n }\n\n setTableData((prevData) =>\n prevData.map((row, i) => (i === index ? { ...row, amount: value } : row))\n );\n };\n\n const handleAddRow = () => {\n const newRow = {\n key: `${Date.now()}-${Math.random()}`,\n kind: `${accountName}-${breakDownDateCode}`,\n amount: 0,\n dimensions_values: [],\n };\n setTableData([...tableData, newRow]);\n };\n\n const handleRemoveRow = (index: number) => {\n const newResult = Object.keys(breakDownInputsValues).reduce((acc, key) => {\n const numKey = parseInt(key);\n if (numKey < index) {\n acc[numKey] = breakDownInputsValues[key];\n } else if (numKey > index) {\n acc[numKey - 1] = breakDownInputsValues[key];\n }\n return acc;\n }, {});\n setBreakDownInputsValues(newResult);\n setTableData((prevData) => prevData.filter((_, i) => i !== index));\n };\n\n const handleSubmit = async () => {\n const areDimensionsEqual = (a: DimensionValue[], b: DimensionValue[]) => {\n if (a.length !== b.length) return false;\n const sortedA = [...a].sort((x, y) => x.dimension_id - y.dimension_id);\n const sortedB = [...b].sort((x, y) => x.dimension_id - y.dimension_id);\n\n return sortedA.every(\n (item, index) =>\n item.id === sortedB[index].id &&\n item.dimension_id === sortedB[index].dimension_id\n );\n };\n\n const hasDuplicateDimensions = tableData.some((obj, index) =>\n tableData\n .slice(index + 1)\n .some((otherObj) =>\n areDimensionsEqual(obj.dimensions_values, otherObj.dimensions_values)\n )\n );\n\n await form.validateFields();\n const hasEmptyDimensions = tableData.some(\n (row) => row.dimensions_values.length === 0\n );\n\n\n if (hasDuplicateDimensions) {\n setErrorMessage(\n `${t(\"budgets.break_down_popup.submit.duplicate_validation\")}.`\n );\n } else if (hasEmptyDimensions) {\n setErrorMessage(\n `${t(\"budgets.break_down_popup.submit.empty_row_validation\")}.`\n );\n } else {\n const budgetingValueBreakdown = tableData.map((row) => {\n return {\n dimensions_values:\n row.dimensions_values.map((el: DimensionValue) => {\n return el.id;\n }) || [],\n value_broken_down: row.amount,\n };\n });\n\n const requestBody = {\n budgeting_value_id: budgetingValueId,\n value_index: valueIndex,\n budgeting_value_breakdown: budgetingValueBreakdown,\n };\n\n setErrorMessage(`${\"\"}`);\n createBreakDownValues.mutate(requestBody as BudgetBreakdownReqBody);\n }\n };\n\n const columns: TableProps[\"columns\"] = [\n ...dynamicDimensionsColumns,\n {\n title: t(\"templates.amount\"),\n dataIndex: \"amount\",\n key: \"amount\",\n width: 100,\n render: (text, record, index) => {\n return (\n <Form.Item\n name={[record.key, \"value_broken_down\"]}\n initialValue={record.amount}\n rules={[\n {\n required: true,\n message: `${t(\n \"budgets.break_down_popup.submit.amount_validation\"\n )}`,\n },\n {\n type: \"number\",\n min: 1,\n message: `${t(\n \"budgets.break_down_popup.submit.amount_validation\"\n )}`,\n },\n ]}\n style={{ marginBottom: 0 }}\n >\n <InputNumber\n value={record.amount}\n onChange={(value) => handleInputChange(value, index)}\n />\n </Form.Item>\n );\n },\n },\n {\n title: \"\",\n dataIndex: \"add\",\n key: \"add\",\n render: (text, _, index) => (\n <Space>\n {text}\n {index === tableData.length - 1 ? (\n <Button\n type=\"link\"\n icon={<PlusOutlined />}\n onClick={handleAddRow}\n />\n ) : (\n <Button\n type=\"link\"\n icon={<MinusCircleOutlined />}\n onClick={() => handleRemoveRow(index)}\n />\n )}\n </Space>\n ),\n },\n ];\n\n return (\n <Modal\n title={\n <div>\n <div>\n {\" \"}\n <strong>{name}</strong>\n </div>\n <div>\n {accountName}-{breakDownDateCode}\n </div>\n <div>{Array.isArray(dateRanges) && dateRanges[valueIndex]}</div>\n </div>\n }\n centered\n open={modalOpen}\n onCancel={() => {\n setModalOpen(false);\n setTableData([]);\n }}\n style={{ maxWidth: \"1100px\" }}\n width={\"auto\"}\n onOk={() => handleSubmit()}\n okText={t(\"budgets.break_down_popup.confirm\")}\n cancelText={t(\"budgets.break_down_popup.cancel\")}\n okButtonProps={{ disabled: Boolean(submittable.length) }}\n >\n {errorMessage && (\n <Alert\n message={errorMessage}\n type=\"error\"\n showIcon\n style={{ marginBottom: 16 }}\n />\n )}\n <Form form={form} onFinish={handleSubmit}>\n <Table\n columns={columns}\n dataSource={tableData}\n pagination={false}\n scroll={{ x: \"max-content\" }}\n summary={() => {\n const totalAmount = tableData.reduce(\n (sum, row) => sum + (row.amount || 0),\n 0\n );\n return (\n <Table.Summary.Row>\n <Table.Summary.Cell index={0} colSpan={columns.length - 1} />\n <Table.Summary.Cell index={1}>\n <strong>{totalAmount}</strong>\n </Table.Summary.Cell>\n </Table.Summary.Row>\n );\n }}\n />\n </Form>\n </Modal>\n );\n};\n\nexport default BreakDownModal;\n","//@ts-nocheck\nimport {\n PlusOutlined,\n} from \"@ant-design/icons\";\nimport { Button, Flex, Space } from \"antd\";\nimport i18next from \"i18next\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nconst BudgetActionButton = ({ permissions }) => { \n const { t } = useTranslation();\n return (\n <Flex vertical gap={10} align=\"end\">\n <Space>\n {permissions['write'] && (\n <Button\n icon={\n i18next.language === \"en\" ? <PlusOutlined /> : <PlusOutlined />\n }\n type=\"primary\"\n href=\"/tenant/budgets/new\"\n >\n {t(\"budgets.index.create_new_budget\")}\n </Button>\n )}\n </Space>\n </Flex>\n );\n};\n\nexport default BudgetActionButton;\n","//@ts-nocheck\nimport { Flex, Space, Typography } from \"antd\";\nimport React from \"react\";\nimport { IconProps } from \"types/budget\";\n\nconst BudgetCard = ({ icon, text }: IconProps) => {\n const { Text } = Typography;\n\n return (\n <Flex\n style={{\n backgroundColor: \"#f4f4f4\",\n border: \"1px solid #e2e2e2\",\n height: \"175px\",\n width: \"175px\",\n }}\n justify=\"center\"\n align=\"center\"\n >\n <Space direction=\"vertical\" align=\"center\">\n {icon}\n <Text style={{ marginTop: \"25px\", fontSize: \"16px\", display: \"block\" }}>\n {text}\n </Text>\n </Space>\n </Flex>\n );\n};\n\nexport default BudgetCard;\n","/*eslint-disable*/\n//@ts-nocheck\nimport React, { useState, useEffect } from \"react\";\nimport { Table, Button, Space, Flex, theme, message, Modal } from \"antd\";\nimport { useMutation, useQuery, useQueryClient } from \"react-query\";\nimport { getAllValuesBreakdowns, getDateRanges, getSingleBudget, postBudgetDetails } from \"api/budgets\";\nimport { useTranslation } from \"react-i18next\";\nimport i18next from \"i18next\";\nimport moment from \"moment\";\nimport BudgetDetailsHeaderSection from \"./BudgetDetailsHeaderSection\";\nimport { useBudgetDetailsColumns, useResetRowDataModal } from \"hooks/budgets\";\nimport { calculateBudgetAmount, getBudgetIdFromUrl, resetDateToZero ,updateParent} from \"helpers/budgets\";\nimport BrakeDownModal from \"./BreakDownModal\";\nimport { BudgetContextType, BudgetRow ,BudgetDetailsT} from \"types/budget\";\nconst { useToken } = theme;\nconst id = getBudgetIdFromUrl();\nexport const BudgetContext = React.createContext<BudgetContextType>(null);\nconst BudgetDetails = ({permissions}) => {\n const queryClient = useQueryClient();\n const { t } = useTranslation();\n const { token } = useToken();\n const [cycle, setCycle] = useState({ no: 12, type: \"monthly\" });\n const [formData, setFormData] = useState({});\n const [modalOpen, setModalOpen] = useState(false);\n const [selectedRow, setSelectRow] = useState<BudgetRow | null>(null);\n const [originalCycle, setOriginalCycle] = useState(null);\n const [initialRowData, setInitialRowData] = useState({});\n const [isSaveButtonDisabled, setIsSaveButtonDisabled] = useState(true);\n const queryParams = new URLSearchParams(window.location.search);\n const type = queryParams.get(\"type\");\n const [expandedKeys, setExpandedKeys] = useState([]);\n\n if (i18next.language === \"ar\") {\n moment.locale(\"ar\");\n }\n\n const { data: dateRanges } = useQuery({\n queryKey: [\"date_ranges\", id, cycle],\n queryFn: () => getDateRanges(id, cycle.type),\n });\n const { data: breakDownValues } = useQuery({\n queryKey: [\"break_down_values\", modalOpen],\n queryFn: () => getAllValuesBreakdowns(),\n });\n\n const { data, isLoading } = useQuery<BudgetDetailsT>({\n queryKey: [\"budget_details\", id],\n queryFn: () => getSingleBudget(id),\n onSuccess: (data) => {\n setCycle({ no: data?.cycle === \"quarterly\" ? 4 : 12, type: data?.cycle });\n },\n });\n\n const updateBudgetDetails = useMutation({\n mutationFn: (data) => postBudgetDetails(data, id),\n onSuccess() {\n message.success(t(\"budgets.show.budget_details.saved\"));\n queryClient.invalidateQueries({ queryKey: [\"budget_details\"] });\n setIsSaveButtonDisabled(true);\n },\n });\n\n const updateParentNodes = (formData) => {\n Object.keys(formData).forEach((recordId) => {\n const record = formData[recordId];\n if (record.parentId) {\n updateParent(formData, record.parentId, cycle);\n }\n });\n };\n\n useEffect(() => {\n if (data && data.cycle) {\n setOriginalCycle(data.cycle);\n }\n }, [data]);\n\n const getAllKeysRecursively = (row) => {\n if (!row) return [];\n\n const rowKey = row.id;\n const childKeys = row.children\n ? row.children.flatMap(getAllKeysRecursively)\n : [];\n\n return [rowKey, ...childKeys];\n };\n useEffect(() => {\n const initialData = {};\n const addInitialData = (data, parentId = null) => {\n data.forEach((account) => {\n const values = account?.budgeting_values?.values || [];\n initialData[account.id] = {\n ...account,\n ...Object.fromEntries(\n Array.from({ length: cycle.no }, (_, i) => [\n i + 1,\n parseFloat(values[i] || 0),\n ])\n ),\n budget_amount: calculateBudgetAmount(values),\n children: account.children.map((child) => child?.id),\n parentId,\n budgeting_value_id: account.budgeting_values?.id,\n };\n if (account.children.length) {\n addInitialData(account.children, account?.id);\n }\n });\n };\n if (data && dateRanges && cycle.type === data?.cycle) {\n addInitialData(data?.budgetings);\n updateParentNodes(initialData);\n setFormData(initialData);\n setInitialRowData(initialData);\n\n const firstRow = data?.budgetings.sort((a, b) => {\n const codeA = a.code;\n const codeB = b.code;\n return codeA.localeCompare(codeB);\n })[0]\n if (firstRow) {\n const expandedKeys = getAllKeysRecursively(firstRow);\n setExpandedKeys(expandedKeys);\n }\n } else {\n const resetData = resetDateToZero(formData, cycle);\n setFormData(resetData);\n setInitialRowData(resetData);\n }\n }, [data, dateRanges, cycle]);\n\n const handleReset = (recordId = null) => {\n setFormData((prevFormData) => {\n let newFormData = { ...prevFormData };\n const resetRecord = (id) => {\n if (newFormData[id] && initialRowData[id]) {\n if (cycle.type !== originalCycle) {\n newFormData[id] = {\n ...newFormData[id],\n budget_amount: 0,\n ...Object.fromEntries(\n Array.from({ length: cycle.no }, (_, index) => [index + 1, 0])\n ),\n };\n } else {\n newFormData[id] = {\n ...newFormData[id],\n budget_amount: initialRowData[id].budget_amount,\n ...Object.fromEntries(\n Array.from({ length: cycle.no }, (_, index) => [\n index + 1,\n initialRowData[id][index + 1] || 0\n ])\n ),\n };\n }\n newFormData[id].children.forEach((childId) => resetRecord(childId));\n \n updateParent(newFormData, newFormData[id].parentId,cycle); \n }\n }; \n if (recordId) {\n resetRecord(recordId);\n const hasUnsavedChanges = Object.keys(newFormData).some((key) => {\n return (\n JSON.stringify(newFormData[key]) !==\n JSON.stringify(initialRowData[key])\n );\n }); \n setIsSaveButtonDisabled(!hasUnsavedChanges);\n } else {\n Object.keys(newFormData).forEach(key => {\n resetRecord(key);\n });\n \n Object.keys(newFormData).forEach(key => {\n if (!newFormData[key].parentId) {\n updateParent(newFormData, key, cycle);\n }\n });\n setIsSaveButtonDisabled(true);\n }\n return newFormData;\n });\n };\n const { showResetRowModal, resetRowModal } =\n useResetRowDataModal(handleReset);\n\n const handleInputChange = (e, recordId, field) => {\n e.preventDefault();\n let value = e.target.value;\n value = value.replace(/^0+(?=\\d)/, ''); \n const isValidNumber = /^[0-9]*$/.test(value);\n const totalDigits = value.length;\n\n if (isValidNumber && totalDigits <= 10) {\n setFormData((prevFormData) => {\n const updatedRecord = {\n ...prevFormData[recordId],\n [field]: value === \"\" ? 0 : value, \n };\n const newFormData = {\n ...prevFormData,\n [recordId]: updatedRecord,\n };\n setIsSaveButtonDisabled(false);\n\n return newFormData;\n });\n }\n };\n\n const handleBlur = (e, recordId, field) => {\n handleInputChange(e, recordId, field);\n \n setFormData((prevFormData) => {\n const updatedRecord = { ...prevFormData[recordId] };\n \n const numberOfFields = dateRanges.length === 4 ? 4 : 12;\n const ranges = Array.from(\n { length: numberOfFields },\n (_, index) => index + 1\n );\n updatedRecord.budget_amount = ranges.reduce((sum, key) => {\n const fieldValue = parseFloat(updatedRecord[key]) || 0;\n return sum + fieldValue;\n }, 0);\n\n const newFormData = {\n ...prevFormData,\n [recordId]: updatedRecord,\n };\n\n const finalFormData = updateParent(\n newFormData,\n newFormData[recordId].parentId,cycle\n );\n setIsSaveButtonDisabled(false);\n return finalFormData || newFormData;\n });\n };\n\n const handleSubmit = () => {\n const convertObjectToArray = (obj) => {\n return Object.entries(obj).map(([key, value]) => {\n const valuesArray = Array.from({ length: cycle.no }, (_, index) => {\n const valueNumber = parseFloat(value[index + 1]) || 0;\n return valueNumber;\n });\n return {\n budgeting_id: key,\n values: valuesArray,\n };\n });\n };\n\n const formDataResult = new FormData();\n\n const result = convertObjectToArray(formData);\n\n result.forEach((el, i) => {\n formDataResult.append(`budget[budgeting_values][]`, JSON.stringify(el));\n });\n\n formDataResult.append(\"budget[cycle]\", cycle.type);\n\n updateBudgetDetails.mutate(formDataResult as any, {\n onSuccess: () => {\n window.location.href = \"/tenant/budgets\";\n },\n });\n };\n\n const renderTable = (data) => {\n if (!data) return [];\n const sortedData = [...data].sort((a, b) => {\n const codeA = a.code;\n const codeB = b.code;\n return codeA < codeB ? -1 : codeA > codeB ? 1 : 0;\n });\n\n return sortedData.map((item) => ({\n key: item?.id,\n id: item?.id,\n code: item.code,\n name: i18next.language === \"en\" ? item.en_name : item.ar_name,\n budget_amount: formData[item?.id]?.budget_amount || 0,\n budgeting_value_id: item.budgeting_values?.id,\n ...Object.fromEntries(\n Array.from({ length: cycle.no }, (_, index) => [\n index + 1,\n formData[item?.id]?.[index + 1] || 0,\n ])\n ),\n children: item.children ? renderTable(item.children) : undefined,\n }));\n };\n\n const dataSource = renderTable(data?.budgetings);\n\n const rowExpandable = (record) => {\n return record.children && record.children.length > 0;\n };\n\n const handleExpand = (expanded, record) => {\n setExpandedKeys((prevExpandedKeys) => {\n if (expanded) {\n return [...prevExpandedKeys, record.key];\n } else {\n return prevExpandedKeys.filter((key) => key !== record.key);\n }\n });\n };\n\n const customExpandIcon = ({ expanded, onExpand, record }) => {\n if (record.children && record.children.length > 0) {\n return (\n <i\n style={{ border: `1px solid ${token.colorPrimary}` }}\n aria-label=\"icon: caret-right\"\n className={`ant-table-row-expand-icon ant-table-row-expand-icon-${\n expanded ? \"expanded\" : \"collapsed\"\n }`}\n onClick={(e) => onExpand(record, e)}\n />\n );\n }\n return null;\n };\n\n const columns = useBudgetDetailsColumns(\n cycle,\n data,\n dateRanges,\n formData,\n id,\n isSaveButtonDisabled,\n handleBlur,\n handleInputChange,\n showResetRowModal,\n permissions,\n breakDownValues\n );\n return (\n <BudgetContext.Provider\n value={{ modalOpen, setModalOpen, selectedRow, setSelectRow }}\n >\n <BrakeDownModal data={data} dateRanges={dateRanges} />\n {!isLoading && (\n <BudgetDetailsHeaderSection\n cycle={cycle}\n cycleCallBack={(value) => {\n setFormData(resetDateToZero(formData, value));\n setCycle(value);\n setIsSaveButtonDisabled(true);\n }}\n data={data}\n onReset={handleReset}\n permissions={permissions}\n />\n )}\n {!isLoading && <Table\n pagination={false}\n columns={columns}\n dataSource={dataSource}\n tableLayout=\"fixed\"\n scroll={{ x: \"max-content\", y: 500 }}\n expandable={{\n expandedRowKeys: expandedKeys, \n onExpand: handleExpand,\n rowExpandable,\n expandIcon: customExpandIcon,\n }}\n />}\n {permissions[\"write\"] && type == \"edit\" &&\n <Flex justify=\"end\" style={{ marginTop: token.marginLG }}>\n <Space>\n <Button\n type=\"primary\"\n onClick={handleSubmit}\n disabled={isSaveButtonDisabled}\n >\n {t(\"budgets.show.save\")}\n </Button>\n <Button\n onClick={() => {\n window.location.href = \"/tenant/budgets\";\n }}\n >\n {t(\"budgets.show.cancel\")}\n </Button>\n </Space>\n {resetRowModal}\n </Flex>}\n </BudgetContext.Provider>\n );\n};\n\nexport default BudgetDetails;\n","//@ts-nocheck\nimport React from \"react\";\nimport { Row, Col, Select, Button } from \"antd\";\nimport i18next from \"i18next\";\nimport { useTranslation } from \"react-i18next\";\nimport { useResetAllModal } from \"hooks/budgets\";\nconst { Option } = Select;\n\nconst HeaderSection = ({\n cycle,\n cycleCallBack,\n data,\n onReset,\n permissions,\n}) => {\n const { t } = useTranslation();\n const nameKey = i18next.language === \"en\" ? \"name_en\" : \"name_ar\";\n const name = data ? data[nameKey] : undefined;\n const fiscalYear = data\n ? new Date(data?.fiscal_year).getFullYear()\n : undefined;\n const budgetKind = data ? t(`budgets.show.type.${data?.kind}`) : undefined;\n const { showResetModal, resetModal } = useResetAllModal(() => {\n onReset(null);\n });\n\n const queryParams = new URLSearchParams(window.location.search);\n const type = queryParams.get(\"type\");\n return (\n <>\n <Row\n style={{\n justifyContent: \"space-between\",\n alignItems: \"center\",\n }}\n >\n <Col>\n <h2>\n {name}-\n {type == \"edit\"\n ? t(\"budgets.show.header.edit\")\n : t(\"budgets.show.header.view\")}\n </h2>\n <div>\n <strong>\n {data?.base &&\n t(`budgets.show.budget_details.base.${data?.base}`)}\n </strong>\n </div>\n <div>\n <strong>{budgetKind}</strong>\n </div>\n <div>\n <p style={{ marginBottom: 0 }}>\n {t(\"budgets.attributes.reference\")} {data?.code}\n </p>\n </div>\n <div>\n <p style={{ marginBottom: 0 }}>\n {t(\"budgets.attributes.fiscal_year\")} {fiscalYear}\n </p>\n </div>\n </Col>\n <Col>\n {permissions[\"write\"] && type == \"edit\" && (\n <div>\n <strong style={{ margin: 20 }}>\n {t(\"budgets.show.header.view_period\")}\n </strong>\n <Select\n defaultValue={cycle.type}\n onChange={(value) => {\n if (value === \"quarterly\") {\n cycleCallBack({ type: \"quarterly\", no: 4 });\n } else {\n cycleCallBack({ type: \"monthly\", no: 12 });\n }\n }}\n style={{ width: 250, marginTop: 10 }}\n >\n <Option value=\"monthly\">\n {t(\"budgets.show.header.months\")}\n </Option>\n <Option value=\"quarterly\">\n {t(\"budgets.show.header.quarters\")}\n </Option>\n </Select>\n </div>\n )}\n <div\n style={{\n display: \"flex\",\n marginTop: 15,\n justifyContent: \"flex-end\",\n }}\n >\n {permissions[\"write\"] && type == \"edit\" && (\n <Button type=\"primary\" onClick={showResetModal}>\n {t(\"budgets.show.reset\")}\n </Button>\n )}\n </div>\n </Col>\n </Row>\n {resetModal}\n </>\n );\n};\n\nexport default HeaderSection;\n","/* eslint-disable*/\n//@ts-nocheck\nimport React, { useEffect, useState } from \"react\";\nimport { MinusCircleOutlined, PlusOutlined } from \"@ant-design/icons\";\nimport { Button, Flex, Form, FormListFieldData, Select } from \"antd\";\nimport { useTranslation } from \"react-i18next\";\nimport { useInfiniteQuery } from \"react-query\";\nimport { getBudgetDimensions } from \"api/budgets\";\nimport Title from \"antd/es/typography/Title\";\n\nconst { Option } = Select;\n\nconst BudgetDimensions = ({ type, budget, hasValues }) => {\n const { t, i18n } = useTranslation();\n const [selectedDimensions, setSelectedDimensions] = useState([]);\n const [hasDimensions,setHasDimensions] =useState(false)\n\n useEffect(() => {\n if (type === \"edit\" && budget?.dimensions) {\n const preSelected = budget.dimensions.map((el) => ({\n value: el.selectedDimension.value,\n code: el.selectedDimension.code,\n name_ar: el.selectedDimension.name_ar,\n name_en: el.selectedDimension.name_en,\n }));\n setSelectedDimensions(preSelected);\n }\n }, [type, budget]);\n\n useEffect(() => {\n setHasDimensions(budget?.dimensions?.length>0);\n }, [budget]);\n\n const { data, fetchNextPage, hasNextPage, isFetchingNextPage } =\n useInfiniteQuery(\n \"budgetDimensions\",\n ({ pageParam = 1 }) => getBudgetDimensions(pageParam),\n {\n getNextPageParam: (lastPage) => {\n const nextPage = lastPage.pagination.next_page;\n return nextPage ? nextPage : undefined;\n },\n }\n );\n\n const dimensions = data?.pages.flatMap((page) => page.records) || [];\n\n const handleSelectChange = (value: any, field: FormListFieldData) => {\n setSelectedDimensions((prevSelectedDimensions) => {\n const newSelectedDimensions = [...prevSelectedDimensions];\n newSelectedDimensions[field.name] = value;\n return newSelectedDimensions;\n });\n };\n\n const handleRemove = (field: FormListFieldData) => {\n setSelectedDimensions((prevSelectedDimensions) =>\n prevSelectedDimensions.filter((_, index) => index !== field.name)\n );\n };\n\n const handlePopupScroll = (e) => {\n const { scrollTop, scrollHeight, clientHeight } = e.target;\n if (\n scrollTop + clientHeight >= scrollHeight &&\n hasNextPage &&\n !isFetchingNextPage\n ) {\n if (hasNextPage) {\n fetchNextPage();\n }\n }\n };\n\n return (\n <>\n {(dimensions.length) ? (\n <>\n <Title level={4} style={{ fontWeight: 500 }}>\n {t(\"activerecord.attributes.contact.additional_information\")}\n </Title>\n <Form.List name=\"dimensions\">\n {(fields, { add, remove }) => (\n <>\n {fields.map((field) => (\n <Form.Item\n required={false}\n key={field.key}\n label={t(\n \"activerecord.attributes.dimension_value.dimension_code_name\"\n )}\n style={{\n maxWidth: 600,\n fontSize: \"12px\",\n fontWeight: \"normal\",\n }}\n >\n <Flex align=\"center\" gap={10}>\n <Form.Item\n key={field.key}\n {...field}\n name={[field.name, \"selectedDimension\"]}\n validateTrigger={[\"onChange\", \"onBlur\"]}\n rules={[\n {\n required: true,\n message: t(\n \"budgets.budget_dimensions.validations.selection\"\n ),\n },\n ]}\n style={{ flex: 1, marginRight: 8, marginBottom: 0 }}\n >\n <Select\n disabled={hasValues}\n labelInValue\n onPopupScroll={handlePopupScroll}\n placeholder={t(\n \"budgets.budget_dimensions.select_dimension\"\n )}\n onChange={(value) => handleSelectChange(value, field)}\n value={selectedDimensions[field.name]}\n >\n {dimensions?.map((el) => {\n if (\n !selectedDimensions.some(\n (selected) => selected.value === el.id\n )\n ) {\n return (\n <Option key={el.id} value={el.id}>\n {el.code}-\n {i18n.language === \"en\" ? el.name_en : el.name_ar}\n </Option>\n );\n }\n return null;\n })}\n </Select>\n </Form.Item>\n {!hasValues && (\n <MinusCircleOutlined\n className=\"dynamic-delete-button\"\n onClick={() => {\n remove(field.name);\n handleRemove(field);\n }}\n style={{ marginLeft: 8 }}\n />\n )}\n </Flex>\n </Form.Item>\n ))}\n <Form.Item>\n {!hasValues && (\n <Button\n type=\"dashed\"\n onClick={() => add()}\n style={{ width: \"60%\" }}\n icon={<PlusOutlined />}\n >\n {t(\"activerecord.attributes.dimension.new\")}\n </Button>\n )}\n </Form.Item>\n </>\n )}\n </Form.List>\n </>\n ):\"\"}\n </>\n );\n};\n\nexport default BudgetDimensions;\n","//@ts-nocheck\nimport React, { useState } from \"react\";\nimport { Button, Table } from \"antd\";\nimport { useQuery } from \"react-query\";\nimport { getBudgets } from \"api/budgets\";\nimport { useTranslation } from \"react-i18next\";\nimport FilterForm from \"./FilterForm\";\nimport QEmptyIndex from \"components/layout/emptyIndex\";\nimport { PlusOutlined } from \"@ant-design/icons\";\nimport NoBudgetData from \"assets/icons/NoBudgetData.svg\";\nimport { useTableColumns } from \"hooks/budgets\";\n\nconst BudgetTable = ({ permissions }) => {\n const { t } = useTranslation();\n\n const { columns } = useTableColumns(permissions);\n\n const [filters, setFilters] = useState({});\n const [currentPage, setCurrentPage] = useState(1);\n const [pageSize, setPageSize] = useState(15);\n const [sorter, setSorter] = useState(\"id desc\");\n const [filterApplied, setFilterApplied] = useState(false);\n\n const { data, isLoading, refetch } = useQuery({\n queryKey: [\"budgets\", filters, currentPage, pageSize, sorter],\n queryFn: () => getBudgets(currentPage, filters, pageSize, sorter),\n });\n\n const extractYear = (dateString) => {\n if (dateString) {\n const date = new Date(dateString);\n return date.getFullYear();\n }\n return null;\n };\n\n const updatedData = data?.records?.map((record) => ({\n ...record,\n fiscal_year: extractYear(record.fiscal_year),\n kind: t(`budgets.attributes.${record.kind}`),\n }));\n\n const handleTableChange = (pagination, _, sorter) => {\n const order = sorter.order ? sorter.order : \"descend\";\n const columnKey = sorter.columnKey ? sorter.columnKey : \"id\"; \n setSorter(`${columnKey} ${order === \"descend\" ? \"desc\" : \"asc\"}`);\n setCurrentPage(pagination.current);\n setPageSize(pagination.pageSize);\n };\n\n const handleFilterSubmit = (values) => {\n setCurrentPage(1);\n setFilters(values);\n setFilterApplied(true);\n };\n\n const handleReset = () => {\n setFilters({});\n setCurrentPage(1);\n setPageSize(15);\n setSorter(\"\");\n setFilterApplied(false);\n };\n return (\n <div>\n {!filterApplied &&\n !isLoading &&\n (!data || !data.records || data.records.length === 0) ? (\n <QEmptyIndex\n title={t(\"budgets.index.onboarding_page_title\")}\n subTitle={t(\"budgets.index.onboarding_page_description\")}\n Icon={NoBudgetData}\n >\n {permissions[\"write\"] && (\n <Button\n icon={<PlusOutlined />}\n type=\"primary\"\n href=\"/tenant/budgets/new\"\n >\n {t(\"budgets.index.create_new_budget\")}\n </Button>\n )}\n </QEmptyIndex>\n ) : (\n <>\n <FilterForm onSubmit={handleFilterSubmit} onReset={handleReset} />\n <Table\n columns={columns}\n dataSource={updatedData}\n pagination={{\n current: currentPage,\n pageSize: pageSize,\n total: data?.pagination.total_entries,\n showSizeChanger: true,\n pageSizeOptions: [\"5\", \"15\", \"50\", \"100\"],\n }}\n loading={isLoading}\n onChange={handleTableChange}\n rowKey=\"id\"\n locale={{\n emptyText: t(\"budgets.noData\"),\n }}\n />\n </>\n )}\n </div>\n );\n};\n\nexport default BudgetTable;\n","//@ts-nocheck\nimport React from \"react\";\nimport { Form, Space, Input, Select, Button, DatePicker, Row } from \"antd\";\nimport { FilterOutlined, RedoOutlined } from \"@ant-design/icons\";\nimport { useTranslation } from \"react-i18next\";\nimport dayjs from \"dayjs\";\n\nconst { Option } = Select;\n\nconst FilterForm = ({ onSubmit, onReset }) => {\n const { t } = useTranslation();\n\n const [form] = Form.useForm();\n\n const handleFilterSubmit = () => {\n form.validateFields().then((values) => {\n onSubmit({\n ...values,\n \"q[fiscal_year_eq]\":\n values[\"q[fiscal_year_eq]\"] &&\n dayjs(values[\"q[fiscal_year_eq]\"])\n .startOf(\"year\")\n .format(\"YYYY-MM-DD\"),\n });\n });\n };\n\n const handleReset = () => {\n form.resetFields();\n onReset();\n };\n\n const disabledDate = (current) => {\n return current && current.year() < new Date().getFullYear();\n };\n\n return (\n <Form form={form} onFinish={handleFilterSubmit}>\n <Row gutter={[16, 16]} style={{ marginBottom: 16 }}>\n <Space>\n <Form.Item name=\"q[code_cont]\">\n <Input placeholder={t(\"budgets.attributes.reference\")} />\n </Form.Item>\n <Form.Item name=\"q[name_en_or_name_ar_cont]\">\n <Input placeholder={t(\"budgets.attributes.name\")} />\n </Form.Item>\n <Form.Item name=\"q[kind_eq]\">\n <Select placeholder={t(\"budgets.attributes.budget_type\")}>\n <Option value=\"0\">{t(\"budgets.attributes.accounts_budget\")}</Option>\n <Option value=\"1\">{t(\"budgets.attributes.assets_budget\")}</Option>\n <Option value=\"2\">{t(\"budgets.attributes.products_budget\")}</Option>\n </Select>\n </Form.Item>\n <Form.Item name=\"q[fiscal_year_eq]\">\n <DatePicker picker=\"year\" disabledDate={disabledDate} />\n </Form.Item>\n <Form.Item>\n <Button icon={<FilterOutlined />} type=\"primary\" htmlType=\"submit\">\n {t(\"budgets.filter\")}\n </Button>\n </Form.Item>\n <Form.Item>\n <Button icon={<RedoOutlined />} onClick={handleReset}>\n {t(\"budgets.reset\")}\n </Button>\n </Form.Item>\n </Space>\n </Row>\n </Form>\n );\n};\n\nexport default FilterForm;\n","/* eslint-disable */\n//@ts-nocheck\nimport React, { useEffect, useState } from \"react\";\nimport {\n Button,\n DatePicker,\n Form,\n Input,\n message,\n Select,\n Space,\n theme,\n TreeSelect,\n} from \"antd\";\nimport { useTranslation } from \"react-i18next\";\nimport dayjs, { Dayjs } from \"dayjs\";\nimport { useMutation, useQuery } from \"react-query\";\nimport {\n getCategories,\n getBudgetsLastReference,\n postBudget,\n getAssetClassifications,\n updateBudget,\n} from \"api/budgets\";\nimport AttachmentField from \"./AttachmentField\";\nimport { AxiosError } from \"axios\";\nimport i18next from \"i18next\";\nimport { filterTreeNode, transformData } from \"helpers/budgets\";\nimport BudgetDimensions from \"./BudgetDimensions\";\nimport { Budget, Category } from \"types/budget\";\nconst { useToken } = theme;\n\n\n\nconst { Option } = Select;\n\nconst ItemBudgeting = ({\n type = \"new\",\n budget = null,\n id = null,\n hasValues = false,\n}) => {\n const [form] = Form.useForm();\n const { TextArea } = Input;\n const { t } = useTranslation();\n const currentYear = dayjs();\n const { token } = useToken();\n const [isFormChanged, setIsFormChanged] = useState(false);\n const [initialValues, setInitialValues] = useState({});\n const disabledDate = (current: Dayjs | null): boolean => {\n return current ? current.year() < new Date().getFullYear() : false;\n };\n\n const alphanumericPattern = /^[a-zA-Z0-9-_]*\\d$/;\n\n const createBudget = useMutation({\n mutationFn: (data) => postBudget(data, id),\n onSuccess(data, variables, context) {\n window.location.href = \"/tenant/budgets\";\n },\n onError: (error: AxiosError<any>) => {\n if (error.response.data.code || error.response.data.errors) {\n message.error(\n t(\"budgets.accounts_budgeting.fields.reference.validation3\")\n );\n }\n },\n });\n\n const editBudget = useMutation({\n mutationFn: (data) => updateBudget(data, id),\n onSuccess(data, variables, context) {\n window.location.href = \"/tenant/budgets\";\n },\n onError: (error: AxiosError<any>) => {\n if (error.response.data.code || error.response.data.errors) {\n message.error(\n t(\"budgets.accounts_budgeting.fields.reference.validation3\")\n );\n }\n },\n });\n\n const lastReference = useQuery({\n queryKey: \"budgetsLastReference\",\n queryFn: () => getBudgetsLastReference(),\n }).data?.next_code;\n\n const categories = useQuery({\n queryKey: \"categories\",\n queryFn: () => getCategories(),\n }).data;\n\n const assetClassifications = useQuery({\n queryKey: \"asset_classifications\",\n queryFn: () => getAssetClassifications(),\n }).data;\n\n const transformCategories = transformData<Category>(categories, \"name\");\n\n const handleSubmit = (formData: FormData) => {\n if (type == \"new\") {\n createBudget.mutate(formData as any);\n } else {\n editBudget.mutate(formData as any);\n }\n };\n \n const onFinish = (values: Budget) => {\n const formData = new FormData();\n \n if (type === \"new\") {\n formData.append(\"budget[code]\", values.code);\n values.description && formData.append(\"budget[description]\", values.description);\n formData.append(\"budget[name_ar]\", values.name_ar);\n formData.append(\"budget[name_en]\", values.name_en);\n !hasValues && formData.append(\"budget[fiscal_year]\", values.fiscal_year.add(0, \"month\").toISOString());\n values.kind && formData.append(\"budget[kind]\", values.kind);\n !hasValues && formData.append(\"budget[transaction_type]\", values.transaction_type);\n !hasValues && formData.append(\"budget[base]\", values.base);\n \n values.category_ids?.forEach((el) => {\n !hasValues && formData.append(`budget[category_ids][]`, el);\n });\n \n values.asset_classification_ids?.forEach((el) => {\n !hasValues && formData.append(`budget[asset_classification_ids][]`, el);\n });\n \n const attachment = values.attachment?.map((el) => el.originFileObj);\n \n attachment?.forEach((file) => {\n formData.append(`budget[attachments][]`, file);\n });\n \n values.dimensions?.forEach((el) => {\n formData.append(`budget[dimension_ids][]`, el.selectedDimension.value);\n });\n \n handleSubmit(formData);\n \n } else {\n let hasData = false;\n const updatedFormData = new FormData();\n for (const key in values) {\n if (\n values.hasOwnProperty(key) &&\n JSON.stringify(values[key]) !== JSON.stringify(initialValues[key])\n ) {\n if (key === \"fiscal_year\") {\n const fiscalYearValue = values[key].add(0, \"month\").toISOString();\n updatedFormData.append(`budget[${key}]`, fiscalYearValue);\n } else if (key === \"category_ids\") {\n values[key].forEach((el) => {\n updatedFormData.append(`budget[category_ids][]`, el); \n });\n } else if (key === \"asset_classification_ids\") {\n values[key].forEach((el) => {\n updatedFormData.append(`budget[asset_classification_ids][]`, el); \n });\n } else if (key === \"dimensions\") {\n values[key].forEach((dimension) => {\n const dimensionId = dimension.selectedDimension?.value; \n updatedFormData.append(`budget[dimension_ids][]`, dimensionId);\n });\n } else if (key === \"attachment\") {\n const attachment = values.attachment?.map((el) => el.originFileObj);\n attachment?.forEach((file) => {\n updatedFormData.append(\"budget[attachments][]\", file);\n });\n } else {\n updatedFormData.append(`budget[${key}]`, values[key]);\n }\n }\n } \n updatedFormData.forEach((value, key) => {\n hasData = true;\n }); \n if (hasData) {\n handleSubmit(updatedFormData as any); \n } \n updatedFormData.forEach((value, key) => {\n });\n }\n };\n \n\n const [selectedItemCategory, setSelectedItemCategory] = useState(\n budget?.kind || \"\"\n );\n const [selectedTransaction, setSelectedTransaction] = useState(\n budget?.transaction_type || \"\"\n );\n\n useEffect(() => {\n if (lastReference) {\n const incomingData = type === \"edit\" ? budget : { code: lastReference };\n form.setFieldsValue(incomingData);\n setInitialValues(incomingData);\n }\n }, [lastReference, form, budget]);\n\n return (\n <Form\n name=\"itemBudgeting\"\n form={form}\n labelCol={{ span: 8 }}\n wrapperCol={{ span: 16 }}\n style={{\n maxWidth: 600,\n fontSize: token.fontSizeSM,\n fontWeight: \"normal\",\n }}\n onFinish={onFinish}\n initialValues={{\n fiscal_year: currentYear,\n }}\n autoComplete=\"off\"\n onValuesChange={() => setIsFormChanged(true)}\n >\n <Form.Item\n label={t(\"budgets.accounts_budgeting.fields.reference.name\")}\n name=\"code\"\n rules={[\n {\n required: true,\n message: t(\n \"budgets.accounts_budgeting.fields.reference.validation1\"\n ),\n },\n {\n max: 25,\n message: t(\n \"budgets.accounts_budgeting.fields.reference.validation4\"\n ),\n },\n {\n pattern: alphanumericPattern,\n message: t(\n \"budgets.accounts_budgeting.fields.reference.validation2\"\n ),\n },\n ]}\n >\n <Input />\n </Form.Item>\n <Form.Item\n label={t(\"budgets.accounts_budgeting.fields.description.name\")}\n name=\"description\"\n rules={[\n {\n max: 100,\n message: t(\n \"budgets.accounts_budgeting.fields.description.validation\"\n ),\n },\n ]}\n >\n <TextArea rows={4} />\n </Form.Item>\n <Form.Item\n label={t(\"budgets.accounts_budgeting.fields.arabic_name.name\")}\n name=\"name_ar\"\n rules={[\n {\n required: true,\n message: t(\n \"budgets.accounts_budgeting.fields.arabic_name.validation\"\n ),\n },\n {\n max: 25,\n message: t(\n \"budgets.accounts_budgeting.fields.arabic_name.validation1\"\n ),\n },\n ]}\n >\n <Input />\n </Form.Item>\n <Form.Item\n label={t(\"budgets.accounts_budgeting.fields.english_name.name\")}\n name=\"name_en\"\n rules={[\n {\n required: true,\n message: t(\n \"budgets.accounts_budgeting.fields.english_name.validation\"\n ),\n },\n {\n max: 25,\n message: t(\n \"budgets.accounts_budgeting.fields.english_name.validation1\"\n ),\n },\n ]}\n >\n <Input />\n </Form.Item>\n <Form.Item\n label={t(\"budgets.accounts_budgeting.fields.fiscal_year.name\")}\n name=\"fiscal_year\"\n rules={[\n {\n required: true,\n message: t(\n \"budgets.accounts_budgeting.fields.fiscal_year.validation\"\n ),\n },\n ]}\n >\n <DatePicker\n disabled={hasValues}\n inputReadOnly\n picker=\"year\"\n disabledDate={disabledDate}\n />\n </Form.Item>\n <Form.Item\n rules={[\n {\n required: true,\n message: t(\"budgets.item_budgeting.fields.bases.validation\"),\n },\n ]}\n label={t(\"budgets.item_budgeting.fields.bases.name\")}\n name=\"base\"\n >\n <Select disabled={hasValues}>\n <Option value=\"quantity\">\n {t(\"budgets.item_budgeting.fields.bases.quantity_base\")}\n </Option>\n <Option value=\"amount\">\n {t(\"budgets.item_budgeting.fields.bases.amount_base\")}\n </Option>\n </Select>\n </Form.Item>\n <Form.Item\n label={t(\"budgets.item_budgeting.fields.transaction_types.name\")}\n name=\"transaction_type\"\n rules={[\n {\n required: true,\n message: t(\n \"budgets.item_budgeting.fields.transaction_types.validation\"\n ),\n },\n ]}\n >\n <Select\n disabled={type === \"edit\"}\n onChange={(value) => {\n setSelectedTransaction(value);\n form.resetFields([\n \"category_ids\",\n \"kind\",\n \"asset_classification_ids\",\n ]);\n setSelectedItemCategory(\"\");\n }}\n >\n <Option value=\"sale\">\n {t(\"budgets.item_budgeting.fields.transaction_types.sales_budget\")}\n </Option>\n <Option value=\"purchase\">\n {t(\n \"budgets.item_budgeting.fields.transaction_types.purchase_budget\"\n )}\n </Option>\n </Select>\n </Form.Item>\n {selectedTransaction != \"sale\" && (\n <Form.Item\n label={t(\"budgets.item_budgeting.fields.item_category.name\")}\n name=\"kind\"\n rules={[\n {\n required: true,\n message: t(\n \"budgets.item_budgeting.fields.item_category.validation\"\n ),\n },\n ]}\n >\n <Select\n disabled={type === \"edit\"}\n onChange={(value) => {\n setSelectedItemCategory(value);\n form.resetFields([\"category_ids\"]);\n form.resetFields([\"asset_classification_ids\"]);\n }}\n >\n <Option value=\"products_budget\">\n {t(\n \"budgets.item_budgeting.fields.item_category.product_categories\"\n )}\n </Option>\n <Option value=\"assets_budget\">\n {t(\n \"budgets.item_budgeting.fields.item_category.asset_classification\"\n )}\n </Option>\n </Select>\n </Form.Item>\n )}\n <Form.Item\n label={t(\"budgets.item_budgeting.fields.product_categories.name\")}\n name=\"category_ids\"\n rules={[\n {\n required:\n selectedItemCategory == \"products_budget\" ||\n selectedTransaction == \"sale\",\n message: t(\n \"budgets.item_budgeting.fields.product_categories.validation\"\n ),\n },\n ]}\n >\n <TreeSelect\n disabled={\n (selectedItemCategory != \"products_budget\" &&\n selectedTransaction != \"sale\") ||\n hasValues\n }\n treeData={transformCategories}\n treeCheckable\n showCheckedStrategy={TreeSelect.SHOW_PARENT}\n style={{ width: \"100%\" }}\n filterTreeNode={filterTreeNode}\n />\n </Form.Item>\n {selectedTransaction != \"sale\" && (\n <Form.Item\n label={t(\"budgets.item_budgeting.fields.asset_classification.name\")}\n name=\"asset_classification_ids\"\n rules={[\n {\n required: selectedItemCategory == \"assets_budget\",\n message: t(\n \"budgets.item_budgeting.fields.asset_classification.validation\"\n ),\n },\n ]}\n >\n <Select\n disabled={selectedItemCategory != \"assets_budget\" || hasValues}\n mode=\"multiple\"\n filterOption={(input, option) =>\n (option?.children as unknown as string)\n .toLowerCase()\n .includes(input.toLowerCase())\n }\n >\n {assetClassifications?.map((el) => {\n return (\n <Option value={el.id} key={el.id}>\n {i18next.language == \"en\" ? el.english_name : el.arabic_name}\n </Option>\n );\n })}\n </Select>\n </Form.Item>\n )}\n <AttachmentField />\n <BudgetDimensions type={type} budget={budget} hasValues={hasValues} />\n <Form.Item wrapperCol={{ offset: 8, span: 16 }}>\n <Space>\n <Button type=\"primary\" \n htmlType=\"submit\"\n disabled={!isFormChanged}>\n {type == \"edit\"\n ? t(\"budgets.edit.update\")\n : t(\"forms.buttons.save\")}\n </Button>\n <Button htmlType=\"button\" onClick={() => window.go_back()}>\n {t(\"forms.buttons.cancel\")}\n </Button>\n </Space>\n </Form.Item>\n </Form>\n );\n};\n\nexport default ItemBudgeting;\n","var _path, _path2, _path3, _path4, _path5, _g, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _rect, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgAddStock = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 80 80\"\n}, props), /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#add_stock_svg__a)\"\n}, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F5FAFE\",\n d: \"M74.08.152H5.92A5.768 5.768 0 0 0 .151 5.919V74.08a5.768 5.768 0 0 0 5.767 5.768H74.08a5.768 5.768 0 0 0 5.768-5.768V5.92A5.768 5.768 0 0 0 74.08.151Z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"m13.983 28.945 23.012 11.504v22.114L13.983 51.057V28.946Z\",\n clipRule: \"evenodd\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M14.035 28.845a.117.117 0 0 0-.107.003.105.105 0 0 0-.052.094v22.113c0 .042.025.08.063.1L36.95 62.66a.117.117 0 0 0 .107-.003.106.106 0 0 0 .052-.093V40.449a.115.115 0 0 0-.062-.1L14.035 28.845Zm.063 22.145 22.787 11.393V40.518L14.098 29.125V50.99Z\",\n clipRule: \"evenodd\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M60.007 28.945 36.995 40.449v22.114l23.012-11.505V28.946Z\",\n clipRule: \"evenodd\"\n})), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"add_stock_svg__b\",\n width: 25,\n height: 35,\n x: 36,\n y: 28,\n maskUnits: \"userSpaceOnUse\",\n style: {\n maskType: \"luminance\"\n }\n}, _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M60.007 28.945 36.995 40.449v22.114l23.012-11.505V28.946Z\"\n}))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#add_stock_svg__b)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M54.64 36.325c4.638-2.32 8.406.64 8.406 6.604s-3.768 12.692-8.407 15.01c-4.638 2.32-8.406-.64-8.406-6.604 0-5.965 3.768-12.692 8.407-15.01Z\",\n clipRule: \"evenodd\"\n}))), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M60.117 28.945a.109.109 0 0 0-.158-.097L36.947 40.352a.111.111 0 0 0-.062.1v22.114c0 .038.02.076.052.093.034.02.072.02.107.004l23.011-11.505a.111.111 0 0 0 .062-.1V28.945ZM37.106 40.518v21.865l22.787-11.394V29.124L37.106 40.518Z\",\n clipRule: \"evenodd\"\n})), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M36.995 17.438 13.983 28.944l23.012 11.504 23.012-11.504-23.012-11.508Z\",\n clipRule: \"evenodd\"\n})), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M37.044 17.337a.103.103 0 0 0-.1 0L13.931 28.841a.111.111 0 0 0 0 .2l23.011 11.505a.103.103 0 0 0 .1 0L60.056 29.04a.111.111 0 0 0 .062-.1.115.115 0 0 0-.062-.1L37.044 17.337ZM14.236 28.945l22.76 11.38 22.759-11.38-22.76-11.38-22.76 11.38Z\",\n clipRule: \"evenodd\"\n})), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#DDEBFB\",\n fillRule: \"evenodd\",\n d: \"M22.828 33.365 45.84 21.861l5.322 2.66-23.008 11.507-5.326-2.663Z\",\n clipRule: \"evenodd\"\n})), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M22.78 33.266a.111.111 0 0 0-.062.1c0 .041.024.08.062.1l5.325 2.663c.032.017.07.017.1 0l23.012-11.504a.111.111 0 0 0 .062-.1.115.115 0 0 0-.062-.1l-5.325-2.663a.103.103 0 0 0-.1 0L22.78 33.266Zm.297.1 5.073 2.538 22.76-11.38-5.074-2.538-22.759 11.38Z\",\n clipRule: \"evenodd\"\n})), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#DDEBFB\",\n fillRule: \"evenodd\",\n d: \"m22.828 33.366 5.326 2.663v11.055l-5.326-2.663V33.366Z\",\n clipRule: \"evenodd\"\n})), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M22.877 33.265a.117.117 0 0 0-.107.004.105.105 0 0 0-.052.093V44.42c0 .042.024.08.062.1l5.325 2.663a.117.117 0 0 0 .107-.003.106.106 0 0 0 .052-.093V36.028a.115.115 0 0 0-.062-.1l-5.325-2.663Zm.062 11.086 5.1 2.55V36.093l-5.1-2.549v10.806Z\",\n clipRule: \"evenodd\"\n})), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#DDEBFB\",\n fillRule: \"evenodd\",\n d: \"M59.13 39.965c4.261-2.13 7.722.588 7.722 6.068 0 5.481-3.46 11.663-7.722 13.794-4.262 2.131-7.726-.587-7.726-6.068 0-5.48 3.46-11.663 7.726-13.794Z\",\n clipRule: \"evenodd\"\n})), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M61.941 39.147c1.447.007 2.825.74 3.695 1.979.698.995 1.06 2.193 1.216 3.385.3 2.293-.097 4.652-.877 6.848-.805 2.266-2.034 4.4-3.675 6.144-1.032 1.102-2.245 2.058-3.643 2.642-.95.397-2.004.604-3.036.446-1.123-.173-2.148-.809-2.863-1.745-.788-1.029-1.188-2.313-1.354-3.598-.294-2.29.103-4.635.88-6.818.805-2.269 2.042-4.41 3.686-6.157 1.126-1.195 2.431-2.221 4.027-2.78a5.885 5.885 0 0 1 1.906-.35h.035l.003.004Zm-.024.183c-1.019 0-2.024.335-2.894.79-1.572.826-2.88 2.094-3.962 3.52a18 18 0 0 0-3.011 6.168c-.539 1.997-.757 4.103-.342 6.127.28 1.375.867 2.715 1.99 3.613.907.728 2.123 1.022 3.297.866 1.517-.2 2.905-1.005 4.09-2.006 1.82-1.54 3.194-3.571 4.168-5.737 1.026-2.286 1.623-4.776 1.499-7.263-.052-1.036-.235-2.065-.636-3.025-.341-.818-.846-1.585-1.554-2.145a4.22 4.22 0 0 0-2.597-.904h-.041l-.007-.004Z\",\n clipRule: \"evenodd\"\n})), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"m54.395 60.107-2.608-1.302c-1.816-.908-2.987-3.163-2.987-6.348 0-5.48 3.46-11.663 7.726-13.794 1.785-.89 3.429-.935 4.734-.28l2.608 1.303c-1.309-.653-2.953-.611-4.735.28-4.262 2.13-7.726 8.312-7.726 13.793 0 3.188 1.171 5.44 2.988 6.348Z\",\n clipRule: \"evenodd\"\n})), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M59.33 37.841c.68 0 1.364.152 1.972.456l2.607 1.302.028.02c.017.032.028.07.014.101s-.048.048-.083.055c0 0-.062-.02-.117-.045a4.406 4.406 0 0 0-2.197-.386c-1.191.09-2.314.587-3.295 1.23-1.602 1.046-2.9 2.513-3.944 4.137-1.302 2.023-2.217 4.31-2.614 6.69-.297 1.785-.321 3.64.217 5.37.35 1.112.95 2.172 1.91 2.88.19.142.394.266.608.373l.028.02c.017.032.027.07.014.1a.094.094 0 0 1-.052.046c-.031.01-.042 0-.07-.004-.873-.435-1.743-.87-2.617-1.309a4.717 4.717 0 0 1-1.668-1.45c-.76-1.05-1.136-2.338-1.285-3.626-.263-2.31.162-4.677.967-6.866.819-2.224 2.044-4.31 3.671-6.023 1.088-1.144 2.373-2.128 3.837-2.673a5.904 5.904 0 0 1 2.055-.398h.017-.003Zm-.017.187c-1.005 0-2 .324-2.87.78-1.551.809-2.853 2.052-3.927 3.454a18.025 18.025 0 0 0-3.008 6.02c-.574 2.02-.815 4.165-.435 6.206.245 1.312.766 2.593 1.74 3.516.304.286.646.532 1.02.718l1.488.746c-.95-.884-1.496-2.13-1.769-3.37-.32-1.479-.297-3.026-.062-4.529.366-2.372 1.247-4.662 2.511-6.7 1.119-1.806 2.545-3.45 4.355-4.572 1.302-.808 2.797-1.347 4.358-1.081h.007l-1.516-.757a4.29 4.29 0 0 0-1.865-.428h-.027v-.003Z\",\n clipRule: \"evenodd\"\n})), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M58.314 49.28V46.65c0-.725.48-1.554 1.071-1.847.59-.294 1.07.055 1.07.78v2.628l2.138-1.07c.591-.294 1.071.055 1.071.78 0 .726-.48 1.555-1.07 1.848l-2.138 1.07v2.629c0 .725-.48 1.554-1.071 1.848-.59.293-1.07-.056-1.07-.78v-2.63l-2.138 1.072c-.591.293-1.071-.056-1.071-.781s.48-1.554 1.07-1.848l2.138-1.07Z\",\n clipRule: \"evenodd\"\n})), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M59.796 44.514a.809.809 0 0 1 .684.407c.114.2.155.432.155.66v2.331c.625-.314 1.254-.629 1.879-.94.37-.179.843-.158 1.112.201.283.38.26.922.114 1.392-.176.57-.546 1.108-1.067 1.37l-2.038 1.02v2.524a2.412 2.412 0 0 1-.787 1.734c-.318.294-.767.487-1.15.345a.812.812 0 0 1-.397-.331 1.294 1.294 0 0 1-.173-.684v-2.331c-.625.314-1.254.628-1.879.94-.363.175-.843.158-1.112-.201-.287-.383-.259-.922-.114-1.392.176-.57.546-1.108 1.067-1.371l2.038-1.019v-2.524c.007-.74.397-1.489.984-1.893a1.22 1.22 0 0 1 .656-.235h.024l.004-.003Zm-.014.186c-.37.004-.708.266-.953.573-.314.394-.515.881-.515 1.382v2.628c-.715.36-1.43.712-2.144 1.074-.715.366-1.157 1.278-1.05 2.048.034.256.148.518.407.632.204.09.45.045.65-.055l2.137-1.07v2.638c0 .304.083.632.36.794.259.152.604.066.877-.124.56-.39.898-1.091.898-1.748v-2.628c.715-.359 1.43-.711 2.144-1.074.715-.366 1.157-1.278 1.05-2.048-.034-.255-.148-.518-.407-.632-.204-.09-.45-.045-.65.055l-2.137 1.071v-2.639c0-.303-.083-.632-.36-.794a.641.641 0 0 0-.3-.083h-.01.003Z\",\n clipRule: \"evenodd\"\n})), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"m58.712 53.058.95-.477v2.628c0 .411.155.702.393.822l-.95-.476c-.241-.121-.393-.411-.393-.822v-1.678.003Zm-1.869.632-.932-.466c-.245-.118-.404-.411-.404-.83 0-.724.48-1.553 1.07-1.847l2.138-1.07v-2.629c0-.725.48-1.554 1.07-1.847.257-.128.491-.135.674-.042l.95.477c-.183-.093-.418-.087-.673.041-.59.294-1.071 1.123-1.071 1.848v2.628l-2.138 1.07c-.59.294-1.07 1.123-1.07 1.848 0 .408.148.695.386.819Zm4.96-5.754 1.188-.594c.27-.134.518-.134.704-.024l.905.452c-.183-.086-.41-.076-.663.049l-2.138 1.07v-.95l.004-.003Z\",\n clipRule: \"evenodd\"\n})), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M59.848 52.585v2.638c0 .26.069.536.29.65l.104.165-.266.166-.95-.477c-.339-.169-.494-.59-.497-.987V53.06l.1-.166.95-.476c.09.055.176.11.265.166h.004Zm-1.136.473v1.678c0 .325.107.677.393.822 0 .356 1.268.636.95.477-.283-.142-.394-.494-.394-.822v-2.628c-.317.159-.635.317-.95.476v-.003Zm1.478-8.344c.12 0 .242.028.349.08l-.197.12c-.304-.076-.618.09-.84.27-.331.276-.566.66-.694 1.074-.058.19-.093.39-.093.587v2.628c-.715.36-1.43.711-2.145 1.074-.545.28-.908.884-1.025 1.492-.087.445-.045.98.37 1.181l.117.059c.272.135.556.563.811.407a.025.025 0 0 1-.014-.007c-.259-.145-.362-.486-.37-.763-.016-.628.287-1.274.757-1.682.093-.083.2-.155.311-.214l2.138-1.07V47.31c.007-.777.452-1.589 1.146-1.875.187-.076.404-.104.598-.007.02-.356-.636-.321-.957-.477a.605.605 0 0 0-.11-.041l.197-.121.95.477.1.165-.267.166c-.207-.104-.459 0-.628.11-.373.246-.629.65-.763 1.085a1.755 1.755 0 0 0-.087.535v2.628l-.1.166c-.715.356-1.43.712-2.145 1.07-.486.25-.8.781-.918 1.317-.055.248-.073.51.024.753.045.11.117.214.221.269v.328h-.17c-.31-.155-.62-.31-.928-.466-.442-.221-.577-.819-.47-1.371.128-.677.535-1.333 1.133-1.634l2.038-1.019v-2.524c.006-.801.48-1.637 1.14-1.986.158-.086.334-.142.52-.142v-.003Zm3.205 2.338c.134 0 .27.035.386.1l.902.45-.024.048.041-.025.007-.01v.007l.1.155-.259.152c-.01.02-.01.007-.01.007l.01-.007.163-.31-.01.006-.167.315-.007-.018.132-.272h-.007l-.055.117-.905-.453s-.028-.013-.045-.024c-.204-.096-.456-.051-.66.049l-1.188.594v.95c.715-.356 1.43-.716 2.145-1.071.2-.097.438-.145.653-.049l-.07.152s.007.021-.01.014c-.159-.069-.345-.02-.494.052l-2.137 1.067-.266-.166v-.95l.1-.165c.397-.2.794-.4 1.195-.598.152-.072.314-.12.483-.12l-.003.003Z\",\n clipRule: \"evenodd\"\n})), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M59.665 49.956v-2.628c0-.725.48-1.554 1.07-1.848.591-.293 1.071.056 1.071.781v2.628l2.138-1.07c.59-.294 1.07.055 1.07.78s-.48 1.554-1.07 1.848l-2.138 1.07v2.629c0 .725-.48 1.554-1.07 1.847-.591.294-1.071-.055-1.071-.78v-2.628l-2.138 1.07c-.59.294-1.07-.055-1.07-.78s.48-1.554 1.07-1.848l2.138-1.07Z\",\n clipRule: \"evenodd\"\n})), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M61.147 45.19a.81.81 0 0 1 .683.408c.114.2.156.432.156.66v2.33c.625-.313 1.253-.628 1.879-.939.372-.183.846-.155 1.112.2.286.384.259.923.114 1.393-.18.573-.556 1.112-1.068 1.37l-2.037 1.02v2.524a2.422 2.422 0 0 1-.78 1.727c-.319.293-.771.494-1.158.349a.812.812 0 0 1-.397-.332 1.285 1.285 0 0 1-.173-.684v-2.33c-.625.313-1.253.628-1.878.938-.37.18-.843.16-1.113-.2-.286-.387-.259-.932-.11-1.399.18-.566.546-1.098 1.064-1.36l2.037-1.02v-2.524c.007-.7.36-1.405.898-1.83.218-.17.474-.294.753-.297h.014l.004-.004Zm-.018.184c-.37.003-.708.265-.953.573-.314.393-.515.88-.515 1.381v2.628c-.715.36-1.43.712-2.144 1.075-.715.366-1.157 1.277-1.05 2.047.034.256.148.519.407.633.204.09.45.044.65-.056l2.137-1.07v2.638c0 .304.083.632.36.795.259.151.604.065.877-.125.56-.39.898-1.091.901-1.747v-2.629c.715-.359 1.43-.711 2.145-1.074.715-.366 1.157-1.277 1.05-2.048-.035-.255-.149-.518-.408-.632-.204-.09-.449-.044-.649.056l-2.138 1.07v-2.638c0-.304-.083-.632-.359-.795a.641.641 0 0 0-.3-.083h-.01Z\",\n clipRule: \"evenodd\"\n}))), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 79.5,\n height: 79.5,\n x: 0.25,\n y: 0.25,\n stroke: \"#CEDFF2\",\n strokeWidth: 0.5,\n rx: 7.75\n})), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"add_stock_svg__a\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 80,\n height: 80,\n fill: \"#fff\",\n rx: 8\n})))));\nconst Memo = /*#__PURE__*/memo(SvgAddStock);\nexport default Memo;","var _g, _rect, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgBarcode = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 80 80\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#barcode_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F5FAFE\",\n d: \"M74.21 0H5.79A5.79 5.79 0 0 0 0 5.79v68.42A5.79 5.79 0 0 0 5.79 80h68.42A5.79 5.79 0 0 0 80 74.21V5.79A5.79 5.79 0 0 0 74.21 0Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#DDEBFB\",\n fillRule: \"evenodd\",\n d: \"m20.64 38.907-4.17-2.083v25.794l4.17 2.087V38.907ZM20.64 38.907l43.064-21.53v25.795L20.64 64.705V38.907Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#DDEBFB\",\n fillRule: \"evenodd\",\n d: \"M59.535 15.294 16.47 36.824l4.169 2.083 43.064-21.53-4.17-2.083Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F2F6FB\",\n fillRule: \"evenodd\",\n d: \"m22.62 40.004 39.36-19.68v21.581l-39.36 19.68V40.004Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M57.729 24.512v17.457l1.301-.65V23.86l-1.301.651Zm-1.452.724v17.457l.574-.287V24.949l-.574.287Zm-17.333 8.666V51.36l.575-.287V33.615l-.575.287Zm8.778-4.389V46.97l.575-.287V29.226l-.575.287ZM30.39 38.18v17.457l.574-.287V37.893l-.574.287Zm21.068-10.532v17.457l.813-.409V27.24l-.813.409Zm-17.333 8.666V53.77l.813-.409V35.906l-.813.408Zm8.775-4.39v17.458l.813-.408V31.517l-.813.408Zm-17.333 8.667v17.457l.813-.408V40.183l-.813.408Zm14.829-7.416v17.457l1.301-.65V32.523l-1.301.651Zm8.778-4.386v17.457l1.301-.65V28.139l-1.301.65ZM31.84 37.456v17.457l1.301-.651V36.805l-1.301.65Zm21.677-10.839v17.457l1.85-.925V25.692l-1.85.925Zm-17.333 8.666V52.74l1.85-.925V34.36l-1.85.924Zm8.775-4.389v17.458l1.85-.925V29.97l-1.85.925Zm-17.333 8.667v17.457l1.85-.925V38.636l-1.85.925Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#0170F2\",\n strokeMiterlimit: 10,\n strokeOpacity: 0.5,\n strokeWidth: 0.3,\n d: \"m22.62 40.004 39.361-19.68v21.581l-39.36 19.68V40.004Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#0170F2\",\n strokeMiterlimit: 10,\n strokeOpacity: 0.5,\n strokeWidth: 0.3,\n d: \"m16.47 36.824 6.15 3.18\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#0170F2\",\n strokeMiterlimit: 10,\n strokeWidth: 0.3,\n d: \"M59.535 15.294 16.47 36.824V62.62l4.169 2.086 43.064-21.533V17.377l-4.17-2.083Z\",\n clipRule: \"evenodd\"\n}))), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 79.5,\n height: 79.5,\n x: 0.25,\n y: 0.25,\n stroke: \"#CEDFF2\",\n strokeWidth: 0.5,\n rx: 7.75\n})), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"barcode_svg__a\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 80,\n height: 80,\n fill: \"#fff\",\n rx: 8\n})))));\nconst Memo = /*#__PURE__*/memo(SvgBarcode);\nexport default Memo;","var _g, _rect, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgCheckbox = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 80 77\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#checkbox_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F5FAFE\",\n d: \"M74.08.152H5.92A5.768 5.768 0 0 0 .151 5.919V74.08a5.768 5.768 0 0 0 5.767 5.768H74.08a5.768 5.768 0 0 0 5.768-5.768V5.92A5.768 5.768 0 0 0 74.08.151Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#DDEBFB\",\n fillRule: \"evenodd\",\n d: \"M40.744 21.078c8.573-4.286 15.53 1.181 15.53 12.203 0 11.022-6.961 23.447-15.53 27.733-8.572 4.287-15.53-1.18-15.53-12.203 0-11.022 6.962-23.447 15.53-27.733Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M40.675 20.948c-8.617 4.308-15.613 16.794-15.613 27.868 0 5.567 1.767 9.728 4.608 11.96 2.853 2.241 6.792 2.554 11.14.378C49.424 56.846 56.42 44.36 56.42 33.286c0-5.567-1.767-9.728-4.607-11.96-2.853-2.24-6.792-2.554-11.14-.378Zm.134.265c4.226-2.11 8.052-1.833 10.822.348 2.784 2.184 4.495 6.27 4.495 11.725 0 10.966-6.918 23.334-15.447 27.603-4.226 2.11-8.052 1.833-10.823-.347-2.783-2.185-4.494-6.271-4.494-11.726 0-10.966 6.918-23.334 15.447-27.603Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M52.413 22.042c1.012.973 1.855 2.223 2.493 3.717L42.06 49.966c-.408.843-1.03 1.564-1.724 1.907-.652.326-1.234.26-1.642-.104l-.009-.01-6.761-6.114a1.153 1.153 0 0 1-.23-.208c-.3-.339-.478-.864-.478-1.533 0-1.585 1.003-3.375 2.236-3.991.63-.317 1.203-.265 1.607.074.026.021.052.047.078.069l5.216 4.703 12.069-22.721-.009.004Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M35.155 39.878h-.004c-.448-.369-1.073-.438-1.768-.09-1.277.638-2.319 2.483-2.319 4.125 0 .712.195 1.272.512 1.633.074.087.161.16.248.226l6.757 6.11.005.004h.004c.452.4 1.094.487 1.811.126.72-.36 1.364-1.099 1.79-1.976l12.845-24.202a.151.151 0 0 0 .005-.13c-.647-1.516-1.503-2.78-2.523-3.766a.14.14 0 0 0-.126-.039.145.145 0 0 0-.109.078L40.306 44.53l-5.069-4.573a1.544 1.544 0 0 0-.086-.078h.004Zm6.766 10.024c-.395.812-.99 1.502-1.655 1.837-.581.29-1.107.243-1.476-.083l-6.762-6.115c-.004 0-.009-.008-.013-.013a1.338 1.338 0 0 1-.204-.182c-.278-.317-.439-.812-.439-1.438 0-1.532.96-3.261 2.15-3.856.565-.282 1.081-.248 1.446.056.022.022.048.04.07.061h.004l5.216 4.704a.15.15 0 0 0 .126.034.146.146 0 0 0 .104-.078L52.46 22.286c.92.925 1.69 2.084 2.289 3.46L41.934 49.89v.008l-.013.005Zm-3.244 1.91v.1h.009v.009l-.01-.009c-.043-.039-.203-.195-.06-.273.026-.013.048.09.057.173h.004Zm3.379-1.693-.07-.282c.044-.022.07.282.07.282Zm-.018-.005h.005-.01.005ZM31.69 45.59s-.104-.27-.126-.23l.126.23Zm3.466-5.71c.035.03-.096.256-.1.26l.13-.078c-.013.022-.126.074-.13.078a.14.14 0 0 0 .139-.1.148.148 0 0 0-.04-.16Zm-.1.26s-.109-.26-.13-.222l.13.222Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M55.853 23.476c.408-.882 1.047-1.633 1.763-1.994 1.234-.616 2.237.17 2.237 1.755 0 .664-.174 1.363-.47 1.997-.077.174-.169.34-.264.5L45.379 51.62c-.409.843-1.03 1.564-1.725 1.907-.651.326-1.233.26-1.642-.104l-.008-.009-6.762-6.115a1.15 1.15 0 0 1-.23-.208c-.3-.339-.478-.864-.478-1.533 0-1.585 1.003-3.375 2.237-3.991.63-.317 1.203-.265 1.607.074.026.021.052.047.078.07l5.215 4.702 12.19-22.952-.008.014Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M55.718 23.406 43.623 46.184l-5.068-4.573a1.583 1.583 0 0 0-.087-.078h.005-.005c-.447-.37-1.072-.439-1.767-.091-1.277.638-2.32 2.484-2.32 4.125 0 .713.196 1.273.513 1.633.074.087.161.16.248.226l6.757 6.11.005.005h.004c.452.404 1.094.486 1.81.126.722-.36 1.364-1.099 1.79-1.976l13.736-25.884c.1-.165.187-.334.27-.508v.01l-.135.077.135-.087c.304-.655.486-1.376.486-2.062 0-.852-.278-1.481-.712-1.82-.447-.352-1.06-.408-1.742-.07-.742.37-1.407 1.147-1.832 2.059h.004Zm3.526 1.768c-.078.165-.164.33-.256.482v.008l-13.74 25.888v.008c-.396.813-.99 1.507-1.655 1.842-.582.29-1.108.247-1.477-.083l-6.761-6.114c-.005 0-.01-.01-.013-.013a1.34 1.34 0 0 1-.204-.183c-.279-.317-.44-.812-.44-1.437 0-1.533.96-3.262 2.15-3.857.565-.282 1.082-.247 1.447.057.021.021.047.039.07.06h.003l5.216 4.704a.153.153 0 0 0 .235-.043l12.19-22.952v-.01c.395-.846 1.003-1.576 1.694-1.919.556-.278 1.055-.252 1.42.035.373.295.6.851.6 1.585 0 .643-.17 1.32-.457 1.937l-.021.005ZM41.995 53.47v.1h.01v.009l-.01-.009c-.043-.039-.203-.195-.06-.273.026-.014.048.09.056.173h.005Zm3.37-1.698h.01-.01Zm.01 0-.07-.282c.043-.022.07.282.07.282Zm-.018 0h.005-.01.005Zm-10.349-4.525s-.104-.27-.126-.23l.126.23Zm3.466-5.71c.035.03-.096.255-.1.26l.13-.078c-.013.021-.126.073-.13.078.065 0 .122-.04.139-.1a.148.148 0 0 0-.04-.16Zm-.1.26s-.109-.26-.13-.222l.13.222Zm21.14-16.49-.13.078c.057 0 .109-.03.13-.078Zm-.268-.134s-.014.034-.014.052c0 .03.005.065.022.09.026.044.074.07.126.07a.113.113 0 0 1-.065-.017.176.176 0 0 1-.06-.052.136.136 0 0 1-.023-.091s.005-.035.014-.052Zm.134.212s-.152-.056-.148-.16c0-.018.005-.035.014-.052v-.01c.021-.038.13.214.13.222h.004Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"m42.281 53.615-2.102-1.051a1.389 1.389 0 0 1-.273-.187l-.01-.009-6.76-6.114a1.147 1.147 0 0 1-.231-.209c-.3-.338-.478-.864-.478-1.533 0-1.585 1.003-3.374 2.237-3.99.534-.266 1.02-.27 1.407-.061l1.989.998c-.365-.152-.812-.126-1.294.118-1.234.616-2.237 2.406-2.237 3.99 0 .67.178 1.195.478 1.534.07.078.148.147.23.208L42 53.424l.008.008c.083.074.174.14.274.187v-.004Zm-.417-8.816L53.751 22.42c.408-.881 1.046-1.633 1.763-1.993.517-.256.99-.27 1.372-.082l2.102 1.05c-.378-.19-.856-.177-1.368.083-.717.356-1.355 1.112-1.763 1.993l-12.19 22.952-1.799-1.624h-.004Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M42.272 53.766h.009c.07 0 .13-.047.148-.117a.175.175 0 0 0 0-.082v-.01a.163.163 0 0 0-.07-.073 1.117 1.117 0 0 1-.239-.165l-6.762-6.115c-.004 0-.008-.008-.013-.013a1.344 1.344 0 0 1-.204-.182c-.278-.317-.438-.812-.438-1.438 0-1.532.96-3.261 2.15-3.856.434-.217.837-.248 1.168-.113h.004s.004 0 .009.005h.021c.07 0 .13-.048.148-.118.009-.03.004-.056 0-.082v-.009a.163.163 0 0 0-.07-.074l-1.989-.999c-.42-.226-.96-.23-1.541.061-1.277.639-2.32 2.484-2.32 4.126 0 .712.196 1.272.513 1.633.074.087.16.16.248.226l6.757 6.11.005.004h.004c.095.083.195.152.304.209.022.008.043.017.065.017a.113.113 0 0 1-.065-.017l2.102 1.05s.039.014.056.018v.004Zm-6.27-13.171 1.285.647c-.191.034-.387.1-.591.2-1.277.638-2.32 2.484-2.32 4.125 0 .712.196 1.273.513 1.633.074.087.161.16.248.226l6.075 5.493-.972-.486a1.114 1.114 0 0 1-.24-.165v-.004l-6.76-6.115-.014-.013a1.344 1.344 0 0 1-.204-.182c-.278-.317-.439-.813-.439-1.438 0-1.533.96-3.261 2.15-3.856.482-.24.92-.252 1.268-.065Zm4.316 11.92a.133.133 0 0 1 0 .083.176.176 0 0 0 0-.082Zm-.426-.095v.1h.009v.009l-.009-.009c-.043-.04-.204-.195-.06-.274.026-.013.047.092.056.174h.004Zm-4.885-5.172-.126-.23c.021-.035.126.23.126.23ZM58.979 21.55h.009c.06 0 .113-.034.134-.086 0 0 .009-.018.009-.027a.149.149 0 0 0-.078-.169l-2.102-1.05c-.417-.21-.938-.205-1.503.082-.742.369-1.407 1.146-1.832 2.058L41.734 44.733a.159.159 0 0 0 .03.183l1.802 1.624a.154.154 0 0 0 .235-.043l12.19-22.952v-.009c.395-.847 1.003-1.576 1.694-1.92.465-.234.895-.251 1.238-.082.017.009.039.013.056.017ZM32.9 46.197s-.104-.27-.126-.23l.126.23Zm23.916-25.714 1.33.665c-.192.034-.392.1-.596.2-.742.368-1.407 1.146-1.832 2.058L43.623 46.184l-1.572-1.416 11.83-22.274v-.009c.395-.847 1.003-1.576 1.693-1.92.465-.234.895-.251 1.238-.082h.004ZM36.21 40.413c.013.038-.14.195-.144.199.07 0 .13-.048.148-.117a.176.176 0 0 0 0-.083h-.004Zm-.074-.083-.07.282s.087-.321.135-.213a.144.144 0 0 0-.065-.07ZM56.88 20.5s-.104-.265-.13-.225c-.087.143.126.225.13.225Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"m31.22 61.584-4.057-2.028c-3.656-1.829-6.006-6.358-6.006-12.768 0-11.022 6.962-23.447 15.53-27.734 3.587-1.793 6.892-1.88 9.524-.564l4.056 2.028c-2.632-1.316-5.937-1.23-9.524.564-8.572 4.287-15.53 16.716-15.53 27.734 0 6.41 2.354 10.94 6.006 12.768Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M50.26 20.666h.008c.06 0 .113-.035.134-.087 0 0 .01-.018.01-.03a.149.149 0 0 0-.08-.17l-4.055-2.028c-2.667-1.333-6.02-1.255-9.659.564-8.616 4.309-15.612 16.794-15.612 27.868 0 6.48 2.397 11.053 6.093 12.903.022.008.043.017.065.017a.113.113 0 0 1-.065-.017l4.056 2.028.056.017h.01c.06 0 .112-.035.134-.087 0-.008.008-.017.008-.03a.15.15 0 0 0-.078-.17c-3.613-1.806-5.923-6.296-5.923-12.633 0-10.965 6.918-23.334 15.447-27.603 3.54-1.767 6.797-1.858 9.39-.564.017.009.038.013.056.017l.004.005Zm-4.113-2.041 2.054 1.024c-2.237-.451-4.8-.065-7.522 1.299-8.616 4.308-15.613 16.794-15.613 27.868 0 5.298 1.603 9.324 4.204 11.621l-2.037-1.016c-3.613-1.807-5.923-6.297-5.923-12.633 0-10.966 6.918-23.334 15.447-27.603 3.54-1.768 6.797-1.86 9.39-.565v.005ZM27.164 59.703s-.117-.252-.135-.213c-.07.148.13.213.135.213Zm19.048-41.066s-.118-.251-.135-.212c-.07.147.13.212.135.212Z\",\n clipRule: \"evenodd\"\n}))), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 79.5,\n height: 79.5,\n x: 0.25,\n y: 0.25,\n stroke: \"#CEDFF2\",\n strokeWidth: 0.5,\n rx: 7.75\n})), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"checkbox_svg__a\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 80,\n height: 80,\n fill: \"#fff\",\n rx: 8\n})))));\nconst Memo = /*#__PURE__*/memo(SvgCheckbox);\nexport default Memo;","var _g, _rect, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgScanner = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 80 80\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#scanner_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F5FAFE\",\n d: \"M74.21 0H5.79A5.79 5.79 0 0 0 0 5.79v68.42A5.79 5.79 0 0 0 5.79 80h68.42A5.79 5.79 0 0 0 80 74.21V5.79A5.79 5.79 0 0 0 74.21 0Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M43.799 32.33c-1.043 1.813-2.31 5.304-1.523 6.088 2.22.874 12.188-4.286 14.37-7.183 1.803-2.394 3.43-5.43 2.194-6.424-2.49-2.007-12.98 3.937-15.041 7.518Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M43.726 32.288c-.735 1.278-1.578 3.385-1.75 4.8-.045.373-.042.702.017.957a.9.9 0 0 0 .22.432l.028.017c.277.11.667.131 1.147.073.698-.083 1.592-.328 2.583-.691 3.844-1.406 9.204-4.559 10.738-6.596 1.087-1.444 2.11-3.123 2.486-4.449.263-.918.208-1.671-.307-2.09-.31-.248-.74-.383-1.26-.414-.76-.045-1.717.128-2.774.463-4.086 1.292-9.68 4.977-11.128 7.495v.003Zm-1.405 6.058c.255.096.614.107 1.05.058.687-.08 1.568-.324 2.545-.684 3.816-1.395 9.142-4.517 10.661-6.537 1.075-1.427 2.09-3.084 2.46-4.393.238-.84.22-1.534-.253-1.914-.286-.23-.687-.348-1.167-.38-.743-.044-1.678.128-2.715.456-4.05 1.278-9.597 4.925-11.034 7.419-.725 1.26-1.561 3.34-1.73 4.738-.042.352-.042.66.014.898a.725.725 0 0 0 .165.339h.004Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M43.153 37.41c.01-.214.038-.49.087-.719.273-1.246.929-2.81 1.509-3.816 1.357-2.359 6.634-5.75 10.464-6.959.764-.242 1.465-.394 2.059-.414.37-.01.68-.004.884.159.052.041.024.113.024.19 0 .2-.041.42-.11.66-.346 1.215-1.302 2.738-2.297 4.06-1.45 1.931-6.559 4.867-10.202 6.196-.891.325-1.689.553-2.317.629l-.1.01v.004Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"m43.164 37.492.1-.01c.632-.076 1.436-.304 2.334-.632 3.654-1.337 8.783-4.29 10.24-6.227 1.002-1.333 1.962-2.867 2.31-4.09.07-.248.115-.48.115-.683 0-.048.01-.093.007-.131a.156.156 0 0 0-.062-.121c-.215-.173-.546-.19-.94-.18-.6.021-1.309.173-2.079.418-2.303.729-5.132 2.245-7.322 3.851-1.464 1.078-2.642 2.197-3.19 3.146-.584 1.012-1.244 2.587-1.517 3.84a5.037 5.037 0 0 0-.09.733c0 .024.007.048.028.066a.077.077 0 0 0 .066.02Zm.079-.176c.622-.072 1.413-.3 2.297-.622 3.626-1.326 8.717-4.248 10.164-6.168.987-1.316 1.937-2.828 2.283-4.037.065-.231.107-.445.107-.635 0-.031.003-.063.006-.094v-.031c-.19-.152-.483-.152-.825-.138-.587.02-1.281.17-2.034.411-2.29.722-5.098 2.231-7.273 3.827-1.444 1.06-2.605 2.158-3.143 3.094-.577 1.002-1.226 2.552-1.5 3.792a4.51 4.51 0 0 0-.079.608l-.003-.007Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M42.276 38.418c-.79-.977.463-4.286 1.523-6.089 2.059-3.495 12.52-9.58 15.04-7.518-4.506-4.745-16.093-10.385-20.051-10.026-8.009.729-12.506 3.52-15.04 7.518-1.047 1.655.037 6.624 3.177 8.438 6.714 3.882 13.31 7.349 15.351 7.677Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M42.342 38.367c-.225-.28-.27-.76-.2-1.344.162-1.413.994-3.398 1.733-4.652 1.437-2.435 6.97-6.13 11.02-7.429 1.037-.331 1.973-.508 2.719-.46.483.032.884.153 1.174.391a.085.085 0 0 0 .114-.007.081.081 0 0 0 0-.114c-3.164-3.329-9.802-7.097-14.861-8.938-2.18-.79-4.065-1.222-5.264-1.115-8.043.732-12.557 3.54-15.102 7.56-.429.673-.515 1.889-.249 3.222.394 1.986 1.55 4.23 3.454 5.332 6.724 3.89 13.334 7.36 15.382 7.688a.081.081 0 0 0 .087-.041.083.083 0 0 0-.007-.093Zm-.239-.066c-.155-.314-.19-.767-.128-1.295.166-1.43 1.005-3.447 1.755-4.714 1.447-2.456 7.028-6.193 11.114-7.502 1.057-.338 2.017-.514 2.78-.466.28.017.535.066.76.145-3.281-3.212-9.563-6.735-14.398-8.492-2.149-.78-4.01-1.213-5.191-1.106-7.975.726-12.454 3.499-14.979 7.481-.41.65-.48 1.817-.228 3.101.384 1.941 1.513 4.145 3.374 5.219 6.51 3.764 12.907 7.142 15.138 7.629h.003Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#DDEBFB\",\n fillRule: \"evenodd\",\n d: \"M55.075 21.678c-5.39-3.771-13.186-7.177-16.287-6.897-8.009.729-12.506 3.52-15.04 7.519-1.047 1.654.037 6.624 3.177 8.437 1.84 1.064 3.668 2.145 5.394 3.146-3.28-2.773-6.006-5.453-6.244-7.736-.245-2.355 14.122 7.308 15.027 4.828 2.953-8.112 4.839-11.808 13.977-9.3l-.004.003Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M55.123 21.61c-3.781-2.646-8.74-5.112-12.443-6.255-1.596-.494-2.96-.743-3.9-.657-8.043.733-12.557 3.54-15.102 7.56-.428.674-.515 1.89-.249 3.223.394 1.986 1.551 4.23 3.454 5.332 1.84 1.064 3.668 2.145 5.395 3.146.038.021.086.01.11-.024a.085.085 0 0 0-.014-.11c-1.961-1.658-3.726-3.285-4.873-4.811-.756-1.005-1.247-1.969-1.34-2.867-.01-.086 0-.148.042-.196.065-.076.19-.094.362-.083.508.03 1.378.359 2.442.835 2.943 1.316 7.37 3.775 9.981 4.538.687.2 1.25.284 1.634.204.283-.058.473-.2.556-.435.884-2.428 1.671-4.462 2.587-6.047.908-1.575 1.944-2.708 3.329-3.354 1.854-.86 4.33-.846 7.96.152.038.01.08-.007.097-.045a.082.082 0 0 0-.028-.103v-.004ZM31.56 33.351c-1.689-1.461-3.18-2.888-4.196-4.238-.777-1.036-1.274-2.027-1.371-2.95-.014-.141.017-.245.083-.32.093-.108.259-.156.5-.142.522.034 1.41.362 2.501.85 2.518 1.125 6.127 3.09 8.748 4.11 1.036.403 1.913.655 2.508.645.355-.007.604-.107.694-.356.887-2.438 1.678-4.479 2.6-6.075.93-1.606 1.99-2.763 3.402-3.419 1.8-.835 4.179-.867 7.608.018-3.712-2.532-8.44-4.86-12-5.958-1.572-.487-2.912-.732-3.838-.65-7.974.726-12.454 3.5-14.978 7.481-.411.65-.48 1.817-.228 3.102.383 1.94 1.513 4.144 3.374 5.218 1.561.902 3.108 1.817 4.597 2.684h-.004Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M33.773 62.41c.47 1.61-2.135 3.613-5.015 2.508-6.904-4.967-5.028-11.318-8.03-12.516 1.316-7.916 3.689-14.9 6.559-21.447 0 0 5.526 3.512 10.002 5.722-1.112.715-2.228 3.357-1.14 4.604.532.345 1.236.65 2.017 1.074-2.034 2.245-3.92 4.904-5.616 8.455-1.416 2.96-.197 6.744 1.22 11.6h.003Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M36.208 41.22c.532.341 1.23.642 2.003 1.063a.079.079 0 0 1 .041.059c.004.024 0 .051-.02.069-2.031 2.241-3.91 4.893-5.602 8.433-.701 1.468-.746 3.136-.446 5.04.304 1.92.964 4.075 1.669 6.499.196.673-.114 1.412-.757 1.982-.943.836-2.604 1.302-4.365.626l-.018-.01c-4.161-2.995-5.149-6.49-5.926-9.067-.255-.85-.487-1.599-.805-2.193-.31-.58-.7-1.015-1.28-1.246a.08.08 0 0 1-.053-.09c1.32-7.923 3.692-14.913 6.566-21.468l.12-.038s5.523 3.509 9.995 5.72a.08.08 0 0 1 .045.068.092.092 0 0 1-.038.076c-.653.421-1.302 1.52-1.492 2.597-.124.701-.051 1.396.363 1.876v.003Zm-8.88-10.144c-2.842 6.496-5.19 13.424-6.503 21.27.584.253.988.702 1.306 1.3.321.604.556 1.36.815 2.223.767 2.55 1.74 6.01 5.854 8.973 1.689.646 3.28.204 4.186-.597.59-.522.887-1.196.708-1.81-.708-2.432-1.368-4.594-1.675-6.52-.308-1.942-.256-3.644.459-5.14 1.682-3.515 3.547-6.161 5.557-8.395-.746-.401-1.416-.695-1.93-1.026l-.018-.014c-.452-.518-.542-1.264-.408-2.024.187-1.06.809-2.138 1.451-2.625-4.137-2.055-9.107-5.173-9.801-5.612v-.003Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"m39.406 42.974-2.97-1.485c-.453-.225-.743-.788-.743-1.579 0-1.132.933-2.98 1.838-3.367.804.394 2.22 1.005 3.201 1.43-.977.604-2.069 2.141-2.069 3.426 0 .79.29 1.354.743 1.578v-.003Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M36.398 41.56c-.473-.237-.788-.821-.788-1.65 0-.694.339-1.65.812-2.386.321-.501.701-.898 1.078-1.057a.08.08 0 0 1 .069 0c.804.394 2.22 1.001 3.198 1.43.027.013.048.038.048.069 0 .03-.014.062-.038.076-.957.59-2.03 2.096-2.03 3.353 0 .753.265 1.288.697 1.502.041.021.059.07.038.11a.102.102 0 0 1-.048.046.087.087 0 0 1-.066-.004l-2.97-1.485v-.003Zm1.133-4.928c-.339.16-.677.529-.967.981-.456.712-.788 1.63-.788 2.297 0 .753.266 1.288.698 1.502l2.431 1.216c-.204-.3-.321-.718-.321-1.233 0-1.254 1.019-2.742 1.979-3.409-.957-.414-2.255-.977-3.029-1.353h-.003Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M40.732 37.97c.384.134.826.265 1.561.483.135.27.211.614.211 1.019 0 1.36-.86 2.897-1.92 3.43-1.06.527-1.92-.146-1.92-1.51 0-1.285 1.09-2.822 2.068-3.426v.003Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M40.69 37.9c-.994.615-2.106 2.186-2.106 3.495 0 .712.231 1.243.594 1.53.37.29.88.335 1.447.055 1.084-.542 1.965-2.11 1.965-3.502 0-.421-.08-.777-.22-1.056a.08.08 0 0 0-.053-.042c-.732-.217-1.174-.349-1.557-.483a.09.09 0 0 0-.073.007l.004-.004Zm.053.162c-.947.605-1.997 2.09-1.997 3.333 0 .65.2 1.136.532 1.399.325.256.774.283 1.268.034 1.036-.518 1.875-2.02 1.875-3.353 0-.373-.066-.694-.187-.95a34.605 34.605 0 0 1-1.488-.463h-.004Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#DDEBFB\",\n fillRule: \"evenodd\",\n d: \"M26.247 33.414c-2.396 5.836-4.362 12.053-5.515 18.988 2.994 1.195 1.133 7.525 7.988 12.485l.042.027c.825-1.219-2.024-2.538-3.081-6.551-1.41-5.353-.67-12.896 1.792-17.873-1.232-2.155-1.979-5.042-1.23-7.08l.004.004Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0170F2\",\n fillRule: \"evenodd\",\n d: \"M26.168 33.38c-2.4 5.84-4.365 12.066-5.519 19.005a.08.08 0 0 0 .052.09c.58.23.97.662 1.281 1.243.318.594.55 1.34.802 2.186.773 2.57 1.754 6.054 5.888 9.045l.041.028c.018.013.042.017.063.013a.095.095 0 0 0 .055-.034c.18-.266.204-.539.11-.836-.086-.28-.28-.584-.531-.936-.74-1.022-2.014-2.452-2.642-4.849C24.365 53 25.1 45.481 27.556 40.521v-.08c-1.222-2.134-1.968-4.993-1.226-7.007.018-.041-.006-.09-.048-.107a.083.083 0 0 0-.107.045l-.007.007Zm-.259 1.084c-2.2 5.515-4 11.386-5.087 17.886.584.252.984.698 1.302 1.295.321.601.556 1.357.815 2.217.763 2.539 1.727 5.979 5.792 8.935.107-.197.11-.4.045-.618-.083-.266-.266-.556-.508-.888-.746-1.032-2.034-2.48-2.67-4.904-1.409-5.353-.677-12.896 1.779-17.89-1.03-1.813-1.71-4.127-1.468-6.03v-.003Z\",\n clipRule: \"evenodd\"\n}))), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 79.5,\n height: 79.5,\n x: 0.25,\n y: 0.25,\n stroke: \"#CEDFF2\",\n strokeWidth: 0.5,\n rx: 7.75\n})), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"scanner_svg__a\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 80,\n height: 80,\n fill: \"#fff\",\n rx: 8\n})))));\nconst Memo = /*#__PURE__*/memo(SvgScanner);\nexport default Memo;","import { theme } from \"antd\";\nimport {\n BarcodeOutlined,\n CloseOutlined,\n QuestionCircleOutlined,\n} from \"@ant-design/icons\";\nimport { useState } from \"react\";\nimport { getHelpSteps } from \"tokens/guidance_items\";\nimport { useTranslation } from \"react-i18next\";\nimport { Button, Divider, Drawer, Flex, Space, Typography } from \"antd\";\nimport GuidanceItem from \"./GuidanceItem\";\nimport GuidanceFooter from \"./GuidanceFooter\";\n\nconst { Title } = Typography;\nconst HEADER_TO_GUIDANCE_KEY: Record<string, string> = {\n header_stock_take: \"stock_take\",\n header_inventory_transfer: \"inventory_transfer\",\n};\nconst BarcodeGuidanceButton = ({ headerKey }: { headerKey: string }) => {\n const { token } = theme.useToken();\n const guidanceKey = HEADER_TO_GUIDANCE_KEY[headerKey] || \"default\";\n const helpSteps = getHelpSteps(guidanceKey);\n const { t, i18n } = useTranslation();\n const [open, setOpen] = useState(false);\n\n const drawerPlacement = i18n.language === \"ar\" ? \"left\" : \"right\";\n\n const showDrawer = () => {\n setOpen(true);\n };\n\n const onClose = () => {\n setOpen(false);\n };\n\n return (\n <Flex vertical gap={token.marginMD} align=\"end\">\n <Space>\n <Button\n icon={<BarcodeOutlined />}\n type=\"primary\"\n onClick={showDrawer}\n >\n {t(\"activerecord.internal_documents.scan_barcode\")}\n </Button>\n <Drawer\n width={576}\n placement={drawerPlacement}\n title={\n <div\n style={{\n fontSize: token.fontSizeLG,\n display: \"flex\",\n alignItems: \"center\",\n gap: token.marginXS,\n }}\n >\n <QuestionCircleOutlined />\n <Title level={5} style={{ margin: 0, fontWeight: 300 }}>\n {t(\"activerecord.internal_documents.barcode_guidance.title\")}\n </Title>\n </div>\n }\n onClose={onClose}\n open={open}\n closeIcon={false}\n extra={\n <Button type=\"text\" onClick={onClose} icon={<CloseOutlined />} />\n }\n footer={<GuidanceFooter />}\n >\n <BarcodeOutlined style={{ fontSize: 27, color: \"#1890ff\" }} />\n <Title level={4} style={{ fontWeight: 600 }}>\n {t(`activerecord.internal_documents.barcode_guidance.${headerKey}`)}\n </Title>\n <Divider />\n {helpSteps.map((step, index) => (\n <div key={index}>\n <GuidanceItem\n Icon={step.Icon}\n title={t(step.title)}\n subTitle={t(step.subTitle)}\n />\n {index !== helpSteps.length - 1 && <Divider />}\n </div>\n ))}\n </Drawer>\n </Space>\n </Flex>\n );\n};\n\nexport default BarcodeGuidanceButton;\n","import AddStock from \"assets/icons/add_stock.svg\";\nimport Barcode from \"assets/icons/barcode.svg\";\nimport checkbox from \"assets/icons/checkbox.svg\";\nimport Scanner from \"assets/icons/scanner.svg\";\n\nexport const getHelpSteps = (guidanceKey: string) => {\n return [\n {\n title: `activerecord.internal_documents.barcode_guidance.${guidanceKey}.I.title`,\n subTitle: \"\",\n Icon: Scanner,\n },\n {\n title: `activerecord.internal_documents.barcode_guidance.${guidanceKey}.II.title`,\n subTitle: `activerecord.internal_documents.barcode_guidance.${guidanceKey}.II.subtitle`,\n Icon: AddStock,\n },\n {\n title: `activerecord.internal_documents.barcode_guidance.${guidanceKey}.III.title`,\n subTitle: `activerecord.internal_documents.barcode_guidance.${guidanceKey}.III.subtitle`,\n Icon: Barcode,\n },\n {\n title: `activerecord.internal_documents.barcode_guidance.${guidanceKey}.IV.title`,\n subTitle: `activerecord.internal_documents.barcode_guidance.${guidanceKey}.IV.subtitle`,\n Icon: checkbox,\n },\n ];\n};","import { useEffect } from \"react\";\nimport { MessageTwoTone } from \"@ant-design/icons\";\nimport { Space } from \"antd\";\nimport { useTranslation } from \"react-i18next\";\nimport { Typography } from \"antd\";\n\nconst { Link, Text } = Typography;\n\n\n\nconst GuidanceFooter = () => {\n const { t } = useTranslation();\n\n useEffect(() => {\n window.HubSpotConversations?.widget?.load();\n }, []);\n\n return (\n <Space\n direction=\"horizontal\"\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n gap: \"8px\",\n marginTop: \"10px\",\n }}\n >\n <MessageTwoTone style={{ fontSize: \"16px\", color: \"#1976d2\" }} />\n <Text style={{ fontSize: \"14px\", color: \"#5f6368\" }}>\n {t(\"activerecord.internal_documents.barcode_guidance.footer\")}{\" \"}\n <Link\n href=\"#\"\n style={{ fontWeight: \"500\", textDecoration: \"underline\", color: \"#1976d2\" }}\n onClick={(e) => {\n e.preventDefault();\n window.HubSpotConversations?.widget?.open();\n }}\n >\n {t(\"activerecord.internal_documents.barcode_guidance.contact\")}\n </Link>\n </Text>\n </Space>\n );\n};\n\nexport default GuidanceFooter;\n","import { Typography } from \"antd\";\nimport { GuidanceItemProps } from \"types/guidance_items\";\nconst { Title, Text } = Typography;\n\nconst GuidanceItem = ({ title, Icon, subTitle }: GuidanceItemProps) => {\n return (\n <>\n <Icon style={{ fontSize: 60 }} />\n <Title level={5} style={{fontWeight: 500}}>{title}</Title>\n <Text style={{fontWeight:\"normal\", color:\" #596980\"}}>{subTitle}</Text>\n </>\n );\n};\n\nexport default GuidanceItem;\n","import { Form, Checkbox, Col, Row, Skeleton } from 'antd'\nimport { useEffect } from 'react'\nimport { useTranslation } from 'react-i18next';\nimport { useQuery } from 'react-query';\nimport { getConfiguration } from 'api/dimensions';\nimport { CONFIGURATION_OPTIONS as options } from 'tokens/dimensions';\n\n\nconst localesMap = new Map([\n ['ManualJournalEntry', 'activerecord.attributes.commercial_document.mje'],\n ['EasyEntry', 'activerecord.attributes.commercial_document.easy_entry'],\n ['PurchaseOrder', 'activerecord.attributes.commercial_document.purchase_order'],\n ['Bill', 'activerecord.attributes.commercial_document.bill'],\n ['SimpleBill', 'activerecord.attributes.commercial_document.simple_bill'],\n ['DebitNote', 'activerecord.attributes.commercial_document.debit_note'],\n ['Quotation', 'activerecord.attributes.commercial_document.quotation'],\n ['Invoice', 'activerecord.attributes.commercial_document.invoice'],\n ['CreditNote', 'activerecord.attributes.commercial_document.credit_note'],\n ['InventoryTransfer', 'activerecord.attributes.commercial_document.inventory_transfer'],\n ['StockTake', 'activerecord.attributes.commercial_document.stock_take'],\n ['Production', 'activerecord.attributes.commercial_document.production'],\n ['Payroll', 'activerecord.attributes.payroll.payroll'],\n ['EmployeePayment', 'activerecord.attributes.employee_payment.employee_payment'],\n ['Loan', 'activerecord.attributes.loan.loan'],\n ['Bonus', 'activerecord.attributes.bonus.bonus'],\n ['Deduction', 'activerecord.attributes.deduction.deduction']\n])\n\ninterface ConfigurationOptionsProps {\n dimensionID?: string;\n setCheckedList: React.Dispatch<React.SetStateAction<unknown[]>>;\n checkedList: unknown[]\n}\n\nconst ConfigurationOptions = ({ dimensionID, setCheckedList, checkedList }: ConfigurationOptionsProps) => {\n const { t } = useTranslation();\n const form = Form.useFormInstance();\n const { isLoading } = useQuery<{model: string}[]>({\n queryKey: ['configurations', dimensionID],\n queryFn: getConfiguration.bind(null, { dimensionID: String(dimensionID) }),\n enabled: Boolean(dimensionID),\n onSuccess: (data) => {\n if(data?.length) {\n const readyData = data.map(val => val.model);\n if(readyData.length === options.length) {\n readyData.push(\"\");\n }\n setCheckedList(readyData);\n }\n }\n })\n\n useEffect(() => {\n form.setFieldValue(\"dimension_configuration\", [...checkedList]);\n }, [ checkedList ]) \n \n return (\n <Form.Item wrapperCol={{xs: {span: 24}, lg: {offset: 3, span: 21}}} name=\"dimension_configuration\">\n {isLoading? (\n <Skeleton active />\n ) : (\n <Checkbox.Group style={{ width: '100%' }}>\n <Row gutter={[16, 16]}>\n <Col xs={12} md={8}>\n <Checkbox value=\"\">\n {t('forms.placeholders.select_all')}\n </Checkbox>\n </Col>\n {options.map((entity, idx) => (\n <Col xs={12} md={8} key={`check${idx}`}>\n <Checkbox style={{fontWeight: 'normal'}} value={entity}>{t(localesMap.get(entity)!)}</Checkbox>\n </Col>\n ))}\n </Row>\n </Checkbox.Group>\n )}\n </Form.Item>\n )\n}\n\nexport default ConfigurationOptions","import { Radio, Form, Tooltip } from 'antd';\nimport ConfigurationOptions from './ConfigurationOptions';\nimport { useTranslation } from 'react-i18next';\nimport { DimensionType, GlobalDimensionResponse } from 'types/dimensions';\nimport { useEffect, useState } from 'react';\nimport { useQuery } from 'react-query';\nimport axios from 'axios';\nimport i18next from 'i18next';\n\ninterface Props {\n dimension?: DimensionType;\n setCheckedList: React.Dispatch<React.SetStateAction<unknown[]>>;\n checkedList: unknown[];\n}\n\nconst DimensionConfiguration = ({ dimension, setCheckedList, checkedList }: Props) => { \n const { t } = useTranslation();\n const form = Form.useFormInstance();\n const isGlobal = Form.useWatch<boolean>(\"global\", form);\n const [canBeGlobal, setCanBeGlobal] = useState(false);\n\n useQuery({\n queryKey: ['globalCount'],\n queryFn: async () => {\n return (await axios.get<GlobalDimensionResponse>('/tenant/dimensions.json?per_page=15&page=1&q[global_eq]=true')).data\n },\n onSuccess: (data) => {\n const { records } = data;\n setCanBeGlobal(Boolean(records.length < 2))\n }\n })\n\n useEffect(() => {\n if(dimension) {\n form.setFieldValue('global', dimension.global)\n }\n }, [ dimension ])\n \n return (\n <>\n <Tooltip title={t('activerecord.attributes.dimension.configuration.errors.update_global')} placement={i18next.language === 'en'? 'right' : 'left'}>\n <Form.Item labelCol={{xs: {span: 24}, lg: {span: 3}}} wrapperCol={{xs: {span: 24}, lg: {span: 9}}} label={t(\"activerecord.attributes.dimension.configuration.title\")} name=\"global\" initialValue={false}>\n <Radio.Group>\n <Radio disabled={!canBeGlobal} style={{fontWeight: 'normal'}} value={true}>\n <Tooltip title={!canBeGlobal && t('activerecord.attributes.dimension.configuration.errors.limit')}>\n {t('activerecord.attributes.dimension.configuration.global')}\n </Tooltip>\n </Radio>\n <Radio style={{fontWeight: 'normal'}} value={false}>{t('activerecord.attributes.dimension.configuration.shortcut')}</Radio>\n </Radio.Group>\n </Form.Item>\n </Tooltip>\n {!isGlobal && <ConfigurationOptions dimensionID={dimension?.id} setCheckedList={setCheckedList} checkedList={checkedList} />}\n </>\n )\n}\n\nexport default DimensionConfiguration","//@ts-nocheck\nimport React from \"react\";\nimport {\n Checkbox,\n DatePicker,\n Flex,\n Form,\n Input,\n InputNumber,\n theme,\n TimePicker,\n} from \"antd\";\nimport { useTranslation } from \"react-i18next\";\nimport { CustomFiledType } from \"types/app\";\nimport dayjs from \"dayjs\";\n\nconst translationTerms = {\n from: \"forms.placeholders.from\",\n to: \"forms.placeholders.to\",\n};\n\nconst CustomField = ({\n type,\n customFieldTypeInputName = \"q[custom_field_values_cpn_custom_field_id_eq]\",\n}: {\n type: CustomFiledType;\n customFieldTypeInputName?: string;\n}) => {\n const { t } = useTranslation();\n\n const { token } = theme.useToken();\n\n let content: React.ReactNode;\n\n switch (type) {\n case \"Boolean\":\n content = (\n <Form.Item\n getValueProps={(value) => ({\n checked: value === \"on\" ? true : false,\n })}\n initialValue={\"off\"}\n normalize={(value) => (value ? \"on\" : \"off\")}\n valuePropName=\"checked\"\n name={\"q[custom_field_values_value_cont]\"}\n >\n <Checkbox />\n </Form.Item>\n );\n break;\n case \"Integer\":\n case \"Decimal\":\n content = (\n <Form.Item name={\"q[custom_field_values_value_cont]\"}>\n <InputNumber />\n </Form.Item>\n );\n break;\n case \"Text\":\n content = (\n <Form.Item name={\"q[custom_field_values_value_cont]\"}>\n <Input />\n </Form.Item>\n );\n break;\n case \"Date\":\n content = (\n <Flex gap={token.marginSM}>\n <Form.Item\n getValueProps={(value) => ({\n value: value && dayjs(value),\n })}\n normalize={(value) =>\n value && `${dayjs(value).format(\"YYYY-MM-DD\")}`\n }\n name=\"q[custom_field_values_value_gteq]\"\n >\n <DatePicker placeholder={t(translationTerms[\"from\"])} />\n </Form.Item>\n <Form.Item\n getValueProps={(value) => ({\n value: value && dayjs(value),\n })}\n normalize={(value) =>\n value && `${dayjs(value).format(\"YYYY-MM-DD\")}`\n }\n name=\"q[custom_field_values_value_lteq]\"\n >\n <DatePicker placeholder={t(translationTerms[\"to\"])} />\n </Form.Item>\n </Flex>\n );\n break;\n case \"Time\":\n content = (\n <Flex gap={token.marginSM}>\n <Form.Item\n getValueProps={(value) => ({\n value: value && dayjs(value, \"HH:mm\"),\n })}\n normalize={(value) => value && `${dayjs(value).format(\"HH:mm\")}`}\n name=\"q[custom_field_values_value_gteq]\"\n >\n <TimePicker placeholder={t(translationTerms[\"from\"])} />\n </Form.Item>\n <Form.Item\n getValueProps={(value) => ({\n value: value && dayjs(value, \"HH:mm\"),\n })}\n normalize={(value) => value && `${dayjs(value).format(\"HH:mm\")}`}\n name=\"q[custom_field_values_value_lteq]\"\n >\n <TimePicker placeholder={t(translationTerms[\"to\"])} />\n </Form.Item>\n </Flex>\n );\n break;\n }\n\n return (\n <Form.Item\n shouldUpdate={(prevValues, nextValues) =>\n prevValues[customFieldTypeInputName] !==\n nextValues[customFieldTypeInputName]\n }\n noStyle\n >\n {({ getFieldValue }) =>\n getFieldValue(customFieldTypeInputName)\n ? content\n : null\n }\n </Form.Item>\n );\n};\n\nexport default CustomField;\n","//@ts-nocheck\nimport React from \"react\";\nimport { Col, ColProps, ConfigProvider, DatePicker, Form } from \"antd\";\nimport { useTranslation } from \"react-i18next\";\nimport dayjs from \"dayjs\";\n\nconst translationTerms = {\n from: \"forms.placeholders.from\",\n to: \"forms.placeholders.to\",\n};\n\nconst DueIssueDatePicker = ({\n columnsConfig,\n dateTypeInputName = \"date\",\n}: {\n columnsConfig: ColProps;\n dateTypeInputName?: string;\n}) => {\n const { t, i18n } = useTranslation();\n\n return (\n <ConfigProvider\n theme={{\n components: {\n DatePicker: { cellWidth: i18n.language === \"ar\" ? 49 : 36 },\n },\n }}\n >\n <Col {...columnsConfig}>\n <Form.Item\n shouldUpdate={(prevValues, nextValues) =>\n prevValues.date !== nextValues.date\n }\n >\n {({ getFieldValue }) => (\n <Form.Item\n getValueProps={(value) => ({\n value: value && dayjs(value),\n })}\n normalize={(value) =>\n value && `${dayjs(value).format(\"YYYY-MM-DD\")}`\n }\n name={\n getFieldValue(dateTypeInputName) === \"Due Date\"\n ? \"q[due_date_gteq]\"\n : \"q[issue_date_gteq]\"\n }\n >\n <DatePicker\n style={{ width: \"100%\" }}\n placeholder={t(translationTerms[\"from\"])}\n />\n </Form.Item>\n )}\n </Form.Item>\n </Col>\n\n <Col {...columnsConfig}>\n <Form.Item\n shouldUpdate={(prevValues, nextValues) =>\n prevValues.date !== nextValues.date\n }\n >\n {({ getFieldValue }) => {\n return (\n <Form.Item\n getValueProps={(value) => ({\n value: value && dayjs(value),\n })}\n normalize={(value) =>\n value && `${dayjs(value).format(\"YYYY-MM-DD\")}`\n }\n name={\n getFieldValue(dateTypeInputName) === \"Due Date\"\n ? \"q[due_date_lteq]\"\n : \"q[issue_date_lteq]\"\n }\n >\n <DatePicker\n style={{ width: \"100%\" }}\n placeholder={t(translationTerms[\"to\"])}\n />\n </Form.Item>\n );\n }}\n </Form.Item>\n </Col>\n </ConfigProvider>\n );\n};\n\nexport default DueIssueDatePicker;\n","//@ts-nocheck\nimport React from \"react\";\nimport { useLocations } from \"hooks/app\";\nimport { Flex, Select, SelectProps, Spin } from \"antd\";\nimport { useMemo } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nexport default function SelectLocations(props: SelectProps) {\n const { t, i18n } = useTranslation();\n\n const { data, isFetchingNextPage, isLoading, fetchNextPage, hasNextPage } =\n useLocations();\n\n const selectOptions: SelectProps[\"options\"] = useMemo(\n () =>\n data?.pages\n .map((page) => page.inventories)\n .flat()\n .map((inventory) => ({\n value: inventory.id,\n label: i18n.language === \"ar\" ? inventory.ar_name : inventory.name,\n })),\n [data]\n );\n\n const scrollingHandler: SelectProps[\"onPopupScroll\"] = (e) => {\n const target = e.currentTarget;\n if (\n target.scrollHeight - target.clientHeight === target.scrollTop &&\n hasNextPage\n ) {\n fetchNextPage();\n }\n };\n\n return (\n <Select\n notFoundContent={\n isLoading ? (\n <Flex justify=\"center\">\n <Spin spinning={true} />\n </Flex>\n ) : undefined\n }\n loading={isLoading || isFetchingNextPage}\n allowClear\n onPopupScroll={scrollingHandler}\n options={selectOptions}\n placeholder={t(\"forms.placeholders.select_locations\")}\n mode=\"multiple\"\n {...props}\n />\n );\n}\n","import { ReactElement } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { LoadingOutlined, PlusOutlined } from \"@ant-design/icons\";\nimport {\n Button,\n DatePicker,\n DatePickerProps,\n Form,\n Input,\n InputNumber,\n InputNumberProps,\n InputProps,\n Select,\n Spin,\n} from \"antd\";\nimport TextArea from \"antd/es/input/TextArea\";\n\nconst { Option } = Select;\n\nconst RT_VALIDATIONS = \"recurring_transactions.create.validation\";\nconst RT_PLACEHOLDERS = \"recurring_transactions.create.placeholder\";\n\ninterface AddDocumentsButtonProps {\n handleOpenDocuments: () => void;\n}\n\nexport const AddDocumentsButton = ({ handleOpenDocuments }: AddDocumentsButtonProps) => {\n const { t } = useTranslation();\n\n return (\n <Button type=\"primary\" onClick={handleOpenDocuments}>\n <PlusOutlined /> {t(\"recurring_transactions.create.documents.add_documents\")}\n </Button>\n );\n};\n\ninterface CustomDatePickerProps extends DatePickerProps {\n name: string;\n label: ReactElement | string;\n}\n\nexport const CustomDatePicker = ({ name, label, ...props }: CustomDatePickerProps) => {\n const { t } = useTranslation();\n\n return (\n <Form.Item\n name={name}\n label={label}\n rules={[{ required: true, message: t(`${RT_VALIDATIONS}.${name}`) }]}\n >\n <DatePicker\n placeholder={t(`${RT_PLACEHOLDERS}.${name}`)}\n style={{ width: \"100%\" }}\n {...props}\n />\n </Form.Item>\n );\n};\n\ninterface CustomInputProps extends InputProps {\n name: string;\n label: string;\n}\n\nexport const CustomInput = ({ name, label, ...props }: CustomInputProps) => {\n const { t } = useTranslation();\n return (\n <Form.Item\n name={name}\n label={label}\n rules={[{ required: true, message: t(`${RT_VALIDATIONS}.${name}`) }]}\n >\n <Input {...props} />\n </Form.Item>\n );\n};\n\ninterface CustomInputNumberProps extends InputNumberProps {\n name: string;\n label: ReactElement | string;\n}\n\nexport const CustomInputNumber = ({ name, label, ...props }: CustomInputNumberProps) => {\n const { t } = useTranslation();\n return (\n <Form.Item\n name={name}\n label={label}\n rules={[{ required: true, message: t(`${RT_VALIDATIONS}.${name}`) }]}\n >\n <InputNumber style={{ width: \"100%\" }} {...props} />\n </Form.Item>\n );\n};\n\ninterface CustomSelectProps {\n name: string;\n label?: string;\n optionsArray: string[];\n optionsParent: string;\n onChange?: (value: string) => void;\n}\n\nexport const CustomSelect = ({\n name,\n label = \"\",\n optionsArray,\n optionsParent,\n ...props\n}: CustomSelectProps) => {\n const { t } = useTranslation();\n\n return (\n <Form.Item\n name={name}\n label={label}\n rules={[{ required: true, message: t(`${RT_VALIDATIONS}.${name}`) }]}\n >\n <Select placeholder={t(`${RT_PLACEHOLDERS}.${name}`)} allowClear {...props}>\n {optionsArray.map((option: string) => (\n <Option value={option} key={option}>\n {t(`${optionsParent}.${option}`)}\n </Option>\n ))}\n </Select>\n </Form.Item>\n );\n};\n\ninterface CustomSubmitButtonProps {\n isProcessing: boolean;\n onClick: () => void;\n redirect?: string | null;\n status?: string;\n text: string;\n}\n\nexport const CustomSubmitButton = ({\n isProcessing = false,\n onClick,\n redirect = null,\n status = \"scheduled\",\n text,\n}: CustomSubmitButtonProps) => {\n const { t } = useTranslation();\n const form = Form.useFormInstance();\n\n const handleClick = () => {\n form.setFieldValue(\"status\", status);\n form.setFieldValue(\"redirect\", redirect);\n onClick();\n };\n\n return (\n <Form.Item>\n <Button type=\"primary\" htmlType=\"submit\" onClick={handleClick}>\n {isProcessing ? (\n <>\n <Spin\n indicator={<LoadingOutlined spin />}\n style={{ color: \"inherit\", marginInlineEnd: \"7px\" }}\n />\n {t(\"recurring_transactions.actions.processing\")}\n </>\n ) : (\n t(`recurring_transactions.actions.${text}`)\n )}\n </Button>\n </Form.Item>\n );\n};\n\ninterface CustomTextAreaProps {\n name: string;\n label: string;\n}\n\nexport const CustomTextArea = ({ name, label }: CustomTextAreaProps) => (\n <Form.Item name={name} label={label}>\n <TextArea rows={3} />\n </Form.Item>\n);\n","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgColoredDoubleRight = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 47 47\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fillRule: \"evenodd\",\n clipPath: \"url(#Colored-Double-Right_svg__a)\",\n clipRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0287FF\",\n d: \"M1.24.37h.734c.122.136.23.286.32.45a4.27 4.27 0 0 1 0 1.257c-.281.431-.663.536-1.147.315a.627.627 0 0 1-.229-.315 4.332 4.332 0 0 1 0-1.258A2.45 2.45 0 0 1 1.239.37z\",\n opacity: 0.906\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0287FF\",\n d: \"M5.278.37h.735c.15.073.258.193.321.36.061.479.061.958 0 1.437-.592.531-1.05.441-1.377-.27C4.827 1.33 4.934.82 5.278.37z\",\n opacity: 0.912\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0086FF\",\n d: \"M9.41.37h.642c.418.385.556.865.413 1.438-.274.79-.733.91-1.377.359a5.65 5.65 0 0 1 0-1.438.633.633 0 0 1 .321-.359z\",\n opacity: 0.932\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00A5FE\",\n d: \"M19.69 15.823a296.798 296.798 0 0 0-6.242 6.11c-3.21-3.097-6.407-6.211-9.592-9.344-.33-.68-.299-1.338.091-1.977l4.177-4.088a2.12 2.12 0 0 1 1.836-.18 479.271 479.271 0 0 1 9.73 9.48z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00D7DE\",\n d: \"M26.942 6.66a.214.214 0 0 0 .046.179 1292.17 1292.17 0 0 1 9.134 8.984 288.12 288.12 0 0 1-6.15 6.02 669.407 669.407 0 0 0-9.364-9.164c-.55-.61-.595-1.269-.137-1.977l4.36-4.267c.763-.351 1.467-.276 2.111.224z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#04C2EB\",\n d: \"M26.942 6.66a668.705 668.705 0 0 1 9.364 9.163h-.184a1271.12 1271.12 0 0 0-9.134-8.984.215.215 0 0 1-.046-.18z\",\n opacity: 0.922\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#02C6E9\",\n d: \"M20.608 12.679a668.878 668.878 0 0 1 9.364 9.164v.09a337.103 337.103 0 0 1-9.364-9.254z\",\n opacity: 0.055\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0088FE\",\n d: \"M19.69 15.823c.52.45 1.01.929 1.47 1.438a150.615 150.615 0 0 1-6.335 6.11l-1.377-1.438a297.04 297.04 0 0 1 6.242-6.11z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#05C1C1\",\n d: \"M36.122 15.823h.184c.49.42.948.869 1.377 1.348a195.663 195.663 0 0 1-6.15 6.154.226.226 0 0 1-.184.045l-1.377-1.437v-.09a290.98 290.98 0 0 0 6.15-6.02z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00D8DD\",\n d: \"M21.16 17.26a420.235 420.235 0 0 1 5.278 5.122c.428.659.428 1.318 0 1.976L10.235 40.216c-.7.419-1.404.419-2.11 0l-4.178-4.088c-.39-.638-.42-1.297-.091-1.977 3.675-3.582 7.331-7.175 10.97-10.78a150.615 150.615 0 0 0 6.333-6.11z\",\n opacity: 0.987\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00A5FE\",\n d: \"M37.683 17.17c1.74 1.66 3.47 3.337 5.186 5.032.55.779.55 1.557 0 2.336L26.942 40.126c-.666.458-1.37.517-2.111.18l-4.36-4.268c-.457-.762-.396-1.481.183-2.156 3.584-3.492 7.148-6.996 10.695-10.512a.226.226 0 0 0 .183-.045 195.663 195.663 0 0 0 6.15-6.154z\",\n opacity: 0.982\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#04C0C0\",\n d: \"M37.499 46.37h-.643c-.418-.385-.556-.864-.413-1.437.274-.79.733-.91 1.377-.36.062.48.062.959 0 1.438a.633.633 0 0 1-.321.36z\",\n opacity: 0.937\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#04C1C1\",\n d: \"M41.63 46.37h-.735a.633.633 0 0 1-.32-.36 5.65 5.65 0 0 1 0-1.437c.59-.53 1.05-.441 1.376.27.13.568.024 1.078-.321 1.527z\",\n opacity: 0.939\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#04C1C1\",\n d: \"M45.669 46.37h-.734a2.453 2.453 0 0 1-.322-.45 4.332 4.332 0 0 1 0-1.257c.282-.431.665-.536 1.148-.314.11.08.187.186.23.314.06.42.06.839 0 1.258a2.457 2.457 0 0 1-.322.45z\",\n opacity: 0.935\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"Colored-Double-Right_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M0 .415h47v46H0z\"\n})))));\nconst Memo = /*#__PURE__*/memo(SvgColoredDoubleRight);\nexport default Memo;","import { useTranslation } from \"react-i18next\";\nimport { Button, Divider, Flex, Modal, theme } from \"antd\";\nimport Title from \"antd/es/typography/Title\";\nimport ColoredDoubleRight from \"assets/icons/Colored-Double-Right.svg\";\nimport QIcon from \"components/layout/QIcon\";\n\nconst { useToken } = theme;\n\ninterface SkipProcessModalProps {\n isModalOpen: boolean;\n setIsModalOpen: (isOpen: boolean) => void;\n onSkipProcess: () => void;\n isSkipping: boolean;\n}\n\nconst SkipProcessModal = ({\n isModalOpen,\n setIsModalOpen,\n onSkipProcess,\n isSkipping,\n}: SkipProcessModalProps) => {\n const { t } = useTranslation();\n const { token } = useToken();\n\n return (\n <Modal\n open={isModalOpen}\n centered\n onCancel={() => setIsModalOpen(false)}\n footer={\n <Flex justify=\"space-between\" gap={token.margin}>\n <Button onClick={() => setIsModalOpen(false)}>\n {t(\"recurring_transactions.actions.cancel\")}\n </Button>\n <Button type=\"primary\" onClick={onSkipProcess} loading={isSkipping}>\n {t(`recurring_transactions.actions.${isSkipping ? \"skipping\" : \"skip\"}`)}\n </Button>\n </Flex>\n }\n width=\"max-content\"\n style={{ textAlign: \"center\" }}\n >\n <QIcon component={ColoredDoubleRight} style={{ fontSize: 48 }} />\n <Title level={4}>{t(\"recurring_transactions.skip_process.title\")}</Title>\n <p>{t(\"recurring_transactions.skip_process.sub_title\")}</p>\n <Divider />\n </Modal>\n );\n};\n\nexport default SkipProcessModal;\n","//@ts-nocheck\nimport React, { useMemo, useState } from \"react\";\nimport { FilterOutlined, ReloadOutlined } from \"@ant-design/icons\";\nimport {\n Button,\n Col,\n Flex,\n Form,\n Input,\n Row,\n theme,\n SelectProps,\n Select,\n InputNumber,\n ConfigProvider,\n FormInstance,\n} from \"antd\";\n\nimport {\n useCustomFields,\n useInteractiveFilter,\n useMediaQuery,\n} from \"hooks/app\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { DocumentTypes } from \"types/recurring_transactions\";\nimport { CDStatuses, CustomFiledType } from \"types/app\";\nimport SelectLocations from \"components/tenant/form/SelectLocations\";\nimport CustomField from \"components/tenant/form/CustomField\";\nimport { useRTPermissions } from \"hooks/recurring_transactions\";\nimport DueIssueDatePicker from \"components/tenant/form/DueIssueDatePicker\";\n\ntype Props = Pick<\n ReturnType<typeof useInteractiveFilter>,\n \"form\" | \"update\" | \"setFormContainerRef\"\n> & { documentType: DocumentTypes | null; resetSelection: () => void };\n\nconst translationTerms = {\n invoiceNo: \"activerecord.external_documents.invoice.reference\",\n reference: \"activerecord.external_documents.bill.reference\",\n posInvoiceNo: \"activerecord.attributes.invoice.pos_number\",\n customerName: \"forms.placeholders.customer_name\",\n vendorName: \"forms.placeholders.vendor_name\",\n statuses: {\n status: \"forms.placeholders.status\",\n Approved: \"status.approved\",\n Paid: \"status.paid\",\n \"Partially Paid\": \"status.partially_paid\",\n },\n \"Issue Date\": \"dropdowns.issue_date\",\n \"Due Date\": \"dropdowns.due_date\",\n min: \"forms.placeholders.min\",\n max: \"forms.placeholders.max\",\n from: \"forms.placeholders.from\",\n to: \"forms.placeholders.to\",\n filter: \"forms.buttons.filter\",\n reset: \"forms.buttons.reset\",\n custom_fields: \"activerecord.attributes.cpn_custom_field.custom_fields\",\n};\n\nconst statusKeys: Extract<\n CDStatuses,\n \"Approved\" | \"Paid\" | \"Partially Paid\"\n>[] = [\"Approved\", \"Paid\", \"Partially Paid\"];\n\nconst dateKeys = [\"Issue Date\", \"Due Date\"] as const;\n\n// Main Component\nconst DocumentFitlers = ({\n form,\n setFormContainerRef,\n update,\n documentType,\n resetSelection,\n}: Props) => {\n const { t } = useTranslation();\n\n const { token } = theme.useToken();\n\n const { data, isLoading } = useCustomFields(documentType);\n\n const is1920Screen = useMediaQuery(\"3xl:(size>=1600)\");\n\n const isMobile = useMediaQuery(\"sm:(size<=576)\");\n\n const { isPermissionsLoading } = useRTPermissions();\n\n const [customFieldType, setCustomFieldType] =\n useState<CustomFiledType | null>(null);\n\n const resetFilterHandler = () => {\n if (form.isFieldsTouched()) {\n form.resetFields();\n setCustomFieldType(null);\n update();\n resetSelection();\n }\n };\n\n const filterSatusOptions: SelectProps[\"options\"] = useMemo(\n () =>\n statusKeys.map((key) => ({\n label: t(translationTerms[\"statuses\"][key]),\n value: key,\n })),\n []\n );\n\n const dateOptions: SelectProps[\"options\"] = useMemo(\n () =>\n dateKeys.map((key) => ({\n label: t(translationTerms[key]),\n value: key,\n })),\n []\n );\n\n const customFieldsOptions: SelectProps[\"options\"] = useMemo(\n () =>\n data?.custom_fields.map((cpn) => ({\n label: cpn.field_name,\n value: cpn.id,\n type: cpn.field_type,\n })),\n [data]\n );\n\n const customFieldChangeHandler: SelectProps[\"onChange\"] = (_, options) => {\n if (!Array.isArray(options)) {\n form.setFieldValue(\"q[custom_field_values_value_cont]\", undefined);\n setCustomFieldType(options.type);\n }\n };\n\n return (\n <ConfigProvider theme={{ components: { Form: { itemMarginBottom: 0 } } }}>\n <div\n style={{ maxWidth: is1920Screen ? token.screenXL : \"auto\" }}\n ref={setFormContainerRef}\n >\n <Form\n size={isMobile ? \"small\" : \"middle\"}\n form={form}\n initialValues={{\n date: \"Issue Date\",\n }}\n disabled={isPermissionsLoading}\n >\n <Row wrap gutter={[token.margin, token.marginMD]}>\n <Col span={12} lg={{ span: 8 }} xl={{ span: 4 }}>\n <Form.Item name={\"q[reference_cont]\"}>\n <Input\n placeholder={\n documentType === \"Invoices\"\n ? t(translationTerms[\"invoiceNo\"])\n : t(translationTerms[\"reference\"])\n }\n />\n </Form.Item>\n </Col>\n\n {documentType === \"Invoices\" && (\n <Col span={12} lg={{ span: 8 }} xl={{ span: 4 }}>\n <Form.Item name={\"q[client_generated_id_cont]\"}>\n <Input placeholder={t(translationTerms[\"posInvoiceNo\"])} />\n </Form.Item>\n </Col>\n )}\n\n <Col span={12} lg={{ span: 8 }} xl={{ span: 4 }}>\n <Form.Item name={\"q[contact_name_cont]\"}>\n <Input\n placeholder={\n documentType === \"Invoices\"\n ? t(translationTerms[\"customerName\"])\n : t(translationTerms[\"vendorName\"])\n }\n />\n </Form.Item>\n </Col>\n\n <Col span={12} lg={{ span: 8 }} xl={{ span: 4 }}>\n <Form.Item name={\"q[status_eq]\"}>\n <Select\n style={{ width: \"100%\" }}\n allowClear\n placeholder={t(translationTerms[\"statuses\"][\"status\"])}\n options={filterSatusOptions}\n />\n </Form.Item>\n </Col>\n\n <Col span={12} lg={{ span: 8 }} xl={{ span: 4 }}>\n <Form.Item name={\"q[total_amount_gteq]\"}>\n <InputNumber\n style={{ width: \"100%\" }}\n min={0}\n placeholder={t(translationTerms[\"min\"])}\n />\n </Form.Item>\n </Col>\n\n <Col span={12} lg={{ span: 8 }} xl={{ span: 4 }}>\n <Form.Item name={\"q[total_amount_lteq]\"}>\n <InputNumber\n style={{ width: \"100%\" }}\n min={0}\n placeholder={t(translationTerms[\"max\"])}\n />\n </Form.Item>\n </Col>\n\n <Col span={12} lg={{ span: 8 }} xl={{ span: 4 }}>\n <Form.Item name={\"date\"}>\n <Select style={{ width: \"100%\" }} options={dateOptions} />\n </Form.Item>\n </Col>\n\n <DueIssueDatePicker\n columnsConfig={{ span: 12, lg: { span: 8 }, xl: { span: 4 } }}\n />\n\n <Col span={12} lg={{ span: 8 }} xl={{ span: 4 }}>\n <Form.Item\n name={\"inventory_list[]\"}\n normalize={(v) => (v?.length > 0 ? v : null)}\n >\n <SelectLocations />\n </Form.Item>\n </Col>\n\n <Col span={12} lg={{ span: 8 }} xl={{ span: 4 }}>\n <Form.Item name={\"q[custom_field_values_cpn_custom_field_id_eq]\"}>\n <Select\n onChange={customFieldChangeHandler}\n placeholder={t(translationTerms[\"custom_fields\"])}\n loading={isLoading}\n disabled={isLoading}\n options={customFieldsOptions}\n />\n </Form.Item>\n </Col>\n\n <Col span={12} lg={{ span: 8 }} xl={{ span: 4 }}>\n <CustomField type={customFieldType} />\n </Col>\n\n <Col>\n <FilterActions\n resetFilterHandler={resetFilterHandler}\n update={update}\n resetSelection={resetSelection}\n form={form}\n />\n </Col>\n </Row>\n </Form>\n </div>\n </ConfigProvider>\n );\n};\n\nconst FilterActions = ({\n update,\n resetFilterHandler,\n resetSelection,\n form,\n}: Pick<Props, \"update\"> & {\n resetFilterHandler: () => void;\n resetSelection: () => void;\n form: FormInstance;\n}) => {\n const { token } = theme.useToken();\n\n const { t } = useTranslation();\n\n const filterHandler = () => {\n if (form.isFieldsTouched()) {\n update();\n resetSelection();\n }\n };\n\n return (\n <Flex gap={token.marginSM}>\n <Button type=\"primary\" icon={<FilterOutlined />} onClick={filterHandler}>\n {t(translationTerms.filter)}\n </Button>\n <Button icon={<ReloadOutlined />} onClick={resetFilterHandler}>\n {t(translationTerms.reset)}\n </Button>\n </Flex>\n );\n};\n\nexport default DocumentFitlers;\n","import { useMemo } from \"react\";\nimport { GetProp, Typography, Table } from \"antd\";\nimport { TableProps } from \"antd/lib\";\nimport { fetchDocuments } from \"api/recurring_transactions\";\nimport { useQuery } from \"react-query\";\nimport { InvoiceData, SimpleBillData, CDStatuses } from \"types/app\";\nimport { DocumentTypes } from \"types/recurring_transactions\";\nimport { useTranslation } from \"react-i18next\";\nimport { useMediaQuery } from \"hooks/app\";\nimport { formatAmountWithCurrency } from \"helpers/app\";\nimport { useStatusMap } from \"hooks/status\";\n\nexport type TableDateType = InvoiceData | SimpleBillData;\n\ninterface Props {\n documentType: DocumentTypes | null;\n searchParams: string;\n onChange: TableProps[\"onChange\"];\n onSelect: GetProp<typeof Table<any>, \"rowSelection\">[\"onChange\"];\n selectedKeys: number[];\n pageSize: number;\n currentPage: number;\n}\n\nconst translationTerms = {\n columns: {\n reference: \"activerecord.external_documents.bill.reference\",\n customerName: \"activerecord.attributes.contact_payment.customer_name\",\n vendorName: \"activerecord.attributes.contact_payment.vendor_name\",\n issueDate: \"activerecord.external_documents.invoice.issue_date\",\n total: \"activerecord.attributes.contact_payment.amount\",\n balance: \"activerecord.attributes.contact.balance\",\n dueDate: \"activerecord.attributes.invoice.due_date\",\n status: \"activerecord.attributes.invoice.status\",\n },\n};\n\n//The Main Component\nconst DocumentsTable = ({\n documentType,\n searchParams,\n onChange,\n onSelect,\n selectedKeys,\n pageSize,\n currentPage,\n}: Props) => {\n const { data, isLoading, isPreviousData, isFetching } = useQuery({\n queryKey: [documentType, searchParams],\n queryFn: () => fetchDocuments(documentType, searchParams),\n enabled: Boolean(documentType),\n keepPreviousData: true,\n });\n\n const columns = useColumns(documentType);\n\n const is1920Screen = useMediaQuery(\"3xl:(size>=1600)\");\n\n const isXXLScreen = useMediaQuery(\"xxl:(size>=1400)\");\n\n const isSmallScreen = useMediaQuery(\"(max-width:992px)\");\n\n const dataSource = useMemo(() => {\n if (\n (documentType === \"Invoices\" || documentType === \"Bills\") &&\n data &&\n \"documents\" in data\n ) {\n return data.documents;\n } else if (\n documentType === \"SimpleBills\" &&\n data &&\n \"simple_bills\" in data\n ) {\n return data.simple_bills;\n }\n }, [data, documentType]);\n\n return (\n <Table\n size={isSmallScreen ? \"small\" : \"middle\"}\n rowKey={\"id\"}\n onChange={onChange}\n rowSelection={{\n onChange: onSelect,\n selectedRowKeys: selectedKeys,\n preserveSelectedRowKeys: true,\n }}\n loading={isLoading || (isPreviousData && isFetching)}\n columns={columns}\n dataSource={dataSource}\n scroll={{\n y: is1920Screen\n ? \"41vh\"\n : isXXLScreen\n ? \"35vh\"\n : isSmallScreen\n ? \"20vh\"\n : \"31vh\",\n x: isSmallScreen ? 1000 : undefined,\n }}\n pagination={{\n size: isSmallScreen ? \"small\" : \"default\",\n current: currentPage,\n total: data && data?.meta.total_pages * pageSize,\n pageSize: pageSize,\n showSizeChanger: true,\n pageSizeOptions: [10, 15, 25, 50, 75, 100],\n position: [\"bottomCenter\"],\n }}\n />\n );\n};\n\nconst useColumns = (\n documentType: DocumentTypes | null\n): TableProps<TableDateType>[\"columns\"] => {\n const { t } = useTranslation();\n\n const statusMap = useStatusMap();\n\n const isSmallScreen = useMediaQuery(\"(max-width:991px)\");\n\n const baseColumns: TableProps<TableDateType>[\"columns\"] = [\n {\n dataIndex: \"reference\",\n title: t(translationTerms.columns.reference),\n sorter: true,\n fixed: isSmallScreen,\n },\n {\n dataIndex: [\"contact\", \"name\"],\n title:\n documentType === \"Invoices\"\n ? t(translationTerms.columns.customerName)\n : t(translationTerms.columns.vendorName),\n sorter: true,\n },\n {\n dataIndex: \"issue_date\",\n title: t(translationTerms.columns.issueDate),\n sorter: true,\n },\n {\n dataIndex: documentType === \"SimpleBills\" ? \"total_amount\" : \"total\",\n title: t(translationTerms.columns.total),\n render(value) {\n return value && formatAmountWithCurrency(value);\n },\n sorter: true,\n },\n {\n dataIndex:\n documentType === \"SimpleBills\" ? \"remaining_amount\" : \"due_amount\",\n title: t(translationTerms.columns.balance),\n render(value) {\n return value && formatAmountWithCurrency(value);\n },\n sorter: true,\n },\n {\n dataIndex: \"status\",\n title: t(translationTerms.columns.status),\n render(value: CDStatuses) {\n const statusData = statusMap[value];\n return (\n statusData && (\n <Typography.Text style={{ color: statusData.color }}>\n {statusData.label}\n </Typography.Text>\n )\n );\n },\n sorter: true,\n },\n ];\n if (documentType === \"Invoices\" || documentType === \"Bills\") {\n baseColumns.splice(3, 0, {\n dataIndex: \"due_date\",\n title: t(translationTerms.columns.dueDate),\n sorter: true,\n });\n }\n return baseColumns;\n};\n\nexport default DocumentsTable;\n","//@ts-nocheck\nimport React, { useEffect, useLayoutEffect, useMemo, useState } from \"react\";\nimport DocumentsTable from \"./DocumentsTable\";\nimport DocumentsFitlers from \"./DocumentsFitlers\";\nimport {\n Button,\n GetProp,\n Modal,\n Table,\n Tabs,\n theme,\n Tooltip,\n TableProps,\n Flex,\n} from \"antd\";\nimport { useTranslation } from \"react-i18next\";\nimport { TabsProps } from \"antd\";\nimport { RTPermissions, DocumentTypes, SelectedDocument } from \"types/recurring_transactions\";\nimport { useRTPermissions } from \"hooks/recurring_transactions\";\nimport { InvoiceData, SimpleBillData } from \"types/app\";\nimport { useInteractiveFilter, useMediaQuery } from \"hooks/app\";\nimport { SorterResult } from \"antd/es/table/interface\";\n\ntype Documents = InvoiceData | SimpleBillData;\n\ninterface Props {\n isOpen: boolean;\n onSave: (selectedDocuments: SelectedDocument[]) => void;\n onClose: () => void;\n savedSelectedDocuments: SelectedDocument[];\n}\n\nconst translationTerms = {\n Invoices: {\n tabTitle: \"activerecord.external_documents.invoice.title\",\n },\n Bill: {\n tabTitle: \"activerecord.external_documents.bill.title\",\n },\n SimpleBills: {\n tabTitle: \"activerecord.external_documents.simple_bill.title\",\n },\n modal: {\n title: \"recurring_transactions.select_documents.title\",\n saveSelections: \"recurring_transactions.actions.save_selection\",\n cancel: \"recurring_transactions.actions.cancel\",\n },\n tabs: {\n unauthorizedMessage:\n \"recurring_transactions.select_documents.unauthorized_message\",\n },\n};\n\nconst documentsKeys: DocumentTypes[] = [\"Invoices\", \"Bills\", \"SimpleBills\"];\n\nconst documentsTokens: {\n [key in DocumentTypes]: {\n translations: string;\n permissionKey: keyof RTPermissions;\n };\n} = {\n Invoices: {\n translations: translationTerms[\"Invoices\"].tabTitle,\n permissionKey: \"invoices\",\n },\n Bills: {\n translations: translationTerms[\"Bill\"].tabTitle,\n permissionKey: \"bills\",\n },\n\n SimpleBills: {\n translations: translationTerms[\"SimpleBills\"].tabTitle,\n permissionKey: \"simple_bills\",\n },\n};\n\nconst trasnfromSearchParams: (\n searchParams: URLSearchParams\n) => URLSearchParams = (s) => {\n if (s.has(\"inventory_list[]\")) {\n const inventories = s.get(\"inventory_list[]\")?.split(\",\");\n\n inventories?.forEach((inv, i) => {\n if (i === 0) {\n s.set(\"inventory_list[]\", inv);\n } else {\n s.append(\"inventory_list[]\", inv);\n }\n });\n return s;\n }\n return s;\n};\n\n//The Main Component\nfunction Documents({ isOpen, onSave, onClose, savedSelectedDocuments }: Props) {\n const [selectedDocuments, setSelectedDocuments] = useState<\n SelectedDocument[]\n >([]);\n\n const [hasFilterUpdated, setHasFilterUpdated] = useState(false);\n\n const selectedKeys = useMemo(\n () => selectedDocuments.map((doc) => doc.id),\n [selectedDocuments]\n );\n\n const { t } = useTranslation();\n\n const { token } = theme.useToken();\n\n const [activeTab, setActiveTab] = useState<DocumentTypes | null>(null);\n\n const tabItems = useTabItems(activeTab, selectedKeys.length > 0);\n\n const { isPermissionsLoading, permissions } = useRTPermissions();\n\n const isLargeScreen = useMediaQuery(\"lg:(size>=992)\");\n\n const { form, page, pageSize, setFormContainerRef, sorter, update, url } =\n useInteractiveFilter(\n {\n setFilterUpdate: setHasFilterUpdated,\n path: \"\",\n shouldUpdateURL: false,\n trasnfromSearchParams,\n },\n [hasFilterUpdated]\n );\n\n const cancelHandler = () => {\n onClose();\n };\n\n const saveSelectionHandler = () => {\n onSave(selectedDocuments);\n onClose();\n };\n\n const tabChangeHandler: TabsProps[\"onChange\"] = (activeKey) => {\n setActiveTab(activeKey as DocumentTypes);\n setSelectedDocuments([]);\n page.set(1);\n form.resetFields();\n update();\n };\n\n const selectRowsHandler: GetProp<\n typeof Table<Documents>,\n \"rowSelection\"\n >[\"onChange\"] = (_, rows) => {\n setSelectedDocuments(\n rows.map((doc) => {\n return {\n amount:\n activeTab === \"SimpleBills\"\n ? (doc as SimpleBillData).total_amount\n : (doc as InvoiceData).total,\n date: doc.issue_date,\n id: doc.id,\n reference: doc.reference,\n status: doc.status,\n type: activeTab!,\n };\n })\n );\n };\n\n const resetSelection = () => {\n setSelectedDocuments([]);\n };\n\n const tableChangeHandler: TableProps[\"onChange\"] = (\n pagination,\n _,\n sorterObject,\n { action }\n ) => {\n if (action === \"paginate\") {\n // paginate action triggered in response to changing page size\n if (page.get() === pagination.current) {\n page.set(1);\n } else if (pagination.current) {\n page.set(pagination.current);\n }\n if (pagination.pageSize) pageSize.set(pagination.pageSize);\n } else if (action === \"sort\") {\n const { field, order } = sorterObject as SorterResult<any>;\n\n let fieldToSort = field;\n\n if (field === \"total\") {\n fieldToSort = \"total_amount\";\n }\n\n if (field === \"due_amount\") {\n fieldToSort = \"remaining_amount\";\n }\n\n if (Array.isArray(field) && field.some((f) => f === \"contact\")) {\n fieldToSort = field.join(\"_\");\n }\n\n sorter.set({ field: fieldToSort, order });\n }\n setSelectedDocuments([]);\n };\n\n useEffect(() => {\n if (!isPermissionsLoading && permissions?.invoices.write) {\n setActiveTab(\"Invoices\");\n }\n }, [isPermissionsLoading, permissions]);\n\n useLayoutEffect(() => {\n if (isOpen) {\n setSelectedDocuments(savedSelectedDocuments);\n if (savedSelectedDocuments.length) {\n setActiveTab(savedSelectedDocuments[0].type);\n }\n }\n }, [isOpen]);\n\n return (\n <Modal\n title={t(translationTerms.modal.title)}\n onCancel={cancelHandler}\n footer={\n <ModalFooter onCancel={cancelHandler} onSave={saveSelectionHandler} />\n }\n open={isOpen}\n width={\"80vw\"}\n centered\n styles={{ header: { marginBottom: token.marginLG } }}\n >\n <div style={{ height: isLargeScreen ? \"80vh\" : \"auto\" }}>\n <Tabs\n size=\"large\"\n activeKey={activeTab ?? \"\"}\n tabBarGutter={token.marginXS}\n type=\"card\"\n items={tabItems}\n onChange={tabChangeHandler}\n />\n <Flex\n vertical\n gap={isLargeScreen ? token.marginXL : token.margin}\n style={{ marginTop: token.margin }}\n >\n <DocumentsFitlers\n resetSelection={resetSelection}\n documentType={activeTab}\n form={form}\n setFormContainerRef={setFormContainerRef}\n update={update}\n />\n <DocumentsTable\n currentPage={page.get()}\n pageSize={pageSize.get()}\n selectedKeys={selectedKeys}\n documentType={activeTab}\n onChange={tableChangeHandler}\n searchParams={url}\n onSelect={selectRowsHandler}\n />\n </Flex>\n </div>\n </Modal>\n );\n}\n\nconst ModalFooter = ({\n onSave,\n onCancel,\n}: {\n onSave: () => void;\n onCancel: () => void;\n}) => {\n const { t } = useTranslation();\n\n const { token } = theme.useToken();\n\n const isSmallScreen = useMediaQuery(\"(max-width:991px)\");\n\n return (\n <Flex justify={isSmallScreen ? \"center\" : \"end\"} gap={token.margin}>\n <Button key={\"saveSelection\"} onClick={onSave} type=\"primary\">\n {t(translationTerms.modal.saveSelections)}\n </Button>\n <Button key={\"cancel\"} onClick={onCancel}>\n {t(translationTerms.modal.cancel)}\n </Button>\n </Flex>\n );\n};\n\nconst useTabItems = (\n activeTab: DocumentTypes | null,\n hasRowsSelected: boolean\n): TabsProps[\"items\"] => {\n const { isPermissionsLoading, permissions } = useRTPermissions();\n\n const { t } = useTranslation();\n\n return documentsKeys.map((id) => {\n const hasPermission =\n !isPermissionsLoading &&\n permissions &&\n permissions[documentsTokens[id].permissionKey].write;\n\n return {\n key: id,\n label: (\n <Tooltip\n title={!hasPermission && t(translationTerms.tabs.unauthorizedMessage)}\n >\n {t(documentsTokens[id].translations)}\n </Tooltip>\n ),\n disabled: !hasPermission || (hasRowsSelected && activeTab !== id),\n };\n });\n};\n\nexport default Documents;\n","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgRecurringTransactions = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 95 95\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#19283A\",\n d: \"M71.248 35.902v-12.15c0-5.808-4.071-11.04-11.464-14.737-6.52-3.26-15.1-5.055-24.16-5.055-9.061 0-17.642 1.795-24.162 5.055C4.071 12.711 0 17.945 0 23.751v47.498c0 5.806 4.07 11.04 11.463 14.736 6.52 3.26 15.1 5.055 24.16 5.055 6.904 0 13.484-1.03 19.168-2.983A27.542 27.542 0 0 0 67.29 91.04C82.57 91.04 95 78.609 95 63.329c.001-13.935-10.34-25.5-23.751-27.427z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M39.842 67.14a27.86 27.86 0 0 1 .039-7.901c-1.417.09-2.837.136-4.257.136v7.915c1.418 0 2.827-.05 4.218-.15zm27.536-23.602c-.03 0-.059.004-.088.004-.03 0-.06-.004-.089-.004-10.873.048-19.705 8.907-19.705 19.791 0 10.915 8.88 19.794 19.794 19.794 10.913 0 19.793-8.88 19.793-19.794 0-10.884-8.832-19.743-19.705-19.791zM46.845 82.016a27.805 27.805 0 0 1-4.736-7.124 66.56 66.56 0 0 1-6.485.315v7.916c3.873 0 7.694-.385 11.221-1.107zm-4.399-30.953a27.884 27.884 0 0 1 7.137-9.033c-4.351.988-9.084 1.512-13.959 1.512v7.916c2.314 0 4.6-.133 6.822-.395zM63.331 23.75c0-5.605-11.85-11.874-27.707-11.874v23.748c15.858 0 27.707-6.269 27.707-11.874z\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#3386C3\",\n d: \"M11.463 54.32a31.45 31.45 0 0 1-3.546-2.062v3.158c0 5.605 11.849 11.874 27.706 11.874v-7.915c-9.06 0-17.64-1.795-24.16-5.055zm0 15.832a31.419 31.419 0 0 1-3.546-2.06v3.157c0 5.605 11.849 11.874 27.706 11.874v-7.916c-9.06 0-17.641-1.795-24.16-5.055zm0-31.665a31.434 31.434 0 0 1-3.546-2.06v3.157c0 5.605 11.849 11.874 27.706 11.874v-7.915c-9.06 0-17.64-1.796-24.16-5.056zM7.917 23.751c0 5.605 11.85 11.874 27.707 11.874V11.877c-15.858 0-27.707 6.27-27.707 11.874z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgRecurringTransactions);\nexport default Memo;","import { useTranslation } from \"react-i18next\";\nimport { PlusOutlined } from \"@ant-design/icons\";\nimport { Button } from \"antd\";\nimport RecurringTransactionsIcon from \"assets/icons/Recurring-Transactions.svg\";\nimport QOnBoardingIndex from \"components/layout/QOnBoardingIndex\";\nimport { useRTPermissions } from \"hooks/recurring_transactions\";\n\nconst NoRecurringTransactions = () => {\n const { t } = useTranslation();\n\n const { isPermissionsLoading, permissions } = useRTPermissions();\n\n const canWrite: boolean =\n !isPermissionsLoading && (permissions?.recurring_transactions?.write || false);\n\n return (\n <QOnBoardingIndex\n icon={<RecurringTransactionsIcon />}\n title={t(\"recurring_transactions.onboarding.title\")}\n subtitle={t(\"recurring_transactions.onboarding.desc\")}\n extra={\n <Button\n type=\"primary\"\n href=\"recurring_transactions/new\"\n disabled={!canWrite}\n style={{ height: \"auto\", whiteSpace: \"pre-wrap\" }}\n >\n <PlusOutlined /> {t(\"recurring_transactions.create.button\")}\n </Button>\n }\n />\n );\n};\n\nexport default NoRecurringTransactions;\n","//@ts-nocheck\nimport React, { useEffect } from \"react\";\nimport { useInteractiveFilter } from \"hooks/app\";\nimport {\n Button,\n Col,\n DatePicker,\n Flex,\n Form,\n Input,\n InputNumber,\n Row,\n Select,\n theme,\n} from \"antd\";\nimport { useRTRecords } from \"hooks/recurring_transactions\";\nimport { useTranslation } from \"react-i18next\";\nimport { FilterOutlined, ReloadOutlined } from \"@ant-design/icons\";\nimport dayjs from \"dayjs\";\n\ntype Props = Pick<\n ReturnType<typeof useInteractiveFilter>,\n | \"pageSize\"\n | \"page\"\n | \"update\"\n | \"url\"\n | \"form\"\n | \"sorter\"\n | \"setFormContainerRef\"\n>;\n\nconst translationTerms = {\n reference: \"activerecord.external_documents.bill.reference\",\n total: \"activerecord.attributes.contact_payment.amount\",\n status: \"activerecord.attributes.invoice.status\",\n name: \"activerecord.attributes.invoice.name\",\n recurringType: \"recurring_transactions.index.recurring_type\",\n nextDate: \"recurring_transactions.index.next_date\",\n actions: \"recurring_transactions.index.actions\",\n type: {\n daily: \"recurring_transactions.index.daily\",\n weekly: \"recurring_transactions.index.weekly\",\n monthly: \"recurring_transactions.index.monthly\",\n quarterly: \"recurring_transactions.index.quarterly\",\n semi_annually: \"recurring_transactions.index.semi_annually\",\n },\n statuses: {\n active: \"recurring_transactions.index.statuses.active\",\n draft: \"recurring_transactions.index.statuses.draft\",\n inactive: \"recurring_transactions.index.statuses.inactive\",\n scheduled: \"recurring_transactions.index.statuses.scheduled\",\n failed: \"recurring_transactions.index.statuses.failed\",\n completed: \"recurring_transactions.index.statuses.completed\",\n },\n filter: \"forms.buttons.filter\",\n reset: \"forms.buttons.reset\",\n};\n\nconst RecordsFilter = ({\n setFormContainerRef,\n form,\n update,\n url,\n sorter,\n}: Props) => {\n const { data } = useRTRecords({\n queryKey: [\"RTIndex\", url],\n querySearch: url,\n });\n\n const { t, i18n } = useTranslation();\n\n const { token } = theme.useToken();\n\n const searchParams = new URLSearchParams(window.location.search);\n\n // Apply persisted filters only when no search queries are present\n const shouldApplyStoredFilter = !searchParams.size;\n\n const resetFilterHandler = () => {\n form.resetFields();\n sorter.reset();\n update();\n };\n\n useEffect(() => {\n if (data?.filters && shouldApplyStoredFilter) {\n data.filters.forEach((filter) => {\n form.setFieldValue(\n `q[${filter.attribute}_${filter.predicate}]`,\n filter.value ?? undefined\n );\n });\n }\n }, [data?.filters, shouldApplyStoredFilter]);\n\n return (\n // The interactive filter hook should not run until the persisted filters are applied to avoid triggering an extra request.\n <div ref={data ? setFormContainerRef : null}>\n <Form form={form}>\n <Row wrap gutter={[token.margin, token.marginMD]}>\n <Form.Item noStyle name={\"q[document_type_eq]\"}></Form.Item>\n <Form.Item noStyle name={\"reset\"} initialValue={\"true\"}></Form.Item>\n <Col span={12} lg={{ span: 8 }} xl={{ span: 4 }}>\n <Form.Item name={\"q[reference_eq]\"}>\n <Input placeholder={t(translationTerms[\"reference\"])} />\n </Form.Item>\n </Col>\n\n <Col span={12} lg={{ span: 8 }} xl={{ span: 4 }}>\n <Form.Item name={\"q[documents_total_amount_eq]\"}>\n <InputNumber\n style={{ width: \"100%\" }}\n placeholder={t(translationTerms[\"total\"])}\n />\n </Form.Item>\n </Col>\n\n <Col span={12} lg={{ span: 8 }} xl={{ span: 4 }}>\n <Form.Item\n name={`q[${i18n.language === \"ar\" ? \"ar_name\" : \"en_name\"}_cont]`}\n >\n <Input placeholder={t(translationTerms[\"name\"])} />\n </Form.Item>\n </Col>\n\n <Col span={12} lg={{ span: 8 }} xl={{ span: 4 }}>\n <Form.Item\n name={\"q[repeat_term_eq]\"}\n getValueProps={(v) => ({\n value: v === \"\" ? undefined : v,\n })}\n >\n <Select\n allowClear\n style={{ width: \"100%\" }}\n placeholder={t(translationTerms[\"recurringType\"])}\n options={Object.entries(translationTerms.type).map(\n ([key, value]) => ({\n value: key,\n label: t(value),\n })\n )}\n />\n </Form.Item>\n </Col>\n\n <Col span={12} lg={{ span: 8 }} xl={{ span: 4 }}>\n <Form.Item\n getValueProps={(value) => ({\n value: value && dayjs(value),\n })}\n normalize={(value) =>\n value && `${dayjs(value).format(\"YYYY-MM-DD\")}`\n }\n name={\"q[start_date_eq]\"}\n >\n <DatePicker\n style={{ width: \"100%\" }}\n placeholder={t(translationTerms[\"nextDate\"])}\n />\n </Form.Item>\n </Col>\n\n <Col span={12} lg={{ span: 8 }} xl={{ span: 4, offset: 4, pull: 4 }}>\n <Form.Item\n name={\"q[status_eq]\"}\n getValueProps={(v) => ({\n value: v === \"\" ? undefined : v,\n })}\n >\n <Select\n style={{ width: \"100%\" }}\n allowClear\n placeholder={t(translationTerms[\"status\"])}\n options={Object.entries(translationTerms.statuses).map(\n ([key, value]) => ({\n value: key,\n label: t(value),\n })\n )}\n />\n </Form.Item>\n </Col>\n\n <Col xl={{pull:4}}>\n <FilterActions\n update={update}\n resetFilterHandler={resetFilterHandler}\n />\n </Col>\n </Row>\n </Form>\n </div>\n );\n};\n\nconst FilterActions = ({\n update,\n resetFilterHandler,\n}: Pick<Props, \"update\"> & { resetFilterHandler: () => void }) => {\n const { token } = theme.useToken();\n\n const { t } = useTranslation();\n\n return (\n <Flex gap={token.marginSM}>\n <Button type=\"primary\" icon={<FilterOutlined />} onClick={update}>\n {t(translationTerms.filter)}\n </Button>\n <Button icon={<ReloadOutlined />} onClick={resetFilterHandler}>\n {t(translationTerms.reset)}\n </Button>\n </Flex>\n );\n};\n\nexport default RecordsFilter;\n","import { useLayoutEffect, useMemo, useRef } from \"react\";\nimport {\n Button,\n Flex,\n Modal,\n Space,\n Spin,\n Table,\n TableProps,\n Tag,\n theme,\n Tooltip,\n Typography,\n} from \"antd\";\nimport { TagProps } from \"antd/lib\";\nimport { useInteractiveFilter, useMediaQuery } from \"hooks/app\";\nimport {\n useDeleteRT,\n useRTPermissions,\n useRTRecords,\n useToggleRTStatus,\n} from \"hooks/recurring_transactions\";\nimport { useTranslation } from \"react-i18next\";\nimport { RTRecord } from \"types/recurring_transactions\";\nimport dayjs from \"dayjs\";\nimport { SorterResult } from \"antd/es/table/interface\";\nimport {\n CopyOutlined,\n DeleteOutlined,\n EditOutlined,\n EyeOutlined,\n PlayCircleOutlined,\n PoweroffOutlined,\n} from \"@ant-design/icons\";\nimport { formatAmountWithCurrency } from \"helpers/app\";\n\ntype Props = Pick<\n ReturnType<typeof useInteractiveFilter>,\n \"pageSize\" | \"page\" | \"url\" | \"form\" | \"sorter\"\n>;\n\nconst translationTerms = {\n columns: {\n reference: \"activerecord.external_documents.bill.reference\",\n total: \"activerecord.attributes.contact_payment.amount\",\n status: \"activerecord.attributes.invoice.status\",\n name: \"activerecord.attributes.invoice.name\",\n recurringType: \"recurring_transactions.index.recurring_type\",\n nextDate: \"recurring_transactions.index.next_date\",\n actions: \"recurring_transactions.index.actions\",\n },\n statuses: {\n active: \"recurring_transactions.index.statuses.active\",\n draft: \"recurring_transactions.index.statuses.draft\",\n inactive: \"recurring_transactions.index.statuses.inactive\",\n scheduled: \"recurring_transactions.index.statuses.scheduled\",\n failed: \"recurring_transactions.index.statuses.failed\",\n completed: \"recurring_transactions.index.statuses.completed\",\n },\n type: {\n daily: \"recurring_transactions.index.daily\",\n weekly: \"recurring_transactions.index.weekly\",\n monthly: \"recurring_transactions.index.monthly\",\n quarterly: \"recurring_transactions.index.quarterly\",\n semi_annually: \"recurring_transactions.index.semi_annually\",\n },\n modal: {\n cancel: \"recurring_transactions.index.modal.cancel\",\n delete: {\n title: \"recurring_transactions.index.modal.delete.title\",\n description: \"recurring_transactions.index.modal.delete.description\",\n okBtn: \"recurring_transactions.index.modal.delete.okBtn\",\n },\n active: {\n title: \"recurring_transactions.index.modal.active.title\",\n description: \"recurring_transactions.index.modal.active.description\",\n okBtn: \"recurring_transactions.index.modal.active.okBtn\",\n },\n inactive: {\n title: \"recurring_transactions.index.modal.inactive.title\",\n description: \"recurring_transactions.index.modal.inactive.description\",\n okBtn: \"recurring_transactions.index.modal.inactive.okBtn\",\n },\n },\n tooltip: {\n view: \"recurring_transactions.index.action.view\",\n edit: \"recurring_transactions.index.action.edit\",\n delete: \"recurring_transactions.index.action.delete\",\n activate: \"recurring_transactions.index.action.activate\",\n deactivate: \"recurring_transactions.index.action.deactivate\",\n clone: \"recurring_transactions.index.action.clone\",\n },\n};\n\n// Main Component\nconst RecordsTable = ({ page, pageSize, url, sorter }: Props) => {\n const { data, isLoading, isFetching, isPreviousData } = useRTRecords({\n queryKey: [\"RTIndex\", url],\n querySearch: url,\n keepPreviousData: true,\n });\n\n const columns = useColumns({ sorter });\n\n const isLargeScreen = useMediaQuery(\"lg:(size>=992)\");\n\n const tableChangeHandler: TableProps[\"onChange\"] = (\n pagination,\n _,\n sorterObject,\n { action }\n ) => {\n if (action === \"paginate\") {\n if (page.get() === pagination.current) {\n page.set(1);\n } else if (pagination.current) {\n page.set(pagination.current);\n }\n\n if (pagination.pageSize) pageSize.set(pagination.pageSize);\n } else if (action === \"sort\") {\n const { field, order } = sorterObject as SorterResult<any>;\n\n if (order && field) {\n sorter.set({ field, order });\n } else {\n sorter.reset();\n }\n }\n };\n\n return (\n <Table\n size={isLargeScreen ? \"middle\" : \"small\"}\n onChange={tableChangeHandler}\n loading={isLoading || (isPreviousData && isFetching)}\n rowKey={\"id\"}\n onRow={(record) => ({\n style:\n record.status === \"inactive\"\n ? {\n backgroundColor: \"#fafafa\",\n }\n : undefined,\n })}\n scroll={{\n x: isLargeScreen ? 0 : 1000,\n }}\n pagination={{\n size: isLargeScreen ? \"default\" : \"small\",\n current: page.get(),\n total: data?.pagination?.total_entries,\n pageSize: pageSize.get(),\n showSizeChanger: true,\n pageSizeOptions: [10, 15, 25, 50, 75, 100],\n position: [\"bottomCenter\"],\n }}\n dataSource={data?.records}\n columns={columns}\n />\n );\n};\n\n// used in useColumns\nconst sortByThisColumn = (\n sorter: Props[\"sorter\"],\n filed: keyof RTRecord\n): SorterResult<any>[\"order\"] => {\n return sorter.get()?.field === filed\n ? (sorter.get()?.order as SorterResult<any>[\"order\"])\n : undefined;\n};\n\n// used in useColumns\nconst mapColorStatus = (status: RTRecord[\"status\"]): TagProps[\"color\"] => {\n switch (status) {\n case \"draft\":\n return \"orange\";\n\n case \"scheduled\":\n return \"blue\";\n\n case \"active\":\n return \"green\";\n\n case \"inactive\":\n return \"default\";\n\n case \"failed\":\n return \"red\";\n\n case \"completed\":\n return \"cyan\";\n }\n};\n\nconst useColumns = ({\n sorter,\n}: {\n sorter: Props[\"sorter\"];\n}): TableProps<RTRecord>[\"columns\"] => {\n const { t, i18n } = useTranslation();\n\n const { isPermissionsLoading } = useRTPermissions();\n\n const isLargeScreen = useMediaQuery(\"lg:(size>=992)\");\n\n return [\n {\n dataIndex: \"reference\",\n title: t(translationTerms.columns.reference),\n sorter: true,\n sortOrder: sortByThisColumn(sorter, \"reference\"),\n fixed: isLargeScreen ? false : true,\n },\n {\n dataIndex: \"documents_total_amount\",\n title: t(translationTerms.columns.total),\n sorter: true,\n render(value: string) {\n return value && formatAmountWithCurrency(value);\n },\n sortOrder: sortByThisColumn(sorter, \"documents_total_amount\"),\n },\n {\n dataIndex: i18n.language === \"ar\" ? \"ar_name\" : \"en_name\",\n title: t(translationTerms.columns.name),\n sorter: true,\n sortOrder: sortByThisColumn(\n sorter,\n i18n.language === \"ar\" ? \"ar_name\" : \"en_name\"\n ),\n },\n {\n dataIndex: \"repeat_term\",\n title: t(translationTerms.columns.recurringType),\n sorter: true,\n render(value) {\n return t(\n translationTerms.type[\n value as keyof (typeof translationTerms)[\"type\"]\n ]\n );\n },\n sortOrder: sortByThisColumn(sorter, \"repeat_term\"),\n },\n {\n dataIndex: \"start_date\",\n title: t(translationTerms.columns.nextDate),\n sorter: true,\n render(value: string, record) {\n if (record.status === \"completed\") return;\n return dayjs(value).format(\"YYYY-MM-DD\");\n },\n sortOrder: sortByThisColumn(sorter, \"start_date\"),\n },\n {\n dataIndex: \"status\",\n title: t(translationTerms.columns.status),\n sorter: true,\n render(value, record) {\n const color = mapColorStatus(record.status);\n\n return (\n <Tag color={color}>\n {t(\n translationTerms.statuses[\n value as keyof (typeof translationTerms)[\"statuses\"]\n ]\n )}\n </Tag>\n );\n },\n sortOrder: sortByThisColumn(sorter, \"status\"),\n },\n {\n title: (\n <Space>\n {t(translationTerms.columns.actions)}\n <Spin spinning={isPermissionsLoading} />\n </Space>\n ),\n width: \"20%\",\n align: \"center\",\n render(_, record) {\n return <RowActions record={record} />;\n },\n },\n ];\n};\n\nconst RowActions = ({ record }: { record: RTRecord }) => {\n const { token } = theme.useToken();\n\n const { permissions } = useRTPermissions();\n\n const [modal, contextHolder] = Modal.useModal();\n\n const confirmModal = useRef<null | ReturnType<(typeof modal)[\"confirm\"]>>(\n null\n );\n\n const { mutateAsync: updteStatusAsync, isLoading: isUpdatingStatusLoading } =\n useToggleRTStatus();\n\n const { mutateAsync: deleteRTAsync, isLoading: isDeletingLoading } =\n useDeleteRT();\n\n const { t } = useTranslation();\n\n const deleteHandler = () => {\n confirmModal.current = modal.confirm({\n title: t(translationTerms.modal.delete.title),\n content: (\n <Typography.Paragraph>\n {t(translationTerms.modal.delete.description)}\n </Typography.Paragraph>\n ),\n icon: <DeleteOutlined style={{ color: token.red }} />,\n okText: t(translationTerms.modal.delete.okBtn),\n onOk() {\n return deleteRTAsync(record.id);\n },\n });\n };\n\n const statusToggleHandler = () => {\n const newStatus = record.status === \"inactive\" ? \"active\" : \"inactive\";\n\n confirmModal.current = modal.confirm({\n title: t(translationTerms.modal[newStatus].title),\n content: (\n <Typography.Paragraph>\n {t(translationTerms.modal[newStatus].description)}\n </Typography.Paragraph>\n ),\n okText: t(translationTerms.modal[newStatus].okBtn),\n icon:\n newStatus === \"active\" ? (\n <PlayCircleOutlined style={{ color: token.green }} />\n ) : (\n <PoweroffOutlined style={{ color: token.red }} />\n ),\n onOk() {\n return updteStatusAsync({ id: record.id, status: newStatus });\n },\n });\n };\n\n useLayoutEffect(() => {\n confirmModal.current?.update({\n okButtonProps: {\n loading: isUpdatingStatusLoading || isDeletingLoading,\n },\n cancelButtonProps: {\n disabled: isUpdatingStatusLoading || isDeletingLoading,\n },\n });\n }, [isUpdatingStatusLoading, isDeletingLoading]);\n\n const { canActivateDeactivate, canDelete, canEdit, canClone } =\n useMemo(() => {\n const canWrite = permissions?.recurring_transactions.write;\n\n const canActivateDeactivate =\n (record.status === \"inactive\" ||\n record.status === \"active\" ||\n record.status === \"scheduled\") &&\n canWrite;\n\n const canEdit =\n (record.status === \"scheduled\" || record.status === \"draft\") &&\n canWrite;\n\n const canDelete =\n record.status !== \"active\" &&\n record.status !== \"failed\" &&\n permissions?.recurring_transactions.delete;\n\n const canClone = canWrite;\n\n return {\n canActivateDeactivate,\n canDelete,\n canEdit,\n canWrite,\n canClone,\n };\n }, [record.status, permissions]);\n\n return (\n <Flex style={{ marginInline: \"auto\" }} justify=\"start\" gap={token.marginSM}>\n <Tooltip title={t(translationTerms.tooltip.view)}>\n <Button\n href={`/tenant/recurring_transactions/${record.id}`}\n icon={<EyeOutlined />}\n />\n </Tooltip>\n {canEdit && (\n <Tooltip title={t(translationTerms.tooltip.edit)}>\n <Button\n hidden\n href={`/tenant/recurring_transactions/${record.id}/edit/`}\n icon={<EditOutlined />}\n />\n </Tooltip>\n )}\n {canDelete && (\n <Tooltip title={t(translationTerms.tooltip.delete)}>\n <Button onClick={deleteHandler} icon={<DeleteOutlined />} />\n </Tooltip>\n )}\n {canActivateDeactivate && (\n <Tooltip\n title={t(\n translationTerms.tooltip[\n record.status === \"inactive\" ? \"activate\" : \"deactivate\"\n ]\n )}\n >\n <Button\n onClick={statusToggleHandler}\n icon={\n record.status === \"inactive\" ? (\n <PlayCircleOutlined />\n ) : (\n <PoweroffOutlined />\n )\n }\n />\n </Tooltip>\n )}\n {canClone && (\n <Tooltip title={t(translationTerms.tooltip.clone)}>\n <Button\n hidden\n href={`/tenant/recurring_transactions/${record.id}/edit?clone=true`}\n icon={<CopyOutlined />}\n />\n </Tooltip>\n )}\n {contextHolder}\n </Flex>\n );\n};\n\nexport default RecordsTable;\n","import { Form, Tabs, theme } from \"antd\";\nimport { TabsProps } from \"antd/lib\";\nimport { useInteractiveFilter, useMediaQuery } from \"hooks/app\";\nimport { useLayoutEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { DocumentTypes } from \"types/recurring_transactions\";\n\ntype Props = Pick<\n ReturnType<typeof useInteractiveFilter>,\n \"form\" | \"page\" | \"update\"\n>;\n\nconst translationTerms = {\n All: {\n tabTitle: \"recurring_transactions.index.all\",\n },\n Invoices: {\n tabTitle: \"activerecord.external_documents.invoice.title\",\n },\n Bills: {\n tabTitle: \"activerecord.external_documents.bill.title\",\n },\n SimpleBills: {\n tabTitle: \"activerecord.external_documents.simple_bill.title\",\n },\n modal: {\n title: \"recurring_transactions.select_documents.title\",\n saveSelections: \"recurring_transactions.actions.save_selection\",\n cancel: \"recurring_transactions.actions.cancel\",\n },\n tabs: {\n unauthorizedMessage:\n \"recurring_transactions.select_documents.unauthorized_message\",\n },\n};\n\ntype TabKeys = DocumentTypes | \"All\";\n\nconst documentsKeys: TabKeys[] = [\"All\", \"Invoices\", \"Bills\", \"SimpleBills\"];\n\nconst documentsTokens = Object.fromEntries(\n documentsKeys.map((id) => [\n id,\n {\n translations: translationTerms[id].tabTitle,\n filterValue: id === \"All\" ? null : id.slice(0, -1),\n id,\n },\n ])\n);\n\nconst IndexTabs = ({ form, update }: Props) => {\n const [activeTab, setActiveTab] = useState<TabKeys | null>(\"All\");\n\n const statusField = Form.useWatch(\"q[document_type_eq]\", form) as string;\n\n const { token } = theme.useToken();\n\n const tabItems = useTabItems();\n\n const isLargeScreen = useMediaQuery(\"lg:(size>=992)\");\n\n const tabChangeHandler: TabsProps[\"onChange\"] = (activeKey) => {\n setActiveTab(activeKey as TabKeys);\n form.resetFields();\n form.setFieldValue(\n \"q[document_type_eq]\",\n documentsTokens[activeKey].filterValue\n );\n update();\n };\n\n useLayoutEffect(() => {\n setActiveTab(!statusField ? \"All\" : documentsTokens[`${statusField}s`]?.id);\n }, [statusField]);\n\n return (\n <Tabs\n size={isLargeScreen ? \"large\" : \"middle\"}\n activeKey={activeTab ?? \"\"}\n tabBarGutter={token.marginXS}\n type=\"card\"\n items={tabItems}\n onChange={tabChangeHandler}\n />\n );\n};\n\nconst useTabItems = (): TabsProps[\"items\"] => {\n const { t } = useTranslation();\n\n return documentsKeys.map((id) => {\n return {\n key: id,\n label: t(documentsTokens[id].translations),\n };\n });\n};\n\nexport default IndexTabs;\n","//@ts-nocheck\nimport React, { useMemo } from \"react\";\nimport {\n Card,\n Col,\n Divider,\n Flex,\n Row,\n Skeleton,\n theme,\n Typography,\n} from \"antd\";\nimport { TransactionData } from \"types/recurring_transactions\";\nimport { useTranslation } from \"react-i18next\";\nimport Status from \"./Status\";\nimport dayjs from \"dayjs\";\nimport { useSchedules } from \"hooks/recurring_transactions\";\nimport { useMediaQuery } from \"hooks/app\";\n\nconst translationTerms = {\n indexTitle: \"recurring_transactions.title\",\n title: \"recurring_transactions.show.title\",\n backBtn: \"recurring_transactions.show.back\",\n info: {\n reference: \"recurring_transactions.show.reference\",\n ar_name: \"recurring_transactions.show.arabic_name\",\n en_name: \"recurring_transactions.show.english_name\",\n description: \"recurring_transactions.show.description\",\n status: \"recurring_transactions.show.status\",\n user_comments: \"recurring_transactions.show.additional_comments\",\n },\n statuses: {\n active: \"recurring_transactions.show.statuses.active\",\n draft: \"recurring_transactions.show.statuses.draft\",\n inactive: \"recurring_transactions.show.statuses.inactive\",\n scheduled: \"recurring_transactions.show.statuses.scheduled\",\n failed: \"recurring_transactions.show.statuses.failed\",\n completed: \"recurring_transactions.show.statuses.completed\",\n },\n recurringOpt: {\n cardTitle: \"recurring_transactions.show.cardTitle\",\n frequencyType: \"recurring_transactions.show.frequency_type\",\n ends: \"recurring_transactions.show.ends\",\n afterMaximumRuns: \"recurring_transactions.show.after_maximum_runs\",\n onCustomDate: \"recurring_transactions.show.on_custom_date\",\n dateFirstRun: \"recurring_transactions.show.date_first_run\",\n dateNextRun: \"recurring_transactions.show.date_next_run\",\n dateLastRun: \"recurring_transactions.show.date_last_run\",\n remainingRuns: \"recurring_transactions.show.remaining_runs\",\n },\n RTtype: {\n daily: \"recurring_transactions.show.daily\",\n weekly: \"recurring_transactions.show.weekly\",\n monthly: \"recurring_transactions.show.monthly\",\n quarterly: \"recurring_transactions.show.quarterly\",\n semi_annually: \"recurring_transactions.show.semi_annually\",\n },\n};\n\n// Main Component\nexport default function RTCardsInfo({\n isLoading,\n RTInfo,\n}: {\n isLoading: boolean;\n RTInfo: TransactionData | undefined;\n}) {\n const { token } = theme.useToken();\n\n return (\n <Row gutter={[token.margin, token.marginXL]} style={{ minHeight: \"30vh\" }}>\n <Col span={24} xl={{ span: 12 }}>\n <GeneralInfoCard RTInfo={RTInfo} isLoading={isLoading} />\n </Col>\n <Col span={24} xl={{ span: 12 }}>\n <RTOptCard RTInfo={RTInfo} isLoading={isLoading} />\n </Col>\n </Row>\n );\n}\n\nconst GeneralInfoCard = ({\n isLoading,\n RTInfo,\n}: {\n isLoading: boolean;\n RTInfo: TransactionData | undefined;\n}) => {\n const { token } = theme.useToken();\n\n const { t } = useTranslation();\n\n return (\n <Card bordered style={{ height: \"100%\" }}>\n <Skeleton paragraph={{ rows: 6 }} loading={isLoading}>\n {RTInfo && (\n <Row gutter={[0, token.marginSM]}>\n {Object.entries(RTInfo).map(([key, value]) => {\n if (\n !translationTerms.info[\n key as keyof typeof translationTerms.info\n ]\n )\n return null;\n\n return (\n <React.Fragment key={key}>\n <Col span={12}>\n <Typography.Text type=\"secondary\">\n {t(\n translationTerms.info[\n key as keyof typeof translationTerms.info\n ]\n )}\n </Typography.Text>\n </Col>\n\n <Col span={12}>\n {key === \"status\" ? (\n <Status status={value} />\n ) : (\n <Typography.Text>{value}</Typography.Text>\n )}\n </Col>\n\n {key === \"status\" && value === \"failed\" && (\n <FailureReason id={RTInfo?.id} />\n )}\n </React.Fragment>\n );\n })}\n </Row>\n )}\n </Skeleton>\n </Card>\n );\n};\n\nconst FailureReason = ({ id }: { id: number | undefined }) => {\n const { passedSchedulesQuery } = useSchedules(id, {\n passed: {\n page: \"1\",\n per_page: \"1\",\n },\n upcoming: { enabled: false },\n });\n\n const { t } = useTranslation();\n\n return (\n <>\n <Col span={12}>\n <Typography.Text type=\"secondary\">\n {t(\"recurring_transactions.show.failure_reason\")}\n </Typography.Text>\n </Col>\n <Col span={12}>\n <Skeleton\n loading={passedSchedulesQuery.isLoading}\n active\n title={false}\n paragraph={{ rows: 1 }}\n >\n <Typography.Text>\n {passedSchedulesQuery.data?.schedules[0]?.failure_reason}\n </Typography.Text>\n </Skeleton>\n </Col>\n </>\n );\n};\n\nconst RTOptCard = ({\n isLoading,\n RTInfo,\n}: {\n isLoading: boolean;\n RTInfo: TransactionData | undefined;\n}) => {\n const { t } = useTranslation();\n\n const dateOpt = useMemo(() => {\n return (\n RTInfo && [\n [\"dateNextRun\", RTInfo.next_run_date || \"\"],\n [\"dateLastRun\", RTInfo.last_run_date || \"\"],\n [\"dateFirstRun\", RTInfo.start_date || \"\"],\n ]\n );\n }, [RTInfo]);\n\n return (\n <Card\n bordered\n title={t(translationTerms.recurringOpt.cardTitle)}\n type=\"inner\"\n style={{ height: \"100%\" }}\n >\n <Skeleton paragraph={{ rows: 6 }} loading={isLoading}>\n {RTInfo && (\n <div style={{ width: \"95%\", marginInline: \"auto\" }}>\n <RTDateOpt dateOpt={dateOpt} />\n <Divider />\n <RTRepeatOpt RTInfo={RTInfo} />\n </div>\n )}\n </Skeleton>\n </Card>\n );\n};\n\nconst RTDateOpt = ({ dateOpt }: { dateOpt: string[][] | undefined }) => {\n const { token } = theme.useToken();\n\n const { t } = useTranslation();\n\n const isLargeScreen = useMediaQuery(\"lg:(size>=992)\");\n\n return (\n <Flex vertical={!isLargeScreen} justify=\"space-between\">\n {dateOpt?.map(([key, value], i) => {\n return (\n <Flex\n key={key}\n justify={isLargeScreen ? \"start\" : \"space-between\"}\n vertical={isLargeScreen}\n gap={token.marginXS}\n >\n <Typography.Text type=\"secondary\">\n {t(\n translationTerms.recurringOpt[\n key as keyof typeof translationTerms.recurringOpt\n ]\n )}\n </Typography.Text>\n <Typography.Text>\n {value && dayjs(value).format(\"YYYY-MM-DD\")}\n </Typography.Text>\n </Flex>\n );\n })}\n </Flex>\n );\n};\n\nconst RTRepeatOpt = ({ RTInfo }: { RTInfo: TransactionData }) => {\n const { token } = theme.useToken();\n\n const { t } = useTranslation();\n\n const isSmallScreen = useMediaQuery(\"sm:(size<=576)\");\n\n return (\n <Flex gap={token.margin} vertical={isSmallScreen} justify=\"space-between\">\n <Flex flex={\"0 0 45%\"} vertical gap={token.margin}>\n <Flex justify=\"space-between\" flex={1}>\n <Typography.Text type=\"secondary\">\n {t(translationTerms.recurringOpt.frequencyType)}\n </Typography.Text>\n <Typography.Text>\n {t(translationTerms.RTtype[RTInfo.repeat_term])}\n </Typography.Text>\n </Flex>\n\n <Flex justify=\"space-between\" flex={1}>\n <Typography.Text type=\"secondary\">\n {t(translationTerms.recurringOpt.remainingRuns)}\n </Typography.Text>\n <Typography.Text>{RTInfo.remaining_runs}</Typography.Text>\n </Flex>\n </Flex>\n\n <Divider\n orientation=\"center\"\n style={{ height: \"auto\" }}\n type=\"vertical\"\n />\n\n <Flex flex={\"0 0 45%\"} vertical gap={token.margin}>\n <Typography.Text type=\"secondary\">\n {t(translationTerms.recurringOpt.ends)}\n </Typography.Text>\n\n <Flex justify=\"space-between\" flex={1}>\n {RTInfo.end_type === \"runs_count\" ? (\n <>\n <Typography.Text type=\"secondary\">\n {t(translationTerms.recurringOpt.afterMaximumRuns)}\n </Typography.Text>\n <Typography.Text>{RTInfo.total_runs}</Typography.Text>\n </>\n ) : (\n <>\n <Typography.Text type=\"secondary\">\n {t(translationTerms.recurringOpt.onCustomDate)}\n </Typography.Text>\n <Typography.Text>\n {RTInfo.end_date && dayjs(RTInfo.end_date).format(\"YYYY-MM-DD\")}\n </Typography.Text>\n </>\n )}\n </Flex>\n </Flex>\n </Flex>\n );\n};\n","import { ConfigProvider, Table, Tabs, theme, Typography } from \"antd\";\nimport { TableProps } from \"antd/lib\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n RTPermissions,\n TransactionDocumentData,\n} from \"types/recurring_transactions\";\nimport { Statuses } from \"types/app\";\nimport { useStatusMap } from \"hooks/status\";\nimport { useMediaQuery } from \"hooks/app\";\nimport { useRTPermissions } from \"hooks/recurring_transactions\";\n\ninterface Props {\n documents: TransactionDocumentData[];\n documentType: \"Invoice\" | \"Bill\" | \"SimpleBill\";\n onChange: TableProps[\"onChange\"];\n totalDocs: number | undefined;\n pageSize: number | undefined;\n isLoading: boolean;\n}\n\nconst translationTerms = {\n title: \"recurring_transactions.show.related_documents\",\n columns: {\n reference: \"activerecord.external_documents.bill.reference\",\n customerName: \"activerecord.attributes.contact_payment.customer_name\",\n vendorName: \"activerecord.attributes.contact_payment.vendor_name\",\n issueDate: \"activerecord.external_documents.invoice.issue_date\",\n total: \"activerecord.attributes.contact_payment.amount\",\n balance: \"activerecord.attributes.contact.balance\",\n dueDate: \"activerecord.attributes.invoice.due_date\",\n status: \"activerecord.attributes.invoice.status\",\n },\n Bill: \"activerecord.attributes.commercial_document.bill\",\n SimpleBill: \"activerecord.attributes.commercial_document.simple_bill\",\n Invoice: \"activerecord.attributes.commercial_document.invoice\",\n};\n\nexport default function RelatedDocs({\n documents,\n documentType,\n onChange,\n totalDocs,\n pageSize,\n isLoading,\n}: Props) {\n const { token } = theme.useToken();\n\n const { t } = useTranslation();\n\n const columns = useColumns(documentType);\n\n const isLargeScreen = useMediaQuery(\"lg:(size>=992)\");\n\n return (\n <ConfigProvider\n theme={{\n components: {\n Tabs: { margin: 0, cardBg: token.colorPrimaryBg, borderRadiusLG: 0 },\n Table: { headerBorderRadius: 0, headerBg: token.colorPrimaryBg },\n },\n }}\n >\n <Typography.Title level={4} style={{ marginBottom: token.marginLG }}>\n {t(translationTerms.title)}\n </Typography.Title>\n <Tabs\n size=\"large\"\n type=\"card\"\n activeKey=\"\"\n items={[\n {\n label: (\n <Typography.Text strong>\n {t(translationTerms[documentType])}\n </Typography.Text>\n ),\n key: \"documentType\",\n },\n ]}\n />\n <Table\n scroll={{ x: isLargeScreen ? 0 : 400 }}\n rowKey={\"reference\"}\n loading={isLoading}\n pagination={{ total: totalDocs, pageSize, hideOnSinglePage: true }}\n onChange={onChange}\n dataSource={documents}\n columns={columns}\n />\n </ConfigProvider>\n );\n}\n\nconst useColumns = (\n documentType: \"Invoice\" | \"Bill\" | \"SimpleBill\"\n): TableProps<TransactionDocumentData>[\"columns\"] => {\n const { t } = useTranslation();\n\n const status = useStatusMap();\n\n const documentTypeKey =\n documentType &&\n ((documentType === \"Bill\" || documentType === \"Invoice\"\n ? documentType.toLocaleLowerCase() + \"s\"\n : \"simple_bills\") as keyof Omit<RTPermissions, \"recurring_transactions\">);\n\n const { permissions, isPermissionsLoading } = useRTPermissions();\n\n const hasCDReadPermission =\n documentTypeKey &&\n !isPermissionsLoading &&\n permissions?.[documentTypeKey].read;\n\n return [\n {\n dataIndex: \"reference\",\n title: t(translationTerms.columns.reference),\n render(value, record) {\n return (\n <Typography.Link\n disabled={!hasCDReadPermission}\n target=\"_blank\"\n href={`/tenant/${documentTypeKey}/${record.id}`}\n >\n {value}\n </Typography.Link>\n );\n },\n },\n {\n dataIndex: \"contact\",\n title: t(\n translationTerms.columns[\n documentType === \"Invoice\" ? \"customerName\" : \"vendorName\"\n ]\n ),\n },\n {\n dataIndex: \"issue_date\",\n title: t(translationTerms.columns.issueDate),\n },\n {\n dataIndex: \"due_date\",\n title: t(translationTerms.columns.dueDate),\n },\n {\n dataIndex: \"total_amount\",\n title: t(translationTerms.columns.total),\n },\n {\n dataIndex: \"status\",\n title: t(translationTerms.columns.status),\n render(value: Statuses) {\n return (\n <Typography.Text style={{ color: status[value]?.color }}>\n {status[value]?.label}\n </Typography.Text>\n );\n },\n },\n ];\n};\n","//@ts-nocheck\nimport { useMemo, useRef, useState } from \"react\";\nimport {\n Badge,\n Button,\n Flex,\n Space,\n Table,\n TableProps,\n theme,\n Tooltip,\n Typography,\n} from \"antd\";\nimport {\n RTRecord,\n ScheduleData,\n ScheduleType,\n TransactionDocumentType,\n} from \"types/recurring_transactions\";\nimport { useTranslation } from \"react-i18next\";\nimport dayjs from \"dayjs\";\nimport Status from \"./Status\";\nimport {\n CaretRightOutlined,\n CloseOutlined,\n EyeOutlined,\n QuestionCircleOutlined,\n SyncOutlined,\n} from \"@ant-design/icons\";\nimport {\n useExecuteSchedule,\n useRTPermissions,\n} from \"hooks/recurring_transactions\";\nimport SkipProcessModal from \"../SkipProcessModal\";\n\ninterface Props {\n schedulesData: ScheduleData[];\n isLoading: boolean;\n type: ScheduleType;\n totalEntries: number | undefined;\n pageSize: number | undefined;\n onChange: TableProps[\"onChange\"];\n anyFailed?: boolean;\n currentPage?: number;\n documentType?: TransactionDocumentType;\n RTStatus: RTRecord[\"status\"] | undefined;\n isRefetchingSchedules?: boolean;\n refetchSchedules?: () => Promise<void>;\n}\n\nconst translationTerms = {\n title: {\n [ScheduleType.UPCOMMING]:\n \"recurring_transactions.show.schedules.scheduled_title\",\n [ScheduleType.PASSED]:\n \"recurring_transactions.show.schedules.history_title\",\n },\n columns: {\n reference: \"activerecord.external_documents.bill.reference\",\n name: \"recurring_transactions.show.schedules.name\",\n created_at: \"recurring_transactions.show.schedules.created_date\",\n issueDate: \"activerecord.external_documents.invoice.issue_date\",\n dateNextRun: \"recurring_transactions.show.date_next_run\",\n status: \"recurring_transactions.show.status\",\n actions: \"recurring_transactions.table_headers.actions\",\n },\n tooltip: {\n run: \"recurring_transactions.show.actions.run\",\n skip: \"recurring_transactions.show.actions.skip\",\n reload: \"recurring_transactions.show.actions.reload\",\n view: \"recurring_transactions.index.action.view\",\n },\n};\n\nexport default function SchedulesTable({\n isLoading,\n schedulesData,\n type,\n pageSize,\n totalEntries,\n onChange,\n anyFailed,\n currentPage,\n documentType,\n RTStatus,\n isRefetchingSchedules,\n refetchSchedules,\n}: Props) {\n const { t } = useTranslation();\n\n const { token } = theme.useToken();\n\n const [isSkipModalOpen, setIsSkipModalOpen] = useState(false);\n\n const {\n mutate,\n mutateAsync,\n isLoading: isExecutingLoading,\n } = useExecuteSchedule();\n\n const activeRowId = useRef<null | number>(null);\n\n const startHandlder = (id: number) => {\n mutate({ id, operation: \"run\" });\n };\n\n const skipHandlder = async () => {\n try {\n if (activeRowId.current) {\n await mutateAsync({ id: activeRowId.current, operation: \"skip\" });\n }\n } catch {\n // Todo Display a popup error message once the design is ready\n } finally {\n setIsSkipModalOpen(false);\n }\n };\n\n const openModalHandler = (id: number) => {\n activeRowId.current = id;\n setIsSkipModalOpen(true);\n };\n\n const columns = useColumns({\n type,\n anyFailed,\n documentType,\n currentPage,\n onStart: startHandlder,\n onSkip: openModalHandler,\n isLoading: isExecutingLoading && !isSkipModalOpen,\n RTStatus,\n isRefetchingSchedules,\n refetchSchedules,\n });\n\n const dataSource = useMemo<typeof schedulesData>(() => {\n return schedulesData?.map((record) => ({\n ...record,\n documents:\n record.documents && record.documents.length > 0\n ? record.documents\n : null,\n }));\n }, [schedulesData]);\n\n return (\n <Flex vertical>\n <Typography.Title level={4} style={{ marginBottom: token.marginLG }}>\n {t(translationTerms.title[type])}\n </Typography.Title>\n\n <Table<ScheduleData>\n onChange={onChange}\n rowKey={\"reference\"}\n expandable={{\n childrenColumnName: \"documents\",\n showExpandColumn: type === ScheduleType.PASSED,\n fixed: \"right\",\n }}\n pagination={{\n total: totalEntries,\n pageSize: pageSize,\n hideOnSinglePage: true,\n showSizeChanger: false,\n }}\n dataSource={dataSource}\n loading={isLoading}\n columns={columns}\n />\n <SkipProcessModal\n isModalOpen={isSkipModalOpen}\n setIsModalOpen={setIsSkipModalOpen}\n isSkipping={isExecutingLoading}\n onSkipProcess={skipHandlder}\n />\n </Flex>\n );\n}\n\ninterface ColumnsHookArgs {\n type: ScheduleType;\n anyFailed: boolean | undefined;\n documentType: TransactionDocumentType | undefined;\n currentPage?: number;\n onStart: (id: number) => void;\n onSkip: (id: number) => void;\n isLoading: boolean;\n RTStatus: RTRecord[\"status\"] | undefined;\n isRefetchingSchedules?: boolean;\n refetchSchedules?: () => Promise<void>;\n}\n\nconst useColumns = ({\n anyFailed,\n documentType,\n type,\n currentPage,\n onSkip,\n onStart,\n isLoading,\n RTStatus,\n isRefetchingSchedules,\n refetchSchedules,\n}: ColumnsHookArgs): TableProps<ScheduleData>[\"columns\"] => {\n const { t, i18n } = useTranslation();\n\n const { token } = theme.useToken();\n\n const { permissions, isPermissionsLoading } = useRTPermissions();\n\n const documentTypeKey =\n documentType &&\n (documentType === \"Bill\" || documentType === \"Invoice\"\n ? documentType.toLocaleLowerCase() + \"s\"\n : \"simple_bills\");\n\n const hasWritePersmission =\n documentTypeKey &&\n !isPermissionsLoading &&\n permissions?.recurring_transactions.write &&\n permissions[documentTypeKey].write;\n\n return [\n {\n dataIndex: \"reference\",\n key: \"reference\",\n title: t(translationTerms.columns.reference),\n },\n {\n dataIndex: \"created_at\",\n key: \"created_at\",\n title: t(translationTerms.columns.created_at),\n render(value) {\n return value && dayjs(value).format(\"YYYY-MM-DD\");\n },\n },\n {\n dataIndex:\n type === ScheduleType.UPCOMMING\n ? \"scheduled_run_date\"\n : \"actual_run_date\",\n title:\n type === ScheduleType.UPCOMMING\n ? t(translationTerms.columns.dateNextRun)\n : t(translationTerms.columns.issueDate),\n key: \"run_date\",\n render(value) {\n return value && dayjs(value).format(\"YYYY-MM-DD\");\n },\n },\n {\n dataIndex: \"status\",\n title: t(translationTerms.columns.status),\n render(value, record) {\n return (\n value && (\n <Tooltip\n title={record.status === \"failed\" && record.failure_reason}\n >\n <Badge\n count={\n record.status === \"failed\" ? (\n <QuestionCircleOutlined style={{ color: token[\"red\"] }} />\n ) : null\n }\n offset={i18n.language === \"ar\" ? [8, 2] : [-8, 2]}\n >\n <Status renderAsTag status={value} />\n </Badge>\n </Tooltip>\n )\n );\n },\n },\n {\n title: t(translationTerms.columns.actions),\n render(_, record, index) {\n const isParentRow = record.documents !== undefined;\n\n const isUpcoming = type === ScheduleType.UPCOMMING;\n const isPassed = type === ScheduleType.PASSED;\n const scheduleStatus = record.status;\n const isScheduleInProgress = scheduleStatus === \"in_progress\";\n\n const shouldHideActions =\n isParentRow &&\n (RTStatus === \"inactive\" ||\n (isUpcoming &&\n (anyFailed || (currentPage && currentPage > 1) || index > 0)) ||\n (isPassed &&\n (scheduleStatus === \"success\" || scheduleStatus === \"skipped\")));\n\n if (shouldHideActions) return null;\n\n return isParentRow ? (\n hasWritePersmission &&\n (!isScheduleInProgress ? (\n <Space>\n <Tooltip title={t(translationTerms.tooltip.run)}>\n <Button\n loading={isLoading}\n icon={<CaretRightOutlined />}\n onClick={onStart.bind(null, record.id)}\n />\n </Tooltip>\n {!anyFailed && (\n <Tooltip title={t(translationTerms.tooltip.skip)}>\n <Button\n disabled={isLoading}\n icon={<CloseOutlined />}\n onClick={onSkip.bind(null, record.id)}\n />\n </Tooltip>\n )}\n </Space>\n ) : (\n <Tooltip title={t(translationTerms.tooltip.reload)}>\n <Button\n loading={isRefetchingSchedules}\n icon={<SyncOutlined />}\n onClick={refetchSchedules}\n />\n </Tooltip>\n ))\n ) : (\n <Tooltip title={t(translationTerms.tooltip.view)}>\n <Button\n icon={<EyeOutlined />}\n href={`/tenant/${documentTypeKey}/${record.id}`}\n target=\"_blank\"\n />\n </Tooltip>\n );\n },\n },\n ];\n};\n","//@ts-nocheck\nimport React from \"react\";\nimport { Tag, Typography } from \"antd\";\nimport { useTranslation } from \"react-i18next\";\nimport { TransactionStatus } from \"types/recurring_transactions\";\nimport { useStatusMap } from \"hooks/status\";\n\nexport default function Status({\n status,\n renderAsTag = false,\n}: {\n status: TransactionStatus;\n renderAsTag?: boolean;\n}) {\n const { t } = useTranslation();\n\n const statuses = useStatusMap();\n\n const normalizedStatus = statuses._normalize(status);\n\n const color = statuses[normalizedStatus]?.color;\n\n const translatedStatus = t(statuses[normalizedStatus]?.label);\n\n return renderAsTag ? (\n <Tag color={color}>{translatedStatus}</Tag>\n ) : (\n <Typography.Text strong style={{ color }}>\n {translatedStatus}\n </Typography.Text>\n );\n}\n","//@ts-nocheck\nimport React from \"react\";\nimport { Typography } from \"antd\";\nimport { CardData } from \"types/referrals\";\n\nconst CardContent: React.FC<CardData> = ({ title, description, alignment = \"start\" }) => {\n const { Title } = Typography;\n\n return (\n <>\n <Title\n level={2}\n style={{ margin: 0, textAlign: alignment, wordBreak: \"keep-all\" }}\n >\n {title}\n </Title>\n <Title\n level={5}\n style={{\n margin: 0,\n fontWeight: \"normal\",\n textAlign: alignment,\n wordBreak: \"keep-all\",\n }}\n >\n {description}\n </Title>\n </>\n );\n};\n\nexport default CardContent;","//@ts-nocheck\nimport React from \"react\";\nimport { Row, Col, Divider } from \"antd\";\nimport ReferralCard from \"./ReferralCard\";\nimport RewardCard from \"./RewardCard\";\nimport { CardData } from \"types/referrals\";\nimport { useTranslation } from \"react-i18next\";\n\nconst CardList: React.FC<{ cardsData: CardData[] }> = ({ cardsData }) => {\n const { t } = useTranslation();\n\n return (\n <Row style={{ width: \"100%\" }} justify=\"space-around\" align=\"bottom\">\n {cardsData.map((card, index) => (\n <React.Fragment key={card.id}>\n <Col style={{ alignContent: \"center\", marginInlineStart: \"2em\" , marginTop: \"3em\", display: \"flex\", flexDirection: \"column\" }} xs={24} sm={24} md={10} lg={10}>\n {card.showInput ? (\n <ReferralCard\n title={card.title}\n description={card.description as string}\n buttonText={t(\"referrals.index.referral_card.copy_link\")}\n />\n ) : (\n <RewardCard\n title={card.title}\n description={card.description}\n rewardsCount={card.rewardsCount || 0}\n color={card.color || \"#1890ff\"} \n />\n )}\n </Col>\n {index === 0 && (\n <Col xs={0} sm={0} md={1} lg={1} style={{ justifyContent: \"center\", alignItems: \"center\", }}>\n <Divider\n type=\"vertical\"\n style={{ height: \"20em\", borderLeftWidth: \".1em\"}}\n />\n </Col>\n )}\n </React.Fragment>\n ))}\n </Row>\n )\n};\n\nexport default CardList;\n","//@ts-nocheck\nimport React from \"react\";\nimport { Flex } from \"antd\";\nimport ReferralLinkInput from \"./ReferralLinkInput\";\nimport CardContent from \"./CardContent\";\nimport { ReferralCardProps } from \"types/referrals\";\n\nconst ReferralCard: React.FC<ReferralCardProps> = ({\n title,\n description,\n buttonText,\n}) => {\n return (\n <Flex align=\"start\" gap=\"1.2em\" style={{ width: \"100%\", padding: \"1em\" }} vertical>\n <CardContent title={title} description={description} alignment=\"start\" />\n <ReferralLinkInput\n buttonText={buttonText}\n description=\"\"\n showInput={true}\n title=\"\"\n rewardsCount={0}\n />\n </Flex>\n );\n};\n\nexport default ReferralCard;\n","//@ts-nocheck\nimport React from \"react\";\nimport { Col, Row, Typography } from \"antd\";\nimport { useTranslation } from \"react-i18next\";\nimport { HeaderData } from \"types/referrals\";\n\nconst ReferralHeader = () => {\n const { t } = useTranslation();\n const { Title } = Typography;\n const headerData: HeaderData = {\n title: t(\"referrals.index.title\"),\n description: t(\"referrals.index.subtitle\"),\n };\n\n return (\n <>\n <Row justify=\"start\" style={{ margin: \"0 3em\", width: \"89%\" }}>\n <Col span={24}>\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n }}\n >\n <Title\n level={3}\n style={{\n textAlign: \"start\",\n wordBreak: \"keep-all\",\n }}\n >\n {headerData.title}\n </Title>\n <Title\n level={4}\n style={{\n margin: 2,\n fontWeight: \"normal\",\n textAlign: \"start\",\n wordBreak: \"keep-all\",\n }}\n >\n {headerData.description}\n </Title>\n </div>\n </Col>\n </Row>\n </>\n );\n};\n\nexport default ReferralHeader;\n","//@ts-nocheck\nimport React, { useState } from \"react\";\nimport { Button, Input, message, Row, Col } from \"antd\";\nimport { CopyOutlined, CheckCircleOutlined } from \"@ant-design/icons\";\nimport { ReferralCardProps } from \"types/referrals\";\nimport { useTranslation } from \"react-i18next\";\nimport { useReferralData } from \"hooks/referrals\";\n\nconst ReferralLinkInput: React.FC<ReferralCardProps> = ({ buttonText }) => {\n const { t } = useTranslation();\n const { referralUrl, loading } = useReferralData();\n const [copied, setCopied] = useState<boolean>(false);\n const linkCopied=t(\"referrals.index.referral_card.copied_link\")\n\n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(referralUrl);\n message.success(t(\"referrals.index.referral_card.success_message\"));\n setCopied(true);\n setTimeout(() => {\n setCopied(false);\n }, 3000);\n } catch (error) {\n message.error(t(\"referrals.index.referral_card.fail_message\"));\n }\n };\n\n return (\n <Row gutter={[10, 10]} justify=\"start\" style={{ width: \"90%\" }}>\n <Col style={{ flex: 1 }}>\n <Input value={referralUrl} readOnly style={{ width: \"100%\" }} disabled/>\n </Col>\n <Col>\n <Button\n type={copied ? \"default\" : \"primary\"}\n onClick={handleCopy}\n icon={copied ? <CheckCircleOutlined /> : <CopyOutlined />}\n disabled={copied}\n >\n {copied ? linkCopied : buttonText}\n </Button>\n </Col>\n </Row>\n );\n};\n\nexport default ReferralLinkInput;\n","//@ts-nocheck\nimport React from \"react\";\nimport { Flex } from \"antd\";\nimport { TrophyOutlined, GiftFilled } from \"@ant-design/icons\";\nimport CardContent from \"./CardContent\";\nimport { CardData } from \"types/referrals\";\n\nconst RewardCard: React.FC<CardData> = ({\n title,\n description,\n rewardsCount,\n color = \"#1890ff\",\n}) => {\n return (\n <Flex align=\"center\" gap=\"1.2em\" style={{ width: \"100%\", padding: \"1em\" }} vertical>\n {rewardsCount > 0 ? (\n <TrophyOutlined style={{ fontSize: \"72px\", color: color }} />\n ) : (\n <GiftFilled style={{ fontSize: \"72px\", color: \"#1890ff\" }} />\n )}\n <CardContent title={title} description={description} alignment=\"center\" />\n </Flex>\n );\n};\n\nexport default RewardCard;","import { Col, Row, theme, Typography } from \"antd\";\nimport { useTranslation } from \"react-i18next\";\nimport { ReportItem } from \"types/Reports\";\n\ninterface Props {\n recentReports: ReportItem[];\n}\nconst RecentReports = ({ recentReports }: Props) => {\n const { useToken } = theme;\n const { token } = useToken();\n const { Link } = Typography;\n const { t } = useTranslation();\n\n if (!recentReports?.length) {\n return <></>;\n }\n\n return (\n <Row\n style={{\n width: \"100%\",\n padding: `${token.paddingSM}px ${token.paddingMD}px`,\n }}\n >\n <Col span={24}>\n <Typography.Title\n level={5}\n style={{\n marginTop: token.marginXS,\n marginBottom: token.marginSM,\n color: token[\"blue-9\"],\n }}\n >\n {t(\"new_reports.dashboard.recent\")}\n </Typography.Title>\n </Col>\n <Col span={24}>\n <Row gutter={[16, 16]}>\n {recentReports?.map((report, i) => {\n return (\n <Col key={i} span={6} xs={24} sm={24} md={12} lg={8} xl={7}>\n <div style={{ display: \"flex\", alignItems: \"center\" }}>\n <span\n style={{\n width: \"16px\",\n height: \"2px\",\n backgroundColor: token[\"blue-4\"],\n marginInlineEnd: \"10px\",\n display: \"block\",\n }}\n />\n <Link href={report.url} style={{ color: token.colorText }}>\n {report.name}\n </Link>\n </div>\n </Col>\n );\n })}\n </Row>\n </Col>\n </Row>\n );\n};\n\nexport default RecentReports;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./reports.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./reports.css\";\n export default content && content.locals ? content.locals : undefined;\n","import {\n Button,\n Card,\n Flex,\n List,\n Row,\n Tag,\n theme,\n Tooltip,\n Typography,\n} from \"antd\";\nimport {\n ArrowUpOutlined,\n FileTwoTone,\n InfoCircleOutlined,\n LockFilled,\n} from \"@ant-design/icons\";\nimport \"styles/reports.css\";\nimport { ReportsList } from \"types/Reports\";\nimport Link from \"antd/es/typography/Link\";\nimport * as Icons from \"@ant-design/icons\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface Props {\n report: ReportsList;\n}\n\nconst UpgradePlaneTooltip = () => {\n const { t } = useTranslation();\n const { useToken } = theme;\n const { token } = useToken();\n return (\n <Card style={{ width: 300 }}>\n <InfoCircleOutlined style={{ fontSize: 30, color: token[\"volcano-5\"] }} />\n <Typography.Title level={4}>\n {t(\"new_reports.dashboard.unsupported_feature\")}\n </Typography.Title>\n <p>{t(\"new_reports.dashboard.upgrade_subscription_message\")}</p>\n <Button\n icon={<ArrowUpOutlined />}\n size=\"middle\"\n type=\"primary\"\n style={{ marginTop: 5 }}\n href=\"/tenant/subscription/select_plan\"\n >\n {t(\"new_reports.dashboard.upgrade_plan\")}\n </Button>\n </Card>\n );\n};\nconst ReportCard = ({ report }: Props) => {\n const { useToken } = theme;\n const { token } = useToken();\n const { t } = useTranslation();\n const CategoryIcon =\n (Icons[report.icon as keyof typeof Icons] as React.ElementType) ||\n FileTwoTone;\n return (\n <Flex vertical>\n <Row>\n <div\n style={{\n background: \"#E6F7FF\",\n borderRadius: \"50%\",\n width: 72,\n height: 72,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n <CategoryIcon style={{ fontSize: 40, color: \"#0070f2\" }} />\n </div>\n </Row>\n <Typography.Title\n level={4}\n style={{\n marginTop: token.marginXS,\n marginBottom: 0,\n color: token[\"blue-9\"],\n }}\n >\n {report.category}\n </Typography.Title>\n <List\n dataSource={report.reports}\n renderItem={(item) => {\n if (item.is_locked) {\n return (\n <Tooltip title={<UpgradePlaneTooltip />} color=\"transparent\">\n <List.Item\n style={{\n border: \"none\",\n padding: `${token.paddingXS}px ${token.paddingSM}px`,\n marginTop: token.marginXS,\n display: \"flex\",\n justifyContent: \"start\",\n flexWrap: \"nowrap\",\n gap: token.paddingXS,\n color: \"#00000040\",\n cursor: \"not-allowed\",\n }}\n >\n <LockFilled />\n {item.name}\n </List.Item>\n </Tooltip>\n );\n }\n return (\n <Tooltip title={item.description}>\n <Link href={item.url} style={{ color: token.colorText }}>\n <List.Item\n className=\"report-card-item\"\n style={{\n border: \"none\",\n padding: `${token.paddingXS}px ${token.paddingSM}px`,\n marginTop: token.marginXS,\n display: \"flex\",\n justifyContent: \"start\",\n flexWrap: \"nowrap\",\n gap: token.paddingLG,\n }}\n >\n {item.name}\n {item.is_new && !item.is_locked && (\n <Tag color=\"volcano\">{t(\"new_reports.dashboard.new\")}</Tag>\n )}\n </List.Item>\n </Link>\n </Tooltip>\n );\n }}\n />\n </Flex>\n );\n};\n\nexport default ReportCard;\n","import React from \"react\";\nimport { Skeleton, Card, Row, Col } from \"antd\";\n\nconst ReportDashboardSkeleton: React.FC = () => {\n return (\n <div style={{ padding: 24 }}>\n <Skeleton active title={false} paragraph={{ rows: 1, width: \"40%\" }} />\n <Skeleton\n active\n title={false}\n paragraph={{ rows: 1, width: \"60%\" }}\n style={{ marginTop: 16 }}\n />\n <Row justify=\"space-between\" align=\"middle\" style={{ marginTop: 24 }}>\n <Col span={8}>\n <Skeleton.Input active style={{ width: \"100%\" }} />\n </Col>\n <Col>\n <Skeleton.Button active style={{ width: 80, marginRight: 8 }} />\n <Skeleton.Button active style={{ width: 80 }} />\n </Col>\n </Row>\n <Row gutter={[24, 24]} style={{ marginTop: 32 }}>\n {[...Array<number>(6)].map((_, index) => (\n <Col span={8} key={index}>\n <Card>\n <Skeleton.Avatar active size=\"large\" shape=\"circle\" />\n <Skeleton\n active\n title={false}\n paragraph={{ rows: 1, width: \"80%\" }}\n style={{ marginTop: 16 }}\n />\n <Skeleton\n active\n title={false}\n paragraph={{ rows: 5 }}\n style={{ marginTop: 16 }}\n />\n </Card>\n </Col>\n ))}\n </Row>\n </div>\n );\n};\n\nexport default ReportDashboardSkeleton;\n","import { FilterOutlined, RedoOutlined } from \"@ant-design/icons\";\nimport { Button, Col, Form, Input, Row, theme } from \"antd\";\nimport { useTranslation } from \"react-i18next\";\nimport { ReportsList } from \"types/Reports\";\n\ninterface ReportsCallback {\n reports: ReportsList[];\n setReports: (value: ReportsList[]) => void;\n}\ninterface ReportsFilterProps {\n reportsCallback: ReportsCallback;\n}\n\ninterface FormValues {\n name?: string;\n}\nconst ReportsFilter = ({ reportsCallback }: ReportsFilterProps) => {\n const { useToken } = theme;\n const { token } = useToken();\n const [form] = Form.useForm();\n const { t } = useTranslation();\n\n return (\n <Form\n form={form}\n layout=\"inline\"\n style={{\n margin: `16px 0`,\n padding: `${token.paddingMD}px 0`,\n borderTop: `1px solid #0000000f`,\n borderBottom: `1px solid #0000000f`,\n width: \"100%\",\n }}\n onFinish={(values: FormValues) => {\n if (!values.name?.trim()) {\n reportsCallback.setReports(reportsCallback.reports);\n return;\n }\n const searchValue = values.name.toLowerCase();\n const filteredReports = reportsCallback.reports\n .map((item) => ({\n ...item,\n reports: item.reports.filter((report) =>\n report.name.toLowerCase().includes(searchValue)\n ),\n }))\n .filter((item) => item.reports.length > 0);\n\n reportsCallback.setReports(filteredReports);\n }}\n >\n <Row\n style={{\n width: \"100%\",\n padding: `${token.paddingSM}px ${token.paddingMD}px`,\n }}\n gutter={[16, 16]}\n >\n <Col\n style={{ display: \"flex\", gap: token.paddingSM }}\n span={12}\n xs={24}\n sm={24}\n md={12}\n lg={12}\n xl={12}\n >\n <Form.Item name=\"name\">\n <Input\n placeholder={t(\"new_reports.dashboard.filter_form.search\")}\n ></Input>\n </Form.Item>\n </Col>\n <Col\n style={{ display: \"flex\", justifyContent: \"flex-end\" }}\n span={12}\n xs={{ span: 24, flex: \"none\" }}\n sm={{ span: 24, flex: \"none\" }}\n md={12}\n lg={12}\n xl={12}\n >\n <Form.Item>\n <Button icon={<FilterOutlined />} type=\"primary\" htmlType=\"submit\">\n {t(\"new_reports.dashboard.filter_form.filter\")}\n </Button>\n </Form.Item>\n <Form.Item>\n <Button\n icon={<RedoOutlined />}\n onClick={() => {\n reportsCallback.setReports(reportsCallback.reports); // Reset to original data\n form.resetFields();\n }}\n >\n {t(\"new_reports.dashboard.filter_form.reset\")}\n </Button>\n </Form.Item>\n </Col>\n </Row>\n </Form>\n );\n};\n\nexport default ReportsFilter;\n","import { Col, Grid, Row } from \"antd\";\nimport { CurrentPlanCard } from \"./OverviewTab/PlanCard\";\nimport { CurrentAddOnsCard, NoAddOnsCard } from \"./OverviewTab/AddonsCard\";\ninterface OverviewTabProps {\n handleTabChange: (key: string) => void;\n}\n\nconst OverviewTab = ({ handleTabChange }: OverviewTabProps) => {\n const { useBreakpoint } = Grid;\n const screenSizes = useBreakpoint();\n\n const noAddons = false;\n const cardSize = screenSizes.sm ? \"default\" : \"small\";\n const cardStyle: React.CSSProperties = {\n ...(screenSizes.xl && { maxHeight: \"400px\" }),\n height: \"100%\",\n overflowX: \"hidden\",\n };\n\n return (\n <Row gutter={[16, 16]}>\n <Col span={24} xl={{ span: 15 }}>\n <CurrentPlanCard size={cardSize} style={cardStyle} handleTabChange={handleTabChange} />\n </Col>\n <Col span={24} xl={{ span: 9 }}>\n {noAddons ? (\n <NoAddOnsCard size={cardSize} style={cardStyle} handleTabChange={handleTabChange} />\n ) : (\n <CurrentAddOnsCard\n size={cardSize}\n style={{ overflowY: \"auto\", ...cardStyle }}\n handleTabChange={handleTabChange}\n />\n )}\n </Col>\n </Row>\n );\n};\n\nexport default OverviewTab;\n","var _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgMapPinOutline = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 25\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n stroke: \"#5D36FF\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 11a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.5 11c0 7.142-7.5 11.25-7.5 11.25S4.5 18.142 4.5 11a7.5 7.5 0 0 1 15 0Z\"\n}))));\nconst Memo = /*#__PURE__*/memo(SvgMapPinOutline);\nexport default Memo;","var _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgPayrollOutline = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 25\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#A100C2\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.391 23.567a.633.633 0 0 0 .67-.085l1.504-1.254 1.812 1.462.004.004a.63.63 0 0 0 .782-.002l.004-.004 1.79-1.46 1.791 1.46.005.004a.63.63 0 0 0 .781.002l.004-.004 1.812-1.462 1.503 1.254a.638.638 0 0 0 .925-.13.587.587 0 0 0 .097-.316v-2.453l1.024.858a.62.62 0 0 0 .657.084.573.573 0 0 0 .334-.53V18.54l1.037.858a.639.639 0 0 0 .678.084.586.586 0 0 0 .348-.53V2.836c0-.917-.81-1.68-1.803-1.68H8.933c-.993 0-1.808.763-1.808 1.68v.383H6.89c-.993 0-1.782.741-1.782 1.66v.355h-.26c-.993 0-1.803.768-1.803 1.686v16.116a.585.585 0 0 0 .345.53Zm4.484-20.73c0-.505.478-.93 1.058-.93H19.15c.58 0 1.053.425 1.053.93v15.805l-1.313-1.077V4.878c0-.918-.789-1.66-1.782-1.66H7.875v-.382ZM5.859 4.877c0-.504.453-.91 1.032-.91h10.217c.58 0 1.032.406 1.032.91v15.806l-1.265-1.078V6.92c0-.918-.816-1.686-1.809-1.686H5.86v-.356ZM3.796 6.92c0-.504.474-.936 1.053-.936h10.217c.58 0 1.059.432 1.059.936v15.806l-1.369-1.139-.006-.003a.63.63 0 0 0-.787-.006c-.002 0-.004.002-.005.003l-1.813 1.463-1.79-1.462-.005-.003a.63.63 0 0 0-.784 0l-.005.003-1.79 1.462-1.813-1.463-.004-.003a.629.629 0 0 0-.786.006l-.006.003-1.366 1.139V6.92Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.012 19.438h5.893a.375.375 0 0 0 0-.75H7.012a.375.375 0 1 0 0 .75Zm2.947-4.185a1.313 1.313 0 0 1-1.311-1.31.375.375 0 1 0-.75 0 2.064 2.064 0 0 0 1.571 2v.682a.375.375 0 0 0 .75 0v-.639a2.06 2.06 0 0 0-.26-4.105 1.31 1.31 0 0 1-.123-2.616h.008a1.321 1.321 0 0 1 .115-.006 1.312 1.312 0 0 1 1.31 1.311.375.375 0 1 0 .75 0 2.063 2.063 0 0 0-1.8-2.044v-.573a.375.375 0 0 0-.75 0v.615a2.06 2.06 0 0 0 .49 4.063 1.31 1.31 0 0 1 0 2.622Z\"\n}))));\nconst Memo = /*#__PURE__*/memo(SvgPayrollOutline);\nexport default Memo;","var _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgPosOutline = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 25\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#046C7A\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.04 18.035a1.618 1.618 0 0 0 .58 1.202c.371.306 1.831 1.029 2.432 1.274.276.114.556.215.837.317 1.706.62 2.914 1.108 4.128 1.266.067.009.266-.154.329-.191 2.903-1.7 7.837-5.21 9.737-6.78.213-.176.284-.182.543-.136 1.029.184 1.473-.337 1.334-1.246.484-1.484 1.888-3.25.493-4.714-.329-.345-.773-.321-.738-.314-.063 0-.126.01-.188.02-.072-.106-.055-.068-.9-.452.114-.386.259-.763.432-1.127.322.058.753.195 1.048.38.347 1.232 2.152.238 2.037-1.324-.036-.492-.28-.91-.641-1.112a.25.25 0 0 0-.124-.074c-2.171-.484-4.195-1.613-6.426-2.078-.439-.09-.668-.046-1.043.314a8.566 8.566 0 0 0-1.978 2.924c-.345.102-.936.333-1.135.511-.26-.074-.53-.082-.772.099-3.318 2.475-6.306 5.435-9.59 8.767-.49.496-.61.756-.58 1.39.036.73.18.847.185 1.084Zm8.65.759c6.687-6.07 7.676-8.095 9.663-8.808.155-.056.351-.113.51-.07.657.185.715 2.04.714 2.724 0 .346-.009.681-.115.98-.108.301-.313.524-.55.593-.23.069-.508-.048-.572-.24a.257.257 0 0 0-.406-.118c-1.56 1.257-7.448 5.581-7.521 5.632-.597.42-2.076 1.247-2.31 1.356-.274-1.231.077-1.587.587-2.05Zm11.39-9.412c.724.76.476 1.741.004 2.747-.026-.85-.16-2.258-.917-2.641.16-.144.318-.26.547-.26.054.01.209-.01.366.154Zm-1.292-.463c-.11.055-.225.1-.343.142.017-.092.03-.183.05-.274.098.044.194.089.293.132Zm2.423-3.4c.271.156.398.423.42.728.053.719-.498 1.317-.865 1.326-.203-.01-.256-.471-.076-.506a.258.258 0 0 0 .203-.302c-.065-.336-.593-.25-.767.191-.26-.12-.531-.211-.81-.274.196-.324.403-.577.636-.768.384-.316.85-.46 1.26-.395ZM15.267 3.63c.242-.232.302-.238.581-.18 1.784.372 3.475 1.2 5.254 1.76-1.279.623-1.991 2.606-2.206 3.998-.513.113-.504.085-.585.146-.719-.534-1.155-.54-5.261-2.148.126-.082.076-.11.297-.68.021-.035.536-1.563 1.92-2.896Zm-2.6 3.428c-.11-.044-.08-.027-.274-.118.099-.05.203-.094.312-.137-.035.11-.066.149-.038.255ZM1.802 15.922c3.268-3.317 6.242-6.262 9.53-8.716.216-.162.672.144 1.063.298 4.643 1.835 5.2 1.82 5.84 2.458-1.578.977-3.129 3.221-8.89 8.45-.644.585-1.057 1.104-.743 2.539-.317-.057-.447-.057-1.264-.298-2.306-.683-4.367-1.926-5.025-2.26-.706-.356-.898-.518-.944-1.468-.022-.463.025-.59.433-1.003Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.56 11.614c3.614 1.357 3.861 1.782 4.137 1.706.124-.03 1.851-2.1 2.984-2.889a.257.257 0 0 0 .077-.451c-.277-.207-4.857-2.104-4.891-2.118-.082-.055-.225-.093-.435.049-.131.088-2.09 1.976-2.698 2.377-.234.154-.525.346-.493.626.037.32.336.33 1.319.7Zm-.422-.98c1.088-.844 2.406-2.171 2.562-2.284 3.874 1.629 3.52 1.497 3.978 1.667.16.059.315.116.463.189-1.287 1.117-1.795 1.635-2.578 2.56-.141-.063-1.264-.696-4.692-1.949.092-.067.21-.14.267-.183Zm-.925 2.837c.33.186 1.1.59 1.478.59.26 0 .41-.151.734-.38.307-.216.77-.544.754-.88-.012-.23-.204-.348-.417-.424-.943-.34-1.088-.418-1.165-.45-.675-.293-.89.024-1.382.581-.032.05-.473.412-.222.782.063.093.157.146.22.18Zm.119-.578c.749-.848.692-.836 1.236-.604.885.373 1.264.435 1.268.53.01.175-.686.633-.826.738-.25.187-.296.205-.615.092-.298-.105-1.06-.467-1.118-.551-.034-.052 0-.144.055-.205Zm3.55.739-.606.603a.257.257 0 0 0 .18.44c.185 0 .223-.147.79-.679a.257.257 0 1 0-.364-.364Zm-4.663-1.06.607-.604a.257.257 0 0 0-.362-.365l-.607.604a.257.257 0 1 0 .362.365Zm-4.954 5.074A21.042 21.042 0 0 1 6.9 19.843c.285.18.564-.252.275-.435a21.543 21.543 0 0 0-4.749-2.25.257.257 0 1 0-.161.488Zm3.838-3.482c.26.091.316.058.51-.087.26-.193.747-.486.478-.672-.077-.054-.345-.123-.799-.314-.225-.095-.37-.177-.598.063-.108.114-.211.233-.316.35-.06.07-.101.18-.044.266.073.106.64.348.769.394Zm2.316.857c.081-.017.164-.083.23-.131.112-.085.233-.16.34-.253.243-.207.321-.366.021-.474-.23-.08-.458-.167-.683-.26-.225-.095-.37-.177-.599.063-.108.114-.21.234-.315.35-.061.07-.102.18-.044.266.025.037.065.06.103.081.185.105.739.402.947.358Zm2.453.045c-1.187-.427-.96-.56-1.596.154-.061.068-.102.18-.044.265.072.106.638.348.769.394.26.091.316.058.51-.086.114-.085.234-.16.341-.253.243-.207.32-.366.02-.474Zm-6.599.003c.186.105.739.402.947.358.081-.017.164-.082.23-.131.113-.085.233-.16.34-.252.243-.208.32-.367.02-.475-1.196-.43-.963-.555-1.596.154-.06.068-.102.18-.044.265a.29.29 0 0 0 .103.082Zm3.272 1.117c.26-.193.746-.486.477-.672-.077-.054-.345-.123-.799-.314-.442-.187-.445-.11-.913.414-.061.068-.102.18-.044.265.072.106.638.348.768.394.26.091.317.058.51-.087Zm2.409.152c-.082-.056-.393-.138-.846-.334-.205-.088-.343-.135-.552.083-.108.114-.21.234-.315.351-.061.069-.102.18-.044.265.072.107.637.348.768.395.261.09.317.057.51-.087.114-.085.234-.16.342-.253.117-.099.33-.285.137-.42Zm-6.285.262c.26.092.317.058.51-.086.114-.084.234-.16.342-.252.243-.207.32-.366.02-.474-1.186-.427-.96-.56-1.596.153-.061.069-.102.18-.044.265.072.107.638.348.768.394Zm2.276-.182c-.133-.056-.247-.121-.38-.083-.155.044-.251.18-.534.497-.06.068-.102.18-.044.265.072.106.64.349.769.394.26.092.316.058.51-.086.26-.194.747-.487.478-.673-.077-.054-.345-.123-.8-.314Zm2.609 1.085c-1.192-.43-.964-.556-1.597.153-.061.069-.102.18-.044.265a.29.29 0 0 0 .103.082c.185.104.738.401.947.358.08-.018.163-.083.229-.132.113-.084.233-.16.341-.252.243-.207.32-.366.02-.474Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m9.18 13.137.305.153a.257.257 0 0 0 .231-.46l-.362-.181c-.155-.08-.33-.032-.405.111a.258.258 0 0 0 .232.377Zm9.089-1.311c.309-.356.68-.785 1.161-.798a.259.259 0 0 0 .25-.264.256.256 0 0 0-.264-.25c-.675.02-1.14.518-1.536.975a.257.257 0 1 0 .389.337Zm-1.52-6.938c1.603.704 1.52.696 1.62.696.276 0 .359-.379.105-.492l-1.516-.673a.257.257 0 0 0-.209.47Zm-.465 1.44c.236.044.462.133.665.263.04.026.089.04.138.04.257 0 .354-.335.14-.473a2.385 2.385 0 0 0-.85-.335.257.257 0 1 0-.093.505Z\"\n}))));\nconst Memo = /*#__PURE__*/memo(SvgPosOutline);\nexport default Memo;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgUserGroupOutlined = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 25\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#D27700\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5,\n d: \"M17.059 16.021a3 3 0 0 1 4.682 2.72c-1.2.42-2.474.582-3.741.479a5.995 5.995 0 0 0-6-5.97 5.995 5.995 0 0 0-5.058 2.772m11.057 3.197v.031c0 .225-.011.447-.036.666A11.945 11.945 0 0 1 12 21.5c-2.17 0-4.207-.576-5.963-1.584A6.062 6.062 0 0 1 6 19.219m0 0a8.98 8.98 0 0 1-3.74-.477 3 3 0 0 1 4.682-2.72M6 19.219a5.973 5.973 0 0 1 .942-3.197M15 7.25a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm6 3a2.25 2.25 0 1 1-4.502 0 2.25 2.25 0 0 1 4.502 0Zm-13.5 0a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgUserGroupOutlined);\nexport default Memo;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst Svg404 = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 99 116\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#404_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E4EBF7\",\n fillRule: \"evenodd\",\n d: \"M0 50.239v-.827C0 22.21 21.958.156 49.044.156h.823C76.953.156 98.91 22.21 98.91 49.412v.827c0 27.203-21.957 49.256-49.043 49.256h-.823C21.958 99.495 0 77.442 0 50.239\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M15.618 51.621a3.274 3.274 0 0 1-1.17 2.22 3.247 3.247 0 0 1-2.394.728 3.243 3.243 0 0 1-2.2-1.194 3.27 3.27 0 0 1-.706-2.409 3.269 3.269 0 0 1 1.186-2.183 3.241 3.241 0 0 1 4.556.461c.545.665.807 1.52.728 2.377Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#fff\",\n strokeWidth: 2,\n d: \"m19.004 57.802-4.969 4.257m.491-9.075 4.118 2.345-4.118-2.345Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M15.664 62.872c-.06.59-.35 1.132-.806 1.507a2.22 2.22 0 0 1-3.133-.317 2.242 2.242 0 0 1 1.082-3.555 2.214 2.214 0 0 1 1.696.171 2.228 2.228 0 0 1 1.078 1.326c.084.28.112.576.083.868Zm6.959-6.354a2.259 2.259 0 0 1-.807 1.531 2.24 2.24 0 0 1-2.492.244 2.246 2.246 0 0 1-1.086-1.347 2.262 2.262 0 0 1 .74-2.385 2.236 2.236 0 0 1 3.142.318c.376.458.557 1.047.503 1.639Zm16.276-45.916 11.715-.005a1.793 1.793 0 0 0 1.274-.53 1.811 1.811 0 0 0 .39-1.974 1.81 1.81 0 0 0-.976-.979 1.795 1.795 0 0 0-.69-.137l-11.714.005a1.796 1.796 0 0 0-1.275.53 1.81 1.81 0 0 0-.39 1.973 1.81 1.81 0 0 0 .976.98c.219.09.453.137.69.137Zm4.48 7.235 11.716-.005a1.798 1.798 0 0 0 1.257-.54 1.814 1.814 0 0 0-.001-2.542 1.799 1.799 0 0 0-1.258-.538l-11.715.005a1.795 1.795 0 0 0-1.274.53 1.809 1.809 0 0 0-.527 1.28A1.816 1.816 0 0 0 42.69 17.7c.219.091.453.138.69.138Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"m44.313 10.597 6.2-.003a1.798 1.798 0 0 0-1.689 1.112 1.818 1.818 0 0 0 .399 1.988 1.8 1.8 0 0 0 1.291.52l-6.2.003v-.001c.478 0 .936-.191 1.274-.53a1.813 1.813 0 0 0-.001-2.56 1.798 1.798 0 0 0-1.275-.529Zm28.177 42.93a3.925 3.925 0 0 1-4.294 3.524 3.934 3.934 0 0 1-3.508-4.313 3.925 3.925 0 0 1 4.294-3.524 3.934 3.934 0 0 1 3.509 4.314\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#fff\",\n strokeWidth: 2,\n d: \"m75.825 61.74-5.993 5.134m.593-10.944 4.966 2.828-4.966-2.828Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M72.547 67.1a2.705 2.705 0 0 1-.963 1.84 2.681 2.681 0 0 1-2.99.293 2.686 2.686 0 0 1-1.3-1.618 2.707 2.707 0 0 1 .893-2.853 2.677 2.677 0 0 1 3.755.38c.45.548.668 1.25.605 1.958Zm7.336-6.602a2.725 2.725 0 0 1-.974 1.847 2.702 2.702 0 0 1-3.005.293 2.708 2.708 0 0 1-1.31-1.624 2.728 2.728 0 0 1 .893-2.877 2.697 2.697 0 0 1 3.79.384c.454.553.671 1.264.606 1.977Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#fff\",\n strokeWidth: 2,\n d: \"M59.687 75.885a.871.871 0 1 1-1.746 0 .879.879 0 0 1 .873-.877.871.871 0 0 1 .873.877ZM88.5 45.793a.88.88 0 0 1-.873.877.871.871 0 0 1-.873-.877.879.879 0 0 1 .873-.877.871.871 0 0 1 .873.877Zm-3.492 13.819a.88.88 0 0 1-.54.81.87.87 0 0 1-1.14-.475.879.879 0 0 1 .806-1.213.871.871 0 0 1 .874.877ZM69.502 42.47a.88.88 0 0 1-.873.896.87.87 0 0 1-.812-.554.88.88 0 0 1 .201-.95.871.871 0 0 1 1.484.608Zm7.219-6.104a.88.88 0 0 1-.535.828.87.87 0 0 1-1.212-.828.879.879 0 0 1 .873-.858.871.871 0 0 1 .874.858Zm2.658 34.937a.879.879 0 0 1-.873.877.871.871 0 0 1-.874-.877.879.879 0 0 1 .874-.877.871.871 0 0 1 .873.877Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#fff\",\n strokeWidth: 2,\n d: \"m86.751 46.262-5.044 3.117-6.015-3.118v-9.019m8.537 23.244-.75 7.964-4.294 2.364 5.044-10.328Zm-16.006 8.48-2.497 3.872h-4.463l-1.77 2.558 8.73-6.43Zm.503-19.58V43.15v6.236Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M65.447 26.016h-1.552a1.864 1.864 0 0 1-1.316-.55 1.88 1.88 0 0 1-.548-1.321 1.88 1.88 0 0 1 .547-1.322c.35-.35.823-.548 1.317-.55h1.552c.493.002.967.2 1.316.55.349.35.546.826.547 1.322a1.88 1.88 0 0 1-.547 1.321c-.35.35-.823.549-1.316.55Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1890FF\",\n fillRule: \"evenodd\",\n d: \"M68.68 11.85C68.68 5.427 73.865.22 80.26.22S91.843 5.427 91.843 11.85c0 6.424-5.186 11.632-11.582 11.632-6.396 0-11.581-5.208-11.581-11.632Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M80.911 15.145c.197.198.309.45.309.761 0 .31-.113.578-.309.775a1.137 1.137 0 0 1-.785.296c-.309 0-.562-.113-.758-.31-.225-.197-.322-.45-.322-.761 0-.31.097-.563.322-.76.196-.198.45-.297.758-.297s.574.099.785.296Zm1.684-7.679c.56.493.841 1.17.841 2.029 0 .675-.167 1.235-.478 1.677a.866.866 0 0 1-.086.104c-.163.17-.554.531-1.161 1.065-.237.185-.428.421-.561.69-.142.29-.214.608-.21.93v.198h-1.614v-.197c0-.536.084-1.001.28-1.381.182-.38.73-.973 1.642-1.79l.168-.197c.253-.31.38-.649.38-1 0-.466-.142-.832-.394-1.1-.266-.268-.645-.394-1.123-.394-.603 0-1.037.183-1.318.564a1.78 1.78 0 0 0-.299.751.79.79 0 0 1-.774.643h-.002a.795.795 0 0 1-.778-.958c.133-.6.401-1.097.815-1.493.603-.592 1.417-.888 2.455-.888.912 0 1.656.24 2.217.747Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFB594\",\n fillRule: \"evenodd\",\n d: \"M20.443 30.04s8.569 2.114 10.728 6.29c2.19 4.238-2.495 3.654-6.18 1.947-4.266-1.976-9.703-4.664-4.548-8.238Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFC6A0\",\n fillRule: \"evenodd\",\n d: \"m35.549 26.635-.177 1.141c-.295.194-1.865-1.05-1.865-1.05l-.646.295-.529-2.243s2.677-1.81 3.503-1.98c.963-.198 3.883.37 4.204.899 0 0 .518.192-.875.272-1.394.08-1.981.176-2.668 1.236-.686 1.06-.947 1.43-.947 1.43Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M50.306 43.943c-1.032-3.047-2.416-5.2-3.503-6.107-1.375-1.146-3.67-.878-4.466-1.652-.499-.485-1.263-.472-1.263-.472s-5.885-1.246-6.61-1.373c-.932-.161-.835-.281-2.379-.554-.617-.752-1.146-.443-1.146-.443l-2.793-.545c-.335-.581-.952-.404-.952-.404l-.97-.354c-.646 3.936-3.04 5.443-3.04 5.443.705.443 6.169 3.275 6.169 3.275L31.359 55.4s-1.305 2.247.529 3.594c0 0 7.81-1.477 13.719-.13 0 0 1.197-1.004.382-3.474.205-1.188.547-3.26.682-4.586.15.305.793.757 1.233 1.372 0 0 3.696-2.906 4.342-5.528a6.73 6.73 0 0 1-.89-.968c-.223-.29-.141-.811-.301-1.072-.263-.428-.709-.544-.75-.664Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CBD1D1\",\n fillRule: \"evenodd\",\n d: \"M39.713 114.422s1.688.805 2.89.403c1.108-.371 1.78.263 2.78.464 1.003.202 2.701.434 4.592-.497-.04-2.174-2.707-1.57-4.699-2.648-1.007-.545-1.486-1.864-1.413-3.472h-3.694s-.547 4.151-.456 5.75Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2B0849\",\n fillRule: \"evenodd\",\n d: \"M39.703 114.352s.954.501 2.655.257c1.202-.172 1.459.19 2.917.407 1.458.217 4.213-.027 4.644-.353.163.434-.134.814-.134.814s-.594.238-1.89.325c-.798.054-2.28.115-2.99-.198-.701-.543-2.06-.751-2.25-.095-1.539.375-2.889-.113-2.889-.113l-.063-1.044Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A4AABA\",\n fillRule: \"evenodd\",\n d: \"M42.562 108.914h1.215s-.04 2.644 1.782 3.377c-1.823.244-3.362-.909-2.997-3.377Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CBD1D1\",\n fillRule: \"evenodd\",\n d: \"M22.607 107.477s-.827 2.926-1.761 4.855c-.707 1.458-1.66 2.956 2.146 2.956 2.612 0 3.518-.189 2.917-2.604-.601-2.414.104-5.207.104-5.207h-3.406Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2B0849\",\n fillRule: \"evenodd\",\n d: \"M20.223 114.338s.823.461 2.605.461c2.39 0 3.241-.651 3.241-.651s.236.44-.243.855c-.39.337-1.413.627-2.903.61-1.629-.019-2.291-.224-2.647-.461-.324-.217-.27-.624-.053-.814Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A4AABA\",\n fillRule: \"evenodd\",\n d: \"M22.95 108.228s.013.599-.123 1.156c-.137.56-.424 1.225-.444 1.633-.023.454 1.782.624 2.025.014.244-.611.509-2.536.752-2.862.243-.325-1.926-.836-2.21.06\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#7BB2F9\",\n fillRule: \"evenodd\",\n d: \"m39.153 109.888 5.256.036s.51-21.511.728-25.41c.217-3.9 1.483-17.11.393-24.908l-4.929-.254-8.976.307s-.17 1.565-.47 3.936c-.024.196-.268.333-.294.539-.03.23.166.534.126.776-.929 5.555-2.505 13.061-3.435 18.416-.046.263-.485.399-.573 1.062-.016.12.083.602.044.709-2.7 7.395-4.302 18.876-5.609 24.417l5.738-.006s.864-3.381 1.584-6.696c1.104-5.084 9.08-33.54 9.08-33.54L39 69.065l.41 18.287s-.088.487.132.797c.22.31-.22.443-.154.886l.154.708s-.176 2.832-.353 4.69c-.176 1.86-.036 15.454-.036 15.454Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#648BD8\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.051,\n d: \"M41.784 88.827s1.09-.438 2.398-1.532m-14.291.144c.453.037 1.586-.796 2.732-1.947L29.89 87.44Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#648BD8\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M42.145 87.626s1.089-.438 2.397-1.532\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#648BD8\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.051,\n d: \"M22.047 108.27h5.229m2.086-19.59s1.03-.233 2.555-1.328l-2.555 1.328Zm4.435-28.855c-.106 1.225.118 3.363-1.703 3.6l1.703-3.6Zm6.913-.692s.043 5.528-.508 5.944c-.872.656-1.175.767-1.175.767l1.683-6.711Zm-1.507.22s.014 5.082-.47 9.618l.47-9.618ZM36.8 69.403s2.833-.656 3.705-.656l-3.705.656Zm-7.607 11.818c-.122.6-.25 1.2-.385 1.799 0 0-.572.723-.396 1.49.176.767-.372.806-1.958 6.058-.667 2.206-1.764 7.335-2.494 10.889l-.091.442 5.324-20.678Zm.542-3.178c-.111.626-.227 1.251-.347 1.875l.347-1.875Zm2.711-17.982-.47 4.13s-.43.06-.196.885c.044.532-1.05 6.225-2.035 12.007l2.701-17.022Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#192064\",\n fillRule: \"evenodd\",\n d: \"M45.664 58.483s-6.697-1.225-14.1.079c.062.991-.002 1.637-.002 1.637s5.77-1.112 14.014-.123c.099-.93.088-1.593.088-1.593Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"m41.768 59.641.001-1.938a.32.32 0 0 0-.305-.321 43.106 43.106 0 0 0-3.079-.006.32.32 0 0 0-.31.322v1.936a.319.319 0 0 0 .326.32 55.55 55.55 0 0 1 3.036.007.32.32 0 0 0 .331-.32\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#192064\",\n fillRule: \"evenodd\",\n d: \"M41.33 59.278v-1.214a.254.254 0 0 0-.243-.255 36.966 36.966 0 0 0-2.304-.004.255.255 0 0 0-.248.255v1.212a.252.252 0 0 0 .257.255 47.453 47.453 0 0 1 2.276.004.254.254 0 0 0 .262-.253Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#648BD8\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.051,\n d: \"m39.675 69.031.352 17.614s.265.62-.088 1.062c-.352.443.97.266.353.885-.617.62.352.443 0 1.328-.234.587-.39 8.325-.43 13.867m-.471 4.878h4.847-4.847Zm.46-1.928c.003 1.337.017 2.285.044 2.567l-.044-2.567Zm.006-2.36c-.003.57-.005 1.141-.006 1.711l.006-1.711Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFC6A0\",\n fillRule: \"evenodd\",\n d: \"M18.417 32.913s-.203 2.385 2.837 2.19c4.4-.28 3.622-3.687 12.391-8.544-.309-1.068-.961-1.872-.961-1.872s-4.348 1.228-8.872 3.175c-2.659 1.144-5.263 2.506-5.395 5.05Zm22.622 3.01.37-2.12-3.49-4.509-1.98 2.12-.683 3.09a.127.127 0 0 0 .043.127c.379.315 2.553 1.978 5.636 1.398a.13.13 0 0 0 .104-.106\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFC6A0\",\n fillRule: \"evenodd\",\n d: \"M36.904 31.321s-1.78-1.126-.955-2.705c.637-1.219 1.773.448 1.773.448s.204-1.438 1.226-1.438c.204-.41.613-1.642.613-1.642s4.496 1.027 5.314 1.232c0 2.053-.905 7.664-3.08 7.836-3.493.278-4.89-3.73-4.89-3.73Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#520038\",\n fillRule: \"evenodd\",\n d: \"M44.737 28.98c1.022-.822 1.363-3.837 1.363-3.837s-.973-.193-2.608-.809c-1.84-.82-5.028-1.872-6.867.386-3.798 1.271-.806 7.82-.806 7.82l1.066-1.191s-1.546-1.297-.817-2.463c.853-1.366 1.54.423 1.54.423s.25-.942 1.407-1.319c.14-.28.407-1.054.562-1.518a.423.423 0 0 1 .497-.278c.943.22 3.408.796 4.46 1.05.206.05.343.243.323.454l-.12 1.281Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#552950\",\n fillRule: \"evenodd\",\n d: \"M41.241 30.014c-.04.241-.228.41-.42.378-.192-.033-.315-.255-.274-.495.04-.24.228-.41.42-.377.192.032.314.254.274.494Zm2.811.643c-.04.241-.228.41-.42.378-.192-.033-.314-.254-.274-.495.04-.24.228-.41.42-.377.192.032.314.253.274.494Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#DB836E\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.118,\n d: \"m43.266 29.531-.352.636-.117 1.719h-.875\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#5C2552\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.118,\n d: \"M43.547 29.385s.703-.283.984.212\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#DB836E\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.118,\n d: \"M36.293 29.309s.187-.44.437-.283c.25.157.5.566.22.785-.282.22.062.66.062.66\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#5C2552\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.118,\n d: \"M40.578 28.773s.72.44 1.625.377\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#DB836E\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.118,\n d: \"M37.2 32.04s.906 2.919 4.094 3.013m-.562-2.794s.875.47 1.719.47l-1.72-.47Zm.375 1.004s.375.157.594.126l-.594-.126Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#E4EBF7\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.101,\n d: \"M27.106 32.61s-.285 3.662-3.223 5.605m8.114-2.95s.177 2.228-1.939 5.045l1.939-5.045Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#E4EBF7\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.051,\n d: \"M50.838 48.477s-2.07 2.92-3.701 4.248\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#E4EBF7\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.101,\n d: \"M46.87 42.344s.178 1.722-.835 12.65\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F2D7AD\",\n fillRule: \"evenodd\",\n d: \"M58.94 59.667H39.362a.396.396 0 0 1-.397-.399V46.766c0-.22.177-.399.397-.399H58.94c.22 0 .397.179.397.399v12.502a.4.4 0 0 1-.397.399Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F4D19D\",\n fillRule: \"evenodd\",\n d: \"M59.042 59.666h-7.804V46.367h8.165v12.936a.364.364 0 0 1-.361.363\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F2D7AD\",\n fillRule: \"evenodd\",\n d: \"M48.54 50.46H36.506a.203.203 0 0 1-.204-.219.205.205 0 0 1 .037-.104l2.506-3.595c.076-.11.2-.175.334-.175h12.215L48.54 50.46Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CC9B6E\",\n fillRule: \"evenodd\",\n d: \"M48.593 50.675h-9.6v-.205h9.494l2.822-4.048.167.117-2.883 4.136Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F4D19D\",\n fillRule: \"evenodd\",\n d: \"M62.188 50.46h-7.334a.81.81 0 0 1-.652-.328l-2.811-3.765h7.843a.61.61 0 0 1 .489.246l2.628 3.52a.205.205 0 0 1-.163.326\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CC9B6E\",\n fillRule: \"evenodd\",\n d: \"M62.012 50.693h-7.615L51.31 46.56l.163-.123 3.025 4.051h7.514v.205ZM51.29 59.454l-.013-3.226h.204l.013 3.226h-.204Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CC9B6E\",\n fillRule: \"evenodd\",\n d: \"m51.271 55.153-.031-8.45h.204l.031 8.45h-.204Zm-7.32.453-.196-.056.58-2.039.196.057-.58 2.038Zm-1.352.05L41.547 54.5l1.047-1.355.16.125-.94 1.22.936 1.03-.15.138Zm3.21 0-.15-.137.936-1.03-.942-1.22.161-.125 1.047 1.355-1.052 1.158Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFC6A0\",\n fillRule: \"evenodd\",\n d: \"m60.625 52.039-1.223-.773.015 1.386-.41.036c-.66.046-1.427.091-1.881.091-.747 0-1.058.891.876 1.045l-1.04-.235s-.851.52.199.907c0 0-.621.48.22 1.018-.23 1.383 2.061 1.601 2.798 1.417.737-.186 1.663-.931 1.763-2.036.11-1.217-.35-2.144-1.316-2.856\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#DB836E\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.051,\n d: \"M60.377 52.703s-2.562.186-3.284.147c-.722-.039-.748.864.926.893 1.47.06 2.142-.017 2.142-.017\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#DB836E\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.051,\n d: \"M57.028 53.61c-.727.53.22.929.22.929s1.367.354 2.645.243\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#DB836E\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.051,\n d: \"M20.758 35.224c1.388-.133 3.309-.493 5.336-3.06M59.67 55.908s-2.467.044-2.644-.841c-.087-.532.177-.554.177-.554l2.467 1.395Zm-2.269-.333s-.433 1.247 2.137 1.394l-2.137-1.394Zm1.999-4.314v1.371-1.371Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#5BA02E\",\n fillRule: \"evenodd\",\n d: \"M66.225 97.978a2.606 2.606 0 0 1-1.847-.768 2.628 2.628 0 0 1-.765-1.855V69.13a2.631 2.631 0 0 1 .765-1.854 2.61 2.61 0 0 1 1.847-.768 2.601 2.601 0 0 1 1.846.768 2.622 2.622 0 0 1 .765 1.854v26.225c0 .696-.275 1.363-.765 1.855a2.606 2.606 0 0 1-1.846.768Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#92C110\",\n fillRule: \"evenodd\",\n d: \"M69.357 97.71a2.606 2.606 0 0 1-1.846-.769 2.629 2.629 0 0 1-.765-1.854V81.975A2.634 2.634 0 0 1 67.5 80.1a2.612 2.612 0 0 1 1.857-.78 2.602 2.602 0 0 1 1.858.78 2.624 2.624 0 0 1 .754 1.875v13.112c0 .696-.276 1.363-.765 1.855a2.605 2.605 0 0 1-1.847.768Z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F2D7AD\",\n fillRule: \"evenodd\",\n d: \"M73.244 115.842H62.432c-.332 0-.65-.132-.886-.368a1.261 1.261 0 0 1-.366-.889V96.382a1.25 1.25 0 0 1 1.252-1.257h10.813c.332 0 .65.132.885.368s.367.556.367.89v18.202c0 .333-.132.653-.367.889a1.248 1.248 0 0 1-.885.368\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#E4EBF7\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.101,\n d: \"M34.957 35.305s3.055 2.124 6.521 1.121\"\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"404_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M0 0h99v116H0z\"\n})))));\nconst Memo = /*#__PURE__*/memo(Svg404);\nexport default Memo;","import { PlusOutlined } from \"@ant-design/icons\";\nimport { Avatar, Button, Card, Col, List, Progress, Row, Space, theme, Typography } from \"antd\";\nimport { useTranslation } from \"react-i18next\";\nimport QIcon from \"components/layout/QIcon\";\nimport MapPinOutline from \"assets/icons/map-pin-outline.svg\";\nimport PayrollOutline from \"assets/icons/payroll-outline.svg\";\nimport POS_Outline from \"assets/icons/pos-outline.svg\";\nimport UserGroupOutlined from \"assets/icons/user-group-outlined.svg\";\nimport Result404 from \"assets/images/404.svg\";\nimport { CardProps } from \"types/subscription\";\n\nconst { useToken } = theme;\nconst { Text, Title } = Typography;\n\nexport const CurrentAddOnsCard = ({ handleTabChange, ...props }: CardProps) => {\n const { t } = useTranslation();\n const { token } = useToken();\n\n const addons = [\n { icon: UserGroupOutlined, title: \"Users\", usedValue: 2, subscribedValue: 4 },\n { icon: MapPinOutline, title: \"Locations\", usedValue: 2, subscribedValue: 5 },\n { icon: POS_Outline, title: \"POS\", usedValue: 3, subscribedValue: 4 },\n { icon: PayrollOutline, title: \"Payroll\", usedValue: 5, subscribedValue: 6 },\n ];\n\n return (\n <Card\n type=\"inner\"\n title={`${t(\"activerecord.attributes.subscription.add-ons\")}:`}\n extra={\n <NewAddonButton style={{ marginBlock: token.marginXS }} handleTabChange={handleTabChange} />\n }\n styles={{ body: { padding: 0 } }}\n {...props}\n >\n <List\n dataSource={addons}\n renderItem={(addon) => {\n const percentage = (addon.usedValue / addon.subscribedValue) * 100;\n\n return (\n <List.Item style={{ justifyContent: \"center\", paddingInline: 8 }}>\n <Row gutter={[16, 16]} style={{ width: \"100%\" }} align=\"middle\">\n <Col span={12}>\n <Row gutter={{ xs: 8, sm: 16 }} align=\"middle\" wrap={false}>\n <Col>\n <Avatar\n icon={<addon.icon style={{ fontSize: 24 }} />}\n style={{ backgroundColor: token.colorBgContainer }}\n />\n </Col>\n <Col>{addon.title}</Col>\n </Row>\n </Col>\n <Col span={12} style={{ textAlign: \"end\" }}>\n <Text>\n <span style={{ color: token.colorPrimary }}>{addon.usedValue}</span>/\n {addon.subscribedValue}\n </Text>\n <Progress percent={percentage} showInfo={false} />\n </Col>\n </Row>\n </List.Item>\n );\n }}\n />\n </Card>\n );\n};\n\ninterface NewAddonButtonProps {\n style?: React.CSSProperties;\n handleTabChange: (key: string) => void;\n}\n\nconst NewAddonButton = ({ style, handleTabChange }: NewAddonButtonProps) => {\n const { t } = useTranslation();\n const { token } = useToken();\n\n return (\n <Button style={{ color: token.colorLink, ...style }} onClick={() => handleTabChange(\"2\")}>\n <PlusOutlined />\n {t(\"activerecord.attributes.subscription.new_addon\")}\n </Button>\n );\n};\n\nexport const NoAddOnsCard = ({ handleTabChange, ...props }: CardProps) => {\n const { t } = useTranslation();\n const { token } = useToken();\n\n return (\n <Card type=\"inner\" title={`${t(\"activerecord.attributes.subscription.add-ons\")}:`} {...props}>\n <Space direction=\"vertical\" align=\"center\" style={{ display: \"flex\" }}>\n <QIcon component={Result404} style={{ fontSize: 116 }} />\n <Title level={4} style={{ textAlign: \"center\", margin: 0 }}>\n {t(\"activerecord.attributes.addons.no_addons.title\")}\n </Title>\n <Text type=\"secondary\" style={{ textAlign: \"center\", display: \"block\" }}>\n {t(\"activerecord.attributes.addons.no_addons.description\")}\n </Text>\n <NewAddonButton style={{ marginTop: token.marginXS }} handleTabChange={handleTabChange} />\n </Space>\n </Card>\n );\n};\n","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgMastercardNew = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 572 444\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n d: \"M103.6 443v-29.5c0-11.3-6.9-18.6-18.6-18.6-5.9 0-12.3 1.9-16.7 8.4-3.4-5.4-8.4-8.4-15.7-8.4-4.9 0-9.8 1.5-13.7 6.9v-5.9H28.6V443h10.3v-26c0-8.4 4.4-12.3 11.3-12.3s10.3 4.4 10.3 12.3v26h10.1v-26c0-8.4 4.9-12.3 11.3-12.3 6.9 0 10.3 4.4 10.3 12.3v26h11.4Zm152.7-47.2h-16.7v-14.2h-10.3v14.2H220v9.3h9.3v21.6c0 10.8 4.4 17.2 16.2 17.2 4.4 0 9.3-1.5 12.8-3.4l-3-8.9c-3 1.9-6.4 2.5-8.9 2.5-4.9 0-6.9-3-6.9-7.8v-21.1h16.7l.1-9.4Zm87.4-1c-5.9 0-9.8 3-12.3 6.9v-5.9h-10.3v47.1h10.3v-26.5c0-7.8 3.4-12.3 9.8-12.3 1.9 0 4.4.5 6.4 1l3-9.8c-2-.5-4.9-.5-6.9-.5Zm-132.1 4.9c-4.9-3.4-11.8-4.9-19.2-4.9-11.8 0-19.6 5.9-19.6 15.2 0 7.8 5.9 12.3 16.2 13.7l4.9.5c5.4 1 8.4 2.5 8.4 4.9 0 3.4-3.9 5.9-10.8 5.9s-12.3-2.5-15.7-4.9l-4.9 7.8c5.4 3.9 12.8 5.9 20.1 5.9 13.7 0 21.6-6.4 21.6-15.2 0-8.4-6.4-12.8-16.2-14.2l-4.9-.5c-4.4-.5-7.8-1.5-7.8-4.4 0-3.4 3.4-5.4 8.9-5.4 5.9 0 11.8 2.5 14.8 3.9l4.2-8.3Zm274-4.9c-5.9 0-9.8 3-12.3 6.9v-5.9H463v47.1h10.3v-26.5c0-7.8 3.4-12.3 9.8-12.3 1.9 0 4.4.5 6.4 1l3-9.7c-2-.6-4.9-.6-6.9-.6ZM354 419.4c0 14.2 9.8 24.5 25.1 24.5 6.9 0 11.8-1.5 16.7-5.4l-4.9-8.4c-3.9 3-7.8 4.4-12.3 4.4-8.4 0-14.2-5.9-14.2-15.2 0-8.9 5.9-14.8 14.2-15.2 4.4 0 8.4 1.5 12.3 4.4l4.9-8.4c-4.9-3.9-9.8-5.4-16.7-5.4-15.2.1-25.1 10.5-25.1 24.7Zm95.3 0v-23.6H439v5.9c-3.4-4.4-8.4-6.9-14.8-6.9-13.3 0-23.6 10.3-23.6 24.5s10.3 24.5 23.6 24.5c6.9 0 11.8-2.5 14.8-6.9v5.9h10.3v-23.4Zm-37.8 0c0-8.4 5.4-15.2 14.2-15.2 8.4 0 14.2 6.4 14.2 15.2 0 8.4-5.9 15.2-14.2 15.2-8.8-.5-14.2-6.9-14.2-15.2Zm-123.3-24.6c-13.7 0-23.6 9.8-23.6 24.5 0 14.8 9.8 24.5 24.1 24.5 6.9 0 13.7-1.9 19.2-6.4L303 430c-3.9 3-8.9 4.9-13.7 4.9-6.4 0-12.8-3-14.2-11.3h34.8v-3.9c.4-15-8.4-24.9-21.7-24.9Zm0 8.9c6.4 0 10.8 3.9 11.8 11.3h-24.5c1-6.4 5.4-11.3 12.7-11.3Zm255.9 15.7v-42.2h-10.3v24.5c-3.4-4.4-8.4-6.9-14.8-6.9-13.3 0-23.6 10.3-23.6 24.5s10.3 24.5 23.6 24.5c6.9 0 11.8-2.5 14.8-6.9v5.9h10.3v-23.4Zm-37.9 0c0-8.4 5.4-15.2 14.2-15.2 8.4 0 14.2 6.4 14.2 15.2 0 8.4-5.9 15.2-14.2 15.2-8.8-.5-14.2-6.9-14.2-15.2Zm-344.7 0v-23.6h-10.3v5.9c-3.4-4.4-8.4-6.9-14.8-6.9-13.3 0-23.6 10.3-23.6 24.5s10.3 24.5 23.6 24.5c6.9 0 11.8-2.5 14.8-6.9v5.9h10.3v-23.4Zm-38.2 0c0-8.4 5.4-15.2 14.2-15.2 8.4 0 14.2 6.4 14.2 15.2 0 8.4-5.9 15.2-14.2 15.2-8.9-.5-14.2-6.9-14.2-15.2Z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#EB662B\",\n d: \"M362.9 37.9H208.2v277.9h154.7V37.9Z\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D72E2B\",\n d: \"M218.5 176.8c0-56.5 26.5-106.6 67.3-139C255.8 14.2 218 0 176.8 0 79.1 0 0 79.1 0 176.8c0 97.7 79.1 176.8 176.8 176.8 41.2 0 79.1-14.2 109-37.8-40.8-32-67.3-82.5-67.3-139Z\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E9A140\",\n d: \"M571.6 176.8c0 97.7-79.1 176.8-176.8 176.8-41.2 0-79.1-14.2-109-37.8 41.2-32.4 67.3-82.5 67.3-139s-26.5-106.6-67.3-139C315.7 14.2 353.5 0 394.8 0c97.7 0 176.8 79.6 176.8 176.8Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgMastercardNew);\nexport default Memo;","import { FrownOutlined, HistoryOutlined, RetweetOutlined } from \"@ant-design/icons\";\nimport { Typography, type MenuProps } from \"antd\";\nimport { useTranslation } from \"react-i18next\";\n\nconst { Link } = Typography;\n\nexport const useChangePlanItems = () => {\n const { t } = useTranslation();\n\n const items: MenuProps[\"items\"] = [\n {\n key: \"1\",\n label: (\n <Link\n data-confirm={t(\"forms.messages.change_plan.are_you_sure?\")}\n data-method=\"get\"\n href=\"/tenant/subscription/select_plan\"\n >\n {t(\"activerecord.attributes.layout.change_plan\")}\n </Link>\n ),\n icon: <RetweetOutlined />,\n },\n {\n key: \"2\",\n label: <Link>{t(\"activerecord.attributes.subscription.subscription_history\")}</Link>,\n icon: <HistoryOutlined />,\n },\n {\n key: \"3\",\n label: (\n <Link data-toggle=\"modal\" data-target=\"#cancel_modal\">\n {t(\"activerecord.attributes.subscription.cancel_subscription.cancel_plan\")}\n </Link>\n ),\n icon: <FrownOutlined />,\n danger: true,\n },\n ];\n\n return items;\n};\n","import { SettingOutlined } from \"@ant-design/icons\";\nimport {\n Avatar,\n Button,\n Card,\n Col,\n Divider,\n Dropdown,\n Flex,\n Grid,\n Row,\n Space,\n theme,\n Typography,\n} from \"antd\";\nimport { useTranslation } from \"react-i18next\";\nimport MasterCardLogo from \"/app/assets/images/mastercard-new.svg\";\nimport QIcon from \"components/layout/QIcon\";\nimport { QStatusTag } from \"components/layout/QStatusTag\";\nimport { useChangePlanItems } from \"hooks/subscription\";\nimport { CardProps } from \"types/subscription\";\n\nconst { useToken } = theme;\nconst { Text, Title } = Typography;\n\nexport const CurrentPlanCard = ({ handleTabChange, ...props }: CardProps) => {\n const { t } = useTranslation();\n const { token } = useToken();\n const { useBreakpoint } = Grid;\n const screenSizes = useBreakpoint();\n const changePlanItems = useChangePlanItems();\n\n return (\n <Card {...props}>\n <Row gutter={[16, 16]} justify=\"space-between\">\n <Col>\n <Text type=\"secondary\">{t(\"activerecord.attributes.layout.current_plan\")}</Text>\n <Row style={{ marginTop: \"4px\" }}>\n <Title level={5} style={{ marginBlock: 0 }}>\n Advanced\n </Title>\n <QStatusTag status=\"active\" style={{ marginInline: \"4px 0\" }} />\n <QStatusTag status=\"paid\" style={{ marginInline: \"4px 0\" }} />\n </Row>\n </Col>\n <Col>\n <Flex gap=\"small\" wrap>\n <Button type=\"dashed\">{t(\"activerecord.attributes.subscription.plan_details\")}</Button>\n <Dropdown\n menu={{\n items: changePlanItems,\n style: {\n boxShadow:\n \"0px 3px 6px -4px rgba(0, 0, 0, 0.12), 0px 6px 16px 0px rgba(0, 0, 0, 0.08), 0px 9px 28px 8px rgba(0, 0, 0, 0.05)\",\n },\n }}\n placement=\"bottomRight\"\n >\n <Button>\n <SettingOutlined /> {t(\"activerecord.attributes.subscription.manage_plan\")}\n </Button>\n </Dropdown>\n </Flex>\n </Col>\n </Row>\n <Row gutter={[16, 16]} style={{ marginTop: \"24px\" }}>\n <Col span={24} xs={{ order: 1 }} sm={{ span: 12, order: 1 }}>\n <Text type=\"secondary\">\n {t(\"activerecord.attributes.subscription.organization_reference\")}:\n </Text>\n <Text style={{ marginInlineStart: \"8px\" }}>379</Text>\n </Col>\n <Col span={24} xs={{ order: 2 }} sm={{ span: 12, order: 2 }}>\n <Text type=\"secondary\">{t(\"templates.balance\")}:</Text>\n <Text style={{ marginInlineStart: \"8px\" }}> <span style={{ fontFamily: 'saudi_riyal' }}></span>100.00</Text>\n </Col>\n <Col span={24} xs={{ order: 4 }} sm={{ span: 12, order: 3 }}>\n <Text type=\"secondary\">{t(\"activerecord.attributes.subscription.due_date\")}:</Text>\n <Text style={{ marginInlineStart: \"8px\" }}>2025-02-21</Text>\n </Col>\n <Col span={24} xs={{ order: 3 }} sm={{ span: 12, order: 4 }}>\n <Text type=\"secondary\">{t(\"activerecord.attributes.layout.next_payment_amount\")}:</Text>\n <Text style={{ marginInlineStart: \"8px\" }}> <span style={{ fontFamily: 'saudi_riyal' }}></span>150.00</Text>\n </Col>\n </Row>\n <Divider />\n <Row gutter={[16, 24]}>\n <Col span={24}>\n <Title level={5} style={{ marginBlock: 0 }}>\n {t(\"activerecord.attributes.subscription.payment_method\")}:\n </Title>\n </Col>\n <Col span={24}>\n <Row gutter={[16, 16]} justify=\"space-between\" align=\"middle\">\n <Col>\n <Row gutter={16}>\n <Col>\n <Avatar\n shape=\"square\"\n size={64}\n icon={<QIcon component={MasterCardLogo} style={{ fontSize: 30 }} />}\n style={{\n height: token.sizeXXL,\n backgroundColor: token.colorBgContainer,\n borderColor: token.colorBorder,\n }}\n gap={8}\n />\n </Col>\n <Col>\n <Space size={4} direction=\"vertical\">\n <Text>Yussef-4242</Text>\n <Text type=\"secondary\">\n {t(\"activerecord.attributes.subscription.expiry_date\")} 4/27\n </Text>\n </Space>\n </Col>\n </Row>\n </Col>\n <Col>\n <Button\n style={{ ...(!screenSizes.sm && { paddingInline: token.paddingXS }) }}\n onClick={() => handleTabChange(\"4\")}\n >\n <SettingOutlined />\n {t(\"activerecord.attributes.subscription.new_payment_method\")}\n </Button>\n </Col>\n </Row>\n </Col>\n </Row>\n </Card>\n );\n};\n","/* eslint-disable */\n// @ts-nocheck\nimport { createContext } from \"react\";\nimport type { ItemData } from \"types/layout\";\n\nexport default createContext<{\n sideMenuData: ItemData[];\n currentActiveItem: string;\n currentActiveMenu: string;\n isMobileRequest: boolean;\n currentUser: {\n label: string;\n href: string;\n };\n organizationName: string;\n comments: any;\n tasks: any;\n isOnBoard: boolean;\n canSendSuggestions: boolean;\n}>(null);\n/* eslint-enable */\n","import { createContext } from \"react\";\n\nconst RecordContext = createContext({ id: 0 });\nexport default RecordContext;\n","import React from \"react\";\nimport { User } from \"types/User\";\n\nexport default React.createContext<User | null>(null);\n","//@ts-nocheck\nimport {createContext} from 'react';\nimport { Subject } from 'rxjs';\nimport { Dimension } from 'types/dimensions';\n\ninterface DimensionContextType { \n globalValues: Map<string, string>;\n portalObservable: Subject<Map<string, {dimension_value_id: number, dimension_id: number}[]>>\n}\n\nexport const formObservable = new Subject<{dimensions: Dimension[], trID: string, lineItemID?: string }>();\nexport const ModalContext = createContext({dataRef: new Map<string, {id: number, dimension_value_id: number, dimension_id: number}[]>(), appliedRef: new Map<string, [boolean, {value: number; id: number;}]>(), updateTmpApplyList: (key, check, value) => {}});\n\nexport default createContext<DimensionContextType>({} as DimensionContextType);","export const getCurrencySymbol = (locale: string, currency: string) => {\n return (0)\n .toLocaleString(locale, {\n style: \"currency\",\n currency,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n })\n .replace(/\\d|Ù /g, \"\")\n .trim();\n};\n\nexport const formatAmountWithCurrency = (\n value: number | string,\n locale?: string,\n currency?: string\n) => {\n const normalizedValue: number =\n typeof value === \"number\" ? value : parseFloat(value);\n\n const formattedNumber = new Intl.NumberFormat(\"en-EG\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }).format(Math.abs(normalizedValue));\n\n const currencySymbol =\n currency && locale && getCurrencySymbol(locale, currency);\n\n const formattedValue =\n normalizedValue < 0\n ? `(${formattedNumber}${currencySymbol ? \" \" + currencySymbol : \"\"})`\n : `${formattedNumber}${currencySymbol ? \" \" + currencySymbol : \"\"}`;\n\n return formattedValue;\n};\n","//@ts-nocheck\nimport { TransformedData, TreeNode } from \"types/budget\";\n \nexport const transformData = <T extends { id: number; children?: T[] }>(\n data: T[],\n labelKey: keyof T\n): TransformedData[] => {\n return data?.map((item) => {\n const transformedItem: TransformedData = {\n value: item.id,\n label: String(item[labelKey]),\n title: String(item[labelKey]),\n };\n if (item.children && item.children.length > 0) {\n transformedItem.children = transformData(item.children, labelKey);\n }\n return transformedItem;\n });\n};\n\nexport const filterTreeNode = (inputValue: string, treeNode: TreeNode) => {\n return (\n treeNode.title.toLowerCase().includes(inputValue.toLowerCase()) ||\n treeNode.value == inputValue\n );\n};\n\nexport const getBudgetIdFromUrl = () => {\n const urlParts = window.location.pathname.split(\"/\");\n return urlParts[urlParts.length - 1];\n};\n\nexport const resetDateToZero = (formData, cycle, recordId = null) => {\n const resetFormData = {};\n\n if (recordId) {\n Object.keys(formData).forEach((key) => {\n resetFormData[key] = {\n ...formData[key],\n budget_amount: Number(key.trim()) === recordId ? 0 : formData[key].budget_amount,\n ...Object.fromEntries(\n Array.from({ length: cycle.no }, (_, index) => [\n index + 1,\n Number(key.trim()) === recordId ? 0 : formData[key][index + 1],\n ])\n ),\n };\n });\n } else {\n Object.keys(formData).forEach((key) => {\n resetFormData[key] = {\n ...formData[key],\n budget_amount: 0,\n ...Object.fromEntries(\n Array.from({ length: cycle.no }, (_, index) => [index + 1, 0])\n ),\n };\n });\n }\n\n return resetFormData;\n};\n\nexport const updateParent = (formData, parentId, cycle) => {\n if (!parentId) return formData;\n\n let parentRecord = formData[parentId];\n if (parentRecord) {\n parentRecord.budget_amount = parentRecord.children.reduce((sum: number, childId: string | number) => {\n const childRecord = formData[childId];\n return sum + (parseFloat(childRecord?.budget_amount) || 0);\n }, 0);\n\n for (let i = 1; i <= cycle.no; i++) {\n parentRecord[i] = parentRecord.children.reduce((sum: number, childId: string | number) => {\n const childRecord = formData[childId];\n return sum + (parseFloat(childRecord?.[i]) || 0);\n }, 0);\n }\n formData[parentId] = parentRecord;\n if (parentRecord.parentId) {\n return updateParent(formData, parentRecord.parentId, cycle);\n }\n }\n\n return formData;\n};\n\nexport const calculateBudgetAmount = (values) => {\n return values.reduce((sum, val) => {\n const numericVal = parseFloat(val) || 0;\n return sum + numericVal;\n }, 0);\n}; \n","import React from \"react\";\n\nexport const selectConfigurationModelHandler = (checkedValues: unknown[], options: string[], setCheckedList: React.Dispatch<React.SetStateAction<unknown[]>>) => {\n const allIdx = checkedValues.indexOf(\"\"); \n if(allIdx > -1 && checkedValues.length < options.length) {\n return setCheckedList([\"\", ...options]);\n } else if(allIdx > -1 && checkedValues.length >= options.length) {\n checkedValues.splice(allIdx, 1);\n } else if(allIdx === -1 && checkedValues.length === options.length) {\n checkedValues.push(\"\");\n }\n setCheckedList([...checkedValues] as string[])\n};","import { useSettings } from \"hooks/useSettings\";\nimport i18next from \"i18next\";\n\nexport const formatCurrency = (value: number) => {\n const settings = useSettings();\n\n const numberValue = roundNumber(Number(value) || 0);\n\n let currencyValue = `${Math.abs(numberValue)} ${settings.currency}`;\n if (i18next.language === \"en\")\n currencyValue = `${settings.currency} ${Math.abs(numberValue)}`;\n\n if (numberValue < 0) return `(${currencyValue})`;\n\n return currencyValue;\n};\n\nexport const roundNumber = (number: number) => {\n return Math.round((number + Number.EPSILON) * 100) / 100;\n};\n","import { useTranslation } from \"react-i18next\";\n\ninterface Setting {\n currency: string | null;\n date_format: string | null;\n fiscal_year_start?: string | null;\n}\n\nexport const useSettings = (): Setting => {\n const { t } = useTranslation();\n const defaultSettings = {\n currency: t(\"activerecord.attributes.subscription.sar\"),\n date_format: \"YYYY-mm-dd\",\n };\n\n return (window.Settings || defaultSettings) as Setting;\n};\n","import React, { useState } from 'react';\nimport { Button, Result, message, Modal } from 'antd';\nimport { useMutation } from 'react-query';\nimport axios from 'axios';\nimport { useTranslation } from 'react-i18next';\n\ninterface ServiceRequestButtonProps {\n serviceType: string;\n title: string;\n actionLabel: string;\n successMessage: string;\n description: string;\n}\n\nconst ServiceRequestButton: React.FC<ServiceRequestButtonProps> = ({\n serviceType,\n actionLabel,\n successMessage,\n description,\n}) => {\n const { t } = useTranslation();\n const [content, setContent] = useState<null | React.ReactNode>(null);\n const [messageApi, messageContext] = message.useMessage();\n\n const mutation = useMutation({\n mutationKey: [serviceType],\n mutationFn: async () => {\n return await axios.post('/tenant/additional_services', {\n service_type: serviceType,\n });\n },\n onSuccess: () => {\n setContent(\n <Result\n status=\"success\"\n title={successMessage}\n subTitle={description}\n extra={[\n <Button type=\"primary\" key=\"ok\" onClick={() => setContent(null)}>\n {t('activerecord.attributes.vat_services.setup.ok_thanks')}\n </Button>,\n ]}\n />\n );\n },\n onError: () => {\n messageApi.open({\n type: 'error',\n content: t('forms.messages.error'),\n });\n },\n });\n\n return (\n <>\n {messageContext}\n <div>\n <Button type=\"primary\" onClick={() => mutation.mutate()}>\n {actionLabel}\n </Button>\n </div>\n <Modal footer={null} open={Boolean(content)} closable={false}>\n {content}\n </Modal>\n </>\n );\n};\n\nexport default ServiceRequestButton;","//@ts-nocheck\nimport React, { useEffect, useState } from \"react\";\nimport { Form } from \"antd\";\nimport { SorterResult } from \"antd/es/table/interface\";\nimport { useInfiniteQuery, useQuery } from \"react-query\";\nimport { getLocations, getCustomFields } from \"api/recurring_transactions\";\n\nconst notIncludedFilterKeys = ['page', 'per_page', 'q[s]']\n\nconst SORT_DIRECTION = new Map([['ascend', 'asc'], ['descend', 'desc']])\nconst SORT_DIRECTION_REVERSE = new Map([['asc', 'ascend'], ['desc', 'descend']])\ninterface InteractiveFilterProps {\n setFilterUpdate: React.Dispatch<React.SetStateAction<boolean>>;\n path: string;\n shouldUpdateURL?: boolean\n trasnfromSearchParams?: (search: URLSearchParams) => URLSearchParams\n}\n\nexport const useInteractiveFilter = ({ setFilterUpdate, path, shouldUpdateURL = true, trasnfromSearchParams = (s) => s }: InteractiveFilterProps, depArray) => {\n \n const [url, setURL] = useState(new URL(window.location.href));\n const [page, setPage] = useState(parseInt(url.searchParams.get('page')) || 1);\n const [pageSize, setPageSize] = useState(parseInt(url.searchParams.get('per_page')) || 15);\n const [sorter, setSorter] = useState<SorterResult<any>>(null);\n const [filterApplied, setFilterApplied] = useState(false);\n const [sorterStr, setSorterStr] = useState(url.searchParams.get('q[s]') ?? '');\n const [defaultSorted, setDefaultSorted] = useState(sorterStr? true : false)\n const [queryParams, setQueryParams] = useState({});\n const [ formContainerRef, setFormContainerRef ] = useState(null);\n const [ form ] = Form.useForm();\n\n useEffect(() => {\n const preObject = {};\n [['page', page], ['per_page', pageSize], ['q[s]', sorterStr]].forEach(([key, value]) => {\n if(value) {\n preObject[key] = value;\n }\n })\n setQueryParams(preObject);\n setFilterUpdate(state => !state);\n\n }, [page, pageSize, sorterStr])\n \n useEffect(() => {\n if(sorter?.field && sorter?.order) {\n setDefaultSorted(false)\n setSorterStr(`${sorter.field} ${SORT_DIRECTION.get(sorter.order)}`)\n } else if(!defaultSorted) {\n setSorterStr('')\n }\n }, [sorter])\n \n useEffect(() => {\n if(formContainerRef) { \n for(const [key, value] of url.searchParams.entries()) {\n form.setFieldValue(key, value);\n }\n } \n }, [formContainerRef])\n\n useEffect(() => {\n for(const key of url.searchParams.keys()) {\n if(!notIncludedFilterKeys.includes(key) && url.searchParams.get(key)) {\n setFilterApplied(true);\n break;\n }\n }\n }, [])\n \n useEffect(() => {\n if(formContainerRef) {\n const formFields = {};\n for(const [key, value] of Object.entries(form.getFieldsValue())) {\n if(value) {\n formFields[key] = value;\n }\n }\n\n if(Object.keys(formFields).length > 0) {\n setFilterApplied(true);\n } else {\n setFilterApplied(false);\n }\n \n const search = trasnfromSearchParams(\n new URLSearchParams({ ...queryParams, ...formFields })\n );\n setURL(prevURL => {\n const newURL = new URL(prevURL);\n newURL.search = search.toString();\n return newURL;\n })\n }\n }, [...depArray, formContainerRef])\n\n useEffect(() => {\n if (shouldUpdateURL) history.pushState({}, '', url);\n }, [url])\n \n return {\n url: `${path}${url.search}`,\n page: {\n get: () => page,\n set: setPage\n },\n pageSize: {\n get: () => pageSize,\n set: setPageSize\n },\n sorter: {\n get: () => {\n const sortSplit = sorterStr.split(' ');\n if(sorterStr && sortSplit.length === 2) {\n const field = sortSplit[0];\n const order = SORT_DIRECTION_REVERSE.get(sortSplit[1]);\n if(field && order) {\n return {field, order};\n }\n }\n },\n set: setSorter,\n reset: () => {\n setSorter(null);\n setSorterStr(\"\")\n }\n },\n update: () => {\n setPage(1);\n setFilterUpdate(state => !state)\n },\n form,\n setFormContainerRef,\n filterApplied\n };\n}\n\nexport function useLocations() {\n const query = useInfiniteQuery({\n queryKey: \"locations\",\n queryFn: getLocations,\n getNextPageParam(lastPage, allPages) {\n if (allPages.length < lastPage.total_pages) {\n return allPages.length + 1;\n }\n },\n });\n return query;\n}\nexport const useCustomFields = (moduleName: string) => {\n const query = useQuery({\n queryKey: [\"customFields\", moduleName],\n queryFn: getCustomFields,\n });\n\n return query;\n};\n\nconst screenSizes = {\n \"xs:(size<=375)\": \"(max-width:375px)\",\n \"sm:(size<=576)\": \"(max-width:576px)\",\n \"md:(size>=768)\": \"(min-width:768px)\",\n \"lg:(size>=992)\": \"(min-width:992px)\",\n \"xl:(size>=1200)\": \"(min-width:1200px)\",\n \"xxl:(size>=1400)\": \"(min-width:1400px)\",\n \"3xl:(size>=1600)\": \"(min-width:1600px)\",\n \"4xl:(size>=1920)\": \"(min-width:1920px)\",\n};\n\nexport function useMediaQuery(query: keyof typeof screenSizes): boolean;\nexport function useMediaQuery(query: string): boolean;\nexport function useMediaQuery(query: any): boolean {\n const subscribe = React.useCallback(\n (callback: (e: MediaQueryListEvent) => void) => {\n let matchMedia: MediaQueryList;\n\n if (query in screenSizes) {\n matchMedia = window.matchMedia(screenSizes[query]);\n } else {\n matchMedia = window.matchMedia(query);\n }\n\n matchMedia.addEventListener(\"change\", callback);\n\n return () => {\n matchMedia.removeEventListener(\"change\", callback);\n };\n },\n [query]\n );\n\n const getSnapshot = () => {\n const screenSize = query in screenSizes ? screenSizes[query] : query;\n\n return window.matchMedia(screenSize).matches;\n };\n\n return React.useSyncExternalStore(subscribe, getSnapshot);\n}\n","/* eslint-disable */\n//@ts-nocheck\nimport { useTranslation } from \"react-i18next\";\nimport i18next from \"i18next\";\nimport {\n Button,\n Input,\n Tooltip,\n Modal,\n Form,\n Select,\n message,\n Typography,\n} from \"antd\";\nimport React, { useState, useContext, useEffect, useMemo, useRef } from \"react\";\nimport {\n EyeOutlined,\n EditOutlined,\n SyncOutlined,\n EllipsisOutlined,\n FormOutlined,\n ExclamationCircleOutlined,\n DeleteOutlined,\n ExclamationCircleFilled,\n} from \"@ant-design/icons\";\nimport moment from \"moment\";\nimport { BudgetContext } from \"components/tenant/budgets/BudgetDetails\";\nconst { Option } = Select;\nimport { ColumnsType } from \"antd/es/table\";\nimport { useMutation, useQueryClient } from \"react-query\";\nimport {\n postBudgetDetails,\n postBudgetingValueBreakdown,\n deleteBudget,\n} from \"api/budgets\";\nimport {\n BudgetBreakdownReqBody,\n BudgetContextType,\n BudgetDetailsType,\n} from \"types/budget\";\n\nexport const useTableColumns = (permissions) => {\n const { t } = useTranslation();\n const queryClient = useQueryClient();\n const [budgetCode, setBudgetCode] = useState(\"\");\n const deleteRecord = useMutation({\n mutationFn: (id) => deleteBudget(id),\n onSuccess(data, variables, context) {\n message.success(`${budgetCode} ${t(\"budgets.delete_popup.success\")}`);\n queryClient.invalidateQueries({\n queryKey: [\"budgets\"],\n });\n },\n onError(error, variables, context) {\n message.error(`${error.message}`);\n },\n });\n const { confirm } = Modal;\n const showDeleteConfirm = (record) => {\n confirm({\n title: (\n <div style={{ textAlign: \"center\" }}>\n <DeleteOutlined style={{ fontSize: 32, color: \"red\" }} />\n <Typography.Title level={4} style={{ margin: \"10px 0 0 0\" }}>\n {t(\"budgets.delete_popup.title\")}\n </Typography.Title>\n </div>\n ),\n content: (\n <p style={{ textAlign: \"center\" }}>\n {t(\"budgets.delete_popup.description\")}\n </p>\n ),\n centered: true,\n okText: t(\"budgets.delete_popup.delete\"),\n okType: \"danger\",\n cancelText: t(\"budgets.delete_popup.cancel\"),\n icon: null,\n width: 550,\n onOk() {\n deleteRecord.mutate(record.id);\n },\n });\n };\n\n const actionButtons = [\n {\n key: \"view\",\n icon: <EyeOutlined />,\n href: (record) => `/tenant/budgets/${record.id}`,\n permission: permissions.read || permissions.write || permissions.approve,\n },\n {\n key: \"edit\",\n icon: <EditOutlined />,\n href: (record) => `/tenant/budgets/${record.id}/edit`,\n permission: permissions.write || permissions.approve,\n },\n {\n key: \"form\",\n icon: <FormOutlined />,\n href: (record) => `/tenant/budgets/${record.id}?type=edit`,\n permission: permissions.write || permissions.approve,\n },\n {\n key: \"delete\",\n icon: (\n <DeleteOutlined\n style={{\n color: permissions.delete || permissions.approve ? \"red\" : \"gray\",\n }}\n />\n ),\n onClick: (record) => {\n if (permissions.delete || permissions.approve) {\n showDeleteConfirm(record);\n setBudgetCode(record.code);\n }\n },\n permission: permissions.delete || permissions.approve,\n },\n ];\n const columns = [\n {\n title: t(\"budgets.attributes.reference\"),\n dataIndex: \"code\",\n key: \"id\",\n sorter: true,\n SortOrder: \"descend\",\n },\n {\n title: t(\"budgets.attributes.name\"),\n dataIndex: i18next.language === \"en\" ? \"name_en\" : \"name_ar\",\n key: i18next.language === \"en\" ? \"name_en\" : \"name_ar\",\n sorter: true,\n },\n {\n title: t(\"budgets.attributes.budget_type\"),\n dataIndex: \"kind\",\n key: \"kind\",\n sorter: true,\n },\n {\n title: t(\"budgets.attributes.fiscal_year\"),\n dataIndex: \"fiscal_year\",\n key: \"fiscal_year\",\n sorter: true,\n },\n {\n title: t(\"budgets.attributes.actions\"),\n key: \"actions\",\n render: (text, record) => (\n <>\n {actionButtons.map(({ key, icon, href, onClick, permission }) => (\n <Tooltip\n key={key}\n title={!permission ? t(\"budgets.delete_popup.not_allowed\") : \"\"}\n >\n <Button\n icon={icon}\n href={href ? href(record) : undefined}\n onClick={onClick ? () => onClick(record) : undefined}\n style={{ marginRight: 8 }}\n disabled={!permission}\n />\n </Tooltip>\n ))}\n </>\n ),\n },\n ];\n\n return {\n columns,\n };\n};\n\nexport const useBudgetDetailsColumns = (\n cycle,\n data,\n dateRanges,\n formData,\n id,\n isSaveButtonDisabled,\n handleBlur,\n handleInputChange,\n showResetRowModal,\n permissions,\n breakDownValues\n): ColumnsType<any> => {\n const updateBudgetDetails = useMutation({\n mutationFn: (data: BudgetDetailsType) => postBudgetDetails(data, id),\n });\n const { setTableData } = useBreakDownModalState();\n const queryClient = useQueryClient();\n const createBreakDownValues = useMutation({\n mutationFn: (data: BudgetBreakdownReqBody) => {\n return postBudgetingValueBreakdown(data);\n },\n onSuccess(data, variables, context) {\n message.success(t(\"budgets.show.budget_details.saved\"));\n queryClient.invalidateQueries({\n queryKey: [\"break_down_values\"],\n });\n },\n });\n const isTriggered = useRef(false);\n const { t } = useTranslation();\n const queryParams = new URLSearchParams(window.location.search);\n const type = queryParams.get(\"type\");\n const handleSave = () => {\n const convertObjectToArray = (obj) => {\n return Object.entries(obj).map(([key, value]) => {\n const valuesArray = Array.from({ length: cycle.no }, (_, index) => {\n const valueNumber = parseFloat(value[index + 1]) || 0;\n return valueNumber;\n });\n return {\n budgeting_id: key,\n values: valuesArray,\n };\n });\n };\n\n const formDataResult = new FormData();\n\n const result = convertObjectToArray(formData);\n\n result.forEach((el, i) => {\n formDataResult.append(`budget[budgeting_values][]`, JSON.stringify(el));\n });\n\n formDataResult.append(\"budget[cycle]\", cycle.type);\n\n updateBudgetDetails.mutate(formDataResult as any, {});\n };\n const renderEditableInput = (record, field) => {\n const isDisabled =\n (record.children && record.children.length > 0) ||\n type != \"edit\" ||\n !permissions[\"write\"];\n const { modalOpen, setModalOpen, selectedRow, setSelectRow } =\n useContext<BudgetContextType>(BudgetContext);\n let formDataField = formData[record.id]?.[field];\n const breakDownValue = record.budgeting_value_id;\n const isBreak = breakDownValues?.some((el) => {\n return (\n breakDownValue == el.budgeting_value_id && el.value_index == field - 1\n );\n });\n return (\n <Input\n type=\"text\"\n style={{ width: cycle.no === 12 ? \"130px\" : \"150px\" }}\n value={\n isDisabled\n ? Intl.NumberFormat().format(formDataField)\n : formDataField || 0\n }\n onChange={(e) => {\n if (isBreak && !isTriggered.current) {\n isTriggered.current = true;\n Modal.confirm({\n icon: (\n <ExclamationCircleOutlined\n style={{ color: \"#FA8C16\", fontSize: \"24px\" }}\n />\n ),\n title: t(\"budgets.reset_breakdown_pop.title\"),\n content: t(\"budgets.reset_breakdown_pop.description\"),\n okText: t(\"budgets.reset_breakdown_pop.confirm\"),\n cancelText: t(\"budgets.reset_breakdown_pop.cancel\"),\n okButtonProps: {\n style: { backgroundColor: \"#1890FF\", color: \"white\" },\n },\n centered: true,\n onOk: () => {\n createBreakDownValues.mutate({\n budgeting_value_breakdown: [],\n budgeting_value_id: breakDownValue,\n value_index: field - 1,\n });\n },\n });\n } else {\n handleInputChange(e, record.id, field);\n }\n }}\n onBlur={(e) => {\n isTriggered.current = false;\n if (!isBreak) {\n handleBlur(e, record.id, field);\n }\n }}\n disabled={isDisabled}\n suffix={\n <span\n style={{\n visibility:\n !isDisabled &&\n Number(formData[record.id]?.[field]) > 0 &&\n data?.dimensions.length > 0\n ? \"visible\"\n : \"hidden\",\n }}\n >\n <EditOutlined\n onClick={() => {\n setModalOpen(true);\n setSelectRow({ ...record, field: field });\n if (!isSaveButtonDisabled) {\n handleSave();\n }\n setTableData([]);\n }}\n style={{\n cursor: \"pointer\",\n color: isBreak ? \"green\" : \"black\",\n }}\n className=\"ellipsis-icon\"\n />\n </span>\n }\n />\n );\n };\n const columns: ColumnsType<any> = [\n {\n title: t(\"budgets.show.budget_details.codes\"),\n dataIndex: \"code\",\n key: \"id\",\n width: 180,\n fixed: \"left\",\n },\n {\n title: t(\"budgets.show.budget_details.name\"),\n dataIndex: \"name\",\n key: \"name\",\n width: 150,\n fixed: \"left\",\n },\n {\n title:\n data?.base === \"quantity\"\n ? `${t(\"budgets.show.budget_details.budget_quantity\")}`\n : `${t(\"budgets.show.budget_details.budget_amount\")} `,\n dataIndex: \"budget_amount\",\n key: \"budget_amount\",\n fixed: \"left\",\n render: (_, record) => (\n <Input\n style={{ width: cycle.no === 12 ? \"130px\" : \"150px\" }}\n value={Intl.NumberFormat().format(\n formData[record.id]?.budget_amount || 0\n )}\n disabled\n />\n ),\n },\n ...(Array.isArray(dateRanges)\n ? dateRanges.map((year, i) => {\n const date = moment(year, \"D-MM-YYYY\");\n const fiscalYear = date.year();\n const shortName = date.format(\"MMM\");\n let title;\n if (dateRanges.length === 4) {\n const startShortName = moment(year[0], \"D-MM-YYYY\").format(\"MMM\");\n const endShortName = moment(year[1], \"D-MM-YYYY\").format(\"MMM\");\n title = `${startShortName}-${endShortName} ${fiscalYear}`;\n } else {\n title = `${shortName} ${fiscalYear}`;\n }\n return {\n title: title,\n dataIndex: i + 1,\n key: `${i + 1}_${fiscalYear}`,\n width: cycle.no === 12 ? 100 : 200,\n render: (_, record) => renderEditableInput(record, i + 1),\n };\n })\n : []),\n {\n title: \"\",\n key: \"resetIcon\",\n fixed: \"right\",\n render: (_, record) => {\n return record.children && record.children.length > 0\n ? null\n : permissions[\"write\"] && type == \"edit\" && (\n <SyncOutlined\n style={{ fontSize: \"20px\" }}\n onClick={() => showResetRowModal(record.id)}\n />\n );\n },\n },\n ];\n return columns;\n};\n\nexport const useResetAllModal = (handleReset) => {\n const { t } = useTranslation();\n const [isResetModalVisible, setIsResetModalVisible] = useState(false);\n\n const showResetModal = () => {\n setIsResetModalVisible(true);\n };\n\n const handleCancel = () => {\n setIsResetModalVisible(false);\n };\n\n const handleOk = () => {\n handleReset();\n setIsResetModalVisible(false);\n };\n\n const resetModal = (\n <Modal\n title={t(\"budgets.reset_details_popup.title\")}\n visible={isResetModalVisible}\n onOk={handleOk}\n onCancel={handleCancel}\n okText={t(\"budgets.reset_details_popup.confirm\")}\n cancelText={t(\"budgets.reset_details_popup.cancel\")}\n >\n <p>{t(\"budgets.reset_details_popup.description\")}</p>\n </Modal>\n );\n\n return {\n showResetModal,\n resetModal,\n };\n};\n\nexport const useResetRowDataModal = (handleResetRow) => {\n const { t } = useTranslation();\n const [isResetRowModalVisible, setIsResetRowModalVisible] = useState(false);\n const [currentRecordId, setCurrentRecordId] = useState(null);\n\n const showResetRowModal = (recordId) => {\n setCurrentRecordId(recordId);\n setIsResetRowModalVisible(true);\n };\n\n const handleCancel = () => {\n setIsResetRowModalVisible(false);\n };\n\n const handleOk = () => {\n if (currentRecordId !== null) {\n handleResetRow(currentRecordId);\n }\n setIsResetRowModalVisible(false);\n };\n\n const resetRowModal = (\n <Modal\n title={t(\"budgets.reset_row_popup.title\")}\n visible={isResetRowModalVisible}\n onOk={handleOk}\n onCancel={handleCancel}\n okText={t(\"budgets.reset_row_popup.confirm\")}\n cancelText={t(\"budgets.reset_row_popup.cancel\")}\n >\n <p>{t(\"budgets.reset_row_popup.description\")}</p>\n </Modal>\n );\n\n return {\n showResetRowModal,\n resetRowModal,\n };\n};\n\nexport const useDynamicDimensionsColumns = (\n data,\n handleSelectChange,\n tableData\n) => {\n const [dynamicDimensionsColumns, setDynamicDimensionsColumns] = useState([]);\n useEffect(() => {\n if (data) {\n setDynamicDimensionsColumns(\n data?.dimensions.map((el, i) => ({\n title: `${el.code}-${\n i18next.language === \"en\" ? el.name_en : el.name_ar\n }`,\n dataIndex: el.code,\n key: `${el.code}-${i}`,\n width: 200,\n render: (text, record) => {\n let defaultValue;\n\n record?.dimensions_values?.forEach((dim) => {\n if (dim.dimension_id == el.id) {\n defaultValue = dim.id;\n }\n });\n return (\n <Form.Item\n name={[record.key, \"dimensions_values\", i]}\n initialValue={defaultValue}\n rules={[{ required: false, message: `${el.code} is required` }]}\n key={`form-item-${record.key}-${i}`}\n style={{ marginBottom: 0 }}\n >\n <Select\n value={defaultValue}\n onChange={(value) =>\n handleSelectChange(value, el.id, record.key)\n }\n style={{ width: \"100%\" }}\n >\n {el?.values.map((value) => {\n if (value.value_type == \"standalone\") {\n return (\n <Option key={value.id} value={value.id}>\n {`${value.code}-${\n i18next.language === \"en\"\n ? value.name_en\n : value.name_ar\n }`}\n </Option>\n );\n }\n\n return null;\n })}\n </Select>\n </Form.Item>\n );\n },\n }))\n );\n }\n }, [data]);\n\n return dynamicDimensionsColumns;\n};\n\nexport const useBreakDownModalState = (selectedRow) => {\n const [tableData, setTableData] = useState([]);\n const [breakDownInputsValues, setBreakDownInputsValues] = useState({});\n const [errorMessage, setErrorMessage] = useState(\"\");\n\n useEffect(() => {\n setTableData([\n {\n key: 1,\n kind: `${selectedRow?.name}-${selectedRow?.code}`,\n amount: \"0\",\n },\n ]);\n }, [selectedRow]);\n\n return {\n tableData,\n setTableData,\n breakDownInputsValues,\n setBreakDownInputsValues,\n errorMessage,\n setErrorMessage,\n };\n};\n","//@ts-nocheck\nimport axios from \"axios\";\nimport { useEffect } from \"react\";\nimport { useQuery } from \"react-query\"\nimport type { Permissions } from \"types/app\";\n\nexport const useDimensionPermissions = () => {\n const {data, error} = useQuery<Permissions>({\n queryKey: ['dimensionPermission'],\n queryFn: async () => {\n return (await axios.get('/tenant/dimensions/permissions.json')).data\n }\n });\n\n useEffect(() => {\n if(error) {\n window.location.replace('/tenant/dashboards');\n }\n }, [error])\n const permissions = data;\n return { permissions };\n}","import { useQuery } from \"react-query\";\nimport { Permissions } from \"types/app\";\n\nexport const usePermission = (moduleName: string) => {\n const { data } = useQuery<Permissions, Error>(\n [\"permissions\", moduleName],\n async () => {\n const response = await fetch(`/tenant/permissions/${moduleName}`);\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.json() as Promise<Permissions>;\n },\n );\n\n if (data) return data;\n else\n return {\n read: false,\n write: false,\n delete: false,\n approve: false,\n };\n};\n","/* eslint-disable */\n//@ts-nocheck\nimport React, {useContext, useState, useEffect, useCallback} from 'react';\nimport QLayoutContext from 'contexts/Layout';\nimport type { MenuProps, TourStepProps } from 'antd';\nimport GAMap from 'tokens/GAMap.json';\nimport ReactGA from 'react-ga4';\n\nimport i18next, { TFunction } from 'i18next';\nimport moment from 'moment';\n\nimport { Card, Space, Typography, theme, Empty, Button } from 'antd';\nimport { ClockCircleOutlined, EditOutlined, EyeOutlined, GlobalOutlined, LogoutOutlined, PlusOutlined, SyncOutlined } from '@ant-design/icons';\nimport { useTranslation } from 'react-i18next';\nimport axios from 'axios';\n\nconst {Text, Paragraph, Link, Title} = Typography;\nconst {useToken} = theme;\n\nconst { Meta } = Card;\n\nexport const useComments = (): MenuProps['items'] => {\n const { comments } = useContext(QLayoutContext);\n const { t } = useTranslation();\n\n const {viewAllPath, lastComments} = comments;\n\n const {token} = useToken();\n\n let items: MenuProps['items'] = lastComments?.map(({user_full_name, path, content, created_at}) => ({\n key: path,\n label: (\n <Link style={{wordBreak: 'unset'}} onClick={() => {\n ReactGA.event({\n category: GAMap.header.CATEGORY,\n action: GAMap.header.mentions.open\n });\n }} href={path} key={path}>\n <Card style={{border: 'none', borderRadius: 0}} bodyStyle={{ paddingInline: token.padding }}>\n <Meta\n title={<Title level={5} style={{margin: 0, whiteSpace: 'break-spaces'}}>{user_full_name}</Title>}\n description={<Space direction=\"vertical\" size={16}><Paragraph style={{wordBreak: 'unset', width: '100%', margin: 0}} ellipsis={{ rows: 2 }} type=\"secondary\">{content}</Paragraph><Space size={8}><ClockCircleOutlined /><Text style={{wordBreak: 'unset'}} type=\"secondary\">{created_at}</Text></Space></Space>}\n />\n </Card>\n </Link>\n ),\n style: {paddingInline: 0, borderTop: '1px solid rgba(0, 0, 0, 10%)', borderRadius: 0}\n }))\n\n items = items && items.length? items : [{key: 'Empty', label: <Empty key='Empty' image={Empty.PRESENTED_IMAGE_SIMPLE} />}];\n\n return [\n {\n key: '1',\n label: (\n <Space style={{width: '100%', justifyContent: 'space-between', paddingBlock: 14}} size={8} key='1'>\n <Text style={{wordBreak: 'unset'}} strong>{t('activerecord.attributes.comment.mention_list')}</Text>\n <Space size={8}>\n <EyeOutlined />\n <Link style={{wordBreak: 'unset'}} target=\"_blank\" rel=\"noopener noreferrer\" onClick={() => {\n ReactGA.event({\n category: GAMap.header.CATEGORY,\n action: GAMap.header.mentions.viewAll\n });\n }} href={viewAllPath}>\n {t('templates.tasks.view_all')}\n </Link>\n </Space>\n </Space>\n ),\n type: 'group'\n },\n ...items\n ]\n}\n\nexport const useTasks = (): {tasks: MenuProps['items'], getLatestTasks: () => void} => {\n const { tasks } = useContext(QLayoutContext);\n const { t } = useTranslation();\n\n const {viewAllPath, newTaskPath} = tasks;\n const [lastTasks, setLastTasks] = useState(null);\n\n const {token} = useToken();\n\n const getLatestTasks = useCallback(() => {\n axios\n .get('/tenant/tasks.json?q[sorts]=created_at%20desc&per_page=5')\n .then((response) => {\n setLastTasks(response.data?.tasks);\n })\n }, [])\n\n let items: MenuProps['items'] = lastTasks?.map(({description, name, updated_at, id}) => ({\n key: id,\n label: (\n <Link style={{wordBreak: 'unset'}} onClick={() => {\n ReactGA.event({\n category: GAMap.header.CATEGORY,\n action: GAMap.header.tasks.open\n });\n }} href={`/tenant/tasks/${id}`} key={`task-${id}`}>\n <Card style={{border: 'none', borderRadius: 0}} bodyStyle={{ paddingInline: token.padding }}>\n <Meta\n title={<Title level={5} style={{margin: 0, whiteSpace: 'break-spaces'}}>{name}</Title>}\n description={<Space direction=\"vertical\" size={16}><Paragraph style={{wordBreak: 'unset', width: '100%', margin: 0}} ellipsis={{ rows: 2 }} type=\"secondary\">{description}</Paragraph><Space size={8}><ClockCircleOutlined /><Text style={{wordBreak: 'unset'}} type=\"secondary\">{moment.duration(moment().diff(updated_at)).humanize()}</Text></Space></Space>}\n />\n </Card>\n </Link>\n ),\n style: {paddingInline: 0, borderTop: '1px solid rgba(0, 0, 0, 10%)', borderRadius: 0}\n }))\n\n items = items && items.length? items : [{key: 'Empty', label: <Empty key='Empty' image={Empty.PRESENTED_IMAGE_SIMPLE} />}];\n const finalizedTasks: MenuProps['items'] = [\n {\n key: '1',\n label: (\n <Space style={{width: '100%', justifyContent: 'space-between', paddingBlock: 14}} size={8} key='1'>\n <Text style={{wordBreak: 'unset'}} strong>{t('templates.tasks.recent_task')}</Text>\n <Space size={16}>\n <Space size={8}>\n <EyeOutlined />\n <Link style={{wordBreak: 'unset'}} onClick={() => {\n ReactGA.event({\n category: GAMap.header.CATEGORY,\n action: GAMap.header.tasks.viewAll\n });\n }} target=\"_blank\" rel=\"noopener noreferrer\" href={viewAllPath}>\n {t('templates.tasks.view_all')}\n </Link>\n </Space>\n {newTaskPath? <Button onClick={(e) => {\n e.preventDefault();\n axios.get(newTaskPath, {\n headers: {\n 'Accept': '*/*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n }\n }).then(response => {\n const script = document.createElement('script');\n script.innerHTML = response.data;\n document.body.append(script);\n })\n ReactGA.event({\n category: GAMap.header.CATEGORY,\n action: GAMap.header.tasks.create\n });\n }} href={newTaskPath} icon={<PlusOutlined />}>{t('templates.tasks.new_task')}</Button> : null}\n </Space>\n </Space>\n ),\n type: 'group'\n },\n ...items\n ]\n\n return { tasks: finalizedTasks, getLatestTasks}\n}\n\n\n\nexport const useHelp = (broken: boolean, startIntro: () => {}) => {\n const { isOnBoard, sideMenuData, canSendSuggestions } = useContext(QLayoutContext);\n const {t} = useTranslation();\n const rawItems: any = [\n {id: 'qoyodUpdates', label: 'frontend.tooltips.on_boarding.new_releases', href: 'https://releases.qoyod.com'},\n {id: 'videoTutorials', label: 'frontend.tooltips.on_boarding.video_tutorials', href: 'https://www.youtube.com/watch?v=FiOdXWOVnFs'},\n {id: 'helpCenter', label: 'frontend.tooltips.on_boarding.knowledge_base', href: i18next.language === 'en'? 'https://www.qoyod.com/en/help-center/' : 'https://www.qoyod.com/ara/مركز-المساعدة'},\n ]\n const hasShowMeHow = sideMenuData.find(item => item?.props?.id === 'sidepanel_show_me_how');\n\n if(hasShowMeHow && !broken) {\n rawItems.push({id: 'showMeHow', label: 'activerecord.attributes.help_content.btn_H', href: '#', target: '_self', onClick: () => {\n startIntro();\n ReactGA.event({\n category: GAMap.header.CATEGORY,\n action: GAMap.header.help.showMeHow\n });\n ReactGA.event({\n category: GAMap.showMeHow.CATEGORY,\n action: GAMap.showMeHow[window.location.pathname]\n });\n }});\n }\n\n if(!isOnBoard) {\n rawItems.push({id: 'onBoarding', label: 'frontend.tooltips.on_boarding.continue_onboarding', href: '/tenant/onboarding'});\n }\n\n if(canSendSuggestions){\n rawItems.push({id: 'suggestionHub', label: 'frontend.tooltips.on_boarding.suggestion_hub', href: '/tenant/dashboards/suggestion_hub' });\n }\n\n const items: MenuProps['items'] = rawItems.map(({id, label, href, ...props}) => ({\n key: id,\n label: (\n <Link style={{wordBreak: 'unset'}} target=\"_blank\" rel=\"noopener noreferrer\" onClick={() => {\n ReactGA.event({\n category: GAMap.header.CATEGORY,\n action: GAMap.header.help[id]\n });\n }} href={href} key={id} {...props}>\n {t(label)}\n </Link>\n )\n }))\n\n return items;\n}\n\nconst langMap = new Map([\n ['en', {label: 'العربية', id: 'ar'}],\n ['ar', {label: 'English', id: 'en'}]\n])\n\nexport const useUserSetting = () => {\n const { currentUser } = useContext(QLayoutContext);\n const {t} = useTranslation();\n const {token} = useToken();\n\n const lang = langMap.get(i18next.language);\n\n const handleLocaleChange = useCallback((lang, e) => {\n e.preventDefault();\n const url = new URL(window.location.href);\n url.searchParams.set('locale', lang);\n window.location.replace(url);\n }, [])\n\n const rawItems = [\n {id: 'editProfile', label: 'activerecord.attributes.layout.edite_prifle_top_menu', href: currentUser.href, icon: <EditOutlined />},\n {id: lang.id, label: lang.label, onClick: handleLocaleChange.bind(null, lang.id), style: {fontFamily: 'Cairo'}, icon: <GlobalOutlined />},\n {divider: true},\n {id: 'myOrganizations', text: 'activerecord.attributes.layout.my_organizations', disabled: true},\n {id: 'changeOrganization', label: 'activerecord.attributes.layout.change_organization_top_menu', href: '/tenant/dashboards/organizations', icon: <SyncOutlined />},\n {id: 'addOrganization', label: 'activerecord.attributes.layout.add_organization', href: '/home/select_plan', icon: <PlusOutlined />},\n {divider: true},\n {id: 'logout', label: 'forms.buttons.logout', href: '/users/sign_out', 'data-method': 'delete', icon: <LogoutOutlined />, danger: true},\n ]\n\n const items: MenuProps['items'] = rawItems.map(item => {\n if (item.divider) {\n return {type: 'divider'}\n }\n const { id, label, href, icon, danger, disabled, ...props } = item;\n return {\n key: id,\n label: id === 'myOrganizations' ? <Text type=\"secondary\">{t(item.text)}</Text> : (\n <Link style={{ wordBreak: 'unset' }} onClick={() => {\n ReactGA.event({\n category: GAMap.header.CATEGORY,\n action: GAMap.header.account[id]\n });\n }} rel=\"noopener noreferrer\" href={href} key={id} {...props}>\n {t(label)}\n </Link>\n ),\n icon: icon,\n danger: danger || false,\n disabled: disabled || false,\n style: {cursor: disabled && \"default\"}\n };\n })\n\n return items;\n}\n\n\n\ninterface Intro {\n steps: null | TourStepProps[];\n open: boolean;\n setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n}\n\nconst tourMap = new Map<string, TourStepProps[]>([\n ['/tenant/dashboards', [\n {\n title: 'activerecord.attributes.layout.dashboard',\n description: 'activerecord.attributes.help_content.qoyodintro_h',\n target: () => null,\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.dashboard',\n description: 'activerecord.attributes.help_content.Payment_Snapshot_h',\n target: () => document.querySelector('#step1'),\n placement: 'right'\n },\n {\n title: 'activerecord.attributes.layout.dashboard',\n description: 'activerecord.attributes.help_content.revenue_expense_h',\n target: () => document.querySelector('#step2'),\n placement: 'right'\n },\n {\n title: 'activerecord.attributes.layout.dashboard',\n description: 'activerecord.attributes.help_content.customer_h',\n target: () => document.querySelector('#step3'),\n placement: 'right'\n },\n {\n title: 'activerecord.attributes.layout.dashboard',\n description: 'activerecord.attributes.help_content.vendor_h',\n target: () => document.querySelector('#step4'),\n placement: 'right'\n },\n {\n title: 'activerecord.attributes.layout.dashboard',\n description: 'activerecord.attributes.help_content.activity_log_h',\n target: () => document.querySelector('#step5'),\n placement: 'bottom'\n },\n ]],\n ['/tenant/products', [\n {\n title: 'activerecord.attributes.layout.products',\n description: 'activerecord.attributes.help_content.product_intro',\n target: () => null,\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.products',\n description: 'activerecord.attributes.help_content.product_th',\n target: () => document.querySelector('#step1'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.products',\n description: 'activerecord.attributes.help_content.product_action',\n target: () => document.querySelector('#step2'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.products',\n description: 'activerecord.attributes.help_content.btn_product_categories',\n target: () => document.querySelector('#step3'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.products',\n description: 'activerecord.attributes.help_content.btn_unit_types',\n target: () => document.querySelector('#step4'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.products',\n description: 'activerecord.attributes.help_content.btn_add_product',\n target: () => document.querySelector('#step5'),\n placement: 'bottom'\n },\n ]],\n ['/tenant/manual_journal_entries', [\n {\n title: 'activerecord.attributes.layout.manual_journal_entries',\n description: 'activerecord.attributes.help_content.manual_journal_entries_intro',\n target: () => null,\n placement: 'bottom'\n }\n ]],\n ['/tenant/easy_entries', [\n {\n title: 'activerecord.attributes.layout.easy_entries',\n description: 'activerecord.attributes.help_content.manual_journal_entries_intro',\n target: () => null,\n placement: 'bottom'\n }\n ]],\n ['/tenant/contacts', [\n {\n title: 'activerecord.attributes.layout.customers',\n description: 'activerecord.attributes.help_content.contact_intro',\n target: () => null,\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.customers',\n description: 'activerecord.attributes.help_content.contact_tbl',\n target: () => document.querySelector('#step1'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.customers',\n description: 'activerecord.attributes.help_content.contact_action',\n target: () => document.querySelector('#step2'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.customers',\n description: 'activerecord.attributes.help_content.btn_add_contact',\n target: () => document.querySelector('#step3'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.customers',\n description: 'activerecord.attributes.help_content.btn_contact_export',\n target: () => document.querySelector('#step4'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.customers',\n description: 'activerecord.attributes.help_content.btn_contact_import',\n target: () => document.querySelector('#step5'),\n placement: 'bottom'\n },\n ]],\n ['/tenant/contacts/vendor_index', [\n {\n title: 'activerecord.attributes.layout.vendors',\n description: 'activerecord.attributes.help_content.vendor_intro',\n target: () => null,\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.vendors',\n description: 'activerecord.attributes.help_content.vendor_tbl',\n target: () => document.querySelector('#step1'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.vendors',\n description: 'activerecord.attributes.help_content.vendor_action',\n target: () => document.querySelector('#step2'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.vendors',\n description: 'activerecord.attributes.help_content.btn_add_vendor',\n target: () => document.querySelector('#step3'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.vendors',\n description: 'activerecord.attributes.help_content.btn_vendor_export',\n target: () => document.querySelector('#step4'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.vendors',\n description: 'activerecord.attributes.help_content.btn_vendor_import',\n target: () => document.querySelector('#step5'),\n placement: 'bottom'\n },\n ]],\n ['/tenant/quotations', [\n {\n title: 'activerecord.attributes.layout.quotations',\n description: 'activerecord.attributes.help_content.quotes_intro',\n target: () => null,\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.quotations',\n description: 'activerecord.attributes.help_content.quotes_add',\n target: () => document.querySelector('#step1'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.quotations',\n description: 'activerecord.attributes.help_content.quotes_action',\n target: () => document.querySelector('#step2'),\n placement: 'bottom'\n }\n ]],\n ['/tenant/purchase_orders', [\n {\n title: 'activerecord.attributes.layout.orders',\n description: 'activerecord.attributes.help_content.mange_order',\n target: () => null,\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.orders',\n description: 'activerecord.attributes.help_content.oredr_new',\n target: () => document.querySelector('#step1'),\n placement: 'bottom'\n }\n ]],\n ['/tenant/invoices', [\n {\n title: 'activerecord.attributes.layout.invoices',\n description: 'activerecord.attributes.help_content.invoices_intro',\n target: () => null,\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.invoices',\n description: 'activerecord.attributes.help_content.invoices_graph',\n target: () => document.querySelector('#step1'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.invoices',\n description: 'activerecord.attributes.help_content.invoices_tbl',\n target: () => document.querySelector('#step2'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.invoices',\n description: 'activerecord.attributes.help_content.invoices_balance',\n target: () => document.querySelector('#step3'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.invoices',\n description: 'activerecord.attributes.help_content.invoices_action',\n target: () => document.querySelector('#step4'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.invoices',\n description: 'activerecord.attributes.help_content.invoices_btn_add',\n target: () => document.querySelector('#step5'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.invoices',\n description: 'activerecord.attributes.help_content.invoices_btn_manage_credit_note',\n target: () => document.querySelector('#step6'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.invoices',\n description: 'activerecord.attributes.help_content.invoices_manage_payment',\n target: () => document.querySelector('#step7'),\n placement: 'bottom'\n },\n ]],\n ['/tenant/bills', [\n {\n title: 'activerecord.attributes.layout.bills',\n description: 'activerecord.attributes.help_content.bill_intro',\n target: () => null,\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.bills',\n description: 'activerecord.attributes.help_content.bill_graph',\n target: () => document.querySelector('#step1'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.bills',\n description: 'activerecord.attributes.help_content.bill_tbl',\n target: () => document.querySelector('#step2'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.bills',\n description: 'activerecord.attributes.help_content.bill_action',\n target: () => document.querySelector('#step3'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.bills',\n description: 'activerecord.attributes.help_content.bill_credit',\n target: () => document.querySelector('#step4'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.bills',\n description: 'activerecord.attributes.help_content.bill_add',\n target: () => document.querySelector('#step5'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.bills',\n description: 'activerecord.attributes.help_content.bill_management',\n target: () => document.querySelector('#step6'),\n placement: 'bottom'\n }\n ]],\n ['/tenant/debit_notes', [\n {\n title: 'activerecord.attributes.layout.debit_notes',\n description: 'activerecord.attributes.help_content.debit_notes_intro',\n target: () => null,\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.debit_notes',\n description: 'activerecord.attributes.help_content.debit_notes_new_btn',\n target: () => document.querySelector('#step1'),\n placement: 'bottom'\n },\n {\n title: 'activerecord.attributes.layout.debit_notes',\n description: 'activerecord.attributes.help_content.debit_notes_action',\n target: () => document.querySelector('#step2'),\n placement: 'bottom'\n }\n ]],\n])\n\n\nconst getSteps = (pagePath: string, t: TFunction<\"translation\", string>): TourStepProps[] => {\n const rawSteps = tourMap.get(pagePath);\n const steps = rawSteps?.map((step, idx) => ({\n ...step,\n title: t(step.title as string),\n description: t(step.description as string),\n nextButtonProps: {\n children: idx === rawSteps.length - 1 ? t('activerecord.attributes.layout.finish') : t('activerecord.attributes.layout.next'),\n style: {padding: '4px 8px', height: 'auto'}\n\n },\n prevButtonProps: {\n children: t('activerecord.attributes.layout.previous'),\n style: {padding: '4px 8px', height: 'auto'}\n\n }\n }))\n return steps || [];\n}\n\nexport const useIntro = (pagePath: string): Intro => {\n\n const [open, setOpen] = useState(false);\n const [steps, setSteps] = useState([]);\n\n useEffect(() => {\n setSteps(getSteps(pagePath, t))\n }, []);\n\n const {t} = useTranslation();\n return {\n steps,\n open,\n setOpen\n };\n}\n/* eslint-enable */\n","import { useLayoutEffect, useMemo, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useMutation, useQueries, useQuery, useQueryClient, UseQueryOptions } from \"react-query\";\nimport { CaretRightOutlined, CloseOutlined, DeleteOutlined, EyeOutlined } from \"@ant-design/icons\";\nimport { Button, Space, Tooltip, Typography } from \"antd\";\nimport { ColumnsType } from \"antd/es/table\";\nimport { AxiosError } from \"axios\";\nimport dayjs from \"dayjs\";\nimport i18next from \"i18next\";\nimport {\n deleteRT,\n executeSchedule,\n getNextReference,\n getRecurringTransactionSchedules,\n getRTPermissions,\n getRTRecords,\n getSchedules,\n getTransaction,\n updateStatus,\n} from \"api/recurring_transactions\";\nimport { formatAmountWithCurrency } from \"helpers/app\";\nimport { CDStatuses, RTDetailsStatuses } from \"types/app\";\nimport {\n DocumentTypes,\n QueryOpts,\n RTDocumentsTypes,\n RTIndexResponse,\n RTSchedules,\n ScheduleType,\n SelectedDocument,\n} from \"types/recurring_transactions\";\nimport { useStatusMap } from \"./status\";\n\nconst TABLE_HEADERS = \"recurring_transactions.table_headers\";\nconst ACTIONS = \"recurring_transactions.actions\";\n\nexport const useRTPermissions = () => {\n const { data, error, isLoading } = useQuery({\n queryKey: [\"RTPermissions\"],\n queryFn: getRTPermissions,\n });\n\n useLayoutEffect(() => {\n if (error) {\n window.location.replace(\"/tenant/dashboards\");\n }\n }, [error]);\n\n return { permissions: data, isPermissionsLoading: isLoading };\n};\n\nexport const useSchedules = (\n transactionId: number | undefined,\n queryOpts: {\n [ScheduleType.PASSED]: QueryOpts;\n [ScheduleType.UPCOMMING]: QueryOpts;\n }\n) => {\n const queryClient = useQueryClient();\n\n const [passedSchedulesQuery, upcomingSchedulesQuery] = useQueries(\n [ScheduleType.PASSED, ScheduleType.UPCOMMING].map((type) => ({\n queryKey: [\"Schedules\", type, queryOpts[type]],\n queryFn: () =>\n getSchedules(\n transactionId!,\n new URLSearchParams({\n type,\n page: queryOpts[type].page ?? \"1\",\n per_page: queryOpts[type].per_page ?? \"15\",\n })\n ),\n enabled: Boolean(transactionId) && (queryOpts[type].enabled ?? true),\n }))\n );\n\n const refetchSchedules = async () => {\n await Promise.all([\n passedSchedulesQuery.refetch(),\n upcomingSchedulesQuery.refetch(),\n queryClient.invalidateQueries({\n queryKey: [\"transaction\", transactionId],\n }),\n ]);\n };\n\n const isRefetchingSchedules =\n passedSchedulesQuery.isRefetching && passedSchedulesQuery.isRefetching; \n\n return {\n passedSchedulesQuery,\n upcomingSchedulesQuery,\n refetchSchedules,\n isRefetchingSchedules\n };\n};\n\nexport const useTransaction = (\n id: number,\n querySearch?: URLSearchParams\n) => {\n const query = useQuery({\n queryKey: [\"transaction\", id, querySearch?.toString()],\n queryFn: () => getTransaction(id, querySearch),\n enabled: Boolean(id),\n });\n\n return query;\n}\n\ninterface DocumentsColumnsProps {\n handleDeleteDocument: (id: number) => void;\n}\n\nexport const useDocumentsColumns = ({ handleDeleteDocument }: DocumentsColumnsProps) => {\n const { t } = useTranslation();\n const statusMap = useStatusMap();\n\n const translationTerms = useMemo(\n () => ({\n Bill: t(\n \"activerecord.attributes.commercial_document.bill\"\n ),\n SimpleBill: t(\n \"activerecord.attributes.commercial_document.simple_bill\"\n ),\n Invoice: t(\n \"activerecord.attributes.commercial_document.invoice\"\n ),\n }),\n []\n );\n\n const columns: ColumnsType<SelectedDocument> = [\n {\n title: t(`${TABLE_HEADERS}.reference`),\n dataIndex: \"reference\",\n key: \"reference\",\n },\n {\n title: t(`${TABLE_HEADERS}.amount`),\n dataIndex: \"amount\",\n render(value:string) {\n return value && formatAmountWithCurrency(value);\n },\n key: \"amount\",\n },\n {\n title: t(`${TABLE_HEADERS}.date`),\n dataIndex: \"date\",\n key: \"date\",\n },\n {\n title: t(`${TABLE_HEADERS}.document_type`),\n dataIndex: \"type\",\n key: \"type\",\n render: (type: DocumentTypes) => translationTerms[type.slice(0, -1) as keyof typeof translationTerms],\n },\n {\n title: t(`${TABLE_HEADERS}.status`),\n dataIndex: \"status\",\n key: \"status\",\n render: (status: CDStatuses) => {\n const statusData = statusMap[status];\n return (\n statusData && (\n <Typography.Text style={{ color: statusData.color }}>\n {statusData.label}\n </Typography.Text>\n )\n );\n },\n },\n {\n title: t(`${TABLE_HEADERS}.actions`),\n dataIndex: \"id\",\n key: \"id\",\n render: (id: number, record: SelectedDocument) => {\n let documentType= \"\";\n if (record.type === \"SimpleBills\") {\n documentType = \"simple_bills\";\n } else if (record.type === \"Bills\" || record.type === \"Invoices\") {\n documentType = record.type.toLowerCase();\n }\n return (\n <Space>\n <Button icon={<EyeOutlined />} href={`/tenant/${documentType}/${id}`} target=\"_blank\" />\n <Button icon={<DeleteOutlined />} onClick={() => handleDeleteDocument(id)} />\n </Space>\n );\n },\n },\n ];\n return columns;\n};\n\ninterface TransactionsColumnsProps {\n handleStartProcess: (id: number) => void;\n openSkipProcessModal: (id: number) => void;\n isRunProcessing: boolean;\n}\n\nexport const useTransactionsColumns = ({\n handleStartProcess,\n openSkipProcessModal,\n isRunProcessing,\n}: TransactionsColumnsProps) => {\n const { t } = useTranslation();\n const statuses = useStatusMap();\n const firstSchedule = useRef<string>();\n const isRunning = useRef<Record<number,boolean>>({});\n \n const { permissions } = useRTPermissions();\n\n const columns: ColumnsType<RTSchedules> = [\n {\n title: t(`${TABLE_HEADERS}.reference`),\n dataIndex: \"reference\",\n key: \"reference\",\n render: (reference: string, record: RTSchedules) => {\n return record.original_documents ? (\n <Tooltip placement=\"right\" title={t(`${TABLE_HEADERS}.reference_hover`)}>\n <Typography.Link\n href={`/tenant/recurring_transactions/${record.recurring_transaction_id}`}\n target=\"_blank\"\n >\n {reference}\n </Typography.Link>\n </Tooltip>\n ) : (\n reference\n );\n },\n },\n {\n title: t(`${TABLE_HEADERS}.name`),\n dataIndex: \"name\",\n key: \"name\",\n render: (_, record: RTSchedules) =>\n i18next.language === \"ar\" ? record?.ar_name : record?.en_name,\n },\n {\n title: t(`${TABLE_HEADERS}.created_date`),\n dataIndex: \"created_at\",\n key: \"created_at\",\n render: (created_at: string, record: RTSchedules) =>\n record.original_documents && dayjs(created_at).format(\"DD-MM-YYYY\"),\n },\n {\n title: t(`${TABLE_HEADERS}.date_next_run`),\n dataIndex: \"scheduled_run_date\",\n key: \"scheduled_run_date\",\n render: (scheduled_run_date: string, record: RTSchedules) =>\n record.original_documents && dayjs(scheduled_run_date).format(\"DD-MM-YYYY\"),\n },\n {\n title: t(`${TABLE_HEADERS}.status`),\n dataIndex: \"status\",\n key: \"status\",\n render: (status: RTDetailsStatuses) => {\n const normalizedStatus = statuses._normalize(status);\n\n return (\n normalizedStatus && (\n <Typography.Text\n style={{ color: statuses[normalizedStatus as RTDetailsStatuses].color }}\n >\n {statuses[normalizedStatus as RTDetailsStatuses].label}\n </Typography.Text>\n )\n );\n },\n },\n {\n title: t(`${TABLE_HEADERS}.actions`),\n dataIndex: \"id\",\n key: \"id\",\n render: (id: number, record: RTSchedules, index) => {\n if (record.original_documents) {\n const recurringRef: string = record.reference.split(\"-\")[0];\n let disabledAction: boolean;\n let canWrite = false;\n\n const original_documents_type: string = record?.original_documents[0]?.type;\n \n if (permissions?.recurring_transactions?.write) {\n if (original_documents_type === \"Invoice\") {\n canWrite = permissions?.invoices?.write;\n } else if (original_documents_type === \"Bill\") {\n canWrite = permissions?.bills?.write;\n } else if (original_documents_type === \"SimpleBill\") {\n canWrite = permissions?.simple_bills?.write;\n }\n }\n\n if (!canWrite || (recurringRef === firstSchedule.current && index != 0)) {\n disabledAction = true;\n } else {\n disabledAction = false;\n firstSchedule.current = recurringRef;\n }\n\n return (\n <Space>\n <Tooltip title={t(`${ACTIONS}.start_process`)}>\n <Button\n icon={<CaretRightOutlined />}\n onClick={() => {\n isRunning.current = { [id]: true };\n try {\n handleStartProcess(id);\n } catch {\n isRunning.current = { [id]: false };\n }\n }}\n disabled={disabledAction}\n loading={isRunProcessing && isRunning.current[id]}\n />\n </Tooltip>\n <Tooltip title={t(`${ACTIONS}.skip_process`)}>\n <Button\n icon={<CloseOutlined />}\n onClick={() => openSkipProcessModal(id)}\n disabled={disabledAction}\n />\n </Tooltip>\n </Space>\n );\n }\n },\n },\n ];\n return { columns };\n};\n\nexport const useNextReference = () => {\n const { data, refetch } = useQuery<{next_reference:string}>({\n queryKey: \"recurringTransactionNextReference\",\n queryFn: () => getNextReference(),\n });\n\n return { nextReference: data?.next_reference, refetch };\n};\n\nexport const useRecurringTransactionSchedules = (\n currentPage: number,\n pageSize: number,\n documentType?: RTDocumentsTypes | null\n) => {\n const { data, isLoading } = useQuery({\n queryKey: [\"recurringTransactionSchedules\", currentPage, pageSize, documentType],\n queryFn: () => getRecurringTransactionSchedules(currentPage, pageSize, documentType),\n });\n\n return { data, isSchedulesLoading: isLoading };\n};\n\nexport const useRTRecords = ({\n querySearch,\n ...queryOptions\n}: {\n querySearch: string;\n} & UseQueryOptions<RTIndexResponse, AxiosError>) => {\n const query = useQuery({\n queryFn: ()=>getRTRecords(querySearch),\n ...queryOptions,\n });\n\n return query;\n};\n\n\nexport const useToggleRTStatus = () => {\n const queryClient = useQueryClient();\n\n const query = useMutation({\n mutationKey: \"RTToggleStatus\",\n mutationFn: updateStatus,\n async onSuccess() {\n await queryClient.invalidateQueries({\n queryKey: [\"RTIndex\"],\n });\n },\n });\n return {\n ...query,\n data: query.data?.data,\n };\n};\n\nexport const useDeleteRT = () => {\n const queryClient = useQueryClient();\n\n const query = useMutation({\n mutationKey: \"RTDelete\",\n mutationFn: deleteRT,\n async onSuccess() {\n await queryClient.invalidateQueries({\n queryKey: [\"RTIndex\"],\n });\n },\n });\n return query;\n};\n\nexport const useExecuteSchedule = () => {\n const queryClient = useQueryClient();\n\n const query = useMutation({\n mutationKey: \"RTExecuteSchedule\",\n mutationFn({ id, operation }: { id: number; operation: \"run\" | \"skip\" }) {\n return executeSchedule(id, operation);\n },\n async onSuccess() {\n await Promise.all([\n queryClient.invalidateQueries({\n queryKey: [\"Schedules\"],\n }),\n queryClient.invalidateQueries({\n queryKey: [\"transaction\"],\n }),\n queryClient.invalidateQueries({\n queryKey: [\"recurringTransactionSchedules\"],\n }),\n ]);\n },\n async onError() {\n await Promise.all([\n queryClient.invalidateQueries({\n queryKey: [\"Schedules\"],\n }),\n queryClient.invalidateQueries({\n queryKey: [\"transaction\"],\n }),\n queryClient.invalidateQueries({\n queryKey: [\"recurringTransactionSchedules\"],\n }),\n ]);\n },\n });\n return query;\n};\n","import axios from 'axios';\nimport { ReferralData } from 'types/referrals';\n\nexport const fetchReferralLink = async (): Promise<ReferralData> => {\n const response = await axios.get(`/tenant/referrals.json`);\n return {\n referral_url: response.data.referrals.referral_url,\n referrals_count: response.data.referrals.referrals_count\n };\n};\n","//@ts-nocheck\nimport { fetchReferralLink } from \"api/referrals\";\nimport { useTranslation } from \"react-i18next\";\nimport { useQuery } from \"react-query\";\nimport { ReferralData } from \"types/referrals\";\n\nexport const useReferralData = () => {\n const { data, isLoading } = useQuery<ReferralData>(\"referralData\", fetchReferralLink);\n\n return {\n rewardsCount: data?.referrals_count || 0,\n referralUrl: data?.referral_url || \"\",\n loading: isLoading,\n };\n};\n\nexport const useBreadCrumbData = () => {\n \n const { t } = useTranslation();\n return [{ title: t(\"referrals.name\") }];\n};\n","import { useTranslation } from \"react-i18next\";\nimport { Statuses } from \"types/app\";\n\nexport const useStatusMap = () => {\n const { t } = useTranslation();\n\n const statusMap: Record<Statuses, { color: string; label: string }> = {\n Active: { color: \"green\", label: t(\"status.active\") },\n Approved: { color: \"blue\", label: t(\"status.approved\") },\n \"Awaiting Approval\": { color: \"orange\", label: t(\"status.awaiting_approval\") },\n \"Awaiting for approval\": { color: \"orange\", label: t(\"status.awaiting_approval\") },\n Billed: { color: \"blue\", label: t(\"status.approved\") },\n Cancelled: { color: \"red\", label: t(\"status.cancelled\") },\n Completed: { color: \"blue\", label: t(\"status.completed\") },\n Draft: { color: \"orange\", label: t(\"status.draft\") },\n Failed: { color: \"red\", label: t(\"status.failed\") },\n Inactive: { color: \"default\", label: t(\"status.inactive\") },\n Overdue: { color: \"orange\", label: t(\"status.overdue\") },\n Paid: { color: \"green\", label: t(\"status.paid\") },\n \"Partially Paid\": { color: \"orange\", label: t(\"status.partially_paid\") },\n Scheduled: { color: \"blue\", label: t(\"status.scheduled\") },\n Skipped: { color: \"orange\", label: t(\"status.skipped\") },\n Success: { color: \"green\", label: t(\"status.success\") },\n \"In Progress\": {color: \"gold\", label: t(\"status.in_progress\")},\n };\n\n return {\n ...statusMap,\n _normalize(status: string) {\n if (!status) return \"\";\n return status\n .split(\"_\")\n .map(\n (word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()\n )\n .join(\" \");\n },\n };\n};\n","//@ts-nocheck\n// Support component names relative to this directory:\nconst componentRequirePageContext = require.context(\"components\", true);\nconst layoutRequirePageContext = require.context(\"pages\", true);\n\nimport ReactRailsUJS from \"react_ujs\";\nReactRailsUJS.useContexts([componentRequirePageContext, layoutRequirePageContext]);","//@ts-nocheck\nimport React, {useLayoutEffect, useState} from 'react'\nimport { ConfigProvider } from 'antd';\nimport lightToken from 'themes/light.json';\nimport {I18nextProvider, initReactI18next} from \"react-i18next\";\nimport { QueryClient, QueryClientProvider } from 'react-query'\nimport i18next from \"i18next\";\nimport Global from 'types/modules/global';\nimport enUS from 'antd/locale/en_US';\nimport arEG from 'antd/locale/ar_EG';\nimport { localeMapValue } from 'types/layout';\nimport { Locale } from 'antd/lib/locale';\nimport dayjs from 'dayjs';\nimport 'dayjs/locale/ar-sa';\n\ndayjs.locale('ar-sa');\n\n\nconst {components, ...globalTokens} = lightToken;\n\nconst arLocaleWithShortDays: Locale = {\n ...arEG,\n DatePicker: {\n ...arEG.DatePicker,\n lang: {\n ...arEG.DatePicker?.lang,\n shortWeekDays: [\"ØÂ\", \"Ù†\", \"Ø«\", \"ر\", \"Ø®\", \"ج\", \"س\"],\n },\n },\n};\n\ni18next\n .use(initReactI18next)\n .init({\n resources: {\n [window.I18n.locale]: {\n translation: window.I18n\n }\n },\n lng: window.I18n.locale\n })\n \n\n const localeMap = new Map<string, localeMapValue>([\n ['en', {locale: enUS, dir: 'ltr', fontFamily: globalTokens.fontFamily}],\n ['ar', {locale: arLocaleWithShortDays, dir: 'rtl', fontFamily: 'Cairo'}]\n ])\n \n globalTokens.fontFamily = localeMap.get(i18next.language)?.fontFamily;\n \n export const queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n })\n\nexport const antdConfigProps = {\n theme: {components, token: globalTokens},\n locale: localeMap.get(i18next.language)?.locale,\n direction: localeMap.get(i18next.language)?.dir\n}\n\ninterface AppProps {\n modulePath: string;\n pagePath: string;\n}\n\nconst App: React.FC<AppProps> = ({modulePath, pagePath, ...props}) => {\n const [Page, setPage] = useState(null);\n useLayoutEffect(() => {\n import(`pages/${modulePath}/${pagePath}`)\n .then((Module) => {\n setPage(<Module.default {...props} />)\n })\n .catch(() => {\n throw new Error(`Couldn't find the page`)\n })\n }, [])\n return (\n <I18nextProvider i18n={i18next}>\n <ConfigProvider {...antdConfigProps} >\n <QueryClientProvider client={queryClient}>\n {Page}\n </QueryClientProvider>\n </ConfigProvider>\n </I18nextProvider>\n )\n}\n\nexport default App","/* eslint-disable */\n//@ts-nocheck\nimport React, {useState, useRef, useCallback, useEffect} from 'react'\nimport { theme, Layout, Spin, ConfigProvider, Tour } from 'antd';\nimport enUS from 'antd/locale/en_US';\nimport arEG from 'antd/locale/ar_EG';\nimport SideMenu from 'components/layout/SideMenu';\nimport lightTheme from 'themes/light.json';\nimport Portal from 'components/layout/Portal';\nimport QLayoutContext from 'contexts/Layout';\nimport type { ItemData } from 'types/layout';\nimport {I18nextProvider, initReactI18next} from \"react-i18next\";\nimport i18next from \"i18next\";\nimport ReactGA from \"react-ga4\";\nimport GAMap from 'tokens/GAMap.json';\nimport Global from 'types/modules/global';\n\nimport QFooter from 'components/layout/Footer';\nimport QHeader from 'components/layout/Header';\nimport QLogo from 'components/layout/Logo';\nimport { useIntro } from 'hooks/layout';\nimport { localeMapValue } from 'types/layout';\n\nconst {Sider, Content} = Layout;\nconst {useToken} = theme;\nconst {components, ...globalTokens} = lightTheme;\n\ninterface LayoutProps {\n sideMenuData: ItemData[];\n isMobileRequest: boolean;\n currentActiveItem: string;\n currentActiveMenu: string;\n comments: {\n viewAllPath: string;\n lastComments: Record<string, any>[];\n },\n tasks: {\n viewAllPath: string,\n lastTasks: Record<string, any>[];\n },\n currentUser: {\n label: string;\n href: string;\n }\n organizationName: string;\n isOnBoard: boolean;\n canSendSuggestions: boolean;\n}\n\ni18next\n .use(initReactI18next)\n .init({\n resources: {\n [window.I18n.locale]: {\n translation: window.I18n\n }\n },\n lng: window.I18n.locale\n})\n\n\nconst localeMap = new Map<string, localeMapValue>([\n ['en', {locale: enUS, dir: 'ltr', fontFamily: globalTokens.fontFamily}],\n ['ar', {locale: arEG, dir: 'rtl', fontFamily: 'Cairo'}]\n])\n\nglobalTokens.fontFamily = localeMap.get(i18next.language)?.fontFamily;\n\n\n\n\nconst LayoutPage = () => {\n const { token } = useToken();\n const [collapsed, setCollapsed] = useState(false);\n const [collapsedWidth, setCollapsedWidth] = useState(80);\n const [siderWidth, setSiderWidth] = useState<string | number>(300);\n const [mobileStyles, setMobileStyles] = useState({});\n const [logoURL, setLogoURL] = useState('qoyodWLogo');\n const [broken, setBroken] = useState(false);\n\n const intro = useIntro(window.location.pathname);\n const loaderRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if(broken) {\n setMobileStyles({top: 64, height: `calc(100vh - 64px)`})\n } else {\n setMobileStyles({})\n }\n }, [broken])\n\n useEffect(() => {\n try {\n ReactGA.initialize(process.env.FRONT_END_GA_ID);\n } catch(e) {\n console.error('Invalid GA');\n }\n }, [])\n\n useEffect(() => {\n\n setTimeout(() => {\n if(loaderRef.current) {\n document.querySelector('.wrapper').classList.remove('hide');\n loaderRef.current.remove();\n }\n }, 200)\n }, [])\n\n const triggerCollapse = useCallback(() => {\n setCollapsed(prevState => !prevState);\n if(!broken && !collapsed) {\n setLogoURL('qLogo');\n document.body.classList.add('sidebar-collapse')\n\n } else if(!broken && collapsed) {\n setLogoURL('qoyodWLogo')\n document.body.classList.remove('sidebar-collapse')\n }\n }, [collapsed, broken])\n\n return (\n <Layout>\n <Portal Component={\n <Layout style={{position: 'fixed', zIndex: 1000, width: '100%', height: 0}}>\n <Sider\n style={{height: '100vh', maxHeight: '100vh', overflow: 'auto', backgroundColor: token.colorPrimary, ...mobileStyles}}\n breakpoint=\"lg\"\n collapsedWidth={collapsedWidth}\n width={siderWidth}\n onBreakpoint={(broken) => {\n setBroken(broken);\n if(broken) {\n setCollapsedWidth(0);\n setCollapsed(true);\n setSiderWidth('100%')\n setLogoURL('qoyodLogo');\n } else {\n setCollapsedWidth(80);\n setSiderWidth(300);\n if(collapsed) {\n setLogoURL('qLogo')\n document.body.classList.add('sidebar-collapse')\n } else {\n setLogoURL('qoyodWLogo');\n document.body.classList.remove('sidebar-collapse')\n }\n }\n }}\n trigger={null}\n collapsible\n collapsed={collapsed}\n >\n {broken? null : <QLogo logoURL={logoURL} logoHeight={'50%'} />}\n <SideMenu startIntro={() => {\n intro.setOpen(true);\n ReactGA.event({\n category: GAMap.showMeHow.CATEGORY,\n action: GAMap.showMeHow[window.location.pathname]\n });}}\n collapsed={collapsed}\n broken={broken}\n />\n </Sider>\n <Layout>\n <QHeader broken={broken} logoURL={logoURL} startIntro={() => intro.setOpen(true)} collapsed={collapsed} triggerCollapse={triggerCollapse} />\n </Layout>\n </Layout>\n\n } htmlRoot=\"portal__sider_header\"/>\n\n <Portal Component={\n <QFooter broken={broken} />\n } htmlRoot=\"portal__footer\"/>\n\n <Portal Component={\n <Layout ref={loaderRef}>\n <Content style={{background: token.colorBgContainer, height: '100vh', width: '100vw', display: 'flex', justifyContent: 'center', alignItems: 'center'}}>\n <Spin size=\"large\" />\n </Content>\n </Layout>\n } htmlRoot=\"portal__loader\" />\n <Tour open={intro.open} onClose={() => intro.setOpen(false)} steps={intro.steps} scrollIntoViewOptions={{block: 'center'}} />\n </Layout>\n )\n}\n\nexport default ({sideMenuData, currentActiveItem, currentActiveMenu, isMobileRequest, currentUser, organizationName, comments, tasks, isOnBoard, canSendSuggestions, showReferral}: LayoutProps) => (\n <ConfigProvider theme={{components, token: globalTokens}} locale={localeMap.get(i18next.language)?.locale} direction={localeMap.get(i18next.language)?.dir}>\n <QLayoutContext.Provider value={{sideMenuData, currentActiveItem, currentActiveMenu, isMobileRequest, currentUser, organizationName, comments, tasks, isOnBoard, canSendSuggestions, showReferral}}>\n <I18nextProvider i18n={i18next}>\n <LayoutPage />\n </I18nextProvider>\n </QLayoutContext.Provider>\n </ConfigProvider>\n);\n/* eslint-enable */\n","import { useTranslation } from 'react-i18next'\nimport QServiceLayout from 'components/layout/QServiceLayout';\nimport { Row, Col, Typography, Flex }from 'antd';\nimport ServiceRequestButton from 'hooks/additional_services';\n\nconst { Title, Paragraph } = Typography;\n\nexport const useBreadCrumbData = () => {\n const { t } = useTranslation();\n return [\n {\n title: t('activerecord.attributes.layout.professional_services'),\n },\n {\n title: t('activerecord.attributes.layout.balance_entries'),\n },\n ]\n}\n\nconst BalanceEntries = () => {\n const { t } = useTranslation();\n const breadCrumbData = useBreadCrumbData();\n \n return (\n <QServiceLayout title={t('activerecord.attributes.layout.balance_entries')} actionBtns={null} breadCrumbData={breadCrumbData} >\n <Row gutter={[32, 32]}>\n <Col md={12}>\n <Flex vertical justify='center' style={{ height: '100%' }}>\n <Title level={4}>{t('activerecord.attributes.professional_services.balance_entries.title')}</Title>\n <Paragraph style={{ textAlign: 'justify' }}>\n {t('activerecord.attributes.professional_services.balance_entries.description')}\n </Paragraph>\n <Paragraph style={{ textAlign: 'justify' }}>\n {t('activerecord.attributes.professional_services.balance_entries.key_benefits')}\n </Paragraph>\n <ServiceRequestButton\n serviceType=\"Open Balance Entries\"\n title={t('activerecord.attributes.professional_services.balance_entries.title')}\n actionLabel={t('activerecord.attributes.professional_services.balance_entries.action')}\n successMessage={t(\"activerecord.attributes.vat_services.setup.request_successfully_submitted\")}\n description={t(\"activerecord.attributes.vat_services.setup.request_submitted_description\")}\n />\n </Flex>\n </Col>\n </Row>\n </QServiceLayout>\n )\n}\n\nexport default BalanceEntries","import { useTranslation } from 'react-i18next'\nimport QServiceLayout from 'components/layout/QServiceLayout';\nimport { Row, Col, Typography, Flex, Divider } from 'antd';\nimport Poster from 'components/tenant/additional_services/Poster';\nimport PosterSrc from 'assets/images/bookkeeping_poster.jpg'\nimport { bookkeepingInfoItems } from 'tokens/additional_services';\nimport InfoItem from 'components/tenant/additional_services/InfoItem';\nimport QTahseelLogo from 'assets/logos/QTahseel Logo.png';\nimport ServiceRequestButton from 'hooks/additional_services';\n\nconst { Title, Paragraph } = Typography;\n\nexport const useBreadCrumbData = () => {\n const { t } = useTranslation();\n return [\n {\n title: t('activerecord.attributes.layout.professional_services'),\n },\n {\n title: t('activerecord.attributes.layout.bookkeeping'),\n },\n ]\n}\n\nconst BookKeeping = () => {\n const { t } = useTranslation();\n const breadCrumbData = useBreadCrumbData();\n \n return (\n <QServiceLayout title={t('activerecord.attributes.layout.bookkeeping')} actionBtns={null} breadCrumbData={breadCrumbData} >\n <Row gutter={[32, 32]}>\n <Col md={12}>\n <Flex vertical justify='center' style={{ height: '100%' }}>\n <img src={QTahseelLogo} width={\"50%\"} />\n <Title level={4}>{t('activerecord.attributes.professional_services.bookkeeping.title')}</Title>\n <Paragraph style={{ textAlign: 'justify' }}>\n {t('activerecord.attributes.professional_services.bookkeeping.description')}\n </Paragraph>\n <ServiceRequestButton\n serviceType=\"Bookkeeping\"\n title={t('activerecord.attributes.professional_services.bookkeeping.title')}\n actionLabel={t('activerecord.attributes.professional_services.bookkeeping.action')}\n successMessage={t(\"activerecord.attributes.vat_services.setup.request_successfully_submitted\")}\n description={t(\"activerecord.attributes.vat_services.setup.request_submitted_description\")}\n />\n </Flex>\n </Col>\n <Col md={12}>\n <Poster src={PosterSrc} />\n </Col>\n </Row>\n <Divider />\n <Row gutter={[32, 32]}>\n {bookkeepingInfoItems.map((item, idx) => (\n <InfoItem key={idx} title={`${idx + 1}. ${t(item.title)}`} content={t(item.content)} Icon={item.Icon} />\n ))}\n </Row>\n </QServiceLayout>\n )\n}\n\nexport default BookKeeping","import { useTranslation } from 'react-i18next'\nimport QServiceLayout from 'components/layout/QServiceLayout';\nimport { Row, Col, Typography, Flex, Divider } from 'antd';\nimport { cleanupInfoItems } from 'tokens/additional_services';\nimport InfoItem from 'components/tenant/additional_services/InfoItem';\nimport ServiceRequestButton from 'hooks/additional_services';\n\nconst { Title, Paragraph } = Typography;\n\nexport const useBreadCrumbData = () => {\n const { t } = useTranslation();\n return [\n {\n title: t('activerecord.attributes.layout.professional_services'),\n },\n {\n title: t('activerecord.attributes.layout.cleanup_service'),\n },\n ]\n}\n\nconst Cleanup = () => {\n const { t } = useTranslation();\n const breadCrumbData = useBreadCrumbData();\n return (\n <QServiceLayout title={t('activerecord.attributes.layout.cleanup_service')} actionBtns={null} breadCrumbData={breadCrumbData} >\n <Row gutter={[32, 32]}>\n <Col md={12}>\n <Flex vertical justify='center' style={{ height: '100%' }}>\n <Title level={4}>{t('activerecord.attributes.professional_services.cleanup.title')}</Title>\n <Paragraph style={{ textAlign: 'justify' }}>\n {t('activerecord.attributes.professional_services.cleanup.description')}\n </Paragraph>\n <ServiceRequestButton\n serviceType=\"Cleanup\"\n title={t('activerecord.attributes.professional_services.cleanup.title')}\n actionLabel={t('activerecord.attributes.professional_services.cleanup.action')}\n successMessage={t(\"activerecord.attributes.vat_services.setup.request_successfully_submitted\")}\n description={t(\"activerecord.attributes.vat_services.setup.request_submitted_description\")}\n />\n </Flex>\n </Col>\n </Row>\n <Divider />\n <Row gutter={[32, 32]}>\n {cleanupInfoItems.map((item, idx) => (\n <InfoItem key={idx} title={`${idx + 1}. ${t(item.title)}`} content={t(item.content)} Icon={item.Icon} />\n ))}\n </Row>\n </QServiceLayout>\n )\n}\n\nexport default Cleanup","import { useTranslation } from \"react-i18next\";\nimport QServiceLayout from \"components/layout/QServiceLayout\";\nimport { Row, Col, Typography, Flex, Divider, List } from \"antd\";\nimport { consultationServiceInfoItems, consultations } from \"tokens/additional_services\";\nimport InfoItem from \"components/tenant/additional_services/InfoItem\";\nimport ServiceRequestButton from \"hooks/additional_services\";\n\nconst { Title, Paragraph, Text } = Typography;\n\nexport const useBreadCrumbData = () => {\n const { t } = useTranslation();\n return [\n {\n title: t(\"activerecord.attributes.layout.professional_services\"),\n },\n {\n title: t(\"activerecord.attributes.layout.consultation_service\"),\n },\n ];\n};\n\nconst ConsultationService = () => {\n const { t } = useTranslation();\n const breadCrumbData = useBreadCrumbData();\n\n return (\n <QServiceLayout\n title={t(\"activerecord.attributes.layout.consultation_service\")}\n actionBtns={null}\n breadCrumbData={breadCrumbData}\n >\n <Row gutter={[32, 32]}>\n <Col md={12}>\n <Flex vertical justify=\"center\" style={{ height: \"100%\" }}>\n <Title level={4}> {t(\"activerecord.attributes.professional_services.consultation_service.title\")}</Title>\n <Paragraph style={{ textAlign: \"justify\" }}>\n <Row gutter={[32, 32]}>\n <Col xs={24}>\n <Text>{t(\"activerecord.attributes.professional_services.consultation_service.description\")}</Text>\n <List dataSource={consultations} renderItem={(item) => (\n <List.Item style={{ padding: 0, border: \"none\" }}>\n <Text>- {t(item.title)}</Text>\n </List.Item>\n )}\n />\n <Paragraph style={{ marginTop: \"16px\" }}>\n {t(\"activerecord.attributes.professional_services.consultation_service.footer\")}\n </Paragraph>\n <ServiceRequestButton\n serviceType=\"Consulting\"\n title={t('activerecord.attributes.professional_services.consultation_service.title')}\n actionLabel={t('activerecord.attributes.professional_services.consultation_service.action')}\n successMessage={t(\"activerecord.attributes.vat_services.setup.request_successfully_submitted\")}\n description={t(\"activerecord.attributes.vat_services.setup.request_submitted_description\")}\n />\n </Col>\n </Row>\n </Paragraph>\n </Flex>\n </Col>\n </Row>\n <Divider />\n <Row gutter={[32, 32]}>\n {consultationServiceInfoItems.map((item, idx) => (\n <InfoItem key={idx} title={` ${t(item.title)}`} content={t(item.content)} Icon={item.Icon} />\n ))}\n </Row>\n </QServiceLayout>\n );\n};\n\nexport default ConsultationService;\n","import { useTranslation } from 'react-i18next'\nimport QServiceLayout from 'components/layout/QServiceLayout';\nimport { Row, Col, Typography, Flex ,Divider} from 'antd';\nimport {invoiceDesignInfoItems} from 'tokens/additional_services';\nimport InfoItem from 'components/tenant/additional_services/InfoItem';\nimport ServiceRequestButton from 'hooks/additional_services';\n\nconst { Title, Paragraph } = Typography;\n\nexport const useBreadCrumbData = () => {\n const { t } = useTranslation();\n return [\n {\n title: t('activerecord.attributes.layout.professional_services'),\n },\n {\n title: t('activerecord.attributes.layout.invoice_design'),\n },\n ]\n}\n\nconst InvoiceDesign = () => {\n const { t } = useTranslation();\n const breadCrumbData = useBreadCrumbData();\n \n return (\n <QServiceLayout title={t('activerecord.attributes.layout.invoice_design')} actionBtns={null} breadCrumbData={breadCrumbData} >\n <Row gutter={[32, 32]}>\n <Col md={12}>\n <Flex vertical justify='center' style={{ height: '100%' }}>\n <Title level={4}>{t('activerecord.attributes.professional_services.invoice_design.title')}</Title>\n <Paragraph style={{ textAlign: 'justify' }}>\n {t('activerecord.attributes.professional_services.invoice_design.description')}\n </Paragraph>\n <ServiceRequestButton\n serviceType=\"Invoice Design\"\n title={t('activerecord.attributes.professional_services.invoice_design.title')}\n actionLabel={t('activerecord.attributes.professional_services.invoice_design.action')}\n successMessage={t(\"activerecord.attributes.vat_services.setup.request_successfully_submitted\")}\n description={t(\"activerecord.attributes.vat_services.setup.request_submitted_description\")}\n />\n </Flex>\n </Col>\n </Row>\n <Divider />\n <Row gutter={[32, 32]}>\n {invoiceDesignInfoItems.map((item, idx) => (\n <InfoItem key={idx} title={` ${t(item.title)}`} content={t(item.content)} Icon={item.Icon} />\n ))}\n </Row>\n </QServiceLayout>\n )\n}\n\nexport default InvoiceDesign","import { useTranslation } from 'react-i18next'\nimport QServiceLayout from 'components/layout/QServiceLayout';\nimport { Row, Col, Typography, Flex, Divider } from 'antd';\nimport { setupInfoItems } from 'tokens/additional_services';\nimport InfoItem from 'components/tenant/additional_services/InfoItem';\nimport ServiceRequestButton from 'hooks/additional_services';\n\nconst { Title, Paragraph } = Typography;\n\nexport const useBreadCrumbData = () => {\n const { t } = useTranslation();\n return [\n {\n title: t('activerecord.attributes.layout.professional_services'),\n },\n {\n title: t('activerecord.attributes.layout.setup_service'),\n },\n ]\n}\n\nconst Setup = () => {\n const { t } = useTranslation();\n const breadCrumbData = useBreadCrumbData();\n \n return (\n <QServiceLayout title={t('activerecord.attributes.layout.setup_service')} actionBtns={null} breadCrumbData={breadCrumbData}>\n <Row gutter={[32, 32]}>\n <Col md={12}>\n <Flex vertical justify='center' style={{ height: '100%' }}>\n <Title level={4}>{t('activerecord.attributes.professional_services.setup.title')}</Title>\n <Paragraph style={{ textAlign: 'justify' }}>\n {t('activerecord.attributes.professional_services.setup.description')}\n </Paragraph>\n <ServiceRequestButton\n serviceType=\"Setup\"\n title={t('activerecord.attributes.professional_services.setup.title')}\n actionLabel={t('activerecord.attributes.professional_services.setup.action')}\n successMessage={t(\"activerecord.attributes.vat_services.setup.request_successfully_submitted\")}\n description={t(\"activerecord.attributes.vat_services.setup.request_submitted_description\")}\n />\n </Flex>\n </Col>\n </Row>\n <Divider />\n <Row gutter={[32, 32]}>\n {setupInfoItems.map((item, idx) => (\n <InfoItem key={idx} title={`${idx + 1}. ${t(item.title)}`} content={t(item.content)} Icon={item.Icon} />\n ))}\n </Row>\n </QServiceLayout>\n )\n}\n\nexport default Setup","import { useTranslation } from 'react-i18next'\nimport QServiceLayout from 'components/layout/QServiceLayout';\nimport { Row, Col, Typography, Flex, Divider } from 'antd';\nimport { trainingInfoItems } from 'tokens/additional_services';\nimport InfoItem from 'components/tenant/additional_services/InfoItem';\nimport ServiceRequestButton from 'hooks/additional_services';\n\nconst { Title, Paragraph } = Typography;\n\nexport const useBreadCrumbData = () => {\n const { t } = useTranslation();\n return [\n {\n title: t('activerecord.attributes.layout.professional_services'),\n },\n {\n title: t('activerecord.attributes.layout.training_service'),\n },\n ]\n}\n\nconst Training = () => {\n const { t } = useTranslation();\n const breadCrumbData = useBreadCrumbData();\n \n return (\n <QServiceLayout title={t('activerecord.attributes.layout.training_service')} actionBtns={null} breadCrumbData={breadCrumbData}>\n <Row gutter={[32, 32]}>\n <Col md={12}>\n <Flex vertical justify='center' style={{ height: '100%' }}>\n <Title level={4}>{t('activerecord.attributes.professional_services.training.title')}</Title>\n <Paragraph style={{ textAlign: 'justify' }}>\n {t('activerecord.attributes.professional_services.training.description')}\n </Paragraph>\n <ServiceRequestButton\n serviceType=\"Training\"\n title={t('activerecord.attributes.professional_services.training.title')}\n actionLabel={t('activerecord.attributes.professional_services.training.action')}\n successMessage={t(\"activerecord.attributes.vat_services.setup.request_successfully_submitted\")}\n description={t(\"activerecord.attributes.vat_services.setup.request_submitted_description\")}\n />\n </Flex>\n </Col>\n </Row>\n <Divider />\n <Row gutter={[32, 32]}>\n {trainingInfoItems.map((item, idx) => (\n <InfoItem key={idx} title={`${idx + 1}. ${t(item.title)}`} content={t(item.content)} Icon={item.Icon} />\n ))}\n </Row>\n </QServiceLayout>\n )\n}\n\nexport default Training","import { useTranslation } from 'react-i18next'\nimport QServiceLayout from 'components/layout/QServiceLayout';\nimport { Row, Col, Typography, Flex ,Divider} from 'antd';\nimport {transferAccountsInfoItems} from 'tokens/additional_services';\nimport InfoItem from 'components/tenant/additional_services/InfoItem';\nimport ServiceRequestButton from 'hooks/additional_services';\n\nconst { Title, Paragraph } = Typography;\n\nexport const useBreadCrumbData = () => {\n const { t } = useTranslation();\n return [\n {\n title: t('activerecord.attributes.layout.professional_services'),\n },\n {\n title: t('activerecord.attributes.layout.transfer_accounts'),\n },\n ]\n}\n\nconst TransferAccounts = () => {\n const { t } = useTranslation();\n const breadCrumbData = useBreadCrumbData();\n \n return (\n <QServiceLayout title={t('activerecord.attributes.layout.transfer_accounts')} actionBtns={null} breadCrumbData={breadCrumbData} >\n <Row gutter={[32, 32]}>\n <Col md={12}>\n <Flex vertical justify='center' style={{ height: '100%' }}>\n <Title level={4}>{t('activerecord.attributes.professional_services.transfer_accounts.title')}</Title>\n <Paragraph style={{ textAlign: 'justify' }}>\n {t('activerecord.attributes.professional_services.transfer_accounts.description')}\n </Paragraph>\n <ServiceRequestButton\n serviceType=\"Transfer Accounts\"\n title={t('activerecord.attributes.professional_services.transfer_accounts.title')}\n actionLabel={t('activerecord.attributes.professional_services.transfer_accounts.action')}\n successMessage={t(\"activerecord.attributes.vat_services.setup.request_successfully_submitted\")}\n description={t(\"activerecord.attributes.vat_services.setup.request_submitted_description\")}\n />\n </Flex>\n </Col>\n </Row>\n <Divider />\n <Row gutter={[32, 32]}>\n {transferAccountsInfoItems.map((item, idx) => (\n <InfoItem key={idx} title={` ${t(item.title)}`} content={t(item.content)} Icon={item.Icon} />\n ))}\n </Row>\n </QServiceLayout>\n )\n}\n\nexport default TransferAccounts","import { useTranslation } from 'react-i18next'\nimport QServiceLayout from 'components/layout/QServiceLayout';\nimport { Row, Col, Typography, Flex, Button, Divider } from 'antd';\nimport { vatInfoItems } from 'tokens/additional_services';\nimport InfoItem from 'components/tenant/additional_services/InfoItem';\n\nconst { Title, Paragraph } = Typography;\n\nexport const useBreadCrumbData = () => {\n const { t } = useTranslation();\n return [\n {\n title: t('activerecord.attributes.layout.professional_services'),\n },\n {\n title: t('activerecord.attributes.layout.vat_service'),\n },\n ]\n}\n\nconst VAT = () => {\n const { t } = useTranslation();\n const breadCrumbData = useBreadCrumbData();\n \n return (\n <QServiceLayout title={t('activerecord.attributes.layout.vat_service')} actionBtns={null} breadCrumbData={breadCrumbData}>\n <Row gutter={[32, 32]}>\n <Col md={12}>\n <Flex vertical justify='center' style={{ height: '100%' }}>\n <Title level={4}>{t('activerecord.attributes.professional_services.vat.title')}</Title>\n <Paragraph style={{ textAlign: 'justify' }}>\n {t('activerecord.attributes.professional_services.vat.description')}\n </Paragraph>\n <div>\n <Button type='primary' data-toggle=\"modal\" data-target=\"#vatModal_\">\n {t('activerecord.attributes.professional_services.vat.action')}\n </Button>\n </div>\n </Flex>\n </Col>\n </Row>\n <Divider />\n <Row gutter={[32, 32]}>\n {vatInfoItems.map((item, idx) => (\n idx === 1? (\n <Col md={12} key={idx}>\n <Flex vertical gap={8}>\n <Flex>\n {item.Icon && <item.Icon style={{ height: 48, width: 120 }}/>}\n </Flex>\n <Title level={5}>{idx + 1}. {t(item.title)}</Title>\n <Paragraph style={{ textAlign: 'justify' }}>{t(item.content)}</Paragraph>\n </Flex>\n </Col>\n ) : (\n <InfoItem key={idx} title={`${idx + 1}. ${t(item.title)}`} content={t(item.content)} Icon={item.Icon} />\n )\n ))}\n </Row>\n </QServiceLayout>\n )\n}\n\nexport default VAT","import { useTranslation } from 'react-i18next'\nimport QServiceLayout from 'components/layout/QServiceLayout';\nimport { Row, Col, Typography, Flex } from 'antd';\n\nconst { Title, Paragraph } = Typography;\n\nexport const useBreadCrumbData = () => {\n const { t } = useTranslation();\n return [\n {\n title: t('activerecord.attributes.layout.professional_services'),\n },\n {\n title: t('activerecord.attributes.layout.qoyod_academy'),\n },\n ]\n}\n\nconst QoyodAcademy = () => {\n const { t } = useTranslation();\n const breadCrumbData = useBreadCrumbData();\n \n return (\n <QServiceLayout title={t('activerecord.attributes.layout.qoyod_academy')} actionBtns={null} breadCrumbData={breadCrumbData} >\n <Row gutter={[32, 32]}>\n <Col md={12}>\n <Flex vertical justify='center' style={{ height: '100%' }}>\n <Title level={4}>{t('status.soon')}..</Title>\n <Paragraph style={{ textAlign: 'justify' }}>\n {t('activerecord.attributes.professional_services.qoyod_academy.description')}\n </Paragraph>\n </Flex>\n </Col>\n </Row>\n </QServiceLayout>\n )\n}\n\nexport default QoyodAcademy","//@ts-nocheck\nimport BackButton from \"components/layout/BackButton\";\nimport QPageLayout from \"components/layout/QPageLayout\";\nimport React, { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { message, theme } from \"antd\";\nimport AccountBudgeting from \"components/tenant/budgets/AccountBudgeting\";\nimport ItemBudgeting from \"components/tenant/budgets/ItemBudgeting\";\nimport { useQuery } from \"react-query\";\nimport { getSingleBudget } from \"api/budgets\";\nimport dayjs, { Dayjs } from \"dayjs\";\n\nexport const useBreadCrumbData = () => {\n const { t, i18n } = useTranslation();\n return [\n {\n title: t(\"dashboard.quick_actions.accounting_header\"),\n },\n {\n title: <a href=\"/tenant/budgets\">{t(\"budgets.name\")}</a>,\n },\n {\n title: t(\"budgets.select_budget\"),\n },\n ];\n};\n\nconst Edit = () => {\n const url = window.location.href;\n const parts = url.split(\"/\");\n const id = parts[parts.length - 2];\n const { t, i18n } = useTranslation();\n const breadCrumbData = useBreadCrumbData();\n const [messageApi, contextHolder] = message.useMessage();\n const [budget, setBudget] = useState({});\n const [hasValues, setHasValues] = useState(false);\n const { data, isLoading } = useQuery({\n queryKey: [\"budget_details\", id],\n queryFn: () => getSingleBudget(id),\n onSuccess: (data) => {\n if (data.budgetings[0].budgeting_values) {\n setHasValues(true);\n }\n let resources = data.budgetings.map((el) => {\n return el.resource_id;\n });\n setBudget({\n code: data.code,\n description: data.description || \"\",\n name_ar: data.name_ar,\n name_en: data.name_en,\n fiscal_year: dayjs(data.fiscal_year),\n accounts_ids: resources,\n category_ids: data.kind == \"products_budget\" ? resources : [],\n asset_classification_ids: data.kind == \"assets_budget\" ? resources : [],\n base: data.base || null,\n kind: data.kind || null,\n transaction_type: data.transaction_type || null,\n dimensions: data.dimensions.map((el) => {\n return {\n selectedDimension: {\n label:\n i18n.language == \"en\"\n ? `${el.code}- ${el.name_en}`\n : `${el.code}- ${el.name_ar}`,\n value: el.id,\n name_ar: el.name_ar,\n name_en: el.name_en,\n code: el.code,\n },\n };\n }),\n });\n },\n });\n return (\n <QPageLayout\n title={t(\"budgets.edit.name\")}\n actionBtns={<BackButton />}\n breadCrumbData={breadCrumbData}\n >\n {!isLoading && (\n <>\n {data?.kind == \"accounts_budget\" ? (\n <AccountBudgeting\n type={\"edit\"}\n budget={budget}\n id={id}\n hasValues={hasValues}\n />\n ) : (\n <ItemBudgeting\n type={\"edit\"}\n budget={budget}\n id={id}\n hasValues={hasValues}\n />\n )}\n </>\n )}\n </QPageLayout>\n );\n};\n\nexport default Edit;\n","//@ts-nocheck\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport QPageLayout from \"components/layout/QPageLayout\";\nimport BudgetTable from \"components/tenant/budgets/BudgetTable\";\nimport BudgetActionButton from \"components/tenant/budgets/BudgetActionButton\";\nimport { getBudgetsPermissions } from \"api/budgets\";\nimport { useQuery } from \"react-query\";\n\nexport const useBreadCrumbData = () => {\n const { t } = useTranslation();\n return [\n {\n title: <a href=\"/tenant/budgets\">{t(\"budgets.index.index_title\")}</a>,\n },\n {\n title: t(\"budgets.name\"),\n },\n ];\n};\n\nconst Budget = () => {\n const { data, isLoading, refetch } = useQuery({\n queryKey: [\"budgets_permissions\"],\n queryFn: () => getBudgetsPermissions(),\n });\n\n const { t } = useTranslation();\n const breadCrumbData = useBreadCrumbData();\n return (\n <QPageLayout\n title={t(\"budgets.name\")}\n actionBtns={<BudgetActionButton permissions={!isLoading && data} />}\n breadCrumbData={breadCrumbData}\n >\n <BudgetTable permissions={!isLoading && data} />\n </QPageLayout>\n );\n};\n\nexport default Budget;\n","//@ts-nocheck\nimport BackButton from \"components/layout/BackButton\";\nimport QPageLayout from \"components/layout/QPageLayout\";\nimport React, { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { message, Typography, Flex, theme, Tooltip,Badge } from \"antd\";\nimport {\n CodeSandboxOutlined,\n CopyOutlined,\n} from \"@ant-design/icons\";\nimport BudgetCard from \"components/tenant/budgets/BudgetCard\";\nimport AccountBudgeting from \"components/tenant/budgets/AccountBudgeting\";\nimport ItemBudgeting from \"components/tenant/budgets/ItemBudgeting\";\nconst { useToken } = theme;\n\nexport const useBreadCrumbData = () => {\n const { t } = useTranslation();\n return [\n {\n title: t(\"dashboard.quick_actions.accounting_header\"),\n },\n {\n title: <a href=\"/tenant/budgets\">{t(\"budgets.name\")}</a>,\n },\n {\n title: t(\"budgets.select_budget\"),\n },\n ];\n};\n\nconst New = () => {\n const { t } = useTranslation();\n const { token } = useToken();\n const breadCrumbData = useBreadCrumbData();\n const { Text } = Typography;\n type BudgetType = {\n id: number;\n name: string;\n icon: any;\n text: string;\n description: string;\n disabled?: boolean;\n };\n const [budgetTypes, setBudgetTypes] = useState<BudgetType[]>([\n {\n id: 2,\n name: \"accounts\",\n icon: <CodeSandboxOutlined style={{ fontSize: \"40px\" }} />,\n text: t(\"budgets.accounts_budgeting.name\"),\n description: t(\"budgets.accounts_budgeting.description\"),\n },\n {\n id: 1,\n name: \"items\",\n icon: <CopyOutlined style={{ fontSize: \"40px\" }} />,\n text: t(\"budgets.item_budgeting.name\"),\n description: t(\"budgets.item_budgeting.description\"),\n disabled: true,\n },\n ]);\n\n const [selectedBudget, setSelectedBudget] = useState<string | null>(null);\n\n const headerStyle = {\n color: token.colorPrimary,\n fontSize: \"24px\",\n };\n\n return (\n <QPageLayout\n title={t(\"budgets.new\")}\n actionBtns={<BackButton />}\n breadCrumbData={breadCrumbData}\n >\n <>\n {!selectedBudget ? (\n <Flex\n gap={\"64px\"}\n style={{ minHeight: \"60vh\" }}\n justify=\"center\"\n align=\"center\"\n vertical\n >\n <Text style={headerStyle}>{t(\"budgets.select_budget\")}</Text>\n <Flex justify=\"center\" align=\"center\" gap={\"42px\"} wrap={\"wrap\"}>\n {budgetTypes.map((el, i) => {\n return (\n <Tooltip placement=\"bottom\" title={el.description} key={el.id}>\n <Flex\n style={{\n cursor: el.disabled ? \"not-allowed\" : \"pointer\",\n position: \"relative\",\n flexDirection: \"column\",\n alignItems: \"center\",\n }}\n onClick={() => {\n if (!el.disabled) {\n setSelectedBudget(el.name);}\n }}\n >\n {el.disabled ? (\n <Badge.Ribbon text={t(\"budgets.status.soon\")} color=\"blue\">\n <Flex\n style={{\n opacity: 0.5,\n }}\n >\n <BudgetCard text={el.text} icon={el.icon}></BudgetCard>\n </Flex>\n </Badge.Ribbon>\n ) : (\n <BudgetCard text={el.text} icon={el.icon}></BudgetCard>\n )}\n </Flex>\n </Tooltip>\n );\n })}\n </Flex>\n </Flex>\n ) : selectedBudget == \"accounts\" ? (\n <AccountBudgeting />\n ) : (\n <ItemBudgeting />\n )}\n </>\n </QPageLayout>\n );\n};\n\nexport default New;\n","//@ts-nocheck\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport QPageLayout from \"components/layout/QPageLayout\";\nimport BudgetTable from \"components/tenant/budgets/BudgetTable\";\nimport BudgetActionButton from \"components/tenant/budgets/BudgetActionButton\";\nimport { getBudgetsPermissions } from \"api/budgets\";\nimport { useQuery } from \"react-query\";\nimport BudgetDetails from \"components/tenant/budgets/BudgetDetails\";\n\nexport const useBreadCrumbData = () => {\n const { t } = useTranslation();\n return [\n {\n title: <a href=\"/tenant/budgets\">{t(\"budgets.index.index_title\")}</a>,\n },\n {\n title: t(\"budgets.show.name\"),\n },\n ];\n};\n\nconst Budget = () => {\n const { data, isLoading, refetch } = useQuery({\n queryKey: [\"budgets_permissions\"],\n queryFn: () => getBudgetsPermissions(),\n });\n\n const { t } = useTranslation();\n const breadCrumbData = useBreadCrumbData();\n return (\n <QPageLayout\n title={t(\"budgets.show.name\")}\n actionBtns={<></>}\n breadCrumbData={breadCrumbData}\n >\n <BudgetDetails permissions={!isLoading && data}/>\n </QPageLayout>\n );\n};\n\nexport default Budget;\n","import { useEffect, useState } from 'react';\nimport { Form, Input, Flex, Button, message, Select } from 'antd';\nimport { useTranslation } from 'react-i18next';\nimport i18next from 'i18next';\nimport QPageLayout from 'components/layout/QPageLayout';\nimport BackButton from 'components/layout/BackButton';\nimport axios from 'axios';\nimport { useMutation, useQuery } from 'react-query';\nimport { getDimension } from 'api/dimensions';\nimport { DimensionType, DimensionValue } from 'types/dimensions';\n\nexport const useBreadCrumbData = () => {\n const { t } = useTranslation();\n return [\n {\n title: t('activerecord.attributes.layout.settings'),\n },\n {\n title: <a href=\"/tenant/dimensions\">{t('activerecord.attributes.dimension.name')}</a>,\n },\n {\n title: t('activerecord.attributes.dimension_value.edit'),\n },\n ];\n};\n\nconst formItemLayout = {\n labelCol: {\n xs: { span: 24 },\n lg: { span: 4 },\n },\n wrapperCol: {\n xs: { span: 24 },\n lg: { span: 8 },\n },\n};\n\ninterface DimensionValueData extends DimensionValue {\n dimension: DimensionType;\n parentValue: DimensionValue;\n}\n\nconst EditDimensionValue = () => {\n const { t } = useTranslation();\n const [form] = Form.useForm();\n const [messageApi, contextHolder] = message.useMessage();\n const dimensionID = (/\\d+/.exec(location.pathname))?.[0];\n const valueID = (/\\/values\\/(\\d+)/.exec(location.pathname))?.[1];\n const [parentID, setParentID] = useState<'' | number>('');\n const breadCrumbData = useBreadCrumbData();\n const [initialData, setInitialData] = useState<DimensionValueData | null>(null);\n\n const dimensionValueQuery = useQuery<DimensionValue>({\n queryKey: [\"parentID\", parentID],\n queryFn: async () => {\n const { data } = await axios.get<DimensionValue>(`/tenant/dimensions/${dimensionID}/values/${valueID}.json`);\n return data;\n }\n });\n\n const dimensionQuery = useQuery<DimensionType>({\n queryKey: [\"dimension\", dimensionID],\n queryFn: getDimension.bind(null, { dimensionID: dimensionID! })\n })\n \n const dimensionParentValuesQuery = useQuery<DimensionValue>({\n queryKey: [\"parentID\", parentID],\n queryFn: async () => {\n const { data } = await axios.get<DimensionValue>(`/tenant/dimensions/${dimensionID}/values/${parentID}.json`);\n return data;\n },\n enabled: Boolean(parentID)\n });\n\n useEffect(() => {\n if(dimensionValueQuery.isSuccess) {\n const { parent_id } = dimensionValueQuery.data as DimensionValueData;\n setParentID(parent_id ?? \"\");\n }\n }, [ dimensionValueQuery.data ])\n\n\n useEffect(() => {\n if(dimensionParentValuesQuery.isSuccess\n && dimensionQuery.isSuccess\n && dimensionValueQuery.isSuccess) {\n setInitialData({\n ...dimensionValueQuery.data,\n parentValue: {...dimensionParentValuesQuery.data}, \n dimension: {\n id: dimensionQuery.data?.id ?? 0,\n code: dimensionQuery.data?.code || \"\",\n name_en: dimensionQuery.data?.name_en || \"\",\n name_ar: dimensionQuery.data?.name_ar || \"\",\n description: dimensionQuery.data?.description || \"\",\n global: dimensionQuery.data?.global || false,\n },\n })\n }\n }, [ dimensionParentValuesQuery.isSuccess, dimensionQuery.isSuccess, dimensionValueQuery.isSuccess ])\n\n useEffect(() => {\n if(initialData) {\n form.setFieldsValue({\n dimension_name: i18next.language === 'en' ? initialData.dimension.name_en : initialData.dimension.name_ar,\n dimension_code: initialData.dimension.code,\n code: initialData.code,\n value_type: initialData.value_type,\n parent_id: initialData.parentValue.id,\n name_en: initialData.name_en,\n name_ar: initialData.name_ar\n })\n }\n }, [ initialData ])\n\n const mutation = useMutation({\n mutationFn: (values: DimensionValue) => {\n return axios.patch(`/tenant/dimensions/${dimensionID}/values/${valueID}.json`, values);\n },\n onSuccess: () => {\n window.location.href = `/tenant/dimensions`;\n },\n onError: () => {\n messageApi.open({\n type: 'error',\n content: t('forms.messages.error'),\n });\n },\n });\n\n return (\n <QPageLayout\n messageHolder={contextHolder}\n title={`${t('tooltip.edit')} ${initialData?.code} - ${i18next.language === 'en' ? initialData?.name_en : initialData?.name_ar}`}\n actionBtns={<BackButton />}\n breadCrumbData={breadCrumbData}\n >\n <Form\n labelWrap\n form={form}\n name=\"code\"\n onFinish={() => {\n const values = form.getFieldsValue() as DimensionValue;\n mutation.mutate(values);\n }}\n scrollToFirstError\n validateMessages={{\n required: t(\"activerecord.attributes.dimension.create_code.errors.required\") + \" ${label}\"\n }}\n {...formItemLayout}\n >\n <Form.Item\n name=\"dimension_name\"\n label={t(\"activerecord.attributes.dimension_value.dimension_code_name\")}\n rules={[\n {\n required: true\n }\n ]}\n >\n <Input disabled />\n </Form.Item>\n <Form.Item\n name=\"dimension_code\"\n label={t(\"activerecord.attributes.dimension_value.dimension_reference\")}\n rules={[\n {\n required: true\n }\n ]}\n >\n <Input disabled />\n </Form.Item>\n <Form.Item\n name=\"value_type\"\n label={t(\"activerecord.attributes.dimension_value.value_type\")}\n >\n <Select\n disabled\n options={[{ value: \"parent_value\", label: t(\"activerecord.attributes.dimension_value.value_types.parent_value\") }, { value: \"standalone\", label: t(\"activerecord.attributes.dimension_value.value_types.standalone\") }]}\n />\n </Form.Item>\n <Form.Item\n name=\"parent_id\"\n label={t(\"activerecord.attributes.dimension_value.parent_dimension_value\")}\n >\n <Select\n disabled\n options={[{ label: `${initialData?.parentValue.code} - ${i18next.language === 'en'? initialData?.parentValue.name_en : initialData?.parentValue.name_ar}`, value: initialData?.parentValue.id }]}\n />\n </Form.Item>\n <Form.Item\n name=\"code\"\n label={t(\"activerecord.attributes.dimension_value.id\")}\n >\n <Input disabled />\n </Form.Item>\n <Form.Item\n name=\"name_ar\"\n rules={[\n {\n required: true\n }\n ]}\n label={t(\"activerecord.attributes.dimension.create_code.name_ar\")}\n >\n <Input maxLength={25} />\n </Form.Item>\n <Form.Item\n name=\"name_en\"\n rules={[\n {\n required: true\n }\n ]}\n label={t(\"activerecord.attributes.dimension.create_code.name_en\")}\n >\n <Input maxLength={25} />\n </Form.Item>\n <Form.Item wrapperCol={{ xs: { offset: 0 }, lg: { offset: 12 } }}>\n <Flex gap=\"small\" justify='end'>\n <Button type=\"primary\" disabled={mutation.isLoading || mutation.isSuccess ? true : false} htmlType=\"submit\">\n {t(\"forms.buttons.save\")}\n </Button>\n <Button danger href={`/tenant/dimensions/${dimensionID}/values/`}>\n {t(\"forms.buttons.cancel\")}\n </Button>\n </Flex>\n </Form.Item>\n </Form>\n </QPageLayout>\n );\n};\n\nexport default EditDimensionValue;\n","import React, { useEffect, useRef, useState, FC } from 'react'\nimport { Button, Space, Table, TableProps, Flex, Typography, Modal, Tooltip} from 'antd'\nimport { useTranslation } from 'react-i18next'\nimport i18next from 'i18next';\nimport QPageLayout from 'components/layout/QPageLayout';\nimport { useMutation, useQuery } from 'react-query';\nimport { getDimension, getDimensionValues } from 'api/dimensions';\nimport { DimensionType, DimensionValue, DimensionValueResponse } from 'types/dimensions';\nimport { DeleteOutlined, PlusOutlined, PoweroffOutlined, EditOutlined} from '@ant-design/icons';\nimport { useDimensionPermissions } from 'hooks/dimensions';\nimport { Permissions } from 'types/app';\nimport { HookAPI } from 'antd/es/modal/useModal';\nimport axios, { AxiosError } from 'axios';\n\nconst { Text } = Typography;\n\nexport const useBreadCrumbData = (dimensionRecord: DimensionType) => {\n const { t } = useTranslation();\n return [\n {\n title: t('activerecord.attributes.layout.settings'),\n },\n {\n title: <a href=\"/tenant/dimensions\">{t('activerecord.attributes.dimension.name')}</a>,\n },\n {\n title: <a href={`/tenant/dimensions/${dimensionRecord?.id ?? ''}`}>{dimensionRecord?.code ?? ''}</a>,\n },\n {\n title: t('activerecord.attributes.dimension_value.name'),\n },\n ]\n}\n\nconst LOCALIZED_VALUES = new Map([['parent_value', 'activerecord.attributes.dimension_value.value_types.parent_value'], ['standalone', 'activerecord.attributes.dimension_value.value_types.standalone']])\n\nconst useColumns = ({ permissions, modal }: { permissions: Permissions, modal: HookAPI }): TableProps<DimensionValue>['columns'] => {\n const { t } = useTranslation();\n\n const procElements = useRef<Map<number | string, boolean>>(new Map());\n const mutation = useMutation({\n mutationKey: [\"updateActiveState\"],\n mutationFn: async (record: DimensionValue) => {\n const { dimension_id, id } = record;\n if(record.activated) {\n await axios.patch(`/tenant/dimensions/${dimension_id}/values/${id}/deactivate.json`)\n record.activated = false;\n } else {\n await axios.patch(`/tenant/dimensions/${dimension_id}/values/${id}/activate.json`)\n record.activated = true;\n } \n },\n onSettled(_data, _error, variables) {\n procElements.current.delete(variables.id); \n },\n })\n \n const handleDelete = (dimensionValue: DimensionValue, e: React.MouseEvent) => {\n e.preventDefault();\n const { id, dimension_id } = dimensionValue;\n modal.confirm({\n content: (\n <Flex vertical gap={16} justify='center' align='center'>\n <DeleteOutlined style={{color: \"#e13659\", fontSize: 40}} />\n <Text>{t(\"activerecord.attributes.dimension_value.index.actions.confirm_delete\")}</Text>\n </Flex>\n ),\n icon: null,\n okButtonProps: {danger: true},\n okText: t(\"forms.buttons.confirm\"),\n onOk: async () => {\n try {\n await axios.delete(`/tenant/dimensions/${dimension_id}/values/${id}.json`)\n window.location.reload();\n } catch(e) {\n const error = (e as AxiosError);\n if(error.response?.status === 422) {\n modal.info({\n content: (\n <Flex vertical gap={16} justify='center' align='center'>\n <DeleteOutlined style={{color: \"#e13659\", fontSize: 40}} />\n <Text>{t(\"activerecord.attributes.dimension_value.index.actions.delete_error\")}</Text>\n </Flex>\n ),\n icon: null,\n okText: t(\"forms.buttons.ok\")\n })\n }\n }\n }\n })\n \n }\n \n const handleActivate = (dimensionValue: DimensionValue, e: React.MouseEvent) => {\n e.preventDefault();\n modal.confirm({\n content: (\n <Flex vertical gap={16} justify='center' align='center'>\n <PoweroffOutlined style={{color: \"#e13659\", fontSize: 40}} />\n <div style={{ textAlign: 'center' }}>\n {\n dimensionValue.activated ? (\n <Text>{t(\"activerecord.attributes.dimension_value.status.pop_up_messages.confirm_deactivation\")}</Text>\n ) : (\n <Text>{t(\"activerecord.attributes.dimension_value.status.pop_up_messages.confirm_activation\")}</Text>\n )\n }\n </div>\n <div style={{ textAlign: 'center' }}>\n <Text>{t(\"activerecord.attributes.dimension_value.status.pop_up_messages.warning_message\")}</Text>\n </div>\n </Flex>\n ),\n icon: null,\n okButtonProps: {danger: true},\n okText: t(\"forms.buttons.confirm\"),\n onOk: () => {\n mutation.mutate(dimensionValue); \n procElements.current.set(dimensionValue.id, true);\n }\n })\n }\n \n return ([\n {\n title: t('activerecord.attributes.dimension.index.reference'),\n dataIndex: 'code',\n width: '20%'\n },\n {\n title: t('activerecord.attributes.dimension.index.name'),\n width: '20%',\n key: 'name',\n dataIndex: 'name',\n render: (_, record) => (\n i18next.language === 'en'? record.name_en : record.name_ar\n )\n },\n {\n title: t('activerecord.attributes.dimension_value.value_type'),\n width: '20%',\n dataIndex: 'value_type',\n render: (_, record) => {\n return t(LOCALIZED_VALUES.get(record.value_type) ?? '');\n }\n },\n {\n title: t('activerecord.attributes.dimension_value.status.title'),\n width: '20%',\n dataIndex: 'status',\n render: (_, record) => {\n return record.activated ? t('activerecord.attributes.dimension_value.status.active') : t('activerecord.attributes.dimension_value.status.inactive');\n }\n },\n {\n title: t('activerecord.attributes.dimension.index.actions.title'),\n width: '20%',\n key: 'actions',\n render: (_, record) => (\n <Space>\n {permissions?.write && (\n <Tooltip placement=\"top\" title={record.activated ? t('activerecord.attributes.dimension_value.status.deactivate') : t('activerecord.attributes.dimension_value.status.activate')}>\n <Button \n icon={<PoweroffOutlined />} \n type=\"primary\" \n disabled={mutation.isLoading && procElements.current.get(record.id)}\n onClick={ handleActivate.bind(null, record)}\n style={{ backgroundColor: record.activated ? 'darkred' : 'darkgreen' }}\n /> \n </Tooltip>\n )}\n {permissions?.write && (\n <Button href={`/tenant/dimensions/${record.dimension_id}/values/${record.id}/edit`} icon={<EditOutlined />} />\n )}\n {permissions?.delete && (\n <Button danger onClick={handleDelete.bind(null, record)} icon={<DeleteOutlined />} />\n )}\n\n </Space>\n )\n },\n ])\n}\n\nconst DimensionValueIndex: FC<{ id: number }> = ({ id }) => {\n \n const { t } = useTranslation();\n const [page, setPage] = useState(1);\n const fetchedValues = useRef<Map<number, number>>(new Map());\n const [data, setData] = useState<DimensionValue[]>([]);\n const [activeParent, setActiveParent] = useState(0);\n const [modal, modalContext] = Modal.useModal();\n const { permissions } = useDimensionPermissions();\n\n const dimensionQuery = useQuery<DimensionType>({\n queryKey: ['dimension'],\n queryFn: getDimension.bind(null, { dimensionID: String(id) }) \n })\n\n const breadCrumbData = useBreadCrumbData(dimensionQuery.data!);\n const columns = useColumns({ permissions:permissions!, modal });\n\n const rootDimensionValues = useQuery<DimensionValueResponse>(['rootDimensionValues', page], getDimensionValues.bind(null, { dimensionID: Number(id), page, parentID: null, cdType:'', type: '', valueID: '' }));\n\n const dimensionValues = useQuery<DimensionValueResponse>(['dimensionValues', activeParent], getDimensionValues.bind(null, { dimensionID: Number(id), page: 1, parentID: activeParent, cdType: '', type: '', valueID: '' }), {\n enabled: Boolean(activeParent)\n });\n\n\n useEffect(() => {\n if(rootDimensionValues.data) { \n const newData = rootDimensionValues.data.records.map(record => {\n fetchedValues.current.set(record.id, record.id);\n const row = {...record};\n if(record.value_type === 'parent_value') {\n row.children = [];\n }\n return row;\n })\n setData(newData);\n }\n }, [rootDimensionValues.data])\n\n useEffect(() => {\n if(Boolean(activeParent) && dimensionValues.data?.records?.length) {\n const newDataBranch = dimensionValues.data.records.map(record => {\n fetchedValues.current.set(record.id, activeParent);\n const row = {...record};\n if(record.value_type === 'parent_value') {\n row.children = [];\n }\n return row;\n })\n\n newDataBranch.sort((a, b) => b.value_type.localeCompare(a.value_type))\n \n let parentID: number | undefined = activeParent;\n \n const path: (number | undefined)[] = [parentID];\n \n while(parentID && parentID !== fetchedValues.current.get(parentID)) {\n parentID = fetchedValues.current.get(parentID);\n path.push(parentID);\n }\n path.reverse();\n setData(state => {\n let tmpData: DimensionValue[] = [...state];\n for(let i = 0; i < path.length; i++) {\n const id = path[i];\n const idx = tmpData.findIndex(record => record.id == id);\n if(i === path.length - 1) {\n tmpData[idx].children = newDataBranch;\n } else {\n tmpData = tmpData[idx]?.children ?? [];\n }\n }\n return [...state]\n })\n \n }\n }, [dimensionValues.data, activeParent])\n\n const handleExpandRow = (expanded: boolean, record: { id: number }) => {\n if(expanded) {\n setActiveParent(record.id);\n }\n }\n \n \n const actionButtons = (\n <Space>\n {permissions?.write && (\n <Button icon={<PlusOutlined />} type=\"primary\" href={`/tenant/dimensions/${id}/values/new`}>{t('activerecord.attributes.dimension.view.actions.add_dimension_value')}</Button>\n )}\n </Space>\n )\n\n \n return (\n <QPageLayout title={t('activerecord.attributes.dimension_value.index.title', { code: dimensionQuery.data?.code ?? '' })} actionBtns={actionButtons} breadCrumbData={breadCrumbData} >\n <Table\n expandable={{onExpand: handleExpandRow}}\n rowKey=\"id\"\n loading={rootDimensionValues.isLoading}\n columns={columns}\n dataSource={data ?? []}\n onChange={({current}) => { setPage(current ?? 0); setActiveParent(0) }}\n pagination={{total: rootDimensionValues.data?.pagination.total_entries ?? 0}}\n />\n {modalContext}\n </QPageLayout>\n )\n}\n\nexport default DimensionValueIndex\n","import { useEffect, useState } from 'react'\nimport { Form, Input, Flex, Button, message, Select } from 'antd'\nimport { useTranslation } from 'react-i18next'\nimport i18next from 'i18next';\nimport QPageLayout from 'components/layout/QPageLayout';\nimport BackButton from 'components/layout/BackButton';\nimport axios from 'axios';\nimport { useMutation, useQuery, useInfiniteQuery } from 'react-query';\nimport { getUnAssignedDimensionValues } from 'api/dimensions';\nimport { DimensionValueResponse, DimensionType, DimensionValue } from 'types/dimensions';\n\nexport const useBreadCrumbData = () => {\n const { t } = useTranslation();\n return [\n {\n title: t('activerecord.attributes.layout.settings'),\n },\n {\n title: <a href=\"/tenant/dimensions\">{t('activerecord.attributes.dimension.name')}</a>,\n },\n {\n title: t('activerecord.attributes.dimension_value.new'),\n },\n ]\n}\n\nconst formItemLayout = {\n labelCol: {\n xs: { span: 24 },\n lg: { span: 4 }\n \n },\n wrapperCol: {\n xs: { span: 24 },\n lg: { span: 8 },\n },\n};\n\ninterface ParentValue {\n label: string;\n value: number;\n}\nconst NewDimensionValue = () => {\n const { t } = useTranslation();\n const [ form ] = Form.useForm();\n const [messageApi, contextHolder] = message.useMessage();\n const [parentValues, setParentValues] = useState<ParentValue[]>([]);\n const dimensionID = (/\\d+/.exec(location.pathname))?.[0]\n const [isSelectingParent, setIsSelectingParent] = useState<boolean>(false);\n const [parentID, setParentID] = useState<string | null>(null);\n const breadCrumbData = useBreadCrumbData();\n \n const nextCodeQuery = useQuery(['nextCode', parentID], async () => (await axios.get<{next_code: string, dimension: DimensionType}>(`/tenant/dimensions/${dimensionID}/values/next_code.json?parent_id=${parentID}`)).data);\n\n const dimensionParentValuesQuery = useInfiniteQuery<DimensionValueResponse>(['parenDimensions'], getUnAssignedDimensionValues.bind(null, { dimensionID: dimensionID ?? '' }), {\n getNextPageParam: (lastPage) => lastPage.pagination.next_page,\n enabled: isSelectingParent\n })\n\nuseEffect(() => {\n if (dimensionParentValuesQuery.data) {\n const pages = dimensionParentValuesQuery.data.pages;\n const transformedParentValues: ParentValue[] = pages\n .flatMap((page: { records: DimensionValue[] }) =>\n page.records.map(record => ({ label: `${(record as {code:string}).code} - ${i18next.language === 'en'? (record as {name_en :string}).name_en : (record as {name_ar :string}).name_ar}`, value: (record as {id:number}).id }))\n );\n\n setParentValues(() => transformedParentValues);\n }\n}, [dimensionParentValuesQuery.data]);\n\n const mutation = useMutation({\n mutationFn: (values) => {\n return axios.post(`/tenant/dimensions/${dimensionID}/values.json`, values)\n },\n onSuccess: () => {\n window.go_back();\n },\n onError: () => {\n messageApi.open({\n type: 'error',\n content: t('forms.messages.error')\n });\n }\n })\n \n useEffect(() => {\n if(nextCodeQuery.data) {\n form.setFieldValue('code', nextCodeQuery.data.next_code);\n form.setFieldValue('dimension_name', i18next.language === 'en'\n ? (nextCodeQuery.data.dimension as { name_en: string }).name_en\n : (nextCodeQuery.data.dimension as { name_ar: string }).name_ar);\n form.setFieldValue('dimension_code', (nextCodeQuery.data.dimension as {code:string }).code);\n }\n }, [nextCodeQuery.data])\n \n return (\n <QPageLayout messageHolder={contextHolder} title={t('activerecord.attributes.dimension_value.new')} actionBtns={\n <BackButton />\n } breadCrumbData={breadCrumbData} >\n <Form\n labelWrap\n form={form}\n name=\"code\"\n onFinish={mutation.mutate}\n scrollToFirstError\n validateMessages={{\n required: t(\"activerecord.attributes.dimension.create_code.errors.required\") + \" ${label}\"\n }}\n {...formItemLayout}\n >\n <Form.Item\n name=\"dimension_name\"\n label={t(\"activerecord.attributes.dimension_value.dimension_code_name\")}\n rules={[\n {\n required: true\n }\n ]}\n >\n <Input disabled />\n </Form.Item>\n <Form.Item\n name=\"dimension_code\"\n label={t(\"activerecord.attributes.dimension_value.dimension_reference\")}\n rules={[\n {\n required: true\n }\n ]}\n >\n <Input disabled />\n </Form.Item>\n <Form.Item\n name=\"parent_id\"\n label={t(\"activerecord.attributes.dimension_value.parent_dimension_value\")}\n >\n <Select\n onPopupScroll={() => { if(dimensionParentValuesQuery.hasNextPage) { void dimensionParentValuesQuery.fetchNextPage()}}} \n options={[\n { label: t('activerecord.attributes.dimension_value.value_types.standalone'), value: null },\n ...parentValues,\n ]}\n loading={dimensionParentValuesQuery.isLoading}\n onClick={() => setIsSelectingParent(true)}\n onChange={(value: string) => setParentID(value)}\n placeholder={t('activerecord.attributes.dimension_value.value_types.standalone')}\n value={null}\n />\n </Form.Item>\n <Form.Item\n name=\"code\"\n label={t(\"activerecord.attributes.dimension_value.id\")}\n rules={[\n {\n required: true\n }\n ]}\n >\n <Input disabled />\n </Form.Item>\n <Form.Item\n name=\"name_ar\"\n rules={[\n {\n required: true\n }\n ]}\n label={t(\"activerecord.attributes.dimension.create_code.name_ar\")}\n >\n <Input maxLength={25} />\n </Form.Item>\n <Form.Item\n name=\"name_en\"\n rules={[\n {\n required: true\n }\n ]}\n label={t(\"activerecord.attributes.dimension.create_code.name_en\")}\n >\n <Input maxLength={25} />\n </Form.Item>\n <Form.Item wrapperCol={{ xs: { offset: 0 }, lg: { offset: 12 } }}>\n <Flex gap=\"small\" justify='end'>\n <Button type=\"primary\" disabled={mutation.isLoading || mutation.isSuccess ? true : false} htmlType=\"submit\">\n {t(\"forms.buttons.save\")}\n </Button>\n <Button danger href='/tenant/dimensions'>\n {t(\"forms.buttons.cancel\")}\n </Button>\n </Flex>\n </Form.Item>\n </Form>\n </QPageLayout>\n )\n}\n\nexport default NewDimensionValue","import BackButton from \"components/layout/BackButton\";\nimport QPageLayout from \"components/layout/QPageLayout\";\nimport { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { message, Skeleton, Form, Input, Flex, Button } from \"antd\";\nimport { useMutation, useQuery } from \"react-query\";\nimport { getDimension } from \"api/dimensions\";\nimport type { DimensionType, DimensionFormDataTypes } from \"types/dimensions\";\nimport { selectConfigurationModelHandler } from \"helpers/dimensions\";\nimport { CONFIGURATION_OPTIONS } from \"tokens/dimensions\";\nimport DimensionConfiguration from \"components/tenant/dimensions/DimensionConfiguration\";\nimport axios from \"axios\";\n\nexport const useBreadCrumbData = () => {\n const { t } = useTranslation();\n return [\n {\n title: t('activerecord.attributes.layout.settings'),\n },\n {\n title: <a href=\"/tenant/dimensions\">{t('activerecord.attributes.dimension.name_plural')}</a>,\n },\n {\n title: t('activerecord.attributes.dimension.edit.title'),\n },\n ]\n}\n\nconst formItemLayout = {\n labelCol: {\n xs: { span: 24 },\n lg: { span: 3 }\n \n },\n wrapperCol: {\n xs: { span: 24 },\n lg: { span: 9 },\n },\n};\n\nconst Edit = ({ id }: { id: string }) => {\n const { t } = useTranslation();\n const breadCrumbData = useBreadCrumbData();\n const [form] = Form.useForm();\n const [messageApi, contextHolder] = message.useMessage();\n const [checkedList, setCheckedList] = useState<unknown[]>([]);\n const { data, isLoading } = useQuery<DimensionType>({\n queryKey: [\"dimension\"],\n queryFn: getDimension.bind(null, { dimensionID: id })\n });\n\n const mutation = useMutation<unknown, unknown, DimensionFormDataTypes>({\n mutationKey: [\"editDimension\"],\n mutationFn: (values) => {\n const {dimension_configuration, ...dimension} = values;\n return axios.patch(`/tenant/dimensions/${id}.json`, { dimension, dimension_configuration });\n },\n onSuccess: () => {\n location.replace('/tenant/dimensions')\n },\n onError: () => {\n messageApi.open({\n type: 'error',\n content: t('forms.messages.error')\n });\n }\n })\n\n const valuesChangeHandler = (values: DimensionFormDataTypes) => { \n switch(Object.keys(values)[0]) {\n case \"dimension_configuration\":\n selectConfigurationModelHandler(values.dimension_configuration, CONFIGURATION_OPTIONS, setCheckedList)\n break;\n }\n }\n\n useEffect(() => {\n if(data) {\n for(const [key, value] of Object.entries(data)) {\n form.setFieldValue(key, value)\n }\n }\n }, [ data ])\n\n \n return (\n <QPageLayout\n title={t(\"activerecord.attributes.dimension.edit.title\")}\n actionBtns={<BackButton />}\n breadCrumbData={breadCrumbData}\n messageHolder={contextHolder}\n >\n {isLoading? \n <Skeleton active />\n :\n (\n <Form\n labelWrap\n form={form}\n name=\"code\"\n onFinish={() => mutation.mutate(form.getFieldsValue() as DimensionFormDataTypes)}\n scrollToFirstError\n onValuesChange={valuesChangeHandler}\n validateMessages={{\n required: t(\"activerecord.attributes.dimension.create_code.errors.required\") + \" ${label}\"\n }}\n {...formItemLayout}\n >\n <Form.Item\n name=\"code\"\n label={t(\"activerecord.attributes.dimension.create_code.reference\")}\n >\n <Input disabled />\n </Form.Item>\n <Form.Item\n name=\"name_ar\"\n rules={[\n {\n required: true\n }\n ]}\n label={t(\"activerecord.attributes.dimension.create_code.name_ar\")}\n >\n <Input maxLength={25} />\n </Form.Item>\n <Form.Item\n name=\"name_en\"\n rules={[\n {\n required: true\n }\n ]}\n label={t(\"activerecord.attributes.dimension.create_code.name_en\")}\n >\n <Input maxLength={25} />\n </Form.Item>\n <Form.Item name=\"description\" label={t(\"activerecord.attributes.dimension.create_code.description\")}>\n <Input.TextArea maxLength={100} rows={4} />\n </Form.Item>\n <DimensionConfiguration dimension={data} setCheckedList={setCheckedList} checkedList={checkedList} />\n <Form.Item wrapperCol={{ xs: { offset: 0 }, lg: { offset: 12 } }}>\n <Flex gap=\"small\" justify='end'>\n <Button type=\"primary\" disabled={mutation.isLoading || mutation.isSuccess ? true : false} htmlType=\"submit\">\n {t(\"forms.buttons.save\")}\n </Button>\n <Button danger href='/tenant/dimensions'>\n {t(\"forms.buttons.cancel\")}\n </Button>\n </Flex>\n </Form.Item>\n </Form>\n )\n }\n </QPageLayout>\n );\n};\n\nexport default Edit;\n","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgEmptyDimension = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 95 94\",\n width: \"1em\",\n height: \"1em\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#empty-dimension_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#3386C3\",\n d: \"M37.411 41.633 4.538 58.694c-3.575 1.855-3.54 6.979.058 8.787l33.075 16.61a21.898 21.898 0 0 0 19.658 0l33.075-16.61c3.598-1.808 3.633-6.932.058-8.787l-32.874-17.06a21.9 21.9 0 0 0-20.176 0z\",\n opacity: 0.8\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M37.411 22.735 4.538 39.795c-3.575 1.855-3.54 6.98.058 8.788l33.075 16.61a21.897 21.897 0 0 0 19.658 0l33.075-16.61c3.598-1.808 3.633-6.933.058-8.787l-32.874-17.06a21.9 21.9 0 0 0-20.176 0z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m57.33 65.192 23.2-11.652-22.942-11.906a21.901 21.901 0 0 0-20.177 0L14.47 53.54l23.2 11.652a21.897 21.897 0 0 0 19.66 0z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FAFAFA\",\n d: \"M37.411 3.835 4.538 20.895c-3.575 1.855-3.54 6.98.058 8.787L37.67 46.294a21.902 21.902 0 0 0 19.658 0l33.075-16.612c3.598-1.807 3.633-6.932.058-8.787L57.588 3.835a21.9 21.9 0 0 0-20.177 0z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#3386C3\",\n d: \"m57.33 46.295 23.2-11.653-22.942-11.907a21.901 21.901 0 0 0-20.177 0L14.47 34.642l23.2 11.653a21.902 21.902 0 0 0 19.66 0z\",\n opacity: 0.8\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m57.329 46.294 4.694-2.358-4.435-2.302a21.9 21.9 0 0 0-20.177 0l-4.436 2.302 4.695 2.358a21.902 21.902 0 0 0 19.659 0z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#19283A\",\n d: \"M47.5 49.989a23.3 23.3 0 0 1-10.448-2.464L3.978 30.913A6.285 6.285 0 0 1 .5 25.317a6.284 6.284 0 0 1 3.404-5.643l32.874-17.06a23.305 23.305 0 0 1 21.445 0l32.874 17.06a6.284 6.284 0 0 1 3.403 5.643 6.284 6.284 0 0 1-3.478 5.596L57.947 47.525A23.293 23.293 0 0 1 47.5 49.989zM38.046 5.057 5.172 22.117a3.495 3.495 0 0 0-1.918 3.18 3.496 3.496 0 0 0 1.96 3.155L38.29 45.063a20.61 20.61 0 0 0 18.422 0l33.075-16.611a3.496 3.496 0 0 0 1.96-3.154 3.497 3.497 0 0 0-1.918-3.18L56.953 5.058a20.545 20.545 0 0 0-18.907 0z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#19283A\",\n d: \"M47.5 68.887c-3.588 0-7.177-.822-10.448-2.465L3.977 49.813A6.284 6.284 0 0 1 .5 44.214a6.282 6.282 0 0 1 3.404-5.642l9.931-5.154 1.269 2.444-9.932 5.154a3.498 3.498 0 0 0-1.918 3.18 3.497 3.497 0 0 0 1.96 3.154L38.29 63.962a20.614 20.614 0 0 0 18.422 0L89.786 47.35a3.496 3.496 0 0 0 1.96-3.154 3.496 3.496 0 0 0-1.918-3.18l-9.932-5.154 1.269-2.444 9.932 5.154a6.283 6.283 0 0 1 3.403 5.642 6.284 6.284 0 0 1-3.478 5.598l-33.075 16.61A23.284 23.284 0 0 1 47.5 68.888z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#19283A\",\n d: \"M32.977 45.313a1.376 1.376 0 0 1-.635-2.6l4.436-2.302a23.176 23.176 0 0 1 20.05-.667 1.376 1.376 0 0 1-1.105 2.524 20.432 20.432 0 0 0-17.677.588l-4.436 2.302a1.377 1.377 0 0 1-.633.155z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#19283A\",\n d: \"M47.5 87.786c-3.588 0-7.177-.82-10.447-2.464L3.977 68.711A6.282 6.282 0 0 1 .5 63.114a6.283 6.283 0 0 1 3.404-5.642l22.774-11.82a1.375 1.375 0 0 1 2.017 1.102 1.378 1.378 0 0 1-.748 1.343L5.172 59.916a3.497 3.497 0 0 0-1.918 3.18 3.496 3.496 0 0 0 1.96 3.154L38.29 82.86a20.61 20.61 0 0 0 18.422 0l33.075-16.61a3.496 3.496 0 0 0 1.96-3.154 3.497 3.497 0 0 0-1.918-3.18L61.39 45.158a1.378 1.378 0 0 1 1.269-2.445l28.437 14.76a6.281 6.281 0 0 1 3.404 5.641 6.283 6.283 0 0 1-3.478 5.597L57.948 85.322A23.283 23.283 0 0 1 47.5 87.787zM14.47 36.018a1.377 1.377 0 0 1-.635-2.6l22.943-11.906a23.305 23.305 0 0 1 21.444 0s2.53 1.045 1.779 2.474c-.746 1.418-3.047-.03-3.047-.03a20.545 20.545 0 0 0-18.907 0L15.103 35.863a1.367 1.367 0 0 1-.632.155zm66.06 0a1.37 1.37 0 0 1-.634-.155l-16.413-8.518a1.376 1.376 0 1 1 1.27-2.444l16.412 8.517a1.378 1.378 0 0 1-.635 2.6z\"\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"empty-dimension_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M.5 0h94v94H.5z\"\n})))));\nconst Memo = /*#__PURE__*/memo(SvgEmptyDimension);\nexport default Memo;","import React, { LegacyRef, useCallback, useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport QPageLayout from 'components/layout/QPageLayout';\nimport QEmptyIndex from 'components/layout/emptyIndex';\nimport EmptyDimensionIcon from 'assets/icons/empty-dimension.svg'\nimport { Button, Table, Space, TableProps, Tooltip, Spin, Flex, message, Form, Input, Modal, Typography } from 'antd';\nimport { FilterOutlined, PlusOutlined, UndoOutlined, EyeOutlined, EditOutlined, DeleteOutlined } from '@ant-design/icons';\nimport { useQuery } from 'react-query';\nimport axios, { AxiosError } from 'axios';\nimport i18next from 'i18next';\nimport { SorterResult, SortOrder } from 'antd/es/table/interface';\nimport { useInteractiveFilter } from 'hooks/app';\nimport { LOCALES, Permissions } from 'types/app';\nimport { useDimensionPermissions } from 'hooks/dimensions';\nimport { HookAPI } from 'antd/es/modal/useModal';\nimport { DimensionResponse, DimensionType } from 'types/dimensions';\n\nconst { Text } = Typography;\n\nexport const useBreadCrumbData = () => {\n const { t } = useTranslation();\n return [\n {\n title: t('activerecord.attributes.layout.settings'),\n },\n {\n title: t('activerecord.attributes.dimension.name'),\n }\n ]\n}\n\nexport interface DataType {\n id: string;\n code: string;\n name_en: string;\n name_ar: string;\n description: string;\n global: boolean;\n}\n\nconst LOCALIZED_VALUES = new Map([['name', {en: 'name_en', ar: 'name_ar'}]])\nconst LOCALIZED_VALUES_REVERSE = new Map([['name_en', 'name'], ['name_ar', 'name']])\n\nconst getSorterKey = (key: string): string => {\n if(LOCALIZED_VALUES.has(key)) {\n return LOCALIZED_VALUES.get(key)![i18next.language as LOCALES]\n }\n return key;\n}\n\nconst useColumns = (sorter: {field: string, order: SortOrder}, permissions: Permissions, modal: HookAPI, refetch: () => void): TableProps<DataType>['columns'] => {\n const { t } = useTranslation();\n const handleDelete = (dimension: DimensionType, e: React.MouseEvent) => {\n e.preventDefault();\n const { id } = dimension;\n modal.confirm({\n content: (\n <Flex vertical gap={16} justify='center' align='center'>\n <DeleteOutlined style={{color: \"#e13659\", fontSize: 40}} />\n <Text>{t(\"activerecord.attributes.dimension.index.actions.confirm_delete\")}</Text>\n </Flex>\n ),\n icon: null,\n okButtonProps: {danger: true},\n okText: t(\"forms.buttons.confirm\"),\n onOk: async () => {\n try {\n await axios.delete(`/tenant/dimensions/${id}.json`)\n refetch();\n } catch(e) {\n const error = (e as AxiosError);\n if(error.response?.status === 422) {\n modal.info({\n content: (\n <Flex vertical gap={16} justify='center' align='center'>\n <DeleteOutlined style={{color: \"#e13659\", fontSize: 40}} />\n <Text>{t(\"activerecord.attributes.dimension.index.actions.delete_error\")}</Text>\n </Flex>\n ),\n icon: null,\n okText: t(\"forms.buttons.ok\")\n })\n }\n }\n }\n })\n \n }\n const columns: TableProps<DataType>['columns'] = [\n {\n title: t('activerecord.attributes.dimension.index.reference'),\n dataIndex: 'code',\n key: 'code',\n width: '12.5%',\n sorter: true,\n showSorterTooltip: false\n },\n {\n title: t('activerecord.attributes.dimension.index.name'),\n width: '37.5%',\n key: 'name',\n dataIndex: 'name',\n sorter: true,\n showSorterTooltip: false,\n render: (_: string, record: DimensionType) => (\n i18next.language === 'en'? record.name_en : record.name_ar\n )\n },\n {\n title: t('activerecord.attributes.dimension.index.description'),\n dataIndex: 'description',\n key: 'description',\n width: '37.5%'\n },\n {\n title: t('activerecord.attributes.dimension.index.actions.title'),\n key: 'action',\n width: '12.5%',\n render: (_: string, record: DimensionType) => (\n <Space size=\"middle\">\n {permissions?.write && (\n <>\n <Tooltip placement=\"top\" title={t('activerecord.attributes.dimension.index.actions.add_value')}>\n <Button href={`/tenant/dimensions/${record.id}/values/new`} icon={<PlusOutlined />} />\n </Tooltip>\n </>\n )}\n <Button href={`/tenant/dimensions/${record.id}`} icon={<EyeOutlined />} />\n {permissions?.write && (\n <Button href={`/tenant/dimensions/${record.id}/edit`} icon={<EditOutlined />} />\n )}\n {permissions?.delete && (\n <Button danger onClick={handleDelete.bind(null, record)} icon={<DeleteOutlined />} />\n )}\n </Space>\n ),\n },\n ]\n\n if(sorter) {\n const sortedColumnIdx = columns.findIndex(col => col.key === (LOCALIZED_VALUES_REVERSE.get(sorter.field) ?? sorter.field));\n if(sortedColumnIdx > -1) {\n columns[sortedColumnIdx].defaultSortOrder = sorter.order;\n }\n }\n\n return columns;\n} \n\n\nconst DimensionIndex = () => {\n const { t } = useTranslation();\n const breadCrumbData = useBreadCrumbData();\n const [messageApi, contextHolder] = message.useMessage();\n const [ filterUpdated, setFilterUpdate ] = useState<boolean>(false);\n const { permissions } = useDimensionPermissions();\n const [modal, modalContext] = Modal.useModal();\n \n const { url, page, pageSize, sorter, update, setFormContainerRef, form, filterApplied } = useInteractiveFilter({ setFilterUpdate, path: '/tenant/dimensions.json' }, [filterUpdated])\n \n const { data, isLoading, isError, isFetching, refetch } = useQuery<DimensionResponse>(['dimensions', url], async () => {\n return (await axios.get(url)).data as DimensionResponse\n }, { keepPreviousData: true });\n \n const columns = useColumns(sorter.get() as { field: string, order: SortOrder }, permissions!, modal, refetch as () => void);\n\n const onChange: TableProps<DataType>['onChange'] = useCallback<NonNullable<TableProps<DataType>['onChange']>>((pagination, _, sorterObject) => { \n page.set(pagination.current!);\n pageSize.set(pagination.pageSize!);\n const { order, field } = sorterObject as SorterResult<DataType>;\n sorter.set({field: getSorterKey(field as string), order});\n \n }, [])\n\n const handleFilterSubmit = useCallback(() => {\n update();\n }, [])\n\n const handleFilterReset = useCallback(() => {\n form.resetFields();\n update();\n }, [])\n\n\n useEffect(() => {\n if(isError) {\n messageApi.open({\n type: 'error',\n content: t('forms.messages.error')\n });\n }\n }, [ isError ])\n \n let actionButtons = null; \n \n const isEmptyIndex = data?.pagination.total_entries === 0 && !filterApplied;\n\n if(!isEmptyIndex) {\n actionButtons = (\n <Space>\n {permissions?.write && (\n <>\n <Button icon={<PlusOutlined />} type=\"primary\" href='/tenant/dimensions/new'>{t('activerecord.attributes.dimension.index.actions.add')}</Button>\n </>\n )}\n </Space>\n )\n }\n \n return (\n <QPageLayout title={t('activerecord.attributes.dimension.name_plural')} \n actionBtns={actionButtons}\n breadCrumbData={breadCrumbData} messageHolder={ contextHolder }>\n {\n isLoading? \n <Flex style={{ height: '5em' }} align='center' justify='center'><Spin /></Flex> \n :\n !isEmptyIndex || isFetching?\n (\n <>\n <div ref={setFormContainerRef as LegacyRef<HTMLDivElement>}>\n <Form\n form={form}\n name='dimensionIdx'\n onFinish={handleFilterSubmit}\n layout='inline'\n >\n <Form.Item\n name=\"q[code_cont]\"\n >\n <Input maxLength={25} placeholder={t('activerecord.attributes.dimension.index.reference')} />\n </Form.Item>\n <Form.Item\n name=\"q[name_ar_or_name_en_cont]\"\n >\n <Input maxLength={25} placeholder={t('activerecord.attributes.dimension.index.name')} />\n </Form.Item>\n <Form.Item>\n <Space>\n <Button icon={<FilterOutlined />} htmlType='submit' type=\"primary\">{t('forms.buttons.filter')}</Button>\n <Button onClick={handleFilterReset} icon={<UndoOutlined />} danger>{t('forms.buttons.reset')}</Button>\n </Space>\n </Form.Item>\n </Form>\n </div>\n <Table rowKey=\"id\" loading={isFetching} columns={columns} dataSource={data?.records} pagination={{total: data?.pagination.total_entries, current: data?.pagination.current_page, pageSize: pageSize.get(), showSizeChanger: true, pageSizeOptions: [15, 25, 50, 75, 100]}} onChange={onChange} />\n {modalContext}\n </>\n ) : (\n <QEmptyIndex title={t('activerecord.attributes.dimension.index.title')} subTitle={t('activerecord.attributes.dimension.index.sub_title')} Icon={ EmptyDimensionIcon }>\n {permissions?.write && (\n <Button icon={<PlusOutlined />} type=\"primary\" href='/tenant/dimensions/new'>{t('activerecord.attributes.dimension.index.actions.add')}</Button>\n )}\n </QEmptyIndex>\n )\n }\n </QPageLayout>\n )\n}\n\nexport default DimensionIndex","//@ts-nocheck\nimport React from 'react'\nimport { Form } from 'antd';\nimport { FormInstance } from 'antd/es/form/Form';\nimport { useTranslation } from 'react-i18next';\nimport LineItem from './item';\n\n\n\nconst DimensionForm = ({ form }: {form: FormInstance}) => {\n const { t } = useTranslation();\n\n return (\n <Form\n labelWrap\n form={form}\n scrollToFirstError\n validateMessages={{\n required: t(\"activerecord.attributes.dimension.create_code.errors.required\") + \" ${label}\"\n }}\n labelCol={{span: 6, style: { textAlign: 'start', fontWeight: 'normal !important' }}}\n wrapperCol={{span: 16}}\n >\n {Array(15).fill(0).map((_, idx) => (\n <LineItem key={`ls-item-${idx}`} idx={idx} />\n ))}\n </Form> )\n}\n\nexport default DimensionForm","//@ts-nocheck\nimport React, { useState } from 'react'\nimport { Form, Flex } from 'antd'\nimport Select from './select';\nimport { useTranslation } from 'react-i18next'\n\nconst Item = ({ idx }: { idx: number }) => {\n const [hidden, setHidden] = useState(true);\n\n const hideItem = (value) => {\n setHidden(value);\n } \n \n return (\n <Form.Item\n hidden={hidden}\n style={{flex: 1}}\n name={`select-${idx}`}\n wrapperCol={{span: 24}}\n >\n <Select idx={idx} hideItem={hideItem} />\n </Form.Item>\n )\n}\n\nexport default Item","/* eslint-disable */\n//@ts-nocheck\nimport React, { useEffect, useState, useRef, useCallback } from 'react'\nimport { Modal } from 'antd';\nimport Form from './form';\nimport { useTranslation } from 'react-i18next';\nimport axios from 'axios';\nimport { useForm } from 'antd/es/form/Form';\n\nimport { formObservable, ModalContext } from 'contexts/dimensions';\n\nconst typeModelMap = {\n \"Bill\": [\"bill\", \"bill_items\"],\n \"DebitNote\": [\"debit_note\", \"note_items\"],\n \"SimpleBill\": [\"simple_bill\", \"simple_bill_items\"]\n}\n\nconst DimesnionModal = ({ cdID, cdType }) => {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [modal, modalContext] = Modal.useModal();\n const [relatedCD, setRelatedCD] = useState<{id: string, type: string}>();\n const dataRef = useRef<Map<string, {id: number, dimension_value_id: number, dimension_id: number}[]>>(new Map());\n const appliedRef = useRef<Map<string, [boolean, {value: number, id: number}]>>(new Map())\n const tmpAppliedRef = useRef<Map<string, [boolean, {value: number, id: number}]>>(new Map())\n const activeDimensionList = useRef([]);\n const activeLineItem = useRef(null);\n const { t } = useTranslation();\n const [form] = useForm();\n\n const updateTmpApplyList = (dimensionID: string, applied: boolean, valueObj: {value: number, id: number}) => {\n tmpAppliedRef.current.set(dimensionID, [applied, {value: valueObj?.value, id: valueObj?.id}]);\n }\n\n const updateApplyList = () => {\n\n const appliedObj = tmpAppliedRef.current;\n for(const [k, v] of appliedObj.entries()) {\n if(v[0]) {\n appliedRef.current.set(k, v);\n for(const [key, list] of dataRef.current.entries()) {\n const tr = document.getElementById(key);\n const dimensionLi = tr?.querySelector('.line_item_dimension')\n const dimension = list.find(entry => String(entry.dimension_id) === k);\n if(Boolean(dimension)) {\n dimension.dimension_value_id = v[1].value;\n } else {\n list.push({id: undefined, dimension_value_id: v[1].value, dimension_id: Number(k)})\n }\n dimensionLi.classList.add('line-item-has-applied');\n tr?.querySelector('.ellipsis-container').classList.add('line-item-trigger-applied')\n }\n } else {\n appliedRef.current.delete(k);\n }\n }\n }\n\n const parentFormSubmitHandler = useCallback(function({ formData }: FormDataEvent) {\n for(const [key, value] of dataRef.current.entries()){\n for(let i = 0; i < value.length; i++) {\n const { dimension_value_id, id, dimension_id } = value[i];\n if(dimension_value_id || id) {\n formData.append(`${typeModelMap[cdType][0]}[${typeModelMap[cdType][1]}_attributes][${key}][dimension_value_assignables_attributes][${i}][dimension_id]`, String(dimension_id));\n if (Boolean(dimension_value_id)) {\n formData.append(`${typeModelMap[cdType][0]}[${typeModelMap[cdType][1]}_attributes][${key}][dimension_value_assignables_attributes][${i}][dimension_value_id]`, String(dimension_value_id));\n } else {\n formData.append(`${typeModelMap[cdType][0]}[${typeModelMap[cdType][1]}_attributes][${key}][dimension_value_assignables_attributes][${i}][_destroy]`, \"1\");\n }\n formData.append(`${typeModelMap[cdType][0]}[${typeModelMap[cdType][1]}_attributes][${key}][dimension_value_assignables_attributes][${i}][id]`, Boolean(id) ? String(id) : \"\");\n }\n }\n }\n }, [])\n\n\n useEffect(() => {\n const ParentForm: HTMLFormElement = document.querySelector(`.cd-main-form`);\n\n if(!ParentForm) return;\n\n ParentForm.addEventListener('formdata', parentFormSubmitHandler);\n\n return () => ParentForm.removeEventListener('formdata', parentFormSubmitHandler);\n\n }, [])\n\n const setUpRowDimension = (e: CustomEvent) => {\n const {id, action} = e.detail;\n const dimensionIcon = document.getElementById(`${id}`)?.querySelector('.line_item_dimension');\n \n if(!dimensionIcon) return;\n \n appliedRef.current=new Map()\n if(action === 'ADD') {\n dimensionIcon.addEventListener('click', showModal);\n dataRef.current.set(id, []);\n } else if(action === 'MOUNT') {\n dimensionIcon.addEventListener('click', showModal); \n if(e.detail.relatedCD) {\n setRelatedCD({...e.detail.relatedCD});\n }\n if(!dataRef.current.has(id)) {\n dataRef.current.set(id, []); \n }\n } else if(action === 'REMOVE') {\n dimensionIcon.removeEventListener('click', showModal);\n dataRef.current.delete(id);\n }\n }\n\n useEffect(() => {\n document.addEventListener('updateCdDimension', setUpRowDimension);\n \n return () => {\n document.removeEventListener('updateCdDimension', setUpRowDimension);\n }\n }, [])\n\n useEffect(() => {\n (async() => {\n try {\n if(!Boolean(cdID) && !Boolean(relatedCD)) return;\n let { data } = await axios.get(`/tenant/dimension_value_assignables.json?q[for_cd][document_id]=${relatedCD?.id ?? cdID}&q[for_cd][cd_type]=${relatedCD?.type ?? cdType}&q[with_active_dimension_values]=true&per_page=2000`);\n \n if(data.pagination.total_entries > 2000) {\n data = (await axios.get(`/tenant/dimension_value_assignables.json?[for_cd][document_id]=${relatedCD?.id ?? cdID}&q[for_cd][cd_type]=${relatedCD?.type ?? cdType}&q[with_active_dimension_values]=true&per_page=${data.pagination.total_entries}`)).data;\n }\n \n for(const record of data.records) {\n const tr = document.querySelector(`tr[data-id=\"${record.external_line_item_id}\"]`)\n const trIdx = tr.id;\n if(Boolean(record.dimension_values.length)) {\n tr.querySelector('.line_item_dimension').classList.add('line-item-has-applied')\n tr.querySelector('.ellipsis-container').classList.add('line-item-trigger-applied')\n }\n dataRef.current.set(trIdx, record.dimension_values)\n }\n } catch(e) {}\n })()\n }, [ relatedCD ])\n \n const showModal = async (e: Event) => {\n const target = e.target as HTMLDivElement;\n const parentTR = target?.closest('tr')\n \n if(!parentTR) return;\n \n const id = parentTR.id;\n setIsModalOpen(true);\n const queryStr = cdID ? `q[available_for_cd_id]=${cdID}` : `q[available_for_cd_type]=${cdType}`\n const { data } = await axios.get(`/tenant/dimensions.json?${queryStr}`);\n activeDimensionList.current = data.records;\n activeLineItem.current = id;\n formObservable.next({dimensions: data.records, trID: id});\n };\n\n const handleOk = () => {\n let isConfirmApply = false;\n let count = 0;\n for(const [isApplyAll] of tmpAppliedRef.current.values()) {\n if(isApplyAll) {\n isConfirmApply = true;\n ++count;\n }\n }\n if(isConfirmApply) {\n modal.confirm({\n title: t('activerecord.attributes.dimension_value.line_item_apply'),\n content: t('activerecord.attributes.dimension_value.line_item_confirm', {count}),\n onOk: () => {\n handleApply();\n },\n okText: t('forms.buttons.confirm'),\n cancelText: t('forms.buttons.cancel')\n })\n } else {\n handleApply();\n }\n };\n\n const handleApply = () => {\n if(Boolean(activeDimensionList.current.length) && activeLineItem.current) { \n updateApplyList();\n\n const refObj = dataRef.current.get(activeLineItem.current)\n if(Boolean(refObj)) {\n const tr = document.getElementById(activeLineItem.current);\n const dimensionLi = tr?.querySelector('.line_item_dimension')\n const tmp = [];\n const formValues = Object.values(form.getFieldsValue());\n for(let i = 0; i < activeDimensionList.current.length; i++) {\n const dimension = activeDimensionList.current[i];\n const dimensionRef = refObj.find(item => item.dimension_id === dimension.id);\n tmp.push({id: dimensionRef?.id, dimension_id: dimension.id, dimension_value_id: formValues[i]})\n }\n \n if(Boolean(tmp.filter(entry => Boolean(entry.dimension_value_id)).length)) {\n dimensionLi.classList.add('line-item-has-applied');\n tr?.querySelector('.ellipsis-container').classList.add('line-item-trigger-applied')\n } else {\n dimensionLi.classList.remove('line-item-has-applied');\n if(!tr?.querySelector('.line_item_project_li').classList.contains('line-item-has-applied')) {\n tr?.querySelector('.ellipsis-container').classList.remove('line-item-trigger-applied')\n }\n }\n dataRef.current.set(activeLineItem.current, tmp);\n }\n }\n setIsModalOpen(false);\n }\n\n const handleCancel = () => {\n activeDimensionList.current = [];\n activeLineItem.current = null;\n tmpAppliedRef.current = new Map();\n setIsModalOpen(false);\n };\n\n return (\n <Modal width={'60vw'} title={t(\"activerecord.attributes.dimension.name_plural\")} open={isModalOpen} onOk={handleOk} onCancel={handleCancel}>\n <ModalContext.Provider value={{dataRef: dataRef.current, appliedRef: appliedRef.current, updateTmpApplyList}} >\n <Form form={form} />\n </ModalContext.Provider>\n {modalContext}\n </Modal>\n );\n}\n\nexport default DimesnionModal","//@ts-nocheck\nimport React, { useEffect, useState, useRef } from 'react'\nimport { Modal, message } from 'antd';\nimport Form from './form';\nimport { useTranslation } from 'react-i18next';\nimport axios from 'axios';\nimport { DimensionAssignableResponse } from 'types/dimensions';\nimport { useForm } from 'antd/es/form/Form';\nimport { useMutation, useQuery } from 'react-query';\nimport { getValuesByLineItem } from 'api/dimensions';\n\nimport { formObservable, ModalContext } from 'contexts/dimensions';\n\ninterface AssignableEntry {\n id: number;\n dimension_value_id: number;\n dimension_id: number;\n _destroy?: 1 | 0;\n apply_to_all?: boolean;\n}\n\nconst DimesnionModal = ({ cdID, cdType }) => {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [modal, modalContext] = Modal.useModal();\n const [messageApi, messageContext] = message.useMessage();\n const dataRef = useRef<Map<string, AssignableEntry[]>>(new Map());\n const appliedRef = useRef<Map<string, [boolean, {value: number, id: number}]>>(new Map())\n const tmpAppliedRef = useRef<Map<string, [boolean, {value: number, id: number}]>>(new Map())\n const [activeLineItem, setActiveLineItem] = useState(\"\");\n const [activeDimensionList, setActiveDimensionList] = useState([]);\n const { t } = useTranslation();\n const [form] = useForm();\n\n const { data } = useQuery<DimensionAssignableResponse>({\n queryKey: [\"lineItemData\", activeLineItem],\n queryFn: getValuesByLineItem.bind(null, { lineItemID: activeLineItem, cdType }),\n enabled: Boolean(activeLineItem)\n })\n\n const mutation = useMutation({\n mutationKey: ['submitDimensionForm', activeLineItem],\n mutationFn: async(data: AssignableEntry[]) => {\n console.log(data);\n \n await axios.post('/tenant/dimension_value_assignables.json', {\n assignable_id: activeLineItem,\n cd_type: cdType,\n dimension_values: data\n })\n },\n onError: () => {\n messageApi.open({\n type: 'error',\n content: t('forms.messages.error')\n });\n },\n onSuccess: (_, variables) => {\n messageApi.open({\n type: 'success',\n content: t('forms.messages.update.success')\n }); \n dataRef.current.set(activeLineItem, variables);\n }\n })\n \n const updateTmpApplyList = (dimensionID: string, applied: boolean, valueObj: {value: number, id: number}) => {\n tmpAppliedRef.current.set(dimensionID, [applied, {value: valueObj?.value, id: valueObj?.id}]);\n }\n\n const setUpRowDimension = (e: CustomEvent) => {\n const {id, action} = e.detail;\n const dimensionIcon = document.getElementById(`${id}`)?.querySelector('.line_item_dimension');\n\n if(!dimensionIcon) return;\n \n if(action === 'MOUNT') {\n dimensionIcon.addEventListener('click', showModal);\n if(!dataRef.current.has(id)) {\n dataRef.current.set(id, []); \n }\n }\n }\n\n useEffect(() => {\n document.addEventListener('updateCdDimension', setUpRowDimension);\n \n return () => {\n document.removeEventListener('updateCdDimension', setUpRowDimension);\n }\n }, [])\n\n useEffect(() => {\n if(data) {\n for(const record of data.records) {\n const tr = document.querySelector(`tr[data-id=\"${record.external_line_item_id}\"]`)\n if(Boolean(record.dimension_values.length)) {\n tr.querySelector('.line_item_dimension').classList.add('line-item-has-applied')\n tr?.querySelector('.ellipsis-container').classList.add('line-item-trigger-applied')\n }\n dataRef.current.set(activeLineItem, record.dimension_values)\n }\n }\n }, [ data, activeLineItem ])\n \n useEffect(() => {\n (async() => {\n if(isModalOpen) {\n const { data } = await axios.get(`/tenant/dimensions.json?q[available_for_cd_id]=${cdID}`);\n setActiveDimensionList(data.records); \n }\n })()\n }, [ isModalOpen ])\n\n useEffect(() => {\n if(activeDimensionList.length) {\n formObservable.next({dimensions: activeDimensionList, trID: activeLineItem, lineItemID: activeLineItem}); \n }\n }, [ activeDimensionList ])\n \n const showModal = async (e: Event) => {\n const target = e.target as HTMLDivElement;\n const parentTR = target?.closest('tr')\n \n if(!parentTR) return;\n \n const id = parentTR.id;\n setIsModalOpen(true);\n setActiveLineItem(id);\n };\n\n const handleOk = () => {\n let isConfirmApply = false;\n let count = 0;\n for(const [isApplyAll] of tmpAppliedRef.current.values()) {\n if(isApplyAll) {\n isConfirmApply = true;\n ++count;\n }\n }\n if(isConfirmApply) {\n modal.confirm({\n title: t('activerecord.attributes.dimension_value.line_item_apply'),\n content: t('activerecord.attributes.dimension_value.line_item_confirm', {count}),\n onOk: () => {\n handleApply();\n window.location.reload();\n },\n okText: t('forms.buttons.confirm'),\n cancelText: t('forms.buttons.cancel')\n })\n } else {\n handleApply();\n }\n };\n\n const handleApply = () => {\n if(Boolean(activeDimensionList.length) && activeLineItem) { \n \n const refObj = dataRef.current.get(activeLineItem)\n if(Boolean(refObj)) {\n const tr = document.getElementById(activeLineItem);\n const dimensionLi = tr?.querySelector('.line_item_dimension')\n const tmp: AssignableEntry[] = [];\n const formValues: any[] = Object.values(form.getFieldsValue());\n for(let i = 0; i < activeDimensionList.length; i++) {\n const dimension = activeDimensionList[i];\n const dimensionRef = refObj.find(item => item.dimension_id === dimension.id);\n tmp.push({id: dimensionRef?.id, dimension_id: dimension.id, dimension_value_id: formValues[i]})\n }\n \n if(Boolean(tmp.filter(entry => Boolean(entry.dimension_value_id)).length)) {\n dimensionLi.classList.add('line-item-has-applied');\n tr?.querySelector('.ellipsis-container').classList.add('line-item-trigger-applied')\n } else {\n dimensionLi.classList.remove('line-item-has-applied');\n if(!tr?.querySelector('.line_item_project_li').classList.contains('line-item-has-applied')) {\n tr?.querySelector('.ellipsis-container').classList.remove('line-item-trigger-applied')\n }\n }\n \n const data = tmp\n .filter(entry => (entry.id || entry.dimension_value_id))\n .map(entry => ({\n ...entry,\n apply_to_all: (tmpAppliedRef.current.get(String(entry.dimension_id))?.[0] && Boolean(entry.dimension_value_id)) ?? false,\n _destroy: Number(!Boolean(entry.dimension_value_id)) \n }))\n \n mutation.mutate(data as AssignableEntry[]);\n \n }\n }\n setIsModalOpen(false);\n }\n\n const handleCancel = () => {\n setActiveDimensionList([]);\n setActiveLineItem(\"\");\n tmpAppliedRef.current = new Map();\n setIsModalOpen(false);\n };\n\n return (\n <Modal width={'60vw'} title={t(\"activerecord.attributes.dimension.name_plural\")} open={isModalOpen} onOk={handleOk} onCancel={handleCancel}>\n <ModalContext.Provider value={{dataRef: dataRef.current, appliedRef: appliedRef.current, updateTmpApplyList}} >\n <Form form={form} />\n </ModalContext.Provider>\n {modalContext}\n {messageContext}\n </Modal>\n );\n}\n\nexport default DimesnionModal","import React, { useContext, useEffect, useState } from 'react'\n\nimport { Select, Checkbox, Form, Typography, Row, Col } from 'antd';\n\nimport { formObservable, ModalContext } from 'contexts/dimensions';\nimport type { Dimension, DimensionValueResponse, DimensionValueType } from 'types/dimensions';\nimport { getDimensionValues } from 'api/dimensions';\nimport { useInfiniteQuery } from 'react-query';\nimport i18next from 'i18next';\nimport { useTranslation } from 'react-i18next';\n\nconst {Text} = Typography;\ninterface Option {\n label: string;\n value: number;\n}\nconst SelectControl = ({ idx, hideItem }: { idx: number; hideItem: React.Dispatch<React.SetStateAction<boolean>> }) => {\n\n const [isFetchValues, setIsFetchValues] = useState(false);\n const [dimension, setDimension] = useState<null | Dimension>(null);\n const [options, setOptions] = useState<Option[]>([]); \n const [trID, setTrID] = useState<string>('');\n const [search, setSearch] = useState<string>('');\n const [value, setValue] = useState<number | undefined>(undefined);\n const [disabled, setDisabled] = useState<boolean>(true);\n const [applied, setApplied] = useState<boolean>(false);\n const [relationID, setRelationID] = useState<number | null>(null);\n const [initialVal, setInitialVal] =useState<DimensionValueType | undefined>(undefined);\n const [lineItemID, setLineItemID] = useState('');\n\n const { t } = useTranslation();\n const form = Form.useFormInstance();\n\n const { appliedRef, dataRef, updateTmpApplyList } = useContext(ModalContext)\n\n const dimensionValuesQuery = useInfiniteQuery<DimensionValueResponse>(['dimensionValues', dimension, search, lineItemID],({ pageParam = 1 }: { pageParam?: number }) => {\n let extraQuery: Record<string, string | boolean> = { disabledDimensionValues: true };\n if(lineItemID) {\n extraQuery = { lineItem: lineItemID };\n }\n return getDimensionValues({dimensionID: dimension?.id ?? 0, cdType: 'Bill', type: 'standalone', page: pageParam, valueID: search, ...extraQuery })\n }, {\n getNextPageParam: (lastPage) => lastPage.pagination.next_page,\n enabled: isFetchValues && Boolean(dimension?.id)\n })\n\n const handleApplied = (dimension:Dimension) => {\n const globalApply = appliedRef.get(String((dimension as { id: string | number })?.id));\n if(globalApply?.[0]) {\n setApplied(true);\n setDisabled(true);\n } else {\n setApplied(false);\n setDisabled(false);\n }\n }\n \n \n useEffect(() => {\n if(dimensionValuesQuery.data) {\n const { pages } = dimensionValuesQuery.data;\n const allValues = pages.map(page => page.records).flat();\n setOptions(() => {\n return allValues.map(record => ({ label: `${record.code} - ${i18next.language === 'en'? record.name_en : record.name_ar}`, value: record.id }));\n })\n }\n }, [ dimensionValuesQuery.data?.pages ])\n \n \n useEffect(() => {\n const subscription = formObservable.subscribe(({dimensions, trID, lineItemID}) => { \n if(dimensions.length > idx) {\n setDimension(dimensions[idx]);\n hideItem(false);\n setTrID(trID);\n setLineItemID(lineItemID ?? '');\n } else {\n hideItem(true);\n }\n })\n\n return () => {\n subscription.unsubscribe();\n }\n }, [])\n\n useEffect(() => {\n if(trID && dimension?.id) {\n const trData = dataRef?.get(trID);\n \n if(trData) {\n const val = trData.find(dimensionRecord => dimensionRecord.dimension_id === (dimension.id))\n \n setInitialVal(val);\n handleApplied(dimension)\n if(val) {\n setIsFetchValues(true);\n setSearch(String(val.dimension_value_id))\n setValue(val.dimension_value_id)\n setRelationID(val.id);\n } else {\n setValue(undefined)\n setRelationID(null);\n }\n }\n \n }\n }, [trID, dimension])\n\n useEffect(() => {\n form.setFieldValue(`select-${idx}`, value);\n const isGlobal = appliedRef.get(String(dimension?.id))?.[0]\n if(isGlobal && Boolean(initialVal?.dimension_value_id)) {\n if(initialVal?.dimension_value_id !== value) {\n setDisabled(false);\n setApplied(false);\n } else {\n setDisabled(true);\n setApplied(true);\n }\n }\n }, [value, initialVal])\n\n useEffect(() => { \n if(dimension) {\n updateTmpApplyList(String(dimension?.id), applied, {value, id: relationID})\n }\n }, [applied, dimension])\n \n return (\n <Row gutter={16} align='middle'>\n <Col md={4} sm={24}>\n <Text>{i18next.language === 'en'? dimension?.name_en : dimension?.name_ar}</Text>\n </Col>\n <Col md={14} sm={18}>\n <Select\n options={options}\n onFocus={() => {setIsFetchValues(true); setSearch('')}}\n loading={dimensionValuesQuery.isLoading}\n onChange={(val) => setValue(val)}\n allowClear={true}\n value={value}\n />\n </Col>\n <Col md={6} sm={6}>\n <Checkbox style={{fontWeight: 'normal'}} onChange={e => setApplied(e.target.checked)} disabled={disabled} checked={applied}>\n {t(\"activerecord.attributes.dimension_value.line_item_apply\")}\n </Checkbox>\n </Col>\n </Row>\n )\n}\n\nexport default SelectControl","import { useEffect, useState } from 'react'\nimport { Form, Input, Flex, Button, message } from 'antd'\nimport { useTranslation } from 'react-i18next'\nimport QPageLayout from 'components/layout/QPageLayout';\nimport BackButton from 'components/layout/BackButton';\nimport axios, { AxiosError } from 'axios';\nimport { useMutation, useQuery } from 'react-query';\nimport DimensionConfiguration from 'components/tenant/dimensions/DimensionConfiguration';\nimport { selectConfigurationModelHandler } from 'helpers/dimensions';\nimport { CONFIGURATION_OPTIONS } from 'tokens/dimensions';\nimport { DimensionFormDataTypes, DimensionType } from 'types/dimensions';\n\n\n\nexport const useBreadCrumbData = () => {\n const { t } = useTranslation();\n return [\n {\n title: t('activerecord.attributes.layout.settings'),\n },\n {\n title: <a href=\"/tenant/dimensions\">{t('activerecord.attributes.dimension.name')}</a>,\n },\n {\n title: t('activerecord.attributes.dimension.new'),\n },\n ]\n}\n\nconst formItemLayout = {\n labelCol: {\n xs: { span: 24 },\n lg: { span: 3 }\n \n },\n wrapperCol: {\n xs: { span: 24 },\n lg: { span: 9 },\n },\n};\n\nconst NewDimension = () => {\n const { t } = useTranslation();\n const [ form ] = Form.useForm();\n const [messageApi, contextHolder] = message.useMessage();\n const [checkedList, setCheckedList] = useState<unknown[]>([]);\n \n const breadCrumbData = useBreadCrumbData();\n const { data } = useQuery('nextCode', async () => (await axios.get<{next_code: string}>(`/tenant/dimensions/next_code.json`)).data);\n const mutation = useMutation<unknown, AxiosError, DimensionType & { dimension_configuration: string[]}>({\n mutationFn: (values) => {\n const {dimension_configuration, ...dimension} = values;\n return axios.post('/tenant/dimensions.json', { dimension, dimension_configuration });\n },\n onError: (error : AxiosError) => {\n const content = error.response?.status === 422 ? t('errors.messages.duplicated_dimension_reference') : t('forms.messages.error')\n messageApi.open({\n type: 'error',\n content: content\n });\n },\n onSuccess: () => {\n location.replace('/tenant/dimensions')\n }\n })\n\n const valuesChangeHandler = (values: DimensionFormDataTypes) => { \n switch(Object.keys(values)[0]) {\n case \"dimension_configuration\":\n selectConfigurationModelHandler(values.dimension_configuration, CONFIGURATION_OPTIONS, setCheckedList)\n break;\n }\n }\n \n useEffect(() => {\n if(data) {\n form.setFieldValue('code', data?.next_code);\n } \n }, [data])\n\n return (\n <QPageLayout messageHolder={contextHolder} title={t('activerecord.attributes.dimension.new')} actionBtns={\n <BackButton />\n } breadCrumbData={breadCrumbData} >\n <Form\n labelWrap\n form={form}\n name=\"code\"\n onFinish={mutation.mutate}\n scrollToFirstError\n onValuesChange={valuesChangeHandler}\n validateMessages={{\n required: t(\"activerecord.attributes.dimension.create_code.errors.required\") + \" ${label}\"\n }}\n {...formItemLayout}\n >\n <Form.Item\n name=\"code\"\n label={t(\"activerecord.attributes.dimension.index.reference\")}\n >\n <Input />\n </Form.Item>\n <Form.Item\n name=\"name_ar\"\n rules={[\n {\n required: true\n }\n ]}\n label={t(\"activerecord.attributes.dimension.create_code.name_ar\")}\n >\n <Input maxLength={25} />\n </Form.Item>\n <Form.Item\n name=\"name_en\"\n rules={[\n {\n required: true\n }\n ]}\n label={t(\"activerecord.attributes.dimension.create_code.name_en\")}\n >\n <Input maxLength={25} />\n </Form.Item>\n <Form.Item name=\"description\" label={t(\"activerecord.attributes.dimension.create_code.description\")}>\n <Input.TextArea maxLength={100} rows={4} />\n </Form.Item>\n <DimensionConfiguration setCheckedList={setCheckedList} checkedList={checkedList} />\n <Form.Item wrapperCol={{ xs: { offset: 0 }, lg: { offset: 12 } }}>\n <Flex gap=\"small\" justify='end'>\n <Button type=\"primary\" disabled={mutation.isLoading || mutation.isSuccess ? true : false} htmlType=\"submit\">\n {t(\"forms.buttons.save\")}\n </Button>\n <Button danger href='/tenant/dimensions'>\n {t(\"forms.buttons.cancel\")}\n </Button>\n </Flex>\n </Form.Item>\n </Form>\n </QPageLayout>\n )\n}\n\nexport default NewDimension","import { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport QPageLayout from 'components/layout/QPageLayout';\nimport { Button, Table, Space, TableProps, Skeleton, Row, Col, Typography } from 'antd';\nimport { PlusOutlined } from '@ant-design/icons';\nimport { useQuery } from 'react-query';\nimport type { DimensionValue, DimensionValueResponse } from 'types/dimensions';\nimport i18next from 'i18next';\nimport { getDimension, getActivatedDimensionValues } from 'api/dimensions';\nimport { useDimensionPermissions } from 'hooks/dimensions';\n\nconst { Text } = Typography;\n\nexport const useBreadCrumbData = (code : string) => {\n const { t } = useTranslation();\n return [\n {\n title: t('activerecord.attributes.layout.settings'),\n },\n {\n title: <a href=\"/tenant/dimensions\">{t('activerecord.attributes.dimension.name')}</a>,\n },\n {\n title: code,\n }\n ]\n}\n\ninterface DataType {\n id: string;\n code: string;\n name_en: string;\n name_ar: string;\n description: string;\n}\n\nconst LOCALIZED_VALUES = new Map([['parent_value', 'activerecord.attributes.dimension_value.value_types.parent_value'], ['standalone', 'activerecord.attributes.dimension_value.value_types.standalone']])\n\n\nconst useColumns = (): TableProps<DimensionValue>['columns'] => {\n const { t } = useTranslation();\n return ([\n {\n title: t('activerecord.attributes.dimension.index.reference'),\n dataIndex: 'code',\n width: '25%'\n },\n {\n title: t('activerecord.attributes.dimension.index.name'),\n width: '37.5%',\n key: 'name',\n dataIndex: 'name',\n render: (_, record) => (\n i18next.language === 'en'? record.name_en : record.name_ar\n )\n },\n {\n title: t('activerecord.attributes.dimension_value.value_type'),\n width: '37.5%',\n dataIndex: 'value_type',\n render: (_, record) => {\n return t(LOCALIZED_VALUES.get(record.value_type) ?? '');\n }\n },\n ])\n} \n\n\nconst DimensionShow = ({ id }: {id: number}) => {\n const { t } = useTranslation();\n const { permissions } = useDimensionPermissions();\n const columns = useColumns();\n const [page, setPage] = useState(1);\n \n const dimensionData = useQuery<DataType>(['dimension'], getDimension.bind(null, { dimensionID: String(id), page, cdType: '', type: '', valueID: ''})); \n\n const breadCrumbData = useBreadCrumbData(dimensionData.data?.code || ''); \n\n const dimensionValues = useQuery<DimensionValueResponse>(['dimensionValues', page], getActivatedDimensionValues.bind(null, { dimensionID: id, page, cdType:'', type: '', valueID: '' }));\n\n const data = {...(dimensionData.data ?? {}), values: [...(dimensionValues.data?.records ?? [])]}\n\n useEffect(() => {\n if(dimensionData.isError || dimensionValues.isError || !id) {\n window.location.replace('/tenant/dimensions');\n }\n }, [ dimensionData.isError, dimensionValues.isError ])\n \n const actionButtons = (\n <Space>\n <Button type=\"primary\" href={`/tenant/dimensions/${id}/values`}>{t(\"activerecord.attributes.dimension.view.actions.dimension_values\")}</Button>\n {permissions?.write && (\n <Button icon={<PlusOutlined />} type=\"primary\" href={`/tenant/dimensions/${id}/values/new`}>{t('activerecord.attributes.dimension.view.actions.add_dimension_value')}</Button>\n )}\n </Space>\n )\n \n return (\n <QPageLayout title={t('activerecord.attributes.dimension.view.dimension_details')} \n actionBtns={actionButtons}\n breadCrumbData={breadCrumbData}>\n {dimensionData.isLoading || !dimensionData.data? \n <Skeleton active /> \n :\n (\n <>\n <Row gutter={[16, 16]}>\n <Col style={{fontWeight: 'bold'}} xs={12} md={6}>{t(\"activerecord.attributes.dimension.index.reference\")}</Col>\n <Col xs={12} md={6}>{data.code}</Col>\n </Row>\n <Row gutter={[16, 16]}>\n <Col style={{fontWeight: 'bold'}} xs={12} md={6}>{t(\"activerecord.attributes.dimension.create_code.name_ar\")}</Col>\n <Col xs={12} md={6}><Text style={{fontFamily: 'Cairo'}}>{data.name_ar}</Text></Col>\n </Row>\n <Row gutter={[16, 16]}>\n <Col style={{fontWeight: 'bold'}} xs={12} md={6}>{t(\"activerecord.attributes.dimension.create_code.name_en\")}</Col>\n <Col xs={12} md={6}>{data.name_en}</Col>\n </Row>\n <Row gutter={[16, 16]}>\n <Col style={{fontWeight: 'bold'}} xs={12} md={6}>{t(\"activerecord.attributes.dimension.create_code.description\")}</Col>\n <Col xs={12} md={6}>{data.description}</Col>\n </Row>\n <Row gutter={[16, 16]}>\n <Col style={{fontWeight: 'bold'}} xs={24} md={6}>{t(\"activerecord.attributes.dimension.view.actions.dimension_values\")}</Col>\n <Col xs={24} md={18}>\n <Table rowKey=\"id\" loading={dimensionValues.isLoading} columns={columns} dataSource={data.values} onChange={({current}) => setPage(current!)} pagination={{total: dimensionValues.data?.pagination.total_entries ?? 0}} />\n </Col>\n </Row>\n </>\n ) \n }\n </QPageLayout>\n )\n}\n\nexport default DimensionShow","import {\n FixedAssetAdditionFilterForm,\n FixedAssetAdditionActionButtons,\n} from \"components/tenant/FixedAssetAdditions\";\nimport { useQuery } from \"react-query\";\nimport { currentUserKeys } from \"tokens/query-keys\";\nimport { getCurrentUser } from \"api/CurrentUser\";\nimport { Skeleton } from \"antd\";\nimport UserContext from \"contexts/UserContext\";\nimport { useState } from \"react\";\nimport { Table, Tag, Button, Flex, Modal, Tooltip } from \"antd\";\nimport { EyeOutlined, EditOutlined, DeleteOutlined } from \"@ant-design/icons\";\nimport { useTranslation } from \"react-i18next\";\nimport NoBudgetData from \"assets/icons/NoBudgetData.svg\";\n\nimport {\n deleteFixedAssetAddition,\n getFixedAssetAdditions,\n} from \"api/FixedAssetAdditions\";\nimport QEmptyIndex from \"components/layout/emptyIndex\";\nimport QPageLayout from \"components/layout/QPageLayout\";\nimport { type FixedAssetAddition } from \"types/FixedAssetAddition\";\n\nimport { fixedAssetAdditionKeys } from \"tokens/query-keys\";\nimport ServerError from \"components/Errors/ServerError\";\nimport { SorterResult } from \"antd/es/table/interface\";\nimport { usePermission } from \"hooks/index\";\nimport { useInteractiveFilter } from \"hooks/app\";\nimport { TablePaginationConfig } from \"antd/lib\";\n\nconst tagColor = (status: string): string => {\n if (status === \"draft\") {\n return \"orange-inverse\";\n } else if (status === \"awaiting\") {\n return \"blue-inverse\";\n } else {\n return \"green-inverse\";\n }\n};\n\nconst FixedAssetAdditions = () => {\n const userQuery = useQuery({\n queryKey: currentUserKeys.all,\n queryFn: getCurrentUser,\n });\n\n const { t } = useTranslation();\n const permission = usePermission(\"fixedAssetAddition\");\n\n const [filters, setFilters] = useState<Record<string, any>>({});\n const [filterApplied, setFilterApplied] = useState(false);\n const interactiveFilter = useInteractiveFilter(\n {\n setFilterUpdate: setFilterApplied,\n path: \"/tenant/fixed_asset_additions.json\",\n },\n [filterApplied],\n );\n\n const fieldOrder = interactiveFilter.sorter.get()\n ? interactiveFilter.sorter.get()\n : { field: \"created_at\", order: \"desc\" };\n\n const sortOrder = `${fieldOrder?.field} ${fieldOrder?.order}`;\n const { data, isLoading, isError, refetch } = useQuery<\n {\n fixed_asset_additions: FixedAssetAddition[];\n pagination: { total_entries: number };\n },\n Error\n >({\n queryKey: fixedAssetAdditionKeys.paginate?.(\n filters,\n interactiveFilter.page.get(),\n interactiveFilter.pageSize.get(),\n sortOrder,\n ),\n queryFn: () =>\n getFixedAssetAdditions(\n interactiveFilter.page.get(),\n filters,\n interactiveFilter.pageSize.get(),\n sortOrder,\n ),\n });\n\n const breadCrumbData = [\n {\n title: (\n <a href=\"/tenant/fixed_assets\">\n {t(\"activerecord.attributes.layout.fixed_assets\")}\n </a>\n ),\n },\n {\n title: t(\"fixed_asset_additions.layout.title\"),\n },\n ];\n\n if (isError) {\n return (\n <QPageLayout\n title={t(\"fixed_asset_additions.layout.title\")}\n actionBtns={<FixedAssetAdditionActionButtons />}\n breadCrumbData={breadCrumbData}\n >\n <ServerError />\n </QPageLayout>\n );\n }\n\n const handleTableChange = (\n pagination: TablePaginationConfig,\n _data: any,\n sorter:\n | SorterResult<FixedAssetAddition>\n | SorterResult<FixedAssetAddition>[],\n ) => {\n if (!Array.isArray(sorter)) {\n interactiveFilter.sorter.set({\n field: sorter.columnKey,\n order: sorter.order,\n });\n }\n\n interactiveFilter.page.set(pagination.current ?? 1);\n interactiveFilter.pageSize.set(pagination.pageSize ?? 20);\n };\n\n const handleFilterSubmit = (values: unknown) => {\n interactiveFilter.update();\n setFilters(values as Record<string, any>);\n };\n\n const handleReset = () => {\n interactiveFilter.update();\n setFilters({});\n };\n\n const handleDelete = (record: FixedAssetAddition) => {\n if (!record.is_deletable) {\n Modal.error({\n title: t(\"fixed_asset_additions.layout.form.delete_restricted\"),\n content: t(\n \"fixed_asset_additions.layout.form.delete_restricted_message\",\n ),\n closable: true,\n footer: null,\n });\n\n return;\n }\n\n Modal.confirm({\n content: t(\"templates.sure_modal\"),\n okText: t(\"forms.buttons.delete\"),\n onOk: async () => {\n await deleteFixedAssetAddition(record);\n\n refetch().catch(() => {\n console.log(\"Error\");\n });\n },\n });\n };\n\n if (userQuery.isLoading || isLoading) return <Skeleton />;\n\n const columns = [\n {\n title: t(\"activerecord.attributes.fixed_asset_addition.reference\"),\n dataIndex: \"reference\",\n key: \"reference\",\n sorter: true,\n },\n {\n title: t(\"activerecord.attributes.fixed_asset_addition.date\"),\n dataIndex: \"date\",\n key: \"date\",\n sorter: true,\n },\n {\n title: t(\"activerecord.attributes.fixed_asset_addition.asset_name\"),\n dataIndex: \"fixed_asset_name\",\n key: \"fixed_asset_name\",\n sorter: false,\n },\n {\n title: t(\"activerecord.attributes.fixed_asset_addition.asset_reference\"),\n dataIndex: \"asset_registry_sku\",\n key: \"asset_registry_sku\",\n sorter: false,\n },\n {\n title: t(\"activerecord.attributes.fixed_asset_addition.addition_type\"),\n dataIndex: \"addition_type\",\n key: \"addition_type\",\n sorter: false,\n render: (text: string | null) => {\n if (text === null) {\n return null;\n }\n\n return t(\n `activerecord.attributes.fixed_asset_addition.addition_types.${text}`,\n );\n },\n },\n {\n title: t(\"activerecord.attributes.fixed_asset_addition.status\"),\n dataIndex: \"status\",\n key: \"status\",\n sorter: false,\n render: (text: string) => {\n if (text === null) {\n return null;\n }\n\n return (\n <Tag color={tagColor(text)}>\n {t(`activerecord.attributes.fixed_asset_addition.statuses.${text}`)}\n </Tag>\n );\n },\n },\n {\n title: t(\"activerecord.attributes.fixed_asset.action\"),\n dataIndex: \"action\",\n render: (_: any, record: FixedAssetAddition) => {\n return (\n <Flex wrap gap=\"small\">\n <Tooltip placement=\"bottom\" title={t(\"tooltip.view\")}>\n <a href={`/tenant/fixed_asset_additions/${record.id}`}>\n <Button icon={<EyeOutlined />} />\n </a>\n </Tooltip>\n {permission?.write &&\n (record.status === \"draft\" || record.status === \"awaiting\") && (\n <Tooltip placement=\"bottom\" title={t(\"tooltip.edit\")}>\n <a href={`/tenant/fixed_asset_additions/${record.id}/edit`}>\n <Button icon={<EditOutlined />} />\n </a>\n </Tooltip>\n )}\n {permission?.delete && (\n <Tooltip placement=\"bottom\" title={t(\"tooltip.delete\")}>\n <Button\n icon={<DeleteOutlined />}\n danger\n ghost={!(record.is_deletable ?? true)}\n onClick={() => handleDelete(record)}\n type={record.is_deletable ? \"default\" : \"dashed\"}\n />\n </Tooltip>\n )}\n </Flex>\n );\n },\n },\n ];\n\n return (\n <UserContext.Provider value={userQuery.data || null}>\n <QPageLayout\n title={t(\"fixed_asset_additions.layout.title\")}\n actionBtns={<FixedAssetAdditionActionButtons />}\n breadCrumbData={breadCrumbData}\n >\n {Object.keys(filters).length === 0 &&\n !isLoading &&\n permission?.read &&\n data?.fixed_asset_additions?.length === 0 ? (\n <QEmptyIndex\n title={t(\"dashboard.information.fixed_asset_additions.title\")}\n subTitle={t(\n \"dashboard.information.fixed_asset_additions.description\",\n )}\n Icon={NoBudgetData}\n >\n <></>\n </QEmptyIndex>\n ) : (\n <>\n <FixedAssetAdditionFilterForm\n onSubmit={handleFilterSubmit}\n onReset={handleReset}\n />\n <Table\n columns={columns}\n dataSource={data?.fixed_asset_additions}\n pagination={{\n current: interactiveFilter.page.get(),\n pageSize: interactiveFilter.pageSize.get(),\n total: data?.pagination.total_entries,\n showSizeChanger: true,\n pageSizeOptions: [\"5\", \"15\", \"50\", \"100\"],\n }}\n loading={isLoading}\n onChange={handleTableChange}\n rowKey=\"id\"\n locale={{\n emptyText: t(\n \"activerecord.attributes.balance_sheet.no_data_found\",\n ),\n }}\n />\n </>\n )}\n </QPageLayout>\n </UserContext.Provider>\n );\n};\n\nexport default FixedAssetAdditions;\n","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgFixedAssetAdditionMergeAssets = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 55 55\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#000\",\n fillRule: \"evenodd\",\n clipPath: \"url(#FixedAssetAdditionMergeAssets_svg__a)\",\n clipRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.686 9.788h2.051a4.443 4.443 0 0 1-.186 1.678c-.61.184-1.231.246-1.865.187V9.787Z\",\n opacity: 0.758\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M54.907 24.89v5.22c-2.41 10.094-8.812 15.097-19.204 15.008-9.1-1.331-14.476-6.52-16.127-15.567-.57-6.997 1.946-12.56 7.551-16.687.324-.121.634-.09.932.093 5.608 4.42 8 10.2 7.178 17.34-.857 4.264-2.877 7.838-6.059 10.72 7.598 3.814 14.341 2.664 20.229-3.45 4.556-6.237 4.804-12.639.746-19.203-4.046-5.205-9.36-7.35-15.941-6.432-1.458.32-2.856.786-4.195 1.398l-.466-.186a6.463 6.463 0 0 1-.466-1.492c7.213-3.208 13.894-2.369 20.042 2.517 3.096 2.942 5.023 6.515 5.78 10.72Zm-27.78-9.695a2.996 2.996 0 0 1 1.678 1.025c-.87.125-1.74.125-2.61 0 .35-.317.66-.66.932-1.025Zm-2.61 2.983c1.99-.031 3.978 0 5.966.093l.932 1.305c-2.61.125-5.22.125-7.83 0 .335-.455.646-.921.932-1.398Zm-2.05 3.542c3.295-.062 6.589 0 9.88.187l.373.932a75.838 75.838 0 0 1-10.627 0c.296-.312.42-.685.373-1.119Zm-.747 3.17h11.56c-.052.55.01 1.078.186 1.584-4.04.125-8.079.125-12.119 0 .183-.51.308-1.038.373-1.584Zm-.186 3.542H33.28v1.492c-3.855.062-7.709 0-11.56-.187a2.875 2.875 0 0 1-.186-1.305Zm.56 3.356c3.604-.031 7.209 0 10.813.093-.24.377-.426.781-.56 1.212-3.23.217-6.461.249-9.695.093-.212-.456-.399-.923-.559-1.398Zm1.49 3.729a39.486 39.486 0 0 1 7.645 0c-.234.28-.42.59-.56.932-2.11.217-4.223.248-6.338.093a3.055 3.055 0 0 0-.746-1.025Zm2.61 3.356a5.396 5.396 0 0 1 2.425-.093 8.685 8.685 0 0 1-1.119 1.025 7.868 7.868 0 0 0-1.305-.932Z\",\n opacity: 0.864\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.076 9.975h1.119c.021.626.084 1.248.186 1.864-.63.086-1.25.21-1.864.373a24.035 24.035 0 0 1-.373-2.05c.357.052.668-.01.932-.187Z\",\n opacity: 0.733\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.229 9.975c.626.021 1.248.083 1.864.186a9.696 9.696 0 0 1-.28 1.864.735.735 0 0 1-.372.187 23.86 23.86 0 0 1-1.585-.56l.373-1.677Z\",\n opacity: 0.726\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.28 10.72c.163-.024.287.038.373.187.168.473.354.94.559 1.398a.868.868 0 0 1-.373.56c-.394.103-.767.259-1.119.465a4.056 4.056 0 0 1-.932-1.584c.472-.39.969-.732 1.492-1.026Z\",\n opacity: 0.701\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.585 10.72c.6.223 1.19.471 1.77.746.07.736-.18 1.357-.745 1.865a5.423 5.423 0 0 1-1.585-.933 9.085 9.085 0 0 0 .56-1.678Z\",\n opacity: 0.713\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.11 12.398a.533.533 0 0 1 .466.187c.187.498.467.933.84 1.305-.431.463-.928.836-1.492 1.118-.43-.492-.865-.99-1.305-1.491.51-.377 1.007-.75 1.491-1.119Z\",\n opacity: 0.701\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.314 14.636a3.748 3.748 0 0 1 1.491 1.305c-.37.463-.774.898-1.212 1.305a4.67 4.67 0 0 1-1.398-1.305l1.119-1.306Z\",\n opacity: 0.735\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.076 17.246c.622.311 1.18.715 1.678 1.212a6.15 6.15 0 0 1-1.118 1.398 3.267 3.267 0 0 1-1.492-1.025c.288-.546.599-1.074.932-1.585ZM1.398 20.415c1.835.25 2.146 1.058.933 2.424a3.601 3.601 0 0 1-1.678-.746c.2-.586.448-1.145.745-1.678Z\",\n opacity: 0.706\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-.093 25.822v-.373c.14-.47.265-.967.373-1.491l.373-.187c.49.164.987.288 1.491.373a8.358 8.358 0 0 1-.186 1.865 9.202 9.202 0 0 1-2.051-.187Z\",\n opacity: 0.696\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-.093 27.314H1.77c.103.616.165 1.237.187 1.864-.682.082-1.365.145-2.051.186v-2.05Z\",\n opacity: 0.736\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.025 30.67h1.306l.186 1.864a5.474 5.474 0 0 0-1.678.373 8.36 8.36 0 0 1-.56-2.051c.299.05.547-.012.746-.187Z\",\n opacity: 0.74\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.703 33.653c.742.358 1.115.98 1.119 1.864a68.22 68.22 0 0 1-1.864.56 5.559 5.559 0 0 0-.56-1.585 3.7 3.7 0 0 1 1.305-.84Z\",\n opacity: 0.71\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.381 36.45a.453.453 0 0 1 .373.092c.288.421.6.825.932 1.212-.374.53-.84.965-1.398 1.305a10.503 10.503 0 0 1-1.212-1.491l1.305-1.119Z\",\n opacity: 0.714\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.432 38.873a2.93 2.93 0 0 1 1.678 1.305c-.382.475-.786.91-1.212 1.305A3.929 3.929 0 0 1 5.5 40.271c.218-.539.53-1.005.932-1.398Z\",\n opacity: 0.682\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.042 40.924c1.88.277 2.16 1.085.84 2.424a8.365 8.365 0 0 1-1.492-.746.466.466 0 0 1 0-.56c.26-.352.477-.724.652-1.118Z\",\n opacity: 0.731\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.025 42.229a5.352 5.352 0 0 1 1.865.745 3.71 3.71 0 0 1-.746 1.679 33.157 33.157 0 0 0-1.585-.56 3.59 3.59 0 0 1 .466-1.864Z\",\n opacity: 0.71\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.026 42.229c.443.45.754 1.009.932 1.678a.68.68 0 0 1-.187.28c-.568.126-1.128.281-1.678.466a4.436 4.436 0 0 1-.56-2.051 3.31 3.31 0 0 0 1.492-.373Z\",\n opacity: 0.697\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.008 43.161a4.162 4.162 0 0 1 2.051.28c-.177.57-.24 1.16-.186 1.77a15.716 15.716 0 0 1-2.051-.372 4.447 4.447 0 0 0 .187-1.678Z\",\n opacity: 0.77\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.364 43.161h1.865c.132.613.194 1.234.186 1.864-.632.025-1.253.056-1.864.094a5.532 5.532 0 0 1-.187-1.958Z\",\n opacity: 0.742\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"FixedAssetAdditionMergeAssets_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M0 0h55v55H0z\"\n})))));\nconst Memo = /*#__PURE__*/memo(SvgFixedAssetAdditionMergeAssets);\nexport default Memo;","var _path, _path2, _path3, _path4, _path5, _path6;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgFixedAssetAdditionLinkBill = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 60 60\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"evenodd\",\n d: \"M8.878.102c2.247-.39 3.845.426 4.796 2.449.101 1.223.136 2.447.102 3.673 8.64-.034 17.279 0 25.918.103l.306.306c.102 7.278.136 14.557.102 21.836 8.161-.937 14.046 2.26 17.653 9.592 2.434 7.718.495 14.079-5.816 19.082-5.57 3.243-11.215 3.379-16.939.408a17.597 17.597 0 0 1-4.694-4.286L1.94 53.061a1.495 1.495 0 0 1-.919-.714c-.136-15.17-.136-30.34 0-45.51l.51-.51a58.863 58.863 0 0 1 4.899-.103c-.647-2.697.17-4.738 2.449-6.122Zm1.02 2.04c.83.049 1.409.457 1.735 1.225.102.95.136 1.903.102 2.857H8.469a6.952 6.952 0 0 1 .51-3.469c.288-.261.594-.465.92-.612ZM3.163 8.266H6.43c-.088 2.261.014 4.506.306 6.735 1.342 2.078 3.145 2.589 5.408 1.53 1.433-.992 1.909-2.319 1.428-3.979-.345-.358-.753-.46-1.224-.306a34.189 34.189 0 0 0-1.224 2.245c-1.176.603-2.026.297-2.551-.919a69.065 69.065 0 0 1-.103-5.306h29.592c.034 6.94 0 13.878-.102 20.817-6.844 2.631-10.348 7.631-10.51 15a13.777 13.777 0 0 0 1.429 6.734c-8.572.102-17.143.136-25.715.102V8.265Zm24.286 7.143c2.776.046 3.83 1.406 3.163 4.082-1.42 1.728-2.984 1.864-4.693.408-.963-2.046-.453-3.542 1.53-4.49ZM40.92 30.51c5.76-.568 10.285 1.473 13.57 6.123 3.118 5.602 2.778 10.976-1.02 16.122-5.584 5.58-11.74 6.293-18.469 2.143-5.354-4.521-6.749-10.066-4.184-16.633 2.229-4.103 5.596-6.688 10.103-7.755Zm.612 6.53h3.06c-.033 1.635 0 3.267.103 4.899l.51.51c1.563.102 3.128.136 4.694.102v3.061a58.88 58.88 0 0 0-4.898.102l-.306.306c-.102 1.632-.136 3.264-.102 4.898H41.53c.034-1.702 0-3.402-.102-5.102a33.982 33.982 0 0 0-5.204-.204v-3.061c1.566.034 3.13 0 4.694-.102.186-.076.357-.178.51-.306.102-1.7.136-3.4.102-5.102Z\",\n clipRule: \"evenodd\",\n opacity: 0.862\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"evenodd\",\n d: \"M27.653 13.163c4.236.324 5.971 2.569 5.204 6.735-1.154 2.465-3.093 3.52-5.816 3.163-2.888-.979-4.147-2.985-3.776-6.02.686-2.22 2.149-3.512 4.388-3.878Zm-.204 2.245c-1.983.948-2.493 2.444-1.53 4.49 1.71 1.456 3.274 1.32 4.693-.408.668-2.675-.387-4.036-3.163-4.082Z\",\n clipRule: \"evenodd\",\n opacity: 0.843\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"evenodd\",\n d: \"M7.04 25.816c6.94-.034 13.879 0 20.817.102.816.68.816 1.36 0 2.041a530.69 530.69 0 0 1-20.816 0c-.815-.749-.815-1.463 0-2.143Z\",\n clipRule: \"evenodd\",\n opacity: 0.826\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"evenodd\",\n d: \"M7.04 30.714c6.94-.034 13.879 0 20.817.102.816.68.816 1.36 0 2.041-6.87.136-13.741.136-20.612 0-.758-.333-.996-.911-.714-1.735.203-.115.373-.251.51-.408Z\",\n clipRule: \"evenodd\",\n opacity: 0.822\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"evenodd\",\n d: \"M39.898 35c2.11-.034 4.219 0 6.326.102l.51.51a54.04 54.04 0 0 1 .103 4.694c1.566-.034 3.13 0 4.694.102.245.184.415.422.51.715a42.944 42.944 0 0 1 0 5.918.91.91 0 0 0-.306.408c-1.627.204-3.26.272-4.898.204.034 1.566 0 3.13-.102 4.694a2.352 2.352 0 0 1-.919.714 37.232 37.232 0 0 1-5.51 0 1.424 1.424 0 0 1-.714-.51c-.102-1.631-.136-3.264-.102-4.898a58.88 58.88 0 0 1-4.898-.102 1.424 1.424 0 0 1-.51-.714 40.036 40.036 0 0 1 0-5.715 1.93 1.93 0 0 1 .306-.51 22.702 22.702 0 0 1 5.102-.306c-.034-1.634 0-3.267.102-4.898a.88.88 0 0 0 .306-.408Zm1.633 2.04c.033 1.703 0 3.404-.102 5.103-.154.128-.324.23-.51.306a54.078 54.078 0 0 1-4.695.102v3.061a33.994 33.994 0 0 1 5.205.204c.102 1.7.135 3.4.102 5.102h3.06a58.88 58.88 0 0 1 .103-4.898l.306-.306c1.631-.102 3.264-.136 4.898-.102v-3.061c-1.566.034-3.13 0-4.694-.102l-.51-.51a58.88 58.88 0 0 1-.102-4.898H41.53Z\",\n clipRule: \"evenodd\",\n opacity: 0.864\n})), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"evenodd\",\n d: \"M7.04 36.837c3.267-.034 6.532 0 9.797.102.578.747.51 1.428-.204 2.04-3.198.137-6.395.137-9.592 0-.815-.748-.815-1.463 0-2.142Z\",\n clipRule: \"evenodd\",\n opacity: 0.81\n})));\nconst Memo = /*#__PURE__*/memo(SvgFixedAssetAdditionLinkBill);\nexport default Memo;","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgFixedAssetAdditionCreateBill = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 55 55\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"evenodd\",\n d: \"M8.699 1.59c12.472-.031 24.943 0 37.415.094 2.595.786 4.247 2.501 4.957 5.144.181 4.003.119 7.994-.187 11.973-.508 1.354-1.475 2.196-2.9 2.526-2.119.093-4.239.124-6.36.093.031 9.977 0 19.955-.093 29.932-.89 1.338-2.107 1.743-3.648 1.216a86.76 86.76 0 0 0-6.548-3.835 116.06 116.06 0 0 0-7.67 4.396 4.72 4.72 0 0 1-1.87 0c-2.56-1.466-5.117-2.932-7.67-4.396a72.974 72.974 0 0 0-6.736 3.835c-1.644.596-2.86.128-3.648-1.403a2626.926 2626.926 0 0 1 0-44.337C4.487 4.182 6.14 2.436 8.7 1.59Zm1.87 3.554c9.355-.03 18.708 0 28.062.094a9.295 9.295 0 0 0-.655 2.338l-.187 40.596a166.06 166.06 0 0 0-4.583-2.9 7.7 7.7 0 0 0-3.18-.187 143.79 143.79 0 0 0-7.39 4.21 362.647 362.647 0 0 1-6.641-4.023 6.377 6.377 0 0 0-3.742 0 40.379 40.379 0 0 0-4.957 3.087 2161.874 2161.874 0 0 1 0-40.221c.416-1.792 1.507-2.79 3.274-2.994Zm32.739.188c2.334-.439 3.737.497 4.209 2.806.125 3.055.125 6.11 0 9.166l-.28.281c-1.87.093-3.741.125-5.613.093-.031-3.367 0-6.735.094-10.102.21-.983.74-1.73 1.59-2.244Z\",\n clipRule: \"evenodd\",\n opacity: 0.939\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"evenodd\",\n d: \"M13.75 14.498c5.114-.03 10.227 0 15.34.094 1.416 1.037 1.479 2.16.187 3.367a322.02 322.02 0 0 1-15.527 0c-1.47-1.138-1.47-2.291 0-3.46Z\",\n clipRule: \"evenodd\",\n opacity: 0.943\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"evenodd\",\n d: \"M13.937 23.665c4.99-.031 9.978 0 14.966.094 1.343.756 1.592 1.785.748 3.086-.264.245-.576.4-.935.468-4.864.125-9.728.125-14.592 0-1.534-.623-1.877-1.652-1.029-3.087.264-.24.544-.427.842-.561Z\",\n clipRule: \"evenodd\",\n opacity: 0.902\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"evenodd\",\n d: \"M14.311 33.019c4.74-.031 9.48 0 14.218.093 1.73.636 2.072 1.727 1.029 3.274-.2.13-.418.223-.655.28-4.989.126-9.977.126-14.966 0-1.362-.714-1.643-1.743-.842-3.086.405-.23.81-.417 1.216-.561Z\",\n clipRule: \"evenodd\",\n opacity: 0.903\n})));\nconst Memo = /*#__PURE__*/memo(SvgFixedAssetAdditionCreateBill);\nexport default Memo;","import { Flex, Typography, theme } from \"antd\";\n\nimport QPageLayout from \"components/layout/QPageLayout\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { FixedAssetAdditionCard } from \"components/tenant/FixedAssetAdditions/FixedAssetAdditionNew/Card\";\nimport BackButton from \"components/layout/BackButton\";\nimport { usePermission } from \"hooks/index\";\nimport FixedAssetAdditionMergeAssetSvg from \"assets/icons/FixedAssetAdditionMergeAssets.svg\";\nimport FixedAssetAdditionLinkBillSvg from \"assets/icons/FixedAssetAdditionLinkBill.svg\";\nimport FixedAssetAdditionCreateBillSvg from \"assets/icons/FixedAssetAdditionCreateBill.svg\";\n\nconst FixedAssetAdditionNew = () => {\n const { t } = useTranslation();\n const { Text } = Typography;\n const { useToken } = theme;\n const { token } = useToken();\n const headerStyle = {\n color: token.colorPrimary,\n fontSize: \"24px\",\n };\n const billPermission = usePermission(\"bill\");\n const classificationPermission = usePermission(\"assetClassification\");\n const breadCrumbData = [\n {\n title: (\n <a href=\"/tenant/fixed_assets\">\n {t(\"activerecord.attributes.layout.fixed_assets\")}\n </a>\n ),\n },\n {\n title: (\n <a href=\"/tenant/fixed_asset_additions\">\n {t(\"fixed_asset_additions.layout.title\")}\n </a>\n ),\n },\n {\n title: t(\"fixed_asset_additions.layout.new\"),\n },\n ];\n\n const additionTypes = [\n {\n name: \"merge\",\n icon: (\n <FixedAssetAdditionMergeAssetSvg\n style={{ fontSize: \"40px\" }}\n fill=\"currentColor\"\n />\n ),\n text: t(\"fixed_asset_additions.layout.merge_assets\"),\n link: \"/tenant/fixed_asset_additions/new/merge\",\n isAllowed: classificationPermission?.read,\n },\n {\n name: \"link_bill\",\n icon: (\n <FixedAssetAdditionLinkBillSvg\n style={{ fontSize: \"40px\" }}\n fill=\"currentColor\"\n />\n ),\n text: t(\"fixed_asset_additions.layout.link_bill\"),\n link: \"/tenant/fixed_asset_additions/new/link_bill\",\n isAllowed: classificationPermission?.read && billPermission?.read,\n },\n {\n name: \"create_bill\",\n icon: (\n <FixedAssetAdditionCreateBillSvg\n style={{ fontSize: \"40px\" }}\n fill=\"currentColor\"\n />\n ),\n text: t(\"fixed_asset_additions.layout.create_bill\"),\n link: \"/tenant/fixed_asset_additions/new/create_bill\",\n isAllowed: classificationPermission?.read && billPermission?.approve,\n },\n ];\n\n return (\n <QPageLayout\n title={t(\"fixed_asset_additions.layout.title\")}\n actionBtns={<BackButton />}\n breadCrumbData={breadCrumbData}\n >\n <Flex\n gap={\"64px\"}\n style={{ minHeight: \"60vh\" }}\n justify=\"center\"\n align=\"center\"\n vertical\n >\n <Text style={headerStyle}>\n {t(\"fixed_asset_additions.layout.select_addition_type\")}\n </Text>\n <Flex justify=\"center\" align=\"center\" gap={\"42px\"} wrap={\"wrap\"}>\n {additionTypes.map((el, i) => {\n if (!el.isAllowed) {\n return;\n }\n\n return (\n <a href={el.link} key={`card-${i}`}>\n <Flex style={{ cursor: \"pointer\" }}>\n <FixedAssetAdditionCard text={el.text} icon={el.icon} />\n </Flex>\n </a>\n );\n })}\n </Flex>\n </Flex>\n </QPageLayout>\n );\n};\n\nexport default FixedAssetAdditionNew;\n","import { useTranslation } from \"react-i18next\";\nimport { Skeleton, message } from \"antd\";\n\nimport QPageLayout from \"components/layout/QPageLayout\";\nimport { useMutation, useQuery } from \"react-query\";\nimport {\n createFixedAssetAddition,\n initFixedAssetAddition,\n} from \"api/FixedAssetAdditions\";\nimport { AxiosError } from \"axios\";\nimport { ApiError } from \"types/Error\";\nimport BackButton from \"components/layout/BackButton\";\nimport { FixedAssetAdditionCreateBillForm } from \"components/tenant/FixedAssetAdditions/CreateBill\";\nimport RecordContext from \"contexts/RecordContext\";\nimport { currentUserKeys, fixedAssetAdditionKeys } from \"tokens/query-keys\";\nimport UserContext from \"contexts/UserContext\";\nimport { getCurrentUser } from \"api/CurrentUser\";\n\nconst FixedAssetAdditionNewCreateBill = () => {\n const { t } = useTranslation();\n const [messageAPI, msgContext] = message.useMessage();\n\n const userQuery = useQuery({\n queryKey: currentUserKeys.all,\n queryFn: getCurrentUser,\n });\n\n const breadCrumbData = [\n {\n title: (\n <a href=\"/tenant/fixed_assets\">\n {t(\"activerecord.attributes.layout.fixed_assets\")}\n </a>\n ),\n },\n {\n title: (\n <a href=\"/tenant/fixed_asset_additions\">\n {t(\"fixed_asset_additions.layout.title\")}\n </a>\n ),\n },\n {\n title: t(\"fixed_asset_additions.layout.new\"),\n },\n ];\n\n const { data, isLoading } = useQuery({\n queryKey: fixedAssetAdditionKeys.detail?.(\"new\"),\n queryFn: () => initFixedAssetAddition(),\n cacheTime: 0,\n });\n\n const fixedAssetAdditionMutation = useMutation({\n mutationFn: createFixedAssetAddition,\n onSuccess: (_data) => {\n window.location.href = `/tenant/fixed_asset_additions`;\n },\n onError: (error: AxiosError<ApiError>) => {\n messageAPI.open({\n type: \"error\",\n duration: 10,\n style: {\n color: \"#d76d6d\",\n },\n content:\n error.response?.data.message?.errors || t(\"forms.messages.error\"),\n });\n },\n });\n\n return (\n <QPageLayout\n title={t(\"fixed_asset_additions.layout.title\")}\n actionBtns={<BackButton />}\n breadCrumbData={breadCrumbData}\n messageHolder={msgContext}\n >\n {isLoading || userQuery.isLoading ? (\n <Skeleton />\n ) : (\n <UserContext.Provider value={userQuery.data || null}>\n <RecordContext.Provider value={data || { id: 0 }}>\n <FixedAssetAdditionCreateBillForm\n mutation={fixedAssetAdditionMutation}\n />\n </RecordContext.Provider>\n </UserContext.Provider>\n )}\n </QPageLayout>\n );\n};\n\nexport default FixedAssetAdditionNewCreateBill;\n","import { useTranslation } from \"react-i18next\";\nimport { Skeleton, message } from \"antd\";\n\nimport QPageLayout from \"components/layout/QPageLayout\";\nimport { useMutation, useQuery } from \"react-query\";\nimport {\n createFixedAssetAddition,\n initFixedAssetAddition,\n} from \"api/FixedAssetAdditions\";\nimport { AxiosError } from \"axios\";\nimport { ApiError } from \"types/Error\";\nimport BackButton from \"components/layout/BackButton\";\nimport { FixedAssetAdditionLinkBillForm } from \"components/tenant/FixedAssetAdditions/LinkBill\";\nimport RecordContext from \"contexts/RecordContext\";\nimport { fixedAssetAdditionKeys } from \"tokens/query-keys\";\n\nconst FixedAssetAdditionNewLinkBill = () => {\n const { t } = useTranslation();\n const [messageAPI, msgContext] = message.useMessage();\n\n const breadCrumbData = [\n {\n title: (\n <a href=\"/tenant/fixed_assets\">\n {t(\"activerecord.attributes.layout.fixed_assets\")}\n </a>\n ),\n },\n {\n title: (\n <a href=\"/tenant/fixed_asset_additions\">\n {t(\"fixed_asset_additions.layout.title\")}\n </a>\n ),\n },\n {\n title: t(\"fixed_asset_additions.layout.new\"),\n },\n ];\n\n const { data, isLoading } = useQuery({\n queryKey: fixedAssetAdditionKeys.detail?.(\"new\"),\n queryFn: () => initFixedAssetAddition(),\n cacheTime: 0,\n });\n\n const fixedAssetAdditionMutation = useMutation({\n mutationFn: createFixedAssetAddition,\n onSuccess: (_data) => {\n window.location.href = `/tenant/fixed_asset_additions`;\n },\n onError: (error: AxiosError<ApiError>) => {\n messageAPI.open({\n type: \"error\",\n duration: 10,\n style: {\n color: \"#d76d6d\",\n },\n content:\n error.response?.data.message?.errors || t(\"forms.messages.error\"),\n });\n },\n });\n\n return (\n <QPageLayout\n title={t(\"fixed_asset_additions.layout.title\")}\n actionBtns={<BackButton />}\n breadCrumbData={breadCrumbData}\n messageHolder={msgContext}\n >\n {isLoading ? (\n <Skeleton />\n ) : (\n <RecordContext.Provider value={data ?? { id: 0 }}>\n <FixedAssetAdditionLinkBillForm\n mutation={fixedAssetAdditionMutation}\n />\n </RecordContext.Provider>\n )}\n </QPageLayout>\n );\n};\n\nexport default FixedAssetAdditionNewLinkBill;\n","import { useTranslation } from \"react-i18next\";\nimport { Skeleton, message } from \"antd\";\n\nimport QPageLayout from \"components/layout/QPageLayout\";\nimport { useMutation, useQuery } from \"react-query\";\nimport {\n createFixedAssetAddition,\n initFixedAssetAddition,\n} from \"api/FixedAssetAdditions\";\nimport { AxiosError } from \"axios\";\nimport { ApiError } from \"types/Error\";\nimport BackButton from \"components/layout/BackButton\";\nimport { FixedAssetAdditionMergeForm } from \"components/tenant/FixedAssetAdditions/Merge\";\nimport { fixedAssetAdditionKeys } from \"tokens/query-keys\";\nimport RecordContext from \"contexts/RecordContext\";\n\nconst FixedAssetAdditionNewMerge = () => {\n const { t } = useTranslation();\n const [messageAPI, msgContext] = message.useMessage();\n\n const breadCrumbData = [\n {\n title: (\n <a href=\"/tenant/fixed_assets\">\n {t(\"activerecord.attributes.layout.fixed_assets\")}\n </a>\n ),\n },\n {\n title: (\n <a href=\"/tenant/fixed_asset_additions\">\n {t(\"fixed_asset_additions.layout.title\")}\n </a>\n ),\n },\n {\n title: t(\"fixed_asset_additions.layout.new\"),\n },\n ];\n\n const { data, isLoading } = useQuery({\n queryKey: fixedAssetAdditionKeys.detail?.(\"new\"),\n queryFn: () => initFixedAssetAddition(),\n cacheTime: 0,\n });\n\n const fixedAssetAdditionMutation = useMutation({\n mutationFn: createFixedAssetAddition,\n onSuccess: () => {\n window.location.href = `/tenant/fixed_asset_additions`;\n },\n onError: (error: AxiosError<ApiError>) => {\n messageAPI.open({\n type: \"error\",\n duration: 10,\n style: {\n color: \"#d76d6d\",\n },\n content:\n error.response?.data.message?.errors || t(\"forms.messages.error\"),\n });\n },\n });\n\n return (\n <QPageLayout\n title={t(\"fixed_asset_additions.layout.title\")}\n actionBtns={<BackButton />}\n breadCrumbData={breadCrumbData}\n messageHolder={msgContext}\n >\n {isLoading ? (\n <Skeleton />\n ) : (\n <RecordContext.Provider value={data || { id: 0 }}>\n <FixedAssetAdditionMergeForm mutation={fixedAssetAdditionMutation} />\n </RecordContext.Provider>\n )}\n </QPageLayout>\n );\n};\n\nexport default FixedAssetAdditionNewMerge;\n","import { Skeleton } from \"antd\";\nimport { getCurrentUser } from \"api/CurrentUser\";\nimport { FixedAssetAdditionEdit } from \"components/tenant/FixedAssetAdditions/FixedAssetAdditionEdit\";\nimport UserContext from \"contexts/UserContext\";\nimport { useQuery } from \"react-query\";\nimport { currentUserKeys } from \"tokens/query-keys\";\n\nconst FixedAssetAdditionShowPage = ({\n additionID,\n disabled,\n}: {\n additionID: number;\n disabled: boolean;\n}) => {\n const userQuery = useQuery({\n queryKey: currentUserKeys.all,\n queryFn: getCurrentUser,\n });\n\n if (userQuery.isLoading || !userQuery.data) return <Skeleton />;\n\n return (\n <UserContext.Provider value={userQuery.data}>\n <FixedAssetAdditionEdit additionID={additionID} disabled={disabled} />;\n </UserContext.Provider>\n );\n};\n\nexport default FixedAssetAdditionShowPage;\n","//@ts-nocheck\nimport React from 'react'\nimport Portal from 'components/layout/Portal'\nimport { useTranslation } from 'react-i18next'\nimport { theme } from 'antd';\n\nconst {useToken} = theme;\n\nconst IndexPortal = ({}) => { \n const { t } = useTranslation();\n const { token } = useToken();\n return (\n <>\n <Portal Component={<div></div>} htmlRoot='portal__element_name' />\n </>\n )\n}\n\nexport default IndexPortal","import Portal from \"components/layout/Portal\";\nimport BarcodeGuidanceButton from \"components/tenant/commercial_document/internal/BarcodeGuidanceButton\";\n\nconst InventoryTransfers = () => {\n return (\n <>\n <Portal\n Component={<BarcodeGuidanceButton headerKey=\"header_inventory_transfer\"/>}\n htmlRoot=\"portal__barcode_guidance\"\n />\n </>\n );\n};\n\nexport default InventoryTransfers;\n","import { useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Layout, Table, Tabs, theme } from \"antd\";\nimport QContent from \"components/layout/QContent\";\nimport SkipProcessModal from \"components/tenant/recurring_transactions/SkipProcessModal\";\nimport {\n useExecuteSchedule,\n useRecurringTransactionSchedules,\n useTransactionsColumns,\n} from \"hooks/recurring_transactions\";\nimport styles from \"styles/layout.scss\";\nimport { RTDocumentsTypes, RTTabs } from \"types/recurring_transactions\";\n\nconst { useToken } = theme;\n\nconst RecurringTransactionsInDashboard = () => {\n const { token } = useToken();\n const { t } = useTranslation();\n\n const tabs = [\n { key: \"All\", label: t(\"templates.projects.all\") },\n { key: \"Invoice\", label: t(\"activerecord.attributes.dashboard.invoices\") },\n { key: \"Bill\", label: t(\"activerecord.attributes.dashboard.bills\") },\n { key: \"SimpleBill\", label: t(\"activerecord.attributes.layout.simple_bills\") },\n ];\n\n const [isSkipProcessModalOpen, setIsSkipProcessModalOpen] = useState<boolean>(false);\n const [selectedTab, setSelectedTab] = useState<RTDocumentsTypes | null>(null);\n const [currentPage, setCurrentPage] = useState<number>(1);\n const [pageSize, setPageSize] = useState<number>(10);\n const [expandedRowKeys, setExpandedRowKeys] = useState<React.Key[]>([]);\n const selectedTransactionId = useRef<number | null>(null);\n\n const { mutate: runProcessMutate, isLoading: isRunProcessing } = useExecuteSchedule();\n const { mutateAsync: skipProcessMutateAsync, isLoading: isSkipProcessing } = useExecuteSchedule();\n\n const { data, isSchedulesLoading } = useRecurringTransactionSchedules(\n currentPage,\n pageSize,\n selectedTab\n );\n\n const RTSchedulesData = data?.recurring_transaction_schedules || [];\n\n const onTabsChange = (activeKey: string) => {\n const key: RTTabs = activeKey as RTTabs;\n\n setCurrentPage(1);\n if (key === \"All\") {\n setSelectedTab(null);\n } else {\n setSelectedTab(key);\n }\n };\n\n const handleStartProcess = (id: number) => {\n runProcessMutate({ id, operation: \"run\" });\n };\n\n const handleSkipProcess = async () => {\n try {\n if (selectedTransactionId.current) {\n await skipProcessMutateAsync({ id: selectedTransactionId.current, operation: \"skip\" });\n }\n } catch (error) {\n // console.log(error);\n } finally {\n setIsSkipProcessModalOpen(false);\n }\n };\n\n const openSkipProcessModal = (id: number) => {\n setIsSkipProcessModalOpen(true);\n selectedTransactionId.current = id;\n };\n\n const { columns } = useTransactionsColumns({\n handleStartProcess,\n openSkipProcessModal,\n isRunProcessing,\n });\n\n return (\n <Layout style={{ marginBottom: token.marginXXL }} className={styles.q_ant_input__radio}>\n <QContent title={t(\"recurring_transactions.details\")}>\n <Tabs\n onChange={onTabsChange}\n type=\"card\"\n tabBarStyle={{ marginBottom: 0 }}\n items={tabs.map((tab) => {\n return {\n label: tab.label,\n key: tab.key,\n children: (\n <Table\n columns={columns}\n dataSource={RTSchedulesData}\n expandable={{\n expandedRowKeys,\n onExpand: (expanded, record) =>\n expanded ? setExpandedRowKeys([record.reference]) : setExpandedRowKeys([]),\n childrenColumnName: \"original_documents\",\n }}\n rowKey=\"reference\"\n virtual\n scroll={{ x: 1000, y: 1000 }}\n loading={isSchedulesLoading}\n pagination={{\n current: currentPage,\n total: (data?.meta?.total_pages ?? 1) * pageSize,\n hideOnSinglePage: true,\n pageSize: pageSize,\n showSizeChanger: true,\n onShowSizeChange: (_, size) => setPageSize(size),\n pageSizeOptions: [10, 15, 25, 50, 75, 100],\n onChange: (page) => setCurrentPage(page),\n }}\n />\n ),\n };\n })}\n />\n <SkipProcessModal\n isModalOpen={isSkipProcessModalOpen}\n setIsModalOpen={setIsSkipProcessModalOpen}\n onSkipProcess={handleSkipProcess}\n isSkipping={isSkipProcessing}\n />\n </QContent>\n </Layout>\n );\n};\n\nexport default RecurringTransactionsInDashboard;\n","import { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { PlusOutlined } from \"@ant-design/icons\";\nimport { Button } from \"antd\";\nimport Link from \"antd/es/typography/Link\";\nimport QPageLayout from \"components/layout/QPageLayout\";\nimport NoRecurringTransactions from \"components/tenant/recurring_transactions/index/NoRecurringTransactions\";\nimport RecordsFilter from \"components/tenant/recurring_transactions/index/RecordsFilter\";\nimport RecordsTable from \"components/tenant/recurring_transactions/index/RecordsTable\";\nimport IndexTabs from \"components/tenant/recurring_transactions/index/Tabs\";\nimport { useInteractiveFilter } from \"hooks/app\";\nimport { useRTPermissions, useRTRecords } from \"hooks/recurring_transactions\";\n\nconst RecurringTransactions = () => {\n const { t } = useTranslation();\n\n const pageTitle = t(\"recurring_transactions.title\");\n\n const [hasFilterUpdated, setHasFilterUpdated] = useState(false);\n\n const { isPermissionsLoading, permissions } = useRTPermissions();\n\n const canWrite: boolean =\n !isPermissionsLoading && (permissions?.recurring_transactions?.write || false);\n\n const interactiveFilter = useInteractiveFilter(\n {\n setFilterUpdate: setHasFilterUpdated,\n path: \"\",\n },\n [hasFilterUpdated]\n );\n\n const { data } = useRTRecords({\n queryKey: [\"RTIndex\", interactiveFilter.url],\n querySearch: interactiveFilter.url,\n keepPreviousData: true,\n });\n\n return (\n <QPageLayout\n title={pageTitle}\n breadCrumbData={[\n {\n title: <Link href=\"#\">{t(\"activerecord.attributes.layout.accounting\")}</Link>,\n },\n { title: pageTitle },\n ]}\n actionBtns={\n <Button type=\"primary\" href=\"recurring_transactions/new\" disabled={!canWrite}>\n <PlusOutlined /> {t(\"recurring_transactions.create.button\")}\n </Button>\n }\n >\n {data?.records.length === 0 && data?.filters.length === 0 ? (\n <NoRecurringTransactions />\n ) : (\n <>\n <IndexTabs\n form={interactiveFilter.form}\n page={interactiveFilter.page}\n update={interactiveFilter.update}\n />\n <RecordsFilter {...interactiveFilter} />\n <RecordsTable {...interactiveFilter} />\n </>\n )}\n </QPageLayout>\n );\n};\n\nexport default RecurringTransactions;\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgDocumentArrowDownOutline = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 32 32\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#3386C3\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5,\n d: \"M26 19v-3.5a4.5 4.5 0 0 0-4.5-4.5h-2A1.5 1.5 0 0 1 18 9.5v-2A4.5 4.5 0 0 0 13.5 3H11m1 16 4 4m0 0 4-4m-4 4v-8M14 3H7.5A1.5 1.5 0 0 0 6 4.5v23A1.5 1.5 0 0 0 7.5 29h17a1.5 1.5 0 0 0 1.5-1.5V15A12 12 0 0 0 14 3z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgDocumentArrowDownOutline);\nexport default Memo;","import { ReactNode, useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useMutation } from \"react-query\";\nimport { CloseCircleOutlined } from \"@ant-design/icons\";\nimport {\n Button,\n Card,\n Col,\n Divider,\n Flex,\n Form,\n Modal,\n Radio,\n Result,\n Row,\n Space,\n Table,\n theme,\n Tooltip,\n Typography,\n} from \"antd\";\nimport Link from \"antd/es/typography/Link\";\nimport dayjs, { Dayjs } from \"dayjs\";\nimport { createRecurringTransaction } from \"api/recurring_transactions\";\nimport DocumentArrowDownOutline from \"assets/icons/document-arrow-down-outline.svg\";\nimport BackButton from \"components/layout/BackButton\";\nimport QPageLayout from \"components/layout/QPageLayout\";\nimport {\n AddDocumentsButton,\n CustomDatePicker,\n CustomInput,\n CustomInputNumber,\n CustomSelect,\n CustomSubmitButton,\n CustomTextArea,\n} from \"components/tenant/recurring_transactions/CustomFormItems\";\nimport Documents from \"components/tenant/recurring_transactions/documents\";\nimport {\n useDocumentsColumns,\n useNextReference,\n useRTPermissions,\n} from \"hooks/recurring_transactions\";\nimport { RecurringTransactionData, SelectedDocument } from \"types/recurring_transactions\";\n\nconst { useToken } = theme;\nconst { Title } = Typography;\n\nconst ACTIONS = \"recurring_transactions.actions\";\nconst CANCEL_CONFIRMATION = \"recurring_transactions.create.cancel_confirmation\";\nconst DETAILS = \"recurring_transactions.create.details\";\nconst DOCUMENTS = \"recurring_transactions.create.documents\";\nconst MAIN_INFO = \"recurring_transactions.create.main_info\";\nconst MORE_INFO = \"recurring_transactions.create.more_info\";\n\nconst NewRecurringTransactions = () => {\n const { token } = useToken();\n const { t } = useTranslation();\n const [form] = Form.useForm();\n const title = t(\"recurring_transactions.new\");\n\n const [startDate, setStartDate] = useState<Dayjs>(dayjs());\n const [maxRuns, setMaxRuns] = useState<number>(1);\n const [isDocumentsModalOpen, setIsDocumentsModalOpen] = useState<boolean>(false);\n const [documentsData, setDocumentsData] = useState<SelectedDocument[]>(\n form.getFieldValue(\"documents\") || []\n );\n const [isCancellationModalOpen, setIsCancellationModalOpen] = useState<boolean>(false);\n const [statusesArray, setStatusesArray] = useState<string[]>([]);\n const [processingButton, setProcessingButton] = useState<string | null>(null);\n const [submitButtons, setSubmitButtons] = useState<ReactNode[]>([]);\n\n const { isPermissionsLoading, permissions } = useRTPermissions();\n\n const { nextReference, refetch } = useNextReference();\n\n const onStartDateChange = (selectedDate: Dayjs) => {\n if (selectedDate < dayjs(startDate)) {\n form.setFieldValue(\"end_date\", \"\");\n }\n setStartDate(selectedDate);\n };\n\n const onFrequencyChange = (value: string) => {\n let runs: number;\n switch (value) {\n case \"daily\":\n runs = 366;\n break;\n case \"weekly\":\n runs = 52;\n break;\n case \"monthly\":\n runs = 12;\n break;\n case \"quarterly\":\n runs = 4;\n break;\n case \"semi_annually\":\n runs = 2;\n break;\n default:\n runs = 1;\n }\n setMaxRuns(runs);\n };\n\n const handleOpenDocuments = () => {\n setIsDocumentsModalOpen(true);\n };\n\n const handleSaveDocumentsSelection = (documents: SelectedDocument[]) => {\n setDocumentsData(documents);\n };\n\n const handleDeleteDocument = (id: number) => {\n setDocumentsData((prevDocuments) => prevDocuments.filter((document) => document.id !== id));\n };\n\n const modalCloseHandler = () => {\n setIsDocumentsModalOpen(false);\n };\n\n const columns = useDocumentsColumns({ handleDeleteDocument });\n\n const handleResetForm = () => {\n setProcessingButton(null);\n setDocumentsData([]);\n form.resetFields();\n refetch();\n };\n\n useEffect(() => {\n if (nextReference) {\n form.setFieldValue(\"reference\", nextReference);\n }\n }, [nextReference]);\n\n const mutation = useMutation(createRecurringTransaction, {\n onSuccess: () => {\n if (form.getFieldValue(\"redirect\") === \"index\") {\n window.location.replace(\"/tenant/recurring_transactions\");\n }\n handleResetForm();\n },\n onError: (error: { response?: { data?: { error?: Record<string, string[]> } } }) => {\n if (error.response?.data?.error) {\n const errors = error.response.data.error;\n const fieldErrors = Object.keys(errors).map((field) => ({\n name: field,\n errors: errors[field],\n }));\n form.setFields(fieldErrors);\n } else {\n console.error(\"An unexpected error occurred:\", error);\n }\n },\n });\n\n const scrollToError = (field: string) => {\n if (form.getFieldError(field).length > 0) {\n form.scrollToField(field, { block: \"center\" });\n }\n };\n\n const scrollToEndTypeError = () => {\n scrollToError(\"end_date\");\n scrollToError(\"total_runs\");\n };\n\n useEffect(() => {\n scrollToEndTypeError();\n }, [\n form.getFieldValue(\"end_type\"),\n form.getFieldsError().filter((field) => field.errors.length > 0),\n ]);\n\n useEffect(() => {\n form.setFieldValue(\"documents\", documentsData);\n documentsData.length > 0 && form.validateFields([\"documents\"]);\n }, [documentsData]);\n\n useEffect(() => {\n if (!isPermissionsLoading) {\n const statuses: string[] = [];\n const submitButtons: ReactNode[] = [];\n const canApprove = permissions?.recurring_transactions.approve;\n const canWrite = permissions?.recurring_transactions.write;\n\n if (canWrite) {\n statuses.push(\"draft\");\n if (canApprove) {\n statuses.push(\"approved\");\n submitButtons.push(\n <CustomSubmitButton\n key=\"start_process\"\n text=\"start_process\"\n isProcessing={processingButton === \"start_process\" && mutation.isLoading}\n onClick={() => setProcessingButton(\"start_process\")}\n redirect=\"index\"\n />\n );\n submitButtons.push(\n <CustomSubmitButton\n key=\"start_and_create\"\n text=\"start_and_create\"\n isProcessing={processingButton === \"start_and_create\" && mutation.isLoading}\n onClick={() => setProcessingButton(\"start_and_create\")}\n />\n );\n } else if (!canApprove) {\n statuses.push(\"awaiting_approval\");\n }\n submitButtons.push(\n <CustomSubmitButton\n key=\"save_as_draft\"\n text=\"save_as_draft\"\n isProcessing={processingButton === \"save_as_draft\" && mutation.isLoading}\n onClick={() => setProcessingButton(\"save_as_draft\")}\n status=\"draft\"\n redirect=\"index\"\n />\n );\n }\n\n setStatusesArray(statuses);\n setSubmitButtons(submitButtons);\n }\n }, [isPermissionsLoading, permissions, processingButton, mutation.isLoading]);\n\n useEffect(() => {\n if (!mutation.isLoading) {\n setProcessingButton(null);\n }\n }, [mutation.isLoading]);\n\n const onFinish = (values: RecurringTransactionData) => {\n const documentType = documentsData[0]?.type.slice(0, -1);\n const recurredIds = documentsData.map((document: SelectedDocument) => ({\n documentable_id: document.id,\n }));\n\n const data: RecurringTransactionData = {\n ...values,\n document_type: documentType as \"Bill\" | \"Invoice\" | \"SimpleBill\",\n recurring_transaction_documents_attributes: recurredIds,\n status: form.getFieldValue(\"status\"),\n };\n mutation.mutate(data);\n };\n\n const onReset = () => {\n if (\n form.isFieldsTouched() ||\n (form.getFieldValue(\"documents\") && form.getFieldValue(\"documents\").length > 0)\n ) {\n setIsCancellationModalOpen(true);\n }\n };\n\n const handleCloseCancellationModal = () => {\n setIsCancellationModalOpen(false);\n };\n\n const handleCancellation = () => {\n handleResetForm();\n handleCloseCancellationModal();\n };\n\n const handleSave = () => {\n form.submit();\n handleCloseCancellationModal();\n };\n\n let DocumentContent = (\n <Card>\n <Title level={5}>{t(`${DOCUMENTS}.title`)}</Title>\n <Row justify=\"center\" align=\"middle\">\n <Col lg={22} xl={16} xxl={11}>\n <Result\n icon={<DocumentArrowDownOutline fontSize={32} />}\n title={t(`${DOCUMENTS}.no_documents`)}\n extra={<AddDocumentsButton handleOpenDocuments={handleOpenDocuments} />}\n />\n </Col>\n </Row>\n </Card>\n );\n\n if (documentsData && documentsData.length > 0) {\n DocumentContent = (\n <Card>\n <Row gutter={[token.padding, token.padding]} justify=\"space-between\" align=\"top\">\n <Col>\n <Title level={5} style={{ marginTop: token.marginXXS }}>\n {t(`${DOCUMENTS}.title`)}\n </Title>\n </Col>\n <Col>\n <Space wrap align=\"start\">\n <AddDocumentsButton handleOpenDocuments={handleOpenDocuments} />\n <CustomSelect\n name=\"document_status\"\n optionsArray={statusesArray}\n optionsParent=\"status\"\n />\n </Space>\n </Col>\n </Row>\n <Form.Item noStyle>\n <Table\n columns={columns}\n dataSource={documentsData}\n virtual\n scroll={{ x: 1000, y: 260 }}\n rowKey=\"id\"\n style={{ paddingTop: token.paddingXL, paddingInline: token.paddingXS }}\n />\n </Form.Item>\n </Card>\n );\n }\n\n return (\n <QPageLayout\n title={title}\n breadCrumbData={[\n { title: <Link href=\"#\">{t(\"activerecord.attributes.layout.accounting\")}</Link> },\n { title: <Link onClick={window.go_back}>{t(\"recurring_transactions.title\")}</Link> },\n { title: title },\n ]}\n actionBtns={<BackButton />}\n >\n <Form\n form={form}\n onFinish={onFinish}\n layout=\"vertical\"\n scrollToFirstError={{ block: \"center\" }}\n >\n <Space direction=\"vertical\" size={token.paddingLG} style={{ display: \"flex\" }}>\n <Card>\n <Row justify=\"space-between\">\n <Col xs={24} lg={11}>\n <Title level={5}>{t(`${MAIN_INFO}.title`)}</Title>\n <Row gutter={[token.padding, token.padding]}>\n <Col xs={24} sm={12}>\n <CustomInput name=\"reference\" label={t(`${MAIN_INFO}.reference`)} />\n </Col>\n </Row>\n <Row gutter={[token.padding, token.padding]}>\n <Col xs={24} sm={12}>\n <CustomInput name=\"ar_name\" label={t(`${MAIN_INFO}.ar_name`)} />\n </Col>\n <Col xs={24} sm={12}>\n <CustomInput name=\"en_name\" label={t(`${MAIN_INFO}.en_name`)} />\n </Col>\n </Row>\n </Col>\n <Divider type=\"vertical\" style={{ height: \"auto\" }} />\n <Col xs={24} lg={11}>\n <Title level={5}>{t(`${DETAILS}.title`)}</Title>\n <Row gutter={[token.padding, token.padding]}>\n <Col xs={24} sm={12}>\n <CustomDatePicker\n name=\"start_date\"\n label={\n <Tooltip title={t(`${DETAILS}.start_date_hover`)}>\n <span>{t(`${DETAILS}.start_date`)}</span>\n </Tooltip>\n }\n minDate={dayjs().startOf(\"day\")}\n onChange={onStartDateChange}\n />\n </Col>\n <Col xs={24} sm={12}>\n <CustomSelect\n name=\"repeat_term\"\n label={t(`${DETAILS}.repeat_term`)}\n optionsArray={[\"daily\", \"weekly\", \"monthly\", \"quarterly\", \"semi_annually\"]}\n optionsParent={`${DETAILS}.repeat_terms`}\n onChange={onFrequencyChange}\n />\n </Col>\n </Row>\n <Row gutter={[token.padding, token.padding]}>\n <Col xs={24} sm={12}>\n <Form.Item\n name=\"end_type\"\n label={t(`${DETAILS}.ends.label`)}\n layout=\"horizontal\"\n colon={false}\n labelCol={{\n style: { maxHeight: \"27px\", display: \"flex\", alignItems: \"center\" },\n }}\n initialValue=\"runs_count\"\n >\n <Radio.Group>\n <Space direction=\"vertical\" size={token.padding}>\n <Radio value=\"custom\">{t(`${DETAILS}.ends.on_custom_date`)}</Radio>\n <Radio value=\"runs_count\">{t(`${DETAILS}.ends.after_max_runs`)}</Radio>\n </Space>\n </Radio.Group>\n </Form.Item>\n </Col>\n <Col xs={24} sm={12}>\n <Form.Item noStyle dependencies={[\"end_type\"]} rules={[{ required: true }]}>\n {({ getFieldValue }) =>\n getFieldValue(\"end_type\") === \"custom\" ? (\n <CustomDatePicker\n name=\"end_date\"\n label={t(`${DETAILS}.end_date`)}\n minDate={dayjs(startDate)}\n maxDate={dayjs(startDate).add(1, \"year\")}\n />\n ) : (\n <CustomInputNumber\n name=\"total_runs\"\n label={\n <Tooltip title={t(`${DETAILS}.total_runs_hover`)}>\n <span>{t(`${DETAILS}.total_runs`)}</span>\n </Tooltip>\n }\n suffix={t(`${DETAILS}.runs`)}\n min={1}\n max={maxRuns}\n />\n )\n }\n </Form.Item>\n </Col>\n </Row>\n </Col>\n </Row>\n </Card>\n <Card>\n <Row justify=\"space-between\">\n <Col xs={24} lg={11}>\n <Title level={5}>{t(`${MORE_INFO}.title`)}</Title>\n <CustomTextArea name=\"description\" label={t(`${MORE_INFO}.description`)} />\n </Col>\n <Divider type=\"vertical\" style={{ height: \"auto\" }} />\n <Col xs={24} lg={11} style={{ alignSelf: \"end\" }}>\n <CustomTextArea\n name=\"user_comments\"\n label={t(`${MORE_INFO}.additional_comments`)}\n />\n </Col>\n </Row>\n </Card>\n <Form.Item\n name=\"documents\"\n rules={[\n { required: true, message: t(\"recurring_transactions.create.validation.documents\") },\n ]}\n >\n {DocumentContent}\n </Form.Item>\n <Space size=\"small\" wrap style={{ display: \"flex\", justifyContent: \"end\" }}>\n {submitButtons.map((button) => button)}\n <Form.Item>\n <Button htmlType=\"button\" onClick={onReset}>\n {t(`${ACTIONS}.cancel`)}\n </Button>\n </Form.Item>\n {isCancellationModalOpen && (\n <Modal\n open={isCancellationModalOpen}\n closable\n centered\n onCancel={handleCloseCancellationModal}\n footer={\n <Flex justify=\"end\" gap={token.margin}>\n <Button type=\"primary\" onClick={handleSave}>\n {t(`${ACTIONS}.save`)}\n </Button>\n <Button onClick={handleCancellation}>{t(`${ACTIONS}.confirm_cancel`)}</Button>\n </Flex>\n }\n style={{ textAlign: \"center\" }}\n >\n <CloseCircleOutlined style={{ fontSize: 48, color: \"#cf1322\" }} />\n <Title level={4}>{t(`${CANCEL_CONFIRMATION}.title`)}</Title>\n <p>{t(`${CANCEL_CONFIRMATION}.sub_title`)}</p>\n <Divider />\n </Modal>\n )}\n </Space>\n </Space>\n </Form>\n <Documents\n savedSelectedDocuments={documentsData}\n onClose={modalCloseHandler}\n isOpen={isDocumentsModalOpen}\n onSave={handleSaveDocumentsSelection}\n />\n </QPageLayout>\n );\n};\n\nexport default NewRecurringTransactions;\n","/*eslint-disable*/\n//@ts-nocheck\nimport React, { useMemo, useState } from \"react\";\nimport { Button, Typography } from \"antd\";\nimport QPageLayout from \"components/layout/QPageLayout\";\nimport { useSchedules, useTransaction } from \"hooks/recurring_transactions\";\nimport { BreadcrumbItemType } from \"antd/es/breadcrumb/Breadcrumb\";\nimport { ArrowLeftOutlined } from \"@ant-design/icons\";\nimport RTCardsInfo from \"components/tenant/recurring_transactions/show/RTInfoCards\";\nimport RelatedDocs from \"components/tenant/recurring_transactions/show/RelatedDocs\";\nimport { TableProps } from \"antd/lib\";\nimport SchedulesTable from \"components/tenant/recurring_transactions/show/SchedulesTable\";\nimport { ScheduleType } from \"types/recurring_transactions\";\nimport { useTranslation } from \"react-i18next\";\n\nconst translationTerms = {\n indexTitle: \"recurring_transactions.title\",\n title: \"recurring_transactions.show.title\",\n backBtn: \"recurring_transactions.show.back\",\n Invoice: \"activerecord.commercial_document.invoice\",\n Bill: \"activerecord.commercial_document.bill\",\n SimpleBill: \"activerecord.commercial_document.simple_bill\",\n};\n\nconst PAGESIZE = 10;\n\nexport default function ShowRT() {\n const currentURL = window.location.href;\n\n const ID = useMemo(() => {\n const match = currentURL.match(/recurring_transactions\\/(\\d+)/);\n return match ? Number(match[1]) : null;\n }, [currentURL]);\n\n if (!ID) {\n return null;\n }\n\n const [RTQuerySearch, setRTQuerySearch] = useState<Record<string, string>>({\n page: \"1\",\n });\n\n const [upcomingQuerySearch, setUpcomingQuerySearch] = useState<\n Record<string, string>\n >({ per_page: PAGESIZE.toString(), page: \"1\" });\n\n const [passedQuerySearch, setpassedQuerySearch] = useState<\n Record<string, string>\n >({ per_page: PAGESIZE.toString(), page: \"1\" });\n\n const { t, i18n } = useTranslation();\n\n const { data: RTData, isLoading: isRTLInfoLoading } = useTransaction(\n ID,\n new URLSearchParams(RTQuerySearch)\n );\n\n const {\n passedSchedulesQuery,\n upcomingSchedulesQuery,\n isRefetchingSchedules,\n refetchSchedules,\n } = useSchedules(ID, {\n passed: passedQuerySearch,\n upcoming: upcomingQuerySearch,\n });\n\n const RTInfo = RTData?.recurring_transaction;\n\n const breadCrumbData = useBreadcrumb(\n RTInfo?.[i18n.language === \"ar\" ? \"ar_name\" : \"en_name\"]\n );\n\n const anyFailed = useMemo(() => {\n return passedSchedulesQuery?.data?.schedules.some(\n (record) => record.status === \"failed\"\n );\n }, [passedSchedulesQuery?.data]);\n\n const pageChangeHandler = (\n setQuery: React.Dispatch<any>\n ): TableProps[\"onChange\"] => {\n return (pagination, _, __, { action }) => {\n if (action === \"paginate\") {\n setQuery((prev: Record<string, string>) => ({\n ...prev,\n page: pagination.current.toString(),\n }));\n }\n };\n };\n\n return (\n <QPageLayout\n title={t(translationTerms.title)}\n breadCrumbData={breadCrumbData}\n actionBtns={[\n <Button\n key={\"backBTN\"}\n type=\"primary\"\n href=\"/tenant/recurring_transactions\"\n icon={<ArrowLeftOutlined />}\n >\n {t(translationTerms.backBtn)}\n </Button>,\n ]}\n >\n <RTCardsInfo RTInfo={RTInfo} isLoading={isRTLInfoLoading} />\n <RelatedDocs\n isLoading={isRTLInfoLoading}\n pageSize={RTData?.pagination.per_page}\n totalDocs={RTData?.pagination.total_entries}\n onChange={pageChangeHandler(setRTQuerySearch)}\n documents={RTData?.documents}\n documentType={RTInfo?.document_type}\n />\n <SchedulesTable\n RTStatus={RTInfo?.status}\n documentType={RTInfo?.document_type}\n onChange={pageChangeHandler(setUpcomingQuerySearch)}\n schedulesData={upcomingSchedulesQuery.data?.schedules}\n isLoading={upcomingSchedulesQuery.isLoading}\n type={ScheduleType.UPCOMMING}\n pageSize={PAGESIZE}\n anyFailed={anyFailed}\n totalEntries={\n upcomingSchedulesQuery.data &&\n upcomingSchedulesQuery.data.meta.total_pages * PAGESIZE\n }\n currentPage={Number(upcomingQuerySearch.page)}\n isRefetchingSchedules={isRefetchingSchedules}\n refetchSchedules={refetchSchedules}\n />\n <SchedulesTable\n RTStatus={RTInfo?.status}\n documentType={RTInfo?.document_type}\n onChange={pageChangeHandler(setpassedQuerySearch)}\n schedulesData={passedSchedulesQuery.data?.schedules}\n isLoading={passedSchedulesQuery.isLoading}\n type={ScheduleType.PASSED}\n anyFailed={anyFailed}\n pageSize={PAGESIZE}\n totalEntries={\n passedSchedulesQuery.data &&\n passedSchedulesQuery.data.meta.total_pages * PAGESIZE\n }\n />\n </QPageLayout>\n );\n}\n\nconst useBreadcrumb = (RTName: string | undefined): BreadcrumbItemType[] => {\n const { t } = useTranslation();\n\n return [\n {\n title: (\n <Typography.Link href=\"/tenant/recurring_transactions\">\n {t(translationTerms.indexTitle)}\n </Typography.Link>\n ),\n },\n {\n title: RTName || \"\",\n },\n ];\n};\n","//@ts-nocheck\nimport { TFunction } from \"i18next\";\nimport React from \"react\";\nimport { CardData } from \"types/referrals\";\n\nexport const generateCardData = (\n rewardsCount: number,\n t: TFunction,\n language: string\n): CardData[] => {\n return [\n {\n id: 1,\n rewardsCount,\n title: t(\"referrals.index.referral_card.title\"),\n description: t(\"referrals.index.referral_card.subtitle\"),\n showInput: true,\n },\n {\n id: 2,\n rewardsCount: rewardsCount,\n title:\n rewardsCount === 0\n ? t(\"referrals.index.gift_card.rewards_title\")\n : t(\"referrals.index.gift_card.congrats_title\"),\n description: generateCardDescription(rewardsCount, t, language),\n showInput: false,\n color: rewardsCount > 0 ? \"#256F3A\" : undefined,\n },\n ];\n};\n\nexport const generateCardDescription = (\n rewardsCount: number,\n t: TFunction,\n language: string\n) => {\n return rewardsCount === 0 ? (\n t(\"referrals.index.gift_card.rewards_subtitle\")\n ) : (\n <>\n {t(\"referrals.index.gift_card.congrats_subtitle\")}\n <span style={{ color: \"#256F3A\", fontWeight: \"bold\" }}>\n {t('referrals.index.gift_card.congrats_subtitle_month', {count:rewardsCount})}\n </span>\n {t(\"referrals.index.gift_card.congrats_subtitle_3\")}\n </>\n );\n};","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport QPageLayout from \"components/layout/QPageLayout\";\nimport { Divider, Row, Spin } from \"antd\";\nimport ReferralHeader from \"components/tenant/referrals/ReferralHeader\";\nimport { useBreadCrumbData, useReferralData } from \"hooks/referrals\";\nimport CardList from \"components/tenant/referrals/CardList\";\nimport { generateCardData } from \"helpers/referrals\";\n\nconst Referral: React.FC = () => {\n const { t, i18n } = useTranslation();\n const { rewardsCount, loading } = useReferralData();\n const breadCrumbData = useBreadCrumbData();\n const language = i18n.language;\n const cardsData = generateCardData(rewardsCount, t, language);\n\n return (\n <QPageLayout\n title={t(\"referrals.name\")}\n actionBtns={[]}\n breadCrumbData={breadCrumbData}\n >\n {loading ? (\n <Row justify=\"center\">\n <Spin size=\"large\" />\n </Row>\n ) : (\n <Row justify=\"start\" style={{ width: \"100%\" }}>\n <ReferralHeader />\n <Divider />\n <CardList cardsData={cardsData} />\n </Row>\n )}\n </QPageLayout>\n );\n};\n\nexport default Referral;","//@ts-nocheck\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport { DatePicker, Row, Col, Select, Flex, Form, Button, Input, ConfigProvider, TableProps, Table, Dropdown, Space, MenuProps } from 'antd'\nimport { useTranslation } from 'react-i18next'\nimport QReportLayout from 'components/layout/QReportLayout';\nimport { useQuery } from 'react-query';\nimport { DimensionResponse, ReportSchema, SchemaItem } from 'types/dimensions';\nimport i18next from 'i18next';\nimport { useInteractiveFilter } from 'hooks/app';\nimport { DownOutlined, FileExcelOutlined, FilePdfOutlined, FilterOutlined, UndoOutlined } from '@ant-design/icons';\nimport dayjs from 'dayjs';\nimport axios from 'axios';\nimport { ColumnGroupType, ColumnType } from 'antd/es/table';\nimport { v4 as generateUUID } from 'uuid'\n\nconst { RangePicker } = DatePicker;\n\nconst useOptions = () => {\n const { t } = useTranslation();\n const axisOptions = useMemo(() => ([\n {value: 'dimensions', label: t('activerecord.attributes.tenant_role.dimensions')},\n {value: 'products', label: t('activerecord.attributes.layout.products')},\n {value: 'inventories', label: t('templates.reports.locations')},\n {value: 'projects', label: t('templates.reports.projects')},\n {value: 'period', label: t('activerecord.attributes.payslip.period')}\n ]), [])\n \n const analysisByOptions = useMemo(() => ([\n {value: 'purchases', label: t('activerecord.attributes.inventory_report.purchases')},\n ]), [])\n\n const asValueOptions = useMemo(() => ([\n { value: 'Amount', label: t('templates.reports.amount') },\n { value: 'Quantity', label: t('templates.quantity') }\n ]), [])\n\n return { axisOptions, analysisByOptions, asValueOptions };\n}\n\n\n\nexport const useBreadCrumbData = () => {\n const { t } = useTranslation();\n return [\n {\n title: <a href=\"/tenant/reports/dashboard\">{t('activerecord.attributes.breadcrums.reports')}</a>,\n },\n {\n title: t('reports.analysis_by_dimensions.title'),\n },\n ]\n}\n\nconst DimensionField = ({ fieldName }: { fieldName: string }) => {\n const [dimensionOptions, setDimensionOptions] = useState([]);\n const dimensionQuery = useQuery<DimensionResponse>(['dimensionValues'], async () => {\n return (await axios.get(`/tenant/dimensions.json?per_page=100`)).data\n })\n\n useEffect(() => {\n if(dimensionQuery.data) {\n const { data } = dimensionQuery;\n const readyData = data.records.map(record => ({ label: `${record.code} - ${i18next.language === 'en'? record.name_en : record.name_ar}`, value: String(record.id) }));\n setDimensionOptions(readyData);\n }\n }, [ dimensionQuery.data ]) \n \n return (\n <Form.Item name={fieldName} rules={[{required: true}]}>\n <Select\n style={{width: '100%'}}\n options={dimensionOptions}\n loading={dimensionQuery.isLoading}\n allowClear={true}\n />\n </Form.Item>\n )\n\n}\n\nconst DateField = ({ fieldName }: { fieldName: string }) => {\n const form = Form.useFormInstance();\n const startDateValue = Form.useWatch(`${fieldName}[start_date]`, form);\n const endDateValue = Form.useWatch(`${fieldName}[end_date]`, form);\n \n return (\n <>\n <RangePicker \n style={{width: '100%'}}\n onChange={(_, val) => {form.setFieldValue(`${fieldName}[start_date]`, val[0]); form.setFieldValue(`${fieldName}[end_date]`, val[1])}}\n value={[dayjs(startDateValue), dayjs(endDateValue)]}\n allowClear={false}\n />\n <Form.Item initialValue={dayjs().format('YYYY-MM-DD')} hidden={true} name={`${fieldName}[start_date]`}>\n <Input />\n </Form.Item>\n <Form.Item initialValue={dayjs().format('YYYY-MM-DD')} hidden={true} name={`${fieldName}[end_date]`}>\n <Input />\n </Form.Item>\n </>\n )\n\n}\n\nconst ExtraField = ({ axisValue, axisLabel }: { axisValue: string, axisLabel: string }) => { \n let field = null;\n let fieldCol = 4;\n\n switch(axisValue) {\n case 'dimensions':\n field = (\n <DimensionField fieldName={`filter_options[${axisLabel}][dimension_id]`} />\n );\n break;\n case 'period':\n fieldCol = 8;\n field = (\n <DateField fieldName={`filter_options[${axisLabel}]`} />\n );\n break;\n }\n \n if(field) {\n return (\n <Col xs={24} md={8} lg={fieldCol}>\n {field}\n </Col>\n )\n }\n\n return field;\n}\n\n\nconst Filter = ({ InteractiveFilter }: { InteractiveFilter: ReturnType<typeof useInteractiveFilter> }) => {\n const { t } = useTranslation();\n const { update, setFormContainerRef, form } = InteractiveFilter;\n\n const rowValue = Form.useWatch('as_rows', form)\n const columnValue = Form.useWatch('as_columns', form)\n const { axisOptions, asValueOptions, analysisByOptions } = useOptions();\n\n const handleFilterSubmit = useCallback(() => {\n update();\n }, [])\n\n const handleFilterReset = useCallback(() => {\n form.resetFields();\n update();\n }, [])\n\n return (\n <div ref={setFormContainerRef}>\n <ConfigProvider theme={{components: { Form: { itemMarginBottom: 0 } }}}>\n <Form\n form={form}\n onFinish={handleFilterSubmit}\n wrapperCol={{span: 24, flex: 1}}\n validateMessages={{\n required: t(\"forms.placeholders.field_required\")\n }}\n >\n <Flex vertical gap={15} style={{ width: '100%' }}>\n <Row gutter={[15, 15]}>\n <Col xs={24} md={8} lg={4}>\n <Form.Item rules={[{required: true}]} name=\"analysis_by\">\n <Select\n style={{width: '100%'}}\n placeholder={t('reports.analysis_by_dimensions.analysis_by')}\n options={analysisByOptions}\n />\n </Form.Item>\n </Col>\n <Col xs={24} md={8} lg={4}>\n <Form.Item rules={[{required: true}]} name=\"as_rows\">\n <Select\n style={{width: '100%'}}\n placeholder={t('reports.analysis_by_dimensions.show_rows')}\n options={axisOptions}\n />\n </Form.Item>\n </Col>\n <ExtraField axisValue={rowValue} axisLabel=\"rows\" />\n </Row>\n <Row gutter={[15, 15]}>\n <Col xs={24} md={8} lg={4}>\n <Form.Item rules={[{required: true}]} name=\"as_value\">\n <Select\n style={{width: '100%'}}\n placeholder={t('reports.analysis_by_dimensions.show_value')}\n options={asValueOptions}\n />\n </Form.Item>\n </Col>\n <Col xs={24} md={8} lg={4}>\n <Form.Item rules={[{required: true}]} name=\"as_columns\">\n <Select\n style={{width: '100%'}}\n placeholder={t('reports.analysis_by_dimensions.show_columns')}\n options={axisOptions}\n />\n </Form.Item>\n </Col>\n <ExtraField axisValue={columnValue} axisLabel=\"columns\" />\n </Row>\n <Row gutter={[15, 15]}>\n <Col xs={12} md={{offset: 8, span: 8}} lg={{offset: 18, span: 3}}>\n <Form.Item>\n <Button style={{ width: '100%' }} icon={<FilterOutlined />} htmlType='submit' type='default'>{t('forms.buttons.filter')}</Button>\n </Form.Item>\n </Col>\n <Col xs={12} md={8} lg={{span: 3}}>\n <Form.Item>\n <Button style={{ width: '100%' }} onClick={handleFilterReset} icon={<UndoOutlined />} danger>{t('forms.buttons.reset')}</Button>\n </Form.Item>\n </Col>\n </Row>\n </Flex>\n </Form>\n </ConfigProvider>\n </div>\n )\n}\n\ntype AggregateColumnType<T> = ColumnGroupType<T> | ColumnType<T>\n\nconst buildColumns = (key: string, item: SchemaItem): AggregateColumnType<Record<string, string>> => { \n const children: AggregateColumnType<Record<string, string>>[] = [];\n for(const [key, value] of Object.entries(item?.children ?? {})) {\n children.push(buildColumns(key, value))\n }\n\n return {\n dataIndex: key,\n title: item.key,\n align: 'center',\n children,\n width: 150,\n render: (text) => text === null ? '0.00' : isNaN(parseFloat(text)) ? text : parseFloat(text).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })\n }\n}\n\n\nconst useColumns = ({ schema }: { schema: ReportSchema }) => {\n \n const columns = useMemo<TableProps['columns']>(() => {\n if(!schema || !Object.keys(schema).length) return []; \n const colSchema = Object.entries(schema).map(([key, value]) => buildColumns(key, value));\n colSchema[0].rowScope = 'row';\n colSchema[0].fixed = true;\n return colSchema;\n }, [ schema ])\n\n return columns;\n}\n\nconst DimensionReport = ({ }) => {\n const { t } = useTranslation();\n const [filterUpdate, setFilterUpdate] = useState(false); \n \n const breadCrumbData = useBreadCrumbData();\n\n const interactiveFilter = useInteractiveFilter({\n path: '/tenant/reports/analysis_by_dimensions.json',\n setFilterUpdate\n }, [filterUpdate]);\n \n const { data, isLoading } = useQuery<{schema: ReportSchema, records: Record<string, string>[]}>(['reportData', interactiveFilter.url], async () => {\n const data = (await axios.get(interactiveFilter.url)).data\n data.records?.forEach(record => {\n record.key = generateUUID();\n })\n return data;\n });\n const columns = useColumns({ schema: data?.schema })\n\n const items: MenuProps['items'] = useMemo(\n () => {\n const currentUrl = new URL(window.location.href);\n const currentQuery = new URL(interactiveFilter.url, window.location.origin).search;\n \n const pdfExportUrl = `${currentUrl.pathname}.pdf${currentQuery}`;\n const excelExportUrl = `${currentUrl.pathname}.xlsx${currentQuery}`;\n return ([\n {\n label: (\n <a href={pdfExportUrl} target=\"_blank\" rel=\"noopener noreferrer\">\n {t('forms.buttons.pdf')}\n </a>\n ),\n key: '1',\n icon: <FilePdfOutlined style={{ color: 'red' }} />,\n },\n {\n label: (\n <a href={excelExportUrl} target=\"_blank\" rel=\"noopener noreferrer\">\n {t('forms.buttons.excel')}\n </a>\n ),\n key: '2',\n icon: <FileExcelOutlined style={{ color: 'green' }} />,\n },\n ])\n }, [ interactiveFilter.url ]\n );\n\n const menuProps = {\n items,\n };\n \n return (\n <QReportLayout filter={<Filter InteractiveFilter={interactiveFilter} />} title={t('reports.analysis_by_dimensions.title')} actionBtns={\n <></>\n } breadCrumbData={breadCrumbData} >\n <Table bordered scroll={{ x: '100%', y: 500 }} pagination={false} columns={columns} loading={isLoading} virtual={true} dataSource={data?.records ?? []} />\n <Flex vertical align=\"end\">\n <Dropdown menu={menuProps}>\n <Button type=\"primary\">\n <Space>\n {t('forms.buttons.export')} \n <DownOutlined />\n </Space>\n </Button>\n </Dropdown>\n </Flex>\n </QReportLayout>\n )\n}\n\n\nexport default DimensionReport","import { Col, Empty, Flex, Row, theme, Typography } from \"antd\";\nimport { geReports } from \"api/Reports\";\nimport RecentReports from \"components/tenant/reports/dashboard/RecentReports\";\nimport ReportCard from \"components/tenant/reports/dashboard/ReportCard\";\nimport ReportDashboardSkeleton from \"components/tenant/reports/dashboard/ReportDashboardSkeleton\";\nimport ReportsFilter from \"components/tenant/reports/dashboard/ReportsFilter\";\nimport i18next from \"i18next\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useQuery } from \"react-query\";\nimport { ReportsList } from \"types/Reports\";\nconst Index = () => {\n const { useToken } = theme;\n const { token } = useToken();\n const { t } = useTranslation();\n const [reports, setReports] = useState<ReportsList[]>([]);\n const [originalReports, setOriginalReports] = useState<ReportsList[]>([]); // Store original data\n\n const { data, isLoading } = useQuery({\n queryKey: [\"reports\"],\n queryFn: () => geReports(i18next.language),\n onSuccess(data) {\n setReports(data.reports);\n setOriginalReports(data.reports);\n },\n });\n\n if (isLoading) {\n return <ReportDashboardSkeleton />;\n }\n\n return (\n <div style={{ padding: token.paddingLG }}>\n <Flex\n vertical\n style={{ padding: \"16px 24px\", backgroundColor: token.colorWhite }}\n >\n <Typography.Title level={3} style={{ margin: 0 }}>\n {t(\"new_reports.dashboard.title\")}\n </Typography.Title>\n <RecentReports recentReports={data?.recent_reports || []} />\n <ReportsFilter\n reportsCallback={{ reports: originalReports, setReports }}\n />\n {reports?.length === 0 && <Empty />}\n <Row gutter={[16, 42]} style={{ marginTop: `${token.marginSM}px` }}>\n {reports?.map((report, index) => (\n <Col key={index} span={8} xs={24} sm={24} md={12} lg={8} xl={8}>\n {report.reports.length ? <ReportCard report={report} /> : \"\"}\n </Col>\n ))}\n </Row>\n </Flex>\n </div>\n );\n};\n\nexport default Index;\n","import axios from \"axios\";\nimport { ReportsList, ReportItem } from \"types/Reports\";\ninterface ReportsData {\n reports: ReportsList[];\n recent_reports: ReportItem[];\n}\nexport async function geReports(local: string) {\n const { data } = await axios.get<ReportsData>(\n `/tenant/reports/categorised_reports.json?locale=${local}`\n );\n return data;\n}\n","import Portal from \"components/layout/Portal\";\nimport BarcodeGuidanceButton from \"components/tenant/commercial_document/internal/BarcodeGuidanceButton\";\n\nconst StockTake = () => {\n return (\n <>\n <Portal\n Component={<BarcodeGuidanceButton headerKey=\"header_stock_take\" />}\n htmlRoot=\"portal__barcode_guidance\"\n />\n </>\n );\n};\n\nexport default StockTake;\n","import { Tabs, Typography } from \"antd\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport QPageLayout from \"components/layout/QPageLayout\";\nimport OverviewTab from \"components/tenant/subscription/OverviewTab\";\n\n\nconst { Link } = Typography;\n\nconst SubscriptionSettings = () => {\n const { t } = useTranslation();\n\n const [activeKey, setActiveKey] = useState(\"1\");\n const onTabChange = (key: string) => {\n setActiveKey(key);\n };\n\n const pageTitle = t(\"subscription.index.title\");\n\n return (\n <QPageLayout\n title={pageTitle}\n breadCrumbData={[\n {\n title: <Link href=\"#\">{t(\"activerecord.attributes.subscription.settings\")}</Link>,\n },\n { title: pageTitle },\n ]}\n actionBtns\n >\n <Tabs\n defaultActiveKey=\"1\"\n activeKey={activeKey}\n onChange={onTabChange}\n items={[\n {\n label: t(\"activerecord.attributes.subscription.overview\"),\n key: \"1\",\n children: <OverviewTab handleTabChange={onTabChange} />,\n },\n ]}\n />\n </QPageLayout>\n );\n};\n\nexport default SubscriptionSettings;\n","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgBookkeepingI = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#D27700\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D27700\",\n d: \"M33.75 17.25H30v-1.313a.188.188 0 0 0-.188-.187H28.5a.188.188 0 0 0-.188.188v1.312h-3.468v-1.313a.188.188 0 0 0-.188-.187h-1.312a.188.188 0 0 0-.188.188v1.312h-3.468v-1.313a.188.188 0 0 0-.188-.187h-1.313a.188.188 0 0 0-.187.188v1.312h-3.75a.75.75 0 0 0-.75.75v13.5c0 .415.335.75.75.75h19.5a.75.75 0 0 0 .75-.75V18a.75.75 0 0 0-.75-.75zm-.938 13.313H15.189V18.938H18v1.312c0 .103.084.188.188.188H19.5a.188.188 0 0 0 .188-.188v-1.313h3.468v1.313a.19.19 0 0 0 .188.188h1.312a.188.188 0 0 0 .188-.188v-1.313h3.468v1.313a.19.19 0 0 0 .188.188h1.313A.188.188 0 0 0 30 20.25v-1.313h2.813v11.625zM21.75 23.625h-4.313a.188.188 0 0 0-.187.188v1.125c0 .103.084.187.188.187h4.312a.188.188 0 0 0 .188-.188v-1.125a.188.188 0 0 0-.188-.187zm0 3.188h-4.313a.188.188 0 0 0-.187.187v1.125c0 .103.084.188.188.188h4.312a.188.188 0 0 0 .188-.188V27a.188.188 0 0 0-.188-.188zm7.223-4.158-2.428 3.368-1.237-1.714a.37.37 0 0 0-.302-.154h-1.287a.188.188 0 0 0-.153.297l2.675 3.708a.373.373 0 0 0 .604 0l3.867-5.36a.188.188 0 0 0-.152-.298h-1.287a.367.367 0 0 0-.3.153z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgBookkeepingI);\nexport default Memo;","var _rect, _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgBookkeepingIi = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#A100C2\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A100C2\",\n d: \"M24 13.5c-5.798 0-10.5 4.702-10.5 10.5S18.202 34.5 24 34.5 34.5 29.798 34.5 24 29.798 13.5 24 13.5zm0 19.219A8.72 8.72 0 0 1 15.281 24 8.72 8.72 0 0 1 24 15.281 8.72 8.72 0 0 1 32.719 24 8.72 8.72 0 0 1 24 32.719z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A100C2\",\n d: \"m28.095 26.967-3.343-2.416V18.75a.188.188 0 0 0-.187-.188h-1.128a.188.188 0 0 0-.187.188v6.455c0 .06.028.117.077.152l3.877 2.827a.19.19 0 0 0 .262-.04l.67-.914a.187.187 0 0 0-.041-.263z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgBookkeepingIi);\nexport default Memo;","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgBookkeepingIii = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#046C7A\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#046C7A\",\n d: \"M27.11 27.684a.186.186 0 0 0-.152-.077h-1.036a.188.188 0 0 0-.152.298l1.73 2.393a.186.186 0 0 0 .302 0l2.676-3.703a.188.188 0 0 0-.152-.298h-1.038a.185.185 0 0 0-.153.077l-1.488 2.058-.537-.748zm1.015-8.512v-1.125a.188.188 0 0 0-.188-.188h-9a.188.188 0 0 0-.187.188v1.125c0 .103.084.187.188.187h9a.188.188 0 0 0 .187-.187zm-9.188 2.062a.188.188 0 0 0-.187.188v1.125c0 .103.084.187.188.187h4.312a.188.188 0 0 0 .188-.187v-1.125a.188.188 0 0 0-.188-.188h-4.313zM23.25 31.97h-6.375v-16.5H30v6.937c0 .103.084.188.188.188H31.5a.188.188 0 0 0 .188-.188v-7.875a.75.75 0 0 0-.75-.75h-15a.75.75 0 0 0-.75.75v18.375c0 .415.335.75.75.75h7.312a.188.188 0 0 0 .188-.187v-1.313a.188.188 0 0 0-.188-.187zm9.436-7.519-4.5-1.563a.184.184 0 0 0-.061-.01.175.175 0 0 0-.06.01l-4.5 1.563a.186.186 0 0 0-.128.176v5.885c0 .059.026.112.073.148l4.5 3.52a.19.19 0 0 0 .115.04.19.19 0 0 0 .115-.04l4.5-3.52a.189.189 0 0 0 .072-.148v-5.885c0-.08-.051-.15-.126-.176zm-1.327 5.45-3.234 2.528-3.234-2.529v-4.376l3.234-1.125 3.234 1.125V29.9z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgBookkeepingIii);\nexport default Memo;","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgBookkeepingIv = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#5D36FF\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#5D36FF\",\n d: \"M27.844 25.242a2.157 2.157 0 1 0 0 4.313 2.157 2.157 0 0 0 0-4.313Zm0 2.953a.796.796 0 1 1-.002-1.592.796.796 0 0 1 .002 1.592Zm4.781-12.258h-4.969c0-.724-.588-1.312-1.312-1.312h-1.875c-.725 0-1.313.588-1.313 1.313h-4.968a.75.75 0 0 0-.75.75v4.687h-2.063a.75.75 0 0 0-.75.75v10.5c0 .415.335.75.75.75h7.875a.75.75 0 0 0 .75-.75v-.375h8.625a.75.75 0 0 0 .75-.75V16.687a.75.75 0 0 0-.75-.75Zm-9.656 1.5h1.687v-1.312h1.5v1.313h1.688v1.125h-4.875v-1.125ZM22.5 31.876h-6.375v-5.438H22.5v5.438Zm0-6.938h-6.375v-2.062H22.5v2.063Zm9.188 5.625H24v-8.437a.75.75 0 0 0-.75-.75h-4.125v-3.75h2.344v2.438h7.875v-2.438h2.343v12.938Zm-3.188-9v2.25c0 .104.084.188.188.188h1.125a.188.188 0 0 0 .187-.188v-2.25a.188.188 0 0 0-.188-.187h-1.125a.188.188 0 0 0-.187.188ZM25.875 24H27a.188.188 0 0 0 .188-.188V22.5a.188.188 0 0 0-.188-.188h-1.125a.188.188 0 0 0-.188.188v1.313c0 .103.085.187.188.187Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgBookkeepingIv);\nexport default Memo;","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgBookkeepingV = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#0057D2\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0057D2\",\n d: \"M32.763 24.51c.394-.52.612-1.158.612-1.822 0-1.052-.588-2.048-1.535-2.604a1.585 1.585 0 0 0-.804-.218h-5.62l.14-2.88a2.509 2.509 0 0 0-.691-1.861 2.497 2.497 0 0 0-1.826-.783c-1.219 0-2.297.82-2.62 1.995l-2.014 7.289h-3.03a.75.75 0 0 0-.75.75v8.531c0 .415.335.75.75.75h14.093c.216 0 .427-.042.621-.126a3.014 3.014 0 0 0 1.709-3.643 3.016 3.016 0 0 0 .485-2.688c.394-.52.611-1.158.611-1.821a3.2 3.2 0 0 0-.13-.87zm-16.45 7.46v-6.657h1.898v6.657h-1.898zm14.915-8.274-.513.445.326.596a1.339 1.339 0 0 1-.298 1.648l-.513.445.325.595a1.338 1.338 0 0 1-.298 1.648l-.512.445.325.595a1.332 1.332 0 0 1-.626 1.854h-9.733v-6.729l2.332-8.449a1.033 1.033 0 0 1 .989-.757.833.833 0 0 1 .837.872l-.225 4.65h7.369c.417.255.674.687.674 1.134 0 .387-.168.753-.459 1.008z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgBookkeepingV);\nexport default Memo;","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgBookkeepingVi = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#D27700\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D27700\",\n d: \"M19.5 17.25h-1.547v-1.313a.188.188 0 0 0-.187-.187h-1.22a.188.188 0 0 0-.187.188v1.312h-1.547a.188.188 0 0 0-.187.188v13.125c0 .103.084.187.188.187h1.546v1.313c0 .103.085.187.188.187h1.219a.188.188 0 0 0 .187-.188V30.75H19.5a.188.188 0 0 0 .188-.188V17.438a.188.188 0 0 0-.188-.187zm-1.406 11.906h-1.875V18.844h1.875v10.312zm15.093-10.218h-1.546v-2.25a.188.188 0 0 0-.188-.188h-1.219a.188.188 0 0 0-.187.188v2.25H28.5a.188.188 0 0 0-.188.187v9.75a.19.19 0 0 0 .188.188h1.547v2.25c0 .103.084.187.187.187h1.22a.188.188 0 0 0 .187-.188v-2.25h1.547a.188.188 0 0 0 .187-.187v-9.75a.188.188 0 0 0-.188-.188zm-1.406 8.53h-1.875v-6.937h1.875v6.938zm-5.437-6h-1.547v-4.03a.188.188 0 0 0-.188-.188h-1.218a.188.188 0 0 0-.188.188v4.03h-1.547a.188.188 0 0 0-.187.188v4.688c0 .103.084.187.187.187h1.547v4.032c0 .103.085.187.188.187h1.218a.188.188 0 0 0 .188-.188v-4.03h1.547a.188.188 0 0 0 .187-.188v-4.688a.188.188 0 0 0-.187-.187zm-1.407 3.4a.07.07 0 0 1-.07.07h-1.734a.07.07 0 0 1-.07-.07v-1.735a.07.07 0 0 1 .07-.07h1.734a.07.07 0 0 1 .07.07v1.734z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgBookkeepingVi);\nexport default Memo;","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgCleanupI = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#5D36FF\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#5D36FF\",\n d: \"M28.125 19.313v-1.125a.188.188 0 0 0-.188-.188h-9a.188.188 0 0 0-.187.188v1.125c0 .103.084.187.188.187h9a.188.188 0 0 0 .187-.187Zm-9.188 2.062a.188.188 0 0 0-.187.188v1.125c0 .103.084.187.188.187h4.312a.188.188 0 0 0 .188-.187v-1.125a.188.188 0 0 0-.188-.188h-4.313Zm3.375 10.594h-5.437v-16.5H30v8.062c0 .104.084.188.188.188H31.5a.188.188 0 0 0 .188-.188v-9a.75.75 0 0 0-.75-.75h-15a.75.75 0 0 0-.75.75v18.375c0 .415.335.75.75.75h6.374a.188.188 0 0 0 .188-.187v-1.313a.188.188 0 0 0-.188-.187Zm10.447 1.207-2.187-2.187a4.125 4.125 0 1 0-1.022.956l2.22 2.22a.188.188 0 0 0 .262 0l.727-.727a.186.186 0 0 0 0-.262Zm-5.478-2.05a2.624 2.624 0 0 1-2.625-2.626 2.624 2.624 0 0 1 2.625-2.625 2.624 2.624 0 0 1 2.625 2.625 2.624 2.624 0 0 1-2.625 2.625Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgCleanupI);\nexport default Memo;","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgCleanupIi = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#D27700\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D27700\",\n d: \"M27.11 27.684a.185.185 0 0 0-.152-.077h-1.036a.188.188 0 0 0-.152.298l1.73 2.393a.186.186 0 0 0 .302 0l2.676-3.703a.188.188 0 0 0-.152-.298h-1.038a.185.185 0 0 0-.153.077l-1.488 2.058-.537-.747Zm1.015-8.512v-1.125a.188.188 0 0 0-.188-.188h-9a.188.188 0 0 0-.187.188v1.125c0 .103.084.188.188.188h9a.188.188 0 0 0 .187-.188Zm-9.188 2.063a.188.188 0 0 0-.187.187v1.125c0 .103.084.188.188.188h4.312a.188.188 0 0 0 .188-.188v-1.125a.188.188 0 0 0-.188-.188h-4.313Zm4.313 10.734h-6.375v-16.5H30v6.937c0 .104.084.188.188.188H31.5a.188.188 0 0 0 .188-.188v-7.875a.75.75 0 0 0-.75-.75h-15a.75.75 0 0 0-.75.75v18.375c0 .415.335.75.75.75h7.312a.188.188 0 0 0 .188-.187v-1.313a.188.188 0 0 0-.188-.187Zm9.436-7.519-4.5-1.563a.184.184 0 0 0-.061-.01.175.175 0 0 0-.06.01l-4.5 1.563a.186.186 0 0 0-.128.176v5.885c0 .059.026.113.073.148l4.5 3.52a.19.19 0 0 0 .115.04.19.19 0 0 0 .115-.04l4.5-3.52a.189.189 0 0 0 .072-.148v-5.885c0-.08-.051-.15-.126-.176Zm-1.327 5.45-3.234 2.528-3.234-2.529v-4.375l3.234-1.125 3.234 1.125v4.375Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgCleanupIi);\nexport default Memo;","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgTrainingI = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#046C7A\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#046C7A\",\n d: \"m32.318 15.982-7.964-2.714a1.153 1.153 0 0 0-.354-.05c-.129 0-.258.017-.354.05l-7.964 2.714a.562.562 0 0 0-.354.497v11.306c0 .206.134.478.295.607l8.08 6.296a.485.485 0 0 0 .295.096.48.48 0 0 0 .295-.096l8.079-6.296a.872.872 0 0 0 .295-.607V16.48a.553.553 0 0 0-.349-.497Zm-1.334 11.353L24 32.777l-6.984-5.442V17.313L24 14.932l6.984 2.381v10.022Zm-9.51-4.71a.377.377 0 0 0-.305-.155h-1.294a.188.188 0 0 0-.152.297l2.962 4.078a.375.375 0 0 0 .476.114.375.375 0 0 0 .133-.114l4.983-6.86a.188.188 0 0 0-.152-.297h-1.294a.38.38 0 0 0-.304.154l-3.537 4.87-1.517-2.088Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgTrainingI);\nexport default Memo;","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgTrainingIi = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#D27700\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D27700\",\n d: \"M28.174 20.845c.139 0 .277.004.413.011-.572-3.016-3.71-5.322-7.498-5.322-4.19 0-7.589 2.826-7.589 6.314 0 1.9 1.022 3.614 2.623 4.771a.503.503 0 0 1 .187.575 493.55 493.55 0 0 0-.342 1.272c-.016.061-.04.122-.04.185 0 .139.113.254.253.254a.296.296 0 0 0 .146-.047l1.661-.959a.79.79 0 0 1 .403-.117.8.8 0 0 1 .223.033 8.997 8.997 0 0 0 2.895.337 4.811 4.811 0 0 1-.256-1.547c0-3.182 3.099-5.76 6.921-5.76Zm-4.554-2.028a1.01 1.01 0 1 1 0 2.02 1.012 1.012 0 0 1-1.012-1.01c0-.558.454-1.01 1.012-1.01Zm-5.06 2.02a1.01 1.01 0 1 1 0-2.02 1.01 1.01 0 1 1 0 2.02Zm13.753 9.741c1.334-.965 2.185-2.39 2.185-3.977 0-2.906-2.832-5.262-6.326-5.262-3.492 0-6.326 2.356-6.326 5.262 0 2.906 2.831 5.262 6.326 5.262.722 0 1.42-.104 2.065-.289a.621.621 0 0 1 .52.068l1.385.797c.04.023.077.04.122.04a.212.212 0 0 0 .15-.061.21.21 0 0 0 .061-.15c0-.052-.021-.103-.033-.155a355.69 355.69 0 0 0-.286-1.061.525.525 0 0 1-.02-.134.432.432 0 0 1 .177-.34Zm-6.246-4.816a.843.843 0 0 1-.844-.842.843.843 0 0 1 1.688 0c0 .464-.38.842-.844.842Zm4.217 0a.843.843 0 0 1-.844-.842.843.843 0 1 1 1.439.595.846.846 0 0 1-.595.247Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgTrainingIi);\nexport default Memo;","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgTrainingIii = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#5D36FF\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#5D36FF\",\n d: \"m33.284 20.275-5.951-.865-2.66-5.393a.753.753 0 0 0-1.345 0l-2.66 5.393-5.952.865a.749.749 0 0 0-.414 1.28l4.305 4.197-1.017 5.927a.749.749 0 0 0 1.087.79L24 29.671l5.323 2.798a.749.749 0 0 0 1.087-.79l-1.017-5.927 4.305-4.198a.748.748 0 0 0 .218-.429.747.747 0 0 0-.632-.85ZM27.58 25.16l.846 4.93L24 27.764l-4.427 2.328.846-4.93-3.582-3.491 4.95-.72L24 16.468l2.212 4.484 4.95.72-3.58 3.49Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgTrainingIii);\nexport default Memo;","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgSetupI = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#5D36FF\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#5D36FF\",\n d: \"m33.722 21.308-9.281-6.75a.746.746 0 0 0-.882 0l-9.28 6.75a.75.75 0 0 0-.273.839l3.546 10.922a.751.751 0 0 0 .713.518h11.473a.748.748 0 0 0 .712-.518l3.546-10.922a.756.756 0 0 0-.274-.84Zm-2.067.466-2.309.75-4.687-3.391v-2.447l6.996 5.088Zm-8.733 3.52-2.088 2.867-1.294-3.966 3.382 1.1Zm-2.726-2.268 3.148-2.276v3.3l-3.148-1.024ZM24 26.045l2.2 3.02h-4.4l2.2-3.02Zm.659-5.295 3.145 2.276-3.145 1.022V20.75Zm.42 4.545 3.381-1.1-1.294 3.966-2.088-2.866Zm-1.735-8.609v2.447l-4.69 3.391-2.309-.75 6.999-5.088Zm-7.376 6.35 2.027.658 1.885 5.775-1.261 1.732-2.651-8.166Zm3.698 8.957 1.18-1.617h6.311l1.179 1.617h-8.67Zm9.715-.792-1.26-1.732 1.884-5.775 2.027-.659-2.65 8.166Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgSetupI);\nexport default Memo;","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgSetupIi = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#D27700\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D27700\",\n d: \"M18.75 21.867a1.125 1.125 0 1 0 2.25 0 1.125 1.125 0 0 0-2.25 0Zm8.25 0a1.125 1.125 0 1 0 2.25 0 1.125 1.125 0 0 0-2.25 0ZM24 13.5c-5.798 0-10.5 4.702-10.5 10.5S18.202 34.5 24 34.5 34.5 29.798 34.5 24 29.798 13.5 24 13.5Zm6.164 16.664a8.72 8.72 0 0 1-2.773 1.87A8.63 8.63 0 0 1 24 32.72a8.682 8.682 0 0 1-6.166-2.555A8.67 8.67 0 0 1 15.282 24a8.682 8.682 0 0 1 2.555-6.166A8.67 8.67 0 0 1 24 15.282a8.683 8.683 0 0 1 6.166 2.555A8.67 8.67 0 0 1 32.718 24a8.65 8.65 0 0 1-.685 3.393 8.645 8.645 0 0 1-1.87 2.77Zm-2.602-5.672h-1.127a.19.19 0 0 0-.19.174 2.252 2.252 0 0 1-4.49 0 .19.19 0 0 0-.19-.174h-1.128a.188.188 0 0 0-.187.197A3.759 3.759 0 0 0 24 28.242a3.759 3.759 0 0 0 3.75-3.553.187.187 0 0 0-.188-.197Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgSetupIi);\nexport default Memo;","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgSetupIii = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#046C7A\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#046C7A\",\n d: \"M32.25 29.25a6.56 6.56 0 0 0-3.75-5.927v-3.886c0-.354-.124-.696-.354-.966l-3.572-4.235a.749.749 0 0 0-1.148 0l-3.572 4.235a1.5 1.5 0 0 0-.354.966v3.886a6.56 6.56 0 0 0-3.75 5.927h3.668a1.81 1.81 0 0 0-.082.558 2.276 2.276 0 0 0 1.512 2.142A3.417 3.417 0 0 0 24 34.031c.682 0 1.343-.201 1.908-.581.553-.37.982-.888 1.242-1.5.396-.14.746-.388 1.01-.715.324-.404.5-.907.502-1.425 0-.197-.026-.384-.073-.558h3.661v-.002Zm-2.384-2.686c.22.342.399.71.528 1.092h-1.988v-2.561a4.958 4.958 0 0 1 1.46 1.47Zm-8.772-3.241v-3.851L24 16.027l2.906 3.445v8.184h-5.812v-4.333Zm-3.488 4.333a4.986 4.986 0 0 1 1.988-2.562v2.562h-1.988Zm9.115 2.724a.632.632 0 0 1-.4.08l-.458-.057-.065.455A1.825 1.825 0 0 1 24 32.416c-.898 0-1.671-.67-1.798-1.558l-.065-.457-.457.058a.66.66 0 0 1-.731-.654c0-.248.138-.454.342-.557h5.42a.619.619 0 0 1 .343.557.665.665 0 0 1-.333.575Zm-3.846-9.005a1.125 1.125 0 1 0 2.25 0 1.125 1.125 0 0 0-2.25 0Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgSetupIii);\nexport default Memo;","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgConsultationServiceIconI = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#D27700\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D27700\",\n d: \"m33.492 16.947-4.669.562a.188.188 0 0 0-.11.319l1.39 1.39-5.297 5.297-2.386-2.384a.374.374 0 0 0-.53 0l-7.54 7.542a.188.188 0 0 0 0 .265l1.055 1.06a.188.188 0 0 0 .265 0l6.485-6.483 2.384 2.383a.376.376 0 0 0 .53 0l6.36-6.356 1.39 1.39a.188.188 0 0 0 .319-.11l.562-4.669a.184.184 0 0 0-.208-.206Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgConsultationServiceIconI);\nexport default Memo;","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgConsultationServiceIconIi = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#046C7A\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#046C7A\",\n d: \"m32.318 15.982-7.964-2.714a1.153 1.153 0 0 0-.354-.05c-.129 0-.258.017-.354.05l-7.964 2.714a.562.562 0 0 0-.354.497v11.306c0 .206.134.478.295.607l8.08 6.296a.485.485 0 0 0 .295.096.48.48 0 0 0 .295-.096l8.079-6.296a.872.872 0 0 0 .295-.607V16.48a.553.553 0 0 0-.349-.497Zm-1.334 11.353L24 32.777l-6.984-5.442V17.313L24 14.932l6.984 2.381v10.022Zm-9.51-4.71a.377.377 0 0 0-.305-.155h-1.294a.188.188 0 0 0-.152.297l2.962 4.078a.375.375 0 0 0 .476.114.375.375 0 0 0 .133-.114l4.983-6.86a.188.188 0 0 0-.152-.297h-1.294a.38.38 0 0 0-.304.154l-3.537 4.87-1.517-2.088Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgConsultationServiceIconIi);\nexport default Memo;","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgInvoiceDesignIconI = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#046C7A\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#046C7A\",\n d: \"M18.04 29.625a.954.954 0 0 0 .14-.012l3.943-.691a.23.23 0 0 0 .124-.066l9.935-9.935a.233.233 0 0 0 0-.33l-3.895-3.898a.232.232 0 0 0-.167-.068.232.232 0 0 0-.166.068l-9.935 9.935a.239.239 0 0 0-.066.124l-.691 3.943a.785.785 0 0 0 .22.698c.155.15.35.232.558.232Zm1.58-4.087 8.5-8.499 1.718 1.718-8.5 8.498-2.084.368.365-2.085Zm13.005 6.056h-17.25a.75.75 0 0 0-.75.75v.843c0 .104.084.188.188.188h18.374a.188.188 0 0 0 .188-.188v-.843a.75.75 0 0 0-.75-.75Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgInvoiceDesignIconI);\nexport default Memo;","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgInvoiceDesignIconIi = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#5D36FF\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#5D36FF\",\n d: \"m33.284 20.275-5.95-.865-2.66-5.393a.753.753 0 0 0-1.345 0l-2.661 5.393-5.951.865a.749.749 0 0 0-.415 1.28l4.306 4.197-1.018 5.927a.749.749 0 0 0 1.088.79L24 29.671l5.323 2.798a.749.749 0 0 0 1.087-.79l-1.017-5.927 4.306-4.198a.749.749 0 0 0 .218-.429.747.747 0 0 0-.633-.85Zm-5.702 4.886.846 4.93L24 27.764l-4.427 2.328.846-4.93-3.581-3.491 4.95-.72L24 16.468l2.213 4.484 4.95.72-3.581 3.49Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgInvoiceDesignIconIi);\nexport default Memo;","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgTransferAccountsIconI = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#046C7A\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#046C7A\",\n d: \"M27.11 27.684a.186.186 0 0 0-.152-.077h-1.036a.188.188 0 0 0-.152.298l1.73 2.393a.186.186 0 0 0 .302 0l2.676-3.703a.188.188 0 0 0-.152-.298h-1.038a.185.185 0 0 0-.153.077l-1.488 2.058-.537-.748Zm1.015-8.512v-1.125a.188.188 0 0 0-.188-.188h-9a.188.188 0 0 0-.187.188v1.125c0 .103.084.187.188.187h9a.188.188 0 0 0 .187-.187Zm-9.188 2.062a.188.188 0 0 0-.187.188v1.125c0 .103.084.187.188.187h4.312a.188.188 0 0 0 .188-.187v-1.125a.188.188 0 0 0-.188-.188h-4.313ZM23.25 31.97h-6.375v-16.5H30v6.937c0 .103.084.188.188.188H31.5a.188.188 0 0 0 .188-.188v-7.875a.75.75 0 0 0-.75-.75h-15a.75.75 0 0 0-.75.75v18.375c0 .415.335.75.75.75h7.312a.188.188 0 0 0 .188-.187v-1.313a.188.188 0 0 0-.188-.187Zm9.436-7.519-4.5-1.563a.184.184 0 0 0-.061-.01.175.175 0 0 0-.06.01l-4.5 1.563a.186.186 0 0 0-.128.176v5.885c0 .059.026.112.073.148l4.5 3.52a.19.19 0 0 0 .115.04.19.19 0 0 0 .115-.04l4.5-3.52a.189.189 0 0 0 .072-.148v-5.885c0-.08-.051-.15-.126-.176Zm-1.327 5.45-3.234 2.528-3.234-2.529v-4.376l3.234-1.125 3.234 1.125V29.9Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgTransferAccountsIconI);\nexport default Memo;","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgTransferAccountsIconIi = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#D27700\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D27700\",\n d: \"M28.125 19.313v-1.125a.188.188 0 0 0-.188-.188h-9a.188.188 0 0 0-.187.188v1.125c0 .103.084.187.188.187h9a.188.188 0 0 0 .187-.188Zm-9.188 2.062a.188.188 0 0 0-.187.188v1.125c0 .103.084.187.188.187h4.312a.188.188 0 0 0 .188-.188v-1.125a.188.188 0 0 0-.188-.187h-4.313Zm3.375 10.594h-5.437v-16.5H30v8.062c0 .103.084.188.188.188H31.5a.188.188 0 0 0 .188-.188v-9a.75.75 0 0 0-.75-.75h-15a.75.75 0 0 0-.75.75v18.375c0 .415.335.75.75.75h6.374a.188.188 0 0 0 .188-.187v-1.313a.188.188 0 0 0-.188-.187Zm10.447 1.207-2.187-2.187a4.125 4.125 0 1 0-1.022.956l2.22 2.22a.188.188 0 0 0 .262 0l.727-.727a.186.186 0 0 0 0-.262Zm-5.478-2.051a2.624 2.624 0 0 1-2.625-2.625 2.624 2.624 0 0 1 2.625-2.625 2.624 2.624 0 0 1 2.625 2.625 2.624 2.624 0 0 1-2.625 2.625Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgTransferAccountsIconIi);\nexport default Memo;","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgVatI = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 48 48\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"#D27700\",\n fillOpacity: 0.1,\n rx: 8\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D27700\",\n d: \"M33.75 17.25H30v-1.313a.188.188 0 0 0-.188-.187H28.5a.188.188 0 0 0-.188.188v1.312h-3.468v-1.313a.188.188 0 0 0-.188-.187h-1.312a.188.188 0 0 0-.188.188v1.312h-3.468v-1.313a.188.188 0 0 0-.188-.187h-1.313a.188.188 0 0 0-.187.188v1.312h-3.75a.75.75 0 0 0-.75.75v13.5c0 .415.335.75.75.75h19.5a.75.75 0 0 0 .75-.75V18a.75.75 0 0 0-.75-.75Zm-.938 13.313H15.189V18.938H18v1.312c0 .103.084.188.188.188H19.5a.188.188 0 0 0 .188-.188v-1.313h3.468v1.313c0 .103.085.188.188.188h1.312a.188.188 0 0 0 .188-.188v-1.313h3.468v1.313c0 .103.085.188.188.188h1.313A.188.188 0 0 0 30 20.25v-1.313h2.813v11.625ZM21.75 23.625h-4.313a.188.188 0 0 0-.187.188v1.125c0 .103.084.187.188.187h4.312a.188.188 0 0 0 .188-.188v-1.125a.188.188 0 0 0-.188-.187Zm0 3.188h-4.313a.188.188 0 0 0-.187.187v1.125c0 .103.084.188.188.188h4.312a.188.188 0 0 0 .188-.188V27a.188.188 0 0 0-.188-.188Zm7.223-4.158-2.428 3.368-1.237-1.714a.37.37 0 0 0-.302-.154h-1.287a.188.188 0 0 0-.153.297l2.675 3.708a.373.373 0 0 0 .604 0l3.867-5.36a.188.188 0 0 0-.152-.298h-1.287a.367.367 0 0 0-.3.153Z\"\n})));\nconst Memo = /*#__PURE__*/memo(SvgVatI);\nexport default Memo;","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { memo } from \"react\";\nconst SvgVatIi = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 148 55\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#575756\",\n d: \"M58.71 34.04c-.453 0-.905.37-.905.827 0 .457.365.914.905.914s.818-.369.818-.914a.821.821 0 0 0-.818-.827ZM5.798 27.548H4.622c-.365-.184-.452-.457-.452-.73 0-.273.182-.457.452-.457s.453.184.453.457h.636c-.088-.826-.54-1.284-1.176-1.284-.635 0-1.088.458-1.088 1.1 0 .369.087.545.27.73h-.365v.73h2.446v-.546Z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#575756\",\n d: \"M7.975 30.38c0 .546-.183 1.012-1 1.012H2.628c-.723 0-1.27-.546-1.27-1.284v-1.83H0v1.83c0 1.557 1.176 2.656 2.63 2.656h4.892c1.089 0 1.811-.827 1.811-1.83v-6.86H7.975v6.315-.008ZM11.692 33.037c0 .73-.54 1.284-1.271 1.284h-.636v1.46h.636c1.54 0 2.629-1.188 2.629-2.656v-6.13h-1.446v6.042h.088ZM28.724 33.863a.821.821 0 0 0-.818.827c0 .457.366.915.818.915.453 0 .906-.37.906-.915 0-.458-.365-.827-.906-.827ZM34.794 30.838c0 .37-.27.546-.54.546h-1.899c-.27 0-.54-.088-1.27-1.645-1.272-2.656-3.17-3.756-5.434-2.93v1.285c1.811-.73 2.987 0 3.892 1.741.366.642.636 1.284.818 1.46h-5.528a.821.821 0 0 1-.818-.826v-1.372c0-1.557-1.176-2.745-2.717-2.745h-.183c-1.54 0-2.716 1.188-2.716 2.745v1.372a.821.821 0 0 1-.819.827h-1a.523.523 0 0 1-.54-.546v-6.684h-1.446v7.141c0 .827.635 1.46 1.445 1.46h1.446c.723 0 1.271-.272 1.628-.826.54.458 1.271.73 2.082.73.723 0 1.358-.369 1.81-.826.366.546.906.826 1.63.826h9.873c.818 0 1.445-.641 1.445-1.46V23.97h-1.445l.278 6.861.008.008Zm-12.138-.73c0 .73-.54 1.284-1.27 1.284-.636 0-1.176-.273-1.446-.73v-1.46c0-.827.54-1.285 1.27-1.285h.088c.723 0 1.27.546 1.27 1.284l.088.915v-.008ZM39.32 24.162h-1.445v8.69h1.446v-8.69ZM43.673 26.537h-.183c-1.54 0-2.717 1.188-2.717 2.745v.914c0 1.557 1.176 2.745 2.63 2.745h1.54v.184c0 1.011-.722 1.557-3.169 1.1v1.372c2.987.73 4.623-.37 4.623-2.103v-4.212c-.087-1.645-1.175-2.745-2.716-2.745m1.27 4.855h-1.445c-.636 0-1.176-.642-1.176-1.284v-.915c0-.73.54-1.284 1.271-1.284h.088c.722 0 1.27.546 1.27 1.284v2.199h-.007ZM51.824 25.438c.452 0 .818-.37.818-.827a.821.821 0 0 0-.819-.826c-.452 0-.905.369-.905.826 0 .458.365.827.906.827ZM54.174 25.438c.452 0 .818-.37.818-.827a.821.821 0 0 0-.818-.826.821.821 0 0 0-.819.826c0 .458.366.827.819.827ZM64.326 34.04a.821.821 0 0 0-.818.827c0 .457.365.914.818.914.453 0 .818-.369.818-.914a.821.821 0 0 0-.818-.827ZM65.133 31.392v-4.39h-1.445v3.933c0 .369-.27.545-.54.545h-2.534c-.723 0-1.001-.457-1.001-1.01v-3.476h-1.446v3.475c0 .546-.183 1.011-.905 1.011H56.26a.821.821 0 0 1-.818-.826v-4.117H52.63c-1.541 0-2.717 1.188-2.717 2.745v.826c0 1.46 1.176 2.744 2.63 2.744.905 0 1.445-.272 1.898-.826.453.545 1 .826 1.81.826h1.002c.818 0 1.27-.272 1.628-.73.366.458.906.73 1.446.73h3.17c1 0 1.636-.642 1.636-1.468m-10.962-.642c-.366.457-.906.73-1.446.73-.636 0-1.176-.546-1.176-1.284v-.826c0-.827.54-1.284 1.271-1.284h1.446v2.656h-.087l-.008.008ZM61.878 34.04c-.453 0-.905.37-.905.827 0 .457.365.914.905.914.453 0 .818-.369.818-.914.088-.458-.365-.827-.818-.827ZM76.917 25.719c.453 0 .818-.37.818-.915 0-.546-.365-.826-.818-.826-.453 0-.905.369-.905.826.087.546.453.915.905.915Z\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#575756\",\n d: \"M82.078 30.838c0 .37-.27.546-.54.546h-1.359v-1.1c0-2.56-1.088-3.755-3.17-3.755-1.357 0-2.533.915-3.534 2.103v-1.46H72.03v4.212h-1.993V26.81H68.59v6.13c0 .731-.54 1.285-1.27 1.285h-.636v1.46h.635c1.541 0 2.63-1.188 2.63-2.656v-.185h11.954c.818 0 1.446-.642 1.446-1.46v-7.142h-1.446v6.588h.183l-.008.008Zm-3.352.642h-5.25v-1.46c1.087-1.284 2.263-2.014 3.351-2.014s1.994.642 1.994 2.375l-.087 1.1h-.008ZM86.606 24.162H85.16v8.69h1.446v-8.69ZM90.958 26.537h-.183c-1.54 0-2.716 1.188-2.716 2.745v.914c0 1.557 1.175 2.745 2.629 2.745h1.54v.184c0 1.011-.722 1.557-3.168 1.1v1.372c2.986.73 4.623-.37 4.623-2.103v-4.212c-.088-1.645-1.176-2.745-2.717-2.745m1.27 4.855h-1.445c-.635 0-1.175-.642-1.175-1.284v-.915c0-.73.54-1.284 1.27-1.284h.183c.723 0 1.271.546 1.271 1.284l-.095 2.199h-.008ZM4.267 10.978c.453 0 .819-.37.819-.915a.821.821 0 0 0-.819-.827.821.821 0 0 0-.818.827c0 .545.366.915.818.915ZM1.82 10.978c.452 0 .818-.37.818-.915a.821.821 0 0 0-.818-.827c-.453 0-.906.37-.906.827.095.545.453.915.906.915ZM2.906 11.804h-.183c-1.446 0-2.63 1.187-2.63 2.656v1.1c0 1.46 1.176 2.655 2.63 2.655h.27c1.358 0 2.534-1.187 2.534-2.56v-1.187c0-1.46-1.176-2.656-2.63-2.656l.009-.008Zm1.175 3.844c0 .545-.452 1.099-1.088 1.099h-.27c-.635 0-1.176-.546-1.176-1.284v-1.011c0-.73.54-1.188 1.176-1.188h.183c.723 0 1.175.546 1.175 1.188v1.196ZM27.72 11.074c.453 0 .819-.37.819-.915a.821.821 0 0 0-.819-.826.821.821 0 0 0-.818.826c0 .457.366.915.819.915ZM41.401 16.202c0 .369-.27.545-.54.545H28.446v-4.574H27v6.131c0 .73-.54 1.284-1.27 1.284h-.636v1.46h.635c1.541 0 2.63-1.187 2.63-2.656v-.184h12.86c.818 0 1.445-.642 1.445-1.46V9.604H41.22v6.589h.182v.008ZM45.938 9.517h-1.446v8.69h1.446v-8.69ZM51.64 10.801c.453 0 .818-.37.818-.827a.821.821 0 0 0-.818-.826c-.453 0-.906.37-.906.826.088.458.453.827.906.827ZM54.088 10.801c.453 0 .818-.37.818-.827a.821.821 0 0 0-.818-.826.821.821 0 0 0-.819.826c0 .458.366.827.819.827ZM61.243 10.344h-1.271c-.366-.185-.453-.458-.453-.73 0-.273.183-.458.453-.458s.453.185.54.546h.723c-.088-.915-.54-1.284-1.271-1.284-.731 0-1.176.457-1.176 1.188 0 .369.088.642.27.826h-.453v.827h2.63v-.915h.008ZM71.484 19.307c-.453 0-.906.369-.906.826 0 .458.365.915.906.915.452 0 .818-.37.818-.915 0-.546-.366-.826-.818-.826ZM73.834 19.307a.821.821 0 0 0-.818.826c0 .458.365.915.818.915.453 0 .818-.37.818-.915 0-.546-.365-.826-.818-.826ZM86.972 11.989v.73c-1.001.273-1.629 1.1-1.724 2.199v.642c0 .457.183.914.453 1.187h-9.064c-.722 0-1-.457-1-1.01V12.26h-1.359v3.475c0 .546-.182 1.011-.905 1.011H66.58c-.723 0-1-.457-1-1.01V12.26h-1.446v3.475c0 .546-.183 1.011-.906 1.011h-7.07a.821.821 0 0 1-.818-.826v-4.117H52.53c-1.54 0-2.716 1.188-2.716 2.744v.827c0 1.46 1.175 2.744 2.629 2.744.905 0 1.446-.273 1.898-.826.453.546 1.001.826 1.811.826h6.975c.818 0 1.27-.273 1.628-.73.366.37.906.73 1.446.73h6.974c.818 0 1.271-.273 1.628-.73.366.37.906.73 1.446.73h14.227c1.445 0 2.629-1.187 2.629-2.656v-.826c.19-2.014-2.343-3.571-6.156-2.656m-32.973 4.028c-.365.457-.906.73-1.446.73-.635 0-1.175-.546-1.175-1.284v-.826c0-.827.54-1.284 1.27-1.284h1.446L53.983 16l-.008.008Zm34.88.73h-1.272c-.635-.088-1.175-.546-1.175-1.188v-.545c0-.73.453-1.188 1.175-1.188.723 0 1.176.458 1.176 1.188l.087 1.741.008-.008Zm1.81 0h-.635v-1.741c0-1.011-.636-1.741-1.446-1.918 1.899-.185 3.265.546 3.352 1.557v.826c0 .73-.54 1.284-1.27 1.284v-.008ZM24.466 15.832c0 1.284-1.088 2.376-2.351 2.376H8.524c-.818 0-1.446-.642-1.446-1.46v-7.23h1.446V16.2c0 .37.27.546.54.546h13.043c.635 0 1-.546 1-1.1 0-.826-.54-1.187-1.357-1.187h-3.71l-.27-1.1 2.176-3.843 1.359.457-1.724 3.018h2.176c1.541 0 2.717 1.195 2.717 2.84M3.266 43.557v.73H.184v-.545l1.993-3.017H.28v-.642h2.9v.545l-1.995 3.017h2.082v-.088ZM4.169 41.727l-.088-.545c1.001-.458 2.351-.458 2.351.915v2.102H5.71v-.37c-.27.274-.636.458-1.001.458-.54 0-.818-.369-.818-.826 0-.73.722-1.188 1.81-1.188v-.184c0-.73-.81-.642-1.532-.362Zm.357 1.646c0 .272.183.369.453.369a.82.82 0 0 0 .635-.273v-.73c-.723-.089-1.088.272-1.088.642M10.606 41.727l-.087-.545c1-.458 2.351-.458 2.351.915v2.102h-.723v-.37c-.27.274-.635.458-1 .458-.54 0-.819-.369-.819-.826 0-.73.723-1.188 1.811-1.188v-.184c0-.73-.81-.642-1.533-.362Zm.366 1.646c0 .272.182.369.452.369a.82.82 0 0 0 .636-.273v-.73c-.723-.089-1.088.272-1.088.642M14.592 43.469c0 .184.087.273.27.273h.27v.545c-.183 0-.453.089-.54.089-.54 0-.723-.273-.723-.827v-1.741h-.365l.087-.546h.27v-.73l.723-.185v.915h.635l-.087.546h-.54v1.661ZM16.308 45.298h-.453c.088-.272.183-.826.27-1.372v-.184h.54v.184a8.49 8.49 0 0 1-.365 1.372h.008ZM19.658 40.628V44.2h-.818v-3.57h-1.176v-.643h3.17v.642h-1.176ZM21.75 41.727l-.087-.545c1.001-.458 2.352-.458 2.352.915v2.102h-.723v-.37c-.27.274-.636.458-1.001.458-.54 0-.818-.369-.818-.826 0-.73.723-1.188 1.81-1.188v-.184c-.087-.73-.905-.642-1.54-.362m.365 1.646c0 .272.183.369.453.369a.82.82 0 0 0 .635-.273v-.73c-.723-.089-1.088.272-1.088.642M25.459 41.085l.453.642.27.458.27-.458.452-.642h.819l-1.001 1.557 1.088 1.645h-.905l-.453-.642-.27-.457-.27.457-.453.642h-.818l1.088-1.645-1.001-1.557h.731ZM29.9 41.727l-.088-.545c1-.458 2.35-.458 2.35.915v2.102h-.722v-.37c-.27.274-.635.458-1 .458-.54 0-.819-.369-.819-.826 0-.73.723-1.188 1.811-1.188v-.184c0-.73-.81-.642-1.533-.362Zm.365 1.646c0 .272.182.369.452.369a.82.82 0 0 0 .636-.273v-.73c-.723-.089-1.088.272-1.088.642M32.98 44.295v-3.113h.723v.273c.366-.273.636-.37 1.001-.37.636 0 .906.37.906 1.011v2.2h-.723v-1.919c0-.369-.183-.545-.54-.545-.27 0-.54.184-.723.273v2.198h-.636l-.008-.008ZM37.508 44.295c-.819 0-1.176-.73-1.176-1.645s.453-1.645 1.271-1.645c.27 0 .635.088.818.37v-1.373h.723v4.301h-.723v-.369c-.27.273-.54.361-.905.361m.27-2.656c-.453 0-.723.37-.723 1.011 0 .642.27 1.011.723 1.011.27 0 .452-.088.54-.184v-1.645s-.27-.185-.54-.185M43.219 44.295c-1.358 0-1.899-.914-1.899-2.198 0-1.284.54-2.2 1.899-2.2.54 0 1 .09 1.445.37v.642c-.635-.184-1-.273-1.358-.273-.818 0-1.175.546-1.175 1.557s.365 1.557 1.175 1.557c.366 0 .723-.089 1.358-.273v.642c-.54.088-.992.184-1.445.184M48.106 41.085V44.2h-.723v-.273c-.365.273-.636.369-1 .369-.636 0-.906-.37-.906-1.011v-2.199h.722v1.918c0 .37.183.546.54.546.27 0 .54-.185.723-.273v-2.199h.636l.008.008ZM48.836 44.11v-.545c.366.185.818.273 1.088.273.453 0 .54-.185.54-.37 0-.272-.27-.368-.635-.457-.453-.184-1-.369-1-1.01 0-.643.452-1.012 1.358-1.012.365 0 .722.089 1.088.273v.546c-.366-.185-.636-.273-.818-.273-.453 0-.723.184-.723.457s.365.37.723.458c.452.184.905.369.905.914 0 .643-.54 1.012-1.27 1.012-.453 0-.906-.089-1.272-.273M52.913 43.469c0 .184.087.273.27.273h.27v.545c-.183 0-.453.089-.54.089-.54 0-.723-.273-.723-.827v-1.741h-.366l.088-.546h.27v-.73l.722-.185v.915h.636l-.087.546h-.54v1.661ZM54 42.642c0-.915.453-1.645 1.446-1.645.993 0 1.445.73 1.445 1.645s-.452 1.645-1.445 1.645c-.993 0-1.446-.73-1.446-1.645Zm.723 0c0 .642.27 1.1.723 1.1.54 0 .723-.458.723-1.1 0-.642-.27-1.1-.723-1.1-.453 0-.723.546-.723 1.1ZM62.236 42.096v2.2h-.723v-1.919c0-.369-.182-.545-.54-.545-.27 0-.54.184-.723.273v2.198h-.723v-1.918c0-.369-.182-.545-.54-.545-.27 0-.54.184-.635.272v2.2h-.723v-3.114h.723v.457c.27-.273.54-.457 1-.457.461 0 .724.184.819.545.365-.369.723-.545 1.088-.545.636-.089 1 .273 1 .914M62.965 44.11v-.545c.365.185.818.273 1.088.273.453 0 .54-.185.54-.37 0-.272-.27-.368-.635-.457-.453-.184-1-.369-1-1.01 0-.643.452-1.012 1.358-1.012.452 0 .722.089 1.088.273v.546c-.366-.185-.636-.273-.819-.273-.452 0-.722.184-.722.457s.365.37.722.458c.453.184.906.369.906.914 0 .643-.54 1.012-1.27 1.012-.454 0-.906-.089-1.272-.273M68.488 43.196l-.365 1.011h-.818l1.54-4.3h.636l1.541 4.3h-.818l-.365-1.01H68.48h.008Zm.088-.545h1.175l-.635-1.83-.54 1.83ZM74.383 41.085V44.2h-.723v-.273c-.365.273-.635.369-1 .369-.636 0-.906-.37-.906-1.011v-2.199h.723v1.918c0 .37.182.546.54.546.27 0 .54-.185.723-.273v-2.199h.635l.008.008ZM76.096 43.469c0 .184.087.273.27.273h.27v.545c-.182 0-.453.089-.54.089-.54 0-.723-.273-.723-.827v-1.741h-.365l.087-.546h.27v-.73l.723-.185v.915h.636l-.088.546h-.54v1.661ZM79.996 42.096v2.2h-.723v-1.919c0-.369-.182-.546-.452-.546s-.54.185-.723.273v2.2h-.723v-4.302h.723v1.372c.27-.273.635-.369.905-.369.54 0 1.001.37 1.001 1.1M80.719 42.642c0-.915.453-1.645 1.445-1.645.993 0 1.446.73 1.446 1.645s-.453 1.645-1.446 1.645c-.993 0-1.445-.73-1.445-1.645Zm.635 0c0 .642.27 1.1.723 1.1.54 0 .723-.458.723-1.1 0-.642-.27-1.1-.723-1.1-.453 0-.723.546-.723 1.1ZM84.344 44.295v-3.113h.723v.642c.27-.458.635-.642 1.088-.642v.545c-.453-.088-1.001.273-1.088.546v2.014h-.723v.008ZM86.606 40.452c0-.185.182-.37.365-.37s.365.185.365.37c0 .184-.182.369-.365.369s-.365-.185-.365-.37Zm.81 3.843h-.723v-3.017h.723v3.017ZM89.33 43.469c0 .184.088.273.27.273h.27v.545c-.182 0-.452.089-.54.089-.54 0-.722-.273-.722-.827v-1.741h-.366l.088-.546h.27v-.73l.723-.185v.915h.635l-.087.546h-.54v1.661ZM93.405 41.085l-1.54 4.302h-.724l.27-.915-1.27-3.387h.818l.723 2.472.722-2.472h1.001ZM9.788 44.295h-.906l-1-1.46v1.46h-.636v-4.212h.723v2.375l.905-1.372h.819l-1.089 1.556 1.176 1.653h.008Z\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__a)\",\n d: \"m124.202 0-22.011 15.19.27.458L124.472.458l-.27-.458Z\"\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__b)\",\n d: \"m119.857.273-17.666 12.173.27.457L120.127.73l-.27-.457Z\"\n})), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__c)\",\n d: \"m114.512 1.188-12.321 8.514.27.457 12.233-8.514-.182-.458Z\"\n})), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__d)\",\n d: \"m107.353 3.386-5.076 3.571.27.458 5.076-3.571-.27-.458Z\"\n})), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__e)\",\n d: \"m135.619 19.588-3.535 2.471-18.389 12.631.365.546-2.534 1.741.183.273-5.346 3.755.27.458 5.886-4.117 1.899-1.372 18.659-12.815-.366-.546 3.265-2.287-.183-.273 11.955-8.233-.27-.457-11.867 8.241.008-.016Z\"\n})), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__f)\",\n d: \"m136.617 21.69-3.805 2.656-17.754 12.262.366.546-2.717 1.917.183.273-5.163 3.66.27.457 5.163-3.66 2.629-1.917 17.849-12.262-.366-.545 3.805-2.56-.182-.273 10.961-7.503-.27-.457-10.962 7.414-.007-.008Z\"\n})), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__g)\",\n d: \"m137.609 23.705-3.169 2.198-18.119 12.543.365.545-2.446 1.742.182.273-5.25 3.755.27.457 5.25-3.755 2.447-1.741 18.119-12.543-.366-.545 3.17-2.2-.183-.272 9.961-6.86-.27-.458-9.961 6.86Z\"\n})), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__h)\",\n d: \"m139.056 25.438-3.17 2.198-18.388 12.543.365.545-3.169 2.199.182.273-4.345 3.017.27.457 4.981-3.474 3.352-2.375L136.8 28.744l-.365-.546 2.986-2.014-.182-.273 8.427-5.858-.27-.457-8.332 5.858-.008-.017Z\"\n})), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__i)\",\n d: \"m140.868 26.906-3.439 2.375-15.942 10.978.365.546-3.805 2.656.183.273-5.886 4.116.27.457 6.434-4.485 3.265-2.287 16.037-10.978-.365-.545 3.352-2.287-.183-.273 6.617-4.574-.27-.458-6.617 4.478-.016.008Z\"\n})), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__j)\",\n d: \"m144.949 27.09-.087-.184-3.988 2.745-15.402 10.616.365.546-4.17 2.929.183.273-7.245 5.127.271.458 7.792-5.49 3.988-2.84 15.036-10.343-.365-.546 3.987-2.744-.27-.37.183.185 2.534-1.83-.27-.457-2.534 1.918-.008.008Z\"\n})), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__k)\",\n d: \"m145.039 29.554-2.264 1.557-9.063 6.227.365.546-3.805 2.744.183.273-13.861 9.79.27.457 14.401-10.159 3.352-2.375 8.968-6.227-.365-.546 2.264-1.557-.183-.272 2.351-1.645-.27-.458-2.351 1.645h.008Z\"\n})), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__l)\",\n d: \"m145.491 32.122-2.177 1.373-7.156 4.943.365.545-3.352 2.376.183.273-14.584 10.247.27.457 15.306-10.8 2.9-2.103 6.887-4.759-.366-.545 2.177-1.46-.27-.37 1.628-1.1-.183-.272-1.628 1.187v.008Z\"\n})), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__m)\",\n d: \"m104.273 18.392 2.082-1.46 7.697-5.304-.366-.546 3.44-2.375-.183-.273L128.358.562l-.27-.458-11.415 7.873-3.352 2.375-8.15 5.673.365.546-1.898 1.372.183.273-1.446 1.01.27.458 1.628-1.284v-.008Z\"\n})), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__n)\",\n d: \"m105.542 20.318 1.994-1.46 9.603-6.588-.365-.546 2.629-1.83-.183-.272L131.723.93l-.27-.457-12.503 8.69-2.629 1.83-10.144 7.045.366.546-1.724 1.284.183.273-2.717 1.918.27.457 2.987-2.199Z\"\n})), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__o)\",\n d: \"m105.996 22.693 2.717-1.918 10.414-7.141-.366-.546 2.812-1.918-.183-.273 13.409-9.332-.27-.458-13.409 9.333-2.899 2.014-10.962 7.503.366.546-2.352 1.645.183.273-3.265 2.287.27.457 3.535-2.472Z\"\n})), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__p)\",\n d: \"m107.085 24.707 2.899-2.102 11.049-7.591-.365-.546 2.986-2.014-.182-.273 14.401-9.79-.27-.457-14.584 9.974-2.812 1.918-11.867 8.233.365.546-2.717 1.918.183.272-3.987 2.841.27.457 4.623-3.386h.008Z\"\n})), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__q)\",\n d: \"m108.346 26.537 1.899-1.372 12.772-8.787-.365-.546 3.265-2.287-.183-.272 14.497-9.975-.27-.457-14.497 9.974-3.352 2.287-12.773 8.787.365.546-2.446 1.741.183.273-5.164 3.57.27.458 5.799-3.932v-.008Z\"\n})), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__r)\",\n d: \"m109.618 28.366 2.177-1.556 13.225-9.06-.365-.546 3.622-2.471-.183-.273 14.854-10.247-.27-.458-14.854 10.248-3.892 2.656-13.408 9.244.365.546-2.264 1.645.183.272-5.886 4.213.27.458 6.434-4.67h-.008Z\"\n})), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__s)\",\n d: \"m109.982 30.934 3.082-2.198 15.585-10.705-.365-.546 3.439-2.375-.182-.273 13.861-9.517-.27-.457-13.862 9.517-3.534 2.471-16.213 11.074.366.546-2.9 2.014.183.273-5.703 4.028.27.458 6.251-4.302-.008-.008Z\"\n})), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__t)\",\n d: \"m110.436 33.406 2.716-1.918 16.944-11.62-.366-.545 3.44-2.375-.183-.273 14.584-10.063-.27-.457-14.584 10.063-3.44 2.375-17.3 11.9.365.546-2.899 2.102.183.273-5.251 3.66.27.457 5.799-4.117-.008-.008Z\"\n})), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__u)\",\n d: \"m110.975 35.781 2.352-1.645 18.031-12.446-.365-.545 3.264-2.287-.182-.273 13.861-9.517-.27-.458-13.861 9.517-3.265 2.287-18.032 12.446.366.546-2.717 1.918.183.273-4.981 3.474.27.458 5.346-3.756v.008Z\"\n})), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__v)\",\n d: \"M145.857 35.597 120.852 53.17l.27.458 25.005-17.574-.27-.457Z\"\n})), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__w)\",\n d: \"M144.045 39.722 123.027 54.55l.27.457 21.018-14.829-.27-.457Z\"\n})), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#VAT_II_svg__x)\",\n d: \"m139.691 45.571-9.238 6.5.27.458 9.238-6.5-.27-.458Z\"\n})), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__a\",\n x1: 133.615,\n x2: 88.873,\n y1: -10.279,\n y2: 28.862,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__b\",\n x1: 132.05,\n x2: 87.316,\n y1: -12.061,\n y2: 27.073,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__c\",\n x1: 130.414,\n x2: 85.664,\n y1: -13.939,\n y2: 25.195,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__d\",\n x1: 128.744,\n x2: 84.002,\n y1: -15.841,\n y2: 23.293,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__e\",\n x1: 148.757,\n x2: 104.006,\n y1: 7.038,\n y2: 46.171,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__f\",\n x1: 150.287,\n x2: 105.537,\n y1: 8.787,\n y2: 47.92,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__g\",\n x1: 151.661,\n x2: 106.91,\n y1: 10.36,\n y2: 49.493,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__h\",\n x1: 152.949,\n x2: 108.206,\n y1: 11.836,\n y2: 50.969,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__i\",\n x1: 154.467,\n x2: 109.725,\n y1: 13.577,\n y2: 52.703,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__j\",\n x1: 155.951,\n x2: 111.208,\n y1: 15.271,\n y2: 54.404,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__k\",\n x1: 157.526,\n x2: 112.783,\n y1: 17.06,\n y2: 56.202,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__l\",\n x1: 158.979,\n x2: 114.228,\n y1: 18.721,\n y2: 57.855,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__m\",\n x1: 135.348,\n x2: 90.597,\n y1: -8.297,\n y2: 30.844,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__n\",\n x1: 136.878,\n x2: 92.136,\n y1: -6.532,\n y2: 32.594,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__o\",\n x1: 138.421,\n x2: 93.678,\n y1: -4.775,\n y2: 34.359,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__p\",\n x1: 140.057,\n x2: 95.315,\n y1: -2.905,\n y2: 36.228,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__q\",\n x1: 141.422,\n x2: 96.68,\n y1: -1.348,\n y2: 37.794,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__r\",\n x1: 143.012,\n x2: 98.269,\n y1: 0.473,\n y2: 39.607,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__s\",\n x1: 144.48,\n x2: 99.73,\n y1: 2.142,\n y2: 41.284,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__t\",\n x1: 146.03,\n x2: 101.279,\n y1: 3.916,\n y2: 43.057,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__u\",\n x1: 147.427,\n x2: 102.685,\n y1: 5.521,\n y2: 44.654,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__v\",\n x1: 160.521,\n x2: 115.778,\n y1: 20.486,\n y2: 59.62,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__w\",\n x1: 161.95,\n x2: 117.199,\n y1: 22.124,\n y2: 61.257,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"VAT_II_svg__x\",\n x1: 163.458,\n x2: 118.707,\n y1: 23.841,\n y2: 62.974,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#76B05C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.46,\n stopColor: \"#6EB7B2\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#4191CD\"\n})))));\nconst Memo = /*#__PURE__*/memo(SvgVatIi);\nexport default Memo;","import BookKeepingIcon_I from 'assets/icons/bookkeeping_I.svg';\nimport BookKeepingIcon_II from 'assets/icons/bookkeeping_II.svg';\nimport BookKeepingIcon_III from 'assets/icons/bookkeeping_III.svg';\nimport BookKeepingIcon_IV from 'assets/icons/bookkeeping_IV.svg';\nimport BookKeepingIcon_V from 'assets/icons/bookkeeping_V.svg';\nimport BookKeepingIcon_VI from 'assets/icons/bookkeeping_VI.svg';\nimport Cleanup_I from 'assets/icons/cleanup_I.svg';\nimport Cleanup_II from 'assets/icons/cleanup_II.svg';\nimport TrainingIcon_I from 'assets/icons/training_I.svg';\nimport TrainingIcon_II from 'assets/icons/training_II.svg';\nimport TrainingIcon_III from 'assets/icons/training_III.svg';\nimport SetupIcon_I from 'assets/icons/setup_I.svg';\nimport SetupIcon_II from 'assets/icons/setup_II.svg';\nimport SetupIcon_III from 'assets/icons/setup_III.svg';\nimport ConsultationServiceIcon_I from 'assets/icons/ConsultationServiceIcon_I.svg'\nimport ConsultationServiceIcon_II from 'assets/icons/ConsultationServiceIcon_II.svg'\nimport InvoiceDesignIcon_I from 'assets/icons/InvoiceDesignIcon_I.svg';\nimport InvoiceDesignIcon_II from 'assets/icons/InvoiceDesignIcon_II.svg';\nimport TransferAccountsIcon_I from 'assets/icons/TransferAccountsIcon_I.svg';\nimport TransferAccountsIcon_II from 'assets/icons/TransferAccountsIcon_II.svg';\nimport VATIcon_I from 'assets/icons/VAT_I.svg';\nimport VATIcon_II from 'assets/icons/VAT_II.svg';\nimport i18next from 'i18next';\n\n\n\ninterface InfoItemData {\n title: string;\n content: string;\n Icon: React.FunctionComponent<React.SVGAttributes<SVGElement>> | null;\n}\n\n\ninterface ConsultationItem {\n title: string;\n}\n\nexport const bookkeepingInfoItems: InfoItemData[] = [\n {\n title: 'activerecord.attributes.professional_services.bookkeeping.info.I.title',\n content: 'activerecord.attributes.professional_services.bookkeeping.info.I.content',\n Icon: BookKeepingIcon_I\n },\n {\n title: 'activerecord.attributes.professional_services.bookkeeping.info.II.title',\n content: 'activerecord.attributes.professional_services.bookkeeping.info.II.content',\n Icon: BookKeepingIcon_II\n },\n {\n title: 'activerecord.attributes.professional_services.bookkeeping.info.III.title',\n content: 'activerecord.attributes.professional_services.bookkeeping.info.III.content',\n Icon: BookKeepingIcon_III\n },\n {\n title: 'activerecord.attributes.professional_services.bookkeeping.info.IV.title',\n content: 'activerecord.attributes.professional_services.bookkeeping.info.IV.content',\n Icon: BookKeepingIcon_IV\n },\n {\n title: 'activerecord.attributes.professional_services.bookkeeping.info.V.title',\n content: 'activerecord.attributes.professional_services.bookkeeping.info.V.content',\n Icon: BookKeepingIcon_V\n },\n {\n title: 'activerecord.attributes.professional_services.bookkeeping.info.VI.title',\n content: 'activerecord.attributes.professional_services.bookkeeping.info.VI.content',\n Icon: BookKeepingIcon_VI\n },\n]\n\nexport const cleanupInfoItems: InfoItemData[] = [\n {\n title: 'activerecord.attributes.professional_services.cleanup.info.I.title',\n content: 'activerecord.attributes.professional_services.cleanup.info.I.content',\n Icon: Cleanup_I\n },\n {\n title: 'activerecord.attributes.professional_services.cleanup.info.II.title',\n content: 'activerecord.attributes.professional_services.cleanup.info.II.content',\n Icon: Cleanup_II\n },\n]\n\nexport const trainingInfoItems: InfoItemData[] = [\n {\n title: 'activerecord.attributes.professional_services.training.info.I.title',\n content: 'activerecord.attributes.professional_services.training.info.I.content',\n Icon: TrainingIcon_I\n },\n {\n title: 'activerecord.attributes.professional_services.training.info.II.title',\n content: 'activerecord.attributes.professional_services.training.info.II.content',\n Icon: TrainingIcon_II\n },\n {\n title: 'activerecord.attributes.professional_services.training.info.III.title',\n content: 'activerecord.attributes.professional_services.training.info.III.content',\n Icon: TrainingIcon_III\n },\n]\n\nexport const setupInfoItems: InfoItemData[] = [\n {\n title: 'activerecord.attributes.professional_services.setup.info.I.title',\n content: 'activerecord.attributes.professional_services.setup.info.I.content',\n Icon: SetupIcon_I\n },\n {\n title: 'activerecord.attributes.professional_services.setup.info.II.title',\n content: 'activerecord.attributes.professional_services.setup.info.II.content',\n Icon: SetupIcon_II\n },\n {\n title: 'activerecord.attributes.professional_services.setup.info.III.title',\n content: 'activerecord.attributes.professional_services.setup.info.III.content',\n Icon: SetupIcon_III\n },\n]\nexport const consultationServiceInfoItems: InfoItemData[] = [\n {\n title: 'activerecord.attributes.professional_services.consultation_service.info.I.title',\n content: 'activerecord.attributes.professional_services.consultation_service.info.I.content',\n Icon: ConsultationServiceIcon_I\n },\n {\n title: 'activerecord.attributes.professional_services.consultation_service.info.II.title',\n content: 'activerecord.attributes.professional_services.consultation_service.info.II.content',\n Icon: ConsultationServiceIcon_II\n },\n]\n\nexport const invoiceDesignInfoItems: InfoItemData[] = [\n {\n title: 'activerecord.attributes.professional_services.invoice_design.info.I.title',\n content: 'activerecord.attributes.professional_services.invoice_design.info.I.content',\n Icon: InvoiceDesignIcon_I\n },\n {\n title: 'activerecord.attributes.professional_services.invoice_design.info.II.title',\n content: 'activerecord.attributes.professional_services.invoice_design.info.II.content',\n Icon: InvoiceDesignIcon_II\n },\n]\nexport const transferAccountsInfoItems: InfoItemData[] = [\n {\n title: 'activerecord.attributes.professional_services.transfer_accounts.info.I.title',\n content: 'activerecord.attributes.professional_services.transfer_accounts.info.I.content',\n Icon: TransferAccountsIcon_I\n },\n {\n title: 'activerecord.attributes.professional_services.transfer_accounts.info.II.title',\n content: 'activerecord.attributes.professional_services.transfer_accounts.info.II.content',\n Icon: TransferAccountsIcon_II\n },\n]\nconst vatARExtraItems: InfoItemData[] = i18next.language === 'en'? [] : [\n {\n title: 'activerecord.attributes.professional_services.vat.info.III.title',\n content: 'activerecord.attributes.professional_services.vat.info.III.content',\n Icon: null\n },\n {\n title: 'activerecord.attributes.professional_services.vat.info.IV.title',\n content: 'activerecord.attributes.professional_services.vat.info.IV.content',\n Icon: null\n }\n]\n\nexport const vatInfoItems: InfoItemData[] = [\n {\n title: 'activerecord.attributes.professional_services.vat.info.I.title',\n content: 'activerecord.attributes.professional_services.vat.info.I.content',\n Icon: VATIcon_I\n },\n {\n title: 'activerecord.attributes.professional_services.vat.info.II.title',\n content: 'activerecord.attributes.professional_services.vat.info.II.content',\n Icon: VATIcon_II\n },\n ...vatARExtraItems\n]\n\nexport const consultations: ConsultationItem[] = [\n {\n title: 'activerecord.attributes.professional_services.consultation_service.consultations.tax',\n },\n {\n title: 'activerecord.attributes.professional_services.consultation_service.consultations.accounting',\n },\n {\n title: 'activerecord.attributes.professional_services.consultation_service.consultations.financial',\n },\n];","export const CONFIGURATION_OPTIONS = ['ManualJournalEntry', 'EasyEntry', 'PurchaseOrder', 'Bill', 'SimpleBill', 'DebitNote', 'Quotation', 'Invoice', 'CreditNote', 'InventoryTransfer', 'StockTake', 'Production', 'Payroll', 'EmployeePayment', 'Loan', 'Bonus', 'Deduction']\n","import { QueryKeyType } from \"types/query-keys\";\n\ntype FilterType = Record<\n string,\n string | number | Record<string, string | number>\n>;\n\nexport const fixedAssetAdditionKeys: QueryKeyType = {\n all: [\"fixed-asset-additions\"],\n lists: () => [...fixedAssetAdditionKeys.all, \"lists\"],\n list: (filters: FilterType) => [\n ...(fixedAssetAdditionKeys.lists ?? (() => fixedAssetAdditionKeys.all))(),\n filters,\n ],\n paginate: (\n filters: FilterType,\n pageNumber: number,\n pageSize?: number,\n sorter?: string,\n ) => [\n ...(fixedAssetAdditionKeys.list ?? (() => fixedAssetAdditionKeys.all))(\n filters,\n ),\n \"paginate\",\n pageNumber,\n pageSize ?? 10,\n sorter ?? \"\",\n ],\n detail: (id: number | string) => [\n ...fixedAssetAdditionKeys.all,\n \"details\",\n id,\n ],\n};\n\nexport const assetRegistryKeys: QueryKeyType = {\n all: [\"asset-registry\"],\n lists: () => [...assetRegistryKeys.all, \"lists\"],\n list: (filters: FilterType) => [\n ...(assetRegistryKeys.lists ?? (() => assetRegistryKeys.all))(),\n filters,\n ],\n paginate: (\n filters: FilterType,\n pageNumber: number,\n pageSize?: number,\n sorter?: string,\n ) => [\n ...(assetRegistryKeys.list ?? (() => assetRegistryKeys.all))(filters),\n \"paginate\",\n pageNumber,\n pageSize ?? 10,\n sorter ?? \"\",\n ],\n detail: (id: number | string) => [...assetRegistryKeys.all, \"details\", id],\n details: (id: number | string, params?: Record<string, string | number>) => [\n ...(assetRegistryKeys.detail?.(id) ?? [\n ...assetRegistryKeys.all,\n \"details\",\n id,\n ]),\n params,\n ],\n};\n\nexport const assetClassificationKeys: QueryKeyType = {\n all: [\"asset-classification\"],\n lists: () => [...assetClassificationKeys.all, \"lists\"],\n list: (filters: FilterType) => [\n ...(assetClassificationKeys.lists ?? (() => assetClassificationKeys.all))(),\n filters,\n ],\n paginate: (\n filters: FilterType,\n pageNumber: number,\n pageSize?: number,\n sorter?: string,\n ) => [\n ...(assetClassificationKeys.list ?? (() => assetClassificationKeys.all))(\n filters,\n ),\n \"paginate\",\n pageNumber,\n pageSize ?? 10,\n sorter ?? \"\",\n ],\n detail: (id: number | string) => [\n ...assetClassificationKeys.all,\n \"details\",\n id,\n ],\n details: (id: number | string, params?: Record<string, string | number>) => [\n ...(assetClassificationKeys.detail?.(id) ?? [\n ...assetClassificationKeys.all,\n \"details\",\n id,\n ]),\n params,\n ],\n};\n\nexport const fixedAssetKeys: QueryKeyType = {\n all: [\"fixed-assets\"],\n lists: () => [...fixedAssetKeys.all, \"lists\"],\n list: (filters: FilterType) => [\n ...(fixedAssetKeys.lists ?? (() => fixedAssetKeys.all))(),\n filters,\n ],\n paginate: (\n filters: FilterType,\n pageNumber: number,\n pageSize?: number,\n sorter?: string,\n ) => [\n ...(fixedAssetKeys.list ?? (() => fixedAssetKeys.all))(filters),\n \"paginate\",\n pageNumber,\n pageSize ?? 10,\n sorter ?? \"\",\n ],\n detail: (id: number | string) => [...fixedAssetKeys.all, \"details\", id],\n details: (id: number | string, params?: Record<string, string | number>) => [\n ...(fixedAssetKeys.detail?.(id) ?? [...fixedAssetKeys.all, \"details\", id]),\n params,\n ],\n};\n\nexport const billKeys: QueryKeyType = {\n all: [\"bills\"],\n lists: () => [...billKeys.all, \"lists\"],\n list: (filters: FilterType) => [\n ...(billKeys.lists ?? (() => billKeys.all))(),\n filters,\n ],\n paginate: (\n filters: FilterType,\n pageNumber: number,\n pageSize?: number,\n sorter?: string,\n ) => [\n ...(billKeys.list ?? (() => billKeys.all))(filters),\n \"paginate\",\n pageNumber,\n pageSize ?? 10,\n sorter ?? \"\",\n ],\n detail: (id: number | string) => [...billKeys.all, \"details\", id],\n details: (id: number | string, params?: Record<string, string | number>) => [\n ...(billKeys.detail?.(id) ?? [...billKeys.all, \"details\", id]),\n params,\n ],\n};\n\nexport const commercialDocumentKeys: QueryKeyType = {\n all: [\"commercial-documents\"],\n lists: () => [...commercialDocumentKeys.all, \"lists\"],\n list: (filters: FilterType) => [\n ...(commercialDocumentKeys.lists ?? (() => commercialDocumentKeys.all))(),\n filters,\n ],\n paginate: (\n filters: FilterType,\n pageNumber: number,\n pageSize?: number,\n sorter?: string,\n ) => [\n ...(commercialDocumentKeys.list ?? (() => commercialDocumentKeys.all))(\n filters,\n ),\n \"paginate\",\n pageNumber,\n pageSize ?? 10,\n sorter ?? \"\",\n ],\n detail: (id: number | string) => [\n ...commercialDocumentKeys.all,\n \"details\",\n id,\n ],\n details: (id: number | string, params?: Record<string, string | number>) => [\n ...(commercialDocumentKeys.detail?.(id) ?? [\n ...commercialDocumentKeys.all,\n \"details\",\n id,\n ]),\n params,\n ],\n};\n\nexport const currentUserKeys: QueryKeyType = {\n all: [\"current-user\"],\n};\n\nexport const depreciationKeys: QueryKeyType = {\n all: [\"depreciations\"],\n lists: () => [...depreciationKeys.all, \"lists\"],\n list: (filters: FilterType) => [\n ...(depreciationKeys.lists ?? (() => depreciationKeys.all))(),\n filters,\n ],\n paginate: (\n filters: FilterType,\n pageNumber: number,\n pageSize?: number,\n sorter?: string,\n ) => [\n ...(depreciationKeys.list ?? (() => depreciationKeys.all))(filters),\n \"paginate\",\n pageNumber,\n pageSize ?? 10,\n sorter ?? \"\",\n ],\n detail: (id: number | string) => [...depreciationKeys.all, \"details\", id],\n};\n\nexport const productKeys: QueryKeyType = {\n all: [\"products\"],\n lists: () => [...productKeys.all, \"lists\"],\n list: (filters: FilterType) => [\n ...(productKeys.lists ?? (() => productKeys.all))(),\n filters,\n ],\n paginate: (\n filters: FilterType,\n pageNumber: number,\n pageSize?: number,\n sorter?: string,\n ) => [\n ...(productKeys.list ?? (() => productKeys.all))(filters),\n \"paginate\",\n pageNumber,\n pageSize ?? 10,\n sorter ?? \"\",\n ],\n detail: (id: number | string) => [...productKeys.all, \"details\", id],\n details: (id: number | string, params?: Record<string, string | number>) => [\n ...(productKeys.detail?.(id) ?? [...productKeys.all, \"details\", id]),\n params,\n ],\n};\n\nexport const contactVendorKeys: QueryKeyType = {\n all: [\"contact-vendors\"],\n lists: () => [...contactVendorKeys.all, \"lists\"],\n list: (filters: FilterType) => [\n ...(contactVendorKeys.lists ?? (() => contactVendorKeys.all))(),\n filters,\n ],\n paginate: (\n filters: FilterType,\n pageNumber: number,\n pageSize?: number,\n sorter?: string,\n ) => [\n ...(contactVendorKeys.list ?? (() => contactVendorKeys.all))(filters),\n \"paginate\",\n pageNumber,\n pageSize ?? 10,\n sorter ?? \"\",\n ],\n detail: (id: number | string) => [...contactVendorKeys.all, \"details\", id],\n details: (id: number | string, params?: Record<string, string | number>) => [\n ...(contactVendorKeys.detail?.(id) ?? [\n ...contactVendorKeys.all,\n \"details\",\n id,\n ]),\n params,\n ],\n};\n\nexport const tenantPaymentTermsKeys: QueryKeyType = {\n all: [\"tenant-payment-terms\"],\n lists: () => [...tenantPaymentTermsKeys.all, \"lists\"],\n list: (filters: FilterType) => [\n ...(tenantPaymentTermsKeys.lists ?? (() => tenantPaymentTermsKeys.all))(),\n filters,\n ],\n paginate: (\n filters: FilterType,\n pageNumber: number,\n pageSize?: number,\n sorter?: string,\n ) => [\n ...(tenantPaymentTermsKeys.list ?? (() => tenantPaymentTermsKeys.all))(\n filters,\n ),\n \"paginate\",\n pageNumber,\n pageSize ?? 10,\n sorter ?? \"\",\n ],\n detail: (id: number | string) => [\n ...tenantPaymentTermsKeys.all,\n \"details\",\n id,\n ],\n details: (id: number | string, params?: Record<string, string | number>) => [\n ...(tenantPaymentTermsKeys.detail?.(id) ?? [\n ...tenantPaymentTermsKeys.all,\n \"details\",\n id,\n ]),\n params,\n ],\n};\n\nexport const inventoryKeys: QueryKeyType = {\n all: [\"inventories\"],\n lists: () => [...inventoryKeys.all, \"lists\"],\n list: (filters: FilterType) => [\n ...(inventoryKeys.lists ?? (() => inventoryKeys.all))(),\n filters,\n ],\n paginate: (\n filters: FilterType,\n pageNumber: number,\n pageSize?: number,\n sorter?: string,\n ) => [\n ...(inventoryKeys.list ?? (() => inventoryKeys.all))(filters),\n \"paginate\",\n pageNumber,\n pageSize ?? 10,\n sorter ?? \"\",\n ],\n detail: (id: number | string) => [...inventoryKeys.all, \"details\", id],\n details: (id: number | string, params?: Record<string, string | number>) => [\n ...(inventoryKeys.detail?.(id) ?? [...inventoryKeys.all, \"details\", id]),\n params,\n ],\n};\n\nexport const taxesKeys: QueryKeyType = {\n all: [\"taxes\"],\n lists: () => [...taxesKeys.all, \"lists\"],\n list: (filters: FilterType) => [\n ...(taxesKeys.lists ?? (() => inventoryKeys.all))(),\n filters,\n ],\n paginate: (\n filters: FilterType,\n pageNumber: number,\n pageSize?: number,\n sorter?: string,\n ) => [\n ...(taxesKeys.list ?? (() => inventoryKeys.all))(filters),\n \"paginate\",\n pageNumber,\n pageSize ?? 10,\n sorter ?? \"\",\n ],\n detail: (id: number | string) => [...taxesKeys.all, \"details\", id],\n details: (id: number | string, params?: Record<string, string | number>) => [\n ...(taxesKeys.detail?.(id) ?? [...taxesKeys.all, \"details\", id]),\n params,\n ],\n};\n","import { CDStatuses, InvoiceData, Permissions, SimpleBillData } from \"./app\";\nimport { Dayjs } from \"dayjs\";\n\nexport interface RTPermissions {\n recurring_transactions: Permissions;\n invoices: Permissions;\n bills: Permissions;\n simple_bills: Permissions;\n}\n\nexport type ScheduleStatus =\n | \"success\"\n | \"overdue\"\n | \"failed\"\n | \"scheduled\"\n | \"skipped\"\n | \"in_progress\";\n\nexport enum ScheduleType {\n UPCOMMING = \"upcoming\",\n PASSED = \"passed\",\n}\n\nexport type SelectedDocumentStatus =\n | \"Approved\"\n | \"Awaiting for approval\"\n | \"Draft\";\n\nexport interface ScheduleData {\n id: number;\n reference: string;\n created_at: string;\n scheduled_run_date: string;\n status: ScheduleStatus;\n actual_run_date: null | string;\n failure_reason: null | string;\n documents:\n | {\n id: number;\n reference: string;\n created_at: string;\n issue_date: string;\n status: SelectedDocumentStatus;\n }[]\n | null;\n}\n\nexport interface ScheduleApiResponse {\n schedules: ScheduleData[];\n meta: {\n total_pages: number;\n };\n}\n\nexport interface RTSchedules {\n actual_run_date: null | string;\n ar_name: string;\n created_at: string;\n en_name: string;\n failure_reason: null | string;\n id: number;\n original_documents: {\n id: number;\n reference: string;\n type: \"Invoice\" | \"Bill\" | \"SimpleBill\";\n }[];\n recurring_transaction_id: number;\n reference: string;\n scheduled_run_date: string;\n status: ScheduleStatus;\n}\n\nexport interface RTSchedulesResponse {\n recurring_transaction_schedules: RTSchedules[];\n meta: {\n total_pages: number;\n };\n}\n\nexport interface QueryOpts {\n page?: string;\n enabled?: boolean;\n per_page?: string;\n}\n\nexport type TransactionStatus =\n | \"draft\"\n | \"scheduled\"\n | \"inactive\"\n | \"active\"\n | \"failed\"\n | \"completed\";\n\nexport type TransactionDocumentStatus =\n | \"draft\"\n | \"approved\"\n | \"awaiting_approval\";\n\nexport type TransactionDocumentType = \"Invoice\" | \"Bill\" | \"SimpleBill\";\n\nexport interface TransactionDocumentData {\n id: number;\n reference: string;\n status: SelectedDocumentStatus;\n issue_date: string;\n due_date: string;\n remaining_amount: string;\n total_amount: string;\n contact: string;\n}\n\nexport type TransactionRepeatTerm =\n | \"daily\"\n | \"weekly\"\n | \"monthly\"\n | \"quarterly\"\n | \"semi_annually\";\n\nexport interface TransactionData {\n id: number;\n reference: string;\n en_name: string;\n ar_name: string;\n status: TransactionStatus;\n user_comments: string;\n description: string;\n document_status: TransactionDocumentStatus;\n document_type: TransactionDocumentType;\n documents_total_amount: string;\n start_date: string;\n end_date: string;\n end_type: \"custom\" | \"runs_count\";\n repeat_term: TransactionRepeatTerm;\n total_runs: number;\n remaining_runs: number;\n deleted_at: null | string;\n created_at: string;\n updated_at: string;\n next_run_date: null | string;\n last_run_date: null | string;\n}\n\nexport interface TransactionApiResponse {\n recurring_transaction: TransactionData;\n documents: TransactionDocumentData[];\n pagination: {\n current_page: number;\n per_page: number;\n total_entries: number;\n total_pages: number;\n next_page: null | number;\n previous_page: null | number;\n };\n}\n\nexport type DocumentTypes = \"Bills\" | \"SimpleBills\" | \"Invoices\";\n\nexport type DocumentsRespnse =\n | { documents: InvoiceData[]; meta: { total_pages: number } }\n | { simple_bills: SimpleBillData[]; meta: { total_pages: number } };\n\nexport interface SelectedDocument {\n id: number;\n reference: string;\n status: CDStatuses;\n date: string;\n amount: string;\n type: DocumentTypes;\n}\n\nexport interface RecurringTransactionData {\n ar_name: string;\n description?: string;\n document_status: \"approved\" | \"awaiting_approval\" | \"draft\";\n document_type: \"Bill\" | \"Invoice\" | \"SimpleBill\";\n en_name: string;\n end_date: Dayjs;\n end_type: string;\n recurring_transaction_documents_attributes: {\n documentable_id: number;\n }[];\n reference: string;\n repeat_term: \"daily\" | \"weekly\" | \"monthly\" | \"quarterly\" | \"semi_annually\";\n start_date: Dayjs;\n status: \"scheduled\" | \"draft\";\n total_runs: number;\n user_comments?: string;\n}\n\nexport type RTDocumentsTypes = \"Bill\" | \"Invoice\" | \"Simple Bill\";\n\nexport type RTTabs = \"All\" | RTDocumentsTypes;\n\nexport interface RTRecord {\n id: number;\n reference: string;\n en_name: string;\n ar_name: string;\n status:\n | \"draft\"\n | \"scheduled\"\n | \"inactive\"\n | \"active\"\n | \"failed\"\n | \"completed\";\n user_comments: string;\n description: string;\n document_status: \"approved\" | \"awaiting_approval\" | \"draft\";\n document_type: \"Invoice\" | \"Bill\" | \"SimpleBill\";\n documents_total_amount: string;\n start_date: string;\n end_date: string;\n end_type: \"custom\" | \"runs_count\";\n repeat_term: \"daily\" | \"weekly\" | \"monthly\" | \"quarterly\" | \"semi_annually\";\n total_runs: number;\n remaining_runs: number;\n deleted_at: string;\n created_at: string;\n updated_at: string;\n}\n\nexport interface Filter {\n attribute: string;\n predicate: string;\n value: string;\n}\n\nexport interface Sort {\n attribute: string;\n direction: \"desc\" | \"asc\";\n}\n\nexport interface Pagination {\n current_page: number;\n per_page: number;\n total_entries: number;\n total_pages: number;\n next_page: null | number;\n previous_page: null | number;\n}\n\nexport interface RTIndexResponse {\n filters: Filter[];\n sorts: Sort[];\n records: RTRecord[];\n pagination: Pagination;\n}\n\nexport type ToggleStatus = Extract<RTRecord[\"status\"], \"active\" | \"inactive\">;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".radio-checkbox .ant-radio-inner {\\n border-radius: 0;\\n appearance: none;\\n border: 1px solid #d3d3d3;\\n width: 20px;\\n height: 20px;\\n content: none;\\n outline: none;\\n margin: 0;\\n box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;\\n}\\n\\n.radio-checkbox .ant-radio.ant-radio-disabled input {\\n appearance: none;\\n}\\n\\n.radio-checkbox .ant-radio-wrapper .ant-radio-disabled .ant-radio-inner::after {\\n background-color: unset;\\n}\\n\\n.radio-checkbox .ant-radio-checked .ant-radio-inner {\\n border-color: #14293c;\\n background-color: #fff;\\n appearance: none;\\n outline: none;\\n padding: 0;\\n content: none;\\n border: none;\\n}\\n\\n.radio-checkbox .ant-radio-checked .ant-radio-inner::after {\\n position: absolute;\\n content: \\\"\\\\00A0\\\\2713\\\\00A0\\\" !important;\\n font-weight: bolder;\\n font-size: 12px;\\n transform: unset !important;\\n opacity: 1;\\n transition: unset;\\n}\\n\\n.label-light label {\\n font-weight: 500;\\n color: #677292 !important;\\n}\\n\\n.form-divider.ant-divider {\\n border-color: #eeeeee;\\n font-weight: 700;\\n}\\n\\n.form-divider.ant-divider .ant-divider-inner-text {\\n margin-left: unset !important;\\n width: 20.6%;\\n text-align: end;\\n}\\n\\n.show-card {\\n width: 100%;\\n border: 0px;\\n}\\n\\n.show-card .ant-card-meta {\\n margin-bottom: 10px;\\n}\\n\\n.show-card .ant-card-meta .ant-card-meta-title {\\n font-weight: 500;\\n color: #677292 !important;\\n}\\n\\n.modal-form .addon-select .ant-input-number {\\n width: 30%;\\n}\\n\\n.modal-form\\n .addon-select\\n .ant-input-number-wrapper\\n .ant-input-number-group-addon {\\n padding: 0;\\n}\\n\\n.addon-select .ant-input-number-group-addon {\\n width: 15%;\\n}\\n\\n.show-page .ant-input-outlined.ant-input-disabled,\\n.show-page .ant-input-outlined[disabled],\\n.show-page .ant-input-number-outlined.ant-input-number-disabled,\\n.show-page\\n .ant-input-group-wrapper-outlined.ant-input-group-wrapper-disabled\\n .ant-input-group-addon,\\n.show-page\\n .ant-input-group-wrapper-outlined.ant-input-group-wrapper-disabled\\n .ant-input-group-addon:hover,\\n.show-page\\n .ant-input-number-group\\n .ant-input-number-group-addon\\n .ant-select.ant-select-single\\n .ant-select-selector,\\n.show-page .ant-input-number-group-addon,\\n.show-page .ant-select-outlined.ant-select-disabled .ant-select-selector,\\n.show-page .ant-picker-outlined.ant-picker-disabled,\\n.show-page .ant-picker-outlined.ant-picker-disabled:hover,\\n.show-page .ant-picker .ant-picker-input > input[disabled] {\\n color: #000;\\n}\\n\\n.editable-cell {\\n position: relative;\\n}\\n\\n.editable-cell-value-wrap {\\n padding: 5px 12px;\\n cursor: pointer;\\n}\\n\\n.editable-row:hover .editable-cell-value-wrap {\\n padding: 4px 11px;\\n border: 1px solid #d9d9d9;\\n border-radius: 2px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/components/tenant/FixedAssetAdditions/styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,gBAAgB;EAChB,gBAAgB;EAChB,yBAAyB;EACzB,WAAW;EACX,YAAY;EACZ,aAAa;EACb,aAAa;EACb,SAAS;EACT,2CAA2C;AAC7C;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,uBAAuB;AACzB;;AAEA;EACE,qBAAqB;EACrB,sBAAsB;EACtB,gBAAgB;EAChB,aAAa;EACb,UAAU;EACV,aAAa;EACb,YAAY;AACd;;AAEA;EACE,kBAAkB;EAClB,qCAAqC;EACrC,mBAAmB;EACnB,eAAe;EACf,2BAA2B;EAC3B,UAAU;EACV,iBAAiB;AACnB;;AAEA;EACE,gBAAgB;EAChB,yBAAyB;AAC3B;;AAEA;EACE,qBAAqB;EACrB,gBAAgB;AAClB;;AAEA;EACE,6BAA6B;EAC7B,YAAY;EACZ,eAAe;AACjB;;AAEA;EACE,WAAW;EACX,WAAW;AACb;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;EAChB,yBAAyB;AAC3B;;AAEA;EACE,UAAU;AACZ;;AAEA;;;;EAIE,UAAU;AACZ;;AAEA;EACE,UAAU;AACZ;;AAEA;;;;;;;;;;;;;;;;;;;EAmBE,WAAW;AACb;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,iBAAiB;EACjB,eAAe;AACjB;;AAEA;EACE,iBAAiB;EACjB,yBAAyB;EACzB,kBAAkB;AACpB\",\"sourcesContent\":[\".radio-checkbox .ant-radio-inner {\\n border-radius: 0;\\n appearance: none;\\n border: 1px solid #d3d3d3;\\n width: 20px;\\n height: 20px;\\n content: none;\\n outline: none;\\n margin: 0;\\n box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;\\n}\\n\\n.radio-checkbox .ant-radio.ant-radio-disabled input {\\n appearance: none;\\n}\\n\\n.radio-checkbox .ant-radio-wrapper .ant-radio-disabled .ant-radio-inner::after {\\n background-color: unset;\\n}\\n\\n.radio-checkbox .ant-radio-checked .ant-radio-inner {\\n border-color: #14293c;\\n background-color: #fff;\\n appearance: none;\\n outline: none;\\n padding: 0;\\n content: none;\\n border: none;\\n}\\n\\n.radio-checkbox .ant-radio-checked .ant-radio-inner::after {\\n position: absolute;\\n content: \\\"\\\\00A0\\\\2713\\\\00A0\\\" !important;\\n font-weight: bolder;\\n font-size: 12px;\\n transform: unset !important;\\n opacity: 1;\\n transition: unset;\\n}\\n\\n.label-light label {\\n font-weight: 500;\\n color: #677292 !important;\\n}\\n\\n.form-divider.ant-divider {\\n border-color: #eeeeee;\\n font-weight: 700;\\n}\\n\\n.form-divider.ant-divider .ant-divider-inner-text {\\n margin-left: unset !important;\\n width: 20.6%;\\n text-align: end;\\n}\\n\\n.show-card {\\n width: 100%;\\n border: 0px;\\n}\\n\\n.show-card .ant-card-meta {\\n margin-bottom: 10px;\\n}\\n\\n.show-card .ant-card-meta .ant-card-meta-title {\\n font-weight: 500;\\n color: #677292 !important;\\n}\\n\\n.modal-form .addon-select .ant-input-number {\\n width: 30%;\\n}\\n\\n.modal-form\\n .addon-select\\n .ant-input-number-wrapper\\n .ant-input-number-group-addon {\\n padding: 0;\\n}\\n\\n.addon-select .ant-input-number-group-addon {\\n width: 15%;\\n}\\n\\n.show-page .ant-input-outlined.ant-input-disabled,\\n.show-page .ant-input-outlined[disabled],\\n.show-page .ant-input-number-outlined.ant-input-number-disabled,\\n.show-page\\n .ant-input-group-wrapper-outlined.ant-input-group-wrapper-disabled\\n .ant-input-group-addon,\\n.show-page\\n .ant-input-group-wrapper-outlined.ant-input-group-wrapper-disabled\\n .ant-input-group-addon:hover,\\n.show-page\\n .ant-input-number-group\\n .ant-input-number-group-addon\\n .ant-select.ant-select-single\\n .ant-select-selector,\\n.show-page .ant-input-number-group-addon,\\n.show-page .ant-select-outlined.ant-select-disabled .ant-select-selector,\\n.show-page .ant-picker-outlined.ant-picker-disabled,\\n.show-page .ant-picker-outlined.ant-picker-disabled:hover,\\n.show-page .ant-picker .ant-picker-input > input[disabled] {\\n color: #000;\\n}\\n\\n.editable-cell {\\n position: relative;\\n}\\n\\n.editable-cell-value-wrap {\\n padding: 5px 12px;\\n cursor: pointer;\\n}\\n\\n.editable-row:hover .editable-cell-value-wrap {\\n padding: 4px 11px;\\n border: 1px solid #d9d9d9;\\n border-radius: 2px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".report-card-item:hover {\\n background-color: #0000000f;\\n cursor: pointer;\\n border-radius: 8px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/styles/reports.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,2BAA2B;EAC3B,eAAe;EACf,kBAAkB;AACpB\",\"sourcesContent\":[\".report-card-item:hover {\\n background-color: #0000000f;\\n cursor: pointer;\\n border-radius: 8px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".HhCM1uYsuNiTkcivTKAf>span+span{flex:1 !important}.sjV3geYFd46k4B5Y3WIy input[type=\\\"radio\\\"]{margin:0 !important}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/styles/layout.scss\"],\"names\":[],\"mappings\":\"AAAA,gCAEQ,iBAAkB,CACrB,0CAKG,mBAAoB\",\"sourcesContent\":[\".q_ant_menu__sub_item {\\n > span + span {\\n flex: 1 !important;\\n }\\n}\\n\\n.q_ant_input__radio {\\n & input[type=\\\"radio\\\"] {\\n margin: 0 !important;\\n }\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"q_ant_menu__sub_item\": \"HhCM1uYsuNiTkcivTKAf\",\n\t\"q_ant_input__radio\": \"sjV3geYFd46k4B5Y3WIy\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 24980,\n\t\"./gom-deva.js\": 24980,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 95606,\n\t\"./ss.js\": 95606,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!./styles.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!./styles.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./layout.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./layout.scss\";\n export default content && content.locals ? content.locals : undefined;\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","webpackAsyncContext","Promise","then","_path","_path2","_path3","_path4","_path5","_path6","_path7","_path8","_path9","_path10","_extends","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","SvgNoBudgetData","props","xmlns","width","height","fill","viewBox","d","opacity","Memo","memo","SvgTasksOutlined","getAssetRegistries","async","search","page","pageSize","sorter","filters","data","axios","get","params","per_page","asset_registries","getAssetRegistry","assetRegistryID","updateAssetRegistry","put","registryParams","asset_registry","getAllCommercialDocuments","documents","getCommercialDocument","commercialDocumentID","calculateLineTotal","post","initializeBill","getCurrentUser","getFixedAssetAdditions","getFixedAssetAddition","fixedAssetAdditionID","deleteFixedAssetAddition","record","delete","error","response","createFixedAssetAddition","values","headers","updateFixedAssetAddition","initFixedAssetAddition","validateFixedAssetAddition","getBudgets","getSingleBudget","getDateRanges","type","date_ranges","getBudgetsLastReference","getAccounts","getBudgetsPermissions","getCategories","getAssetClassifications","postBudget","formData","_id","updateBudget","patch","deleteBudget","postBudgetDetails","getBudgetDimensions","postBudgetingValueBreakdown","requestBody","getBudgetingValueBreakdowns","valueIndex","getAllValuesBreakdowns","getDimension","dimensionID","getConfiguration","getUnAssignedDimensionValues","pageParam","getDimensionValues","parentID","cdType","perPage","valueID","disabledDimensionValues","lineItem","parentQueryParam","disabledQueryParam","getActivatedDimensionValues","getValuesByLineItem","lineItemID","fetchDocuments","documentType","searchParams","baseURL","searchParamsObj","URLSearchParams","has","set","append","url","getLocations","getCustomFields","queryKey","getRTPermissions","getSchedules","transactionId","querySearch","toString","getTransaction","createRecurringTransaction","getNextReference","getRecurringTransactionSchedules","currentPage","getRTRecords","updateStatus","newStatus","status","deleteRT","Accept","executeSchedule","operation","EditableContext","React","EditableRow","index","form","Form","useFormInstance","_jsx","Provider","value","children","_createElement","newForm","useForm","component","EditableCell","title","editable","dataIndex","formName","keepEditable","handleSave","rules","restProps","editing","setEditing","useState","inputRef","useRef","useContext","formFieldName","useEffect","current","focus","toggleEdit","setFieldValue","save","getFieldValue","childNode","Item","style","margin","name","Input","ref","onPressEnter","onBlur","className","paddingInlineEnd","onClick","dataSource","columns","deletableRow","addMore","tableDataSource","setTableDataSource","count","setCount","defaultColumns","push","render","_","Popconfirm","onConfirm","newData","filter","item","handleDelete","handleAdd","row","findIndex","splice","components","body","cell","dataColumns","col","onCell","Table","rowClassName","footer","Button","marginBottom","Paragraph","Typography","ServerError","t","useTranslation","Result","subTitle","extra","href","_jsxs","CloseCircleOutlined","SelectWithSearch","queryFn","queryKeyObject","dataLabelFn","initialOpts","disabled","onChange","selectFirstOption","selectOnlyProps","queryProps","pageNumber","dropDownData","compact","valueRef","filterRef","refetch","isLoading","useQuery","paginate","_error","console","log","fetchDropDownData","enabled","isEqual","uniqBy","selectOptions","dt","label","String","componentDisabled","ConfigProvider","useConfig","selectedOpt","find","opt","options","subOpt","Select","showSearch","defaultActiveFirstOption","filterOption","onSearch","keyword","catch","notFoundContent","Spin","size","handleChange","option","onFocus","handleFocus","onPopupScroll","persist","scrollTop","offsetHeight","scrollHeight","queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","AntdWithTheme","QueryClientProvider","client","antdConfigProps","BackButton","icon","i18next","language","ArrowLeftOutlined","ArrowRightOutlined","window","go_back","Footer","Layout","Text","Link","mobileFooter","Map","flexDirection","copyrightRank","pcFooter","footerLinksAR","footerLinksEN","trackGAEvent","action","ReactGA","event","category","GAMap","QFooter","broken","footerDirection","footerLinks","textAlign","display","justifyContent","alignItems","paddingInline","gap","position","bottom","Space","wordBreak","order","Date","getFullYear","useToken","theme","Header","mobileHeader","triggerCollapse","comments","tasks","helpItems","userSettings","getLatestTasks","showReferral","open","setOpen","items","setItems","showDrawer","_Fragment","TrophyOutlined","color","location","MessageOutlined","QuestionCircleOutlined","QIcon","TasksOutlined","UserOutlined","MenuOutlined","Drawer","placement","onClose","closeIcon","direction","pcHeader","collapsed","currentUser","organizationName","MenuUnfoldOutlined","transform","MenuFoldOutlined","padding","ellipsis","rows","strong","split","Divider","Dropdown","onOpenChange","opened","menu","maxHeight","overflow","border","trigger","align","Avatar","shape","src","tenantLogo","QHeader","logoURL","startIntro","token","headerView","setHeaderView","QLayoutContext","useComments","useTasks","useHelp","useUserSetting","menuTrigger","useCallback","eventID","HeaderContent","background","colorBgContainer","left","paddingMD","QLogo","logoHeight","srcSet","sizes","alt","NoMatch","history","back","Portal","Component","htmlRoot","createPortal","document","querySelector","Title","Content","QContent","borderTop","paddingBlock","paddingSM","backgroundColor","colorPrimary","fontWeight","level","paddingTop","paddingLG","paddingBottom","minHeight","Icon","QOnBoardingIndex","subtitle","iconSize","iconWithStyle","fontSize","Row","justify","Col","lg","xl","xxl","QPageHeader","breadCrumbData","Breadcrumb","QPageLayout","actionBtns","messageHolder","styles","q_ant_input__radio","QReportContent","orientation","marginTop","QServiceContent","QStatusTag","statuses","useStatusMap","normalizedStatus","_normalize","statusLabel","Tag","marginInline","SvgBillsOutlined","SvgManualJornalOutlined","SvgReportsOutlined","SvgCustomersOutlined","stroke","strokeLinecap","strokeLinejoin","strokeOpacity","SvgProductsOutlined","SvgCutsomerReceiptsOutlined","SvgProjectsOutlined","SvgVendorReceiptsOutlined","SvgFolderOpenR","clipRule","SvgDimensionSettings","SvgPurchasesOrders","SvgVendorsOutlined","SvgInoviceOutlined","SvgQuotationsOutlined","_g","_defs","SvgDeductionsOutlined","clipPath","SvgLoanOutlined","SvgSoundOutlined","SvgQFilled","SvgDisposal","SvgBudgetingIcon","fillRule","SvgCurrencyMenu","SvgQAcademy","fillOpacity","SvgCleanup","SvgTraining","SvgConsultationService","SvgSetupService","SvgInvoiceDesign","SvgBalanceEntries","SvgTransferAccountsIcon","SvgVatService","SvgFixedAssetAddition","iconMap","DashboardOutlined","DollarOutlined","CustomersOutlined","QuotationsOutlined","InvoiceOutlined","CustomerReceiptsOutlined","PurchasesOrdersOutlined","VendorsOutlined","BillsOutlined","VendorReceiptsOutlined","ProductsOutlined","EnvironmentOutlined","InsertRowBelowOutlined","TableOutlined","FallOutlined","DisposalOutlined","FixedAssetAdditionIcon","FolderOpenOutlined","ToolOutlined","SoundOutlined","LoanOutlined","GiftOutlined","DeductionOutlined","ManualJournalOutlined","BarChartOutlined","ApartmentOutlined","Budgeting","SyncOutlined","ProjectsOutlined","ReportsOutlined","QFill","ConsultationService","SetupServices","InvoiceDesign","BalanceEntries","Q_Academy","TradferAccountsIcon","Cleanup","Training","VAT_Service","SettingOutlined","DimensionSettingsOutlined","RocketOutlined","FileProtectOutlined","FileAddOutlined","EditOutlined","PaperClipOutlined","CurrencyIcon","labelMap","tagMap","getItems","isMobileRequest","setOpenKeys","rawItem","new_entity","tag","actionElement","showMeHow","moduleName","slice","join","path","newPath","dataToggle","dataTarget","link","mobileWarning","startsWith","replaceModuleWords","itemChildren","TagElement","tagData","allowed","newClickAction","createAction","create","PlusOutlined","forEach","child","clickAction","q_ant_menu__sub_item","onTitleClick","getItem","Flex","lineHeight","viewAction","view","whiteSpace","flex","includes","SideMenu","sideMenuData","currentActiveItem","currentActiveMenu","openKeys","lastOpenedKeys","setLastOpenedKeys","openKey","prevState","undefined","useMemo","Menu","darkItemBg","darkSubMenuItemBg","colorInfo","darkItemSelectedBg","mode","selectedKeys","antComponent","AntComponent","AntD","QEmptyIndex","vertical","FillReceiveDate","assetRegistry","isModalOpen","setIsModalOpen","startDepreciationDate","useQueryClient","registryMuttation","useMutation","mutationFn","onSuccess","invalidateQueries","assetRegistryKeys","detail","err","required","initialValue","hidden","Modal","onOk","updateRegistry","validateFields","recursive","errorFields","registryErrorField","innerHTML","errors","mutate","start_depreciation_date","onCancel","Card","DatePicker","disabledDate","purchase_date","isBefore","dayjs","_dateFormat","date","errorDom","Array","isArray","boxSizing","fallbackImage","AssetRegistryShow","registryWatch","useWatch","screens","Grid","useBreakpoint","marginLeft","span","sm","xs","Meta","avatar","Image","preview","fixed_asset","image_url","fallback","description","serial_number","sku","registry","formatCurrency","book_value","Tooltip","accumulated_depreciation","unbooked_amount","CalculationDepreciationEntry","registeries","isEditable","validator","_rule","Number","reject","registery","fixed_asset_name","en_name","amount","EditableTable","pagination","ShowDepreciation","depreciationID","isError","depreciationKeys","getDepreciation","value_adjustments","value_adjustment","locale_name","Math","round","EPSILON","Skeleton","CalculateDeprecation","registries","isCalculated","setIsCalculated","activeTab","setActiveTab","DisabledContext","depreciated","float","depreciatedRegisteries","register","orientationMargin","gutter","offset","isDepreciated","calculateDepreciation","handleOk","handleCancel","Tabs","defaultActiveKey","active","activeKey","getVendors","contacts","getPaymentTerms","payment_terms","getInventories","inventories","BillDetails","additionInstance","useAddition","billItems","bill_items","bill_items_attributes","billDate","additionDateWatch","dateValidator","condition","issueDate","isAfter","setFieldsValue","bill","issue_date","due_date","supply_date","cacheTime","vendorFilters","id_eq","contact_id","md","reference","numbering","contactVendorKeys","contact","tenantPaymentTermsKeys","_value","numberOfDays","days_after","currentIssueDate","add","term","payment_term","inventory_id","inventory","inventoryKeys","ar_name","endDay","endOf","LineItem","records","TotalEntry","getTaxes","taxes","getProducts","products","InternalLineItem","initialDataSource","quantity","lineItems","setLineItems","getLineItemFieldValue","field","newItems","resetFields","updateLineItem","newLineItem","product_id","product_description","unit_price","is_inclusive","discount_percentage","discount_type","total_before_vat","amount_after_discount","tax_id","vat_value","tax_value","line_total","calculateLineTotalMutation","meta","discount_value","tax","indexKey","handleProductChange","val","buying_price","selling_price","formChange","UserContext","maxDiscount","userType","discount","wrapperCol","product","productKeys","text","_record","InputNumber","min","valuePropName","Checkbox","discountType","errorMsg","replace","unitPrice","total","addonAfter","defaultValue","taxesKeys","code_name","_text","DeleteOutlined","danger","scroll","x","totalVals","setTotalVals","totalBeforeVat","vatValue","totalAmount","formVals","styleProps","colProps","newTotals","BillForm","showFormModal","setShowFormModal","closable","errorInfo","FixedAssetAdditionCreateBillForm","mutation","RecordContext","transaction","fixed_asset_addition_transactions","tr","transactionable_type","depreciationTransaction","GeneralForm","renderListRegistryComponent","mainRegistry","AssetRegistryList","renderCalculateDepreciationComponent","transactionable_id","additionType","transactionable","attributes","FixedAssetAdditionActionButtons","permission","usePermission","assetClassificationPermission","write","read","EditForm","billPermission","addition_type","FixedAssetAdditionMergeForm","FixedAssetAdditionLinkBillForm","approve","FixedAssetAdditionEdit","messageAPI","msgContext","message","useMessage","fixedAssetAdditionKeys","additionID","fixedAssetAdditionMutation","_data","onError","content","DisabledContextProvider","Option","FixedAssetAdditionFilterForm","onSubmit","onReset","onFinish","handleFilterSubmit","dateFrom","dateTo","format","placeholder","RangePicker","FilterOutlined","htmlType","RedoOutlined","handleReset","FixedAssetAdditionCard","getFixedAssets","fixed_assets","additionForm","additionHook","mainAssetRegistry","query","additionStartDate","submitBtnText","formComponent","isDisabled","layout","handleCreateAddition","labelCol","fontSizeSM","autoComplete","colon","validateMessages","requiredMark","fixed_asset_addition","resp","assetClassification","assetClassificationID","asset_classification","assetClassificationKeys","cls","english_name","arabic_name","fixedAsset","assetID","fixedAssetKeys","asset","defaultPickerValue","TextArea","autoSize","life_cycle_type","lifeCycle","Radio","life_cycle","life_cycle_start","precision","SubmitButton","buttonText","billWatch","depreciation_date","show_all","registryQuery","list","assetRegistries","assetName","overflowY","BillSelector","initialData","snakeCase","doc_kind","addition_transactions_count","untracked_products_count","commercialDocumentKeys","result","groupedResult","groupBy","groupedOptions","docType","doc","handleBillChange","DepreciationDetails","depreciationComponent","addition","mergeRegistryID","merge","details","dateString","mergeRegistryFilter","q","id_not_eq","g","start_depreciation_date_and_received_date_lteq","start_depreciation_date_null","m","showMergeRegistry","mergeRegistry","permissions","notificationApi","notificationCtxHolder","handleValidation","handleClassificationChange","handleAssetChange","formState","setFormState","asset_registry_id","isAssetDisabled","isRegistryDisabled","additionDate","registryData","main","showAssetRegistry","registryType","numberValue","setAssetClassificationID","setAssetID","setLifeCycle","setMainAssetRegistry","formValues","lifeCycleData","billAttributes","depreciation","InfoItem","Poster","colorBgLayout","borderRadius","AccountBudgeting","budget","hasValues","currentYear","isFormChanged","setIsFormChanged","initialValues","setInitialValues","createBudget","editBudget","lastReference","next_code","accounts","transformedData","transformData","handleSubmit","incomingData","maxWidth","FormData","name_ar","name_en","fiscal_year","toISOString","accounts_ids","el","attachment","originFileObj","file","dimensions","selectedDimension","hasData","updatedFormData","JSON","stringify","fiscalYearValue","dimension","dimensionId","onValuesChange","max","pattern","inputReadOnly","picker","year","TreeSelect","treeData","treeCheckable","showCheckedStrategy","SHOW_PARENT","filterTreeNode","inputValue","treeNode","toLowerCase","AttachmentField","BudgetDimensions","allowedFileTypes","normFile","fileList","getValueFromEvent","noStyle","Upload","Dragger","beforeUpload","isAllowedType","isLt2M","LIST_IGNORE","multiple","InboxOutlined","BreakDownModal","dateRanges","modalOpen","setModalOpen","selectedRow","BudgetContext","nameKey","breakDownValue","accountName","breakDownDateCode","budgetingValueId","budgeting_value_id","tableData","setTableData","errorMessage","setErrorMessage","useBreakDownModalState","breakDownInputsValues","setBreakDownInputsValues","submittable","setSubmittable","dynamicDimensionsColumns","useDynamicDimensionsColumns","recordKey","prevData","updatedDimensions","dimensions_values","dim","dimension_id","some","breakdownData","createBreakDownValues","variables","context","success","processBreakdownData","savedAmounts","reduce","acc","value_broken_down","formattedData","kind","breakdown","initialRow","handleAddRow","newRow","now","random","hasDuplicateDimensions","obj","otherObj","areDimensionsEqual","a","b","sortedA","sort","y","sortedB","every","hasEmptyDimensions","budgetingValueBreakdown","value_index","budgeting_value_breakdown","handleInputChange","newValues","sum","MinusCircleOutlined","newResult","numKey","parseInt","handleRemoveRow","centered","okText","cancelText","okButtonProps","Boolean","Alert","showIcon","summary","Summary","Cell","colSpan","BudgetActionButton","BudgetCard","getBudgetIdFromUrl","BudgetDetails","cycle","setCycle","no","setFormData","setSelectRow","originalCycle","setOriginalCycle","initialRowData","setInitialRowData","isSaveButtonDisabled","setIsSaveButtonDisabled","expandedKeys","setExpandedKeys","moment","breakDownValues","updateBudgetDetails","getAllKeysRecursively","flatMap","addInitialData","parentId","account","budgeting_values","fromEntries","from","parseFloat","budget_amount","calculateBudgetAmount","budgetings","recordId","updateParent","updateParentNodes","firstRow","codeA","codeB","localeCompare","resetData","resetDateToZero","prevFormData","newFormData","resetRecord","childId","hasUnsavedChanges","showResetRowModal","resetRowModal","useResetRowDataModal","preventDefault","isValidNumber","test","totalDigits","updatedRecord","renderTable","useBudgetDetailsColumns","handleBlur","numberOfFields","ranges","finalFormData","BrakeDownModal","BudgetDetailsHeaderSection","cycleCallBack","tableLayout","expandable","expandedRowKeys","onExpand","handleExpand","expanded","prevExpandedKeys","rowExpandable","expandIcon","customExpandIcon","marginLG","formDataResult","entries","budgeting_id","HeaderSection","fiscalYear","budgetKind","showResetModal","resetModal","useResetAllModal","base","i18n","selectedDimensions","setSelectedDimensions","hasDimensions","setHasDimensions","preSelected","fetchNextPage","hasNextPage","isFetchingNextPage","useInfiniteQuery","getNextPageParam","lastPage","nextPage","next_page","pages","handlePopupScroll","clientHeight","List","fields","remove","validateTrigger","marginRight","labelInValue","handleSelectChange","prevSelectedDimensions","newSelectedDimensions","selected","handleRemove","BudgetTable","useTableColumns","setFilters","setCurrentPage","setPageSize","setSorter","filterApplied","setFilterApplied","extractYear","updatedData","FilterForm","total_entries","showSizeChanger","pageSizeOptions","loading","handleTableChange","columnKey","rowKey","locale","emptyText","NoBudgetData","startOf","ItemBudgeting","categories","assetClassifications","transformCategories","selectedItemCategory","setSelectedItemCategory","selectedTransaction","setSelectedTransaction","transaction_type","category_ids","asset_classification_ids","input","_path11","_path12","_path13","_path14","_path15","_path16","_path17","_path18","_path19","_path20","_path21","_path22","_rect","SvgAddStock","maskUnits","maskType","mask","strokeWidth","rx","SvgBarcode","strokeMiterlimit","SvgCheckbox","SvgScanner","HEADER_TO_GUIDANCE_KEY","header_stock_take","header_inventory_transfer","BarcodeGuidanceButton","headerKey","helpSteps","guidanceKey","Scanner","AddStock","Barcode","checkbox","getHelpSteps","drawerPlacement","marginMD","BarcodeOutlined","fontSizeLG","marginXS","CloseOutlined","GuidanceFooter","step","GuidanceItem","HubSpotConversations","widget","load","MessageTwoTone","textDecoration","localesMap","ConfigurationOptions","setCheckedList","checkedList","readyData","model","Group","entity","idx","DimensionConfiguration","isGlobal","canBeGlobal","setCanBeGlobal","global","translationTerms","CustomField","customFieldTypeInputName","getValueProps","checked","normalize","marginSM","TimePicker","shouldUpdate","prevValues","nextValues","DueIssueDatePicker","columnsConfig","dateTypeInputName","cellWidth","SelectLocations","useLocations","flat","spinning","allowClear","currentTarget","RT_VALIDATIONS","RT_PLACEHOLDERS","AddDocumentsButton","handleOpenDocuments","CustomDatePicker","CustomInput","CustomInputNumber","CustomSelect","optionsArray","optionsParent","CustomSubmitButton","isProcessing","redirect","handleClick","indicator","LoadingOutlined","spin","marginInlineEnd","CustomTextArea","SvgColoredDoubleRight","SkipProcessModal","onSkipProcess","isSkipping","ColoredDoubleRight","invoiceNo","posInvoiceNo","customerName","vendorName","Approved","Paid","to","reset","custom_fields","statusKeys","dateKeys","FilterActions","update","resetFilterHandler","resetSelection","filterHandler","isFieldsTouched","ReloadOutlined","DocumentFitlers","setFormContainerRef","useCustomFields","is1920Screen","useMediaQuery","isMobile","isPermissionsLoading","useRTPermissions","customFieldType","setCustomFieldType","filterSatusOptions","dateOptions","customFieldsOptions","cpn","field_name","field_type","itemMarginBottom","screenXL","wrap","v","customFieldChangeHandler","balance","dueDate","useColumns","statusMap","isSmallScreen","baseColumns","fixed","formatAmountWithCurrency","statusData","DocumentsTable","onSelect","isPreviousData","isFetching","keepPreviousData","isXXLScreen","simple_bills","rowSelection","selectedRowKeys","preserveSelectedRowKeys","total_pages","saveSelections","cancel","unauthorizedMessage","documentsKeys","documentsTokens","Invoices","translations","tabTitle","permissionKey","Bills","SimpleBills","trasnfromSearchParams","s","inv","ModalFooter","onSave","useTabItems","hasRowsSelected","hasPermission","isOpen","savedSelectedDocuments","selectedDocuments","setSelectedDocuments","hasFilterUpdated","setHasFilterUpdated","tabItems","isLargeScreen","useInteractiveFilter","setFilterUpdate","shouldUpdateURL","cancelHandler","invoices","useLayoutEffect","saveSelectionHandler","header","tabBarGutter","marginXL","DocumentsFitlers","tableChangeHandler","sorterObject","fieldToSort","f","selectRowsHandler","total_amount","SvgRecurringTransactions","NoRecurringTransactions","canWrite","recurring_transactions","RecurringTransactionsIcon","daily","weekly","monthly","quarterly","semi_annually","draft","inactive","scheduled","failed","completed","RecordsFilter","useRTRecords","shouldApplyStoredFilter","attribute","predicate","pull","recurringType","nextDate","actions","modal","okBtn","tooltip","edit","activate","deactivate","clone","sortByThisColumn","filed","sortOrder","mapColorStatus","RowActions","contextHolder","useModal","confirmModal","mutateAsync","updteStatusAsync","isUpdatingStatusLoading","useToggleRTStatus","deleteRTAsync","isDeletingLoading","useDeleteRT","cancelButtonProps","canActivateDeactivate","canDelete","canEdit","canClone","EyeOutlined","deleteHandler","confirm","red","statusToggleHandler","PlayCircleOutlined","green","PoweroffOutlined","CopyOutlined","RecordsTable","onRow","All","tabs","filterValue","IndexTabs","statusField","indexTitle","backBtn","info","user_comments","recurringOpt","cardTitle","frequencyType","ends","afterMaximumRuns","onCustomDate","dateFirstRun","dateNextRun","dateLastRun","remainingRuns","RTtype","RTCardsInfo","RTInfo","GeneralInfoCard","RTOptCard","bordered","paragraph","Status","FailureReason","passedSchedulesQuery","useSchedules","passed","upcoming","schedules","failure_reason","dateOpt","next_run_date","last_run_date","start_date","RTDateOpt","RTRepeatOpt","repeat_term","remaining_runs","end_type","total_runs","end_date","Bill","SimpleBill","Invoice","RelatedDocs","totalDocs","cardBg","colorPrimaryBg","borderRadiusLG","headerBorderRadius","headerBg","hideOnSinglePage","documentTypeKey","toLocaleLowerCase","hasCDReadPermission","ScheduleType","UPCOMMING","PASSED","created_at","run","skip","reload","SchedulesTable","schedulesData","totalEntries","anyFailed","RTStatus","isRefetchingSchedules","refetchSchedules","isSkipModalOpen","setIsSkipModalOpen","isExecutingLoading","useExecuteSchedule","activeRowId","onStart","onSkip","childrenColumnName","showExpandColumn","hasWritePersmission","Badge","renderAsTag","isParentRow","isUpcoming","isPassed","scheduleStatus","CaretRightOutlined","translatedStatus","CardContent","alignment","CardList","cardsData","card","alignContent","marginInlineStart","showInput","ReferralCard","RewardCard","rewardsCount","borderLeftWidth","ReferralLinkInput","ReferralHeader","headerData","referralUrl","useReferralData","copied","setCopied","linkCopied","readOnly","navigator","clipboard","writeText","setTimeout","CheckCircleOutlined","GiftFilled","RecentReports","recentReports","report","colorText","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","UpgradePlaneTooltip","InfoCircleOutlined","ArrowUpOutlined","ReportCard","CategoryIcon","Icons","FileTwoTone","reports","renderItem","is_locked","paddingXS","flexWrap","cursor","LockFilled","is_new","ReportDashboardSkeleton","ReportsFilter","reportsCallback","borderBottom","trim","setReports","searchValue","filteredReports","OverviewTab","handleTabChange","screenSizes","cardSize","cardStyle","overflowX","CurrentPlanCard","CurrentAddOnsCard","SvgMapPinOutline","SvgPayrollOutline","SvgPosOutline","SvgUserGroupOutlined","Svg404","addons","UserGroupOutlined","usedValue","subscribedValue","MapPinOutline","POS_Outline","PayrollOutline","NewAddonButton","marginBlock","addon","percentage","Progress","percent","showInfo","colorLink","NoAddOnsCard","Result404","SvgMastercardNew","changePlanItems","useChangePlanItems","RetweetOutlined","HistoryOutlined","FrownOutlined","boxShadow","fontFamily","MasterCardLogo","sizeXXL","borderColor","colorBorder","createContext","formObservable","Subject","ModalContext","dataRef","appliedRef","updateTmpApplyList","check","currency","normalizedValue","formattedNumber","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","abs","currencySymbol","getCurrencySymbol","toLocaleString","labelKey","transformedItem","urlParts","pathname","resetFormData","parentRecord","childRecord","selectConfigurationModelHandler","checkedValues","allIdx","indexOf","settings","useSettings","defaultSettings","date_format","Settings","roundNumber","currencyValue","number","ServiceRequestButton","serviceType","actionLabel","successMessage","setContent","messageApi","messageContext","mutationKey","service_type","notIncludedFilterKeys","SORT_DIRECTION","SORT_DIRECTION_REVERSE","depArray","setURL","URL","setPage","sorterStr","setSorterStr","defaultSorted","setDefaultSorted","queryParams","setQueryParams","formContainerRef","preObject","state","formFields","getFieldsValue","prevURL","newURL","pushState","sortSplit","allPages","subscribe","callback","matchMedia","addEventListener","removeEventListener","getSnapshot","screenSize","matches","budgetCode","setBudgetCode","deleteRecord","actionButtons","FormOutlined","okType","showDeleteConfirm","SortOrder","isTriggered","renderEditableInput","formDataField","isBreak","ExclamationCircleOutlined","suffix","visibility","shortName","isResetModalVisible","setIsResetModalVisible","visible","handleResetRow","isResetRowModalVisible","setIsResetRowModalVisible","currentRecordId","setCurrentRecordId","setDynamicDimensionsColumns","value_type","useDimensionPermissions","fetch","ok","json","viewAllPath","lastComments","user_full_name","bodyStyle","ClockCircleOutlined","Empty","image","PRESENTED_IMAGE_SIMPLE","rel","newTaskPath","lastTasks","setLastTasks","updated_at","diff","humanize","script","createElement","isOnBoard","canSendSuggestions","rawItems","langMap","lang","handleLocaleChange","GlobalOutlined","divider","LogoutOutlined","tourMap","useIntro","pagePath","steps","setSteps","getSteps","rawSteps","nextButtonProps","prevButtonProps","TABLE_HEADERS","ACTIONS","queryOpts","upcomingSchedulesQuery","useQueries","isRefetching","all","useTransaction","useDocumentsColumns","handleDeleteDocument","useTransactionsColumns","handleStartProcess","openSkipProcessModal","isRunProcessing","firstSchedule","isRunning","original_documents","recurring_transaction_id","scheduled_run_date","recurringRef","disabledAction","original_documents_type","bills","useNextReference","nextReference","next_reference","useRecurringTransactionSchedules","isSchedulesLoading","queryOptions","fetchReferralLink","referral_url","referrals","referrals_count","useBreadCrumbData","Active","Billed","Cancelled","Completed","Draft","Failed","Inactive","Overdue","Scheduled","Skipped","Success","word","charAt","toUpperCase","componentRequirePageContext","require","layoutRequirePageContext","ReactRailsUJS","globalTokens","lightToken","arLocaleWithShortDays","arEG","shortWeekDays","initReactI18next","init","resources","I18n","translation","lng","localeMap","enUS","dir","App","modulePath","Page","Module","default","I18nextProvider","Sider","lightTheme","LayoutPage","setCollapsed","collapsedWidth","setCollapsedWidth","siderWidth","setSiderWidth","mobileStyles","setMobileStyles","setLogoURL","setBroken","intro","loaderRef","top","initialize","process","classList","zIndex","breakpoint","onBreakpoint","collapsible","Tour","scrollIntoViewOptions","block","QServiceLayout","BookKeeping","QTahseelLogo","PosterSrc","bookkeepingInfoItems","cleanupInfoItems","consultations","consultationServiceInfoItems","invoiceDesignInfoItems","Setup","setupInfoItems","trainingInfoItems","TransferAccounts","transferAccountsInfoItems","VAT","vatInfoItems","QoyodAcademy","Edit","parts","setBudget","setHasValues","resource_id","Budget","New","budgetTypes","setBudgetTypes","CodeSandboxOutlined","selectedBudget","setSelectedBudget","headerStyle","Ribbon","formItemLayout","EditDimensionValue","exec","setParentID","setInitialData","dimensionValueQuery","dimensionQuery","dimensionParentValuesQuery","isSuccess","parent_id","parentValue","dimension_name","dimension_code","labelWrap","scrollToFirstError","maxLength","dimensionRecord","LOCALIZED_VALUES","DimensionValueIndex","fetchedValues","setData","activeParent","setActiveParent","modalContext","procElements","activated","onSettled","dimensionValue","handleActivate","rootDimensionValues","dimensionValues","newDataBranch","reverse","tmpData","handleExpandRow","NewDimensionValue","parentValues","setParentValues","isSelectingParent","setIsSelectingParent","nextCodeQuery","transformedParentValues","dimension_configuration","CONFIGURATION_OPTIONS","SvgEmptyDimension","en","ar","LOCALIZED_VALUES_REVERSE","DimensionIndex","filterUpdated","showSorterTooltip","sortedColumnIdx","defaultSortOrder","handleFilterReset","isEmptyIndex","UndoOutlined","current_page","EmptyDimensionIcon","DimensionForm","setHidden","hideItem","typeModelMap","DimesnionModal","cdID","relatedCD","setRelatedCD","tmpAppliedRef","activeDimensionList","activeLineItem","parentFormSubmitHandler","dimension_value_id","ParentForm","setUpRowDimension","dimensionIcon","getElementById","showModal","external_line_item_id","trIdx","dimension_values","parentTR","closest","queryStr","next","trID","handleApply","updateApplyList","appliedObj","k","dimensionLi","entry","refObj","tmp","dimensionRef","contains","isConfirmApply","isApplyAll","applied","valueObj","setActiveLineItem","setActiveDimensionList","assignable_id","cd_type","apply_to_all","_destroy","SelectControl","isFetchValues","setIsFetchValues","setDimension","setOptions","setTrID","setSearch","setValue","setDisabled","setApplied","relationID","setRelationID","initialVal","setInitialVal","setLineItemID","dimensionValuesQuery","extraQuery","allValues","subscription","unsubscribe","trData","globalApply","handleApplied","NewDimension","DimensionShow","dimensionData","FixedAssetAdditions","userQuery","currentUserKeys","interactiveFilter","fieldOrder","ghost","is_deletable","fixed_asset_additions","SvgFixedAssetAdditionMergeAssets","SvgFixedAssetAdditionLinkBill","SvgFixedAssetAdditionCreateBill","FixedAssetAdditionNew","classificationPermission","additionTypes","FixedAssetAdditionMergeAssetSvg","isAllowed","FixedAssetAdditionLinkBillSvg","FixedAssetAdditionCreateBillSvg","FixedAssetAdditionNewCreateBill","duration","FixedAssetAdditionNewLinkBill","FixedAssetAdditionNewMerge","FixedAssetAdditionShowPage","IndexPortal","InventoryTransfers","RecurringTransactionsInDashboard","isSkipProcessModalOpen","setIsSkipProcessModalOpen","selectedTab","setSelectedTab","setExpandedRowKeys","selectedTransactionId","runProcessMutate","skipProcessMutateAsync","isSkipProcessing","RTSchedulesData","recurring_transaction_schedules","marginXXL","tabBarStyle","tab","virtual","onShowSizeChange","RecurringTransactions","pageTitle","SvgDocumentArrowDownOutline","CANCEL_CONFIRMATION","DETAILS","DOCUMENTS","MAIN_INFO","MORE_INFO","NewRecurringTransactions","startDate","setStartDate","maxRuns","setMaxRuns","isDocumentsModalOpen","setIsDocumentsModalOpen","documentsData","setDocumentsData","isCancellationModalOpen","setIsCancellationModalOpen","statusesArray","setStatusesArray","processingButton","setProcessingButton","submitButtons","setSubmitButtons","prevDocuments","handleResetForm","fieldErrors","setFields","scrollToError","getFieldError","scrollToField","getFieldsError","canApprove","handleCloseCancellationModal","DocumentContent","DocumentArrowDownOutline","marginXXS","paddingXL","document_type","recurring_transaction_documents_attributes","documentable_id","minDate","selectedDate","runs","dependencies","maxDate","alignSelf","button","submit","handleCancellation","Documents","modalCloseHandler","PAGESIZE","ShowRT","currentURL","ID","match","RTQuerySearch","setRTQuerySearch","upcomingQuerySearch","setUpcomingQuerySearch","passedQuerySearch","setpassedQuerySearch","RTData","isRTLInfoLoading","recurring_transaction","useBreadcrumb","pageChangeHandler","setQuery","__","prev","RTName","generateCardDescription","Referral","generateCardData","DimensionField","fieldName","dimensionOptions","setDimensionOptions","DateField","startDateValue","endDateValue","ExtraField","axisValue","axisLabel","fieldCol","Filter","InteractiveFilter","rowValue","columnValue","axisOptions","asValueOptions","analysisByOptions","useOptions","buildColumns","isNaN","DimensionReport","filterUpdate","generateUUID","schema","colSchema","rowScope","menuProps","currentUrl","currentQuery","origin","pdfExportUrl","excelExportUrl","FilePdfOutlined","FileExcelOutlined","QReportLayout","DownOutlined","Index","originalReports","setOriginalReports","local","geReports","colorWhite","recent_reports","StockTake","SubscriptionSettings","setActiveKey","onTabChange","SvgBookkeepingI","SvgBookkeepingIi","SvgBookkeepingIii","SvgBookkeepingIv","SvgBookkeepingV","SvgBookkeepingVi","SvgCleanupI","SvgCleanupIi","SvgTrainingI","SvgTrainingIi","SvgTrainingIii","SvgSetupI","SvgSetupIi","SvgSetupIii","SvgConsultationServiceIconI","SvgConsultationServiceIconIi","SvgInvoiceDesignIconI","SvgInvoiceDesignIconIi","SvgTransferAccountsIconI","SvgTransferAccountsIconIi","SvgVatI","_path23","_path24","_path25","_path26","_path27","SvgVatIi","x1","x2","y1","y2","gradientUnits","stopColor","BookKeepingIcon_I","BookKeepingIcon_II","BookKeepingIcon_III","BookKeepingIcon_IV","BookKeepingIcon_V","BookKeepingIcon_VI","Cleanup_I","Cleanup_II","TrainingIcon_I","TrainingIcon_II","TrainingIcon_III","SetupIcon_I","SetupIcon_II","SetupIcon_III","ConsultationServiceIcon_I","ConsultationServiceIcon_II","InvoiceDesignIcon_I","InvoiceDesignIcon_II","TransferAccountsIcon_I","TransferAccountsIcon_II","VATIcon_I","VATIcon_II","lists","___CSS_LOADER_EXPORT___"],"sourceRoot":""}