@mj-biz-apps/accounting-ng 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +183 -0
- package/dist/lib/components/deferred-revenue-waterfall/deferred-revenue-waterfall.component.d.ts +103 -0
- package/dist/lib/components/deferred-revenue-waterfall/deferred-revenue-waterfall.component.d.ts.map +1 -0
- package/dist/lib/components/deferred-revenue-waterfall/deferred-revenue-waterfall.component.js +527 -0
- package/dist/lib/components/deferred-revenue-waterfall/deferred-revenue-waterfall.component.js.map +1 -0
- package/dist/lib/components/deferred-revenue-waterfall/deferred-revenue-waterfall.module.d.ts +8 -0
- package/dist/lib/components/deferred-revenue-waterfall/deferred-revenue-waterfall.module.d.ts.map +1 -0
- package/dist/lib/components/deferred-revenue-waterfall/deferred-revenue-waterfall.module.js +21 -0
- package/dist/lib/components/deferred-revenue-waterfall/deferred-revenue-waterfall.module.js.map +1 -0
- package/dist/lib/custom/ChartOfAccounts/chart-of-accounts.module.d.ts +20 -0
- package/dist/lib/custom/ChartOfAccounts/chart-of-accounts.module.d.ts.map +1 -0
- package/dist/lib/custom/ChartOfAccounts/chart-of-accounts.module.js +75 -0
- package/dist/lib/custom/ChartOfAccounts/chart-of-accounts.module.js.map +1 -0
- package/dist/lib/custom/ChartOfAccounts/coa-dashboard.component.d.ts +167 -0
- package/dist/lib/custom/ChartOfAccounts/coa-dashboard.component.d.ts.map +1 -0
- package/dist/lib/custom/ChartOfAccounts/coa-dashboard.component.js +756 -0
- package/dist/lib/custom/ChartOfAccounts/coa-dashboard.component.js.map +1 -0
- package/dist/lib/custom/ChartOfAccounts/coa-resource.component.d.ts +19 -0
- package/dist/lib/custom/ChartOfAccounts/coa-resource.component.d.ts.map +1 -0
- package/dist/lib/custom/ChartOfAccounts/coa-resource.component.js +50 -0
- package/dist/lib/custom/ChartOfAccounts/coa-resource.component.js.map +1 -0
- package/dist/lib/custom/CompanySetup/company-setup-dashboard.component.d.ts +102 -0
- package/dist/lib/custom/CompanySetup/company-setup-dashboard.component.d.ts.map +1 -0
- package/dist/lib/custom/CompanySetup/company-setup-dashboard.component.js +516 -0
- package/dist/lib/custom/CompanySetup/company-setup-dashboard.component.js.map +1 -0
- package/dist/lib/custom/CompanySetup/company-setup-resource.component.d.ts +19 -0
- package/dist/lib/custom/CompanySetup/company-setup-resource.component.d.ts.map +1 -0
- package/dist/lib/custom/CompanySetup/company-setup-resource.component.js +50 -0
- package/dist/lib/custom/CompanySetup/company-setup-resource.component.js.map +1 -0
- package/dist/lib/custom/CompanySetup/company-setup.module.d.ts +17 -0
- package/dist/lib/custom/CompanySetup/company-setup.module.d.ts.map +1 -0
- package/dist/lib/custom/CompanySetup/company-setup.module.js +57 -0
- package/dist/lib/custom/CompanySetup/company-setup.module.js.map +1 -0
- package/dist/lib/custom/GLAccount/gl-account-form.component.d.ts +69 -0
- package/dist/lib/custom/GLAccount/gl-account-form.component.d.ts.map +1 -0
- package/dist/lib/custom/GLAccount/gl-account-form.component.js +315 -0
- package/dist/lib/custom/GLAccount/gl-account-form.component.js.map +1 -0
- package/dist/lib/custom/JournalEntry/journal-entry.client.d.ts +14 -0
- package/dist/lib/custom/JournalEntry/journal-entry.client.d.ts.map +1 -0
- package/dist/lib/custom/JournalEntry/journal-entry.client.js +28 -0
- package/dist/lib/custom/JournalEntry/journal-entry.client.js.map +1 -0
- package/dist/lib/custom/JournalEntryBatchDispatch/journal-entry-batch-dispatch-dashboard.component.d.ts +95 -0
- package/dist/lib/custom/JournalEntryBatchDispatch/journal-entry-batch-dispatch-dashboard.component.d.ts.map +1 -0
- package/dist/lib/custom/JournalEntryBatchDispatch/journal-entry-batch-dispatch-dashboard.component.js +483 -0
- package/dist/lib/custom/JournalEntryBatchDispatch/journal-entry-batch-dispatch-dashboard.component.js.map +1 -0
- package/dist/lib/custom/JournalEntryBatchDispatch/journal-entry-batch-dispatch-resource.component.d.ts +22 -0
- package/dist/lib/custom/JournalEntryBatchDispatch/journal-entry-batch-dispatch-resource.component.d.ts.map +1 -0
- package/dist/lib/custom/JournalEntryBatchDispatch/journal-entry-batch-dispatch-resource.component.js +55 -0
- package/dist/lib/custom/JournalEntryBatchDispatch/journal-entry-batch-dispatch-resource.component.js.map +1 -0
- package/dist/lib/custom/JournalEntryBatchDispatch/journal-entry-batch-dispatch.client.d.ts +53 -0
- package/dist/lib/custom/JournalEntryBatchDispatch/journal-entry-batch-dispatch.client.d.ts.map +1 -0
- package/dist/lib/custom/JournalEntryBatchDispatch/journal-entry-batch-dispatch.client.js +116 -0
- package/dist/lib/custom/JournalEntryBatchDispatch/journal-entry-batch-dispatch.client.js.map +1 -0
- package/dist/lib/custom/JournalEntryBatchDispatch/journal-entry-batch-dispatch.module.d.ts +18 -0
- package/dist/lib/custom/JournalEntryBatchDispatch/journal-entry-batch-dispatch.module.d.ts.map +1 -0
- package/dist/lib/custom/JournalEntryBatchDispatch/journal-entry-batch-dispatch.module.js +60 -0
- package/dist/lib/custom/JournalEntryBatchDispatch/journal-entry-batch-dispatch.module.js.map +1 -0
- package/dist/lib/custom/JournalEntryBatchStatus/journal-entry-batch-status-dashboard.component.d.ts +189 -0
- package/dist/lib/custom/JournalEntryBatchStatus/journal-entry-batch-status-dashboard.component.d.ts.map +1 -0
- package/dist/lib/custom/JournalEntryBatchStatus/journal-entry-batch-status-dashboard.component.js +1004 -0
- package/dist/lib/custom/JournalEntryBatchStatus/journal-entry-batch-status-dashboard.component.js.map +1 -0
- package/dist/lib/custom/JournalEntryBatchStatus/journal-entry-batch-status-resource.component.d.ts +18 -0
- package/dist/lib/custom/JournalEntryBatchStatus/journal-entry-batch-status-resource.component.d.ts.map +1 -0
- package/dist/lib/custom/JournalEntryBatchStatus/journal-entry-batch-status-resource.component.js +49 -0
- package/dist/lib/custom/JournalEntryBatchStatus/journal-entry-batch-status-resource.component.js.map +1 -0
- package/dist/lib/custom/custom-forms.module.d.ts +35 -0
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -0
- package/dist/lib/custom/custom-forms.module.js +159 -0
- package/dist/lib/custom/custom-forms.module.js.map +1 -0
- package/dist/lib/custom/form-panels/company-accounting-header.panel.d.ts +23 -0
- package/dist/lib/custom/form-panels/company-accounting-header.panel.d.ts.map +1 -0
- package/dist/lib/custom/form-panels/company-accounting-header.panel.js +447 -0
- package/dist/lib/custom/form-panels/company-accounting-header.panel.js.map +1 -0
- package/dist/lib/custom/form-panels/company-accounting-overview.panel.d.ts +36 -0
- package/dist/lib/custom/form-panels/company-accounting-overview.panel.d.ts.map +1 -0
- package/dist/lib/custom/form-panels/company-accounting-overview.panel.js +760 -0
- package/dist/lib/custom/form-panels/company-accounting-overview.panel.js.map +1 -0
- package/dist/lib/custom/form-panels/company-profile-hierarchy.panel.d.ts +22 -0
- package/dist/lib/custom/form-panels/company-profile-hierarchy.panel.d.ts.map +1 -0
- package/dist/lib/custom/form-panels/company-profile-hierarchy.panel.js +113 -0
- package/dist/lib/custom/form-panels/company-profile-hierarchy.panel.js.map +1 -0
- package/dist/lib/custom/form-panels/dimension-value-hierarchy.panel.d.ts +23 -0
- package/dist/lib/custom/form-panels/dimension-value-hierarchy.panel.d.ts.map +1 -0
- package/dist/lib/custom/form-panels/dimension-value-hierarchy.panel.js +118 -0
- package/dist/lib/custom/form-panels/dimension-value-hierarchy.panel.js.map +1 -0
- package/dist/lib/custom/form-panels/gl-account-hierarchy.panel.d.ts +23 -0
- package/dist/lib/custom/form-panels/gl-account-hierarchy.panel.d.ts.map +1 -0
- package/dist/lib/custom/form-panels/gl-account-hierarchy.panel.js +118 -0
- package/dist/lib/custom/form-panels/gl-account-hierarchy.panel.js.map +1 -0
- package/dist/lib/custom/form-panels/journal-entry-batch-header.panel.d.ts +21 -0
- package/dist/lib/custom/form-panels/journal-entry-batch-header.panel.d.ts.map +1 -0
- package/dist/lib/custom/form-panels/journal-entry-batch-header.panel.js +414 -0
- package/dist/lib/custom/form-panels/journal-entry-batch-header.panel.js.map +1 -0
- package/dist/lib/custom/form-panels/journal-entry-batch-overview.panel.d.ts +39 -0
- package/dist/lib/custom/form-panels/journal-entry-batch-overview.panel.d.ts.map +1 -0
- package/dist/lib/custom/form-panels/journal-entry-batch-overview.panel.js +777 -0
- package/dist/lib/custom/form-panels/journal-entry-batch-overview.panel.js.map +1 -0
- package/dist/lib/custom/form-panels/journal-entry-header.panel.d.ts +32 -0
- package/dist/lib/custom/form-panels/journal-entry-header.panel.d.ts.map +1 -0
- package/dist/lib/custom/form-panels/journal-entry-header.panel.js +242 -0
- package/dist/lib/custom/form-panels/journal-entry-header.panel.js.map +1 -0
- package/dist/lib/custom/form-panels/journal-entry-lines.panel.d.ts +42 -0
- package/dist/lib/custom/form-panels/journal-entry-lines.panel.d.ts.map +1 -0
- package/dist/lib/custom/form-panels/journal-entry-lines.panel.js +314 -0
- package/dist/lib/custom/form-panels/journal-entry-lines.panel.js.map +1 -0
- package/dist/lib/custom/form-panels/journal-entry-overview.panel.d.ts +27 -0
- package/dist/lib/custom/form-panels/journal-entry-overview.panel.d.ts.map +1 -0
- package/dist/lib/custom/form-panels/journal-entry-overview.panel.js +278 -0
- package/dist/lib/custom/form-panels/journal-entry-overview.panel.js.map +1 -0
- package/dist/lib/custom/form-panels/journal-entry-panel.helpers.d.ts +26 -0
- package/dist/lib/custom/form-panels/journal-entry-panel.helpers.d.ts.map +1 -0
- package/dist/lib/custom/form-panels/journal-entry-panel.helpers.js +65 -0
- package/dist/lib/custom/form-panels/journal-entry-panel.helpers.js.map +1 -0
- package/dist/lib/custom/form-panels/journal-entry-reversal.panel.d.ts +12 -0
- package/dist/lib/custom/form-panels/journal-entry-reversal.panel.d.ts.map +1 -0
- package/dist/lib/custom/form-panels/journal-entry-reversal.panel.js +55 -0
- package/dist/lib/custom/form-panels/journal-entry-reversal.panel.js.map +1 -0
- package/dist/lib/custom/form-panels/tax-jurisdiction-hierarchy.panel.d.ts +22 -0
- package/dist/lib/custom/form-panels/tax-jurisdiction-hierarchy.panel.d.ts.map +1 -0
- package/dist/lib/custom/form-panels/tax-jurisdiction-hierarchy.panel.js +113 -0
- package/dist/lib/custom/form-panels/tax-jurisdiction-hierarchy.panel.js.map +1 -0
- package/dist/lib/custom/overview/accounting-batches.component.d.ts +52 -0
- package/dist/lib/custom/overview/accounting-batches.component.d.ts.map +1 -0
- package/dist/lib/custom/overview/accounting-batches.component.js +531 -0
- package/dist/lib/custom/overview/accounting-batches.component.js.map +1 -0
- package/dist/lib/custom/overview/accounting-overview.component.d.ts +62 -0
- package/dist/lib/custom/overview/accounting-overview.component.d.ts.map +1 -0
- package/dist/lib/custom/overview/accounting-overview.component.js +718 -0
- package/dist/lib/custom/overview/accounting-overview.component.js.map +1 -0
- package/dist/lib/custom/resources/accounting-overview-resource.component.d.ts +18 -0
- package/dist/lib/custom/resources/accounting-overview-resource.component.d.ts.map +1 -0
- package/dist/lib/custom/resources/accounting-overview-resource.component.js +48 -0
- package/dist/lib/custom/resources/accounting-overview-resource.component.js.map +1 -0
- package/dist/lib/custom/resources/approvals-resource.component.d.ts +18 -0
- package/dist/lib/custom/resources/approvals-resource.component.d.ts.map +1 -0
- package/dist/lib/custom/resources/approvals-resource.component.js +49 -0
- package/dist/lib/custom/resources/approvals-resource.component.js.map +1 -0
- package/dist/lib/custom/resources/batches-resource.component.d.ts +18 -0
- package/dist/lib/custom/resources/batches-resource.component.d.ts.map +1 -0
- package/dist/lib/custom/resources/batches-resource.component.js +48 -0
- package/dist/lib/custom/resources/batches-resource.component.js.map +1 -0
- package/dist/lib/custom/resources/dimensions-resource.component.d.ts +18 -0
- package/dist/lib/custom/resources/dimensions-resource.component.d.ts.map +1 -0
- package/dist/lib/custom/resources/dimensions-resource.component.js +49 -0
- package/dist/lib/custom/resources/dimensions-resource.component.js.map +1 -0
- package/dist/lib/custom/resources/journal-entries-resource.component.d.ts +22 -0
- package/dist/lib/custom/resources/journal-entries-resource.component.d.ts.map +1 -0
- package/dist/lib/custom/resources/journal-entries-resource.component.js +70 -0
- package/dist/lib/custom/resources/journal-entries-resource.component.js.map +1 -0
- package/dist/lib/custom/shared/biz-detail-form.d.ts +47 -0
- package/dist/lib/custom/shared/biz-detail-form.d.ts.map +1 -0
- package/dist/lib/custom/shared/biz-detail-form.js +42 -0
- package/dist/lib/custom/shared/biz-detail-form.js.map +1 -0
- package/dist/lib/custom/shared/check-dropdown.component.d.ts +45 -0
- package/dist/lib/custom/shared/check-dropdown.component.d.ts.map +1 -0
- package/dist/lib/custom/shared/check-dropdown.component.js +172 -0
- package/dist/lib/custom/shared/check-dropdown.component.js.map +1 -0
- package/dist/lib/custom/shared/company-scope-chip.component.d.ts +29 -0
- package/dist/lib/custom/shared/company-scope-chip.component.d.ts.map +1 -0
- package/dist/lib/custom/shared/company-scope-chip.component.js +178 -0
- package/dist/lib/custom/shared/company-scope-chip.component.js.map +1 -0
- package/dist/lib/custom/shared/company-scope.service.d.ts +64 -0
- package/dist/lib/custom/shared/company-scope.service.d.ts.map +1 -0
- package/dist/lib/custom/shared/company-scope.service.js +142 -0
- package/dist/lib/custom/shared/company-scope.service.js.map +1 -0
- package/dist/lib/custom/shared/gl-resolution-preview.component.d.ts +39 -0
- package/dist/lib/custom/shared/gl-resolution-preview.component.d.ts.map +1 -0
- package/dist/lib/custom/shared/gl-resolution-preview.component.js +164 -0
- package/dist/lib/custom/shared/gl-resolution-preview.component.js.map +1 -0
- package/dist/lib/custom/shared/je-rules.d.ts +56 -0
- package/dist/lib/custom/shared/je-rules.d.ts.map +1 -0
- package/dist/lib/custom/shared/je-rules.js +64 -0
- package/dist/lib/custom/shared/je-rules.js.map +1 -0
- package/dist/lib/custom/shared/list-toolbar.component.d.ts +58 -0
- package/dist/lib/custom/shared/list-toolbar.component.d.ts.map +1 -0
- package/dist/lib/custom/shared/list-toolbar.component.js +261 -0
- package/dist/lib/custom/shared/list-toolbar.component.js.map +1 -0
- package/dist/lib/custom/shared/read-model.shared.d.ts +22 -0
- package/dist/lib/custom/shared/read-model.shared.d.ts.map +1 -0
- package/dist/lib/custom/shared/read-model.shared.js +67 -0
- package/dist/lib/custom/shared/read-model.shared.js.map +1 -0
- package/dist/lib/custom/shared/read-models.module.d.ts +15 -0
- package/dist/lib/custom/shared/read-models.module.d.ts.map +1 -0
- package/dist/lib/custom/shared/read-models.module.js +81 -0
- package/dist/lib/custom/shared/read-models.module.js.map +1 -0
- package/dist/lib/custom/shared/summary-strip.component.d.ts +44 -0
- package/dist/lib/custom/shared/summary-strip.component.d.ts.map +1 -0
- package/dist/lib/custom/shared/summary-strip.component.js +103 -0
- package/dist/lib/custom/shared/summary-strip.component.js.map +1 -0
- package/dist/lib/custom/shell/accounts-category-resource.component.d.ts +18 -0
- package/dist/lib/custom/shell/accounts-category-resource.component.d.ts.map +1 -0
- package/dist/lib/custom/shell/accounts-category-resource.component.js +48 -0
- package/dist/lib/custom/shell/accounts-category-resource.component.js.map +1 -0
- package/dist/lib/custom/shell/accounts-category.component.d.ts +26 -0
- package/dist/lib/custom/shell/accounts-category.component.d.ts.map +1 -0
- package/dist/lib/custom/shell/accounts-category.component.js +174 -0
- package/dist/lib/custom/shell/accounts-category.component.js.map +1 -0
- package/dist/lib/custom/shell/batches-category-resource.component.d.ts +21 -0
- package/dist/lib/custom/shell/batches-category-resource.component.d.ts.map +1 -0
- package/dist/lib/custom/shell/batches-category-resource.component.js +51 -0
- package/dist/lib/custom/shell/batches-category-resource.component.js.map +1 -0
- package/dist/lib/custom/shell/batches-category.component.d.ts +40 -0
- package/dist/lib/custom/shell/batches-category.component.d.ts.map +1 -0
- package/dist/lib/custom/shell/batches-category.component.js +228 -0
- package/dist/lib/custom/shell/batches-category.component.js.map +1 -0
- package/dist/lib/custom/shell/category-shell.base.d.ts +95 -0
- package/dist/lib/custom/shell/category-shell.base.d.ts.map +1 -0
- package/dist/lib/custom/shell/category-shell.base.js +135 -0
- package/dist/lib/custom/shell/category-shell.base.js.map +1 -0
- package/dist/lib/custom/shell/configuration-category-resource.component.d.ts +18 -0
- package/dist/lib/custom/shell/configuration-category-resource.component.d.ts.map +1 -0
- package/dist/lib/custom/shell/configuration-category-resource.component.js +48 -0
- package/dist/lib/custom/shell/configuration-category-resource.component.js.map +1 -0
- package/dist/lib/custom/shell/configuration-category.component.d.ts +24 -0
- package/dist/lib/custom/shell/configuration-category.component.d.ts.map +1 -0
- package/dist/lib/custom/shell/configuration-category.component.js +130 -0
- package/dist/lib/custom/shell/configuration-category.component.js.map +1 -0
- package/dist/lib/custom/shell/journal-entries-category-resource.component.d.ts +22 -0
- package/dist/lib/custom/shell/journal-entries-category-resource.component.d.ts.map +1 -0
- package/dist/lib/custom/shell/journal-entries-category-resource.component.js +52 -0
- package/dist/lib/custom/shell/journal-entries-category-resource.component.js.map +1 -0
- package/dist/lib/custom/shell/journal-entries-category.component.d.ts +37 -0
- package/dist/lib/custom/shell/journal-entries-category.component.d.ts.map +1 -0
- package/dist/lib/custom/shell/journal-entries-category.component.js +162 -0
- package/dist/lib/custom/shell/journal-entries-category.component.js.map +1 -0
- package/dist/lib/custom/shell/pages/account-links.page.d.ts +112 -0
- package/dist/lib/custom/shell/pages/account-links.page.d.ts.map +1 -0
- package/dist/lib/custom/shell/pages/account-links.page.js +375 -0
- package/dist/lib/custom/shell/pages/account-links.page.js.map +1 -0
- package/dist/lib/custom/shell/pages/accounting-dashboard.base.d.ts +85 -0
- package/dist/lib/custom/shell/pages/accounting-dashboard.base.d.ts.map +1 -0
- package/dist/lib/custom/shell/pages/accounting-dashboard.base.js +55 -0
- package/dist/lib/custom/shell/pages/accounting-dashboard.base.js.map +1 -0
- package/dist/lib/custom/shell/pages/all-batches.page.d.ts +105 -0
- package/dist/lib/custom/shell/pages/all-batches.page.d.ts.map +1 -0
- package/dist/lib/custom/shell/pages/all-batches.page.js +348 -0
- package/dist/lib/custom/shell/pages/all-batches.page.js.map +1 -0
- package/dist/lib/custom/shell/pages/all-journal-entries.page.d.ts +218 -0
- package/dist/lib/custom/shell/pages/all-journal-entries.page.d.ts.map +1 -0
- package/dist/lib/custom/shell/pages/all-journal-entries.page.js +504 -0
- package/dist/lib/custom/shell/pages/all-journal-entries.page.js.map +1 -0
- package/dist/lib/custom/shell/pages/batch-detail-panel.component.d.ts +88 -0
- package/dist/lib/custom/shell/pages/batch-detail-panel.component.d.ts.map +1 -0
- package/dist/lib/custom/shell/pages/batch-detail-panel.component.js +444 -0
- package/dist/lib/custom/shell/pages/batch-detail-panel.component.js.map +1 -0
- package/dist/lib/custom/shell/pages/dashboard-breakdown.d.ts +59 -0
- package/dist/lib/custom/shell/pages/dashboard-breakdown.d.ts.map +1 -0
- package/dist/lib/custom/shell/pages/dashboard-breakdown.js +34 -0
- package/dist/lib/custom/shell/pages/dashboard-breakdown.js.map +1 -0
- package/dist/lib/custom/shell/pages/dimensions.page.d.ts +65 -0
- package/dist/lib/custom/shell/pages/dimensions.page.d.ts.map +1 -0
- package/dist/lib/custom/shell/pages/dimensions.page.js +277 -0
- package/dist/lib/custom/shell/pages/dimensions.page.js.map +1 -0
- package/dist/lib/custom/shell/pages/dispatch-status.page.d.ts +181 -0
- package/dist/lib/custom/shell/pages/dispatch-status.page.d.ts.map +1 -0
- package/dist/lib/custom/shell/pages/dispatch-status.page.js +693 -0
- package/dist/lib/custom/shell/pages/dispatch-status.page.js.map +1 -0
- package/dist/lib/custom/shell/pages/gl-accounts.page.d.ts +280 -0
- package/dist/lib/custom/shell/pages/gl-accounts.page.d.ts.map +1 -0
- package/dist/lib/custom/shell/pages/gl-accounts.page.js +878 -0
- package/dist/lib/custom/shell/pages/gl-accounts.page.js.map +1 -0
- package/dist/lib/custom/shell/pages/je-approvals.page.d.ts +90 -0
- package/dist/lib/custom/shell/pages/je-approvals.page.d.ts.map +1 -0
- package/dist/lib/custom/shell/pages/je-approvals.page.js +251 -0
- package/dist/lib/custom/shell/pages/je-approvals.page.js.map +1 -0
- package/dist/lib/custom/shell/pages/je-dashboard.page.d.ts +73 -0
- package/dist/lib/custom/shell/pages/je-dashboard.page.d.ts.map +1 -0
- package/dist/lib/custom/shell/pages/je-dashboard.page.js +493 -0
- package/dist/lib/custom/shell/pages/je-dashboard.page.js.map +1 -0
- package/dist/lib/custom/shell/pages/je-draft.d.ts +82 -0
- package/dist/lib/custom/shell/pages/je-draft.d.ts.map +1 -0
- package/dist/lib/custom/shell/pages/je-draft.js +108 -0
- package/dist/lib/custom/shell/pages/je-draft.js.map +1 -0
- package/dist/lib/custom/shell/pages/je-workspace.client.d.ts +27 -0
- package/dist/lib/custom/shell/pages/je-workspace.client.d.ts.map +1 -0
- package/dist/lib/custom/shell/pages/je-workspace.client.js +34 -0
- package/dist/lib/custom/shell/pages/je-workspace.client.js.map +1 -0
- package/dist/lib/custom/shell/pages/je-workspace.page.d.ts +265 -0
- package/dist/lib/custom/shell/pages/je-workspace.page.d.ts.map +1 -0
- package/dist/lib/custom/shell/pages/je-workspace.page.js +994 -0
- package/dist/lib/custom/shell/pages/je-workspace.page.js.map +1 -0
- package/dist/lib/custom/shell/pages/journal-entry-batch-workspace.client.d.ts +75 -0
- package/dist/lib/custom/shell/pages/journal-entry-batch-workspace.client.d.ts.map +1 -0
- package/dist/lib/custom/shell/pages/journal-entry-batch-workspace.client.js +52 -0
- package/dist/lib/custom/shell/pages/journal-entry-batch-workspace.client.js.map +1 -0
- package/dist/lib/custom/shell/pages/journal-entry-batch-workspace.page.d.ts +171 -0
- package/dist/lib/custom/shell/pages/journal-entry-batch-workspace.page.d.ts.map +1 -0
- package/dist/lib/custom/shell/pages/journal-entry-batch-workspace.page.js +859 -0
- package/dist/lib/custom/shell/pages/journal-entry-batch-workspace.page.js.map +1 -0
- package/dist/lib/custom/shell/pages/journal-entry-batches-dashboard.page.d.ts +57 -0
- package/dist/lib/custom/shell/pages/journal-entry-batches-dashboard.page.d.ts.map +1 -0
- package/dist/lib/custom/shell/pages/journal-entry-batches-dashboard.page.js +481 -0
- package/dist/lib/custom/shell/pages/journal-entry-batches-dashboard.page.js.map +1 -0
- package/dist/lib/custom/shell/pages/journal-entry-detail-panel.component.d.ts +154 -0
- package/dist/lib/custom/shell/pages/journal-entry-detail-panel.component.d.ts.map +1 -0
- package/dist/lib/custom/shell/pages/journal-entry-detail-panel.component.js +681 -0
- package/dist/lib/custom/shell/pages/journal-entry-detail-panel.component.js.map +1 -0
- package/dist/lib/custom/shell/pages/shell-page-pending.component.d.ts +20 -0
- package/dist/lib/custom/shell/pages/shell-page-pending.component.d.ts.map +1 -0
- package/dist/lib/custom/shell/pages/shell-page-pending.component.js +45 -0
- package/dist/lib/custom/shell/pages/shell-page-pending.component.js.map +1 -0
- package/dist/lib/custom/shell/reports-category-resource.component.d.ts +18 -0
- package/dist/lib/custom/shell/reports-category-resource.component.d.ts.map +1 -0
- package/dist/lib/custom/shell/reports-category-resource.component.js +48 -0
- package/dist/lib/custom/shell/reports-category-resource.component.js.map +1 -0
- package/dist/lib/custom/shell/reports-category.component.d.ts +21 -0
- package/dist/lib/custom/shell/reports-category.component.d.ts.map +1 -0
- package/dist/lib/custom/shell/reports-category.component.js +96 -0
- package/dist/lib/custom/shell/reports-category.component.js.map +1 -0
- package/dist/lib/custom/shell/shell-rail-state.service.d.ts +33 -0
- package/dist/lib/custom/shell/shell-rail-state.service.d.ts.map +1 -0
- package/dist/lib/custom/shell/shell-rail-state.service.js +52 -0
- package/dist/lib/custom/shell/shell-rail-state.service.js.map +1 -0
- package/dist/lib/custom/shell/shell-rail.component.d.ts +97 -0
- package/dist/lib/custom/shell/shell-rail.component.d.ts.map +1 -0
- package/dist/lib/custom/shell/shell-rail.component.js +208 -0
- package/dist/lib/custom/shell/shell-rail.component.js.map +1 -0
- package/dist/lib/custom/shell/shell.module.d.ts +60 -0
- package/dist/lib/custom/shell/shell.module.d.ts.map +1 -0
- package/dist/lib/custom/shell/shell.module.js +267 -0
- package/dist/lib/custom/shell/shell.module.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingAccountingCompanyProfile/mjbizappsaccountingaccountingcompanyprofile.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingAccountingCompanyProfile/mjbizappsaccountingaccountingcompanyprofile.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingAccountingCompanyProfile/mjbizappsaccountingaccountingcompanyprofile.form.component.js +152 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingAccountingCompanyProfile/mjbizappsaccountingaccountingcompanyprofile.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingCompanyTaxNexus/mjbizappsaccountingcompanytaxnexus.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingCompanyTaxNexus/mjbizappsaccountingcompanytaxnexus.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingCompanyTaxNexus/mjbizappsaccountingcompanytaxnexus.form.component.js +91 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingCompanyTaxNexus/mjbizappsaccountingcompanytaxnexus.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingCurrency/mjbizappsaccountingcurrency.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingCurrency/mjbizappsaccountingcurrency.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingCurrency/mjbizappsaccountingcurrency.form.component.js +180 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingCurrency/mjbizappsaccountingcurrency.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingCurrencySpotRate/mjbizappsaccountingcurrencyspotrate.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingCurrencySpotRate/mjbizappsaccountingcurrencyspotrate.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingCurrencySpotRate/mjbizappsaccountingcurrencyspotrate.form.component.js +79 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingCurrencySpotRate/mjbizappsaccountingcurrencyspotrate.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingDimension/mjbizappsaccountingdimension.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingDimension/mjbizappsaccountingdimension.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingDimension/mjbizappsaccountingdimension.form.component.js +150 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingDimension/mjbizappsaccountingdimension.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingDimensionValue/mjbizappsaccountingdimensionvalue.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingDimensionValue/mjbizappsaccountingdimensionvalue.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingDimensionValue/mjbizappsaccountingdimensionvalue.form.component.js +158 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingDimensionValue/mjbizappsaccountingdimensionvalue.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingGLAccount/mjbizappsaccountingglaccount.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingGLAccount/mjbizappsaccountingglaccount.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingGLAccount/mjbizappsaccountingglaccount.form.component.js +202 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingGLAccount/mjbizappsaccountingglaccount.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingGLAccountLink/mjbizappsaccountingglaccountlink.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingGLAccountLink/mjbizappsaccountingglaccountlink.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingGLAccountLink/mjbizappsaccountingglaccountlink.form.component.js +108 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingGLAccountLink/mjbizappsaccountingglaccountlink.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingGLAccountLinkDimension/mjbizappsaccountingglaccountlinkdimension.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingGLAccountLinkDimension/mjbizappsaccountingglaccountlinkdimension.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingGLAccountLinkDimension/mjbizappsaccountingglaccountlinkdimension.form.component.js +67 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingGLAccountLinkDimension/mjbizappsaccountingglaccountlinkdimension.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingGLAccountRole/mjbizappsaccountingglaccountrole.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingGLAccountRole/mjbizappsaccountingglaccountrole.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingGLAccountRole/mjbizappsaccountingglaccountrole.form.component.js +88 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingGLAccountRole/mjbizappsaccountingglaccountrole.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingIntercompanyAccountMatch/mjbizappsaccountingintercompanyaccountmatch.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingIntercompanyAccountMatch/mjbizappsaccountingintercompanyaccountmatch.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingIntercompanyAccountMatch/mjbizappsaccountingintercompanyaccountmatch.form.component.js +108 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingIntercompanyAccountMatch/mjbizappsaccountingintercompanyaccountmatch.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingIntercompanyAccountMatchDimension/mjbizappsaccountingintercompanyaccountmatchdimension.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingIntercompanyAccountMatchDimension/mjbizappsaccountingintercompanyaccountmatchdimension.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingIntercompanyAccountMatchDimension/mjbizappsaccountingintercompanyaccountmatchdimension.form.component.js +77 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingIntercompanyAccountMatchDimension/mjbizappsaccountingintercompanyaccountmatchdimension.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntry/mjbizappsaccountingjournalentry.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntry/mjbizappsaccountingjournalentry.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntry/mjbizappsaccountingjournalentry.form.component.js +206 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntry/mjbizappsaccountingjournalentry.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntryBatch/mjbizappsaccountingjournalentrybatch.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntryBatch/mjbizappsaccountingjournalentrybatch.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntryBatch/mjbizappsaccountingjournalentrybatch.form.component.js +142 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntryBatch/mjbizappsaccountingjournalentrybatch.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntryBatchSequence/mjbizappsaccountingjournalentrybatchsequence.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntryBatchSequence/mjbizappsaccountingjournalentrybatchsequence.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntryBatchSequence/mjbizappsaccountingjournalentrybatchsequence.form.component.js +63 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntryBatchSequence/mjbizappsaccountingjournalentrybatchsequence.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntryLine/mjbizappsaccountingjournalentryline.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntryLine/mjbizappsaccountingjournalentryline.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntryLine/mjbizappsaccountingjournalentryline.form.component.js +112 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntryLine/mjbizappsaccountingjournalentryline.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntryLineDimension/mjbizappsaccountingjournalentrylinedimension.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntryLineDimension/mjbizappsaccountingjournalentrylinedimension.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntryLineDimension/mjbizappsaccountingjournalentrylinedimension.form.component.js +73 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntryLineDimension/mjbizappsaccountingjournalentrylinedimension.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntrySequence/mjbizappsaccountingjournalentrysequence.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntrySequence/mjbizappsaccountingjournalentrysequence.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntrySequence/mjbizappsaccountingjournalentrysequence.form.component.js +67 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntrySequence/mjbizappsaccountingjournalentrysequence.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntryType/mjbizappsaccountingjournalentrytype.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntryType/mjbizappsaccountingjournalentrytype.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntryType/mjbizappsaccountingjournalentrytype.form.component.js +98 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingJournalEntryType/mjbizappsaccountingjournalentrytype.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingTaxAuthority/mjbizappsaccountingtaxauthority.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingTaxAuthority/mjbizappsaccountingtaxauthority.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingTaxAuthority/mjbizappsaccountingtaxauthority.form.component.js +116 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingTaxAuthority/mjbizappsaccountingtaxauthority.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingTaxJurisdiction/mjbizappsaccountingtaxjurisdiction.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingTaxJurisdiction/mjbizappsaccountingtaxjurisdiction.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingTaxJurisdiction/mjbizappsaccountingtaxjurisdiction.form.component.js +182 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingTaxJurisdiction/mjbizappsaccountingtaxjurisdiction.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingTaxLiability/mjbizappsaccountingtaxliability.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingTaxLiability/mjbizappsaccountingtaxliability.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingTaxLiability/mjbizappsaccountingtaxliability.form.component.js +89 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingTaxLiability/mjbizappsaccountingtaxliability.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingTaxRate/mjbizappsaccountingtaxrate.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingTaxRate/mjbizappsaccountingtaxrate.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingTaxRate/mjbizappsaccountingtaxrate.form.component.js +85 -0
- package/dist/lib/generated/Entities/mjBizAppsAccountingTaxRate/mjbizappsaccountingtaxrate.form.component.js.map +1 -0
- package/dist/lib/generated/class-registrations-manifest.d.ts +7 -0
- package/dist/lib/generated/class-registrations-manifest.d.ts.map +1 -0
- package/dist/lib/generated/class-registrations-manifest.js +7 -0
- package/dist/lib/generated/class-registrations-manifest.js.map +1 -0
- package/dist/lib/generated/generated-forms.module.d.ts +45 -0
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -0
- package/dist/lib/generated/generated-forms.module.js +159 -0
- package/dist/lib/generated/generated-forms.module.js.map +1 -0
- package/dist/lib/transfer-pending/cross-app-link/cross-app-link.service.d.ts +44 -0
- package/dist/lib/transfer-pending/cross-app-link/cross-app-link.service.d.ts.map +1 -0
- package/dist/lib/transfer-pending/cross-app-link/cross-app-link.service.js +76 -0
- package/dist/lib/transfer-pending/cross-app-link/cross-app-link.service.js.map +1 -0
- package/dist/lib/transfer-pending/dialog-dismiss/discard-confirm.component.d.ts +18 -0
- package/dist/lib/transfer-pending/dialog-dismiss/discard-confirm.component.d.ts.map +1 -0
- package/dist/lib/transfer-pending/dialog-dismiss/discard-confirm.component.js +53 -0
- package/dist/lib/transfer-pending/dialog-dismiss/discard-confirm.component.js.map +1 -0
- package/dist/lib/transfer-pending/dialog-dismiss/dismissable-dialog.directive.d.ts +49 -0
- package/dist/lib/transfer-pending/dialog-dismiss/dismissable-dialog.directive.d.ts.map +1 -0
- package/dist/lib/transfer-pending/dialog-dismiss/dismissable-dialog.directive.js +122 -0
- package/dist/lib/transfer-pending/dialog-dismiss/dismissable-dialog.directive.js.map +1 -0
- package/dist/lib/transfer-pending/list-scaffold/grid-row-key.d.ts +24 -0
- package/dist/lib/transfer-pending/list-scaffold/grid-row-key.d.ts.map +1 -0
- package/dist/lib/transfer-pending/list-scaffold/grid-row-key.js +38 -0
- package/dist/lib/transfer-pending/list-scaffold/grid-row-key.js.map +1 -0
- package/dist/lib/transfer-pending/list-scaffold/sql-filter.d.ts +37 -0
- package/dist/lib/transfer-pending/list-scaffold/sql-filter.d.ts.map +1 -0
- package/dist/lib/transfer-pending/list-scaffold/sql-filter.js +51 -0
- package/dist/lib/transfer-pending/list-scaffold/sql-filter.js.map +1 -0
- package/dist/lib/transfer-pending/list-scaffold/time-window.d.ts +46 -0
- package/dist/lib/transfer-pending/list-scaffold/time-window.d.ts.map +1 -0
- package/dist/lib/transfer-pending/list-scaffold/time-window.js +77 -0
- package/dist/lib/transfer-pending/list-scaffold/time-window.js.map +1 -0
- package/dist/lib/transfer-pending/shell-refresh/page-refresh.service.d.ts +43 -0
- package/dist/lib/transfer-pending/shell-refresh/page-refresh.service.d.ts.map +1 -0
- package/dist/lib/transfer-pending/shell-refresh/page-refresh.service.js +60 -0
- package/dist/lib/transfer-pending/shell-refresh/page-refresh.service.js.map +1 -0
- package/dist/lib/transfer-pending/workspace-tabs/workspace-card.component.d.ts +55 -0
- package/dist/lib/transfer-pending/workspace-tabs/workspace-card.component.d.ts.map +1 -0
- package/dist/lib/transfer-pending/workspace-tabs/workspace-card.component.js +243 -0
- package/dist/lib/transfer-pending/workspace-tabs/workspace-card.component.js.map +1 -0
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-store.d.ts +47 -0
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-store.d.ts.map +1 -0
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-store.js +112 -0
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-store.js.map +1 -0
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-strip.component.d.ts +36 -0
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-strip.component.d.ts.map +1 -0
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-strip.component.js +179 -0
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-strip.component.js.map +1 -0
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tabs.types.d.ts +36 -0
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tabs.types.d.ts.map +1 -0
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tabs.types.js +9 -0
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tabs.types.js.map +1 -0
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tip.directive.d.ts +35 -0
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tip.directive.d.ts.map +1 -0
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tip.directive.js +124 -0
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tip.directive.js.map +1 -0
- package/dist/public-api.d.ts +63 -0
- package/dist/public-api.d.ts.map +1 -0
- package/dist/public-api.js +175 -0
- package/dist/public-api.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,756 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { Component, ChangeDetectionStrategy, ChangeDetectorRef, inject, Input } from '@angular/core';
|
|
8
|
+
import { takeUntil } from 'rxjs';
|
|
9
|
+
import { BaseDashboard } from '@memberjunction/ng-shared';
|
|
10
|
+
import { RegisterClass } from '@memberjunction/global';
|
|
11
|
+
import { Metadata, CompositeKey } from '@memberjunction/core';
|
|
12
|
+
import { AccountingEngineBase } from '@mj-biz-apps/accounting-engine-base';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "@memberjunction/ng-ui-components";
|
|
15
|
+
import * as i2 from "../shared/check-dropdown.component";
|
|
16
|
+
import * as i3 from "../shared/summary-strip.component";
|
|
17
|
+
import * as i4 from "../shared/list-toolbar.component";
|
|
18
|
+
import * as i5 from "@angular/forms";
|
|
19
|
+
import * as i6 from "@memberjunction/ng-shared-generic";
|
|
20
|
+
const _forTrack0 = ($index, $item) => $item.Row.ID;
|
|
21
|
+
function ChartOfAccountsDashboardComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
22
|
+
i0.ɵɵelement(0, "mj-loading", 6);
|
|
23
|
+
} }
|
|
24
|
+
function ChartOfAccountsDashboardComponent_Conditional_10_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
25
|
+
i0.ɵɵelementStart(0, "div", 9);
|
|
26
|
+
i0.ɵɵelement(1, "i", 15);
|
|
27
|
+
i0.ɵɵtext(2);
|
|
28
|
+
i0.ɵɵelementEnd();
|
|
29
|
+
} if (rf & 2) {
|
|
30
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
31
|
+
i0.ɵɵadvance(2);
|
|
32
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.LoadError, " ");
|
|
33
|
+
} }
|
|
34
|
+
function ChartOfAccountsDashboardComponent_Conditional_10_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
35
|
+
i0.ɵɵelement(0, "mj-empty-state", 12);
|
|
36
|
+
} }
|
|
37
|
+
function ChartOfAccountsDashboardComponent_Conditional_10_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
38
|
+
i0.ɵɵelement(0, "mj-empty-state", 13);
|
|
39
|
+
} }
|
|
40
|
+
function ChartOfAccountsDashboardComponent_Conditional_10_Conditional_3_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
41
|
+
i0.ɵɵelementStart(0, "span", 21);
|
|
42
|
+
i0.ɵɵelement(1, "i", 25);
|
|
43
|
+
i0.ɵɵtext(2, " inactive");
|
|
44
|
+
i0.ɵɵelementEnd();
|
|
45
|
+
} }
|
|
46
|
+
function ChartOfAccountsDashboardComponent_Conditional_10_Conditional_3_For_2_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
47
|
+
i0.ɵɵelementStart(0, "span", 23);
|
|
48
|
+
i0.ɵɵtext(1);
|
|
49
|
+
i0.ɵɵelementEnd();
|
|
50
|
+
} if (rf & 2) {
|
|
51
|
+
const node_r3 = i0.ɵɵnextContext().$implicit;
|
|
52
|
+
i0.ɵɵadvance();
|
|
53
|
+
i0.ɵɵtextInterpolate(node_r3.Row.CurrencyCode);
|
|
54
|
+
} }
|
|
55
|
+
function ChartOfAccountsDashboardComponent_Conditional_10_Conditional_3_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
56
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
57
|
+
i0.ɵɵelementStart(0, "button", 17);
|
|
58
|
+
i0.ɵɵlistener("click", function ChartOfAccountsDashboardComponent_Conditional_10_Conditional_3_For_2_Template_button_click_0_listener() { const node_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.OpenAccount(node_r3.Row)); });
|
|
59
|
+
i0.ɵɵelementStart(1, "span", 18);
|
|
60
|
+
i0.ɵɵtext(2);
|
|
61
|
+
i0.ɵɵelementEnd();
|
|
62
|
+
i0.ɵɵelementStart(3, "span", 19);
|
|
63
|
+
i0.ɵɵtext(4);
|
|
64
|
+
i0.ɵɵelementEnd();
|
|
65
|
+
i0.ɵɵelementStart(5, "span", 20);
|
|
66
|
+
i0.ɵɵtext(6);
|
|
67
|
+
i0.ɵɵelementEnd();
|
|
68
|
+
i0.ɵɵconditionalCreate(7, ChartOfAccountsDashboardComponent_Conditional_10_Conditional_3_For_2_Conditional_7_Template, 3, 0, "span", 21);
|
|
69
|
+
i0.ɵɵelement(8, "span", 22);
|
|
70
|
+
i0.ɵɵconditionalCreate(9, ChartOfAccountsDashboardComponent_Conditional_10_Conditional_3_For_2_Conditional_9_Template, 2, 1, "span", 23);
|
|
71
|
+
i0.ɵɵelement(10, "i", 24);
|
|
72
|
+
i0.ɵɵelementEnd();
|
|
73
|
+
} if (rf & 2) {
|
|
74
|
+
const node_r3 = ctx.$implicit;
|
|
75
|
+
const ctx_r0 = i0.ɵɵnextContext(3);
|
|
76
|
+
i0.ɵɵstyleProp("padding-left", ctx_r0.Indent(node_r3.Depth));
|
|
77
|
+
i0.ɵɵadvance(2);
|
|
78
|
+
i0.ɵɵtextInterpolate(node_r3.Row.Code);
|
|
79
|
+
i0.ɵɵadvance(2);
|
|
80
|
+
i0.ɵɵtextInterpolate(node_r3.Row.Name);
|
|
81
|
+
i0.ɵɵadvance();
|
|
82
|
+
i0.ɵɵattribute("data-variant", ctx_r0.TypeVariant(node_r3.Row.AccountType));
|
|
83
|
+
i0.ɵɵadvance();
|
|
84
|
+
i0.ɵɵtextInterpolate(node_r3.Row.AccountType);
|
|
85
|
+
i0.ɵɵadvance();
|
|
86
|
+
i0.ɵɵconditional(!node_r3.Row.IsActive ? 7 : -1);
|
|
87
|
+
i0.ɵɵadvance(2);
|
|
88
|
+
i0.ɵɵconditional(node_r3.Row.CurrencyCode ? 9 : -1);
|
|
89
|
+
} }
|
|
90
|
+
function ChartOfAccountsDashboardComponent_Conditional_10_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
91
|
+
i0.ɵɵelementStart(0, "div", 14);
|
|
92
|
+
i0.ɵɵrepeaterCreate(1, ChartOfAccountsDashboardComponent_Conditional_10_Conditional_3_For_2_Template, 11, 8, "button", 16, _forTrack0);
|
|
93
|
+
i0.ɵɵelementEnd();
|
|
94
|
+
} if (rf & 2) {
|
|
95
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
96
|
+
i0.ɵɵadvance();
|
|
97
|
+
i0.ɵɵrepeater(ctx_r0.FilteredTree);
|
|
98
|
+
} }
|
|
99
|
+
function ChartOfAccountsDashboardComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
100
|
+
i0.ɵɵconditionalCreate(0, ChartOfAccountsDashboardComponent_Conditional_10_Conditional_0_Template, 3, 1, "div", 9);
|
|
101
|
+
i0.ɵɵconditionalCreate(1, ChartOfAccountsDashboardComponent_Conditional_10_Conditional_1_Template, 1, 0, "mj-empty-state", 12)(2, ChartOfAccountsDashboardComponent_Conditional_10_Conditional_2_Template, 1, 0, "mj-empty-state", 13)(3, ChartOfAccountsDashboardComponent_Conditional_10_Conditional_3_Template, 3, 0, "div", 14);
|
|
102
|
+
} if (rf & 2) {
|
|
103
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
104
|
+
i0.ɵɵconditional(ctx_r0.LoadError ? 0 : -1);
|
|
105
|
+
i0.ɵɵadvance();
|
|
106
|
+
i0.ɵɵconditional(ctx_r0.AllAccounts.length === 0 ? 1 : ctx_r0.FilteredTree.length === 0 ? 2 : 3);
|
|
107
|
+
} }
|
|
108
|
+
function ChartOfAccountsDashboardComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
109
|
+
i0.ɵɵelementStart(0, "div", 9);
|
|
110
|
+
i0.ɵɵelement(1, "i", 15);
|
|
111
|
+
i0.ɵɵtext(2);
|
|
112
|
+
i0.ɵɵelementEnd();
|
|
113
|
+
} if (rf & 2) {
|
|
114
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
115
|
+
i0.ɵɵadvance(2);
|
|
116
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.DialogError);
|
|
117
|
+
} }
|
|
118
|
+
function ChartOfAccountsDashboardComponent_Conditional_14_Conditional_37_Template(rf, ctx) { if (rf & 1) {
|
|
119
|
+
i0.ɵɵelementStart(0, "div", 26)(1, "dt");
|
|
120
|
+
i0.ɵɵtext(2, "Description");
|
|
121
|
+
i0.ɵɵelementEnd();
|
|
122
|
+
i0.ɵɵelementStart(3, "dd");
|
|
123
|
+
i0.ɵɵtext(4);
|
|
124
|
+
i0.ɵɵelementEnd()();
|
|
125
|
+
} if (rf & 2) {
|
|
126
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
127
|
+
i0.ɵɵadvance(4);
|
|
128
|
+
i0.ɵɵtextInterpolate(ctx_r0.Model.Description);
|
|
129
|
+
} }
|
|
130
|
+
function ChartOfAccountsDashboardComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
131
|
+
i0.ɵɵelementStart(0, "dl", 10)(1, "div", 26)(2, "dt");
|
|
132
|
+
i0.ɵɵtext(3, "Code");
|
|
133
|
+
i0.ɵɵelementEnd();
|
|
134
|
+
i0.ɵɵelementStart(4, "dd");
|
|
135
|
+
i0.ɵɵtext(5);
|
|
136
|
+
i0.ɵɵelementEnd()();
|
|
137
|
+
i0.ɵɵelementStart(6, "div", 26)(7, "dt");
|
|
138
|
+
i0.ɵɵtext(8, "Name");
|
|
139
|
+
i0.ɵɵelementEnd();
|
|
140
|
+
i0.ɵɵelementStart(9, "dd");
|
|
141
|
+
i0.ɵɵtext(10);
|
|
142
|
+
i0.ɵɵelementEnd()();
|
|
143
|
+
i0.ɵɵelementStart(11, "div", 26)(12, "dt");
|
|
144
|
+
i0.ɵɵtext(13, "Type");
|
|
145
|
+
i0.ɵɵelementEnd();
|
|
146
|
+
i0.ɵɵelementStart(14, "dd")(15, "span", 20);
|
|
147
|
+
i0.ɵɵtext(16);
|
|
148
|
+
i0.ɵɵelementEnd()()();
|
|
149
|
+
i0.ɵɵelementStart(17, "div", 26)(18, "dt");
|
|
150
|
+
i0.ɵɵtext(19, "Company");
|
|
151
|
+
i0.ɵɵelementEnd();
|
|
152
|
+
i0.ɵɵelementStart(20, "dd");
|
|
153
|
+
i0.ɵɵtext(21);
|
|
154
|
+
i0.ɵɵelementEnd()();
|
|
155
|
+
i0.ɵɵelementStart(22, "div", 26)(23, "dt");
|
|
156
|
+
i0.ɵɵtext(24, "Parent");
|
|
157
|
+
i0.ɵɵelementEnd();
|
|
158
|
+
i0.ɵɵelementStart(25, "dd");
|
|
159
|
+
i0.ɵɵtext(26);
|
|
160
|
+
i0.ɵɵelementEnd()();
|
|
161
|
+
i0.ɵɵelementStart(27, "div", 26)(28, "dt");
|
|
162
|
+
i0.ɵɵtext(29, "Currency");
|
|
163
|
+
i0.ɵɵelementEnd();
|
|
164
|
+
i0.ɵɵelementStart(30, "dd");
|
|
165
|
+
i0.ɵɵtext(31);
|
|
166
|
+
i0.ɵɵelementEnd()();
|
|
167
|
+
i0.ɵɵelementStart(32, "div", 26)(33, "dt");
|
|
168
|
+
i0.ɵɵtext(34, "Status");
|
|
169
|
+
i0.ɵɵelementEnd();
|
|
170
|
+
i0.ɵɵelementStart(35, "dd");
|
|
171
|
+
i0.ɵɵtext(36);
|
|
172
|
+
i0.ɵɵelementEnd()();
|
|
173
|
+
i0.ɵɵconditionalCreate(37, ChartOfAccountsDashboardComponent_Conditional_14_Conditional_37_Template, 5, 1, "div", 26);
|
|
174
|
+
i0.ɵɵelementEnd();
|
|
175
|
+
} if (rf & 2) {
|
|
176
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
177
|
+
i0.ɵɵadvance(5);
|
|
178
|
+
i0.ɵɵtextInterpolate(ctx_r0.Model.Code);
|
|
179
|
+
i0.ɵɵadvance(5);
|
|
180
|
+
i0.ɵɵtextInterpolate(ctx_r0.Model.Name);
|
|
181
|
+
i0.ɵɵadvance(5);
|
|
182
|
+
i0.ɵɵattribute("data-variant", ctx_r0.TypeVariant(ctx_r0.Model.AccountType));
|
|
183
|
+
i0.ɵɵadvance();
|
|
184
|
+
i0.ɵɵtextInterpolate(ctx_r0.Model.AccountType);
|
|
185
|
+
i0.ɵɵadvance(5);
|
|
186
|
+
i0.ɵɵtextInterpolate(ctx_r0.companyName(ctx_r0.Model.CompanyID));
|
|
187
|
+
i0.ɵɵadvance(5);
|
|
188
|
+
i0.ɵɵtextInterpolate(ctx_r0.ParentName);
|
|
189
|
+
i0.ɵɵadvance(5);
|
|
190
|
+
i0.ɵɵtextInterpolate(ctx_r0.Model.CurrencyCode || "Company default");
|
|
191
|
+
i0.ɵɵadvance(5);
|
|
192
|
+
i0.ɵɵtextInterpolate(ctx_r0.Model.IsActive ? "Active" : "Inactive");
|
|
193
|
+
i0.ɵɵadvance();
|
|
194
|
+
i0.ɵɵconditional(ctx_r0.Model.Description ? 37 : -1);
|
|
195
|
+
} }
|
|
196
|
+
function ChartOfAccountsDashboardComponent_Conditional_15_Conditional_24_Template(rf, ctx) { if (rf & 1) {
|
|
197
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
198
|
+
i0.ɵɵelementStart(0, "mj-dropdown", 39);
|
|
199
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ChartOfAccountsDashboardComponent_Conditional_15_Conditional_24_Template_mj_dropdown_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.Model.CompanyID, $event) || (ctx_r0.Model.CompanyID = $event); return i0.ɵɵresetView($event); });
|
|
200
|
+
i0.ɵɵelementEnd();
|
|
201
|
+
} if (rf & 2) {
|
|
202
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
203
|
+
i0.ɵɵproperty("Data", ctx_r0.CompanyScopeOptions)("ValuePrimitive", true);
|
|
204
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r0.Model.CompanyID);
|
|
205
|
+
} }
|
|
206
|
+
function ChartOfAccountsDashboardComponent_Conditional_15_Conditional_25_Template(rf, ctx) { if (rf & 1) {
|
|
207
|
+
i0.ɵɵelement(0, "input", 32);
|
|
208
|
+
} if (rf & 2) {
|
|
209
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
210
|
+
i0.ɵɵproperty("value", ctx_r0.companyName(ctx_r0.Model.CompanyID));
|
|
211
|
+
} }
|
|
212
|
+
function ChartOfAccountsDashboardComponent_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
213
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
214
|
+
i0.ɵɵelementStart(0, "div", 11)(1, "label", 3)(2, "span", 4);
|
|
215
|
+
i0.ɵɵtext(3, "Code ");
|
|
216
|
+
i0.ɵɵelementStart(4, "span", 27);
|
|
217
|
+
i0.ɵɵtext(5, "*");
|
|
218
|
+
i0.ɵɵelementEnd()();
|
|
219
|
+
i0.ɵɵelementStart(6, "input", 28);
|
|
220
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ChartOfAccountsDashboardComponent_Conditional_15_Template_input_ngModelChange_6_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.Model.Code, $event) || (ctx_r0.Model.Code = $event); return i0.ɵɵresetView($event); });
|
|
221
|
+
i0.ɵɵelementEnd()();
|
|
222
|
+
i0.ɵɵelementStart(7, "label", 3)(8, "span", 4);
|
|
223
|
+
i0.ɵɵtext(9, "Name ");
|
|
224
|
+
i0.ɵɵelementStart(10, "span", 27);
|
|
225
|
+
i0.ɵɵtext(11, "*");
|
|
226
|
+
i0.ɵɵelementEnd()();
|
|
227
|
+
i0.ɵɵelementStart(12, "input", 29);
|
|
228
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ChartOfAccountsDashboardComponent_Conditional_15_Template_input_ngModelChange_12_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.Model.Name, $event) || (ctx_r0.Model.Name = $event); return i0.ɵɵresetView($event); });
|
|
229
|
+
i0.ɵɵelementEnd()();
|
|
230
|
+
i0.ɵɵelementStart(13, "label", 3)(14, "span", 4);
|
|
231
|
+
i0.ɵɵtext(15, "Account type ");
|
|
232
|
+
i0.ɵɵelementStart(16, "span", 27);
|
|
233
|
+
i0.ɵɵtext(17, "*");
|
|
234
|
+
i0.ɵɵelementEnd()();
|
|
235
|
+
i0.ɵɵelementStart(18, "mj-dropdown", 30);
|
|
236
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ChartOfAccountsDashboardComponent_Conditional_15_Template_mj_dropdown_ngModelChange_18_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.Model.AccountType, $event) || (ctx_r0.Model.AccountType = $event); return i0.ɵɵresetView($event); });
|
|
237
|
+
i0.ɵɵelementEnd()();
|
|
238
|
+
i0.ɵɵelementStart(19, "label", 3)(20, "span", 4);
|
|
239
|
+
i0.ɵɵtext(21, "Company ");
|
|
240
|
+
i0.ɵɵelementStart(22, "span", 27);
|
|
241
|
+
i0.ɵɵtext(23, "*");
|
|
242
|
+
i0.ɵɵelementEnd()();
|
|
243
|
+
i0.ɵɵconditionalCreate(24, ChartOfAccountsDashboardComponent_Conditional_15_Conditional_24_Template, 1, 3, "mj-dropdown", 31)(25, ChartOfAccountsDashboardComponent_Conditional_15_Conditional_25_Template, 1, 1, "input", 32);
|
|
244
|
+
i0.ɵɵelementEnd();
|
|
245
|
+
i0.ɵɵelementStart(26, "label", 3)(27, "span", 4);
|
|
246
|
+
i0.ɵɵtext(28, "Parent account");
|
|
247
|
+
i0.ɵɵelementEnd();
|
|
248
|
+
i0.ɵɵelementStart(29, "mj-dropdown", 33);
|
|
249
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ChartOfAccountsDashboardComponent_Conditional_15_Template_mj_dropdown_ngModelChange_29_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.Model.ParentGLAccountID, $event) || (ctx_r0.Model.ParentGLAccountID = $event); return i0.ɵɵresetView($event); });
|
|
250
|
+
i0.ɵɵelementEnd()();
|
|
251
|
+
i0.ɵɵelementStart(30, "label", 3)(31, "span", 4);
|
|
252
|
+
i0.ɵɵtext(32, "Currency");
|
|
253
|
+
i0.ɵɵelementEnd();
|
|
254
|
+
i0.ɵɵelementStart(33, "mj-combobox", 34);
|
|
255
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ChartOfAccountsDashboardComponent_Conditional_15_Template_mj_combobox_ngModelChange_33_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.Model.CurrencyCode, $event) || (ctx_r0.Model.CurrencyCode = $event); return i0.ɵɵresetView($event); });
|
|
256
|
+
i0.ɵɵelementEnd()();
|
|
257
|
+
i0.ɵɵelementStart(34, "label", 35)(35, "input", 36);
|
|
258
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ChartOfAccountsDashboardComponent_Conditional_15_Template_input_ngModelChange_35_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.Model.IsActive, $event) || (ctx_r0.Model.IsActive = $event); return i0.ɵɵresetView($event); });
|
|
259
|
+
i0.ɵɵelementEnd();
|
|
260
|
+
i0.ɵɵelementStart(36, "span");
|
|
261
|
+
i0.ɵɵtext(37, "Active (available for new journal entries)");
|
|
262
|
+
i0.ɵɵelementEnd()();
|
|
263
|
+
i0.ɵɵelementStart(38, "label", 37)(39, "span", 4);
|
|
264
|
+
i0.ɵɵtext(40, "Description");
|
|
265
|
+
i0.ɵɵelementEnd();
|
|
266
|
+
i0.ɵɵelementStart(41, "textarea", 38);
|
|
267
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ChartOfAccountsDashboardComponent_Conditional_15_Template_textarea_ngModelChange_41_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.Model.Description, $event) || (ctx_r0.Model.Description = $event); return i0.ɵɵresetView($event); });
|
|
268
|
+
i0.ɵɵelementEnd()()();
|
|
269
|
+
} if (rf & 2) {
|
|
270
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
271
|
+
i0.ɵɵadvance(6);
|
|
272
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r0.Model.Code);
|
|
273
|
+
i0.ɵɵadvance(6);
|
|
274
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r0.Model.Name);
|
|
275
|
+
i0.ɵɵadvance(6);
|
|
276
|
+
i0.ɵɵproperty("Data", ctx_r0.AccountTypeOptions)("ValuePrimitive", true);
|
|
277
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r0.Model.AccountType);
|
|
278
|
+
i0.ɵɵadvance(6);
|
|
279
|
+
i0.ɵɵconditional(ctx_r0.DialogMode === "create" ? 24 : 25);
|
|
280
|
+
i0.ɵɵadvance(5);
|
|
281
|
+
i0.ɵɵproperty("Data", ctx_r0.ParentChoices)("ValuePrimitive", true)("DefaultItem", ctx_r0.ParentNoneDefault);
|
|
282
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r0.Model.ParentGLAccountID);
|
|
283
|
+
i0.ɵɵadvance(4);
|
|
284
|
+
i0.ɵɵproperty("Data", ctx_r0.CurrencyOptions)("ValuePrimitive", true);
|
|
285
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r0.Model.CurrencyCode);
|
|
286
|
+
i0.ɵɵadvance(2);
|
|
287
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r0.Model.IsActive);
|
|
288
|
+
i0.ɵɵadvance(6);
|
|
289
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r0.Model.Description);
|
|
290
|
+
} }
|
|
291
|
+
function ChartOfAccountsDashboardComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
292
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
293
|
+
i0.ɵɵelementStart(0, "button", 40);
|
|
294
|
+
i0.ɵɵlistener("click", function ChartOfAccountsDashboardComponent_Conditional_17_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.StartEdit()); });
|
|
295
|
+
i0.ɵɵelement(1, "i", 41);
|
|
296
|
+
i0.ɵɵtext(2, " Edit");
|
|
297
|
+
i0.ɵɵelementEnd();
|
|
298
|
+
i0.ɵɵelementStart(3, "button", 42);
|
|
299
|
+
i0.ɵɵlistener("click", function ChartOfAccountsDashboardComponent_Conditional_17_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.CloseDialog()); });
|
|
300
|
+
i0.ɵɵtext(4, "Close");
|
|
301
|
+
i0.ɵɵelementEnd();
|
|
302
|
+
} }
|
|
303
|
+
function ChartOfAccountsDashboardComponent_Conditional_18_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
304
|
+
i0.ɵɵelement(0, "i", 45);
|
|
305
|
+
i0.ɵɵtext(1, " Saving\u2026 ");
|
|
306
|
+
} }
|
|
307
|
+
function ChartOfAccountsDashboardComponent_Conditional_18_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
308
|
+
i0.ɵɵelement(0, "i", 46);
|
|
309
|
+
i0.ɵɵtext(1, " Save ");
|
|
310
|
+
} }
|
|
311
|
+
function ChartOfAccountsDashboardComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
312
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
313
|
+
i0.ɵɵelementStart(0, "button", 43);
|
|
314
|
+
i0.ɵɵlistener("click", function ChartOfAccountsDashboardComponent_Conditional_18_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.SaveAccount()); });
|
|
315
|
+
i0.ɵɵconditionalCreate(1, ChartOfAccountsDashboardComponent_Conditional_18_Conditional_1_Template, 2, 0)(2, ChartOfAccountsDashboardComponent_Conditional_18_Conditional_2_Template, 2, 0);
|
|
316
|
+
i0.ɵɵelementEnd();
|
|
317
|
+
i0.ɵɵelementStart(3, "button", 44);
|
|
318
|
+
i0.ɵɵlistener("click", function ChartOfAccountsDashboardComponent_Conditional_18_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnDialogCancel()); });
|
|
319
|
+
i0.ɵɵtext(4, "Cancel");
|
|
320
|
+
i0.ɵɵelementEnd();
|
|
321
|
+
} if (rf & 2) {
|
|
322
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
323
|
+
i0.ɵɵproperty("disabled", ctx_r0.Saving);
|
|
324
|
+
i0.ɵɵadvance();
|
|
325
|
+
i0.ɵɵconditional(ctx_r0.Saving ? 1 : 2);
|
|
326
|
+
i0.ɵɵadvance(2);
|
|
327
|
+
i0.ɵɵproperty("disabled", ctx_r0.Saving);
|
|
328
|
+
} }
|
|
329
|
+
const GL_ACCOUNT_ENTITY = 'MJ_BizApps_Accounting: GL Accounts';
|
|
330
|
+
/**
|
|
331
|
+
* Chart of Accounts — a hierarchical, company-scoped view of the GL account tree.
|
|
332
|
+
*
|
|
333
|
+
* Loads all GL accounts + all company profiles (for the company selector) in one batched read.
|
|
334
|
+
* Builds the parent→child hierarchy client-side from ParentGLAccountID, renders it as an indented
|
|
335
|
+
* flat list ordered by depth-first traversal, and filters by company / account type / search. Clicking
|
|
336
|
+
* a row opens the existing generated GL Account form via the BaseDashboard OpenEntityRecord output.
|
|
337
|
+
*/
|
|
338
|
+
let ChartOfAccountsDashboardComponent = class ChartOfAccountsDashboardComponent extends BaseDashboard {
|
|
339
|
+
cdr = inject(ChangeDetectorRef);
|
|
340
|
+
md = new Metadata();
|
|
341
|
+
IsBusy = false;
|
|
342
|
+
LoadError = null;
|
|
343
|
+
AllAccounts = [];
|
|
344
|
+
Companies = [];
|
|
345
|
+
// ─── account view/edit/create dialog ─────────────────────────────────────────
|
|
346
|
+
DialogVisible = false;
|
|
347
|
+
DialogMode = 'view';
|
|
348
|
+
Saving = false;
|
|
349
|
+
DialogError = null;
|
|
350
|
+
Model = this.blankModel();
|
|
351
|
+
/** The valid AccountType values, sourced from entity metadata (rule 2c — not a hand-copied union). */
|
|
352
|
+
AccountTypeOptions = [];
|
|
353
|
+
/** Seeded currency roster for the editor's searchable combobox (Marcelo 2026-07-30: free-text
|
|
354
|
+
* invited typos the DB then rejected). Label = "CODE — Name" so the combobox's contains-filter
|
|
355
|
+
* matches typing either the actual code ("USD") or the name ("dollar"). */
|
|
356
|
+
get CurrencyOptions() {
|
|
357
|
+
return AccountingEngineBase.Instance.Currencies
|
|
358
|
+
.map((c) => ({ Code: c.Code, Name: c.Name, Label: `${c.Code} — ${c.Name}` }))
|
|
359
|
+
.sort((a, b) => a.Code.localeCompare(b.Code));
|
|
360
|
+
}
|
|
361
|
+
/** Snapshot taken when opening an existing account, so Cancel can revert edits back to the view. */
|
|
362
|
+
savedModel = null;
|
|
363
|
+
/** One-time guard for the reactive engine subscription. */
|
|
364
|
+
engineSubscribed = false;
|
|
365
|
+
// ─── filters ───────────────────────────────────────────────────────────────
|
|
366
|
+
AccountTypeFilter = 'All';
|
|
367
|
+
Search = '';
|
|
368
|
+
// ─── list-page standard chrome (fused subheader — Marcelo 2026-08-04) ────────
|
|
369
|
+
get SummaryFigures() {
|
|
370
|
+
return [
|
|
371
|
+
{ Label: 'Accounts', Value: String(this.AllAccounts.length) },
|
|
372
|
+
{ Label: 'Companies', Value: String(this.CompanyCount) },
|
|
373
|
+
];
|
|
374
|
+
}
|
|
375
|
+
/** Account types as chips (single-select, matching SetAccountTypeFilter's semantics). */
|
|
376
|
+
get TypeChips() {
|
|
377
|
+
return [
|
|
378
|
+
{ Key: 'All', Label: 'All types' },
|
|
379
|
+
...['Asset', 'Liability', 'Equity', 'Revenue', 'Expense']
|
|
380
|
+
.filter((t) => this.AllAccounts.some((a) => a.AccountType === t))
|
|
381
|
+
.map((t) => ({ Key: t, Label: t, Count: this.AllAccounts.filter((a) => a.AccountType === t).length })),
|
|
382
|
+
];
|
|
383
|
+
}
|
|
384
|
+
get ActiveTypeKeys() {
|
|
385
|
+
return [this.AccountTypeFilter];
|
|
386
|
+
}
|
|
387
|
+
OnTypeToggled(key) {
|
|
388
|
+
this.SetAccountTypeFilter(key);
|
|
389
|
+
}
|
|
390
|
+
AdvancedOpen = false;
|
|
391
|
+
get AdvancedCount() {
|
|
392
|
+
return this.SelectedCompanyIDs.length ? 1 : 0;
|
|
393
|
+
}
|
|
394
|
+
OnToolbarSearch(text) {
|
|
395
|
+
this.Search = text;
|
|
396
|
+
}
|
|
397
|
+
/** The scoped, fully-traversed tree — rebuilt whenever the company scope or data changes. */
|
|
398
|
+
scopedTree = [];
|
|
399
|
+
async GetResourceDisplayName(_data) {
|
|
400
|
+
return 'Chart of Accounts';
|
|
401
|
+
}
|
|
402
|
+
initDashboard() {
|
|
403
|
+
// One-time setup; data loads in loadData().
|
|
404
|
+
}
|
|
405
|
+
async loadData() {
|
|
406
|
+
this.IsBusy = true;
|
|
407
|
+
this.LoadError = null;
|
|
408
|
+
this.cdr.markForCheck();
|
|
409
|
+
try {
|
|
410
|
+
await this.loadAll();
|
|
411
|
+
}
|
|
412
|
+
catch (e) {
|
|
413
|
+
this.LoadError = e instanceof Error ? e.message : String(e);
|
|
414
|
+
}
|
|
415
|
+
finally {
|
|
416
|
+
this.IsBusy = false;
|
|
417
|
+
this.cdr.markForCheck();
|
|
418
|
+
}
|
|
419
|
+
// BaseDashboard.ngOnInit() calls NotifyLoadComplete() after loadData() resolves.
|
|
420
|
+
}
|
|
421
|
+
// ─── data loading ────────────────────────────────────────────────────────────
|
|
422
|
+
async loadAll() {
|
|
423
|
+
// GL Accounts + Company Profiles come from the shared reactive reference engine (AccountingEngineBase),
|
|
424
|
+
// not a per-page RunView — so every page shares one cache and edits/creates propagate automatically.
|
|
425
|
+
await AccountingEngineBase.Instance.ConfigEx({ contextUser: this.ProviderToUse.CurrentUser, provider: this.ProviderToUse });
|
|
426
|
+
this.loadAccountTypeOptions();
|
|
427
|
+
this.hydrateFromEngine();
|
|
428
|
+
// Default the company scope to the first company (single, clean chart) — else show all.
|
|
429
|
+
if (this.SelectedCompanyIDs.length === 0 && this.Companies.length > 0) {
|
|
430
|
+
this.SelectedCompanyIDs = [this.Companies[0].ID];
|
|
431
|
+
this.rebuildTree();
|
|
432
|
+
}
|
|
433
|
+
this.ensureEngineSubscription();
|
|
434
|
+
}
|
|
435
|
+
/** Project the engine's cached entities into the page's row/option shapes + rebuild the tree (scope preserved). */
|
|
436
|
+
hydrateFromEngine() {
|
|
437
|
+
const eng = AccountingEngineBase.Instance;
|
|
438
|
+
this.AllAccounts = eng.GLAccounts.map(a => ({
|
|
439
|
+
ID: a.ID, Code: a.Code, Name: a.Name, AccountType: a.AccountType, CompanyID: a.CompanyID,
|
|
440
|
+
Company: a.Company ?? '', ParentGLAccountID: a.ParentGLAccountID, CurrencyCode: a.CurrencyCode, IsActive: a.IsActive,
|
|
441
|
+
}));
|
|
442
|
+
this.Companies = eng.CompanyProfiles
|
|
443
|
+
.map(c => ({ ID: c.ID, Name: c.Name, CompanyCode: c.CompanyCode }))
|
|
444
|
+
.sort((x, y) => x.Name.localeCompare(y.Name));
|
|
445
|
+
this.rebuildTree();
|
|
446
|
+
}
|
|
447
|
+
/** Subscribe once: when the engine's GL-account cache changes (any save/create/delete, from anywhere), re-hydrate. */
|
|
448
|
+
ensureEngineSubscription() {
|
|
449
|
+
if (this.engineSubscribed)
|
|
450
|
+
return;
|
|
451
|
+
this.engineSubscribed = true;
|
|
452
|
+
AccountingEngineBase.Instance
|
|
453
|
+
.ObserveProperty('_glAccounts')
|
|
454
|
+
.pipe(takeUntil(this.destroy$))
|
|
455
|
+
.subscribe(() => { this.hydrateFromEngine(); this.cdr.markForCheck(); });
|
|
456
|
+
}
|
|
457
|
+
/** Valid AccountType values from the entity's field metadata (CHECK-constraint source of truth); fall back to the distinct set present in the data. */
|
|
458
|
+
loadAccountTypeOptions() {
|
|
459
|
+
const field = this.md.EntityByName(GL_ACCOUNT_ENTITY)?.Fields?.find(f => f.Name === 'AccountType');
|
|
460
|
+
const fromMeta = (field?.EntityFieldValues ?? []).map(v => v.Value);
|
|
461
|
+
this.AccountTypeOptions = fromMeta.length ? fromMeta : this.AccountTypes;
|
|
462
|
+
}
|
|
463
|
+
// ─── company scope ─────────────────────────────────────────────────────────
|
|
464
|
+
/** Company rows shaped for the dropdowns — "Name (CODE)", the label the old <option>s composed. */
|
|
465
|
+
get CompanyScopeOptions() {
|
|
466
|
+
return (this.Companies ?? []).map((c) => ({ ID: c.ID, Name: `${c.Name} (${c.CompanyCode})` }));
|
|
467
|
+
}
|
|
468
|
+
/** Parent rows shaped for the dropdown — "Code · Name". */
|
|
469
|
+
get ParentChoices() {
|
|
470
|
+
return (this.ParentOptions ?? []).map((p) => ({ ID: p.ID, Label: `${p.Code} · ${p.Name}` }));
|
|
471
|
+
}
|
|
472
|
+
ParentNoneDefault = { ID: null, Label: '— none (top level) —' };
|
|
473
|
+
/** MULTI-select company narrowing (Marcelo 2026-08-05): empty = every company's tree. */
|
|
474
|
+
SelectedCompanyIDs = [];
|
|
475
|
+
OnCompanyIDsChanged(ids) {
|
|
476
|
+
this.SelectedCompanyIDs = ids;
|
|
477
|
+
this.rebuildTree();
|
|
478
|
+
this.cdr.markForCheck();
|
|
479
|
+
}
|
|
480
|
+
/** Accounts within the current company scope (all companies when nothing is checked). */
|
|
481
|
+
scopedAccounts() {
|
|
482
|
+
if (this.SelectedCompanyIDs.length === 0)
|
|
483
|
+
return this.AllAccounts;
|
|
484
|
+
const targets = new Set(this.SelectedCompanyIDs.map(x => x.toUpperCase()));
|
|
485
|
+
return this.AllAccounts.filter(a => targets.has(a.CompanyID.toUpperCase()));
|
|
486
|
+
}
|
|
487
|
+
rebuildTree() {
|
|
488
|
+
this.scopedTree = this.flattenTree(this.scopedAccounts());
|
|
489
|
+
}
|
|
490
|
+
// ─── tree building ───────────────────────────────────────────────────────────
|
|
491
|
+
/** Group the scoped accounts by parent ID (uppercased); each bucket sorted by Code. */
|
|
492
|
+
buildChildMap(rows) {
|
|
493
|
+
const byParent = new Map();
|
|
494
|
+
for (const r of rows) {
|
|
495
|
+
const key = r.ParentGLAccountID ? r.ParentGLAccountID.toUpperCase() : '';
|
|
496
|
+
const bucket = byParent.get(key) ?? [];
|
|
497
|
+
bucket.push(r);
|
|
498
|
+
byParent.set(key, bucket);
|
|
499
|
+
}
|
|
500
|
+
for (const bucket of byParent.values()) {
|
|
501
|
+
bucket.sort((a, b) => a.Code.localeCompare(b.Code));
|
|
502
|
+
}
|
|
503
|
+
return byParent;
|
|
504
|
+
}
|
|
505
|
+
/** Roots = accounts with no parent, or whose parent is outside the scoped set. */
|
|
506
|
+
findRoots(rows) {
|
|
507
|
+
const idSet = new Set(rows.map(r => r.ID.toUpperCase()));
|
|
508
|
+
return rows
|
|
509
|
+
.filter(r => !r.ParentGLAccountID || !idSet.has(r.ParentGLAccountID.toUpperCase()))
|
|
510
|
+
.sort((a, b) => a.Code.localeCompare(b.Code));
|
|
511
|
+
}
|
|
512
|
+
/** Depth-first traversal → flat list of {node, depth} for indented rendering. */
|
|
513
|
+
flattenTree(rows) {
|
|
514
|
+
const byParent = this.buildChildMap(rows);
|
|
515
|
+
const out = [];
|
|
516
|
+
const visit = (row, depth) => {
|
|
517
|
+
out.push({ Row: row, Depth: depth });
|
|
518
|
+
const children = byParent.get(row.ID.toUpperCase()) ?? [];
|
|
519
|
+
for (const child of children)
|
|
520
|
+
visit(child, depth + 1);
|
|
521
|
+
};
|
|
522
|
+
for (const root of this.findRoots(rows))
|
|
523
|
+
visit(root, 0);
|
|
524
|
+
return out;
|
|
525
|
+
}
|
|
526
|
+
// ─── filtered view ─────────────────────────────────────────────────────────
|
|
527
|
+
/** Distinct account types present in the data — sourced from the data (no hand-copied union). */
|
|
528
|
+
get AccountTypes() {
|
|
529
|
+
return Array.from(new Set(this.AllAccounts.map(a => a.AccountType))).sort();
|
|
530
|
+
}
|
|
531
|
+
get CompanyCount() {
|
|
532
|
+
return this.Companies.length;
|
|
533
|
+
}
|
|
534
|
+
get FilteredTree() {
|
|
535
|
+
const q = this.Search.trim().toLowerCase();
|
|
536
|
+
return this.scopedTree.filter(n => {
|
|
537
|
+
if (this.AccountTypeFilter !== 'All' && n.Row.AccountType !== this.AccountTypeFilter)
|
|
538
|
+
return false;
|
|
539
|
+
if (q && !this.matchesSearch(n.Row, q))
|
|
540
|
+
return false;
|
|
541
|
+
return true;
|
|
542
|
+
});
|
|
543
|
+
}
|
|
544
|
+
matchesSearch(row, q) {
|
|
545
|
+
return row.Code.toLowerCase().includes(q) || row.Name.toLowerCase().includes(q);
|
|
546
|
+
}
|
|
547
|
+
SetAccountTypeFilter(type) {
|
|
548
|
+
this.AccountTypeFilter = type;
|
|
549
|
+
this.cdr.markForCheck();
|
|
550
|
+
}
|
|
551
|
+
// ─── presentation helpers ────────────────────────────────────────────────────
|
|
552
|
+
/** Left padding for a row at the given tree depth (keeps the row's 12px base indent at depth 0). */
|
|
553
|
+
Indent(depth) {
|
|
554
|
+
return `${12 + depth * 22}px`;
|
|
555
|
+
}
|
|
556
|
+
TypeVariant(type) {
|
|
557
|
+
switch (type) {
|
|
558
|
+
case 'Asset': return 'info';
|
|
559
|
+
case 'Liability': return 'warning';
|
|
560
|
+
case 'Revenue': return 'success';
|
|
561
|
+
case 'Expense': return 'error';
|
|
562
|
+
case 'Equity': return 'default';
|
|
563
|
+
default: return 'default';
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
// ─── account navigation (Explorer record tab) ────────────────────────────────
|
|
567
|
+
/** Open the GL Account entity record in an Explorer tab via NavigationService. */
|
|
568
|
+
async OpenAccount(row) {
|
|
569
|
+
if (!row?.ID)
|
|
570
|
+
return;
|
|
571
|
+
if (this.navigationService) {
|
|
572
|
+
this.navigationService.OpenEntityRecord(GL_ACCOUNT_ENTITY, CompositeKey.FromID(row.ID));
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
/** Monotonic counter from the header's "New account" verb. */
|
|
576
|
+
_createSignal = 0;
|
|
577
|
+
set CreateSignal(v) {
|
|
578
|
+
if (v > this._createSignal) {
|
|
579
|
+
this._createSignal = v;
|
|
580
|
+
this.OnNewAccount();
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
OnNewAccount() {
|
|
584
|
+
if (this.navigationService) {
|
|
585
|
+
this.navigationService.OpenNewEntityRecord(GL_ACCOUNT_ENTITY);
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
StartEdit() { this.DialogMode = 'edit'; this.DialogError = null; this.cdr.markForCheck(); }
|
|
589
|
+
/** Cancel: an edit reverts to the saved view; a create just closes. */
|
|
590
|
+
OnDialogCancel() {
|
|
591
|
+
if (this.DialogMode === 'edit' && this.savedModel) {
|
|
592
|
+
this.Model = { ...this.savedModel };
|
|
593
|
+
this.DialogMode = 'view';
|
|
594
|
+
this.DialogError = null;
|
|
595
|
+
this.cdr.markForCheck();
|
|
596
|
+
}
|
|
597
|
+
else {
|
|
598
|
+
this.CloseDialog();
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
CloseDialog() { this.DialogVisible = false; this.DialogError = null; this.cdr.markForCheck(); }
|
|
602
|
+
/** Persist the model via the typed entity (create or update), refresh the tree, land on the clean view. */
|
|
603
|
+
async SaveAccount() {
|
|
604
|
+
if (this.Saving)
|
|
605
|
+
return;
|
|
606
|
+
const err = this.validate();
|
|
607
|
+
if (err) {
|
|
608
|
+
this.DialogError = err;
|
|
609
|
+
this.cdr.markForCheck();
|
|
610
|
+
return;
|
|
611
|
+
}
|
|
612
|
+
this.Saving = true;
|
|
613
|
+
this.DialogError = null;
|
|
614
|
+
this.cdr.markForCheck();
|
|
615
|
+
try {
|
|
616
|
+
const entity = await this.md.GetEntityObject(GL_ACCOUNT_ENTITY);
|
|
617
|
+
if (this.Model.ID) {
|
|
618
|
+
if (!(await entity.Load(this.Model.ID)))
|
|
619
|
+
throw new Error('Account no longer exists.');
|
|
620
|
+
}
|
|
621
|
+
else {
|
|
622
|
+
entity.NewRecord();
|
|
623
|
+
}
|
|
624
|
+
entity.Code = this.Model.Code.trim();
|
|
625
|
+
entity.Name = this.Model.Name.trim();
|
|
626
|
+
entity.AccountType = this.Model.AccountType;
|
|
627
|
+
entity.CompanyID = this.Model.CompanyID;
|
|
628
|
+
entity.ParentGLAccountID = this.Model.ParentGLAccountID || null;
|
|
629
|
+
entity.CurrencyCode = (this.Model.CurrencyCode ?? '').trim() || null; // combobox clear can write null
|
|
630
|
+
entity.IsActive = this.Model.IsActive;
|
|
631
|
+
entity.Description = this.Model.Description.trim() || null;
|
|
632
|
+
if (!(await entity.Save()))
|
|
633
|
+
throw new Error(entity.LatestResult?.CompleteMessage ?? 'Save failed.');
|
|
634
|
+
// No manual reload: the save fires a BaseEntity event → the engine updates its GL-account cache →
|
|
635
|
+
// ObserveProperty emits → the tree re-hydrates automatically (reactive).
|
|
636
|
+
this.Model = this.modelFromEntity(entity);
|
|
637
|
+
this.savedModel = { ...this.Model };
|
|
638
|
+
this.DialogMode = 'view';
|
|
639
|
+
}
|
|
640
|
+
catch (e) {
|
|
641
|
+
this.DialogError = e instanceof Error ? e.message : String(e);
|
|
642
|
+
}
|
|
643
|
+
finally {
|
|
644
|
+
this.Saving = false;
|
|
645
|
+
this.cdr.markForCheck();
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
validate() {
|
|
649
|
+
if (!this.Model.Code.trim())
|
|
650
|
+
return 'Account code is required.';
|
|
651
|
+
if (!this.Model.Name.trim())
|
|
652
|
+
return 'Account name is required.';
|
|
653
|
+
if (!this.Model.CompanyID)
|
|
654
|
+
return 'Company is required.';
|
|
655
|
+
if (!this.Model.AccountType)
|
|
656
|
+
return 'Account type is required.';
|
|
657
|
+
return null;
|
|
658
|
+
}
|
|
659
|
+
modelFromEntity(e) {
|
|
660
|
+
return {
|
|
661
|
+
ID: e.ID, Code: e.Code, Name: e.Name, AccountType: e.AccountType, CompanyID: e.CompanyID,
|
|
662
|
+
ParentGLAccountID: e.ParentGLAccountID, CurrencyCode: e.CurrencyCode ?? '', IsActive: e.IsActive,
|
|
663
|
+
Description: e.Description ?? '',
|
|
664
|
+
};
|
|
665
|
+
}
|
|
666
|
+
blankModel() {
|
|
667
|
+
// Null-safe: this runs once as a field initializer BEFORE the other fields are set, and again in OnNewAccount.
|
|
668
|
+
// Pre-pick the scoped company only when the scope narrows to exactly one.
|
|
669
|
+
const sel = this.SelectedCompanyIDs?.length === 1 ? this.SelectedCompanyIDs[0] : '';
|
|
670
|
+
const companyID = sel || (this.Companies?.[0]?.ID ?? '');
|
|
671
|
+
return {
|
|
672
|
+
ID: null, Code: '', Name: '', AccountType: this.AccountTypeOptions?.[0] ?? 'Asset',
|
|
673
|
+
CompanyID: companyID, ParentGLAccountID: null, CurrencyCode: '', IsActive: true, Description: '',
|
|
674
|
+
};
|
|
675
|
+
}
|
|
676
|
+
// ─── dialog presentation helpers ─────────────────────────────────────────────
|
|
677
|
+
get DialogTitle() {
|
|
678
|
+
if (this.DialogMode === 'create')
|
|
679
|
+
return 'New GL Account';
|
|
680
|
+
return this.Model.Code ? `${this.Model.Code} · ${this.Model.Name}` : 'GL Account';
|
|
681
|
+
}
|
|
682
|
+
/** Parent-account choices: accounts in the model's company, excluding the account itself. */
|
|
683
|
+
get ParentOptions() {
|
|
684
|
+
const co = this.Model.CompanyID?.toUpperCase();
|
|
685
|
+
return this.AllAccounts
|
|
686
|
+
.filter(a => a.CompanyID.toUpperCase() === co && a.ID !== this.Model.ID)
|
|
687
|
+
.sort((a, b) => a.Code.localeCompare(b.Code));
|
|
688
|
+
}
|
|
689
|
+
get ParentName() {
|
|
690
|
+
const p = this.AllAccounts.find(a => a.ID === this.Model.ParentGLAccountID);
|
|
691
|
+
return p ? `${p.Code} · ${p.Name}` : '—';
|
|
692
|
+
}
|
|
693
|
+
companyName(id) {
|
|
694
|
+
return this.Companies.find(c => c.ID.toUpperCase() === (id ?? '').toUpperCase())?.Name ?? id;
|
|
695
|
+
}
|
|
696
|
+
static ɵfac = /*@__PURE__*/ (() => { let ɵChartOfAccountsDashboardComponent_BaseFactory; return function ChartOfAccountsDashboardComponent_Factory(__ngFactoryType__) { return (ɵChartOfAccountsDashboardComponent_BaseFactory || (ɵChartOfAccountsDashboardComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ChartOfAccountsDashboardComponent)))(__ngFactoryType__ || ChartOfAccountsDashboardComponent); }; })();
|
|
697
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ChartOfAccountsDashboardComponent, selectors: [["mj-chart-of-accounts-dashboard"]], inputs: { CreateSignal: "CreateSignal" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 19, vars: 17, consts: [[1, "coa-subheader"], [3, "Bare", "Figures"], ["SearchPlaceholder", "Search code or name\u2026", 3, "AdvancedOpenChange", "SearchChanged", "PresetToggled", "Bare", "Search", "Presets", "ActiveKeys", "HasAdvanced", "AdvancedCount", "AdvancedOpen"], [1, "coa-field"], [1, "coa-field__label"], ["AllLabel", "All companies", "AriaLabel", "Company", 3, "SelectedIDsChange", "Options", "SelectedIDs"], ["text", "Loading chart of accounts\u2026"], ["Width", "560px", 3, "Close", "Visible", "Title"], [1, "coa-dlg"], ["role", "alert", 1, "coa-banner", "coa-banner--error"], [1, "coa-view"], [1, "coa-form"], ["Icon", "fa-solid fa-sitemap", "Title", "No GL accounts yet", "Message", "Seed a company's default chart of accounts to populate this tree."], ["Icon", "fa-solid fa-filter-circle-xmark", "Title", "No matching accounts", "Message", "No accounts match the current company, type, or search filters."], [1, "coa-tree"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "coa-row", 3, "padding-left"], [1, "coa-row", 3, "click"], [1, "coa-code"], [1, "coa-name"], [1, "coa-pill"], [1, "coa-tag", "coa-tag--muted"], [1, "coa-spacer"], [1, "coa-ccy"], [1, "fa-solid", "fa-arrow-up-right-from-square", "coa-open"], [1, "fa-solid", "fa-ban"], [1, "coa-view__row"], [1, "coa-req"], ["type", "text", "placeholder", "e.g. 11201", 1, "mj-input", 3, "ngModelChange", "ngModel"], ["type", "text", "placeholder", "e.g. Accounts Receivable", 1, "mj-input", 3, "ngModelChange", "ngModel"], ["aria-label", "Account type", 3, "ngModelChange", "Data", "ValuePrimitive", "ngModel"], ["TextField", "Name", "ValueField", "ID", "aria-label", "Company", 3, "Data", "ValuePrimitive", "ngModel"], ["type", "text", "disabled", "", 1, "mj-input", 3, "value"], ["TextField", "Label", "ValueField", "ID", "aria-label", "Parent account", 3, "ngModelChange", "Data", "ValuePrimitive", "DefaultItem", "ngModel"], ["TextField", "Label", "ValueField", "Code", "Placeholder", "Company default", 3, "ngModelChange", "Data", "ValuePrimitive", "ngModel"], [1, "coa-field", "coa-field--check"], ["type", "checkbox", 1, "mj-checkbox", 3, "ngModelChange", "ngModel"], [1, "coa-field", "coa-field--full"], ["rows", "2", "placeholder", "Optional", 1, "mj-textarea", 3, "ngModelChange", "ngModel"], ["TextField", "Name", "ValueField", "ID", "aria-label", "Company", 3, "ngModelChange", "Data", "ValuePrimitive", "ngModel"], ["mjButton", "", "variant", "primary", 3, "click"], [1, "fa-solid", "fa-pen"], ["mjButton", "", "variant", "flat", 3, "click"], ["mjButton", "", "variant", "primary", 3, "click", "disabled"], ["mjButton", "", "variant", "flat", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-check"]], template: function ChartOfAccountsDashboardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
698
|
+
i0.ɵɵelementStart(0, "mj-page-layout")(1, "div", 0);
|
|
699
|
+
i0.ɵɵelement(2, "mja-summary-strip", 1);
|
|
700
|
+
i0.ɵɵelementStart(3, "mja-list-toolbar", 2);
|
|
701
|
+
i0.ɵɵtwoWayListener("AdvancedOpenChange", function ChartOfAccountsDashboardComponent_Template_mja_list_toolbar_AdvancedOpenChange_3_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.AdvancedOpen, $event) || (ctx.AdvancedOpen = $event); return $event; });
|
|
702
|
+
i0.ɵɵlistener("SearchChanged", function ChartOfAccountsDashboardComponent_Template_mja_list_toolbar_SearchChanged_3_listener($event) { return ctx.OnToolbarSearch($event); })("PresetToggled", function ChartOfAccountsDashboardComponent_Template_mja_list_toolbar_PresetToggled_3_listener($event) { return ctx.OnTypeToggled($event); });
|
|
703
|
+
i0.ɵɵelementStart(4, "label", 3)(5, "span", 4);
|
|
704
|
+
i0.ɵɵtext(6, "Company");
|
|
705
|
+
i0.ɵɵelementEnd();
|
|
706
|
+
i0.ɵɵelementStart(7, "mja-check-dropdown", 5);
|
|
707
|
+
i0.ɵɵlistener("SelectedIDsChange", function ChartOfAccountsDashboardComponent_Template_mja_check_dropdown_SelectedIDsChange_7_listener($event) { return ctx.OnCompanyIDsChanged($event); });
|
|
708
|
+
i0.ɵɵelementEnd()()()();
|
|
709
|
+
i0.ɵɵelementStart(8, "mj-page-body");
|
|
710
|
+
i0.ɵɵconditionalCreate(9, ChartOfAccountsDashboardComponent_Conditional_9_Template, 1, 0, "mj-loading", 6)(10, ChartOfAccountsDashboardComponent_Conditional_10_Template, 4, 2);
|
|
711
|
+
i0.ɵɵelementEnd()();
|
|
712
|
+
i0.ɵɵelementStart(11, "mj-dialog", 7);
|
|
713
|
+
i0.ɵɵlistener("Close", function ChartOfAccountsDashboardComponent_Template_mj_dialog_Close_11_listener() { return ctx.CloseDialog(); });
|
|
714
|
+
i0.ɵɵelementStart(12, "div", 8);
|
|
715
|
+
i0.ɵɵconditionalCreate(13, ChartOfAccountsDashboardComponent_Conditional_13_Template, 3, 1, "div", 9);
|
|
716
|
+
i0.ɵɵconditionalCreate(14, ChartOfAccountsDashboardComponent_Conditional_14_Template, 38, 9, "dl", 10)(15, ChartOfAccountsDashboardComponent_Conditional_15_Template, 42, 15, "div", 11);
|
|
717
|
+
i0.ɵɵelementEnd();
|
|
718
|
+
i0.ɵɵelementStart(16, "mj-dialog-actions");
|
|
719
|
+
i0.ɵɵconditionalCreate(17, ChartOfAccountsDashboardComponent_Conditional_17_Template, 5, 0)(18, ChartOfAccountsDashboardComponent_Conditional_18_Template, 5, 3);
|
|
720
|
+
i0.ɵɵelementEnd()();
|
|
721
|
+
} if (rf & 2) {
|
|
722
|
+
i0.ɵɵadvance(2);
|
|
723
|
+
i0.ɵɵproperty("Bare", true)("Figures", ctx.SummaryFigures);
|
|
724
|
+
i0.ɵɵadvance();
|
|
725
|
+
i0.ɵɵproperty("Bare", true)("Search", ctx.Search)("Presets", ctx.TypeChips)("ActiveKeys", ctx.ActiveTypeKeys)("HasAdvanced", true)("AdvancedCount", ctx.AdvancedCount);
|
|
726
|
+
i0.ɵɵtwoWayProperty("AdvancedOpen", ctx.AdvancedOpen);
|
|
727
|
+
i0.ɵɵadvance(4);
|
|
728
|
+
i0.ɵɵproperty("Options", ctx.CompanyScopeOptions)("SelectedIDs", ctx.SelectedCompanyIDs);
|
|
729
|
+
i0.ɵɵadvance(2);
|
|
730
|
+
i0.ɵɵconditional(ctx.IsBusy ? 9 : 10);
|
|
731
|
+
i0.ɵɵadvance(2);
|
|
732
|
+
i0.ɵɵproperty("Visible", ctx.DialogVisible)("Title", ctx.DialogTitle);
|
|
733
|
+
i0.ɵɵadvance(2);
|
|
734
|
+
i0.ɵɵconditional(ctx.DialogError ? 13 : -1);
|
|
735
|
+
i0.ɵɵadvance();
|
|
736
|
+
i0.ɵɵconditional(ctx.DialogMode === "view" ? 14 : 15);
|
|
737
|
+
i0.ɵɵadvance(3);
|
|
738
|
+
i0.ɵɵconditional(ctx.DialogMode === "view" ? 17 : 18);
|
|
739
|
+
} }, dependencies: [i1.MJDropdownComponent, i2.MJACheckDropdownComponent, i3.MJASummaryStripComponent, i4.MJAListToolbarComponent, i5.DefaultValueAccessor, i5.CheckboxControlValueAccessor, i5.NgControlStatus, i5.NgModel, i6.LoadingComponent, i1.MJButtonDirective, i1.MJPageLayoutComponent, i1.MJPageBodyComponent, i1.MJEmptyStateComponent, i1.MJDialogComponent, i1.MJDialogActionsComponent, i1.MJComboboxComponent], styles: ["\n\n\n\n\n.coa-filters[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 14px;\n flex-wrap: wrap;\n width: 100%;\n}\n.coa-companyselect[_ngcontent-%COMP%] { flex: 0 0 auto; min-width: 220px; }\n.coa-chips[_ngcontent-%COMP%] { display: flex; gap: 6px; flex-wrap: wrap; }\n.coa-chip[_ngcontent-%COMP%] {\n padding: 5px 14px;\n border-radius: 999px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n font-size: 0.8rem;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n.coa-chip[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-hover); }\n.coa-chip--on[_ngcontent-%COMP%] { border-color: var(--mj-brand-primary); background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface)); color: var(--mj-text-primary); font-weight: 600; }\n.coa-chip[data-variant=\"success\"].coa-chip--on[_ngcontent-%COMP%] { border-color: var(--mj-status-success); background: color-mix(in srgb, var(--mj-status-success) 14%, var(--mj-bg-surface)); }\n.coa-chip[data-variant=\"info\"].coa-chip--on[_ngcontent-%COMP%] { border-color: var(--mj-status-info); background: color-mix(in srgb, var(--mj-status-info) 14%, var(--mj-bg-surface)); }\n.coa-chip[data-variant=\"warning\"].coa-chip--on[_ngcontent-%COMP%] { border-color: var(--mj-status-warning); background: color-mix(in srgb, var(--mj-status-warning) 14%, var(--mj-bg-surface)); }\n.coa-chip[data-variant=\"error\"].coa-chip--on[_ngcontent-%COMP%] { border-color: var(--mj-status-error); background: color-mix(in srgb, var(--mj-status-error) 14%, var(--mj-bg-surface)); }\n.coa-searchbox[_ngcontent-%COMP%] {\n position: relative;\n display: flex;\n align-items: center;\n min-width: 200px;\n flex: 0 1 280px;\n}\n.coa-searchbox[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n position: absolute;\n left: 12px;\n color: var(--mj-text-muted);\n pointer-events: none;\n}\n.coa-searchbox[_ngcontent-%COMP%] .mj-input[_ngcontent-%COMP%] { width: 100%; padding-left: 32px; }\n\n\n\n.coa-banner[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 14px;\n border-radius: 8px;\n margin-bottom: 16px;\n font-size: 0.9rem;\n}\n.coa-banner--error[_ngcontent-%COMP%] { background: var(--mj-status-error-bg); color: var(--mj-status-error-text); border: 1px solid var(--mj-status-error-border); }\n\n\n\n.coa-tree[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n background: var(--mj-bg-surface);\n padding: 8px;\n}\n.coa-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n text-align: left;\n padding: 9px 12px;\n background: transparent;\n border: none;\n border-radius: 8px;\n cursor: pointer;\n transition: background 0.12s ease;\n}\n.coa-row[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-hover); }\n.coa-code[_ngcontent-%COMP%] {\n font-weight: 700;\n color: var(--mj-text-primary);\n font-variant-numeric: tabular-nums;\n min-width: 72px;\n}\n.coa-name[_ngcontent-%COMP%] { color: var(--mj-text-primary); }\n.coa-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 10px;\n border-radius: 999px;\n font-size: 0.72rem;\n font-weight: 600;\n}\n.coa-pill[data-variant=\"success\"][_ngcontent-%COMP%] { background: var(--mj-status-success-bg); color: var(--mj-status-success-text); }\n.coa-pill[data-variant=\"info\"][_ngcontent-%COMP%] { background: var(--mj-status-info-bg); color: var(--mj-status-info-text); }\n.coa-pill[data-variant=\"warning\"][_ngcontent-%COMP%] { background: var(--mj-status-warning-bg); color: var(--mj-status-warning-text); }\n.coa-pill[data-variant=\"error\"][_ngcontent-%COMP%] { background: var(--mj-status-error-bg); color: var(--mj-status-error-text); }\n.coa-pill[data-variant=\"default\"][_ngcontent-%COMP%] { background: var(--mj-bg-surface-sunken); color: var(--mj-text-secondary); }\n.coa-tag[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 0.7rem;\n padding: 2px 8px;\n border-radius: 999px;\n}\n.coa-tag--muted[_ngcontent-%COMP%] { background: var(--mj-bg-surface-sunken); color: var(--mj-text-muted); }\n.coa-spacer[_ngcontent-%COMP%] { flex: 1 1 auto; }\n.coa-ccy[_ngcontent-%COMP%] { font-size: 0.78rem; color: var(--mj-text-muted); font-variant-numeric: tabular-nums; }\n.coa-open[_ngcontent-%COMP%] { color: var(--mj-text-disabled); font-size: 0.78rem; }\n.coa-row[_ngcontent-%COMP%]:hover .coa-open[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n\n\n\n.coa-dlg[_ngcontent-%COMP%] { display: flex; flex-direction: column; gap: 14px; min-width: 0; }\n.coa-dlg[_ngcontent-%COMP%] .coa-banner[_ngcontent-%COMP%] { margin: 0; }\n\n\n\n.coa-view[_ngcontent-%COMP%] { display: flex; flex-direction: column; gap: 0; margin: 0; }\n.coa-view__row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 120px 1fr;\n gap: 12px;\n padding: 9px 2px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n.coa-view__row[_ngcontent-%COMP%]:last-child { border-bottom: none; }\n.coa-view__row[_ngcontent-%COMP%] dt[_ngcontent-%COMP%] { color: var(--mj-text-muted); font-size: 0.78rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }\n.coa-view__row[_ngcontent-%COMP%] dd[_ngcontent-%COMP%] { margin: 0; color: var(--mj-text-primary); word-break: break-word; }\n\n\n\n.coa-form[_ngcontent-%COMP%] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }\n.coa-field[_ngcontent-%COMP%] { display: flex; flex-direction: column; gap: 5px; min-width: 0; }\n.coa-field--full[_ngcontent-%COMP%] { grid-column: 1 / -1; }\n.coa-field__label[_ngcontent-%COMP%] { font-size: 0.75rem; font-weight: 600; color: var(--mj-text-secondary); text-transform: uppercase; letter-spacing: 0.02em; }\n.coa-req[_ngcontent-%COMP%] { color: var(--mj-status-error-text); }\n.coa-field--check[_ngcontent-%COMP%] { grid-column: 1 / -1; flex-direction: row; align-items: center; gap: 8px; color: var(--mj-text-primary); font-size: 0.9rem; }\n\n\n\n.coa-subheader[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg);\n margin: var(--mj-space-4) var(--mj-space-4) 0;\n}\n.coa-subheader[_ngcontent-%COMP%] mja-list-toolbar[_ngcontent-%COMP%] {\n display: block;\n border-top: 1px solid var(--mj-border-default);\n}\n.coa-field[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.coa-field__label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n.coa-tree[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg);\n overflow: hidden;\n}"], changeDetection: 0 });
|
|
740
|
+
};
|
|
741
|
+
ChartOfAccountsDashboardComponent = __decorate([
|
|
742
|
+
RegisterClass(BaseDashboard, 'ChartOfAccountsDashboard')
|
|
743
|
+
], ChartOfAccountsDashboardComponent);
|
|
744
|
+
export { ChartOfAccountsDashboardComponent };
|
|
745
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ChartOfAccountsDashboardComponent, [{
|
|
746
|
+
type: Component,
|
|
747
|
+
args: [{ standalone: false, selector: 'mj-chart-of-accounts-dashboard', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mj-page-layout>\n <!-- The fused subheader (list-page standard, Marcelo 2026-08-04): no title card \u2014 the rail names\n the page. Stats + type chips + search in ONE band; the Company narrowing lives behind the\n Filters disclosure; the page-local New Account verb rides the toolbar's actions slot (an\n inline dialog create \u2014 no workspace to route to). The tree below keeps its own idiom. -->\n <div class=\"coa-subheader\">\n <mja-summary-strip [Bare]=\"true\" [Figures]=\"SummaryFigures\" />\n <mja-list-toolbar\n [Bare]=\"true\"\n [Search]=\"Search\"\n SearchPlaceholder=\"Search code or name\u2026\"\n [Presets]=\"TypeChips\"\n [ActiveKeys]=\"ActiveTypeKeys\"\n [HasAdvanced]=\"true\"\n [AdvancedCount]=\"AdvancedCount\"\n [(AdvancedOpen)]=\"AdvancedOpen\"\n (SearchChanged)=\"OnToolbarSearch($event)\"\n (PresetToggled)=\"OnTypeToggled($event)\">\n <label class=\"coa-field\">\n <span class=\"coa-field__label\">Company</span>\n <!-- CHECKBOX multi-select (Marcelo 2026-08-05): show any subset of companies' trees; empty = all. -->\n <mja-check-dropdown\n [Options]=\"CompanyScopeOptions\"\n [SelectedIDs]=\"SelectedCompanyIDs\"\n AllLabel=\"All companies\"\n AriaLabel=\"Company\"\n (SelectedIDsChange)=\"OnCompanyIDsChanged($event)\" />\n </label>\n </mja-list-toolbar>\n </div>\n\n <mj-page-body>\n @if (IsBusy) {\n <mj-loading text=\"Loading chart of accounts\u2026\"></mj-loading>\n } @else {\n @if (LoadError) {\n <div class=\"coa-banner coa-banner--error\" role=\"alert\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i> {{ LoadError }}\n </div>\n }\n\n @if (AllAccounts.length === 0) {\n <mj-empty-state Icon=\"fa-solid fa-sitemap\" Title=\"No GL accounts yet\"\n Message=\"Seed a company's default chart of accounts to populate this tree.\">\n </mj-empty-state>\n } @else if (FilteredTree.length === 0) {\n <mj-empty-state Icon=\"fa-solid fa-filter-circle-xmark\" Title=\"No matching accounts\"\n Message=\"No accounts match the current company, type, or search filters.\">\n </mj-empty-state>\n } @else {\n <div class=\"coa-tree\">\n @for (node of FilteredTree; track node.Row.ID) {\n <button class=\"coa-row\" (click)=\"OpenAccount(node.Row)\" [style.padding-left]=\"Indent(node.Depth)\">\n <span class=\"coa-code\">{{ node.Row.Code }}</span>\n <span class=\"coa-name\">{{ node.Row.Name }}</span>\n <span class=\"coa-pill\" [attr.data-variant]=\"TypeVariant(node.Row.AccountType)\">{{ node.Row.AccountType }}</span>\n @if (!node.Row.IsActive) { <span class=\"coa-tag coa-tag--muted\"><i class=\"fa-solid fa-ban\"></i> inactive</span> }\n <span class=\"coa-spacer\"></span>\n @if (node.Row.CurrencyCode) { <span class=\"coa-ccy\">{{ node.Row.CurrencyCode }}</span> }\n <i class=\"fa-solid fa-arrow-up-right-from-square coa-open\"></i>\n </button>\n }\n </div>\n }\n }\n </mj-page-body>\n</mj-page-layout>\n\n<!-- Clean, user-suitable account panel: read-only VIEW with an Edit action, and a create/edit form (replaces the raw generated-form popup). -->\n<mj-dialog [Visible]=\"DialogVisible\" [Title]=\"DialogTitle\" Width=\"560px\" (Close)=\"CloseDialog()\">\n <div class=\"coa-dlg\">\n @if (DialogError) {\n <div class=\"coa-banner coa-banner--error\" role=\"alert\"><i class=\"fa-solid fa-triangle-exclamation\"></i> {{ DialogError }}</div>\n }\n\n @if (DialogMode === 'view') {\n <dl class=\"coa-view\">\n <div class=\"coa-view__row\"><dt>Code</dt><dd>{{ Model.Code }}</dd></div>\n <div class=\"coa-view__row\"><dt>Name</dt><dd>{{ Model.Name }}</dd></div>\n <div class=\"coa-view__row\"><dt>Type</dt><dd><span class=\"coa-pill\" [attr.data-variant]=\"TypeVariant(Model.AccountType)\">{{ Model.AccountType }}</span></dd></div>\n <div class=\"coa-view__row\"><dt>Company</dt><dd>{{ companyName(Model.CompanyID) }}</dd></div>\n <div class=\"coa-view__row\"><dt>Parent</dt><dd>{{ ParentName }}</dd></div>\n <div class=\"coa-view__row\"><dt>Currency</dt><dd>{{ Model.CurrencyCode || 'Company default' }}</dd></div>\n <div class=\"coa-view__row\"><dt>Status</dt><dd>{{ Model.IsActive ? 'Active' : 'Inactive' }}</dd></div>\n @if (Model.Description) { <div class=\"coa-view__row\"><dt>Description</dt><dd>{{ Model.Description }}</dd></div> }\n </dl>\n } @else {\n <div class=\"coa-form\">\n <label class=\"coa-field\">\n <span class=\"coa-field__label\">Code <span class=\"coa-req\">*</span></span>\n <input class=\"mj-input\" type=\"text\" [(ngModel)]=\"Model.Code\" placeholder=\"e.g. 11201\" />\n </label>\n <label class=\"coa-field\">\n <span class=\"coa-field__label\">Name <span class=\"coa-req\">*</span></span>\n <input class=\"mj-input\" type=\"text\" [(ngModel)]=\"Model.Name\" placeholder=\"e.g. Accounts Receivable\" />\n </label>\n <label class=\"coa-field\">\n <span class=\"coa-field__label\">Account type <span class=\"coa-req\">*</span></span>\n <mj-dropdown [Data]=\"AccountTypeOptions\" [ValuePrimitive]=\"true\"\n [(ngModel)]=\"Model.AccountType\" aria-label=\"Account type\" />\n </label>\n <label class=\"coa-field\">\n <span class=\"coa-field__label\">Company <span class=\"coa-req\">*</span></span>\n @if (DialogMode === 'create') {\n <mj-dropdown [Data]=\"CompanyScopeOptions\" TextField=\"Name\" ValueField=\"ID\" [ValuePrimitive]=\"true\"\n [(ngModel)]=\"Model.CompanyID\" aria-label=\"Company\" />\n } @else {\n <input class=\"mj-input\" type=\"text\" [value]=\"companyName(Model.CompanyID)\" disabled />\n }\n </label>\n <label class=\"coa-field\">\n <span class=\"coa-field__label\">Parent account</span>\n <mj-dropdown [Data]=\"ParentChoices\" TextField=\"Label\" ValueField=\"ID\" [ValuePrimitive]=\"true\"\n [DefaultItem]=\"ParentNoneDefault\"\n [(ngModel)]=\"Model.ParentGLAccountID\" aria-label=\"Parent account\" />\n </label>\n <label class=\"coa-field\">\n <span class=\"coa-field__label\">Currency</span>\n <!-- Searchable combobox (Marcelo 2026-07-30): the label is \"CODE \u2014 Name\", and the combobox\n filters on that text, so typing either the actual code (\"USD\") or the name (\"dollar\")\n finds it. Empty = inherit the company's functional currency. -->\n <mj-combobox\n [Data]=\"CurrencyOptions\"\n TextField=\"Label\"\n ValueField=\"Code\"\n [ValuePrimitive]=\"true\"\n Placeholder=\"Company default\"\n [(ngModel)]=\"Model.CurrencyCode\">\n </mj-combobox>\n </label>\n <label class=\"coa-field coa-field--check\">\n <input type=\"checkbox\" class=\"mj-checkbox\" [(ngModel)]=\"Model.IsActive\" />\n <span>Active (available for new journal entries)</span>\n </label>\n <label class=\"coa-field coa-field--full\">\n <span class=\"coa-field__label\">Description</span>\n <textarea class=\"mj-textarea\" rows=\"2\" [(ngModel)]=\"Model.Description\" placeholder=\"Optional\"></textarea>\n </label>\n </div>\n }\n </div>\n\n <mj-dialog-actions>\n @if (DialogMode === 'view') {\n <button mjButton variant=\"primary\" (click)=\"StartEdit()\"><i class=\"fa-solid fa-pen\"></i> Edit</button>\n <button mjButton variant=\"flat\" (click)=\"CloseDialog()\">Close</button>\n } @else {\n <button mjButton variant=\"primary\" [disabled]=\"Saving\" (click)=\"SaveAccount()\">\n @if (Saving) { <i class=\"fa-solid fa-spinner fa-spin\"></i> Saving\u2026 } @else { <i class=\"fa-solid fa-check\"></i> Save }\n </button>\n <button mjButton variant=\"flat\" [disabled]=\"Saving\" (click)=\"OnDialogCancel()\">Cancel</button>\n }\n </mj-dialog-actions>\n</mj-dialog>\n", styles: ["/* Chart of Accounts \u2014 company-scoped, indented GL account tree. Design-token-only. */\n\n/* \u2500\u2500\u2500 toolbar / filters \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.coa-filters {\n display: flex;\n align-items: center;\n gap: 14px;\n flex-wrap: wrap;\n width: 100%;\n}\n.coa-companyselect { flex: 0 0 auto; min-width: 220px; }\n.coa-chips { display: flex; gap: 6px; flex-wrap: wrap; }\n.coa-chip {\n padding: 5px 14px;\n border-radius: 999px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n font-size: 0.8rem;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n.coa-chip:hover { background: var(--mj-bg-surface-hover); }\n.coa-chip--on { border-color: var(--mj-brand-primary); background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface)); color: var(--mj-text-primary); font-weight: 600; }\n.coa-chip[data-variant=\"success\"].coa-chip--on { border-color: var(--mj-status-success); background: color-mix(in srgb, var(--mj-status-success) 14%, var(--mj-bg-surface)); }\n.coa-chip[data-variant=\"info\"].coa-chip--on { border-color: var(--mj-status-info); background: color-mix(in srgb, var(--mj-status-info) 14%, var(--mj-bg-surface)); }\n.coa-chip[data-variant=\"warning\"].coa-chip--on { border-color: var(--mj-status-warning); background: color-mix(in srgb, var(--mj-status-warning) 14%, var(--mj-bg-surface)); }\n.coa-chip[data-variant=\"error\"].coa-chip--on { border-color: var(--mj-status-error); background: color-mix(in srgb, var(--mj-status-error) 14%, var(--mj-bg-surface)); }\n.coa-searchbox {\n position: relative;\n display: flex;\n align-items: center;\n min-width: 200px;\n flex: 0 1 280px;\n}\n.coa-searchbox i {\n position: absolute;\n left: 12px;\n color: var(--mj-text-muted);\n pointer-events: none;\n}\n.coa-searchbox .mj-input { width: 100%; padding-left: 32px; }\n\n/* \u2500\u2500\u2500 banner \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.coa-banner {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 14px;\n border-radius: 8px;\n margin-bottom: 16px;\n font-size: 0.9rem;\n}\n.coa-banner--error { background: var(--mj-status-error-bg); color: var(--mj-status-error-text); border: 1px solid var(--mj-status-error-border); }\n\n/* \u2500\u2500\u2500 tree rows \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.coa-tree {\n display: flex;\n flex-direction: column;\n gap: 4px;\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n background: var(--mj-bg-surface);\n padding: 8px;\n}\n.coa-row {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n text-align: left;\n padding: 9px 12px;\n background: transparent;\n border: none;\n border-radius: 8px;\n cursor: pointer;\n transition: background 0.12s ease;\n}\n.coa-row:hover { background: var(--mj-bg-surface-hover); }\n.coa-code {\n font-weight: 700;\n color: var(--mj-text-primary);\n font-variant-numeric: tabular-nums;\n min-width: 72px;\n}\n.coa-name { color: var(--mj-text-primary); }\n.coa-pill {\n display: inline-flex;\n align-items: center;\n padding: 2px 10px;\n border-radius: 999px;\n font-size: 0.72rem;\n font-weight: 600;\n}\n.coa-pill[data-variant=\"success\"] { background: var(--mj-status-success-bg); color: var(--mj-status-success-text); }\n.coa-pill[data-variant=\"info\"] { background: var(--mj-status-info-bg); color: var(--mj-status-info-text); }\n.coa-pill[data-variant=\"warning\"] { background: var(--mj-status-warning-bg); color: var(--mj-status-warning-text); }\n.coa-pill[data-variant=\"error\"] { background: var(--mj-status-error-bg); color: var(--mj-status-error-text); }\n.coa-pill[data-variant=\"default\"] { background: var(--mj-bg-surface-sunken); color: var(--mj-text-secondary); }\n.coa-tag {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 0.7rem;\n padding: 2px 8px;\n border-radius: 999px;\n}\n.coa-tag--muted { background: var(--mj-bg-surface-sunken); color: var(--mj-text-muted); }\n.coa-spacer { flex: 1 1 auto; }\n.coa-ccy { font-size: 0.78rem; color: var(--mj-text-muted); font-variant-numeric: tabular-nums; }\n.coa-open { color: var(--mj-text-disabled); font-size: 0.78rem; }\n.coa-row:hover .coa-open { color: var(--mj-brand-primary); }\n\n/* \u2500\u2500 account dialog (view / edit / create) \u2500\u2500 */\n.coa-dlg { display: flex; flex-direction: column; gap: 14px; min-width: 0; }\n.coa-dlg .coa-banner { margin: 0; }\n\n/* read-only view: a clean label/value definition list */\n.coa-view { display: flex; flex-direction: column; gap: 0; margin: 0; }\n.coa-view__row {\n display: grid;\n grid-template-columns: 120px 1fr;\n gap: 12px;\n padding: 9px 2px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n.coa-view__row:last-child { border-bottom: none; }\n.coa-view__row dt { color: var(--mj-text-muted); font-size: 0.78rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }\n.coa-view__row dd { margin: 0; color: var(--mj-text-primary); word-break: break-word; }\n\n/* edit/create form */\n.coa-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }\n.coa-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }\n.coa-field--full { grid-column: 1 / -1; }\n.coa-field__label { font-size: 0.75rem; font-weight: 600; color: var(--mj-text-secondary); text-transform: uppercase; letter-spacing: 0.02em; }\n.coa-req { color: var(--mj-status-error-text); }\n.coa-field--check { grid-column: 1 / -1; flex-direction: row; align-items: center; gap: 8px; color: var(--mj-text-primary); font-size: 0.9rem; }\n\n/* The fused subheader (list-page standard) + the rounded tree card, matching the list pages. */\n.coa-subheader {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg);\n margin: var(--mj-space-4) var(--mj-space-4) 0;\n}\n.coa-subheader mja-list-toolbar {\n display: block;\n border-top: 1px solid var(--mj-border-default);\n}\n.coa-field {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.coa-field__label {\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n.coa-tree {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg);\n overflow: hidden;\n}\n"] }]
|
|
748
|
+
}], null, { CreateSignal: [{
|
|
749
|
+
type: Input
|
|
750
|
+
}] }); })();
|
|
751
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ChartOfAccountsDashboardComponent, { className: "ChartOfAccountsDashboardComponent", filePath: "lib/custom/chartofaccounts/coa-dashboard.component.ts", lineNumber: 70 }); })();
|
|
752
|
+
/** Tree-shaking prevention — called from public-api.ts. */
|
|
753
|
+
export function LoadChartOfAccountsDashboard() {
|
|
754
|
+
// No-op. Keeps @RegisterClass(BaseDashboard, 'ChartOfAccountsDashboard') alive.
|
|
755
|
+
}
|
|
756
|
+
//# sourceMappingURL=coa-dashboard.component.js.map
|