oasys-lib 2.4.1 → 2.5.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.
Files changed (24) hide show
  1. package/esm2022/lib/components/form/errors-summary/errors-summary-item/form-errors-summary-item.component.mjs +47 -0
  2. package/esm2022/lib/components/form/errors-summary/errors-summary-title/form-errors-summary-title.component.mjs +21 -0
  3. package/esm2022/lib/components/form/errors-summary/form-errors-summary.component.mjs +30 -0
  4. package/esm2022/lib/components/form/errors-summary/index.mjs +4 -0
  5. package/esm2022/lib/components/form/form-group/index.mjs +2 -2
  6. package/esm2022/public-api.mjs +2 -1
  7. package/fesm2022/oasys-lib.mjs +81 -1
  8. package/fesm2022/oasys-lib.mjs.map +1 -1
  9. package/lib/components/form/errors-summary/errors-summary-item/form-errors-summary-item.component.d.ts +12 -0
  10. package/lib/components/form/errors-summary/errors-summary-item/form-errors-summary-item.component.d.ts.map +1 -0
  11. package/lib/components/form/errors-summary/errors-summary-title/form-errors-summary-title.component.d.ts +6 -0
  12. package/lib/components/form/errors-summary/errors-summary-title/form-errors-summary-title.component.d.ts.map +1 -0
  13. package/lib/components/form/errors-summary/form-errors-summary.component.d.ts +13 -0
  14. package/lib/components/form/errors-summary/form-errors-summary.component.d.ts.map +1 -0
  15. package/lib/components/form/errors-summary/index.d.ts +4 -0
  16. package/lib/components/form/errors-summary/index.d.ts.map +1 -0
  17. package/lib/components/form/form-group/index.d.ts +1 -1
  18. package/lib/components/form/form-group/index.d.ts.map +1 -1
  19. package/package.json +1 -1
  20. package/public-api.d.ts +1 -0
  21. package/public-api.d.ts.map +1 -1
  22. package/src/assets/bloomandwild/variables.css +1 -1
  23. package/src/assets/bloomon/variables.css +1 -1
  24. package/src/assets/global/scss-breakpoints.scss +1 -1
