oasys-lib 2.4.0 → 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.
- package/esm2022/lib/components/form/errors-summary/errors-summary-item/form-errors-summary-item.component.mjs +47 -0
- package/esm2022/lib/components/form/errors-summary/errors-summary-title/form-errors-summary-title.component.mjs +21 -0
- package/esm2022/lib/components/form/errors-summary/form-errors-summary.component.mjs +30 -0
- package/esm2022/lib/components/form/errors-summary/index.mjs +4 -0
- package/esm2022/lib/components/form/form-group/index.mjs +2 -2
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/oasys-lib.mjs +81 -1
- package/fesm2022/oasys-lib.mjs.map +1 -1
- package/lib/components/form/errors-summary/errors-summary-item/form-errors-summary-item.component.d.ts +12 -0
- package/lib/components/form/errors-summary/errors-summary-item/form-errors-summary-item.component.d.ts.map +1 -0
- package/lib/components/form/errors-summary/errors-summary-title/form-errors-summary-title.component.d.ts +6 -0
- package/lib/components/form/errors-summary/errors-summary-title/form-errors-summary-title.component.d.ts.map +1 -0
- package/lib/components/form/errors-summary/form-errors-summary.component.d.ts +13 -0
- package/lib/components/form/errors-summary/form-errors-summary.component.d.ts.map +1 -0
- package/lib/components/form/errors-summary/index.d.ts +4 -0
- package/lib/components/form/errors-summary/index.d.ts.map +1 -0
- package/lib/components/form/form-group/index.d.ts +1 -1
- package/lib/components/form/form-group/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/public-api.d.ts.map +1 -1
- package/src/assets/bloomandwild/variables.css +1 -1
- package/src/assets/bloomon/variables.css +1 -1
- 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
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
export { FormGroupComponent } from './form-group.component';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybS1ncm91cC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mb3JtLWdyb3VwLm1vZHVsZSc7XG5leHBvcnQgeyBGb3JtR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZ3JvdXAuY29tcG9uZW50JztcbiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -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
|
-
|
|
37
|
+
export * from './lib/components/form/errors-summary';
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL29hc3lzLWxpYi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsc0NBQXNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG9hc3lzLWxpYlxuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FsZXJ0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9icmVhZGNydW1icyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2J1dHRvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kaXZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtLWdyb3VwJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS9jaGVja2JveCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0vcmFkaW8nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtL3RleHQtaW5wdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtL2NoaXAnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtL2Vycm9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2hlYWRpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9oZXJvJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VvLWJsb2NrJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaWNvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ltYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Nhcm91c2VsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY2FyZCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iYW5uZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9wcmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3BpbGwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9waWxsLWdyb3VwJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcHJvbW8tY2FyZCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlbGVjdC1jYXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS9jb21ib2JveCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xhYmVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi90YWJzL3RhYi1ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Byb2dyZXNzLWJhcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0vZXJyb3JzLXN1bW1hcnknO1xuIl19
|
package/fesm2022/oasys-lib.mjs
CHANGED
|
@@ -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
|