@sebgroup/green-angular 7.2.0-rc.20260112142904472 → 7.2.0-rc.20260113120917716
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/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs +10 -10
- package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-button.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-button.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs +13 -13
- package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs +13 -13
- package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs +22 -22
- package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs +34 -34
- package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +8 -8
- package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +3 -3
- package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs +34 -34
- package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs +13 -13
- package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +26 -26
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs +14 -14
- package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs +10 -10
- package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +16 -16
- package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs +13 -13
- package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs +22 -22
- package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs +10 -10
- package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs +10 -10
- package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-v-angular.mjs +281 -281
- package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular.mjs +166 -166
- package/fesm2022/sebgroup-green-angular.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -42,10 +42,10 @@ class NggvRadioControlRegistry {
|
|
|
42
42
|
controlPair[0]._parent === radio.ngControl._parent &&
|
|
43
43
|
controlPair[1].name === radio.name);
|
|
44
44
|
}
|
|
45
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
46
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
45
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvRadioControlRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
46
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvRadioControlRegistry }); }
|
|
47
47
|
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvRadioControlRegistry, decorators: [{
|
|
49
49
|
type: Injectable
|
|
50
50
|
}] });
|
|
51
51
|
/**
|
|
@@ -125,10 +125,10 @@ class NggvRadioComponent extends NggvBaseControlValueAccessorComponent {
|
|
|
125
125
|
if (!this.name && this.formControlName)
|
|
126
126
|
this.name = this.formControlName;
|
|
127
127
|
}
|
|
128
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
129
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
128
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvRadioComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: NggvRadioControlRegistry }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
129
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: NggvRadioComponent, isStandalone: false, selector: "nggv-radio", inputs: { thook: "thook", size: "size", formControlName: "formControlName" }, host: { properties: { "attr.data-thook": "this.thook", "class": "this.size" } }, providers: [NggvRadioControlRegistry], usesInheritance: true, ngImport: i0, template: "<!-- LOCKED INPUT -->\n<div *ngIf=\"locked && state\">\n <div\n [id]=\"id + '-radio'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n >\n {{ label }}\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl ?? null; context: { $implicit: value }\"\n ></ng-template>\n </div>\n</div>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div>\n <!-- RADIO BUTTON FIELD -->\n <label [attr.for]=\"id + '-radio'\" class=\"form-control\">\n <input\n #input\n type=\"radio\"\n [attr.id]=\"id + '-radio'\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [attr.required]=\"required || null\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [attr.aria-label]=\"description\"\n [checked]=\"state\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onInputChange($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n\n <!-- LABEL -->\n {{ label }}\n <ng-template\n *ngTemplateOutlet=\"\n labelContentTpl ?? null;\n context: { $implicit: value }\n \"\n ></ng-template>\n <i></i>\n </label>\n </div>\n\n <!-- ERRORS -->\n <!-- if no nggv-radio-group is present -->\n @if (!isGroup) {\n <ng-container *transloco=\"let t; read: scope\">\n <div\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-radio'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ error }}\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n </ng-container>\n }\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{--gds-ref-pallet-base200: hsl(0, 0%, 91%);--gds-ref-pallet-base500: hsl(0, 0%, 68%);--gds-ref-pallet-base600: hsl(0, 0%, 53%);--gds-comp-checkbox-container-height: 1rem;--gds-comp-checkbox-container-width: 1rem;--gds-comp-checkbox-container-color: var(#fff);--gds-comp-checkbox-container-color-disabled: var(--gds-ref-pallet-base200);--gds-comp-checkbox-border-color: #333;--gds-comp-checkbox-border-radius: 2px;--gds-comp-checkbox-hover-border-color: var(--gds-ref-pallet-base600);--gds-comp-checkbox-container-color-selected: #333;--gds-comp-checkbox-border-color-selected: var(#fff);--gds-comp-checkbox-border-color-focus: var(--gds-sys-color-blue-dark-2);--gds-comp-radio-container-height: 1rem;--gds-comp-radio-container-width: 1rem;--gds-comp-radio-border-radius: 50%;--gds-comp-radio-ring-width: .1875rem;--gds-comp-radio-container-background-disabled: var(--gds-ref-pallet-base200);--gds-comp-radio-border: #333;--gds-comp-radio-border-checked: #333;--gds-comp-radio-border-hover: var(--gds-ref-pallet-base600);--gds-comp-radio-border-checked-hover: var(--gds-ref-pallet-base600);--gds-comp-radio-border-disabled: var(--gds-ref-pallet-base500);--gds-comp-radio-ring: var(#fff);--gds-comp-radio-ring-checked: var(#fff);--gds-comp-radio-ring-hover: var(#fff);--gds-comp-radio-ring-checked-hover: var(#fff);--gds-comp-radio-ring-disabled: var(#fff);--gds-comp-radio-dot: transparent;--gds-comp-radio-dot-checked: #333;--gds-comp-radio-dot-hover: var(--gds-ref-pallet-base600);--gds-comp-radio-dot-checked-hover: var(--gds-ref-pallet-base600);--gds-comp-radio-dot-disabled: var(--gds-ref-pallet-base600)}:host .nggv-field--locked{display:inline-block;border-radius:.25em;position:relative;min-height:2em;padding:.5em .75em .5em 0}:host .form-control{padding:.75rem 1rem;border:1px solid transparent;border-radius:var(--gds-sys-shape-corner-medium);align-items:center;cursor:pointer;display:flex;flex-direction:row-reverse;font:inherit;justify-content:flex-end;position:relative;user-select:none;-webkit-user-select:none}:host .form-control:has(input:disabled){cursor:not-allowed}:host label.form-control input[type=radio]{cursor:pointer;height:0;opacity:0;position:absolute;width:0;z-index:-1}:host label.form-control:has(input[type=radio]:focus-visible):focus:not(:focus-visible){box-shadow:none;outline:0}:host label.form-control:has(input[type=radio]:focus-visible):focus,:host label.form-control:has(input[type=radio]:focus-visible):focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host label.form-control input[type=radio]~i{margin-right:.75rem;margin-top:.0625rem;flex-shrink:0;position:relative;border-radius:var(--gds-sys-shape-corner-round);display:flex;height:1rem;width:1rem;box-shadow:inset 0 0 0 .05rem var(--gds-sys-color-text-primary)}:host label.form-control input[type=radio]~i:after{content:\"\";width:100%;height:100%;border-radius:var(--gds-sys-shape-corner-round);background-color:transparent;transform:scale(.5)}:host label.form-control:hover input[type=radio]:not(.disabled,:disabled)~i{background-color:var(--gds-sys-color-base-200)}:host label.form-control input[type=radio]:checked:not(.disabled,:disabled)~i{box-shadow:inset 0 0 0 .05rem var(--gds-sys-color-text-primary)}:host label.form-control input[type=radio]:checked:not(.disabled,:disabled)~i:after{background-color:var(--gds-sys-color-text-primary)}:host label.form-control:hover input[type=radio]:checked:not(.disabled,:disabled)~i:after{background-color:var(--gds-sys-color-base-700)}:host .was-validated label.form-control input[type=radio]:not(.is-invalid):valid~i,:host label.form-control input[type=radio].is-valid~i{--border-color: var(--gds-sys-color-dark-green-2);--sg-border-color: var(--gds-sys-color-dark-green-2)}:host .was-validated label.form-control input[type=radio]:not(.is-valid):invalid~i,:host label.form-control input[type=radio].is-invalid~i{--border-color: var(--gds-sys-color-text-error);--sg-border-color: var(--gds-sys-color-text-error)}:host label.form-control input[type=radio]:disabled~i,:host label.form-control input[type=radio].disabled~i{background-color:var(--gds-comp-radio-container-background-disabled);box-shadow:inset 0 0 0 .05rem var(--gds-sys-color-base-500)}:host label.form-control input[type=radio]:disabled~span,:host label.form-control input[type=radio].disabled~span{color:var(--text-disabled-color)!important;cursor:not-allowed}:host label.form-control input[type=radio]:disabled~span::placeholder,:host label.form-control input[type=radio].disabled~span::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=radio]:disabled:checked~i:after,:host label.form-control input[type=radio]:checked.disabled~i:after{background-color:var(--gds-sys-color-base-600)}:host.small .form-control{padding:.25rem}:host.small .form-control input[type=radio]~i{margin-right:.5rem}:host .form-info{font-size:.875rem;line-height:1.25rem;width:100%}:host .form-info{font-weight:500;padding-left:1rem;margin-top:-.25rem}:host .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .form-info--error .error-icon{margin-top:.128rem;align-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i4.NggCoreElementDirective, selector: "[nggCoreElement]" }] }); }
|
|
130
130
|
}
|
|
131
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvRadioComponent, decorators: [{
|
|
132
132
|
type: Component,
|
|
133
133
|
args: [{ selector: 'nggv-radio', providers: [NggvRadioControlRegistry], standalone: false, template: "<!-- LOCKED INPUT -->\n<div *ngIf=\"locked && state\">\n <div\n [id]=\"id + '-radio'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n >\n {{ label }}\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl ?? null; context: { $implicit: value }\"\n ></ng-template>\n </div>\n</div>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div>\n <!-- RADIO BUTTON FIELD -->\n <label [attr.for]=\"id + '-radio'\" class=\"form-control\">\n <input\n #input\n type=\"radio\"\n [attr.id]=\"id + '-radio'\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [attr.required]=\"required || null\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [attr.aria-label]=\"description\"\n [checked]=\"state\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onInputChange($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n\n <!-- LABEL -->\n {{ label }}\n <ng-template\n *ngTemplateOutlet=\"\n labelContentTpl ?? null;\n context: { $implicit: value }\n \"\n ></ng-template>\n <i></i>\n </label>\n </div>\n\n <!-- ERRORS -->\n <!-- if no nggv-radio-group is present -->\n @if (!isGroup) {\n <ng-container *transloco=\"let t; read: scope\">\n <div\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-radio'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ error }}\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n </ng-container>\n }\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{--gds-ref-pallet-base200: hsl(0, 0%, 91%);--gds-ref-pallet-base500: hsl(0, 0%, 68%);--gds-ref-pallet-base600: hsl(0, 0%, 53%);--gds-comp-checkbox-container-height: 1rem;--gds-comp-checkbox-container-width: 1rem;--gds-comp-checkbox-container-color: var(#fff);--gds-comp-checkbox-container-color-disabled: var(--gds-ref-pallet-base200);--gds-comp-checkbox-border-color: #333;--gds-comp-checkbox-border-radius: 2px;--gds-comp-checkbox-hover-border-color: var(--gds-ref-pallet-base600);--gds-comp-checkbox-container-color-selected: #333;--gds-comp-checkbox-border-color-selected: var(#fff);--gds-comp-checkbox-border-color-focus: var(--gds-sys-color-blue-dark-2);--gds-comp-radio-container-height: 1rem;--gds-comp-radio-container-width: 1rem;--gds-comp-radio-border-radius: 50%;--gds-comp-radio-ring-width: .1875rem;--gds-comp-radio-container-background-disabled: var(--gds-ref-pallet-base200);--gds-comp-radio-border: #333;--gds-comp-radio-border-checked: #333;--gds-comp-radio-border-hover: var(--gds-ref-pallet-base600);--gds-comp-radio-border-checked-hover: var(--gds-ref-pallet-base600);--gds-comp-radio-border-disabled: var(--gds-ref-pallet-base500);--gds-comp-radio-ring: var(#fff);--gds-comp-radio-ring-checked: var(#fff);--gds-comp-radio-ring-hover: var(#fff);--gds-comp-radio-ring-checked-hover: var(#fff);--gds-comp-radio-ring-disabled: var(#fff);--gds-comp-radio-dot: transparent;--gds-comp-radio-dot-checked: #333;--gds-comp-radio-dot-hover: var(--gds-ref-pallet-base600);--gds-comp-radio-dot-checked-hover: var(--gds-ref-pallet-base600);--gds-comp-radio-dot-disabled: var(--gds-ref-pallet-base600)}:host .nggv-field--locked{display:inline-block;border-radius:.25em;position:relative;min-height:2em;padding:.5em .75em .5em 0}:host .form-control{padding:.75rem 1rem;border:1px solid transparent;border-radius:var(--gds-sys-shape-corner-medium);align-items:center;cursor:pointer;display:flex;flex-direction:row-reverse;font:inherit;justify-content:flex-end;position:relative;user-select:none;-webkit-user-select:none}:host .form-control:has(input:disabled){cursor:not-allowed}:host label.form-control input[type=radio]{cursor:pointer;height:0;opacity:0;position:absolute;width:0;z-index:-1}:host label.form-control:has(input[type=radio]:focus-visible):focus:not(:focus-visible){box-shadow:none;outline:0}:host label.form-control:has(input[type=radio]:focus-visible):focus,:host label.form-control:has(input[type=radio]:focus-visible):focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host label.form-control input[type=radio]~i{margin-right:.75rem;margin-top:.0625rem;flex-shrink:0;position:relative;border-radius:var(--gds-sys-shape-corner-round);display:flex;height:1rem;width:1rem;box-shadow:inset 0 0 0 .05rem var(--gds-sys-color-text-primary)}:host label.form-control input[type=radio]~i:after{content:\"\";width:100%;height:100%;border-radius:var(--gds-sys-shape-corner-round);background-color:transparent;transform:scale(.5)}:host label.form-control:hover input[type=radio]:not(.disabled,:disabled)~i{background-color:var(--gds-sys-color-base-200)}:host label.form-control input[type=radio]:checked:not(.disabled,:disabled)~i{box-shadow:inset 0 0 0 .05rem var(--gds-sys-color-text-primary)}:host label.form-control input[type=radio]:checked:not(.disabled,:disabled)~i:after{background-color:var(--gds-sys-color-text-primary)}:host label.form-control:hover input[type=radio]:checked:not(.disabled,:disabled)~i:after{background-color:var(--gds-sys-color-base-700)}:host .was-validated label.form-control input[type=radio]:not(.is-invalid):valid~i,:host label.form-control input[type=radio].is-valid~i{--border-color: var(--gds-sys-color-dark-green-2);--sg-border-color: var(--gds-sys-color-dark-green-2)}:host .was-validated label.form-control input[type=radio]:not(.is-valid):invalid~i,:host label.form-control input[type=radio].is-invalid~i{--border-color: var(--gds-sys-color-text-error);--sg-border-color: var(--gds-sys-color-text-error)}:host label.form-control input[type=radio]:disabled~i,:host label.form-control input[type=radio].disabled~i{background-color:var(--gds-comp-radio-container-background-disabled);box-shadow:inset 0 0 0 .05rem var(--gds-sys-color-base-500)}:host label.form-control input[type=radio]:disabled~span,:host label.form-control input[type=radio].disabled~span{color:var(--text-disabled-color)!important;cursor:not-allowed}:host label.form-control input[type=radio]:disabled~span::placeholder,:host label.form-control input[type=radio].disabled~span::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=radio]:disabled:checked~i:after,:host label.form-control input[type=radio]:checked.disabled~i:after{background-color:var(--gds-sys-color-base-600)}:host.small .form-control{padding:.25rem}:host.small .form-control input[type=radio]~i{margin-right:.5rem}:host .form-info{font-size:.875rem;line-height:1.25rem;width:100%}:host .form-info{font-weight:500;padding-left:1rem;margin-top:-.25rem}:host .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .form-info--error .error-icon{margin-top:.128rem;align-items:center}\n"] }]
|
|
134
134
|
}], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
|
|
@@ -199,10 +199,10 @@ class NggvRadioGroupComponent extends NggvBaseControlValueAccessorComponent {
|
|
|
199
199
|
if (!this.name && this.formControlName)
|
|
200
200
|
this.name = this.formControlName;
|
|
201
201
|
}
|
|
202
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
203
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
202
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvRadioGroupComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
203
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: NggvRadioGroupComponent, isStandalone: false, selector: "nggv-radio-group", inputs: { thook: "thook", size: "size", formControlName: "formControlName", direction: "direction" }, host: { properties: { "attr.data-thook": "this.thook", "class": "this.size" } }, usesInheritance: true, ngImport: i0, template: "<!-- RADIO BUTTONS -->\n<div [ngClass]=\"direction === 'column' ? 'direction-column' : 'direction-row'\">\n <ng-content></ng-content>\n</div>\n<!-- ERRORS -->\n<ng-container *transloco=\"let t; read: scope\">\n <div\n class=\"form-info form-info--error\"\n [attr.for]=\"ngControl?.name + '-radio-group'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n size=\"16px\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ error }}\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n</ng-container>\n", styles: [":host .direction-column{display:flex;flex-direction:column}:host .direction-row{display:flex;flex-direction:row}:host.small .form-control{padding:.25rem}:host.small .form-control input[type=radio]~i{margin-right:.5rem}:host .form-info{font-size:.875rem;line-height:1.25rem;width:100%;font-weight:500}:host .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .form-info--error .error-icon{margin-top:.128rem;align-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i4.NggCoreElementDirective, selector: "[nggCoreElement]" }] }); }
|
|
204
204
|
}
|
|
205
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
205
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvRadioGroupComponent, decorators: [{
|
|
206
206
|
type: Component,
|
|
207
207
|
args: [{ selector: 'nggv-radio-group', standalone: false, template: "<!-- RADIO BUTTONS -->\n<div [ngClass]=\"direction === 'column' ? 'direction-column' : 'direction-row'\">\n <ng-content></ng-content>\n</div>\n<!-- ERRORS -->\n<ng-container *transloco=\"let t; read: scope\">\n <div\n class=\"form-info form-info--error\"\n [attr.for]=\"ngControl?.name + '-radio-group'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n size=\"16px\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ error }}\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n</ng-container>\n", styles: [":host .direction-column{display:flex;flex-direction:column}:host .direction-row{display:flex;flex-direction:row}:host.small .form-control{padding:.25rem}:host.small .form-control input[type=radio]~i{margin-right:.5rem}:host .form-info{font-size:.875rem;line-height:1.25rem;width:100%;font-weight:500}:host .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .form-info--error .error-icon{margin-top:.128rem;align-items:center}\n"] }]
|
|
208
208
|
}], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
|
|
@@ -231,11 +231,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImpor
|
|
|
231
231
|
}] } });
|
|
232
232
|
|
|
233
233
|
class NggvRadioModule {
|
|
234
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
235
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
236
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
234
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
235
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: NggvRadioModule, declarations: [NggvRadioComponent, NggvRadioGroupComponent], imports: [CommonModule, NggvI18nModule, NggCoreWrapperModule], exports: [NggvRadioComponent, NggvRadioGroupComponent] }); }
|
|
236
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvRadioModule, imports: [CommonModule, NggvI18nModule, NggCoreWrapperModule] }); }
|
|
237
237
|
}
|
|
238
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
238
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvRadioModule, decorators: [{
|
|
239
239
|
type: NgModule,
|
|
240
240
|
args: [{
|
|
241
241
|
declarations: [NggvRadioComponent, NggvRadioGroupComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sebgroup-green-angular-src-v-angular-radio.mjs","sources":["../../../../libs/angular/src/v-angular/radio/radio.component.ts","../../../../libs/angular/src/v-angular/radio/radio.component.html","../../../../libs/angular/src/v-angular/radio/radio-group/radio-group.component.ts","../../../../libs/angular/src/v-angular/radio/radio-group/radio-group.component.html","../../../../libs/angular/src/v-angular/radio/radio.module.ts","../../../../libs/angular/src/v-angular/radio/sebgroup-green-angular-src-v-angular-radio.ts"],"sourcesContent":["import '@sebgroup/green-core/components/icon/icons/triangle-exclamation.js'\n\nimport {\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Injectable,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Self,\n} from '@angular/core'\nimport { NgControl } from '@angular/forms'\nimport { TRANSLOCO_SCOPE, TranslocoScope } from '@jsverse/transloco'\n\nimport { NggvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor'\n\n/** @internal Internal class used to uncheck radio buttons with the matching name. */\n@Injectable()\nexport class NggvRadioControlRegistry {\n private _radios: any[] = []\n\n add(control: NgControl, radio: NggvRadioComponent) {\n this._radios.push([control, radio])\n }\n\n remove(radio: NggvRadioComponent) {\n for (let i = this._radios.length - 1; i >= 0; --i) {\n if (this._radios[i][1] === radio) {\n this._radios.splice(i, 1)\n return\n }\n }\n }\n\n select(radio: NggvRadioComponent) {\n this._radios.forEach((controlPair) => {\n if (this._isSameGroup(controlPair, radio) && controlPair[1] !== radio) {\n controlPair[1].writeValue(radio.value)\n }\n })\n }\n\n private _isSameGroup(\n controlPair: [NgControl, NggvRadioComponent],\n radio: NggvRadioComponent,\n ) {\n if (!controlPair[0].control) return false\n return (\n //@ts-expect-error internal properties not exposed\n controlPair[0]._parent === radio.ngControl._parent &&\n controlPair[1].name === radio.name\n )\n }\n}\n\n/**\n * Use radio buttons when users must select one option in a list with exclusive options out of a set of two or more options.\n * https://designlibrary.sebgroup.com/components/component-radiobutton\n */\n@Component({\n selector: 'nggv-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n providers: [NggvRadioControlRegistry],\n standalone: false\n})\nexport class NggvRadioComponent\n extends NggvBaseControlValueAccessorComponent\n implements OnInit, OnDestroy\n{\n /**\n * Special property used for selecting DOM elements during automated UI testing.\n */\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'radio'\n /**\n * Sets class on host element based on size input for styling\n */\n @HostBinding('class') @Input() size: 'small' | 'large' = 'large'\n /**\n * Syncs a FormControl in an existing FormGroup to a form control element by name.\n */\n @Input() formControlName?: string\n /**\n * Decides if error should be connected to each individual radio button.\n * If true, errors will be shown in nggv-radio-group component.\n * If false, errors will be show below each radio button\n */\n isGroup = false\n /**\n * Creates a new RadioComponent\n * @param ngControl optional FormControl provided when component is used in a form, through dependency injection.\n * @param registry internal registry used to uncheck radio buttons with the matching name, through dependency injection.\n * @param cdr change detection reference for rendering purposes.\n */\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n @Optional()\n @Inject(TRANSLOCO_SCOPE)\n protected translocoScope: TranslocoScope,\n protected registry: NggvRadioControlRegistry,\n protected cdr: ChangeDetectorRef,\n ) {\n super(ngControl, translocoScope, cdr)\n }\n\n ngOnInit() {\n super.ngOnInit()\n this._checkName()\n this.registry.add(this.ngControl, this)\n // Check if nggv-radio-group is present connected to the same formControl\n if (\n Array.from(\n document.querySelectorAll(\n `nggv-radio-group[formcontrolname=${this.name}]`,\n ),\n ).length\n ) {\n this.isGroup = true\n }\n }\n\n ngOnDestroy() {\n this.registry.remove(this)\n }\n\n /** @internal */\n onInputChange(event: Event) {\n event.stopPropagation()\n if (this.disabled) return\n this.onChange(this.state)\n }\n\n /** Writes a new value of true or false based on if argument matches this components value property. */\n writeValue(value: any): void {\n // Phantom null value on first load https://github.com/angular/angular/pull/38140\n super.writeValue(value === this.value)\n }\n\n /** Registers a callback function that is called when the child input element's value changes. */\n registerOnChange(fn: (value: any) => any) {\n // Override default to update registry\n this.onChange = () => {\n fn(this.value)\n this.registry.select(this)\n }\n }\n\n /** Checks that the name properties match and updates name property if only formControlName is given. */\n private _checkName(): void {\n if (\n this.name &&\n this.formControlName &&\n this.name !== this.formControlName\n ) {\n throw new Error(`\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: <input type=\"radio\" formControlName=\"food\" name=\"food\">\n `)\n }\n if (!this.name && this.formControlName) this.name = this.formControlName\n }\n}\n","<!-- LOCKED INPUT -->\n<div *ngIf=\"locked && state\">\n <div\n [id]=\"id + '-radio'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n >\n {{ label }}\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl ?? null; context: { $implicit: value }\"\n ></ng-template>\n </div>\n</div>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div>\n <!-- RADIO BUTTON FIELD -->\n <label [attr.for]=\"id + '-radio'\" class=\"form-control\">\n <input\n #input\n type=\"radio\"\n [attr.id]=\"id + '-radio'\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [attr.required]=\"required || null\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [attr.aria-label]=\"description\"\n [checked]=\"state\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onInputChange($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n\n <!-- LABEL -->\n {{ label }}\n <ng-template\n *ngTemplateOutlet=\"\n labelContentTpl ?? null;\n context: { $implicit: value }\n \"\n ></ng-template>\n <i></i>\n </label>\n </div>\n\n <!-- ERRORS -->\n <!-- if no nggv-radio-group is present -->\n @if (!isGroup) {\n <ng-container *transloco=\"let t; read: scope\">\n <div\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-radio'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ error }}\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n </ng-container>\n }\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n","import '@sebgroup/green-core/components/icon/icons/triangle-exclamation.js'\n\nimport {\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n OnInit,\n Optional,\n Self,\n} from '@angular/core'\nimport { NgControl } from '@angular/forms'\nimport { TRANSLOCO_SCOPE, TranslocoScope } from '@jsverse/transloco'\n\nimport { NggvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor'\n\n/**\n * Creates a wrapper around a group of radio buttons.\n * If there is an error to the form control connected to the radio buttons, it will be shown once below instead of below every individual radio button\n */\n@Component({\n selector: 'nggv-radio-group',\n templateUrl: './radio-group.component.html',\n styleUrls: ['./radio-group.component.scss'],\n standalone: false\n})\nexport class NggvRadioGroupComponent\n extends NggvBaseControlValueAccessorComponent\n implements OnInit\n{\n /**\n * Special property used for selecting DOM elements during automated UI testing.\n */\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'radio-group'\n /**\n * Sets class on host element based on size input for styling\n */\n @HostBinding('class') @Input() size: 'small' | 'large' = 'large'\n /**\n * Syncs a FormControl in an existing FormGroup to a form control element by name.\n */\n @Input() formControlName?: string\n /**\n * Sets \"flex-direction\" of parent of radio buttons.\n */\n @Input() direction?: 'row' | 'column' = 'column'\n /**\n * Creates a new RadioComponent\n * @param ngControl optional FormControl provided when component is used in a form, through dependency injection.\n * @param cdr change detection reference for rendering purposes.\n */\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n @Optional()\n @Inject(TRANSLOCO_SCOPE)\n protected translocoScope: TranslocoScope,\n protected cdr: ChangeDetectorRef,\n ) {\n super(ngControl, translocoScope, cdr)\n }\n\n ngOnInit() {\n super.ngOnInit()\n this._checkName()\n }\n\n /** Checks that the name properties match and updates name property if only formControlName is given. */\n private _checkName(): void {\n if (\n this.name &&\n this.formControlName &&\n this.name !== this.formControlName\n ) {\n throw new Error(`\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: <input type=\"radio\" formControlName=\"food\" name=\"food\">\n `)\n }\n\n if (!this.name && this.formControlName) this.name = this.formControlName\n }\n}\n","<!-- RADIO BUTTONS -->\n<div [ngClass]=\"direction === 'column' ? 'direction-column' : 'direction-row'\">\n <ng-content></ng-content>\n</div>\n<!-- ERRORS -->\n<ng-container *transloco=\"let t; read: scope\">\n <div\n class=\"form-info form-info--error\"\n [attr.for]=\"ngControl?.name + '-radio-group'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n size=\"16px\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ error }}\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n</ng-container>\n","import { CommonModule } from '@angular/common'\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'\n\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared'\nimport { NggvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { NggvRadioGroupComponent } from './radio-group/radio-group.component'\nimport { NggvRadioComponent } from './radio.component'\n\n@NgModule({\n declarations: [NggvRadioComponent, NggvRadioGroupComponent],\n imports: [CommonModule, NggvI18nModule, NggCoreWrapperModule],\n exports: [NggvRadioComponent, NggvRadioGroupComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NggvRadioModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sebgroup-green-angular-src-v-angular-radio.mjs","sources":["../../../../libs/angular/src/v-angular/radio/radio.component.ts","../../../../libs/angular/src/v-angular/radio/radio.component.html","../../../../libs/angular/src/v-angular/radio/radio-group/radio-group.component.ts","../../../../libs/angular/src/v-angular/radio/radio-group/radio-group.component.html","../../../../libs/angular/src/v-angular/radio/radio.module.ts","../../../../libs/angular/src/v-angular/radio/sebgroup-green-angular-src-v-angular-radio.ts"],"sourcesContent":["import '@sebgroup/green-core/components/icon/icons/triangle-exclamation.js'\n\nimport {\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Injectable,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Self,\n} from '@angular/core'\nimport { NgControl } from '@angular/forms'\nimport { TRANSLOCO_SCOPE, TranslocoScope } from '@jsverse/transloco'\n\nimport { NggvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor'\n\n/** @internal Internal class used to uncheck radio buttons with the matching name. */\n@Injectable()\nexport class NggvRadioControlRegistry {\n private _radios: any[] = []\n\n add(control: NgControl, radio: NggvRadioComponent) {\n this._radios.push([control, radio])\n }\n\n remove(radio: NggvRadioComponent) {\n for (let i = this._radios.length - 1; i >= 0; --i) {\n if (this._radios[i][1] === radio) {\n this._radios.splice(i, 1)\n return\n }\n }\n }\n\n select(radio: NggvRadioComponent) {\n this._radios.forEach((controlPair) => {\n if (this._isSameGroup(controlPair, radio) && controlPair[1] !== radio) {\n controlPair[1].writeValue(radio.value)\n }\n })\n }\n\n private _isSameGroup(\n controlPair: [NgControl, NggvRadioComponent],\n radio: NggvRadioComponent,\n ) {\n if (!controlPair[0].control) return false\n return (\n //@ts-expect-error internal properties not exposed\n controlPair[0]._parent === radio.ngControl._parent &&\n controlPair[1].name === radio.name\n )\n }\n}\n\n/**\n * Use radio buttons when users must select one option in a list with exclusive options out of a set of two or more options.\n * https://designlibrary.sebgroup.com/components/component-radiobutton\n */\n@Component({\n selector: 'nggv-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n providers: [NggvRadioControlRegistry],\n standalone: false\n})\nexport class NggvRadioComponent\n extends NggvBaseControlValueAccessorComponent\n implements OnInit, OnDestroy\n{\n /**\n * Special property used for selecting DOM elements during automated UI testing.\n */\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'radio'\n /**\n * Sets class on host element based on size input for styling\n */\n @HostBinding('class') @Input() size: 'small' | 'large' = 'large'\n /**\n * Syncs a FormControl in an existing FormGroup to a form control element by name.\n */\n @Input() formControlName?: string\n /**\n * Decides if error should be connected to each individual radio button.\n * If true, errors will be shown in nggv-radio-group component.\n * If false, errors will be show below each radio button\n */\n isGroup = false\n /**\n * Creates a new RadioComponent\n * @param ngControl optional FormControl provided when component is used in a form, through dependency injection.\n * @param registry internal registry used to uncheck radio buttons with the matching name, through dependency injection.\n * @param cdr change detection reference for rendering purposes.\n */\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n @Optional()\n @Inject(TRANSLOCO_SCOPE)\n protected translocoScope: TranslocoScope,\n protected registry: NggvRadioControlRegistry,\n protected cdr: ChangeDetectorRef,\n ) {\n super(ngControl, translocoScope, cdr)\n }\n\n ngOnInit() {\n super.ngOnInit()\n this._checkName()\n this.registry.add(this.ngControl, this)\n // Check if nggv-radio-group is present connected to the same formControl\n if (\n Array.from(\n document.querySelectorAll(\n `nggv-radio-group[formcontrolname=${this.name}]`,\n ),\n ).length\n ) {\n this.isGroup = true\n }\n }\n\n ngOnDestroy() {\n this.registry.remove(this)\n }\n\n /** @internal */\n onInputChange(event: Event) {\n event.stopPropagation()\n if (this.disabled) return\n this.onChange(this.state)\n }\n\n /** Writes a new value of true or false based on if argument matches this components value property. */\n writeValue(value: any): void {\n // Phantom null value on first load https://github.com/angular/angular/pull/38140\n super.writeValue(value === this.value)\n }\n\n /** Registers a callback function that is called when the child input element's value changes. */\n registerOnChange(fn: (value: any) => any) {\n // Override default to update registry\n this.onChange = () => {\n fn(this.value)\n this.registry.select(this)\n }\n }\n\n /** Checks that the name properties match and updates name property if only formControlName is given. */\n private _checkName(): void {\n if (\n this.name &&\n this.formControlName &&\n this.name !== this.formControlName\n ) {\n throw new Error(`\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: <input type=\"radio\" formControlName=\"food\" name=\"food\">\n `)\n }\n if (!this.name && this.formControlName) this.name = this.formControlName\n }\n}\n","<!-- LOCKED INPUT -->\n<div *ngIf=\"locked && state\">\n <div\n [id]=\"id + '-radio'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n >\n {{ label }}\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl ?? null; context: { $implicit: value }\"\n ></ng-template>\n </div>\n</div>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div>\n <!-- RADIO BUTTON FIELD -->\n <label [attr.for]=\"id + '-radio'\" class=\"form-control\">\n <input\n #input\n type=\"radio\"\n [attr.id]=\"id + '-radio'\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [attr.required]=\"required || null\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [attr.aria-label]=\"description\"\n [checked]=\"state\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onInputChange($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n\n <!-- LABEL -->\n {{ label }}\n <ng-template\n *ngTemplateOutlet=\"\n labelContentTpl ?? null;\n context: { $implicit: value }\n \"\n ></ng-template>\n <i></i>\n </label>\n </div>\n\n <!-- ERRORS -->\n <!-- if no nggv-radio-group is present -->\n @if (!isGroup) {\n <ng-container *transloco=\"let t; read: scope\">\n <div\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-radio'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ error }}\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n </ng-container>\n }\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n","import '@sebgroup/green-core/components/icon/icons/triangle-exclamation.js'\n\nimport {\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n OnInit,\n Optional,\n Self,\n} from '@angular/core'\nimport { NgControl } from '@angular/forms'\nimport { TRANSLOCO_SCOPE, TranslocoScope } from '@jsverse/transloco'\n\nimport { NggvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor'\n\n/**\n * Creates a wrapper around a group of radio buttons.\n * If there is an error to the form control connected to the radio buttons, it will be shown once below instead of below every individual radio button\n */\n@Component({\n selector: 'nggv-radio-group',\n templateUrl: './radio-group.component.html',\n styleUrls: ['./radio-group.component.scss'],\n standalone: false\n})\nexport class NggvRadioGroupComponent\n extends NggvBaseControlValueAccessorComponent\n implements OnInit\n{\n /**\n * Special property used for selecting DOM elements during automated UI testing.\n */\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'radio-group'\n /**\n * Sets class on host element based on size input for styling\n */\n @HostBinding('class') @Input() size: 'small' | 'large' = 'large'\n /**\n * Syncs a FormControl in an existing FormGroup to a form control element by name.\n */\n @Input() formControlName?: string\n /**\n * Sets \"flex-direction\" of parent of radio buttons.\n */\n @Input() direction?: 'row' | 'column' = 'column'\n /**\n * Creates a new RadioComponent\n * @param ngControl optional FormControl provided when component is used in a form, through dependency injection.\n * @param cdr change detection reference for rendering purposes.\n */\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n @Optional()\n @Inject(TRANSLOCO_SCOPE)\n protected translocoScope: TranslocoScope,\n protected cdr: ChangeDetectorRef,\n ) {\n super(ngControl, translocoScope, cdr)\n }\n\n ngOnInit() {\n super.ngOnInit()\n this._checkName()\n }\n\n /** Checks that the name properties match and updates name property if only formControlName is given. */\n private _checkName(): void {\n if (\n this.name &&\n this.formControlName &&\n this.name !== this.formControlName\n ) {\n throw new Error(`\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: <input type=\"radio\" formControlName=\"food\" name=\"food\">\n `)\n }\n\n if (!this.name && this.formControlName) this.name = this.formControlName\n }\n}\n","<!-- RADIO BUTTONS -->\n<div [ngClass]=\"direction === 'column' ? 'direction-column' : 'direction-row'\">\n <ng-content></ng-content>\n</div>\n<!-- ERRORS -->\n<ng-container *transloco=\"let t; read: scope\">\n <div\n class=\"form-info form-info--error\"\n [attr.for]=\"ngControl?.name + '-radio-group'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n size=\"16px\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ error }}\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n</ng-container>\n","import { CommonModule } from '@angular/common'\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'\n\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared'\nimport { NggvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { NggvRadioGroupComponent } from './radio-group/radio-group.component'\nimport { NggvRadioComponent } from './radio.component'\n\n@NgModule({\n declarations: [NggvRadioComponent, NggvRadioGroupComponent],\n imports: [CommonModule, NggvI18nModule, NggCoreWrapperModule],\n exports: [NggvRadioComponent, NggvRadioGroupComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NggvRadioModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -17,10 +17,10 @@ class SlugPipe {
|
|
|
17
17
|
.replace(/[^\w ]+/g, '')
|
|
18
18
|
.replace(/ +/g, '-');
|
|
19
19
|
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
21
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SlugPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
21
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: SlugPipe, isStandalone: false, name: "slug" }); }
|
|
22
22
|
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SlugPipe, decorators: [{
|
|
24
24
|
type: Pipe,
|
|
25
25
|
args: [{
|
|
26
26
|
name: 'slug',
|
|
@@ -29,11 +29,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImpor
|
|
|
29
29
|
}] });
|
|
30
30
|
|
|
31
31
|
class NggvSlugPipeModule {
|
|
32
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
33
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
34
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvSlugPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
33
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: NggvSlugPipeModule, declarations: [SlugPipe], imports: [CommonModule], exports: [SlugPipe] }); }
|
|
34
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvSlugPipeModule, imports: [CommonModule] }); }
|
|
35
35
|
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvSlugPipeModule, decorators: [{
|
|
37
37
|
type: NgModule,
|
|
38
38
|
args: [{
|
|
39
39
|
declarations: [SlugPipe],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sebgroup-green-angular-src-v-angular-slug.mjs","sources":["../../../../libs/angular/src/v-angular/slug/slug.pipe.ts","../../../../libs/angular/src/v-angular/slug/slug.module.ts","../../../../libs/angular/src/v-angular/slug/sebgroup-green-angular-src-v-angular-slug.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core'\n\n/** Pipe used to transform text with special characters into a simple kebab-case id. */\n@Pipe({\n name: 'slug',\n standalone: false\n})\nexport class SlugPipe implements PipeTransform {\n /**\n * Function for executing the transformation to kebab-case id.\n * @param value the text with special characters which to transform.\n */\n transform(value?: string): unknown {\n if (!value) {\n return value\n }\n return value\n .toLowerCase()\n .replace(/[^\\w ]+/g, '')\n .replace(/ +/g, '-')\n }\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { SlugPipe } from './slug.pipe'\n\n@NgModule({\n declarations: [SlugPipe],\n imports: [CommonModule],\n exports: [SlugPipe],\n})\nexport class NggvSlugPipeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAEA;MAKa,QAAQ,CAAA;AACnB;;;AAGG;AACH,IAAA,SAAS,CAAC,KAAc,EAAA;QACtB,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,KAAK;QACd;AACA,QAAA,OAAO;AACJ,aAAA,WAAW;AACX,aAAA,OAAO,CAAC,UAAU,EAAE,EAAE;AACtB,aAAA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;IACxB
|
|
1
|
+
{"version":3,"file":"sebgroup-green-angular-src-v-angular-slug.mjs","sources":["../../../../libs/angular/src/v-angular/slug/slug.pipe.ts","../../../../libs/angular/src/v-angular/slug/slug.module.ts","../../../../libs/angular/src/v-angular/slug/sebgroup-green-angular-src-v-angular-slug.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core'\n\n/** Pipe used to transform text with special characters into a simple kebab-case id. */\n@Pipe({\n name: 'slug',\n standalone: false\n})\nexport class SlugPipe implements PipeTransform {\n /**\n * Function for executing the transformation to kebab-case id.\n * @param value the text with special characters which to transform.\n */\n transform(value?: string): unknown {\n if (!value) {\n return value\n }\n return value\n .toLowerCase()\n .replace(/[^\\w ]+/g, '')\n .replace(/ +/g, '-')\n }\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { SlugPipe } from './slug.pipe'\n\n@NgModule({\n declarations: [SlugPipe],\n imports: [CommonModule],\n exports: [SlugPipe],\n})\nexport class NggvSlugPipeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAEA;MAKa,QAAQ,CAAA;AACnB;;;AAGG;AACH,IAAA,SAAS,CAAC,KAAc,EAAA;QACtB,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,KAAK;QACd;AACA,QAAA,OAAO;AACJ,aAAA,WAAW;AACX,aAAA,OAAO,CAAC,UAAU,EAAE,EAAE;AACtB,aAAA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;IACxB;+GAbW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAR,QAAQ,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,CAAA;;4FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAJpB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCIY,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,CAJd,QAAQ,CAAA,EAAA,OAAA,EAAA,CACb,YAAY,aACZ,QAAQ,CAAA,EAAA,CAAA,CAAA;AAEP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAHnB,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,QAAQ,CAAC;oBACxB,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,QAAQ,CAAC;AACpB,iBAAA;;;ACTD;;AAEG;;;;"}
|