@@ -0,0 +1,47 @@
1
+ import { Component, computed, input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { OasysLayoutModule } from '../../../layout';
4
+ import { OasysAlertModule } from '../../../alert';
5
+ import * as i0 from "@angular/core";
6
+ export class OasysFormErrorsSummaryItemComponent {
7
+ abstractControl = input();
8
+ error_messages = input({});
9
+ focusOnControl() {
10
+ const control = this.abstractControl();
11
+ // Log the control name - it's stored in the parent FormGroup
12
+ if (control?.parent) {
13
+ const controlName = Object.keys(control.parent.controls).find((key) => control.parent?.get(key) === control);
14
+ if (controlName) {
15
+ // Find the ui-text-input component with the matching ng-reflect-name
16
+ const textInputComponent = document.querySelector(`ui-text-input[ng-reflect-name="${controlName}"]`);
17
+ if (textInputComponent) {
18
+ // Find the input element inside the ui-text-input component
19
+ const inputElement = textInputComponent.querySelector('input');
20
+ if (inputElement) {
21
+ inputElement.focus();
22
+ inputElement.scrollIntoView({ behavior: 'smooth', block: 'center' });
23
+ }
24
+ }
25
+ }
26
+ }
27
+ }
28
+ errorMessage = computed(() => {
29
+ const currentErrors = this.abstractControl()?.errors;
30
+ const messages = this.error_messages() ?? {};
31
+ if (!currentErrors) {
32
+ return undefined;
33
+ }
34
+ const errorKeys = Object.keys(currentErrors);
35
+ const firstErrorKey = errorKeys.length ? errorKeys[0] : undefined;
36
+ return firstErrorKey ? messages[firstErrorKey] : undefined;
37
+ });
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysFormErrorsSummaryItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: OasysFormErrorsSummaryItemComponent, isStandalone: true, selector: "ui-form-errors-summary-item", inputs: { abstractControl: { classPropertyName: "abstractControl", publicName: "abstractControl", isSignal: true, isRequired: false, transformFunction: null }, error_messages: { classPropertyName: "error_messages", publicName: "error_messages", isSignal: true, isRequired: false, transformFunction: null } }, host: { styleAttribute: "cursor: pointer;" }, ngImport: i0, template: "@if (errorMessage() && !!abstractControl()?.errors) {\n <li\n class=\"text-link--paragraph text-body--supporting\"\n (click)=\"focusOnControl()\"\n (keydown.enter)=\"focusOnControl()\"\n tabindex=\"0\"\n aria-live=\"polite\"\n aria-labelledby=\"errors-summary-title errors-summary-item\"\n >\n <span id=\"errors-summary-item\">\n {{ errorMessage() }}\n </span>\n </li>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: OasysLayoutModule }, { kind: "ngmodule", type: OasysAlertModule }] });
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysFormErrorsSummaryItemComponent, decorators: [{
42
+ type: Component,
43
+ args: [{ selector: 'ui-form-errors-summary-item', standalone: true, imports: [CommonModule, OasysLayoutModule, OasysAlertModule], host: {
44
+ style: 'cursor: pointer;',
45
+ }, template: "@if (errorMessage() && !!abstractControl()?.errors) {\n <li\n class=\"text-link--paragraph text-body--supporting\"\n (click)=\"focusOnControl()\"\n (keydown.enter)=\"focusOnControl()\"\n tabindex=\"0\"\n aria-live=\"polite\"\n aria-labelledby=\"errors-summary-title errors-summary-item\"\n >\n <span id=\"errors-summary-item\">\n {{ errorMessage() }}\n </span>\n </li>\n}\n" }]
46
+ }] });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvcnMtc3VtbWFyeS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29hc3lzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9lcnJvcnMtc3VtbWFyeS9lcnJvcnMtc3VtbWFyeS1pdGVtL2Zvcm0tZXJyb3JzLXN1bW1hcnktaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZXJyb3JzLXN1bW1hcnkvZXJyb3JzLXN1bW1hcnktaXRlbS9mb3JtLWVycm9ycy1zdW1tYXJ5LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFhbEQsTUFBTSxPQUFPLG1DQUFtQztJQUM5QyxlQUFlLEdBQUcsS0FBSyxFQUFtQixDQUFDO0lBQzNDLGNBQWMsR0FBRyxLQUFLLENBQW1DLEVBQUUsQ0FBQyxDQUFDO0lBRTdELGNBQWM7UUFDWixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFdkMsNkRBQTZEO1FBQzdELElBQUksT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQzNELENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxPQUFPLENBQzlDLENBQUM7WUFFRixJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNoQixxRUFBcUU7Z0JBQ3JFLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FDL0Msa0NBQWtDLFdBQVcsSUFBSSxDQUNsRCxDQUFDO2dCQUVGLElBQUksa0JBQWtCLEVBQUUsQ0FBQztvQkFDdkIsNERBQTREO29CQUM1RCxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQy9ELElBQUksWUFBWSxFQUFFLENBQUM7d0JBQ2pCLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDckIsWUFBWSxDQUFDLGNBQWMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7b0JBQ3ZFLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVksR0FBRyxRQUFRLENBQUMsR0FBdUIsRUFBRTtRQUMvQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxDQUFDO1FBQ3JELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0MsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ25CLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2xFLE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUM3RCxDQUFDLENBQUMsQ0FBQzt3R0F6Q1EsbUNBQW1DOzRGQUFuQyxtQ0FBbUMsMGJDakJoRCx1WkFjQSx5RERGWSxZQUFZLDhCQUFFLGlCQUFpQiw4QkFBRSxnQkFBZ0I7OzRGQUtoRCxtQ0FBbUM7a0JBVi9DLFNBQVM7K0JBQ0UsNkJBQTZCLGNBRzNCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsQ0FBQyxRQUN0RDt3QkFDSixLQUFLLEVBQUUsa0JBQWtCO3FCQUMxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT2FzeXNMYXlvdXRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9sYXlvdXQnO1xuaW1wb3J0IHsgT2FzeXNBbGVydE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2FsZXJ0JztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvclR5cGVzIH0gZnJvbSAnLi4vLi4vZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1aS1mb3JtLWVycm9ycy1zdW1tYXJ5LWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1lcnJvcnMtc3VtbWFyeS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiAnJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgT2FzeXNMYXlvdXRNb2R1bGUsIE9hc3lzQWxlcnRNb2R1bGVdLFxuICBob3N0OiB7XG4gICAgc3R5bGU6ICdjdXJzb3I6IHBvaW50ZXI7JyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgT2FzeXNGb3JtRXJyb3JzU3VtbWFyeUl0ZW1Db21wb25lbnQge1xuICBhYnN0cmFjdENvbnRyb2wgPSBpbnB1dDxBYnN0cmFjdENvbnRyb2w+KCk7XG4gIGVycm9yX21lc3NhZ2VzID0gaW5wdXQ8VmFsaWRhdGlvbkVycm9yVHlwZXMgfCB1bmRlZmluZWQ+KHt9KTtcblxuICBmb2N1c09uQ29udHJvbCgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5hYnN0cmFjdENvbnRyb2woKTtcblxuICAgIC8vIExvZyB0aGUgY29udHJvbCBuYW1lIC0gaXQncyBzdG9yZWQgaW4gdGhlIHBhcmVudCBGb3JtR3JvdXBcbiAgICBpZiAoY29udHJvbD8ucGFyZW50KSB7XG4gICAgICBjb25zdCBjb250cm9sTmFtZSA9IE9iamVjdC5rZXlzKGNvbnRyb2wucGFyZW50LmNvbnRyb2xzKS5maW5kKFxuICAgICAgICAoa2V5KSA9PiBjb250cm9sLnBhcmVudD8uZ2V0KGtleSkgPT09IGNvbnRyb2wsXG4gICAgICApO1xuXG4gICAgICBpZiAoY29udHJvbE5hbWUpIHtcbiAgICAgICAgLy8gRmluZCB0aGUgdWktdGV4dC1pbnB1dCBjb21wb25lbnQgd2l0aCB0aGUgbWF0Y2hpbmcgbmctcmVmbGVjdC1uYW1lXG4gICAgICAgIGNvbnN0IHRleHRJbnB1dENvbXBvbmVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgYHVpLXRleHQtaW5wdXRbbmctcmVmbGVjdC1uYW1lPVwiJHtjb250cm9sTmFtZX1cIl1gLFxuICAgICAgICApO1xuXG4gICAgICAgIGlmICh0ZXh0SW5wdXRDb21wb25lbnQpIHtcbiAgICAgICAgICAvLyBGaW5kIHRoZSBpbnB1dCBlbGVtZW50IGluc2lkZSB0aGUgdWktdGV4dC1pbnB1dCBjb21wb25lbnRcbiAgICAgICAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSB0ZXh0SW5wdXRDb21wb25lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcbiAgICAgICAgICBpZiAoaW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICBpbnB1dEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIGlucHV0RWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICdjZW50ZXInIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGVycm9yTWVzc2FnZSA9IGNvbXB1dGVkKCgpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRFcnJvcnMgPSB0aGlzLmFic3RyYWN0Q29udHJvbCgpPy5lcnJvcnM7XG4gICAgY29uc3QgbWVzc2FnZXMgPSB0aGlzLmVycm9yX21lc3NhZ2VzKCkgPz8ge307XG5cbiAgICBpZiAoIWN1cnJlbnRFcnJvcnMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGVycm9yS2V5cyA9IE9iamVjdC5rZXlzKGN1cnJlbnRFcnJvcnMpO1xuICAgIGNvbnN0IGZpcnN0RXJyb3JLZXkgPSBlcnJvcktleXMubGVuZ3RoID8gZXJyb3JLZXlzWzBdIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiBmaXJzdEVycm9yS2V5ID8gbWVzc2FnZXNbZmlyc3RFcnJvcktleV0gOiB1bmRlZmluZWQ7XG4gIH0pO1xufVxuIiwiQGlmIChlcnJvck1lc3NhZ2UoKSAmJiAhIWFic3RyYWN0Q29udHJvbCgpPy5lcnJvcnMpIHtcbiAgPGxpXG4gICAgY2xhc3M9XCJ0ZXh0LWxpbmstLXBhcmFncmFwaCB0ZXh0LWJvZHktLXN1cHBvcnRpbmdcIlxuICAgIChjbGljayk9XCJmb2N1c09uQ29udHJvbCgpXCJcbiAgICAoa2V5ZG93bi5lbnRlcik9XCJmb2N1c09uQ29udHJvbCgpXCJcbiAgICB0YWJpbmRleD1cIjBcIlxuICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgYXJpYS1sYWJlbGxlZGJ5PVwiZXJyb3JzLXN1bW1hcnktdGl0bGUgZXJyb3JzLXN1bW1hcnktaXRlbVwiXG4gID5cbiAgICA8c3BhbiBpZD1cImVycm9ycy1zdW1tYXJ5LWl0ZW1cIj5cbiAgICAgIHt7IGVycm9yTWVzc2FnZSgpIH19XG4gICAgPC9zcGFuPlxuICA8L2xpPlxufVxuIl19
@@ -0,0 +1,21 @@
1
+ import { Component } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ export class OasysFormErrorsSummaryTitleComponent {
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysFormErrorsSummaryTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OasysFormErrorsSummaryTitleComponent, isStandalone: true, selector: "ui-form-errors-summary-title", host: { attributes: { "role": "alert", "aria-live": "polite" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysFormErrorsSummaryTitleComponent, decorators: [{
9
+ type: Component,
10
+ args: [{
11
+ selector: 'ui-form-errors-summary-title',
12
+ template: '<ng-content></ng-content>',
13
+ standalone: true,
14
+ imports: [CommonModule],
15
+ host: {
16
+ role: 'alert',
17
+ 'aria-live': 'polite',
18
+ },
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvcnMtc3VtbWFyeS10aXRsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZXJyb3JzLXN1bW1hcnkvZXJyb3JzLXN1bW1hcnktdGl0bGUvZm9ybS1lcnJvcnMtc3VtbWFyeS10aXRsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBWS9DLE1BQU0sT0FBTyxvQ0FBb0M7d0dBQXBDLG9DQUFvQzs0RkFBcEMsb0NBQW9DLDBKQVJyQywyQkFBMkIsMkRBRTNCLFlBQVk7OzRGQU1YLG9DQUFvQztrQkFWaEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLE9BQU87d0JBQ2IsV0FBVyxFQUFFLFFBQVE7cUJBQ3RCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1aS1mb3JtLWVycm9ycy1zdW1tYXJ5LXRpdGxlJyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGhvc3Q6IHtcbiAgICByb2xlOiAnYWxlcnQnLFxuICAgICdhcmlhLWxpdmUnOiAncG9saXRlJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgT2FzeXNGb3JtRXJyb3JzU3VtbWFyeVRpdGxlQ29tcG9uZW50IHt9XG4iXX0=
@@ -0,0 +1,30 @@
1
+ import { Component, input, ContentChildren, computed, } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { OasysLayoutModule } from '../../layout';
4
+ import { OasysAlertModule } from '../../alert';
5
+ import { OasysIconModule } from '../../icon';
6
+ import { OasysFormErrorsSummaryItemComponent } from './errors-summary-item/form-errors-summary-item.component';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../../layout/box/box.component";
9
+ import * as i2 from "../../layout/stack/stack.component";
10
+ import * as i3 from "../../icon/icon.component";
11
+ export class OasysFormErrorsSummaryComponent {
12
+ formGroup = input.required();
13
+ errorsSummaryItems;
14
+ hasErrorsSummaryItems = computed(() => this.errorsSummaryItems.length > 0);
15
+ ngAfterContentInit() {
16
+ if (this.errorsSummaryItems.length === 0) {
17
+ console.error('ui-form-errors-summary: No ui-form-errors-summary-item components found. Please add at least one ui-form-errors-summary-item.');
18
+ }
19
+ }
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysFormErrorsSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: OasysFormErrorsSummaryComponent, isStandalone: true, selector: "ui-form-errors-summary", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: true, transformFunction: null } }, queries: [{ propertyName: "errorsSummaryItems", predicate: OasysFormErrorsSummaryItemComponent }], ngImport: i0, template: "<div #errorsSummary>\n @if (!formGroup().valid && hasErrorsSummaryItems()) {\n <ui-box class=\"ui-form-errors-summary\" box_space=\"near\" box_align_x=\"center\">\n <ui-stack stack_direction=\"x\" stack_gap=\"near\">\n <div class=\"badge\">\n <ui-icon icon_name=\"error\" icon_size_override=\"2\"></ui-icon>\n </div>\n\n <ui-stack stack_gap=\"near\">\n <ui-stack stack_gap=\"tight\" class=\"content\" stack_direction=\"y\">\n <div class=\"text-label--secondary\" id=\"errors-summary-title\">\n <ng-content select=\"ui-form-errors-summary-title\"></ng-content>\n </div>\n <ul>\n <ng-content></ng-content>\n </ul>\n </ui-stack>\n </ui-stack>\n </ui-stack>\n </ui-box>\n }\n</div>\n", styles: [":host{display:contents}.ui-form-errors-summary{margin-bottom:var(--oasys-spacing-near);background-color:var(--oasys-color-system-background-negative)}.ui-form-errors-summary .badge{padding:2px;border-radius:9999px;color:var(--oasys-color-brand-foreground-primary-on-dark);background-color:var(--oasys-color-system-foreground-negative)}.ui-form-errors-summary .badge ui-icon{fill:currentColor}.ui-form-errors-summary .content{gap:var(--oasys-spacing-tiny)}.ui-form-errors-summary ul{margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: OasysLayoutModule }, { kind: "component", type: i1.LayoutBoxComponent, selector: "ui-box", inputs: ["box_space", "box_space_top", "box_space_right", "box_space_bottom", "box_space_left", "box_align_x", "box_align_y", "box_fill_mode", "box_background", "box_content_fill_width", "box_border_color", "box_border_width", "box_border_style", "box_border_radius"] }, { kind: "component", type: i2.LayoutStackComponent, selector: "ui-stack", inputs: ["stack_gap", "stack_align", "stack_direction", "stack_distribute", "stack_wrap", "stack_collapse_below"] }, { kind: "ngmodule", type: OasysAlertModule }, { kind: "ngmodule", type: OasysIconModule }, { kind: "component", type: i3.IconComponent, selector: "ui-icon", inputs: ["icon_size", "icon_size_override", "icon_name", "icon_context", "alt_text", "icon_class"] }] });
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysFormErrorsSummaryComponent, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: 'ui-form-errors-summary', standalone: true, imports: [CommonModule, OasysLayoutModule, OasysAlertModule, OasysIconModule], template: "<div #errorsSummary>\n @if (!formGroup().valid && hasErrorsSummaryItems()) {\n <ui-box class=\"ui-form-errors-summary\" box_space=\"near\" box_align_x=\"center\">\n <ui-stack stack_direction=\"x\" stack_gap=\"near\">\n <div class=\"badge\">\n <ui-icon icon_name=\"error\" icon_size_override=\"2\"></ui-icon>\n </div>\n\n <ui-stack stack_gap=\"near\">\n <ui-stack stack_gap=\"tight\" class=\"content\" stack_direction=\"y\">\n <div class=\"text-label--secondary\" id=\"errors-summary-title\">\n <ng-content select=\"ui-form-errors-summary-title\"></ng-content>\n </div>\n <ul>\n <ng-content></ng-content>\n </ul>\n </ui-stack>\n </ui-stack>\n </ui-stack>\n </ui-box>\n }\n</div>\n", styles: [":host{display:contents}.ui-form-errors-summary{margin-bottom:var(--oasys-spacing-near);background-color:var(--oasys-color-system-background-negative)}.ui-form-errors-summary .badge{padding:2px;border-radius:9999px;color:var(--oasys-color-brand-foreground-primary-on-dark);background-color:var(--oasys-color-system-foreground-negative)}.ui-form-errors-summary .badge ui-icon{fill:currentColor}.ui-form-errors-summary .content{gap:var(--oasys-spacing-tiny)}.ui-form-errors-summary ul{margin:0}\n"] }]
26
+ }], propDecorators: { errorsSummaryItems: [{
27
+ type: ContentChildren,
28
+ args: [OasysFormErrorsSummaryItemComponent]
29
+ }] } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvcnMtc3VtbWFyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZXJyb3JzLXN1bW1hcnkvZm9ybS1lcnJvcnMtc3VtbWFyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZXJyb3JzLXN1bW1hcnkvZm9ybS1lcnJvcnMtc3VtbWFyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFFTCxlQUFlLEVBRWYsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMERBQTBELENBQUM7Ozs7O0FBUy9HLE1BQU0sT0FBTywrQkFBK0I7SUFDMUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWEsQ0FBQztJQUd4QyxrQkFBa0IsQ0FBa0Q7SUFFcEUscUJBQXFCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFM0Usa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPLENBQUMsS0FBSyxDQUNYLCtIQUErSCxDQUNoSSxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7d0dBZFUsK0JBQStCOzRGQUEvQiwrQkFBK0Isb1FBR3pCLG1DQUFtQyw2QkN6QnRELHd6QkFzQkEsc2lCREZZLFlBQVksOEJBQUUsaUJBQWlCLGtqQkFBRSxnQkFBZ0IsOEJBQUUsZUFBZTs7NEZBRWpFLCtCQUErQjtrQkFQM0MsU0FBUzsrQkFDRSx3QkFBd0IsY0FHdEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGVBQWUsQ0FBQzs4QkFNN0Usa0JBQWtCO3NCQURqQixlQUFlO3VCQUFDLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgaW5wdXQsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgUXVlcnlMaXN0LFxuICBjb21wdXRlZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT2FzeXNMYXlvdXRNb2R1bGUgfSBmcm9tICcuLi8uLi9sYXlvdXQnO1xuaW1wb3J0IHsgT2FzeXNBbGVydE1vZHVsZSB9IGZyb20gJy4uLy4uL2FsZXJ0JztcbmltcG9ydCB7IE9hc3lzSWNvbk1vZHVsZSB9IGZyb20gJy4uLy4uL2ljb24nO1xuaW1wb3J0IHsgT2FzeXNGb3JtRXJyb3JzU3VtbWFyeUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2Vycm9ycy1zdW1tYXJ5LWl0ZW0vZm9ybS1lcnJvcnMtc3VtbWFyeS1pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3VpLWZvcm0tZXJyb3JzLXN1bW1hcnknLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1lcnJvcnMtc3VtbWFyeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnZm9ybS1lcnJvcnMtc3VtbWFyeS5jb21wb25lbnQuc2NzcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE9hc3lzTGF5b3V0TW9kdWxlLCBPYXN5c0FsZXJ0TW9kdWxlLCBPYXN5c0ljb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBPYXN5c0Zvcm1FcnJvcnNTdW1tYXJ5Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIGZvcm1Hcm91cCA9IGlucHV0LnJlcXVpcmVkPEZvcm1Hcm91cD4oKTtcblxuICBAQ29udGVudENoaWxkcmVuKE9hc3lzRm9ybUVycm9yc1N1bW1hcnlJdGVtQ29tcG9uZW50KVxuICBlcnJvcnNTdW1tYXJ5SXRlbXMhOiBRdWVyeUxpc3Q8T2FzeXNGb3JtRXJyb3JzU3VtbWFyeUl0ZW1Db21wb25lbnQ+O1xuXG4gIGhhc0Vycm9yc1N1bW1hcnlJdGVtcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZXJyb3JzU3VtbWFyeUl0ZW1zLmxlbmd0aCA+IDApO1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lcnJvcnNTdW1tYXJ5SXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAndWktZm9ybS1lcnJvcnMtc3VtbWFyeTogTm8gdWktZm9ybS1lcnJvcnMtc3VtbWFyeS1pdGVtIGNvbXBvbmVudHMgZm91bmQuIFBsZWFzZSBhZGQgYXQgbGVhc3Qgb25lIHVpLWZvcm0tZXJyb3JzLXN1bW1hcnktaXRlbS4nLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgI2Vycm9yc1N1bW1hcnk+XG4gIEBpZiAoIWZvcm1Hcm91cCgpLnZhbGlkICYmIGhhc0Vycm9yc1N1bW1hcnlJdGVtcygpKSB7XG4gICAgPHVpLWJveCBjbGFzcz1cInVpLWZvcm0tZXJyb3JzLXN1bW1hcnlcIiBib3hfc3BhY2U9XCJuZWFyXCIgYm94X2FsaWduX3g9XCJjZW50ZXJcIj5cbiAgICAgIDx1aS1zdGFjayBzdGFja19kaXJlY3Rpb249XCJ4XCIgc3RhY2tfZ2FwPVwibmVhclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2VcIj5cbiAgICAgICAgICA8dWktaWNvbiBpY29uX25hbWU9XCJlcnJvclwiIGljb25fc2l6ZV9vdmVycmlkZT1cIjJcIj48L3VpLWljb24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDx1aS1zdGFjayBzdGFja19nYXA9XCJuZWFyXCI+XG4gICAgICAgICAgPHVpLXN0YWNrIHN0YWNrX2dhcD1cInRpZ2h0XCIgY2xhc3M9XCJjb250ZW50XCIgc3RhY2tfZGlyZWN0aW9uPVwieVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGFiZWwtLXNlY29uZGFyeVwiIGlkPVwiZXJyb3JzLXN1bW1hcnktdGl0bGVcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidWktZm9ybS1lcnJvcnMtc3VtbWFyeS10aXRsZVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDwvdWktc3RhY2s+XG4gICAgICAgIDwvdWktc3RhY2s+XG4gICAgICA8L3VpLXN0YWNrPlxuICAgIDwvdWktYm94PlxuICB9XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './form-errors-summary.component';
2
+ export * from './errors-summary-item/form-errors-summary-item.component';
3
+ export * from './errors-summary-title/form-errors-summary-title.component';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZXJyb3JzLXN1bW1hcnkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsNERBQTRELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Zvcm0tZXJyb3JzLXN1bW1hcnkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3JzLXN1bW1hcnktaXRlbS9mb3JtLWVycm9ycy1zdW1tYXJ5LWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3JzLXN1bW1hcnktdGl0bGUvZm9ybS1lcnJvcnMtc3VtbWFyeS10aXRsZS5jb21wb25lbnQnO1xuIl19
@@ -1,3 +1,3 @@
1
1
  export * from './form-group.module';
2
- export * from './form-group.component';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybS1ncm91cC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Zvcm0tZ3JvdXAubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1ncm91cC5jb21wb25lbnQnO1xuIl19
2
+ export { FormGroupComponent } from './form-group.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybS1ncm91cC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mb3JtLWdyb3VwLm1vZHVsZSc7XG5leHBvcnQgeyBGb3JtR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZ3JvdXAuY29tcG9uZW50JztcbiJdfQ==
@@ -34,4 +34,5 @@ export * from './lib/components/form/combobox';
34
34
  export * from './lib/components/label';
35
35
  export * from './lib/components/navigation/tabs/tab-group';
36
36
  export * from './lib/components/progress-bar';
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL29hc3lzLWxpYi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBvYXN5cy1saWJcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hbGVydCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL25hdmlnYXRpb24vYnJlYWRjcnVtYnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9idXR0b24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9idXR0b24tZ3JvdXAnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jYXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGl2aWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybS1ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0vY2hlY2tib3gnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtL3JhZGlvJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS90ZXh0LWlucHV0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS9jaGlwJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS9lcnJvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9oZWFkaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaGVybyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Nlby1ibG9jayc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ljb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbWFnZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xheW91dCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jYXJvdXNlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYmFubmVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcHJpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9waWxsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGlsbC1ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Byb21vLWNhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZWxlY3QtY2FyZCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0vY29tYm9ib3gnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYWJlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL25hdmlnYXRpb24vdGFicy90YWItZ3JvdXAnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9wcm9ncmVzcy1iYXInO1xuIl19
37
+ export * from './lib/components/form/errors-summary';
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL29hc3lzLWxpYi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsc0NBQXNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG9hc3lzLWxpYlxuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FsZXJ0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9icmVhZGNydW1icyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2J1dHRvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kaXZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtLWdyb3VwJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS9jaGVja2JveCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0vcmFkaW8nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtL3RleHQtaW5wdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtL2NoaXAnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtL2Vycm9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2hlYWRpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9oZXJvJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VvLWJsb2NrJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaWNvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ltYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Nhcm91c2VsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY2FyZCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iYW5uZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9wcmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3BpbGwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9waWxsLWdyb3VwJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcHJvbW8tY2FyZCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlbGVjdC1jYXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS9jb21ib2JveCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xhYmVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi90YWJzL3RhYi1ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Byb2dyZXNzLWJhcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0vZXJyb3JzLXN1bW1hcnknO1xuIl19
@@ -3927,6 +3927,86 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3927
3927
  type: Input
3928
3928
  }] } });
