@eui/ecl 22.0.0-alpha.27 → 22.0.0-alpha.29
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/docs/changelog.html +22 -0
- package/docs/components/EclRadioHelpComponent.html +76 -66
- package/docs/components/EclRadioLabelComponent.html +59 -27
- package/docs/directives/EclRadioDirective.html +171 -47
- package/docs/directives/EclRadioInputDirective.html +0 -46
- package/docs/js/search/search_index.js +2 -2
- package/docs/json/EclRadioDirective.md +2 -2
- package/docs/json/EclRadioHelpComponent.md +4 -1
- package/docs/json/EclRadioLabelComponent.md +6 -2
- package/docs/json/documentation.json +243 -141
- package/docs/llms.txt +21 -8
- package/docs/miscellaneous/variables.html +20 -20
- package/docs/properties.html +1 -1
- package/fesm2022/eui-ecl-components-ecl-radio.mjs +108 -77
- package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
- package/package.json +1 -1
- package/types/eui-ecl-components-ecl-radio.d.ts +68 -29
- package/types/eui-ecl-components-ecl-radio.d.ts.map +1 -1
package/docs/llms.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# eui documentation
|
|
2
2
|
|
|
3
|
-
> Generated by compodoc 2.0.0 at 2026-09-
|
|
3
|
+
> Generated by compodoc 2.0.0 at 2026-09-28T12:10:29.742Z, llm-md export.
|
|
4
4
|
|
|
5
5
|
## Modules
|
|
6
6
|
|
|
@@ -2306,11 +2306,17 @@ Selector: `[eclRadioHelp]`
|
|
|
2306
2306
|
Description: Component that displays help text for the ECL radio input. Supports styling for the disabled state and applies the proper ECL CSS classes. Should be placed inside a component using eclRadio.
|
|
2307
2307
|
|
|
2308
2308
|
Inputs:
|
|
2309
|
-
- `isDisabled: boolean = false` — Adds styling for a disabled help text.
|
|
2309
|
+
- `isDisabled: boolean = false` — Adds styling for a disabled help text. Exposed as a model so the parent eclRadio directive can synchronize the disabled state onto the projected help text.
|
|
2310
2310
|
- `class: string`
|
|
2311
2311
|
- `e2eAttr: any`
|
|
2312
2312
|
- `tabindex: number`
|
|
2313
2313
|
|
|
2314
|
+
Outputs:
|
|
2315
|
+
- `isDisabled: boolean = false` — Adds styling for a disabled help text. Exposed as a model so the parent eclRadio directive can synchronize the disabled state onto the projected help text.
|
|
2316
|
+
|
|
2317
|
+
Properties:
|
|
2318
|
+
- `cssClasses: unknown = computed(() => [this.getCssClasses('ecl-radio__help')].join(' ').trim())` — Returns the CSS classes applied to the host element. Includes the base ecl-radio\_\_help class.
|
|
2319
|
+
|
|
2314
2320
|
Methods:
|
|
2315
2321
|
- `getCssClasses(rootClass: string): string`
|
|
2316
2322
|
|
|
@@ -2322,12 +2328,16 @@ Selector: `[eclRadioLabel]`
|
|
|
2322
2328
|
Description: Component representing a label for an ECL radio button. Used inside an element with the \[eclRadio\] directive to provide a styled label that can reflect the radio's state.
|
|
2323
2329
|
|
|
2324
2330
|
Inputs:
|
|
2325
|
-
- `isDisabled: boolean = false` — Adds styling for a disabled state.
|
|
2326
|
-
- `isInvalid: boolean = false` — Adds styling for an invalid state.
|
|
2331
|
+
- `isDisabled: boolean = false` — Adds styling for a disabled state. Exposed as a model so the parent eclRadio directive can synchronize the disabled state onto the label.
|
|
2332
|
+
- `isInvalid: boolean = false` — Adds styling for an invalid state. Exposed as a model so the parent eclRadio directive can synchronize the invalid state onto the label.
|
|
2327
2333
|
- `class: string`
|
|
2328
2334
|
- `e2eAttr: any`
|
|
2329
2335
|
- `tabindex: number`
|
|
2330
2336
|
|
|
2337
|
+
Outputs:
|
|
2338
|
+
- `isDisabled: boolean = false` — Adds styling for a disabled state. Exposed as a model so the parent eclRadio directive can synchronize the disabled state onto the label.
|
|
2339
|
+
- `isInvalid: boolean = false` — Adds styling for an invalid state. Exposed as a model so the parent eclRadio directive can synchronize the invalid state onto the label.
|
|
2340
|
+
|
|
2331
2341
|
Methods:
|
|
2332
2342
|
- `getCssClasses(rootClass: string): string`
|
|
2333
2343
|
|
|
@@ -5492,8 +5502,8 @@ Selector: `[eclRadio]`
|
|
|
5492
5502
|
Description: Directive that applies the ECL radio button styling and behavior. Should be applied to native radio input elements to enhance them with ECL styles and support for invalid, disabled and binary states.
|
|
5493
5503
|
|
|
5494
5504
|
Inputs:
|
|
5495
|
-
- `isDisabled: boolean = false` —
|
|
5496
|
-
- `isInvalid: boolean = false` —
|
|
5505
|
+
- `isDisabled: boolean = false` — Consumer-provided disabled state, bound as an attribute on the host element.
|
|
5506
|
+
- `isInvalid: boolean = false` — Consumer-provided invalid state, bound as an attribute on the host element.
|
|
5497
5507
|
- `isBinary: boolean = undefined` — Adds the ecl-radio--binary class when true.
|
|
5498
5508
|
- `class: string`
|
|
5499
5509
|
- `e2eAttr: any`
|
|
@@ -5502,8 +5512,11 @@ Inputs:
|
|
|
5502
5512
|
Properties:
|
|
5503
5513
|
- `eclRadioHelpComponent: unknown = contentChild(forwardRef(() => EclRadioHelpComponent))` — Reference to the projected EclRadioHelpComponent, if present. Used to synchronize the disabled state with the help text.
|
|
5504
5514
|
- `eclRadioLabelComponent: unknown = contentChild(forwardRef(() => EclRadioLabelComponent))` — Reference to the projected EclRadioLabelComponent, if present. Used to synchronize disabled and invalid states with the label.
|
|
5515
|
+
- `isDisabled: unknown = computed(() => this.controlDisabled() ?? this.disabledInput())` — Effective disabled state, preferring the form-control-driven value when present. Adds the ecl-radio--disabled class to the host element when true. Precedence: when a child eclRadioInput is bound to a form control it calls setControlState , making controlDisabled a concrete boolean that takes over. While controlDisabled is undefined (no form control in play), the ?? falls back to the consumer-provided disabledInput attribute value.
|
|
5516
|
+
- `isInvalid: unknown = computed(() => this.controlInvalid() ?? this.invalidInput())` — Effective invalid state, preferring the form-control-driven value when present. Adds the ecl-radio--invalid class to the host element when true. Precedence: when a child eclRadioInput is bound to a form control it calls setControlState , making controlInvalid a concrete boolean that takes over. While controlInvalid is undefined (no form control in play), the ?? falls back to the consumer-provided invalidInput attribute value.
|
|
5505
5517
|
|
|
5506
5518
|
Methods:
|
|
5519
|
+
- `setControlState(isInvalid: boolean, isDisabled: boolean): void` — Called by the child eclRadioInput directive to propagate the disabled and invalid states derived from the associated form control.
|
|
5507
5520
|
- `getCssClasses(rootClass: string): string`
|
|
5508
5521
|
|
|
5509
5522
|
### EclRadioInputDirective
|
|
@@ -7518,10 +7531,10 @@ Properties:
|
|
|
7518
7531
|
|
|
7519
7532
|
## Public variables
|
|
7520
7533
|
|
|
7521
|
-
- `ARROW_SIZE: string = '0.5rem'` — Half the arrow's own width, matching ECL's arrowSize .
|
|
7522
|
-
Defined in `packages/ecl/components/ecl-site-header/language/ecl-site-header-language.component.ts`
|
|
7523
7534
|
- `ARROW_SIZE: string = '0.5rem'` — Half the arrow's own width, matching ECL's arrowSize .
|
|
7524
7535
|
Defined in `packages/ecl/components/ecl-site-header/login/ecl-site-header-login.component.ts`
|
|
7536
|
+
- `ARROW_SIZE: string = '0.5rem'` — Half the arrow's own width, matching ECL's arrowSize .
|
|
7537
|
+
Defined in `packages/ecl/components/ecl-site-header/language/ecl-site-header-language.component.ts`
|
|
7525
7538
|
- `ARROW_SIZE: string = '0.5rem'` — Half the arrow's own width, matching ECL's arrowSize .
|
|
7526
7539
|
Defined in `packages/ecl/components/ecl-site-header/search/ecl-site-header-search.component.ts`
|
|
7527
7540
|
- `AVAILABLE_NON_EU_LOGO_COUNTRY_CODES: string[] = ['ar', 'ca', 'is', 'jp', 'lb', 'no', 'ru', 'sw', 'tr', 'uk', 'zh'] as const`
|
|
@@ -138,10 +138,10 @@
|
|
|
138
138
|
<td class="col-md-4">
|
|
139
139
|
<ul class="index-list">
|
|
140
140
|
<li>
|
|
141
|
-
<a href="#ARROW_SIZE" title="packages/ecl/components/ecl-site-header/
|
|
141
|
+
<a href="#ARROW_SIZE" title="packages/ecl/components/ecl-site-header/login/ecl-site-header-login.component.ts" class="reference-link "><span class="reference-badge reference-badge--variable" aria-hidden="true">V</span><span class="reference-link-label"><b>ARROW_SIZE</b> (packages/.../ecl-site-header-login.component.ts)</span></a>
|
|
142
142
|
</li>
|
|
143
143
|
<li>
|
|
144
|
-
<a href="#ARROW_SIZE" title="packages/ecl/components/ecl-site-header/
|
|
144
|
+
<a href="#ARROW_SIZE" title="packages/ecl/components/ecl-site-header/language/ecl-site-header-language.component.ts" class="reference-link "><span class="reference-badge reference-badge--variable" aria-hidden="true">V</span><span class="reference-link-label"><b>ARROW_SIZE</b> (packages/.../ecl-site-header-language.component.ts)</span></a>
|
|
145
145
|
</li>
|
|
146
146
|
<li>
|
|
147
147
|
<a href="#ARROW_SIZE" title="packages/ecl/components/ecl-site-header/search/ecl-site-header-search.component.ts" class="reference-link "><span class="reference-badge reference-badge--variable" aria-hidden="true">V</span><span class="reference-link-label"><b>ARROW_SIZE</b> (packages/.../ecl-site-header-search.component.ts)</span></a>
|
|
@@ -411,7 +411,7 @@
|
|
|
411
411
|
</table>
|
|
412
412
|
</section>
|
|
413
413
|
|
|
414
|
-
<h3>packages/ecl/components/ecl-site-header/
|
|
414
|
+
<h3>packages/ecl/components/ecl-site-header/login/ecl-site-header-login.component.ts</h3>
|
|
415
415
|
<section data-compodoc="block-properties">
|
|
416
416
|
<h3></h3> <table class="table table-sm table-bordered">
|
|
417
417
|
<tbody>
|
|
@@ -445,67 +445,67 @@
|
|
|
445
445
|
|
|
446
446
|
</tbody>
|
|
447
447
|
</table>
|
|
448
|
-
|
|
449
|
-
<h3>packages/ecl/components/ecl-site-header/login/ecl-site-header-login.component.ts</h3>
|
|
450
|
-
<section data-compodoc="block-properties">
|
|
451
|
-
<h3></h3> <table class="table table-sm table-bordered">
|
|
448
|
+
<table class="table table-sm table-bordered">
|
|
452
449
|
<tbody>
|
|
453
450
|
<tr>
|
|
454
451
|
<td class="col-md-4">
|
|
455
|
-
<a name="
|
|
452
|
+
<a name="RESIZE_DEBOUNCE"></a>
|
|
456
453
|
<span class="name">
|
|
457
|
-
<span ><b>
|
|
458
|
-
<a href="#
|
|
454
|
+
<span ><b>RESIZE_DEBOUNCE</b></span>
|
|
455
|
+
<a href="#RESIZE_DEBOUNCE"><span class="icon ion-ios-link"></span></a>
|
|
459
456
|
</span>
|
|
460
457
|
</td>
|
|
461
458
|
</tr>
|
|
462
459
|
<tr>
|
|
463
460
|
<td class="col-md-4">
|
|
464
|
-
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/
|
|
461
|
+
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
|
|
465
462
|
|
|
466
463
|
</td>
|
|
467
464
|
</tr>
|
|
468
465
|
<tr>
|
|
469
466
|
<td class="col-md-4">
|
|
470
|
-
<i>Default value : </i><code
|
|
467
|
+
<i>Default value : </i><code>200</code>
|
|
471
468
|
</td>
|
|
472
469
|
</tr>
|
|
473
470
|
|
|
474
471
|
<tr>
|
|
475
472
|
<td class="col-md-4">
|
|
476
|
-
<div class="io-description"><p>
|
|
473
|
+
<div class="io-description"><p>Debounce for the resize recomputation, matching ECL's <code>handleResize</code>.</p>
|
|
477
474
|
</div>
|
|
478
475
|
</td>
|
|
479
476
|
</tr>
|
|
480
477
|
|
|
481
478
|
</tbody>
|
|
482
479
|
</table>
|
|
483
|
-
|
|
480
|
+
</section>
|
|
481
|
+
<h3>packages/ecl/components/ecl-site-header/language/ecl-site-header-language.component.ts</h3>
|
|
482
|
+
<section data-compodoc="block-properties">
|
|
483
|
+
<h3></h3> <table class="table table-sm table-bordered">
|
|
484
484
|
<tbody>
|
|
485
485
|
<tr>
|
|
486
486
|
<td class="col-md-4">
|
|
487
|
-
<a name="
|
|
487
|
+
<a name="ARROW_SIZE"></a>
|
|
488
488
|
<span class="name">
|
|
489
|
-
<span ><b>
|
|
490
|
-
<a href="#
|
|
489
|
+
<span ><b>ARROW_SIZE</b></span>
|
|
490
|
+
<a href="#ARROW_SIZE"><span class="icon ion-ios-link"></span></a>
|
|
491
491
|
</span>
|
|
492
492
|
</td>
|
|
493
493
|
</tr>
|
|
494
494
|
<tr>
|
|
495
495
|
<td class="col-md-4">
|
|
496
|
-
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/
|
|
496
|
+
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
|
|
497
497
|
|
|
498
498
|
</td>
|
|
499
499
|
</tr>
|
|
500
500
|
<tr>
|
|
501
501
|
<td class="col-md-4">
|
|
502
|
-
<i>Default value : </i><code
|
|
502
|
+
<i>Default value : </i><code>'0.5rem'</code>
|
|
503
503
|
</td>
|
|
504
504
|
</tr>
|
|
505
505
|
|
|
506
506
|
<tr>
|
|
507
507
|
<td class="col-md-4">
|
|
508
|
-
<div class="io-description"><p>
|
|
508
|
+
<div class="io-description"><p>Half the arrow's own width, matching ECL's <code>arrowSize</code>.</p>
|
|
509
509
|
</div>
|
|
510
510
|
</td>
|
|
511
511
|
</tr>
|
package/docs/properties.html
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { model, computed, Component, ViewEncapsulation, input, booleanAttribute, signal, contentChild, forwardRef, effect, Directive, inject, ChangeDetectorRef } from '@angular/core';
|
|
3
3
|
import { ECLBaseDirective } from '@eui/ecl/core';
|
|
4
4
|
import { NgControl } from '@angular/forms';
|
|
5
5
|
|
|
@@ -14,32 +14,29 @@ class EclRadioHelpComponent extends ECLBaseDirective {
|
|
|
14
14
|
super(...arguments);
|
|
15
15
|
/**
|
|
16
16
|
* Adds styling for a disabled help text.
|
|
17
|
+
*
|
|
18
|
+
* Exposed as a model so the parent `eclRadio` directive can synchronize
|
|
19
|
+
* the disabled state onto the projected help text.
|
|
17
20
|
*/
|
|
18
|
-
this.isDisabled = false
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
this.isDisabled = model(false, /* @ts-ignore */
|
|
22
|
+
...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
|
|
23
|
+
/**
|
|
24
|
+
* Returns the CSS classes applied to the host element.
|
|
25
|
+
* Includes the base ecl-radio__help class.
|
|
26
|
+
*/
|
|
27
|
+
this.cssClasses = computed(() => [this.getCssClasses('ecl-radio__help')].join(' ').trim(), /* @ts-ignore */
|
|
28
|
+
...(ngDevMode ? [{ debugName: "cssClasses" }] : /* istanbul ignore next */ []));
|
|
26
29
|
}
|
|
27
30
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclRadioHelpComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
31
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EclRadioHelpComponent, isStandalone: true, selector: "[eclRadioHelp]", inputs: { isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isDisabled: "isDisabledChange" }, host: { properties: { "class": "cssClasses()", "class.ecl-radio__help--disabled": "isDisabled()" } }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
|
|
29
32
|
}
|
|
30
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclRadioHelpComponent, decorators: [{
|
|
31
34
|
type: Component,
|
|
32
|
-
args: [{ selector: '[eclRadioHelp]',
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
type: HostBinding,
|
|
38
|
-
args: ['class.ecl-radio__help--disabled']
|
|
39
|
-
}], cssClasses: [{
|
|
40
|
-
type: HostBinding,
|
|
41
|
-
args: ['class']
|
|
42
|
-
}] } });
|
|
35
|
+
args: [{ selector: '[eclRadioHelp]', host: {
|
|
36
|
+
'[class]': 'cssClasses()',
|
|
37
|
+
'[class.ecl-radio__help--disabled]': 'isDisabled()',
|
|
38
|
+
}, template: "<ng-content></ng-content>\n" }]
|
|
39
|
+
}], propDecorators: { isDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDisabled", required: false }] }, { type: i0.Output, args: ["isDisabledChange"] }] } });
|
|
43
40
|
|
|
44
41
|
/**
|
|
45
42
|
* Component representing a label for an ECL radio button.
|
|
@@ -52,12 +49,20 @@ class EclRadioLabelComponent extends ECLBaseDirective {
|
|
|
52
49
|
super(...arguments);
|
|
53
50
|
/**
|
|
54
51
|
* Adds styling for an invalid state.
|
|
52
|
+
*
|
|
53
|
+
* Exposed as a model so the parent `eclRadio` directive can synchronize
|
|
54
|
+
* the invalid state onto the label.
|
|
55
55
|
*/
|
|
56
|
-
this.isInvalid = false
|
|
56
|
+
this.isInvalid = model(false, /* @ts-ignore */
|
|
57
|
+
...(ngDevMode ? [{ debugName: "isInvalid" }] : /* istanbul ignore next */ []));
|
|
57
58
|
/**
|
|
58
59
|
* Adds styling for a disabled state.
|
|
60
|
+
*
|
|
61
|
+
* Exposed as a model so the parent `eclRadio` directive can synchronize
|
|
62
|
+
* the disabled state onto the label.
|
|
59
63
|
*/
|
|
60
|
-
this.isDisabled = false
|
|
64
|
+
this.isDisabled = model(false, /* @ts-ignore */
|
|
65
|
+
...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
|
|
61
66
|
}
|
|
62
67
|
/**
|
|
63
68
|
* Returns the CSS classes applied to the host element.
|
|
@@ -67,21 +72,14 @@ class EclRadioLabelComponent extends ECLBaseDirective {
|
|
|
67
72
|
return [super.getCssClasses('ecl-radio__label')].join(' ').trim();
|
|
68
73
|
}
|
|
69
74
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclRadioLabelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
70
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
75
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EclRadioLabelComponent, isStandalone: true, selector: "[eclRadioLabel]", inputs: { isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isInvalid: "isInvalidChange", isDisabled: "isDisabledChange" }, host: { properties: { "class": "cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<span class=\"ecl-radio__box\" [class.ecl-radio__box--disabled]=\"isDisabled()\" [class.ecl-radio__box--invalid]=\"isInvalid()\">\n <span class=\"ecl-radio__box-inner\"></span>\n</span>\n\n<ng-content></ng-content>\n", encapsulation: i0.ViewEncapsulation.None }); }
|
|
71
76
|
}
|
|
72
77
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclRadioLabelComponent, decorators: [{
|
|
73
78
|
type: Component,
|
|
74
|
-
args: [{ selector: '[eclRadioLabel]', encapsulation: ViewEncapsulation.None,
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}], isDisabled: [{
|
|
79
|
-
type: Input,
|
|
80
|
-
args: [{ transform: booleanAttribute }]
|
|
81
|
-
}], cssClasses: [{
|
|
82
|
-
type: HostBinding,
|
|
83
|
-
args: ['class']
|
|
84
|
-
}] } });
|
|
79
|
+
args: [{ selector: '[eclRadioLabel]', encapsulation: ViewEncapsulation.None, host: {
|
|
80
|
+
'[class]': 'cssClasses',
|
|
81
|
+
}, template: "<span class=\"ecl-radio__box\" [class.ecl-radio__box--disabled]=\"isDisabled()\" [class.ecl-radio__box--invalid]=\"isInvalid()\">\n <span class=\"ecl-radio__box-inner\"></span>\n</span>\n\n<ng-content></ng-content>\n" }]
|
|
82
|
+
}], propDecorators: { isInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInvalid", required: false }] }, { type: i0.Output, args: ["isInvalidChange"] }], isDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDisabled", required: false }] }, { type: i0.Output, args: ["isDisabledChange"] }] } });
|
|
85
83
|
|
|
86
84
|
/**
|
|
87
85
|
* Directive that applies the ECL radio button styling and behavior.
|
|
@@ -91,19 +89,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
|
|
|
91
89
|
*/
|
|
92
90
|
class EclRadioDirective extends ECLBaseDirective {
|
|
93
91
|
constructor() {
|
|
94
|
-
super(
|
|
92
|
+
super();
|
|
95
93
|
/**
|
|
96
94
|
* Adds the `ecl-radio--binary` class when true.
|
|
97
95
|
*/
|
|
98
96
|
this.isBinary = input(undefined, { ...(ngDevMode ? { debugName: "isBinary" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
99
97
|
/**
|
|
98
|
+
* Consumer-provided disabled state, bound as an attribute on the host element.
|
|
99
|
+
*/
|
|
100
|
+
this.disabledInput = input(false, { ...(ngDevMode ? { debugName: "disabledInput" } : /* istanbul ignore next */ {}), transform: booleanAttribute, alias: 'isDisabled' });
|
|
101
|
+
/**
|
|
102
|
+
* Consumer-provided invalid state, bound as an attribute on the host element.
|
|
103
|
+
*/
|
|
104
|
+
this.invalidInput = input(false, { ...(ngDevMode ? { debugName: "invalidInput" } : /* istanbul ignore next */ {}), transform: booleanAttribute, alias: 'isInvalid' });
|
|
105
|
+
/**
|
|
106
|
+
* Disabled state derived from the child `eclRadioInput` form control, if any.
|
|
107
|
+
* Overrides the consumer-provided value when the control drives the state.
|
|
108
|
+
*/
|
|
109
|
+
this.controlDisabled = signal(undefined, /* @ts-ignore */
|
|
110
|
+
...(ngDevMode ? [{ debugName: "controlDisabled" }] : /* istanbul ignore next */ []));
|
|
111
|
+
/**
|
|
112
|
+
* Invalid state derived from the child `eclRadioInput` form control, if any.
|
|
113
|
+
* Overrides the consumer-provided value when the control drives the state.
|
|
114
|
+
*/
|
|
115
|
+
this.controlInvalid = signal(undefined, /* @ts-ignore */
|
|
116
|
+
...(ngDevMode ? [{ debugName: "controlInvalid" }] : /* istanbul ignore next */ []));
|
|
117
|
+
/**
|
|
118
|
+
* Effective disabled state, preferring the form-control-driven value when present.
|
|
100
119
|
* Adds the `ecl-radio--disabled` class to the host element when true.
|
|
120
|
+
*
|
|
121
|
+
* Precedence: when a child `eclRadioInput` is bound to a form control it calls
|
|
122
|
+
* `setControlState`, making `controlDisabled` a concrete boolean that takes over.
|
|
123
|
+
* While `controlDisabled` is `undefined` (no form control in play), the `??`
|
|
124
|
+
* falls back to the consumer-provided `disabledInput` attribute value.
|
|
101
125
|
*/
|
|
102
|
-
this.isDisabled =
|
|
126
|
+
this.isDisabled = computed(() => this.controlDisabled() ?? this.disabledInput(), /* @ts-ignore */
|
|
127
|
+
...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
|
|
103
128
|
/**
|
|
129
|
+
* Effective invalid state, preferring the form-control-driven value when present.
|
|
104
130
|
* Adds the `ecl-radio--invalid` class to the host element when true.
|
|
131
|
+
*
|
|
132
|
+
* Precedence: when a child `eclRadioInput` is bound to a form control it calls
|
|
133
|
+
* `setControlState`, making `controlInvalid` a concrete boolean that takes over.
|
|
134
|
+
* While `controlInvalid` is `undefined` (no form control in play), the `??`
|
|
135
|
+
* falls back to the consumer-provided `invalidInput` attribute value.
|
|
105
136
|
*/
|
|
106
|
-
this.isInvalid =
|
|
137
|
+
this.isInvalid = computed(() => this.controlInvalid() ?? this.invalidInput(), /* @ts-ignore */
|
|
138
|
+
...(ngDevMode ? [{ debugName: "isInvalid" }] : /* istanbul ignore next */ []));
|
|
107
139
|
/**
|
|
108
140
|
* Reference to the projected EclRadioLabelComponent, if present.
|
|
109
141
|
* Used to synchronize disabled and invalid states with the label.
|
|
@@ -116,6 +148,7 @@ class EclRadioDirective extends ECLBaseDirective {
|
|
|
116
148
|
*/
|
|
117
149
|
this.eclRadioHelpComponent = contentChild(forwardRef(() => EclRadioHelpComponent), /* @ts-ignore */
|
|
118
150
|
...(ngDevMode ? [{ debugName: "eclRadioHelpComponent" }] : /* istanbul ignore next */ []));
|
|
151
|
+
this.synchronizeChildElements();
|
|
119
152
|
}
|
|
120
153
|
/**
|
|
121
154
|
* Returns the CSS classes to apply on the host element.
|
|
@@ -125,47 +158,46 @@ class EclRadioDirective extends ECLBaseDirective {
|
|
|
125
158
|
return [super.getCssClasses('ecl-radio'), this.isBinary() ? 'ecl-radio--binary' : ''].join(' ').trim();
|
|
126
159
|
}
|
|
127
160
|
/**
|
|
128
|
-
*
|
|
129
|
-
*
|
|
161
|
+
* Called by the child `eclRadioInput` directive to propagate the disabled and
|
|
162
|
+
* invalid states derived from the associated form control.
|
|
130
163
|
*/
|
|
131
|
-
|
|
132
|
-
this.
|
|
164
|
+
setControlState(isInvalid, isDisabled) {
|
|
165
|
+
this.controlInvalid.set(isInvalid);
|
|
166
|
+
this.controlDisabled.set(isDisabled);
|
|
133
167
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
168
|
+
/**
|
|
169
|
+
* Keeps the projected label and help components in sync with the
|
|
170
|
+
* directive's disabled and invalid states whenever they change.
|
|
171
|
+
*/
|
|
172
|
+
synchronizeChildElements() {
|
|
173
|
+
effect(() => {
|
|
174
|
+
const isDisabled = this.isDisabled();
|
|
175
|
+
const isInvalid = this.isInvalid();
|
|
176
|
+
const eclRadioLabelComponent = this.eclRadioLabelComponent();
|
|
177
|
+
if (eclRadioLabelComponent) {
|
|
178
|
+
eclRadioLabelComponent.isInvalid.set(isInvalid);
|
|
179
|
+
eclRadioLabelComponent.isDisabled.set(isDisabled);
|
|
180
|
+
}
|
|
181
|
+
const eclRadioHelpComponent = this.eclRadioHelpComponent();
|
|
182
|
+
if (eclRadioHelpComponent) {
|
|
183
|
+
eclRadioHelpComponent.isDisabled.set(isDisabled);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
144
186
|
}
|
|
145
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclRadioDirective, deps:
|
|
146
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.1.2", type: EclRadioDirective, isStandalone: true, selector: "[eclRadio]", inputs: { isBinary: { classPropertyName: "isBinary", publicName: "isBinary", isSignal: true, isRequired: false, transformFunction: null },
|
|
187
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclRadioDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
188
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.1.2", type: EclRadioDirective, isStandalone: true, selector: "[eclRadio]", inputs: { isBinary: { classPropertyName: "isBinary", publicName: "isBinary", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, invalidInput: { classPropertyName: "invalidInput", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses", "class.ecl-radio--disabled": "isDisabled()", "class.ecl-radio--invalid": "isInvalid()" } }, queries: [{ propertyName: "eclRadioLabelComponent", first: true, predicate: i0.forwardRef(() => EclRadioLabelComponent), descendants: true, isSignal: true }, { propertyName: "eclRadioHelpComponent", first: true, predicate: i0.forwardRef(() => EclRadioHelpComponent), descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 }); }
|
|
147
189
|
}
|
|
148
190
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclRadioDirective, decorators: [{
|
|
149
191
|
type: Directive,
|
|
150
192
|
args: [{
|
|
151
193
|
selector: '[eclRadio]',
|
|
194
|
+
host: {
|
|
195
|
+
'[class]': 'cssClasses',
|
|
196
|
+
'[class.ecl-radio--disabled]': 'isDisabled()',
|
|
197
|
+
'[class.ecl-radio--invalid]': 'isInvalid()',
|
|
198
|
+
},
|
|
152
199
|
}]
|
|
153
|
-
}], propDecorators: { isBinary: [{ type: i0.Input, args: [{ isSignal: true, alias: "isBinary", required: false }] }], isDisabled: [{
|
|
154
|
-
type: Input,
|
|
155
|
-
args: [{ transform: booleanAttribute }]
|
|
156
|
-
}, {
|
|
157
|
-
type: HostBinding,
|
|
158
|
-
args: ['class.ecl-radio--disabled']
|
|
159
|
-
}], isInvalid: [{
|
|
160
|
-
type: Input,
|
|
161
|
-
args: [{ transform: booleanAttribute }]
|
|
162
|
-
}, {
|
|
163
|
-
type: HostBinding,
|
|
164
|
-
args: ['class.ecl-radio--invalid']
|
|
165
|
-
}], eclRadioLabelComponent: [{ type: i0.ContentChild, args: [forwardRef(() => EclRadioLabelComponent), { isSignal: true }] }], eclRadioHelpComponent: [{ type: i0.ContentChild, args: [forwardRef(() => EclRadioHelpComponent), { isSignal: true }] }], cssClasses: [{
|
|
166
|
-
type: HostBinding,
|
|
167
|
-
args: ['class']
|
|
168
|
-
}] } });
|
|
200
|
+
}], ctorParameters: () => [], propDecorators: { isBinary: [{ type: i0.Input, args: [{ isSignal: true, alias: "isBinary", required: false }] }], disabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDisabled", required: false }] }], invalidInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInvalid", required: false }] }], eclRadioLabelComponent: [{ type: i0.ContentChild, args: [forwardRef(() => EclRadioLabelComponent), { isSignal: true }] }], eclRadioHelpComponent: [{ type: i0.ContentChild, args: [forwardRef(() => EclRadioHelpComponent), { isSignal: true }] }] } });
|
|
169
201
|
|
|
170
202
|
/**
|
|
171
203
|
* Directive that decorates native <input> elements to be styled as ECL radio inputs.
|
|
@@ -191,23 +223,22 @@ class EclRadioInputDirective extends ECLBaseDirective {
|
|
|
191
223
|
ngDoCheck() {
|
|
192
224
|
if (this.ngControl) {
|
|
193
225
|
if (this.eclRadio) {
|
|
194
|
-
this.eclRadio.
|
|
195
|
-
this.eclRadio.isDisabled = this.ngControl.disabled;
|
|
226
|
+
this.eclRadio.setControlState(this.ngControl.invalid && this.ngControl.touched, this.ngControl.disabled);
|
|
196
227
|
}
|
|
197
228
|
}
|
|
198
229
|
}
|
|
199
230
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclRadioInputDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
200
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclRadioInputDirective, isStandalone: true, selector: "input[eclRadioInput]", host: { properties: { "class": "
|
|
231
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclRadioInputDirective, isStandalone: true, selector: "input[eclRadioInput]", host: { properties: { "class": "cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
|
|
201
232
|
}
|
|
202
233
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclRadioInputDirective, decorators: [{
|
|
203
234
|
type: Directive,
|
|
204
235
|
args: [{
|
|
205
236
|
selector: 'input[eclRadioInput]',
|
|
237
|
+
host: {
|
|
238
|
+
'[class]': 'cssClasses',
|
|
239
|
+
},
|
|
206
240
|
}]
|
|
207
|
-
}]
|
|
208
|
-
type: HostBinding,
|
|
209
|
-
args: ['class']
|
|
210
|
-
}] } });
|
|
241
|
+
}] });
|
|
211
242
|
|
|
212
243
|
const EUI_ECL_RADIO = [
|
|
213
244
|
EclRadioDirective, EclRadioInputDirective, EclRadioLabelComponent, EclRadioHelpComponent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-radio.mjs","sources":["../../components/ecl-radio/ecl-radio-help.component.ts","../../components/ecl-radio/ecl-radio-help.component.html","../../components/ecl-radio/ecl-radio-label.component.ts","../../components/ecl-radio/ecl-radio-label.component.html","../../components/ecl-radio/ecl-radio.directive.ts","../../components/ecl-radio/ecl-radio-input.directive.ts","../../components/ecl-radio/index.ts","../../components/ecl-radio/eui-ecl-components-ecl-radio.ts"],"sourcesContent":["import { Component, HostBinding, Input, booleanAttribute } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component that displays help text for the ECL radio input.\n *\n * Supports styling for the disabled state and applies the proper ECL CSS classes.\n * Should be placed inside a component using eclRadio.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclRadioHelp]',\n templateUrl: './ecl-radio-help.component.html',\n})\nexport class EclRadioHelpComponent extends ECLBaseDirective {\n /**\n * Adds styling for a disabled help text.\n */\n @Input({ transform: booleanAttribute }) \n @HostBinding('class.ecl-radio__help--disabled')\n isDisabled = false;\n\n /**\n * Returns the CSS classes applied to the host element.\n * Includes the base ecl-radio__help class.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-radio__help')].join(' ').trim();\n }\n}\n","<ng-content></ng-content>\n","import { Component, HostBinding, Input, ViewEncapsulation, booleanAttribute } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component representing a label for an ECL radio button.\n *\n * Used inside an element with the [eclRadio] directive to provide\n * a styled label that can reflect the radio's state.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclRadioLabel]',\n templateUrl: './ecl-radio-label.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclRadioLabelComponent extends ECLBaseDirective {\n /**\n * Adds styling for an invalid state.\n */\n @Input({ transform: booleanAttribute }) isInvalid = false;\n\n /**\n * Adds styling for a disabled state.\n */\n @Input({ transform: booleanAttribute }) isDisabled = false;\n\n /**\n * Returns the CSS classes applied to the host element.\n * Includes the base `ecl-radio__label` class.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-radio__label')].join(' ').trim();\n }\n}\n","<span class=\"ecl-radio__box\" [class.ecl-radio__box--disabled]=\"isDisabled\" [class.ecl-radio__box--invalid]=\"isInvalid\">\n <span class=\"ecl-radio__box-inner\"></span>\n</span>\n\n<ng-content></ng-content>\n","import { booleanAttribute, Directive, DoCheck, forwardRef, HostBinding, Input, input, contentChild } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclRadioHelpComponent } from './ecl-radio-help.component';\nimport { EclRadioLabelComponent } from './ecl-radio-label.component';\n\n/**\n * Directive that applies the ECL radio button styling and behavior.\n *\n * Should be applied to native radio input elements to enhance them\n * with ECL styles and support for invalid, disabled and binary states.\n */\n@Directive({\n selector: '[eclRadio]',\n})\nexport class EclRadioDirective extends ECLBaseDirective implements DoCheck {\n /**\n * Adds the `ecl-radio--binary` class when true.\n */\n readonly isBinary = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n /**\n * Adds the `ecl-radio--disabled` class to the host element when true.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.ecl-radio--disabled')\n isDisabled = false;\n\n /**\n * Adds the `ecl-radio--invalid` class to the host element when true.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.ecl-radio--invalid')\n isInvalid = false;\n\n /**\n * Reference to the projected EclRadioLabelComponent, if present.\n * Used to synchronize disabled and invalid states with the label.\n */\n readonly eclRadioLabelComponent = contentChild(forwardRef(() => EclRadioLabelComponent));\n\n /**\n * Reference to the projected EclRadioHelpComponent, if present.\n * Used to synchronize the disabled state with the help text.\n */\n readonly eclRadioHelpComponent = contentChild(forwardRef(() => EclRadioHelpComponent));\n\n /**\n * Returns the CSS classes to apply on the host element.\n * Includes the base `ecl-radio` class and the binary modifier if applicable.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-radio'), this.isBinary() ? 'ecl-radio--binary' : ''].join(' ').trim();\n }\n\n /**\n * Angular lifecycle hook called during every change detection run.\n * Used to update child components with the current disabled and invalid states.\n */\n ngDoCheck(): void {\n this.updateChildElements();\n }\n\n private updateChildElements(): void {\n const eclRadioLabelComponent = this.eclRadioLabelComponent();\n if (eclRadioLabelComponent) {\n eclRadioLabelComponent.isInvalid = this.isInvalid;\n eclRadioLabelComponent.isDisabled = this.isDisabled;\n }\n\n const eclRadioHelpComponent = this.eclRadioHelpComponent();\n if (eclRadioHelpComponent) {\n eclRadioHelpComponent.isDisabled = this.isDisabled;\n }\n }\n}\n","import { Directive, HostBinding, ChangeDetectorRef, DoCheck, inject } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { EclRadioDirective } from './ecl-radio.directive';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that decorates native <input> elements to be styled as ECL radio inputs.\n *\n * Applies the proper ECL CSS classes and integrates with Angular forms\n * to reflect validation states (invalid, disabled) in the parent ECL radio directive.\n * Should be used together with the eclRadio directive.\n */\n@Directive({\n selector: 'input[eclRadioInput]',\n})\nexport class EclRadioInputDirective extends ECLBaseDirective implements DoCheck {\n eclRadio = inject(EclRadioDirective);\n protected ngControl = inject(NgControl, { optional: true, self: true });\n protected cd = inject(ChangeDetectorRef);\n\n /**\n * Returns the CSS classes applied to the host input element.\n * Includes the base ecl-radio__input class.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-radio__input')].join(' ').trim();\n }\n\n ngDoCheck(): void {\n if (this.ngControl) {\n if (this.eclRadio) {\n this.eclRadio.isInvalid = this.ngControl.invalid && this.ngControl.touched;\n this.eclRadio.isDisabled = this.ngControl.disabled;\n }\n }\n }\n}\n","import { EclRadioHelpComponent } from './ecl-radio-help.component';\nimport { EclRadioInputDirective } from './ecl-radio-input.directive';\nimport { EclRadioLabelComponent } from './ecl-radio-label.component';\nimport { EclRadioDirective } from './ecl-radio.directive';\n\nexport * from './ecl-radio-input.directive';\nexport * from './ecl-radio.directive';\nexport * from './ecl-radio-label.component';\nexport * from './ecl-radio-help.component';\n\nexport const EUI_ECL_RADIO = [\n EclRadioDirective, EclRadioInputDirective, EclRadioLabelComponent, EclRadioHelpComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-radio.mjs","sources":["../../components/ecl-radio/ecl-radio-help.component.ts","../../components/ecl-radio/ecl-radio-help.component.html","../../components/ecl-radio/ecl-radio-label.component.ts","../../components/ecl-radio/ecl-radio-label.component.html","../../components/ecl-radio/ecl-radio.directive.ts","../../components/ecl-radio/ecl-radio-input.directive.ts","../../components/ecl-radio/index.ts","../../components/ecl-radio/eui-ecl-components-ecl-radio.ts"],"sourcesContent":["import { Component, computed, model } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component that displays help text for the ECL radio input.\n *\n * Supports styling for the disabled state and applies the proper ECL CSS classes.\n * Should be placed inside a component using eclRadio.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclRadioHelp]',\n templateUrl: './ecl-radio-help.component.html',\n host: {\n '[class]': 'cssClasses()',\n '[class.ecl-radio__help--disabled]': 'isDisabled()',\n },\n})\nexport class EclRadioHelpComponent extends ECLBaseDirective {\n /**\n * Adds styling for a disabled help text.\n *\n * Exposed as a model so the parent `eclRadio` directive can synchronize\n * the disabled state onto the projected help text.\n */\n readonly isDisabled = model(false);\n\n /**\n * Returns the CSS classes applied to the host element.\n * Includes the base ecl-radio__help class.\n */\n readonly cssClasses = computed(() => [this.getCssClasses('ecl-radio__help')].join(' ').trim());\n}\n","<ng-content></ng-content>\n","import { Component, ViewEncapsulation, model } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component representing a label for an ECL radio button.\n *\n * Used inside an element with the [eclRadio] directive to provide\n * a styled label that can reflect the radio's state.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclRadioLabel]',\n templateUrl: './ecl-radio-label.component.html',\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclRadioLabelComponent extends ECLBaseDirective {\n /**\n * Adds styling for an invalid state.\n *\n * Exposed as a model so the parent `eclRadio` directive can synchronize\n * the invalid state onto the label.\n */\n readonly isInvalid = model(false);\n\n /**\n * Adds styling for a disabled state.\n *\n * Exposed as a model so the parent `eclRadio` directive can synchronize\n * the disabled state onto the label.\n */\n readonly isDisabled = model(false);\n\n /**\n * Returns the CSS classes applied to the host element.\n * Includes the base `ecl-radio__label` class.\n */\n get cssClasses(): string {\n return [super.getCssClasses('ecl-radio__label')].join(' ').trim();\n }\n}\n","<span class=\"ecl-radio__box\" [class.ecl-radio__box--disabled]=\"isDisabled()\" [class.ecl-radio__box--invalid]=\"isInvalid()\">\n <span class=\"ecl-radio__box-inner\"></span>\n</span>\n\n<ng-content></ng-content>\n","import { booleanAttribute, computed, Directive, effect, forwardRef, input, signal, contentChild } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclRadioHelpComponent } from './ecl-radio-help.component';\nimport { EclRadioLabelComponent } from './ecl-radio-label.component';\n\n/**\n * Directive that applies the ECL radio button styling and behavior.\n *\n * Should be applied to native radio input elements to enhance them\n * with ECL styles and support for invalid, disabled and binary states.\n */\n@Directive({\n selector: '[eclRadio]',\n host: {\n '[class]': 'cssClasses',\n '[class.ecl-radio--disabled]': 'isDisabled()',\n '[class.ecl-radio--invalid]': 'isInvalid()',\n },\n})\nexport class EclRadioDirective extends ECLBaseDirective {\n /**\n * Adds the `ecl-radio--binary` class when true.\n */\n readonly isBinary = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n /**\n * Consumer-provided disabled state, bound as an attribute on the host element.\n */\n readonly disabledInput = input<boolean, unknown>(false, { transform: booleanAttribute, alias: 'isDisabled' });\n\n /**\n * Consumer-provided invalid state, bound as an attribute on the host element.\n */\n readonly invalidInput = input<boolean, unknown>(false, { transform: booleanAttribute, alias: 'isInvalid' });\n\n /**\n * Disabled state derived from the child `eclRadioInput` form control, if any.\n * Overrides the consumer-provided value when the control drives the state.\n */\n private readonly controlDisabled = signal<boolean | undefined>(undefined);\n\n /**\n * Invalid state derived from the child `eclRadioInput` form control, if any.\n * Overrides the consumer-provided value when the control drives the state.\n */\n private readonly controlInvalid = signal<boolean | undefined>(undefined);\n\n /**\n * Effective disabled state, preferring the form-control-driven value when present.\n * Adds the `ecl-radio--disabled` class to the host element when true.\n *\n * Precedence: when a child `eclRadioInput` is bound to a form control it calls\n * `setControlState`, making `controlDisabled` a concrete boolean that takes over.\n * While `controlDisabled` is `undefined` (no form control in play), the `??`\n * falls back to the consumer-provided `disabledInput` attribute value.\n */\n readonly isDisabled = computed(() => this.controlDisabled() ?? this.disabledInput());\n\n /**\n * Effective invalid state, preferring the form-control-driven value when present.\n * Adds the `ecl-radio--invalid` class to the host element when true.\n *\n * Precedence: when a child `eclRadioInput` is bound to a form control it calls\n * `setControlState`, making `controlInvalid` a concrete boolean that takes over.\n * While `controlInvalid` is `undefined` (no form control in play), the `??`\n * falls back to the consumer-provided `invalidInput` attribute value.\n */\n readonly isInvalid = computed(() => this.controlInvalid() ?? this.invalidInput());\n\n /**\n * Reference to the projected EclRadioLabelComponent, if present.\n * Used to synchronize disabled and invalid states with the label.\n */\n readonly eclRadioLabelComponent = contentChild(forwardRef(() => EclRadioLabelComponent));\n\n /**\n * Reference to the projected EclRadioHelpComponent, if present.\n * Used to synchronize the disabled state with the help text.\n */\n readonly eclRadioHelpComponent = contentChild(forwardRef(() => EclRadioHelpComponent));\n\n constructor() {\n super();\n this.synchronizeChildElements();\n }\n\n /**\n * Returns the CSS classes to apply on the host element.\n * Includes the base `ecl-radio` class and the binary modifier if applicable.\n */\n get cssClasses(): string {\n return [super.getCssClasses('ecl-radio'), this.isBinary() ? 'ecl-radio--binary' : ''].join(' ').trim();\n }\n\n /**\n * Called by the child `eclRadioInput` directive to propagate the disabled and\n * invalid states derived from the associated form control.\n */\n setControlState(isInvalid: boolean, isDisabled: boolean): void {\n this.controlInvalid.set(isInvalid);\n this.controlDisabled.set(isDisabled);\n }\n\n /**\n * Keeps the projected label and help components in sync with the\n * directive's disabled and invalid states whenever they change.\n */\n private synchronizeChildElements(): void {\n effect(() => {\n const isDisabled = this.isDisabled();\n const isInvalid = this.isInvalid();\n\n const eclRadioLabelComponent = this.eclRadioLabelComponent();\n if (eclRadioLabelComponent) {\n eclRadioLabelComponent.isInvalid.set(isInvalid);\n eclRadioLabelComponent.isDisabled.set(isDisabled);\n }\n\n const eclRadioHelpComponent = this.eclRadioHelpComponent();\n if (eclRadioHelpComponent) {\n eclRadioHelpComponent.isDisabled.set(isDisabled);\n }\n });\n }\n}\n","import { Directive, ChangeDetectorRef, DoCheck, inject } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { EclRadioDirective } from './ecl-radio.directive';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that decorates native <input> elements to be styled as ECL radio inputs.\n *\n * Applies the proper ECL CSS classes and integrates with Angular forms\n * to reflect validation states (invalid, disabled) in the parent ECL radio directive.\n * Should be used together with the eclRadio directive.\n */\n@Directive({\n selector: 'input[eclRadioInput]',\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclRadioInputDirective extends ECLBaseDirective implements DoCheck {\n eclRadio = inject(EclRadioDirective);\n protected ngControl = inject(NgControl, { optional: true, self: true });\n protected cd = inject(ChangeDetectorRef);\n\n /**\n * Returns the CSS classes applied to the host input element.\n * Includes the base ecl-radio__input class.\n */\n get cssClasses(): string {\n return [super.getCssClasses('ecl-radio__input')].join(' ').trim();\n }\n\n ngDoCheck(): void {\n if (this.ngControl) {\n if (this.eclRadio) {\n this.eclRadio.setControlState(\n this.ngControl.invalid && this.ngControl.touched,\n this.ngControl.disabled,\n );\n }\n }\n }\n}\n","import { EclRadioHelpComponent } from './ecl-radio-help.component';\nimport { EclRadioInputDirective } from './ecl-radio-input.directive';\nimport { EclRadioLabelComponent } from './ecl-radio-label.component';\nimport { EclRadioDirective } from './ecl-radio.directive';\n\nexport * from './ecl-radio-input.directive';\nexport * from './ecl-radio.directive';\nexport * from './ecl-radio-label.component';\nexport * from './ecl-radio-help.component';\n\nexport const EUI_ECL_RADIO = [\n EclRadioDirective, EclRadioInputDirective, EclRadioLabelComponent, EclRadioHelpComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAGA;;;;;AAKG;AAUG,MAAO,qBAAsB,SAAQ,gBAAgB,CAAA;AAT3D,IAAA,WAAA,GAAA;;AAUI;;;;;AAKG;QACM,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK;uFAAC;AAElC;;;AAGG;QACM,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;uFAAC;AACjG,IAAA;8GAdY,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,uYClBlC,6BACA,EAAA,CAAA,CAAA;;2FDiBa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;AAEI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,IAAA,EAEpB;AACF,wBAAA,SAAS,EAAE,cAAc;AACzB,wBAAA,mCAAmC,EAAE,cAAc;AACtD,qBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA;;;AEbL;;;;;AAKG;AAUG,MAAO,sBAAuB,SAAQ,gBAAgB,CAAA;AAT5D,IAAA,WAAA,GAAA;;AAUI;;;;;AAKG;QACM,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK;sFAAC;AAEjC;;;;;AAKG;QACM,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK;uFAAC;AASrC,IAAA;AAPG;;;AAGG;AACH,IAAA,IAAI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACrE;8GAvBS,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,qfClBnC,6NAKA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDaa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBATlC,SAAS;AAEI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,aAAA,EAEZ,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACF,wBAAA,SAAS,EAAE,YAAY;AAC1B,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA;;;AEXL;;;;;AAKG;AASG,MAAO,iBAAkB,SAAQ,gBAAgB,CAAA;AA8DnD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AA9DX;;AAEG;QACM,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAmB,SAAS,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEvF;;AAEG;AACM,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAmB,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,GAAG;AAE7G;;AAEG;AACM,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAmB,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,cAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,GAAG;AAE3G;;;AAGG;QACc,IAAA,CAAA,eAAe,GAAG,MAAM,CAAsB,SAAS;4FAAC;AAEzE;;;AAGG;QACc,IAAA,CAAA,cAAc,GAAG,MAAM,CAAsB,SAAS;2FAAC;AAExE;;;;;;;;AAQG;AACM,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE;uFAAC;AAEpF;;;;;;;;AAQG;AACM,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;sFAAC;AAEjF;;;AAGG;QACM,IAAA,CAAA,sBAAsB,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,sBAAsB,CAAC;mGAAC;AAExF;;;AAGG;QACM,IAAA,CAAA,qBAAqB,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,qBAAqB,CAAC;kGAAC;QAIlF,IAAI,CAAC,wBAAwB,EAAE;IACnC;AAEA;;;AAGG;AACH,IAAA,IAAI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,mBAAmB,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAC1G;AAEA;;;AAGG;IACH,eAAe,CAAC,SAAkB,EAAE,UAAmB,EAAA;AACnD,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC;IACxC;AAEA;;;AAGG;IACK,wBAAwB,GAAA;QAC5B,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AACpC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;AAElC,YAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,EAAE;YAC5D,IAAI,sBAAsB,EAAE;AACxB,gBAAA,sBAAsB,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;AAC/C,gBAAA,sBAAsB,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC;YACrD;AAEA,YAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,EAAE;YAC1D,IAAI,qBAAqB,EAAE;AACvB,gBAAA,qBAAqB,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC;YACpD;AACJ,QAAA,CAAC,CAAC;IACN;8GAxGS,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,2BAAA,EAAA,cAAA,EAAA,0BAAA,EAAA,aAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAsDsC,sBAAsB,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAMvB,qBAAqB,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FA5D3E,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,YAAY;AACvB,wBAAA,6BAA6B,EAAE,cAAc;AAC7C,wBAAA,4BAA4B,EAAE,aAAa;AAC9C,qBAAA;AACJ,iBAAA;AAuDkD,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,sBAAsB,CAAC,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAMzC,UAAU,CAAC,MAAM,qBAAqB,CAAC,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AC1EzF;;;;;;AAMG;AAOG,MAAO,sBAAuB,SAAQ,gBAAgB,CAAA;AAN5D,IAAA,WAAA,GAAA;;AAOI,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC1B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC7D,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAoB3C,IAAA;AAlBG;;;AAGG;AACH,IAAA,IAAI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACrE;IAEA,SAAS,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC,eAAe,CACzB,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAChD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAC1B;YACL;QACJ;IACJ;8GAtBS,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,YAAY;AAC1B,qBAAA;AACJ,iBAAA;;;ACPM,MAAM,aAAa,GAAG;AACzB,IAAA,iBAAiB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB;;;ACX5F;;AAEG;;;;"}
|