@weeehaoooz/talos-ui 0.1.1 → 0.1.2
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/README.md +2 -0
- package/fesm2022/{weeehaoooz-talos-ui-button-button-group.mjs → weeehaoooz-talos-ui-button.mjs} +91 -15
- package/fesm2022/weeehaoooz-talos-ui-button.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-data-display.mjs +3110 -0
- package/fesm2022/weeehaoooz-talos-ui-data-display.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-data-viz.mjs +2414 -0
- package/fesm2022/weeehaoooz-talos-ui-data-viz.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-dropdown.mjs +1039 -0
- package/fesm2022/weeehaoooz-talos-ui-dropdown.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-feedback.mjs +2885 -0
- package/fesm2022/weeehaoooz-talos-ui-feedback.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form.mjs +10799 -0
- package/fesm2022/weeehaoooz-talos-ui-form.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-layout.mjs +1316 -7
- package/fesm2022/weeehaoooz-talos-ui-layout.mjs.map +1 -1
- package/fesm2022/weeehaoooz-talos-ui-nav.mjs +3 -3
- package/fesm2022/weeehaoooz-talos-ui-nav.mjs.map +1 -1
- package/fesm2022/weeehaoooz-talos-ui.mjs +21592 -16293
- package/fesm2022/weeehaoooz-talos-ui.mjs.map +1 -1
- package/package.json +20 -139
- package/styles/_breadcrumb.scss +16 -0
- package/styles/_button-group.scss +2 -1
- package/styles/_buttons.scss +51 -0
- package/styles/_dropdown.scss +438 -0
- package/styles/_form-controls.scss +13 -0
- package/styles/_progress-bar.scss +43 -0
- package/styles/_skeleton.scss +176 -0
- package/styles/_spinner.scss +58 -0
- package/styles/_variables.scss +33 -0
- package/styles/index.scss +6 -1
- package/types/weeehaoooz-talos-ui-button.d.ts +92 -0
- package/types/weeehaoooz-talos-ui-button.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-data-display.d.ts +1018 -0
- package/types/weeehaoooz-talos-ui-data-display.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-data-viz.d.ts +839 -0
- package/types/weeehaoooz-talos-ui-data-viz.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-dropdown.d.ts +187 -0
- package/types/weeehaoooz-talos-ui-dropdown.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-feedback.d.ts +1495 -0
- package/types/weeehaoooz-talos-ui-feedback.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form.d.ts +2639 -0
- package/types/weeehaoooz-talos-ui-form.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-layout.d.ts +851 -3
- package/types/weeehaoooz-talos-ui-layout.d.ts.map +1 -1
- package/types/weeehaoooz-talos-ui-nav.d.ts +1 -1
- package/types/weeehaoooz-talos-ui.d.ts +7148 -4629
- package/types/weeehaoooz-talos-ui.d.ts.map +1 -1
- package/fesm2022/weeehaoooz-talos-ui-button-button-group.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-button-button.mjs +0 -94
- package/fesm2022/weeehaoooz-talos-ui-button-button.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-display-badge.mjs +0 -233
- package/fesm2022/weeehaoooz-talos-ui-data-display-badge.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-display-data-grid.mjs +0 -1627
- package/fesm2022/weeehaoooz-talos-ui-data-display-data-grid.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-display-status-tag.mjs +0 -361
- package/fesm2022/weeehaoooz-talos-ui-data-display-status-tag.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-display-timeline.mjs +0 -312
- package/fesm2022/weeehaoooz-talos-ui-data-display-timeline.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-display-trend-indicator.mjs +0 -235
- package/fesm2022/weeehaoooz-talos-ui-data-display-trend-indicator.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-viz-category-bar.mjs +0 -462
- package/fesm2022/weeehaoooz-talos-ui-data-viz-category-bar.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-viz-heatmap.mjs +0 -805
- package/fesm2022/weeehaoooz-talos-ui-data-viz-heatmap.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-donut.mjs +0 -267
- package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-donut.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-gauge.mjs +0 -351
- package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-gauge.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-viz-sparkline.mjs +0 -566
- package/fesm2022/weeehaoooz-talos-ui-data-viz-sparkline.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-feedback-alert.mjs +0 -534
- package/fesm2022/weeehaoooz-talos-ui-feedback-alert.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-feedback-dialog.mjs +0 -446
- package/fesm2022/weeehaoooz-talos-ui-feedback-dialog.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-feedback-snackbar.mjs +0 -376
- package/fesm2022/weeehaoooz-talos-ui-feedback-snackbar.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-feedback-tooltip.mjs +0 -147
- package/fesm2022/weeehaoooz-talos-ui-feedback-tooltip.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-affix.mjs +0 -242
- package/fesm2022/weeehaoooz-talos-ui-form-affix.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-autocomplete.mjs +0 -514
- package/fesm2022/weeehaoooz-talos-ui-form-autocomplete.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-checkbox.mjs +0 -548
- package/fesm2022/weeehaoooz-talos-ui-form-checkbox.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-chips.mjs +0 -692
- package/fesm2022/weeehaoooz-talos-ui-form-chips.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-color-picker.mjs +0 -761
- package/fesm2022/weeehaoooz-talos-ui-form-color-picker.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-date-picker.mjs +0 -896
- package/fesm2022/weeehaoooz-talos-ui-form-date-picker.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-date-range-picker.mjs +0 -872
- package/fesm2022/weeehaoooz-talos-ui-form-date-range-picker.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-date-time-picker.mjs +0 -119
- package/fesm2022/weeehaoooz-talos-ui-form-date-time-picker.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-date-time-range-picker.mjs +0 -135
- package/fesm2022/weeehaoooz-talos-ui-form-date-time-range-picker.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-drop-zone.mjs +0 -666
- package/fesm2022/weeehaoooz-talos-ui-form-drop-zone.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-form-field.mjs +0 -147
- package/fesm2022/weeehaoooz-talos-ui-form-form-field.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-input.mjs +0 -33
- package/fesm2022/weeehaoooz-talos-ui-form-input.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-otp.mjs +0 -455
- package/fesm2022/weeehaoooz-talos-ui-form-otp.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-password-input.mjs +0 -379
- package/fesm2022/weeehaoooz-talos-ui-form-password-input.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-radio.mjs +0 -297
- package/fesm2022/weeehaoooz-talos-ui-form-radio.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs +0 -661
- package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs +0 -346
- package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-select-input.mjs +0 -896
- package/fesm2022/weeehaoooz-talos-ui-form-select-input.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-slide-toggle.mjs +0 -252
- package/fesm2022/weeehaoooz-talos-ui-form-slide-toggle.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-transfer-list.mjs +0 -916
- package/fesm2022/weeehaoooz-talos-ui-form-transfer-list.mjs.map +0 -1
- package/types/weeehaoooz-talos-ui-button-button-group.d.ts +0 -62
- package/types/weeehaoooz-talos-ui-button-button-group.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-button-button.d.ts +0 -38
- package/types/weeehaoooz-talos-ui-button-button.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-display-badge.d.ts +0 -119
- package/types/weeehaoooz-talos-ui-data-display-badge.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-display-data-grid.d.ts +0 -272
- package/types/weeehaoooz-talos-ui-data-display-data-grid.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-display-status-tag.d.ts +0 -135
- package/types/weeehaoooz-talos-ui-data-display-status-tag.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-display-timeline.d.ts +0 -144
- package/types/weeehaoooz-talos-ui-data-display-timeline.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-display-trend-indicator.d.ts +0 -83
- package/types/weeehaoooz-talos-ui-data-display-trend-indicator.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-viz-category-bar.d.ts +0 -255
- package/types/weeehaoooz-talos-ui-data-viz-category-bar.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-viz-heatmap.d.ts +0 -204
- package/types/weeehaoooz-talos-ui-data-viz-heatmap.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-viz-mini-donut.d.ts +0 -101
- package/types/weeehaoooz-talos-ui-data-viz-mini-donut.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-viz-mini-gauge.d.ts +0 -138
- package/types/weeehaoooz-talos-ui-data-viz-mini-gauge.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-viz-sparkline.d.ts +0 -161
- package/types/weeehaoooz-talos-ui-data-viz-sparkline.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-feedback-alert.d.ts +0 -212
- package/types/weeehaoooz-talos-ui-feedback-alert.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-feedback-dialog.d.ts +0 -259
- package/types/weeehaoooz-talos-ui-feedback-dialog.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-feedback-snackbar.d.ts +0 -147
- package/types/weeehaoooz-talos-ui-feedback-snackbar.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-feedback-tooltip.d.ts +0 -32
- package/types/weeehaoooz-talos-ui-feedback-tooltip.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-affix.d.ts +0 -88
- package/types/weeehaoooz-talos-ui-form-affix.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-autocomplete.d.ts +0 -113
- package/types/weeehaoooz-talos-ui-form-autocomplete.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-checkbox.d.ts +0 -165
- package/types/weeehaoooz-talos-ui-form-checkbox.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-chips.d.ts +0 -152
- package/types/weeehaoooz-talos-ui-form-chips.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-color-picker.d.ts +0 -144
- package/types/weeehaoooz-talos-ui-form-color-picker.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-date-picker.d.ts +0 -138
- package/types/weeehaoooz-talos-ui-form-date-picker.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-date-range-picker.d.ts +0 -148
- package/types/weeehaoooz-talos-ui-form-date-range-picker.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-date-time-picker.d.ts +0 -44
- package/types/weeehaoooz-talos-ui-form-date-time-picker.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-date-time-range-picker.d.ts +0 -48
- package/types/weeehaoooz-talos-ui-form-date-time-range-picker.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-drop-zone.d.ts +0 -227
- package/types/weeehaoooz-talos-ui-form-drop-zone.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-form-field.d.ts +0 -42
- package/types/weeehaoooz-talos-ui-form-form-field.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-input.d.ts +0 -15
- package/types/weeehaoooz-talos-ui-form-input.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-otp.d.ts +0 -111
- package/types/weeehaoooz-talos-ui-form-otp.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-password-input.d.ts +0 -145
- package/types/weeehaoooz-talos-ui-form-password-input.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-radio.d.ts +0 -84
- package/types/weeehaoooz-talos-ui-form-radio.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-range-input.d.ts +0 -181
- package/types/weeehaoooz-talos-ui-form-range-input.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-rating.d.ts +0 -110
- package/types/weeehaoooz-talos-ui-form-rating.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-select-input.d.ts +0 -195
- package/types/weeehaoooz-talos-ui-form-select-input.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-slide-toggle.d.ts +0 -79
- package/types/weeehaoooz-talos-ui-form-slide-toggle.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-transfer-list.d.ts +0 -192
- package/types/weeehaoooz-talos-ui-form-transfer-list.d.ts.map +0 -1
|
@@ -1,297 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, Directive, inject, ChangeDetectorRef, computed, ViewChild, Component, ElementRef, output, contentChildren, signal, effect, forwardRef, NgModule } from '@angular/core';
|
|
3
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
-
|
|
5
|
-
class TalosRadioDirective {
|
|
6
|
-
/** Sizing variation for the radio button */
|
|
7
|
-
size = input('md', /* @ts-ignore */
|
|
8
|
-
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
9
|
-
/** Visual color variant for the radio button */
|
|
10
|
-
variant = input('primary', /* @ts-ignore */
|
|
11
|
-
...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
12
|
-
/** Whether the radio button is in an invalid error state */
|
|
13
|
-
invalid = input(false, /* @ts-ignore */
|
|
14
|
-
...(ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []));
|
|
15
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosRadioDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
16
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.1", type: TalosRadioDirective, isStandalone: true, selector: "input[type=\"radio\"][talosRadio], input[type=\"radio\"][talos-radio]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.radio-sm": "size() === \"sm\"", "class.radio-md": "size() === \"md\"", "class.radio-lg": "size() === \"lg\"", "class.talos-radio-primary": "variant() === \"primary\"", "class.talos-radio-secondary": "variant() === \"secondary\"", "class.talos-radio-success": "variant() === \"success\"", "class.talos-radio-danger": "variant() === \"danger\"", "class.is-invalid": "invalid()" }, classAttribute: "talos-radio" }, ngImport: i0 });
|
|
17
|
-
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosRadioDirective, decorators: [{
|
|
19
|
-
type: Directive,
|
|
20
|
-
args: [{
|
|
21
|
-
selector: 'input[type="radio"][talosRadio], input[type="radio"][talos-radio]',
|
|
22
|
-
host: {
|
|
23
|
-
'class': 'talos-radio',
|
|
24
|
-
'[class.radio-sm]': 'size() === "sm"',
|
|
25
|
-
'[class.radio-md]': 'size() === "md"',
|
|
26
|
-
'[class.radio-lg]': 'size() === "lg"',
|
|
27
|
-
'[class.talos-radio-primary]': 'variant() === "primary"',
|
|
28
|
-
'[class.talos-radio-secondary]': 'variant() === "secondary"',
|
|
29
|
-
'[class.talos-radio-success]': 'variant() === "success"',
|
|
30
|
-
'[class.talos-radio-danger]': 'variant() === "danger"',
|
|
31
|
-
'[class.is-invalid]': 'invalid()'
|
|
32
|
-
}
|
|
33
|
-
}]
|
|
34
|
-
}], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }] } });
|
|
35
|
-
|
|
36
|
-
let radioOptionCounter = 0;
|
|
37
|
-
class TalosRadioComponent {
|
|
38
|
-
radioGroup = inject(TalosRadioGroupComponent, { optional: true });
|
|
39
|
-
cdr = inject(ChangeDetectorRef);
|
|
40
|
-
radioInputEl;
|
|
41
|
-
// Signal Inputs
|
|
42
|
-
value = input.required(/* @ts-ignore */
|
|
43
|
-
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
44
|
-
disabled = input(false, /* @ts-ignore */
|
|
45
|
-
...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
46
|
-
size = input(undefined, /* @ts-ignore */
|
|
47
|
-
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
48
|
-
variant = input(undefined, /* @ts-ignore */
|
|
49
|
-
...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
50
|
-
id = input('', /* @ts-ignore */
|
|
51
|
-
...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
|
|
52
|
-
// Internal Unique ID
|
|
53
|
-
defaultId = `talos-radio-opt-${++radioOptionCounter}`;
|
|
54
|
-
elementId = computed(() => this.id() || this.defaultId, /* @ts-ignore */
|
|
55
|
-
...(ngDevMode ? [{ debugName: "elementId" }] : /* istanbul ignore next */ []));
|
|
56
|
-
// Cascading properties from group or standalone defaults
|
|
57
|
-
effectiveName = computed(() => this.radioGroup?.name() || 'talos-radio', /* @ts-ignore */
|
|
58
|
-
...(ngDevMode ? [{ debugName: "effectiveName" }] : /* istanbul ignore next */ []));
|
|
59
|
-
effectiveSize = computed(() => this.size() ?? this.radioGroup?.size() ?? 'md', /* @ts-ignore */
|
|
60
|
-
...(ngDevMode ? [{ debugName: "effectiveSize" }] : /* istanbul ignore next */ []));
|
|
61
|
-
effectiveVariant = computed(() => this.variant() ?? this.radioGroup?.variant() ?? 'primary', /* @ts-ignore */
|
|
62
|
-
...(ngDevMode ? [{ debugName: "effectiveVariant" }] : /* istanbul ignore next */ []));
|
|
63
|
-
effectiveDisabled = computed(() => this.disabled() || (this.radioGroup?.effectiveDisabled() ?? false), /* @ts-ignore */
|
|
64
|
-
...(ngDevMode ? [{ debugName: "effectiveDisabled" }] : /* istanbul ignore next */ []));
|
|
65
|
-
// Selection state
|
|
66
|
-
checked = computed(() => {
|
|
67
|
-
if (!this.radioGroup)
|
|
68
|
-
return false;
|
|
69
|
-
return this.radioGroup.value() === this.value();
|
|
70
|
-
}, /* @ts-ignore */
|
|
71
|
-
...(ngDevMode ? [{ debugName: "checked" }] : /* istanbul ignore next */ []));
|
|
72
|
-
onRadioChange(event) {
|
|
73
|
-
if (this.effectiveDisabled())
|
|
74
|
-
return;
|
|
75
|
-
if (this.radioGroup) {
|
|
76
|
-
this.radioGroup.selectValue(this.value());
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
focusInput() {
|
|
80
|
-
this.radioInputEl?.nativeElement.focus();
|
|
81
|
-
}
|
|
82
|
-
markForCheck() {
|
|
83
|
-
this.cdr.markForCheck();
|
|
84
|
-
}
|
|
85
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
86
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.1", type: TalosRadioComponent, isStandalone: true, selector: "talos-radio", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "talos-radio-host" }, viewQueries: [{ propertyName: "radioInputEl", first: true, predicate: ["radioInput"], descendants: true }], ngImport: i0, template: `
|
|
87
|
-
<label class="talos-radio-wrapper" [class.is-disabled]="effectiveDisabled()" [class.is-checked]="checked()">
|
|
88
|
-
<input
|
|
89
|
-
#radioInput
|
|
90
|
-
type="radio"
|
|
91
|
-
talosRadio
|
|
92
|
-
[id]="elementId()"
|
|
93
|
-
[name]="effectiveName()"
|
|
94
|
-
[size]="effectiveSize()"
|
|
95
|
-
[variant]="effectiveVariant()"
|
|
96
|
-
[checked]="checked()"
|
|
97
|
-
[disabled]="effectiveDisabled()"
|
|
98
|
-
(change)="onRadioChange($event)"
|
|
99
|
-
/>
|
|
100
|
-
<span class="talos-radio-label">
|
|
101
|
-
<ng-content></ng-content>
|
|
102
|
-
</span>
|
|
103
|
-
</label>
|
|
104
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: TalosRadioDirective, selector: "input[type=\"radio\"][talosRadio], input[type=\"radio\"][talos-radio]", inputs: ["size", "variant", "invalid"] }] });
|
|
105
|
-
}
|
|
106
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosRadioComponent, decorators: [{
|
|
107
|
-
type: Component,
|
|
108
|
-
args: [{
|
|
109
|
-
selector: 'talos-radio',
|
|
110
|
-
imports: [TalosRadioDirective],
|
|
111
|
-
template: `
|
|
112
|
-
<label class="talos-radio-wrapper" [class.is-disabled]="effectiveDisabled()" [class.is-checked]="checked()">
|
|
113
|
-
<input
|
|
114
|
-
#radioInput
|
|
115
|
-
type="radio"
|
|
116
|
-
talosRadio
|
|
117
|
-
[id]="elementId()"
|
|
118
|
-
[name]="effectiveName()"
|
|
119
|
-
[size]="effectiveSize()"
|
|
120
|
-
[variant]="effectiveVariant()"
|
|
121
|
-
[checked]="checked()"
|
|
122
|
-
[disabled]="effectiveDisabled()"
|
|
123
|
-
(change)="onRadioChange($event)"
|
|
124
|
-
/>
|
|
125
|
-
<span class="talos-radio-label">
|
|
126
|
-
<ng-content></ng-content>
|
|
127
|
-
</span>
|
|
128
|
-
</label>
|
|
129
|
-
`,
|
|
130
|
-
host: {
|
|
131
|
-
'class': 'talos-radio-host'
|
|
132
|
-
}
|
|
133
|
-
}]
|
|
134
|
-
}], propDecorators: { radioInputEl: [{
|
|
135
|
-
type: ViewChild,
|
|
136
|
-
args: ['radioInput']
|
|
137
|
-
}], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }] } });
|
|
138
|
-
|
|
139
|
-
let groupUniqueIdCounter = 0;
|
|
140
|
-
class TalosRadioGroupComponent {
|
|
141
|
-
elementRef = inject((ElementRef));
|
|
142
|
-
// Signal Inputs
|
|
143
|
-
name = input(`talos-radio-group-${++groupUniqueIdCounter}`, /* @ts-ignore */
|
|
144
|
-
...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
|
|
145
|
-
size = input('md', /* @ts-ignore */
|
|
146
|
-
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
147
|
-
variant = input('primary', /* @ts-ignore */
|
|
148
|
-
...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
149
|
-
direction = input('vertical', /* @ts-ignore */
|
|
150
|
-
...(ngDevMode ? [{ debugName: "direction" }] : /* istanbul ignore next */ []));
|
|
151
|
-
disabled = input(false, /* @ts-ignore */
|
|
152
|
-
...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
153
|
-
invalid = input(false, /* @ts-ignore */
|
|
154
|
-
...(ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []));
|
|
155
|
-
// Signal Outputs
|
|
156
|
-
valueChange = output();
|
|
157
|
-
// Content Queries for child radios
|
|
158
|
-
radios = contentChildren(TalosRadioComponent, { ...(ngDevMode ? { debugName: "radios" } : /* istanbul ignore next */ {}), descendants: true });
|
|
159
|
-
// Internal reactive state
|
|
160
|
-
value = signal(null, /* @ts-ignore */
|
|
161
|
-
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
162
|
-
isDisabled = signal(false, /* @ts-ignore */
|
|
163
|
-
...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
|
|
164
|
-
isTouched = signal(false, /* @ts-ignore */
|
|
165
|
-
...(ngDevMode ? [{ debugName: "isTouched" }] : /* istanbul ignore next */ []));
|
|
166
|
-
// Computed state
|
|
167
|
-
effectiveDisabled = computed(() => this.disabled() || this.isDisabled(), /* @ts-ignore */
|
|
168
|
-
...(ngDevMode ? [{ debugName: "effectiveDisabled" }] : /* istanbul ignore next */ []));
|
|
169
|
-
// ControlValueAccessor Callbacks
|
|
170
|
-
onChange = () => { };
|
|
171
|
-
onTouched = () => { };
|
|
172
|
-
constructor() {
|
|
173
|
-
// Notify child radios when group state changes
|
|
174
|
-
effect(() => {
|
|
175
|
-
const childRadios = this.radios();
|
|
176
|
-
const currentVal = this.value();
|
|
177
|
-
childRadios.forEach((radio) => {
|
|
178
|
-
radio.markForCheck();
|
|
179
|
-
});
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
// --- ControlValueAccessor Interface ---
|
|
183
|
-
writeValue(val) {
|
|
184
|
-
this.value.set(val);
|
|
185
|
-
}
|
|
186
|
-
registerOnChange(fn) {
|
|
187
|
-
this.onChange = fn;
|
|
188
|
-
}
|
|
189
|
-
registerOnTouched(fn) {
|
|
190
|
-
this.onTouched = fn;
|
|
191
|
-
}
|
|
192
|
-
setDisabledState(isDisabled) {
|
|
193
|
-
this.isDisabled.set(isDisabled);
|
|
194
|
-
}
|
|
195
|
-
selectValue(val) {
|
|
196
|
-
if (this.effectiveDisabled())
|
|
197
|
-
return;
|
|
198
|
-
if (this.value() !== val) {
|
|
199
|
-
this.value.set(val);
|
|
200
|
-
this.onChange(val);
|
|
201
|
-
this.valueChange.emit(val);
|
|
202
|
-
}
|
|
203
|
-
this.markAsTouched();
|
|
204
|
-
}
|
|
205
|
-
markAsTouched() {
|
|
206
|
-
if (!this.isTouched()) {
|
|
207
|
-
this.isTouched.set(true);
|
|
208
|
-
this.onTouched();
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
// --- Keyboard Navigation (Arrow Keys) ---
|
|
212
|
-
onKeyDown(event) {
|
|
213
|
-
if (this.effectiveDisabled())
|
|
214
|
-
return;
|
|
215
|
-
const childRadios = this.radios().filter((r) => !r.effectiveDisabled());
|
|
216
|
-
if (childRadios.length === 0)
|
|
217
|
-
return;
|
|
218
|
-
const currentIdx = childRadios.findIndex((r) => r.value() === this.value());
|
|
219
|
-
switch (event.key) {
|
|
220
|
-
case 'ArrowDown':
|
|
221
|
-
case 'ArrowRight': {
|
|
222
|
-
event.preventDefault();
|
|
223
|
-
const nextIdx = currentIdx < 0 ? 0 : (currentIdx + 1) % childRadios.length;
|
|
224
|
-
const nextRadio = childRadios[nextIdx];
|
|
225
|
-
this.selectValue(nextRadio.value());
|
|
226
|
-
nextRadio.focusInput();
|
|
227
|
-
break;
|
|
228
|
-
}
|
|
229
|
-
case 'ArrowUp':
|
|
230
|
-
case 'ArrowLeft': {
|
|
231
|
-
event.preventDefault();
|
|
232
|
-
const prevIdx = currentIdx < 0 ? childRadios.length - 1 : (currentIdx - 1 + childRadios.length) % childRadios.length;
|
|
233
|
-
const prevRadio = childRadios[prevIdx];
|
|
234
|
-
this.selectValue(prevRadio.value());
|
|
235
|
-
prevRadio.focusInput();
|
|
236
|
-
break;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosRadioGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
241
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.1", type: TalosRadioGroupComponent, isStandalone: true, selector: "talos-radio-group", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { attributes: { "role": "radiogroup" }, listeners: { "keydown": "onKeyDown($event)" }, properties: { "class.direction-vertical": "direction() === \"vertical\"", "class.direction-horizontal": "direction() === \"horizontal\"", "class.is-disabled": "effectiveDisabled()", "class.is-invalid": "invalid()" }, classAttribute: "talos-radio-group" }, providers: [
|
|
242
|
-
{
|
|
243
|
-
provide: NG_VALUE_ACCESSOR,
|
|
244
|
-
useExisting: forwardRef(() => TalosRadioGroupComponent),
|
|
245
|
-
multi: true
|
|
246
|
-
}
|
|
247
|
-
], queries: [{ propertyName: "radios", predicate: TalosRadioComponent, descendants: true, isSignal: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
|
|
248
|
-
}
|
|
249
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosRadioGroupComponent, decorators: [{
|
|
250
|
-
type: Component,
|
|
251
|
-
args: [{
|
|
252
|
-
selector: 'talos-radio-group',
|
|
253
|
-
template: '<ng-content></ng-content>',
|
|
254
|
-
providers: [
|
|
255
|
-
{
|
|
256
|
-
provide: NG_VALUE_ACCESSOR,
|
|
257
|
-
useExisting: forwardRef(() => TalosRadioGroupComponent),
|
|
258
|
-
multi: true
|
|
259
|
-
}
|
|
260
|
-
],
|
|
261
|
-
host: {
|
|
262
|
-
'class': 'talos-radio-group',
|
|
263
|
-
'role': 'radiogroup',
|
|
264
|
-
'[class.direction-vertical]': 'direction() === "vertical"',
|
|
265
|
-
'[class.direction-horizontal]': 'direction() === "horizontal"',
|
|
266
|
-
'[class.is-disabled]': 'effectiveDisabled()',
|
|
267
|
-
'[class.is-invalid]': 'invalid()',
|
|
268
|
-
'(keydown)': 'onKeyDown($event)'
|
|
269
|
-
}
|
|
270
|
-
}]
|
|
271
|
-
}], ctorParameters: () => [], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], direction: [{ type: i0.Input, args: [{ isSignal: true, alias: "direction", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], radios: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => TalosRadioComponent), { ...{ descendants: true }, isSignal: true }] }] } });
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Convenience NgModule wrapping the standalone radio components and directive.
|
|
275
|
-
*
|
|
276
|
-
* Allows developers who prefer `TalosRadioModule` to import it into standalone components
|
|
277
|
-
* or legacy NgModule-based applications.
|
|
278
|
-
*/
|
|
279
|
-
class TalosRadioModule {
|
|
280
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
281
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.1", ngImport: i0, type: TalosRadioModule, imports: [TalosRadioDirective, TalosRadioGroupComponent, TalosRadioComponent], exports: [TalosRadioDirective, TalosRadioGroupComponent, TalosRadioComponent] });
|
|
282
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosRadioModule });
|
|
283
|
-
}
|
|
284
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosRadioModule, decorators: [{
|
|
285
|
-
type: NgModule,
|
|
286
|
-
args: [{
|
|
287
|
-
imports: [TalosRadioDirective, TalosRadioGroupComponent, TalosRadioComponent],
|
|
288
|
-
exports: [TalosRadioDirective, TalosRadioGroupComponent, TalosRadioComponent]
|
|
289
|
-
}]
|
|
290
|
-
}] });
|
|
291
|
-
|
|
292
|
-
/**
|
|
293
|
-
* Generated bundle index. Do not edit.
|
|
294
|
-
*/
|
|
295
|
-
|
|
296
|
-
export { TalosRadioComponent, TalosRadioDirective, TalosRadioGroupComponent, TalosRadioModule };
|
|
297
|
-
//# sourceMappingURL=weeehaoooz-talos-ui-form-radio.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"weeehaoooz-talos-ui-form-radio.mjs","sources":["../../../projects/talos-ui/form/radio/radio/radio.directive.ts","../../../projects/talos-ui/form/radio/radio/radio.component.ts","../../../projects/talos-ui/form/radio/radio-group/radio-group.component.ts","../../../projects/talos-ui/form/radio/radio.module.ts","../../../projects/talos-ui/form/radio/weeehaoooz-talos-ui-form-radio.ts"],"sourcesContent":["import { Directive, input } from '@angular/core';\n\nexport type RadioSize = 'sm' | 'md' | 'lg';\nexport type RadioVariant = 'primary' | 'secondary' | 'success' | 'danger';\n\n@Directive({\n selector: 'input[type=\"radio\"][talosRadio], input[type=\"radio\"][talos-radio]',\n host: {\n 'class': 'talos-radio',\n '[class.radio-sm]': 'size() === \"sm\"',\n '[class.radio-md]': 'size() === \"md\"',\n '[class.radio-lg]': 'size() === \"lg\"',\n '[class.talos-radio-primary]': 'variant() === \"primary\"',\n '[class.talos-radio-secondary]': 'variant() === \"secondary\"',\n '[class.talos-radio-success]': 'variant() === \"success\"',\n '[class.talos-radio-danger]': 'variant() === \"danger\"',\n '[class.is-invalid]': 'invalid()'\n }\n})\nexport class TalosRadioDirective {\n /** Sizing variation for the radio button */\n readonly size = input<RadioSize>('md');\n\n /** Visual color variant for the radio button */\n readonly variant = input<RadioVariant>('primary');\n\n /** Whether the radio button is in an invalid error state */\n readonly invalid = input<boolean>(false);\n}\n","import {\n Component,\n ElementRef,\n ViewChild,\n ChangeDetectorRef,\n computed,\n inject,\n input\n} from '@angular/core';\nimport { TalosRadioDirective, RadioSize, RadioVariant } from './radio.directive';\nimport { TalosRadioGroupComponent } from '../radio-group/radio-group.component';\n\nlet radioOptionCounter = 0;\n\n@Component({\n selector: 'talos-radio',\n imports: [TalosRadioDirective],\n template: `\n <label class=\"talos-radio-wrapper\" [class.is-disabled]=\"effectiveDisabled()\" [class.is-checked]=\"checked()\">\n <input\n #radioInput\n type=\"radio\"\n talosRadio\n [id]=\"elementId()\"\n [name]=\"effectiveName()\"\n [size]=\"effectiveSize()\"\n [variant]=\"effectiveVariant()\"\n [checked]=\"checked()\"\n [disabled]=\"effectiveDisabled()\"\n (change)=\"onRadioChange($event)\"\n />\n <span class=\"talos-radio-label\">\n <ng-content></ng-content>\n </span>\n </label>\n `,\n host: {\n 'class': 'talos-radio-host'\n }\n})\nexport class TalosRadioComponent {\n private readonly radioGroup = inject(TalosRadioGroupComponent, { optional: true });\n private readonly cdr = inject(ChangeDetectorRef);\n\n @ViewChild('radioInput') radioInputEl?: ElementRef<HTMLInputElement>;\n\n // Signal Inputs\n readonly value = input.required<unknown>();\n readonly disabled = input<boolean>(false);\n readonly size = input<RadioSize | undefined>(undefined);\n readonly variant = input<RadioVariant | undefined>(undefined);\n readonly id = input<string>('');\n\n // Internal Unique ID\n private readonly defaultId = `talos-radio-opt-${++radioOptionCounter}`;\n readonly elementId = computed(() => this.id() || this.defaultId);\n\n // Cascading properties from group or standalone defaults\n readonly effectiveName = computed(() => this.radioGroup?.name() || 'talos-radio');\n readonly effectiveSize = computed(() => this.size() ?? this.radioGroup?.size() ?? 'md');\n readonly effectiveVariant = computed(() => this.variant() ?? this.radioGroup?.variant() ?? 'primary');\n readonly effectiveDisabled = computed(() => this.disabled() || (this.radioGroup?.effectiveDisabled() ?? false));\n\n // Selection state\n readonly checked = computed(() => {\n if (!this.radioGroup) return false;\n return this.radioGroup.value() === this.value();\n });\n\n onRadioChange(event: Event): void {\n if (this.effectiveDisabled()) return;\n if (this.radioGroup) {\n this.radioGroup.selectValue(this.value());\n }\n }\n\n focusInput(): void {\n this.radioInputEl?.nativeElement.focus();\n }\n\n markForCheck(): void {\n this.cdr.markForCheck();\n }\n}\n","import {\n Component,\n ElementRef,\n computed,\n contentChildren,\n effect,\n forwardRef,\n inject,\n input,\n output,\n signal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TalosRadioDirective, RadioSize, RadioVariant } from '../radio/radio.directive';\nimport { TalosRadioComponent } from '../radio/radio.component';\n\nexport type RadioDirection = 'vertical' | 'horizontal';\n\nlet groupUniqueIdCounter = 0;\n\n@Component({\n selector: 'talos-radio-group',\n template: '<ng-content></ng-content>',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TalosRadioGroupComponent),\n multi: true\n }\n ],\n host: {\n 'class': 'talos-radio-group',\n 'role': 'radiogroup',\n '[class.direction-vertical]': 'direction() === \"vertical\"',\n '[class.direction-horizontal]': 'direction() === \"horizontal\"',\n '[class.is-disabled]': 'effectiveDisabled()',\n '[class.is-invalid]': 'invalid()',\n '(keydown)': 'onKeyDown($event)'\n }\n})\nexport class TalosRadioGroupComponent implements ControlValueAccessor {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n // Signal Inputs\n readonly name = input<string>(`talos-radio-group-${++groupUniqueIdCounter}`);\n readonly size = input<RadioSize>('md');\n readonly variant = input<RadioVariant>('primary');\n readonly direction = input<RadioDirection>('vertical');\n readonly disabled = input<boolean>(false);\n readonly invalid = input<boolean>(false);\n\n // Signal Outputs\n readonly valueChange = output<unknown>();\n\n // Content Queries for child radios\n readonly radios = contentChildren(TalosRadioComponent, { descendants: true });\n\n // Internal reactive state\n readonly value = signal<unknown>(null);\n readonly isDisabled = signal<boolean>(false);\n readonly isTouched = signal<boolean>(false);\n\n // Computed state\n readonly effectiveDisabled = computed(() => this.disabled() || this.isDisabled());\n\n // ControlValueAccessor Callbacks\n private onChange: (val: unknown) => void = () => { };\n private onTouched: () => void = () => { };\n\n constructor() {\n // Notify child radios when group state changes\n effect(() => {\n const childRadios = this.radios();\n const currentVal = this.value();\n childRadios.forEach((radio) => {\n radio.markForCheck();\n });\n });\n }\n\n // --- ControlValueAccessor Interface ---\n writeValue(val: unknown): void {\n this.value.set(val);\n }\n\n registerOnChange(fn: (val: unknown) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled.set(isDisabled);\n }\n\n selectValue(val: unknown): void {\n if (this.effectiveDisabled()) return;\n if (this.value() !== val) {\n this.value.set(val);\n this.onChange(val);\n this.valueChange.emit(val);\n }\n this.markAsTouched();\n }\n\n markAsTouched(): void {\n if (!this.isTouched()) {\n this.isTouched.set(true);\n this.onTouched();\n }\n }\n\n // --- Keyboard Navigation (Arrow Keys) ---\n onKeyDown(event: KeyboardEvent): void {\n if (this.effectiveDisabled()) return;\n\n const childRadios = this.radios().filter((r) => !r.effectiveDisabled());\n if (childRadios.length === 0) return;\n\n const currentIdx = childRadios.findIndex((r) => r.value() === this.value());\n\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowRight': {\n event.preventDefault();\n const nextIdx = currentIdx < 0 ? 0 : (currentIdx + 1) % childRadios.length;\n const nextRadio = childRadios[nextIdx];\n this.selectValue(nextRadio.value());\n nextRadio.focusInput();\n break;\n }\n case 'ArrowUp':\n case 'ArrowLeft': {\n event.preventDefault();\n const prevIdx = currentIdx < 0 ? childRadios.length - 1 : (currentIdx - 1 + childRadios.length) % childRadios.length;\n const prevRadio = childRadios[prevIdx];\n this.selectValue(prevRadio.value());\n prevRadio.focusInput();\n break;\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TalosRadioDirective } from './radio/radio.directive';\nimport { TalosRadioGroupComponent } from './radio-group/radio-group.component';\nimport { TalosRadioComponent } from './radio/radio.component';\n\n/**\n * Convenience NgModule wrapping the standalone radio components and directive.\n * \n * Allows developers who prefer `TalosRadioModule` to import it into standalone components\n * or legacy NgModule-based applications.\n */\n@NgModule({\n imports: [TalosRadioDirective, TalosRadioGroupComponent, TalosRadioComponent],\n exports: [TalosRadioDirective, TalosRadioGroupComponent, TalosRadioComponent]\n})\nexport class TalosRadioModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|