3929
3929
 
3930
+ class OasysFormErrorsSummaryItemComponent {
3931
+ abstractControl = input();
3932
+ error_messages = input({});
3933
+ focusOnControl() {
3934
+ const control = this.abstractControl();
3935
+ // Log the control name - it's stored in the parent FormGroup
3936
+ if (control?.parent) {
3937
+ const controlName = Object.keys(control.parent.controls).find((key) => control.parent?.get(key) === control);
3938
+ if (controlName) {
3939
+ // Find the ui-text-input component with the matching ng-reflect-name
3940
+ const textInputComponent = document.querySelector(`ui-text-input[ng-reflect-name="${controlName}"]`);
3941
+ if (textInputComponent) {
3942
+ // Find the input element inside the ui-text-input component
3943
+ const inputElement = textInputComponent.querySelector('input');
3944
+ if (inputElement) {
3945
+ inputElement.focus();
3946
+ inputElement.scrollIntoView({ behavior: 'smooth', block: 'center' });
3947
+ }
3948
+ }
3949
+ }
3950
+ }
3951
+ }
3952
+ errorMessage = computed(() => {
3953
+ const currentErrors = this.abstractControl()?.errors;
3954
+ const messages = this.error_messages() ?? {};
3955
+ if (!currentErrors) {
3956
+ return undefined;
3957
+ }
3958
+ const errorKeys = Object.keys(currentErrors);
3959
+ const firstErrorKey = errorKeys.length ? errorKeys[0] : undefined;
3960
+ return firstErrorKey ? messages[firstErrorKey] : undefined;
3961
+ });
3962
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysFormErrorsSummaryItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3963
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: OasysFormErrorsSummaryItemComponent, isStandalone: true, selector: "ui-form-errors-summary-item", inputs: { abstractControl: { classPropertyName: "abstractControl", publicName: "abstractControl", isSignal: true, isRequired: false, transformFunction: null }, error_messages: { classPropertyName: "error_messages", publicName: "error_messages", isSignal: true, isRequired: false, transformFunction: null } }, host: { styleAttribute: "cursor: pointer;" }, ngImport: i0, template: "@if (errorMessage() && !!abstractControl()?.errors) {\n <li\n class=\"text-link--paragraph text-body--supporting\"\n (click)=\"focusOnControl()\"\n (keydown.enter)=\"focusOnControl()\"\n tabindex=\"0\"\n aria-live=\"polite\"\n aria-labelledby=\"errors-summary-title errors-summary-item\"\n >\n <span id=\"errors-summary-item\">\n {{ errorMessage() }}\n </span>\n </li>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: OasysLayoutModule }, { kind: "ngmodule", type: OasysAlertModule }] });
3964
+ }
3965
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysFormErrorsSummaryItemComponent, decorators: [{
3966
+ type: Component,
3967
+ args: [{ selector: 'ui-form-errors-summary-item', standalone: true, imports: [CommonModule, OasysLayoutModule, OasysAlertModule], host: {
3968
+ style: 'cursor: pointer;',
3969
+ }, template: "@if (errorMessage() && !!abstractControl()?.errors) {\n <li\n class=\"text-link--paragraph text-body--supporting\"\n (click)=\"focusOnControl()\"\n (keydown.enter)=\"focusOnControl()\"\n tabindex=\"0\"\n aria-live=\"polite\"\n aria-labelledby=\"errors-summary-title errors-summary-item\"\n >\n <span id=\"errors-summary-item\">\n {{ errorMessage() }}\n </span>\n </li>\n}\n" }]
3970
+ }] });
3971
+
3972
+ class OasysFormErrorsSummaryComponent {
3973
+ formGroup = input.required();
3974
+ errorsSummaryItems;
3975
+ hasErrorsSummaryItems = computed(() => this.errorsSummaryItems.length > 0);
3976
+ ngAfterContentInit() {
3977
+ if (this.errorsSummaryItems.length === 0) {
3978
+ console.error('ui-form-errors-summary: No ui-form-errors-summary-item components found. Please add at least one ui-form-errors-summary-item.');
3979
+ }
3980
+ }
3981
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysFormErrorsSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3982
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: OasysFormErrorsSummaryComponent, isStandalone: true, selector: "ui-form-errors-summary", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: true, transformFunction: null } }, queries: [{ propertyName: "errorsSummaryItems", predicate: OasysFormErrorsSummaryItemComponent }], ngImport: i0, template: "<div #errorsSummary>\n @if (!formGroup().valid && hasErrorsSummaryItems()) {\n <ui-box class=\"ui-form-errors-summary\" box_space=\"near\" box_align_x=\"center\">\n <ui-stack stack_direction=\"x\" stack_gap=\"near\">\n <div class=\"badge\">\n <ui-icon icon_name=\"error\" icon_size_override=\"2\"></ui-icon>\n </div>\n\n <ui-stack stack_gap=\"near\">\n <ui-stack stack_gap=\"tight\" class=\"content\" stack_direction=\"y\">\n <div class=\"text-label--secondary\" id=\"errors-summary-title\">\n <ng-content select=\"ui-form-errors-summary-title\"></ng-content>\n </div>\n <ul>\n <ng-content></ng-content>\n </ul>\n </ui-stack>\n </ui-stack>\n </ui-stack>\n </ui-box>\n }\n</div>\n", styles: [":host{display:contents}.ui-form-errors-summary{margin-bottom:var(--oasys-spacing-near);background-color:var(--oasys-color-system-background-negative)}.ui-form-errors-summary .badge{padding:2px;border-radius:9999px;color:var(--oasys-color-brand-foreground-primary-on-dark);background-color:var(--oasys-color-system-foreground-negative)}.ui-form-errors-summary .badge ui-icon{fill:currentColor}.ui-form-errors-summary .content{gap:var(--oasys-spacing-tiny)}.ui-form-errors-summary ul{margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: OasysLayoutModule }, { kind: "component", type: LayoutBoxComponent, selector: "ui-box", inputs: ["box_space", "box_space_top", "box_space_right", "box_space_bottom", "box_space_left", "box_align_x", "box_align_y", "box_fill_mode", "box_background", "box_content_fill_width", "box_border_color", "box_border_width", "box_border_style", "box_border_radius"] }, { kind: "component", type: LayoutStackComponent, selector: "ui-stack", inputs: ["stack_gap", "stack_align", "stack_direction", "stack_distribute", "stack_wrap", "stack_collapse_below"] }, { kind: "ngmodule", type: OasysAlertModule }, { kind: "ngmodule", type: OasysIconModule }, { kind: "component", type: IconComponent, selector: "ui-icon", inputs: ["icon_size", "icon_size_override", "icon_name", "icon_context", "alt_text", "icon_class"] }] });
3983
+ }
3984
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysFormErrorsSummaryComponent, decorators: [{
3985
+ type: Component,
3986
+ args: [{ selector: 'ui-form-errors-summary', standalone: true, imports: [CommonModule, OasysLayoutModule, OasysAlertModule, OasysIconModule], template: "<div #errorsSummary>\n @if (!formGroup().valid && hasErrorsSummaryItems()) {\n <ui-box class=\"ui-form-errors-summary\" box_space=\"near\" box_align_x=\"center\">\n <ui-stack stack_direction=\"x\" stack_gap=\"near\">\n <div class=\"badge\">\n <ui-icon icon_name=\"error\" icon_size_override=\"2\"></ui-icon>\n </div>\n\n <ui-stack stack_gap=\"near\">\n <ui-stack stack_gap=\"tight\" class=\"content\" stack_direction=\"y\">\n <div class=\"text-label--secondary\" id=\"errors-summary-title\">\n <ng-content select=\"ui-form-errors-summary-title\"></ng-content>\n </div>\n <ul>\n <ng-content></ng-content>\n </ul>\n </ui-stack>\n </ui-stack>\n </ui-stack>\n </ui-box>\n }\n</div>\n", styles: [":host{display:contents}.ui-form-errors-summary{margin-bottom:var(--oasys-spacing-near);background-color:var(--oasys-color-system-background-negative)}.ui-form-errors-summary .badge{padding:2px;border-radius:9999px;color:var(--oasys-color-brand-foreground-primary-on-dark);background-color:var(--oasys-color-system-foreground-negative)}.ui-form-errors-summary .badge ui-icon{fill:currentColor}.ui-form-errors-summary .content{gap:var(--oasys-spacing-tiny)}.ui-form-errors-summary ul{margin:0}\n"] }]
3987
+ }], propDecorators: { errorsSummaryItems: [{
3988
+ type: ContentChildren,
3989
+ args: [OasysFormErrorsSummaryItemComponent]
3990
+ }] } });
3991
+
3992
+ class OasysFormErrorsSummaryTitleComponent {
3993
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysFormErrorsSummaryTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3994
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OasysFormErrorsSummaryTitleComponent, isStandalone: true, selector: "ui-form-errors-summary-title", host: { attributes: { "role": "alert", "aria-live": "polite" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
3995
+ }
3996
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysFormErrorsSummaryTitleComponent, decorators: [{
3997
+ type: Component,
3998
+ args: [{
3999
+ selector: 'ui-form-errors-summary-title',
4000
+ template: '<ng-content></ng-content>',
4001
+ standalone: true,
4002
+ imports: [CommonModule],
4003
+ host: {
4004
+ role: 'alert',
4005
+ 'aria-live': 'polite',
4006
+ },
4007
+ }]
4008
+ }] });
4009
+
3930
4010
  /*
3931
4011
  * Public API Surface of oasys-lib
3932
4012
  */
