bways-report 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 +26 -0
- package/README.md +477 -0
- package/esm2022/bways-report.mjs +5 -0
- package/esm2022/lib/core/errors/index.mjs +2 -0
- package/esm2022/lib/core/errors/reporting-errors.mjs +65 -0
- package/esm2022/lib/core/index.mjs +8 -0
- package/esm2022/lib/core/models/component-event.model.mjs +8 -0
- package/esm2022/lib/core/models/index.mjs +5 -0
- package/esm2022/lib/core/models/report-component.model.mjs +10 -0
- package/esm2022/lib/core/models/report-datasource.model.mjs +9 -0
- package/esm2022/lib/core/models/report-definition.model.mjs +13 -0
- package/esm2022/lib/core/models/report-grid.model.mjs +10 -0
- package/esm2022/lib/core/models/report-layout.model.mjs +9 -0
- package/esm2022/lib/core/models/report-parameter.model.mjs +9 -0
- package/esm2022/lib/core/models/validation.model.mjs +8 -0
- package/esm2022/lib/core/registry/component-category.mjs +8 -0
- package/esm2022/lib/core/registry/component-registry.mjs +90 -0
- package/esm2022/lib/core/registry/index.mjs +2 -0
- package/esm2022/lib/core/registry/property-definition.model.mjs +10 -0
- package/esm2022/lib/core/services/dynamic-form-builder.service.mjs +55 -0
- package/esm2022/lib/core/services/index.mjs +3 -0
- package/esm2022/lib/core/services/report-session-context.service.mjs +314 -0
- package/esm2022/lib/core/tokens/index.mjs +3 -0
- package/esm2022/lib/core/tokens/reporting-config.token.mjs +26 -0
- package/esm2022/lib/core/tokens/session-context.token.mjs +18 -0
- package/esm2022/lib/core/utilities/id-generator.mjs +17 -0
- package/esm2022/lib/core/utilities/index.mjs +3 -0
- package/esm2022/lib/core/utilities/schema-migration.mjs +38 -0
- package/esm2022/lib/core/utils/identifier-humanizer.mjs +88 -0
- package/esm2022/lib/core/validation/index.mjs +2 -0
- package/esm2022/lib/core/validation/validation-factory.mjs +70 -0
- package/esm2022/lib/data-access/adapters/http-lookup.adapter.mjs +107 -0
- package/esm2022/lib/data-access/adapters/http-schema-discovery.adapter.mjs +119 -0
- package/esm2022/lib/data-access/adapters/index.mjs +3 -0
- package/esm2022/lib/data-access/contracts/data-source.contract.mjs +28 -0
- package/esm2022/lib/data-access/contracts/index.mjs +7 -0
- package/esm2022/lib/data-access/contracts/lookup.contract.mjs +6 -0
- package/esm2022/lib/data-access/contracts/master-data.provider.mjs +24 -0
- package/esm2022/lib/data-access/contracts/report-persistence.contract.mjs +25 -0
- package/esm2022/lib/data-access/contracts/schema-discovery.contract.mjs +7 -0
- package/esm2022/lib/data-access/contracts/translation.contract.mjs +9 -0
- package/esm2022/lib/data-access/index.mjs +3 -0
- package/esm2022/lib/features/designer/components/component-palette/component-palette.component.mjs +542 -0
- package/esm2022/lib/features/designer/components/design-canvas/design-canvas.component.mjs +843 -0
- package/esm2022/lib/features/designer/components/property-editor/parameter-binding-editor.component.mjs +556 -0
- package/esm2022/lib/features/designer/components/property-editor/property-editor-datasource.component.mjs +845 -0
- package/esm2022/lib/features/designer/components/property-editor/property-editor-general.component.mjs +185 -0
- package/esm2022/lib/features/designer/components/property-editor/property-editor-grid.component.mjs +452 -0
- package/esm2022/lib/features/designer/components/property-editor/property-editor-layout.component.mjs +350 -0
- package/esm2022/lib/features/designer/components/property-editor/property-editor-report.component.mjs +175 -0
- package/esm2022/lib/features/designer/components/property-editor/property-editor-validation.component.mjs +137 -0
- package/esm2022/lib/features/designer/components/property-editor/property-editor.component.mjs +608 -0
- package/esm2022/lib/features/designer/components/toolbar/designer-toolbar.component.mjs +225 -0
- package/esm2022/lib/features/designer/designer.component.mjs +285 -0
- package/esm2022/lib/features/designer/index.mjs +7 -0
- package/esm2022/lib/features/designer/services/designer-state.service.mjs +310 -0
- package/esm2022/lib/features/designer/services/index.mjs +2 -0
- package/esm2022/lib/features/designer/utilities/canvas-layout.util.mjs +124 -0
- package/esm2022/lib/features/export/index.mjs +2 -0
- package/esm2022/lib/features/export/models/export.models.mjs +2 -0
- package/esm2022/lib/features/export/services/report-export.service.mjs +107 -0
- package/esm2022/lib/features/index.mjs +6 -0
- package/esm2022/lib/features/persistence/index.mjs +2 -0
- package/esm2022/lib/features/persistence/services/index.mjs +4 -0
- package/esm2022/lib/features/persistence/services/report-store.service.mjs +183 -0
- package/esm2022/lib/features/persistence/services/report-versioning.service.mjs +81 -0
- package/esm2022/lib/features/persistence/services/schema-validator.service.mjs +102 -0
- package/esm2022/lib/features/routing/components/routed-report-designer.component.mjs +156 -0
- package/esm2022/lib/features/routing/components/routed-report-runtime.component.mjs +163 -0
- package/esm2022/lib/features/routing/index.mjs +6 -0
- package/esm2022/lib/features/routing/models/report-route.models.mjs +2 -0
- package/esm2022/lib/features/routing/report-routes.mjs +49 -0
- package/esm2022/lib/features/routing/resolvers/report.resolver.mjs +22 -0
- package/esm2022/lib/features/routing/services/report-menu.service.mjs +77 -0
- package/esm2022/lib/features/runtime/dynamic-renderer.component.mjs +222 -0
- package/esm2022/lib/features/runtime/index.mjs +4 -0
- package/esm2022/lib/features/runtime/report-grid-bridge.component.mjs +409 -0
- package/esm2022/lib/features/runtime/report-runtime.component.mjs +147 -0
- package/esm2022/lib/primitives/components/button/rpt-button.component.mjs +88 -0
- package/esm2022/lib/primitives/components/chart-bridge/report-chart-bridge.component.mjs +361 -0
- package/esm2022/lib/primitives/components/checkbox/rpt-checkbox.component.mjs +86 -0
- package/esm2022/lib/primitives/components/date/rpt-date.component.mjs +91 -0
- package/esm2022/lib/primitives/components/dropdown/rpt-dropdown.component.mjs +204 -0
- package/esm2022/lib/primitives/components/icon/rpt-icon.component.mjs +476 -0
- package/esm2022/lib/primitives/components/index.mjs +10 -0
- package/esm2022/lib/primitives/components/input/rpt-input.component.mjs +88 -0
- package/esm2022/lib/primitives/components/kpi-card/rpt-kpi-card.component.mjs +197 -0
- package/esm2022/lib/primitives/components/number/rpt-number.component.mjs +110 -0
- package/esm2022/lib/primitives/index.mjs +3 -0
- package/esm2022/lib/primitives/register-builtins.mjs +328 -0
- package/esm2022/lib/provide-reporting.mjs +92 -0
- package/esm2022/public-api.mjs +9 -0
- package/fesm2022/bways-report.mjs +10360 -0
- package/fesm2022/bways-report.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/core/errors/index.d.ts +1 -0
- package/lib/core/errors/reporting-errors.d.ts +42 -0
- package/lib/core/index.d.ts +7 -0
- package/lib/core/models/component-event.model.d.ts +37 -0
- package/lib/core/models/index.d.ts +11 -0
- package/lib/core/models/report-component.model.d.ts +95 -0
- package/lib/core/models/report-datasource.model.d.ts +39 -0
- package/lib/core/models/report-definition.model.d.ts +100 -0
- package/lib/core/models/report-grid.model.d.ts +73 -0
- package/lib/core/models/report-layout.model.d.ts +43 -0
- package/lib/core/models/report-parameter.model.d.ts +22 -0
- package/lib/core/models/validation.model.d.ts +30 -0
- package/lib/core/registry/component-category.d.ts +16 -0
- package/lib/core/registry/component-registry.d.ts +101 -0
- package/lib/core/registry/index.d.ts +4 -0
- package/lib/core/registry/property-definition.model.d.ts +38 -0
- package/lib/core/services/dynamic-form-builder.service.d.ts +30 -0
- package/lib/core/services/index.d.ts +3 -0
- package/lib/core/services/report-session-context.service.d.ts +87 -0
- package/lib/core/tokens/index.d.ts +4 -0
- package/lib/core/tokens/reporting-config.token.d.ts +42 -0
- package/lib/core/tokens/session-context.token.d.ts +36 -0
- package/lib/core/utilities/id-generator.d.ts +9 -0
- package/lib/core/utilities/index.d.ts +3 -0
- package/lib/core/utilities/schema-migration.d.ts +10 -0
- package/lib/core/utils/identifier-humanizer.d.ts +22 -0
- package/lib/core/validation/index.d.ts +1 -0
- package/lib/core/validation/validation-factory.d.ts +31 -0
- package/lib/data-access/adapters/http-lookup.adapter.d.ts +19 -0
- package/lib/data-access/adapters/http-schema-discovery.adapter.d.ts +20 -0
- package/lib/data-access/adapters/index.d.ts +2 -0
- package/lib/data-access/contracts/data-source.contract.d.ts +37 -0
- package/lib/data-access/contracts/index.d.ts +9 -0
- package/lib/data-access/contracts/lookup.contract.d.ts +32 -0
- package/lib/data-access/contracts/master-data.provider.d.ts +54 -0
- package/lib/data-access/contracts/report-persistence.contract.d.ts +36 -0
- package/lib/data-access/contracts/schema-discovery.contract.d.ts +52 -0
- package/lib/data-access/contracts/translation.contract.d.ts +16 -0
- package/lib/data-access/index.d.ts +2 -0
- package/lib/features/designer/components/component-palette/component-palette.component.d.ts +39 -0
- package/lib/features/designer/components/design-canvas/design-canvas.component.d.ts +42 -0
- package/lib/features/designer/components/property-editor/parameter-binding-editor.component.d.ts +36 -0
- package/lib/features/designer/components/property-editor/property-editor-datasource.component.d.ts +68 -0
- package/lib/features/designer/components/property-editor/property-editor-general.component.d.ts +20 -0
- package/lib/features/designer/components/property-editor/property-editor-grid.component.d.ts +20 -0
- package/lib/features/designer/components/property-editor/property-editor-layout.component.d.ts +18 -0
- package/lib/features/designer/components/property-editor/property-editor-report.component.d.ts +15 -0
- package/lib/features/designer/components/property-editor/property-editor-validation.component.d.ts +12 -0
- package/lib/features/designer/components/property-editor/property-editor.component.d.ts +44 -0
- package/lib/features/designer/components/toolbar/designer-toolbar.component.d.ts +18 -0
- package/lib/features/designer/designer.component.d.ts +36 -0
- package/lib/features/designer/index.d.ts +7 -0
- package/lib/features/designer/services/designer-state.service.d.ts +103 -0
- package/lib/features/designer/services/index.d.ts +2 -0
- package/lib/features/designer/utilities/canvas-layout.util.d.ts +55 -0
- package/lib/features/export/index.d.ts +2 -0
- package/lib/features/export/models/export.models.d.ts +16 -0
- package/lib/features/export/services/report-export.service.d.ts +27 -0
- package/lib/features/index.d.ts +5 -0
- package/lib/features/persistence/index.d.ts +1 -0
- package/lib/features/persistence/services/index.d.ts +5 -0
- package/lib/features/persistence/services/report-store.service.d.ts +53 -0
- package/lib/features/persistence/services/report-versioning.service.d.ts +29 -0
- package/lib/features/persistence/services/schema-validator.service.d.ts +34 -0
- package/lib/features/routing/components/routed-report-designer.component.d.ts +18 -0
- package/lib/features/routing/components/routed-report-runtime.component.d.ts +18 -0
- package/lib/features/routing/index.d.ts +6 -0
- package/lib/features/routing/models/report-route.models.d.ts +41 -0
- package/lib/features/routing/report-routes.d.ts +16 -0
- package/lib/features/routing/resolvers/report.resolver.d.ts +7 -0
- package/lib/features/routing/services/report-menu.service.d.ts +30 -0
- package/lib/features/runtime/dynamic-renderer.component.d.ts +30 -0
- package/lib/features/runtime/index.d.ts +3 -0
- package/lib/features/runtime/report-grid-bridge.component.d.ts +94 -0
- package/lib/features/runtime/report-runtime.component.d.ts +26 -0
- package/lib/primitives/components/button/rpt-button.component.d.ts +19 -0
- package/lib/primitives/components/chart-bridge/report-chart-bridge.component.d.ts +45 -0
- package/lib/primitives/components/checkbox/rpt-checkbox.component.d.ts +14 -0
- package/lib/primitives/components/date/rpt-date.component.d.ts +17 -0
- package/lib/primitives/components/dropdown/rpt-dropdown.component.d.ts +32 -0
- package/lib/primitives/components/icon/rpt-icon.component.d.ts +41 -0
- package/lib/primitives/components/index.d.ts +12 -0
- package/lib/primitives/components/input/rpt-input.component.d.ts +16 -0
- package/lib/primitives/components/kpi-card/rpt-kpi-card.component.d.ts +43 -0
- package/lib/primitives/components/number/rpt-number.component.d.ts +20 -0
- package/lib/primitives/index.d.ts +2 -0
- package/lib/primitives/register-builtins.d.ts +11 -0
- package/lib/provide-reporting.d.ts +75 -0
- package/package.json +55 -0
- package/public-api.d.ts +5 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReportDefinition — the central domain object.
|
|
3
|
+
*
|
|
4
|
+
* A `ReportDefinition` is a complete, versioned, serializable description
|
|
5
|
+
* of a report page. It is the single source of truth for both the
|
|
6
|
+
* Designer and the Runtime.
|
|
7
|
+
*
|
|
8
|
+
* Key principle: **A report is data, not Angular source code.**
|
|
9
|
+
* The metadata is saved/loaded as JSON. Angular dynamically constructs
|
|
10
|
+
* the required controls, layout, and bindings at runtime.
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWRlZmluaXRpb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9jb3JlL21vZGVscy9yZXBvcnQtZGVmaW5pdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXBvcnREZWZpbml0aW9uIOKAlCB0aGUgY2VudHJhbCBkb21haW4gb2JqZWN0LlxuICpcbiAqIEEgYFJlcG9ydERlZmluaXRpb25gIGlzIGEgY29tcGxldGUsIHZlcnNpb25lZCwgc2VyaWFsaXphYmxlIGRlc2NyaXB0aW9uXG4gKiBvZiBhIHJlcG9ydCBwYWdlLiBJdCBpcyB0aGUgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCBmb3IgYm90aCB0aGVcbiAqIERlc2lnbmVyIGFuZCB0aGUgUnVudGltZS5cbiAqXG4gKiBLZXkgcHJpbmNpcGxlOiAqKkEgcmVwb3J0IGlzIGRhdGEsIG5vdCBBbmd1bGFyIHNvdXJjZSBjb2RlLioqXG4gKiBUaGUgbWV0YWRhdGEgaXMgc2F2ZWQvbG9hZGVkIGFzIEpTT04uIEFuZ3VsYXIgZHluYW1pY2FsbHkgY29uc3RydWN0c1xuICogdGhlIHJlcXVpcmVkIGNvbnRyb2xzLCBsYXlvdXQsIGFuZCBiaW5kaW5ncyBhdCBydW50aW1lLlxuICovXG5cbmltcG9ydCB7IFJlcG9ydENvbXBvbmVudERlZmluaXRpb24gfSBmcm9tICcuL3JlcG9ydC1jb21wb25lbnQubW9kZWwnO1xuaW1wb3J0IHsgUmVwb3J0UGFyYW1ldGVyRGVmaW5pdGlvbiB9IGZyb20gJy4vcmVwb3J0LXBhcmFtZXRlci5tb2RlbCc7XG5pbXBvcnQgeyBSZXBvcnREYXRhU291cmNlRGVmaW5pdGlvbiB9IGZyb20gJy4vcmVwb3J0LWRhdGFzb3VyY2UubW9kZWwnO1xuaW1wb3J0IHsgUmVwb3J0R3JpZERlZmluaXRpb24gfSBmcm9tICcuL3JlcG9ydC1ncmlkLm1vZGVsJztcbmltcG9ydCB7IFJlcG9ydExheW91dERlZmluaXRpb24gfSBmcm9tICcuL3JlcG9ydC1sYXlvdXQubW9kZWwnO1xuXG4vKipcbiAqIFBlcm1pc3Npb24gc2V0dGluZ3MgZm9yIGEgcmVwb3J0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydFBlcm1pc3Npb25EZWZpbml0aW9uIHtcbiAgLyoqIFJvbGVzIHRoYXQgY2FuIHZpZXcvZXhlY3V0ZSB0aGlzIHJlcG9ydC4gKi9cbiAgdmlld1JvbGVzPzogc3RyaW5nW107XG5cbiAgLyoqIFJvbGVzIHRoYXQgY2FuIGVkaXQgdGhpcyByZXBvcnQgaW4gdGhlIGRlc2lnbmVyLiAqL1xuICBlZGl0Um9sZXM/OiBzdHJpbmdbXTtcblxuICAvKiogV2hldGhlciB0aGlzIHJlcG9ydCBpcyBwdWJsaWNseSBhY2Nlc3NpYmxlLiAqL1xuICBpc1B1YmxpYz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogU3VtbWFyeSBpbmZvcm1hdGlvbiBmb3IgbGlzdGluZyByZXBvcnRzICh3aXRob3V0IGZ1bGwgZGVmaW5pdGlvbikuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0U3VtbWFyeSB7XG4gIC8qKiBVbmlxdWUgcmVwb3J0IGlkZW50aWZpZXIuICovXG4gIGlkOiBzdHJpbmc7XG5cbiAgLyoqIFJlcG9ydCBkaXNwbGF5IG5hbWUuICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKiogQnJpZWYgZGVzY3JpcHRpb24uICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKiBDYXRlZ29yeSBvciBncm91cCBmb3Igb3JnYW5pemluZyByZXBvcnRzLiAqL1xuICBjYXRlZ29yeT86IHN0cmluZztcblxuICAvKiogQ3VycmVudCB2ZXJzaW9uIG51bWJlci4gKi9cbiAgdmVyc2lvbjogbnVtYmVyO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSByZXBvcnQgaXMgcHVibGlzaGVkICh2cy4gZHJhZnQpLiAqL1xuICBpc1B1Ymxpc2hlZDogYm9vbGVhbjtcblxuICAvKiogSVNPIGRhdGUgb2YgbGFzdCBtb2RpZmljYXRpb24uICovXG4gIGxhc3RNb2RpZmllZD86IHN0cmluZztcblxuICAvKiogVXNlciB3aG8gbGFzdCBtb2RpZmllZC4gKi9cbiAgbGFzdE1vZGlmaWVkQnk/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29tcGxldGUgcmVwb3J0IGRlZmluaXRpb24g4oCUIHRoZSBzb3VyY2Ugb2YgdHJ1dGguXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGpzb25cbiAqIHtcbiAqICAgXCJpZFwiOiBcInNhbGVzLXJlZ2lzdGVyXCIsXG4gKiAgIFwibmFtZVwiOiBcIlNhbGVzIFJlZ2lzdGVyXCIsXG4gKiAgIFwic2NoZW1hVmVyc2lvblwiOiAxLFxuICogICBcInZlcnNpb25cIjogMSxcbiAqICAgXCJsYXlvdXRcIjogeyBcImNvbHVtbnNcIjogNCwgXCJnYXBcIjogMTYgfSxcbiAqICAgXCJjb21wb25lbnRzXCI6IFsuLi5dLFxuICogICBcInBhcmFtZXRlcnNcIjogWy4uLl0sXG4gKiAgIFwiZGF0YVNvdXJjZXNcIjogWy4uLl0sXG4gKiAgIFwiZ3JpZFwiOiB7IC4uLiB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnREZWZpbml0aW9uIHtcbiAgLyoqIFVuaXF1ZSByZXBvcnQgaWRlbnRpZmllci4gKi9cbiAgaWQ6IHN0cmluZztcblxuICAvKiogRGlzcGxheSBuYW1lLiAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqIEJyaWVmIGRlc2NyaXB0aW9uLiAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKiogTWV0YWRhdGEgc2NoZW1hIHZlcnNpb24g4oCUIHVzZWQgZm9yIG1pZ3JhdGlvbi4gKi9cbiAgc2NoZW1hVmVyc2lvbjogbnVtYmVyO1xuXG4gIC8qKiBSZXBvcnQgY29udGVudCB2ZXJzaW9uIOKAlCBpbmNyZW1lbnRlZCBvbiBlYWNoIHNhdmUuICovXG4gIHZlcnNpb246IG51bWJlcjtcblxuICAvKiogQ2F0ZWdvcnkgb3IgZ3JvdXAgZm9yIG9yZ2FuaXppbmcgcmVwb3J0cy4gKi9cbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XG5cbiAgLyoqIFBhZ2UgbGF5b3V0IGNvbmZpZ3VyYXRpb24uICovXG4gIGxheW91dDogUmVwb3J0TGF5b3V0RGVmaW5pdGlvbjtcblxuICAvKiogQ29tcG9uZW50cyAoY29udHJvbHMsIGJ1dHRvbnMsIGRpc3BsYXkgZWxlbWVudHMpIG9uIHRoaXMgcmVwb3J0IHBhZ2UuICovXG4gIGNvbXBvbmVudHM6IFJlcG9ydENvbXBvbmVudERlZmluaXRpb25bXTtcblxuICAvKiogUGFyYW1ldGVycyB0aGF0IGJyaWRnZSBpbnB1dHMgdG8gZGF0YSBzb3VyY2VzLiAqL1xuICBwYXJhbWV0ZXJzOiBSZXBvcnRQYXJhbWV0ZXJEZWZpbml0aW9uW107XG5cbiAgLyoqIERhdGEgc291cmNlcyBmb3IgZXhlY3V0aW5nIHF1ZXJpZXMuICovXG4gIGRhdGFTb3VyY2VzOiBSZXBvcnREYXRhU291cmNlRGVmaW5pdGlvbltdO1xuXG4gIC8qKiBSZXN1bHQgZ3JpZCBkZWZpbml0aW9uLiAqL1xuICBncmlkPzogUmVwb3J0R3JpZERlZmluaXRpb247XG5cbiAgLyoqIEFjY2VzcyBjb250cm9sIHNldHRpbmdzLiAqL1xuICBwZXJtaXNzaW9ucz86IFJlcG9ydFBlcm1pc3Npb25EZWZpbml0aW9uO1xuXG4gIC8qKiBDdXN0b20gbWV0YWRhdGEgZm9yIGhvc3Qtc3BlY2lmaWMgZXh0ZW5zaW9ucy4gKi9cbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAvKiogSVNPIGRhdGUgb2YgY3JlYXRpb24uICovXG4gIGNyZWF0ZWRBdD86IHN0cmluZztcblxuICAvKiogSVNPIGRhdGUgb2YgbGFzdCBtb2RpZmljYXRpb24uICovXG4gIHVwZGF0ZWRBdD86IHN0cmluZztcblxuICAvKiogVXNlciB3aG8gbGFzdCBtb2RpZmllZC4gKi9cbiAgdXBkYXRlZEJ5Pzogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Report grid definitions.
|
|
3
|
+
*
|
|
4
|
+
* Describes the logical structure of the result grid — columns, fields,
|
|
5
|
+
* formatting, sorting, and filtering. This is **not** a specific grid
|
|
6
|
+
* library's API. The `ReportGridBridgeComponent` translates this into
|
|
7
|
+
* whatever the host's grid component (BWays-grid, AG Grid, etc.) expects.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWdyaWQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9jb3JlL21vZGVscy9yZXBvcnQtZ3JpZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXBvcnQgZ3JpZCBkZWZpbml0aW9ucy5cbiAqXG4gKiBEZXNjcmliZXMgdGhlIGxvZ2ljYWwgc3RydWN0dXJlIG9mIHRoZSByZXN1bHQgZ3JpZCDigJQgY29sdW1ucywgZmllbGRzLFxuICogZm9ybWF0dGluZywgc29ydGluZywgYW5kIGZpbHRlcmluZy4gVGhpcyBpcyAqKm5vdCoqIGEgc3BlY2lmaWMgZ3JpZFxuICogbGlicmFyeSdzIEFQSS4gVGhlIGBSZXBvcnRHcmlkQnJpZGdlQ29tcG9uZW50YCB0cmFuc2xhdGVzIHRoaXMgaW50b1xuICogd2hhdGV2ZXIgdGhlIGhvc3QncyBncmlkIGNvbXBvbmVudCAoQldheXMtZ3JpZCwgQUcgR3JpZCwgZXRjLikgZXhwZWN0cy5cbiAqL1xuXG4vKipcbiAqIERlZmluZXMgdGhlIHJlc3VsdCBncmlkIGZvciBhIHJlcG9ydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRHcmlkRGVmaW5pdGlvbiB7XG4gIC8qKiBUaGUgZGF0YSBzb3VyY2UgSUQgdGhhdCBwcm92aWRlcyBkYXRhIGZvciB0aGlzIGdyaWQuICovXG4gIGRhdGFTb3VyY2VJZDogc3RyaW5nO1xuXG4gIC8qKiBDb2x1bW4gZGVmaW5pdGlvbnMuICovXG4gIGNvbHVtbnM6IEdyaWRDb2x1bW5EZWZpbml0aW9uW107XG5cbiAgLyoqIEdyaWQtbGV2ZWwgb3B0aW9ucy4gKi9cbiAgb3B0aW9ucz86IEdyaWRPcHRpb25zRGVmaW5pdGlvbjtcbn1cblxuLyoqXG4gKiBEZWZpbmVzIGEgc2luZ2xlIGNvbHVtbiBpbiB0aGUgcmVzdWx0IGdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZENvbHVtbkRlZmluaXRpb24ge1xuICAvKiogVGhlIGZpZWxkIG5hbWUgaW4gdGhlIGRhdGEgcm93IG9iamVjdC4gKi9cbiAgZmllbGQ6IHN0cmluZztcblxuICAvKiogRGlzcGxheSBsYWJlbCBmb3IgdGhlIGNvbHVtbiBoZWFkZXIuICovXG4gIGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqIENvbHVtbiBkYXRhIHR5cGUg4oCUIHVzZWQgZm9yIGZvcm1hdHRpbmcgYW5kIHNvcnRpbmcuICovXG4gIGRhdGFUeXBlPzogJ3N0cmluZycgfCAnbnVtYmVyJyB8ICdkYXRlJyB8ICdib29sZWFuJyB8ICdjdXJyZW5jeSc7XG5cbiAgLyoqIERpc3BsYXkgZm9ybWF0IChlLmcuLCAnZGQvTU0veXl5eScgZm9yIGRhdGVzLCAnMS4yLTInIGZvciBudW1iZXJzKS4gKi9cbiAgZm9ybWF0Pzogc3RyaW5nO1xuXG4gIC8qKiBDb2x1bW4gd2lkdGggKENTUyB2YWx1ZSwgZS5nLiwgJzE1MHB4JywgJzIwJScpLiAqL1xuICB3aWR0aD86IHN0cmluZztcblxuICAvKiogV2hldGhlciB0aGlzIGNvbHVtbiBpcyBzb3J0YWJsZS4gRGVmYXVsdHMgdG8gYHRydWVgLiAqL1xuICBzb3J0YWJsZT86IGJvb2xlYW47XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyBjb2x1bW4gaXMgZmlsdGVyYWJsZS4gRGVmYXVsdHMgdG8gYGZhbHNlYC4gKi9cbiAgZmlsdGVyYWJsZT86IGJvb2xlYW47XG5cbiAgLyoqIFRleHQgYWxpZ25tZW50LiAqL1xuICBhbGlnbj86ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JztcblxuICAvKiogV2hldGhlciB0aGlzIGNvbHVtbiBpcyB2aXNpYmxlLiBEZWZhdWx0cyB0byBgdHJ1ZWAuICovXG4gIHZpc2libGU/OiBib29sZWFuO1xuXG4gIC8qKiBXaGV0aGVyIHRoaXMgY29sdW1uIGlzIHBpbm5lZC9mcm96ZW4uICovXG4gIHBpbm5lZD86ICdsZWZ0JyB8ICdyaWdodCcgfCBmYWxzZTtcblxuICAvKiogQ29sdW1uIGRpc3BsYXkgb3JkZXIgKGxvd2VyID0gZmlyc3QpLiAqL1xuICBvcmRlcj86IG51bWJlcjtcblxuICAvKiogQWdncmVnYXRlIGZ1bmN0aW9uIHRvIGRpc3BsYXkgaW4gYSBmb290ZXIgcm93LiAqL1xuICBhZ2dyZWdhdGU/OiAnc3VtJyB8ICdhdmcnIHwgJ2NvdW50JyB8ICdtaW4nIHwgJ21heCcgfCAnbm9uZSc7XG59XG5cbi8qKlxuICogR3JpZC1sZXZlbCBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRPcHRpb25zRGVmaW5pdGlvbiB7XG4gIC8qKiBOdW1iZXIgb2Ygcm93cyBwZXIgcGFnZS4gKi9cbiAgcGFnZVNpemU/OiBudW1iZXI7XG5cbiAgLyoqIFdoZXRoZXIgcGFnaW5hdGlvbiBpcyBlbmFibGVkLiAqL1xuICBwYWdpbmF0aW9uPzogYm9vbGVhbjtcblxuICAvKiogV2hldGhlciByb3cgc2VsZWN0aW9uIGlzIGVuYWJsZWQuICovXG4gIHNlbGVjdGFibGU/OiBib29sZWFuO1xuXG4gIC8qKiBTZWxlY3Rpb24gbW9kZSB3aGVuIHNlbGVjdGFibGUgaXMgdHJ1ZS4gKi9cbiAgc2VsZWN0aW9uTW9kZT86ICdzaW5nbGUnIHwgJ211bHRpcGxlJztcblxuICAvKiogV2hldGhlciB0byBzaG93IHJvdyBudW1iZXJzLiAqL1xuICBzaG93Um93TnVtYmVycz86IGJvb2xlYW47XG5cbiAgLyoqIFdoZXRoZXIgdG8gYWxsb3cgY29sdW1uIHJlb3JkZXJpbmcuICovXG4gIGFsbG93Q29sdW1uUmVvcmRlcj86IGJvb2xlYW47XG5cbiAgLyoqIFdoZXRoZXIgdG8gYWxsb3cgZXhwb3J0aW5nLiAqL1xuICBhbGxvd0V4cG9ydD86IGJvb2xlYW47XG5cbiAgLyoqIEV4cG9ydCBmb3JtYXRzIHRvIG9mZmVyLiAqL1xuICBleHBvcnRGb3JtYXRzPzogKCdjc3YnIHwgJ2V4Y2VsJyB8ICdwZGYnKVtdO1xuXG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgYSBmb290ZXIgcm93IHdpdGggYWdncmVnYXRlcy4gKi9cbiAgc2hvd0Zvb3Rlcj86IGJvb2xlYW47XG5cbiAgLyoqIEhlaWdodCBvZiB0aGUgZ3JpZCAoQ1NTIHZhbHVlKS4gKi9cbiAgaGVpZ2h0Pzogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layout definitions for report pages and individual components.
|
|
3
|
+
*
|
|
4
|
+
* Layout metadata uses **logical** values (rows, columns, spans) —
|
|
5
|
+
* not CSS class strings like `col-md-3`. The renderer translates
|
|
6
|
+
* logical layout to CSS Grid at runtime.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWxheW91dC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvbW9kZWxzL3JlcG9ydC1sYXlvdXQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBMYXlvdXQgZGVmaW5pdGlvbnMgZm9yIHJlcG9ydCBwYWdlcyBhbmQgaW5kaXZpZHVhbCBjb21wb25lbnRzLlxuICpcbiAqIExheW91dCBtZXRhZGF0YSB1c2VzICoqbG9naWNhbCoqIHZhbHVlcyAocm93cywgY29sdW1ucywgc3BhbnMpIOKAlFxuICogbm90IENTUyBjbGFzcyBzdHJpbmdzIGxpa2UgYGNvbC1tZC0zYC4gVGhlIHJlbmRlcmVyIHRyYW5zbGF0ZXNcbiAqIGxvZ2ljYWwgbGF5b3V0IHRvIENTUyBHcmlkIGF0IHJ1bnRpbWUuXG4gKi9cblxuLyoqXG4gKiBEZXNjcmliZXMgdGhlIG92ZXJhbGwgcGFnZSBsYXlvdXQgZm9yIGEgcmVwb3J0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydExheW91dERlZmluaXRpb24ge1xuICAvKiogTnVtYmVyIG9mIGdyaWQgY29sdW1ucyB0aGUgcmVwb3J0IHBhZ2UgdXNlcy4gKi9cbiAgY29sdW1uczogbnVtYmVyO1xuXG4gIC8qKiBHYXAgYmV0d2VlbiBncmlkIGNlbGxzIGluIHBpeGVscy4gKi9cbiAgZ2FwPzogbnVtYmVyO1xuXG4gIC8qKiBPcHRpb25hbCBwYWRkaW5nIGFyb3VuZCB0aGUgcmVwb3J0IGNvbnRhaW5lciBpbiBwaXhlbHMuICovXG4gIHBhZGRpbmc/OiBudW1iZXI7XG5cbiAgLyoqIExheW91dCBkaXJlY3Rpb24uIERlZmF1bHRzIHRvICdsdHInLiAqL1xuICBkaXJlY3Rpb24/OiAnbHRyJyB8ICdydGwnO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyBob3cgYSBzaW5nbGUgY29tcG9uZW50IGlzIHBvc2l0aW9uZWQgd2l0aGluIHRoZSByZXBvcnQgbGF5b3V0IGdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50TGF5b3V0RGVmaW5pdGlvbiB7XG4gIC8qKiBHcmlkIHJvdyBwbGFjZW1lbnQgKDEtYmFzZWQpLiAqL1xuICByb3c/OiBudW1iZXI7XG5cbiAgLyoqIEdyaWQgY29sdW1uIHBsYWNlbWVudCAoMS1iYXNlZCkuICovXG4gIGNvbHVtbj86IG51bWJlcjtcblxuICAvKiogTnVtYmVyIG9mIGNvbHVtbnMgdGhpcyBjb21wb25lbnQgc3BhbnMuICovXG4gIGNvbHVtblNwYW4/OiBudW1iZXI7XG5cbiAgLyoqIE51bWJlciBvZiByb3dzIHRoaXMgY29tcG9uZW50IHNwYW5zLiAqL1xuICByb3dTcGFuPzogbnVtYmVyO1xuXG4gIC8qKiBFeHBsaWNpdCB3aWR0aCBvdmVycmlkZSAoQ1NTIHZhbHVlLCBlLmcuLCAnMjAwcHgnLCAnNTAlJykuICovXG4gIHdpZHRoPzogc3RyaW5nO1xuXG4gIC8qKiBFeHBsaWNpdCBoZWlnaHQgb3ZlcnJpZGUgKENTUyB2YWx1ZSkuICovXG4gIGhlaWdodD86IHN0cmluZztcblxuICAvKiogTWluaW11bSBoZWlnaHQgb3ZlcnJpZGUgKENTUyB2YWx1ZSwgZS5nLiwgJzYwcHgnKS4gKi9cbiAgbWluSGVpZ2h0Pzogc3RyaW5nO1xuXG4gIC8qKiBNYXhpbXVtIGhlaWdodCBvdmVycmlkZSAoQ1NTIHZhbHVlLCBlLmcuLCAnMzAwcHgnKS4gKi9cbiAgbWF4SGVpZ2h0Pzogc3RyaW5nO1xuXG4gIC8qKiBGb3JjZXMgdGhpcyBjb21wb25lbnQgdG8gc3RhcnQgb24gYSBuZXcgc2VwYXJhdGUgcm93IGluIHRoZSBncmlkLiBEZWZhdWx0cyB0byBmYWxzZS4gKi9cbiAgbmV3Um93PzogYm9vbGVhbjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Report parameter definitions.
|
|
3
|
+
*
|
|
4
|
+
* Parameters are the values that report input controls write to
|
|
5
|
+
* and that data source queries read from. They serve as the bridge
|
|
6
|
+
* between the user's form inputs and the backend query.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXBhcmFtZXRlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvbW9kZWxzL3JlcG9ydC1wYXJhbWV0ZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXBvcnQgcGFyYW1ldGVyIGRlZmluaXRpb25zLlxuICpcbiAqIFBhcmFtZXRlcnMgYXJlIHRoZSB2YWx1ZXMgdGhhdCByZXBvcnQgaW5wdXQgY29udHJvbHMgd3JpdGUgdG9cbiAqIGFuZCB0aGF0IGRhdGEgc291cmNlIHF1ZXJpZXMgcmVhZCBmcm9tLiBUaGV5IHNlcnZlIGFzIHRoZSBicmlkZ2VcbiAqIGJldHdlZW4gdGhlIHVzZXIncyBmb3JtIGlucHV0cyBhbmQgdGhlIGJhY2tlbmQgcXVlcnkuXG4gKi9cblxuLyoqXG4gKiBEZWZpbmVzIGEgc2luZ2xlIHJlcG9ydCBwYXJhbWV0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0UGFyYW1ldGVyRGVmaW5pdGlvbiB7XG4gIC8qKiBVbmlxdWUga2V5IGlkZW50aWZ5aW5nIHRoaXMgcGFyYW1ldGVyLiAqL1xuICBrZXk6IHN0cmluZztcblxuICAvKiogRGlzcGxheSBuYW1lIGZvciB0aGUgcGFyYW1ldGVyLiAqL1xuICBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKiBEYXRhIHR5cGUgb2YgdGhlIHBhcmFtZXRlciB2YWx1ZS4gKi9cbiAgZGF0YVR5cGU6ICdzdHJpbmcnIHwgJ251bWJlcicgfCAnZGF0ZScgfCAnYm9vbGVhbicgfCAnYXJyYXknO1xuXG4gIC8qKiBEZWZhdWx0IHZhbHVlIGlmIHRoZSB1c2VyIGRvZXNuJ3QgcHJvdmlkZSBvbmUuICovXG4gIGRlZmF1bHRWYWx1ZT86IHVua25vd247XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyBwYXJhbWV0ZXIgbXVzdCBoYXZlIGEgdmFsdWUgYmVmb3JlIGV4ZWN1dGluZyB0aGUgcmVwb3J0LiAqL1xuICByZXF1aXJlZD86IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation rule definitions for report component controls.
|
|
3
|
+
*
|
|
4
|
+
* Pure data — no Angular dependencies. The `createValidators()` function
|
|
5
|
+
* in the validation module converts these into Angular `ValidatorFn[]`.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvbW9kZWxzL3ZhbGlkYXRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFZhbGlkYXRpb24gcnVsZSBkZWZpbml0aW9ucyBmb3IgcmVwb3J0IGNvbXBvbmVudCBjb250cm9scy5cbiAqXG4gKiBQdXJlIGRhdGEg4oCUIG5vIEFuZ3VsYXIgZGVwZW5kZW5jaWVzLiBUaGUgYGNyZWF0ZVZhbGlkYXRvcnMoKWAgZnVuY3Rpb25cbiAqIGluIHRoZSB2YWxpZGF0aW9uIG1vZHVsZSBjb252ZXJ0cyB0aGVzZSBpbnRvIEFuZ3VsYXIgYFZhbGlkYXRvckZuW11gLlxuICovXG5cbi8qKlxuICogRGVzY3JpYmVzIHZhbGlkYXRpb24gY29uc3RyYWludHMgZm9yIGEgc2luZ2xlIHJlcG9ydCBjb21wb25lbnQuXG4gKlxuICogRWFjaCBwcm9wZXJ0eSBtYXBzIHRvIGEgc3RhbmRhcmQgQW5ndWxhciB2YWxpZGF0b3IuXG4gKiBDdXN0b20gdmFsaWRhdG9ycyBjYW4gYmUgcmVmZXJlbmNlZCBieSBuYW1lIHZpYSBgY3VzdG9tYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0aW9uRGVmaW5pdGlvbiB7XG4gIC8qKiBXaGV0aGVyIHRoZSBmaWVsZCBpcyByZXF1aXJlZC4gKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuXG4gIC8qKiBNaW5pbXVtIG51bWVyaWMgdmFsdWUgKGZvciBudW1iZXIgaW5wdXRzKS4gKi9cbiAgbWluPzogbnVtYmVyO1xuXG4gIC8qKiBNYXhpbXVtIG51bWVyaWMgdmFsdWUgKGZvciBudW1iZXIgaW5wdXRzKS4gKi9cbiAgbWF4PzogbnVtYmVyO1xuXG4gIC8qKiBNaW5pbXVtIHN0cmluZyBsZW5ndGguICovXG4gIG1pbkxlbmd0aD86IG51bWJlcjtcblxuICAvKiogTWF4aW11bSBzdHJpbmcgbGVuZ3RoLiAqL1xuICBtYXhMZW5ndGg/OiBudW1iZXI7XG5cbiAgLyoqIFJlZ2V4IHBhdHRlcm4gdGhlIHZhbHVlIG11c3QgbWF0Y2guICovXG4gIHBhdHRlcm4/OiBzdHJpbmc7XG5cbiAgLyoqIE5hbWUgb2YgYSBjdXN0b20gdmFsaWRhdG9yIHJlZ2lzdGVyZWQgYnkgdGhlIGhvc3QgYXBwbGljYXRpb24uICovXG4gIGN1c3RvbT86IHN0cmluZztcblxuICAvKiogVXNlci1mYWNpbmcgbWVzc2FnZSBvdmVycmlkZXMsIGtleWVkIGJ5IHZhbGlkYXRvciBuYW1lLiAqL1xuICBtZXNzYWdlcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component category types.
|
|
3
|
+
*
|
|
4
|
+
* Categories organize components in the Designer's palette
|
|
5
|
+
* and help the runtime understand a component's role.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWNhdGVnb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvY29yZS9yZWdpc3RyeS9jb21wb25lbnQtY2F0ZWdvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbXBvbmVudCBjYXRlZ29yeSB0eXBlcy5cbiAqXG4gKiBDYXRlZ29yaWVzIG9yZ2FuaXplIGNvbXBvbmVudHMgaW4gdGhlIERlc2lnbmVyJ3MgcGFsZXR0ZVxuICogYW5kIGhlbHAgdGhlIHJ1bnRpbWUgdW5kZXJzdGFuZCBhIGNvbXBvbmVudCdzIHJvbGUuXG4gKi9cblxuLyoqXG4gKiBQcmVkZWZpbmVkIGNvbXBvbmVudCBjYXRlZ29yaWVzLlxuICpcbiAqIC0gYGlucHV0YCDigJQgRm9ybSBjb250cm9scyB0aGF0IGFjY2VwdCB1c2VyIGlucHV0ICh0ZXh0LCBkcm9wZG93biwgZGF0ZSwgZXRjLilcbiAqIC0gYGFjdGlvbmAg4oCUIEJ1dHRvbnMgYW5kIHRyaWdnZXJzIChzZWFyY2gsIHJlc2V0LCBleHBvcnQpXG4gKiAtIGBkaXNwbGF5YCDigJQgUmVhZC1vbmx5IGRpc3BsYXkgZWxlbWVudHMgKGxhYmVscywgS1BJcywgc3VtbWFyaWVzKVxuICogLSBgZGF0YWAg4oCUIERhdGEtYm91bmQgY29tcG9uZW50cyAoZ3JpZHMsIGNoYXJ0cylcbiAqIC0gYGxheW91dGAg4oCUIFN0cnVjdHVyYWwgY29tcG9uZW50cyAoc2VjdGlvbnMsIHRhYnMsIGRpdmlkZXJzKVxuICovXG5leHBvcnQgdHlwZSBDb21wb25lbnRDYXRlZ29yeSA9ICdpbnB1dCcgfCAnYWN0aW9uJyB8ICdkaXNwbGF5JyB8ICdkYXRhJyB8ICdsYXlvdXQnO1xuIl19
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ComponentRegistry — the scalable alternative to a giant `@switch` block.
|
|
3
|
+
*
|
|
4
|
+
* Instead of hard-coding component types in the renderer template:
|
|
5
|
+
* ```html
|
|
6
|
+
* @switch (comp.type) {
|
|
7
|
+
* @case ('input') { ... }
|
|
8
|
+
* @case ('dropdown') { ... }
|
|
9
|
+
* ...100 more cases...
|
|
10
|
+
* }
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* The registry maps type strings to Angular component classes:
|
|
14
|
+
* ```typescript
|
|
15
|
+
* registry.register({ type: 'input', component: RptInputComponent, ... });
|
|
16
|
+
* const meta = registry.resolve('input');
|
|
17
|
+
* // Use meta.component with ngComponentOutlet
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* **Host override**: The host ERP can register its own component for any type.
|
|
21
|
+
* If the host registers `type: 'dropdown'` with its PrimeNG-based dropdown,
|
|
22
|
+
* that component wins over the library's built-in dropdown.
|
|
23
|
+
*/
|
|
24
|
+
import { Injectable } from '@angular/core';
|
|
25
|
+
import * as i0 from "@angular/core";
|
|
26
|
+
/**
|
|
27
|
+
* Central registry for all report component types.
|
|
28
|
+
*
|
|
29
|
+
* The registry is a simple `Map<string, ReportingComponentMeta>`.
|
|
30
|
+
* It does not use DI for individual components — DI is used to
|
|
31
|
+
* provide the registry itself.
|
|
32
|
+
*
|
|
33
|
+
* **Registration order**: Last registration wins. This allows the host
|
|
34
|
+
* application to override built-in components by registering after
|
|
35
|
+
* the library's built-in registration.
|
|
36
|
+
*/
|
|
37
|
+
export class ComponentRegistry {
|
|
38
|
+
registry = new Map();
|
|
39
|
+
/**
|
|
40
|
+
* Register a component type.
|
|
41
|
+
*
|
|
42
|
+
* If a component with the same `type` is already registered,
|
|
43
|
+
* it is replaced. This enables host overrides.
|
|
44
|
+
*
|
|
45
|
+
* @param meta - Component metadata including the Angular component class.
|
|
46
|
+
*/
|
|
47
|
+
register(meta) {
|
|
48
|
+
this.registry.set(meta.type, meta);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Resolve a component type to its metadata.
|
|
52
|
+
*
|
|
53
|
+
* @param type - The component type key.
|
|
54
|
+
* @returns The metadata, or `undefined` if not registered.
|
|
55
|
+
*/
|
|
56
|
+
resolve(type) {
|
|
57
|
+
return this.registry.get(type);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Check whether a component type is registered.
|
|
61
|
+
*/
|
|
62
|
+
has(type) {
|
|
63
|
+
return this.registry.has(type);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Get all registered component metadata entries.
|
|
67
|
+
*/
|
|
68
|
+
getAll() {
|
|
69
|
+
return Array.from(this.registry.values());
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get registered components filtered by category.
|
|
73
|
+
*/
|
|
74
|
+
getByCategory(category) {
|
|
75
|
+
return this.getAll().filter(meta => meta.category === category);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Get all registered type keys.
|
|
79
|
+
*/
|
|
80
|
+
getRegisteredTypes() {
|
|
81
|
+
return Array.from(this.registry.keys());
|
|
82
|
+
}
|
|
83
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ComponentRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
84
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ComponentRegistry, providedIn: 'root' });
|
|
85
|
+
}
|
|
86
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ComponentRegistry, decorators: [{
|
|
87
|
+
type: Injectable,
|
|
88
|
+
args: [{ providedIn: 'root' }]
|
|
89
|
+
}] });
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvY29yZS9yZWdpc3RyeS9jb21wb25lbnQtcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDOztBQXFDakQ7Ozs7Ozs7Ozs7R0FVRztBQUVILE1BQU0sT0FBTyxpQkFBaUI7SUFDWCxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQWtDLENBQUM7SUFFdEU7Ozs7Ozs7T0FPRztJQUNILFFBQVEsQ0FBQyxJQUE0QjtRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sQ0FBQyxJQUFZO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLElBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWEsQ0FBQyxRQUEyQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQjtRQUNoQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7d0dBbkRVLGlCQUFpQjs0R0FBakIsaUJBQWlCLGNBREosTUFBTTs7NEZBQ25CLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbXBvbmVudFJlZ2lzdHJ5IOKAlCB0aGUgc2NhbGFibGUgYWx0ZXJuYXRpdmUgdG8gYSBnaWFudCBgQHN3aXRjaGAgYmxvY2suXG4gKlxuICogSW5zdGVhZCBvZiBoYXJkLWNvZGluZyBjb21wb25lbnQgdHlwZXMgaW4gdGhlIHJlbmRlcmVyIHRlbXBsYXRlOlxuICogYGBgaHRtbFxuICogQHN3aXRjaCAoY29tcC50eXBlKSB7XG4gKiAgIEBjYXNlICgnaW5wdXQnKSB7IC4uLiB9XG4gKiAgIEBjYXNlICgnZHJvcGRvd24nKSB7IC4uLiB9XG4gKiAgIC4uLjEwMCBtb3JlIGNhc2VzLi4uXG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBUaGUgcmVnaXN0cnkgbWFwcyB0eXBlIHN0cmluZ3MgdG8gQW5ndWxhciBjb21wb25lbnQgY2xhc3NlczpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlZ2lzdHJ5LnJlZ2lzdGVyKHsgdHlwZTogJ2lucHV0JywgY29tcG9uZW50OiBScHRJbnB1dENvbXBvbmVudCwgLi4uIH0pO1xuICogY29uc3QgbWV0YSA9IHJlZ2lzdHJ5LnJlc29sdmUoJ2lucHV0Jyk7XG4gKiAvLyBVc2UgbWV0YS5jb21wb25lbnQgd2l0aCBuZ0NvbXBvbmVudE91dGxldFxuICogYGBgXG4gKlxuICogKipIb3N0IG92ZXJyaWRlKio6IFRoZSBob3N0IEVSUCBjYW4gcmVnaXN0ZXIgaXRzIG93biBjb21wb25lbnQgZm9yIGFueSB0eXBlLlxuICogSWYgdGhlIGhvc3QgcmVnaXN0ZXJzIGB0eXBlOiAnZHJvcGRvd24nYCB3aXRoIGl0cyBQcmltZU5HLWJhc2VkIGRyb3Bkb3duLFxuICogdGhhdCBjb21wb25lbnQgd2lucyBvdmVyIHRoZSBsaWJyYXJ5J3MgYnVpbHQtaW4gZHJvcGRvd24uXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50Q2F0ZWdvcnkgfSBmcm9tICcuL2NvbXBvbmVudC1jYXRlZ29yeSc7XG5pbXBvcnQgeyBQcm9wZXJ0eURlZmluaXRpb24gfSBmcm9tICcuL3Byb3BlcnR5LWRlZmluaXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgUmVwb3J0Q29tcG9uZW50RGVmaW5pdGlvbiB9IGZyb20gJy4uL21vZGVscy9yZXBvcnQtY29tcG9uZW50Lm1vZGVsJztcblxuLyoqXG4gKiBNZXRhZGF0YSBkZXNjcmliaW5nIGEgcmVnaXN0ZXJlZCBjb21wb25lbnQgdHlwZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRpbmdDb21wb25lbnRNZXRhIHtcbiAgLyoqIFVuaXF1ZSB0eXBlIGtleSAoZS5nLiwgJ2lucHV0JywgJ2Ryb3Bkb3duJywgJ2RhdGUnLCAnY3VzdG9tZXItc2VsZWN0b3InKS4gKi9cbiAgdHlwZTogc3RyaW5nO1xuXG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgRGVzaWduZXIgcGFsZXR0ZS4gKi9cbiAgZGlzcGxheU5hbWU6IHN0cmluZztcblxuICAvKiogQ2F0ZWdvcnkgZm9yIGdyb3VwaW5nIGluIHRoZSBEZXNpZ25lciBwYWxldHRlLiAqL1xuICBjYXRlZ29yeTogQ29tcG9uZW50Q2F0ZWdvcnk7XG5cbiAgLyoqIE9wdGlvbmFsIGljb24gaWRlbnRpZmllciBmb3IgdGhlIERlc2lnbmVyIHBhbGV0dGUuICovXG4gIGljb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZhY3RvcnkgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIGEgZGVmYXVsdCBgUmVwb3J0Q29tcG9uZW50RGVmaW5pdGlvbmBcbiAgICogZm9yIHRoaXMgdHlwZS4gVXNlZCB3aGVuIGRyYWdnaW5nIGEgbmV3IGNvbXBvbmVudCBvbnRvIHRoZSBjYW52YXMuXG4gICAqL1xuICBjcmVhdGVEZWZhdWx0Q29uZmlnKCk6IFBhcnRpYWw8UmVwb3J0Q29tcG9uZW50RGVmaW5pdGlvbj47XG5cbiAgLyoqIFRoZSBBbmd1bGFyIGNvbXBvbmVudCBjbGFzcyB0byByZW5kZXIgYXQgcnVudGltZS4gKi9cbiAgY29tcG9uZW50OiBUeXBlPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBQcm9wZXJ0eSBzY2hlbWEg4oCUIGRlc2NyaWJlcyBjb25maWd1cmFibGUgcHJvcGVydGllcyBmb3IgdGhlXG4gICAqIERlc2lnbmVyJ3MgcHJvcGVydHkgZWRpdG9yLlxuICAgKi9cbiAgcHJvcGVydHlTY2hlbWE6IFByb3BlcnR5RGVmaW5pdGlvbltdO1xufVxuXG4vKipcbiAqIENlbnRyYWwgcmVnaXN0cnkgZm9yIGFsbCByZXBvcnQgY29tcG9uZW50IHR5cGVzLlxuICpcbiAqIFRoZSByZWdpc3RyeSBpcyBhIHNpbXBsZSBgTWFwPHN0cmluZywgUmVwb3J0aW5nQ29tcG9uZW50TWV0YT5gLlxuICogSXQgZG9lcyBub3QgdXNlIERJIGZvciBpbmRpdmlkdWFsIGNvbXBvbmVudHMg4oCUIERJIGlzIHVzZWQgdG9cbiAqIHByb3ZpZGUgdGhlIHJlZ2lzdHJ5IGl0c2VsZi5cbiAqXG4gKiAqKlJlZ2lzdHJhdGlvbiBvcmRlcioqOiBMYXN0IHJlZ2lzdHJhdGlvbiB3aW5zLiBUaGlzIGFsbG93cyB0aGUgaG9zdFxuICogYXBwbGljYXRpb24gdG8gb3ZlcnJpZGUgYnVpbHQtaW4gY29tcG9uZW50cyBieSByZWdpc3RlcmluZyBhZnRlclxuICogdGhlIGxpYnJhcnkncyBidWlsdC1pbiByZWdpc3RyYXRpb24uXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50UmVnaXN0cnkge1xuICBwcml2YXRlIHJlYWRvbmx5IHJlZ2lzdHJ5ID0gbmV3IE1hcDxzdHJpbmcsIFJlcG9ydGluZ0NvbXBvbmVudE1ldGE+KCk7XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGEgY29tcG9uZW50IHR5cGUuXG4gICAqXG4gICAqIElmIGEgY29tcG9uZW50IHdpdGggdGhlIHNhbWUgYHR5cGVgIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCxcbiAgICogaXQgaXMgcmVwbGFjZWQuIFRoaXMgZW5hYmxlcyBob3N0IG92ZXJyaWRlcy5cbiAgICpcbiAgICogQHBhcmFtIG1ldGEgLSBDb21wb25lbnQgbWV0YWRhdGEgaW5jbHVkaW5nIHRoZSBBbmd1bGFyIGNvbXBvbmVudCBjbGFzcy5cbiAgICovXG4gIHJlZ2lzdGVyKG1ldGE6IFJlcG9ydGluZ0NvbXBvbmVudE1ldGEpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdHJ5LnNldChtZXRhLnR5cGUsIG1ldGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgYSBjb21wb25lbnQgdHlwZSB0byBpdHMgbWV0YWRhdGEuXG4gICAqXG4gICAqIEBwYXJhbSB0eXBlIC0gVGhlIGNvbXBvbmVudCB0eXBlIGtleS5cbiAgICogQHJldHVybnMgVGhlIG1ldGFkYXRhLCBvciBgdW5kZWZpbmVkYCBpZiBub3QgcmVnaXN0ZXJlZC5cbiAgICovXG4gIHJlc29sdmUodHlwZTogc3RyaW5nKTogUmVwb3J0aW5nQ29tcG9uZW50TWV0YSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucmVnaXN0cnkuZ2V0KHR5cGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgYSBjb21wb25lbnQgdHlwZSBpcyByZWdpc3RlcmVkLlxuICAgKi9cbiAgaGFzKHR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5Lmhhcyh0eXBlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIHJlZ2lzdGVyZWQgY29tcG9uZW50IG1ldGFkYXRhIGVudHJpZXMuXG4gICAqL1xuICBnZXRBbGwoKTogUmVwb3J0aW5nQ29tcG9uZW50TWV0YVtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnJlZ2lzdHJ5LnZhbHVlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcmVnaXN0ZXJlZCBjb21wb25lbnRzIGZpbHRlcmVkIGJ5IGNhdGVnb3J5LlxuICAgKi9cbiAgZ2V0QnlDYXRlZ29yeShjYXRlZ29yeTogQ29tcG9uZW50Q2F0ZWdvcnkpOiBSZXBvcnRpbmdDb21wb25lbnRNZXRhW10ge1xuICAgIHJldHVybiB0aGlzLmdldEFsbCgpLmZpbHRlcihtZXRhID0+IG1ldGEuY2F0ZWdvcnkgPT09IGNhdGVnb3J5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIHJlZ2lzdGVyZWQgdHlwZSBrZXlzLlxuICAgKi9cbiAgZ2V0UmVnaXN0ZXJlZFR5cGVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnJlZ2lzdHJ5LmtleXMoKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { ComponentRegistry } from './component-registry';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9jb3JlL3JlZ2lzdHJ5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ29tcG9uZW50UmVnaXN0cnkgfSBmcm9tICcuL2NvbXBvbmVudC1yZWdpc3RyeSc7XG5leHBvcnQgdHlwZSB7IFJlcG9ydGluZ0NvbXBvbmVudE1ldGEgfSBmcm9tICcuL2NvbXBvbmVudC1yZWdpc3RyeSc7XG5leHBvcnQgdHlwZSB7IENvbXBvbmVudENhdGVnb3J5IH0gZnJvbSAnLi9jb21wb25lbnQtY2F0ZWdvcnknO1xuZXhwb3J0IHR5cGUgeyBQcm9wZXJ0eURlZmluaXRpb24sIFByb3BlcnR5T3B0aW9uIH0gZnJvbSAnLi9wcm9wZXJ0eS1kZWZpbml0aW9uLm1vZGVsJztcbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Property definitions for the Designer's property editor.
|
|
3
|
+
*
|
|
4
|
+
* Each registered component provides a `propertySchema` describing
|
|
5
|
+
* its configurable properties. The Designer's property editor uses
|
|
6
|
+
* this schema to dynamically generate an editing form — the property
|
|
7
|
+
* editor is itself metadata-driven.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZGVmaW5pdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvcmVnaXN0cnkvcHJvcGVydHktZGVmaW5pdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQcm9wZXJ0eSBkZWZpbml0aW9ucyBmb3IgdGhlIERlc2lnbmVyJ3MgcHJvcGVydHkgZWRpdG9yLlxuICpcbiAqIEVhY2ggcmVnaXN0ZXJlZCBjb21wb25lbnQgcHJvdmlkZXMgYSBgcHJvcGVydHlTY2hlbWFgIGRlc2NyaWJpbmdcbiAqIGl0cyBjb25maWd1cmFibGUgcHJvcGVydGllcy4gVGhlIERlc2lnbmVyJ3MgcHJvcGVydHkgZWRpdG9yIHVzZXNcbiAqIHRoaXMgc2NoZW1hIHRvIGR5bmFtaWNhbGx5IGdlbmVyYXRlIGFuIGVkaXRpbmcgZm9ybSDigJQgdGhlIHByb3BlcnR5XG4gKiBlZGl0b3IgaXMgaXRzZWxmIG1ldGFkYXRhLWRyaXZlbi5cbiAqL1xuXG4vKipcbiAqIERlc2NyaWJlcyBhIHNpbmdsZSBjb25maWd1cmFibGUgcHJvcGVydHkgb2YgYSBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlEZWZpbml0aW9uIHtcbiAgLyoqIFByb3BlcnR5IGtleSAobWF0Y2hlcyBhIGtleSBpbiBgUmVwb3J0Q29tcG9uZW50RGVmaW5pdGlvbi5wcm9wZXJ0aWVzYCkuICovXG4gIGtleTogc3RyaW5nO1xuXG4gIC8qKiBEaXNwbGF5IGxhYmVsIGluIHRoZSBwcm9wZXJ0eSBlZGl0b3IuICovXG4gIGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqIFByb3BlcnR5IGRhdGEgdHlwZSDigJQgZGV0ZXJtaW5lcyB3aGljaCBlZGl0b3IgY29udHJvbCBpcyByZW5kZXJlZC4gKi9cbiAgdHlwZTogJ3N0cmluZycgfCAnbnVtYmVyJyB8ICdib29sZWFuJyB8ICdzZWxlY3QnIHwgJ2NvbG9yJyB8ICdkYXRhc291cmNlJyB8ICd2YWxpZGF0aW9uJyB8ICdqc29uJztcblxuICAvKiogRGVmYXVsdCB2YWx1ZSBmb3IgbmV3IGNvbXBvbmVudHMuICovXG4gIGRlZmF1bHRWYWx1ZT86IHVua25vd247XG5cbiAgLyoqIE9wdGlvbnMgZm9yIGBzZWxlY3RgIHR5cGUgcHJvcGVydGllcy4gKi9cbiAgb3B0aW9ucz86IFByb3BlcnR5T3B0aW9uW107XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyBwcm9wZXJ0eSBpcyByZXF1aXJlZC4gKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuXG4gIC8qKiBHcm91cGluZyBsYWJlbCBmb3Igb3JnYW5pemluZyBwcm9wZXJ0aWVzIGluIHRoZSBlZGl0b3IuICovXG4gIGdyb3VwPzogc3RyaW5nO1xuXG4gIC8qKiBIZWxwIHRleHQgLyB0b29sdGlwIGZvciB0aGUgcHJvcGVydHkgZWRpdG9yLiAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIHNpbmdsZSBvcHRpb24gZm9yIHNlbGVjdC10eXBlIHByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlPcHRpb24ge1xuICAvKiogVmFsdWUgc3RvcmVkIGluIG1ldGFkYXRhLiAqL1xuICBrZXk6IHN0cmluZztcblxuICAvKiogRGlzcGxheSBsYWJlbCBpbiB0aGUgZWRpdG9yIGRyb3Bkb3duLiAqL1xuICBsYWJlbDogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { FormControl, FormGroup } from '@angular/forms';
|
|
3
|
+
import { createValidators } from '../validation/validation-factory';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* DynamicFormBuilder converts metadata definitions into Angular Reactive Form controls.
|
|
7
|
+
*
|
|
8
|
+
* Follows the official Angular Dynamic Forms pattern:
|
|
9
|
+
* ReportComponentDefinition[] (metadata) -> DynamicFormBuilder -> FormGroup (runtime model)
|
|
10
|
+
*/
|
|
11
|
+
export class DynamicFormBuilder {
|
|
12
|
+
/**
|
|
13
|
+
* Constructs an Angular FormGroup from a list of component definitions.
|
|
14
|
+
*
|
|
15
|
+
* Only components with a valid `key` property generate form controls.
|
|
16
|
+
*
|
|
17
|
+
* @param components - Array of report component definitions.
|
|
18
|
+
* @param initialValues - Optional dictionary of initial control values by key.
|
|
19
|
+
* @returns Configured Angular FormGroup.
|
|
20
|
+
*/
|
|
21
|
+
toFormGroup(components, initialValues = {}) {
|
|
22
|
+
const group = {};
|
|
23
|
+
for (const comp of components) {
|
|
24
|
+
if (!comp.key) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
const defaultValue = initialValues[comp.key] ??
|
|
28
|
+
comp.properties?.['defaultValue'] ??
|
|
29
|
+
(comp.type === 'checkbox' ? false : '');
|
|
30
|
+
const isDisabled = comp.enabled === false;
|
|
31
|
+
const validators = createValidators(comp.validation);
|
|
32
|
+
group[comp.key] = new FormControl({
|
|
33
|
+
value: defaultValue,
|
|
34
|
+
disabled: isDisabled,
|
|
35
|
+
}, { validators });
|
|
36
|
+
}
|
|
37
|
+
return new FormGroup(group);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Extracts raw values from a FormGroup, including disabled controls.
|
|
41
|
+
*
|
|
42
|
+
* @param form - The FormGroup to extract from.
|
|
43
|
+
* @returns Key-value dictionary of all control values.
|
|
44
|
+
*/
|
|
45
|
+
extractValues(form) {
|
|
46
|
+
return form.getRawValue();
|
|
47
|
+
}
|
|
48
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DynamicFormBuilder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
49
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DynamicFormBuilder, providedIn: 'root' });
|
|
50
|
+
}
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DynamicFormBuilder, decorators: [{
|
|
52
|
+
type: Injectable,
|
|
53
|
+
args: [{ providedIn: 'root' }]
|
|
54
|
+
}] });
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWJ1aWxkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvc2VydmljZXMvZHluYW1pYy1mb3JtLWJ1aWxkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRXBFOzs7OztHQUtHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQUM3Qjs7Ozs7Ozs7T0FRRztJQUNILFdBQVcsQ0FDVCxVQUF1QyxFQUN2QyxnQkFBeUMsRUFBRTtRQUUzQyxNQUFNLEtBQUssR0FBZ0MsRUFBRSxDQUFDO1FBRTlDLEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDZCxTQUFTO1lBQ1gsQ0FBQztZQUVELE1BQU0sWUFBWSxHQUNoQixhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLGNBQWMsQ0FBQztnQkFDakMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUUxQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQztZQUUxQyxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFckQsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLFdBQVcsQ0FDL0I7Z0JBQ0UsS0FBSyxFQUFFLFlBQVk7Z0JBQ25CLFFBQVEsRUFBRSxVQUFVO2FBQ3JCLEVBQ0QsRUFBRSxVQUFVLEVBQUUsQ0FDZixDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUFDLElBQWU7UUFDM0IsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDNUIsQ0FBQzt3R0FsRFUsa0JBQWtCOzRHQUFsQixrQkFBa0IsY0FETCxNQUFNOzs0RkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSZXBvcnRDb21wb25lbnREZWZpbml0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3JlcG9ydC1jb21wb25lbnQubW9kZWwnO1xuaW1wb3J0IHsgY3JlYXRlVmFsaWRhdG9ycyB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi1mYWN0b3J5JztcblxuLyoqXG4gKiBEeW5hbWljRm9ybUJ1aWxkZXIgY29udmVydHMgbWV0YWRhdGEgZGVmaW5pdGlvbnMgaW50byBBbmd1bGFyIFJlYWN0aXZlIEZvcm0gY29udHJvbHMuXG4gKlxuICogRm9sbG93cyB0aGUgb2ZmaWNpYWwgQW5ndWxhciBEeW5hbWljIEZvcm1zIHBhdHRlcm46XG4gKiBSZXBvcnRDb21wb25lbnREZWZpbml0aW9uW10gKG1ldGFkYXRhKSAtPiBEeW5hbWljRm9ybUJ1aWxkZXIgLT4gRm9ybUdyb3VwIChydW50aW1lIG1vZGVsKVxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtQnVpbGRlciB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGFuIEFuZ3VsYXIgRm9ybUdyb3VwIGZyb20gYSBsaXN0IG9mIGNvbXBvbmVudCBkZWZpbml0aW9ucy5cbiAgICpcbiAgICogT25seSBjb21wb25lbnRzIHdpdGggYSB2YWxpZCBga2V5YCBwcm9wZXJ0eSBnZW5lcmF0ZSBmb3JtIGNvbnRyb2xzLlxuICAgKlxuICAgKiBAcGFyYW0gY29tcG9uZW50cyAtIEFycmF5IG9mIHJlcG9ydCBjb21wb25lbnQgZGVmaW5pdGlvbnMuXG4gICAqIEBwYXJhbSBpbml0aWFsVmFsdWVzIC0gT3B0aW9uYWwgZGljdGlvbmFyeSBvZiBpbml0aWFsIGNvbnRyb2wgdmFsdWVzIGJ5IGtleS5cbiAgICogQHJldHVybnMgQ29uZmlndXJlZCBBbmd1bGFyIEZvcm1Hcm91cC5cbiAgICovXG4gIHRvRm9ybUdyb3VwKFxuICAgIGNvbXBvbmVudHM6IFJlcG9ydENvbXBvbmVudERlZmluaXRpb25bXSxcbiAgICBpbml0aWFsVmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9XG4gICk6IEZvcm1Hcm91cCB7XG4gICAgY29uc3QgZ3JvdXA6IFJlY29yZDxzdHJpbmcsIEZvcm1Db250cm9sPiA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBjb21wIG9mIGNvbXBvbmVudHMpIHtcbiAgICAgIGlmICghY29tcC5rZXkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9XG4gICAgICAgIGluaXRpYWxWYWx1ZXNbY29tcC5rZXldID8/XG4gICAgICAgIGNvbXAucHJvcGVydGllcz8uWydkZWZhdWx0VmFsdWUnXSA/P1xuICAgICAgICAoY29tcC50eXBlID09PSAnY2hlY2tib3gnID8gZmFsc2UgOiAnJyk7XG5cbiAgICAgIGNvbnN0IGlzRGlzYWJsZWQgPSBjb21wLmVuYWJsZWQgPT09IGZhbHNlO1xuXG4gICAgICBjb25zdCB2YWxpZGF0b3JzID0gY3JlYXRlVmFsaWRhdG9ycyhjb21wLnZhbGlkYXRpb24pO1xuXG4gICAgICBncm91cFtjb21wLmtleV0gPSBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZTogZGVmYXVsdFZhbHVlLFxuICAgICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxuICAgICAgICB9LFxuICAgICAgICB7IHZhbGlkYXRvcnMgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEZvcm1Hcm91cChncm91cCk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdHMgcmF3IHZhbHVlcyBmcm9tIGEgRm9ybUdyb3VwLCBpbmNsdWRpbmcgZGlzYWJsZWQgY29udHJvbHMuXG4gICAqXG4gICAqIEBwYXJhbSBmb3JtIC0gVGhlIEZvcm1Hcm91cCB0byBleHRyYWN0IGZyb20uXG4gICAqIEByZXR1cm5zIEtleS12YWx1ZSBkaWN0aW9uYXJ5IG9mIGFsbCBjb250cm9sIHZhbHVlcy5cbiAgICovXG4gIGV4dHJhY3RWYWx1ZXMoZm9ybTogRm9ybUdyb3VwKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiBmb3JtLmdldFJhd1ZhbHVlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { DynamicFormBuilder } from './dynamic-form-builder.service';
|
|
2
|
+
export { ReportSessionContextService } from './report-session-context.service';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgRHluYW1pY0Zvcm1CdWlsZGVyIH0gZnJvbSAnLi9keW5hbWljLWZvcm0tYnVpbGRlci5zZXJ2aWNlJztcbmV4cG9ydCB7IFJlcG9ydFNlc3Npb25Db250ZXh0U2VydmljZSB9IGZyb20gJy4vcmVwb3J0LXNlc3Npb24tY29udGV4dC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgU2Vzc2lvblBhcmFtTWF0Y2gsXG4gIERlcml2ZWRQYXJhbWV0ZXJzUmVzdWx0LFxufSBmcm9tICcuL3JlcG9ydC1zZXNzaW9uLWNvbnRleHQuc2VydmljZSc7XG5cbiJdfQ==
|