@@ -3935,5 +4015,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3935
4015
  * Generated bundle index. Do not edit.
3936
4016
  */
3937
4017
 
3938
- export { BannerComponent, BreadcrumbsComponent, CardComponent, CarouselComponent, CheckboxComponent, ChipComponent, ComboboxComponent, DividerComponent, FormErrorsComponent, FormGroupComponent, HeroComponent, IconComponent, ImageComponent, LabelComponent, LayoutBoxComponent, LayoutContainerComponent, LayoutGridColumnComponent, LayoutGridComponent, LayoutStackComponent, MEDIA_BASE_URL_TOKEN, OasysAlertCancelDirective, OasysAlertComponent, OasysAlertConfirmDirective, OasysAlertContentDirective, OasysAlertModule, OasysAlertTitleDirective, OasysBannerModule, OasysBreadcrumbModule, OasysButtonComponent, OasysButtonGroupComponent, OasysButtonGroupModule, OasysButtonModule, OasysCardModule, OasysCarouselModule, OasysCheckboxModule, OasysChipModule, OasysComboboxModule, OasysDividerModule, OasysFormErrorsModule, OasysFormGroupModule, OasysHeadingComponent, OasysHeadingModule, OasysHeroModule, OasysIconModule, OasysImageModule, OasysLabelModule, OasysLayoutModule, OasysPillComponent, OasysPillGroupComponent, OasysPillGroupModule, OasysPillModule, OasysPriceComponent, OasysPriceModule, OasysPromoCardModule, OasysRadioModule, OasysSelectCardModule, OasysSeoBlockModule, OasysTabComponent, OasysTabGroupComponent, OasysTabsModule, OasysTextInputModule, OasysTextModule, ProgressBarComponent, PromoCardComponent, ROUTING_HANDLER, RadioComponent, SWIPER_PROVIDER_TOKEN, SectionComponent, SectionModule, SelectCardComponent, SeoBlockComponent, SwiperProvider, TextComponent, TextInputComponent };
4018
+ export { BannerComponent, BreadcrumbsComponent, CardComponent, CarouselComponent, CheckboxComponent, ChipComponent, ComboboxComponent, DividerComponent, FormErrorsComponent, FormGroupComponent, HeroComponent, IconComponent, ImageComponent, LabelComponent, LayoutBoxComponent, LayoutContainerComponent, LayoutGridColumnComponent, LayoutGridComponent, LayoutStackComponent, MEDIA_BASE_URL_TOKEN, OasysAlertCancelDirective, OasysAlertComponent, OasysAlertConfirmDirective, OasysAlertContentDirective, OasysAlertModule, OasysAlertTitleDirective, OasysBannerModule, OasysBreadcrumbModule, OasysButtonComponent, OasysButtonGroupComponent, OasysButtonGroupModule, OasysButtonModule, OasysCardModule, OasysCarouselModule, OasysCheckboxModule, OasysChipModule, OasysComboboxModule, OasysDividerModule, OasysFormErrorsModule, OasysFormErrorsSummaryComponent, OasysFormErrorsSummaryItemComponent, OasysFormErrorsSummaryTitleComponent, OasysFormGroupModule, OasysHeadingComponent, OasysHeadingModule, OasysHeroModule, OasysIconModule, OasysImageModule, OasysLabelModule, OasysLayoutModule, OasysPillComponent, OasysPillGroupComponent, OasysPillGroupModule, OasysPillModule, OasysPriceComponent, OasysPriceModule, OasysPromoCardModule, OasysRadioModule, OasysSelectCardModule, OasysSeoBlockModule, OasysTabComponent, OasysTabGroupComponent, OasysTabsModule, OasysTextInputModule, OasysTextModule, ProgressBarComponent, PromoCardComponent, ROUTING_HANDLER, RadioComponent, SWIPER_PROVIDER_TOKEN, SectionComponent, SectionModule, SelectCardComponent, SeoBlockComponent, SwiperProvider, TextComponent, TextInputComponent };
3939
4019
  //# sourceMappingURL=oasys-lib.mjs.map