@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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"weeehaoooz-talos-ui-form-select-input.mjs","sources":["../../../projects/talos-ui/form/select-input/option/option.component.ts","../../../projects/talos-ui/form/select-input/option/option.component.html","../../../projects/talos-ui/form/select-input/option-group/option-group.component.ts","../../../projects/talos-ui/form/select-input/option-group/option-group.component.html","../../../projects/talos-ui/form/select-input/select-input/select-input.component.ts","../../../projects/talos-ui/form/select-input/select-input/select-input.component.html","../../../projects/talos-ui/form/select-input/cascade-select/cascade-select.component.ts","../../../projects/talos-ui/form/select-input/cascade-select/cascade-select.component.html","../../../projects/talos-ui/form/select-input/select-input.module.ts","../../../projects/talos-ui/form/select-input/weeehaoooz-talos-ui-form-select-input.ts"],"sourcesContent":["import {\n Component,\n ElementRef,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\n\n@Component({\n selector: 'talos-option',\n templateUrl: './option.component.html',\n styleUrl: './option.component.scss',\n host: {\n 'role': 'option',\n '[attr.aria-selected]': 'isSelected()',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.tabindex]': '-1',\n '[class.talos-option]': 'true',\n '[class.app-option]': 'true',\n '[class.is-selected]': 'isSelected()',\n '[class.is-active]': 'isActive()',\n '[class.is-disabled]': 'disabled()',\n '[class.is-hidden]': 'hidden()',\n '(click)': 'onClick($event)'\n }\n})\nexport class OptionComponent {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly value = input<unknown>(null);\n readonly label = input<string | undefined>(undefined);\n readonly disabled = input<boolean>(false);\n\n readonly selected = output<OptionComponent>();\n\n readonly isSelected = signal<boolean>(false);\n readonly isActive = signal<boolean>(false);\n readonly hidden = signal<boolean>(false);\n\n displayText(): string {\n const customLabel = this.label();\n if (customLabel !== undefined && customLabel !== null && customLabel !== '') {\n return customLabel;\n }\n const nativeText = this.elementRef.nativeElement.querySelector('.option-label-text')?.textContent?.trim()\n ?? this.elementRef.nativeElement.textContent?.trim();\n if (nativeText) {\n return nativeText;\n }\n const val = this.value();\n return val !== null && val !== undefined ? String(val) : '';\n }\n\n onClick(event: MouseEvent): void {\n event.stopPropagation();\n if (this.disabled() || this.hidden()) {\n return;\n }\n this.selected.emit(this);\n }\n\n scrollIntoViewIfNeeded(): void {\n if (typeof this.elementRef.nativeElement.scrollIntoView === 'function') {\n this.elementRef.nativeElement.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth'\n });\n }\n }\n}\n","<span class=\"option-label-text\">\n <ng-content>{{ label() }}</ng-content>\n</span>\n@if (isSelected()) {\n <svg class=\"option-check-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" aria-hidden=\"true\">\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n}\n","import { Component, contentChildren, input } from '@angular/core';\nimport { OptionComponent } from '../option/option.component';\n\n@Component({\n selector: 'talos-option-group',\n templateUrl: './option-group.component.html',\n styleUrl: './option-group.component.scss',\n host: {\n 'role': 'group',\n '[attr.aria-label]': 'label()',\n '[class.talos-option-group]': 'true',\n '[class.app-option-group]': 'true',\n '[class.is-disabled]': 'disabled()'\n }\n})\nexport class OptionGroupComponent {\n readonly label = input.required<string>();\n readonly disabled = input<boolean>(false);\n\n readonly options = contentChildren(OptionComponent);\n}\n","<div class=\"option-group-label\" aria-hidden=\"true\">\n {{ label() }}\n</div>\n<div class=\"option-group-content\">\n <ng-content select=\"talos-option, app-option\"></ng-content>\n</div>\n","import {\n AfterContentChecked,\n Component,\n ElementRef,\n ViewChild,\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 { OptionGroupComponent } from '../option-group/option-group.component';\nimport { OptionComponent } from '../option/option.component';\n\nlet uniqueIdCounter = 0;\n\n@Component({\n selector: 'talos-select-input',\n templateUrl: './select-input.component.html',\n styleUrl: './select-input.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectInputComponent),\n multi: true\n }\n ],\n host: {\n 'class': 'talos-select-host',\n '[class.is-open]': 'isOpen()',\n '[class.is-disabled]': 'effectiveDisabled()',\n '[class.has-label]': '!!label()',\n '[class.is-floating]': 'isFloatingMode()',\n '[class.is-floated]': 'isFloated()',\n '[class.has-prefix]': 'hasPrefix()',\n '[class.has-suffix]': 'hasSuffix()',\n '[class.select-sm]': 'size() === \"sm\"',\n '[class.select-md]': 'size() === \"md\"',\n '[class.select-lg]': 'size() === \"lg\"',\n '(keydown)': 'onKeyDown($event)',\n '(document:click)': 'onDocumentClick($event)'\n }\n})\nexport class SelectInputComponent implements ControlValueAccessor, AfterContentChecked {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n // Signal Inputs\n readonly placeholder = input<string>('Select an option');\n readonly label = input<string>('');\n readonly floatingLabel = input<boolean>(false);\n readonly floating = input<boolean>(false);\n readonly required = input<boolean>(false);\n readonly searchable = input<boolean>(false);\n readonly searchPlaceholder = input<string>('Search options...');\n readonly disabled = input<boolean>(false);\n readonly clearable = input<boolean>(false);\n readonly multiple = input<boolean>(false);\n readonly size = input<'sm' | 'md' | 'lg'>('sm');\n\n // Signal Outputs\n readonly selectionChange = output<unknown>();\n readonly opened = output<void>();\n readonly closed = output<void>();\n readonly searchChange = output<string>();\n\n // Content Queries\n readonly options = contentChildren(OptionComponent, { descendants: true });\n readonly optionGroups = contentChildren(OptionGroupComponent);\n\n // View Children\n @ViewChild('searchInput') searchInputEl?: ElementRef<HTMLInputElement>;\n @ViewChild('triggerEl') triggerEl?: ElementRef<HTMLDivElement>;\n\n // Component ID for ARIA attributes\n readonly componentId = `talos-select-${uniqueIdCounter++}`;\n readonly listboxId = `${this.componentId}-listbox`;\n\n // Internal Reactive State\n readonly value = signal<unknown>(null);\n readonly isOpen = signal<boolean>(false);\n readonly searchValue = signal<string>('');\n readonly focusedIndex = signal<number>(-1);\n readonly isDisabled = signal<boolean>(false);\n readonly isTouched = signal<boolean>(false);\n readonly hasPrefix = signal<boolean>(false);\n readonly hasSuffix = signal<boolean>(false);\n\n // Computed state\n readonly isFloatingMode = computed(() => this.floatingLabel() || this.floating());\n readonly isFloated = computed(() => {\n if (!this.isFloatingMode()) return false;\n return this.isOpen() || this.selectedOption() !== null || (this.searchable() && !!this.searchValue());\n });\n\n readonly effectiveDisabled = computed(() => this.disabled() || this.isDisabled());\n\n readonly selectedOption = computed(() => {\n const currentVal = this.value();\n if (currentVal === null || currentVal === undefined) {\n return null;\n }\n return this.options().find((opt) => opt.value() === currentVal) ?? null;\n });\n\n readonly displayLabel = computed(() => {\n const selected = this.selectedOption();\n return selected ? selected.displayText() : '';\n });\n\n readonly visibleOptions = computed(() => {\n return this.options().filter((opt) => !opt.hidden() && !opt.disabled());\n });\n\n // ControlValueAccessor Callbacks\n private onChange: (val: unknown) => void = () => { };\n private onTouched: () => void = () => { };\n\n constructor() {\n // Sync options' selected state when value or options list updates\n effect(() => {\n const opts = this.options();\n const currentVal = this.value();\n for (const opt of opts) {\n opt.isSelected.set(opt.value() === currentVal);\n }\n });\n\n\n\n // Subscribe to option click events\n effect((onCleanup) => {\n const opts = this.options();\n const subs = opts.map((opt) =>\n opt.selected.subscribe((selectedOpt) => {\n this.selectOption(selectedOpt);\n })\n );\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n\n // Update active highlight when focusedIndex or options change\n effect(() => {\n const visibleOpts = this.visibleOptions();\n const index = this.focusedIndex();\n\n this.options().forEach((opt) => {\n const isActive = index >= 0 && visibleOpts[index] === opt;\n opt.isActive.set(isActive);\n if (isActive) {\n opt.scrollIntoViewIfNeeded();\n }\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 // --- Open / Close Controls ---\n toggleOpen(): void {\n if (this.effectiveDisabled()) return;\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n }\n\n open(): void {\n if (this.effectiveDisabled() || this.isOpen()) return;\n this.isOpen.set(true);\n this.opened.emit();\n\n // Set initial keyboard focus index to selected option or first option\n const visibleOpts = this.visibleOptions();\n const selected = this.selectedOption();\n const selectedIdx = selected ? visibleOpts.indexOf(selected) : -1;\n this.focusedIndex.set(selectedIdx >= 0 ? selectedIdx : visibleOpts.length > 0 ? 0 : -1);\n\n if (this.searchable()) {\n setTimeout(() => {\n this.searchInputEl?.nativeElement.focus();\n }, 50);\n }\n }\n\n close(): void {\n if (!this.isOpen()) return;\n this.isOpen.set(false);\n this.focusedIndex.set(-1);\n this.clearSearch();\n this.markAsTouched();\n this.closed.emit();\n }\n\n // --- Selection Logic ---\n selectOption(option: OptionComponent | null): void {\n const newValue = option ? option.value() : null;\n this.value.set(newValue);\n this.onChange(newValue);\n this.selectionChange.emit(newValue);\n this.close();\n }\n\n\n onClear(event: MouseEvent): void {\n event.stopPropagation();\n if (this.effectiveDisabled()) return;\n this.selectOption(null);\n }\n\n\n markAsTouched(): void {\n if (!this.isTouched()) {\n this.isTouched.set(true);\n this.onTouched();\n }\n }\n\n // --- Search / Autocomplete Logic ---\n onSearchInput(event: Event): void {\n const query = (event.target as HTMLInputElement).value;\n this.searchValue.set(query);\n this.searchChange.emit(query);\n this.filterOptions(query);\n }\n\n clearSearch(): void {\n if (this.searchValue()) {\n this.searchValue.set('');\n this.searchChange.emit('');\n this.filterOptions('');\n }\n }\n\n private filterOptions(query: string): void {\n const term = query.toLowerCase().trim();\n for (const opt of this.options()) {\n if (!term) {\n opt.hidden.set(false);\n } else {\n const matches = opt.displayText().toLowerCase().includes(term);\n opt.hidden.set(!matches);\n }\n }\n const visibleOpts = this.visibleOptions();\n this.focusedIndex.set(visibleOpts.length > 0 ? 0 : -1);\n }\n\n // --- Keyboard & Document Click Event Handlers ---\n onKeyDown(event: KeyboardEvent): void {\n if (this.effectiveDisabled()) return;\n\n const visibleOpts = this.visibleOptions();\n const count = visibleOpts.length;\n const currentIdx = this.focusedIndex();\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n if (!this.isOpen()) {\n this.open();\n } else if (count > 0) {\n const nextIdx = (currentIdx + 1) % count;\n this.focusedIndex.set(nextIdx);\n }\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n if (!this.isOpen()) {\n this.open();\n } else if (count > 0) {\n const prevIdx = (currentIdx - 1 + count) % count;\n this.focusedIndex.set(prevIdx);\n }\n break;\n\n case 'Enter':\n case ' ':\n if (event.key === ' ' && this.searchable() && this.isOpen()) {\n // Allow space key inside search input\n return;\n }\n event.preventDefault();\n if (!this.isOpen()) {\n this.open();\n } else if (currentIdx >= 0 && currentIdx < count) {\n this.selectOption(visibleOpts[currentIdx]);\n }\n break;\n\n case 'Escape':\n if (this.isOpen()) {\n event.preventDefault();\n this.close();\n this.triggerEl?.nativeElement.focus();\n }\n break;\n\n case 'Home':\n if (this.isOpen() && count > 0) {\n event.preventDefault();\n this.focusedIndex.set(0);\n }\n break;\n\n case 'End':\n if (this.isOpen() && count > 0) {\n event.preventDefault();\n this.focusedIndex.set(count - 1);\n }\n break;\n\n case 'Tab':\n if (this.isOpen()) {\n this.close();\n }\n break;\n }\n }\n\n ngAfterContentChecked(): void {\n this.checkAffixes();\n }\n\n private checkAffixes(): void {\n const root = this.elementRef.nativeElement as HTMLElement;\n const prefixEl = root.querySelector<HTMLElement>(\n '.select-trigger > [talosPrefix], .select-trigger > [talosTextPrefix], .select-trigger > [talos-prefix], .select-trigger > [talos-text-prefix], .select-trigger > [talosLead], .select-trigger > [talosStart], .select-trigger > [prefix], .select-trigger > .talos-input-prefix'\n );\n this.hasPrefix.set(!!prefixEl);\n\n const suffixEl = root.querySelector<HTMLElement>(\n '.select-trigger > [talosSuffix], .select-trigger > [talosPostfix], .select-trigger > [talosTextSuffix], .select-trigger > [talosTextPostfix], .select-trigger > [talos-suffix], .select-trigger > [talos-postfix], .select-trigger > [talosTrail], .select-trigger > [talosEnd], .select-trigger > [suffix], .select-trigger > .talos-input-suffix'\n );\n this.hasSuffix.set(!!suffixEl);\n\n if (prefixEl) {\n const prefixWidth = prefixEl.getBoundingClientRect().width;\n if (prefixWidth > 0) {\n root.style.setProperty('--talos-prefix-offset', `${Math.round(prefixWidth + 16)}px`);\n }\n } else {\n root.style.removeProperty('--talos-prefix-offset');\n }\n\n if (suffixEl) {\n const suffixWidth = suffixEl.getBoundingClientRect().width;\n if (suffixWidth > 0) {\n root.style.setProperty('--talos-suffix-offset', `${Math.round(suffixWidth + 16)}px`);\n }\n } else {\n root.style.removeProperty('--talos-suffix-offset');\n }\n }\n\n onDocumentClick(event: MouseEvent): void {\n if (this.isOpen() && !this.elementRef.nativeElement.contains(event.target as Node)) {\n this.close();\n }\n }\n}\n","@if (label() && !isFloatingMode()) {\n <label class=\"talos-field-label\" (click)=\"toggleOpen()\">\n {{ label() }}\n @if (required()) {\n <span class=\"required-star\" aria-hidden=\"true\">*</span>\n }\n </label>\n}\n\n<div class=\"select-control-container\">\n <!-- Select Control Trigger -->\n <div #triggerEl class=\"select-trigger\" role=\"combobox\" [attr.aria-expanded]=\"isOpen()\" [attr.aria-haspopup]=\"'listbox'\"\n [attr.aria-controls]=\"listboxId\" [attr.aria-disabled]=\"effectiveDisabled()\"\n [attr.tabindex]=\"effectiveDisabled() ? -1 : 0\" (click)=\"toggleOpen()\">\n <ng-content select=\"[prefix], [talosPrefix], [talosTextPrefix], [talosLead], [talosStart]\"></ng-content>\n\n <div class=\"select-value-container\">\n @if (selectedOption()) {\n <span class=\"select-value-label\">{{ displayLabel() }}</span>\n } @else if (!isFloatingMode() || isFloated()) {\n <span class=\"select-placeholder\">{{ placeholder() }}</span>\n }\n </div>\n\n <ng-content select=\"[suffix], [talosSuffix], [talosPostfix], [talosTextSuffix], [talosTextPostfix], [talosTrail], [talosEnd]\"></ng-content>\n\n <div class=\"select-actions\">\n @if (clearable() && selectedOption() && !effectiveDisabled()) {\n <button type=\"button\" class=\"select-clear-btn\" aria-label=\"Clear selection\" title=\"Clear selection\"\n (click)=\"onClear($event)\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n }\n\n <span class=\"select-arrow\" [class.is-open]=\"isOpen()\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\n <polyline points=\"6 9 12 15 18 9\"></polyline>\n </svg>\n </span>\n </div>\n </div>\n\n @if (label() && isFloatingMode()) {\n <label class=\"talos-floating-label\" [class.is-floated]=\"isFloated()\" (click)=\"toggleOpen()\">\n {{ label() }}\n @if (required()) {\n <span class=\"required-star\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n<!-- Dropdown Panel -->\n@if (isOpen()) {\n<div class=\"select-dropdown-panel\" [id]=\"listboxId\" role=\"listbox\">\n @if (searchable()) {\n <div class=\"select-search-container\">\n <svg class=\"search-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <circle cx=\"11\" cy=\"11\" r=\"8\"></circle>\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line>\n </svg>\n <input #searchInput type=\"text\" class=\"select-search-input\" [placeholder]=\"searchPlaceholder()\"\n [value]=\"searchValue()\" (input)=\"onSearchInput($event)\" aria-label=\"Search options\" />\n @if (searchValue()) {\n <button type=\"button\" class=\"select-search-clear\" aria-label=\"Clear search\" (click)=\"clearSearch()\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n }\n </div>\n }\n\n <div class=\"select-options-list\">\n <ng-content></ng-content>\n @if (visibleOptions().length === 0) {\n <div class=\"select-no-options\">\n No matching options\n </div>\n }\n </div>\n</div>\n}\n</div>","import {\n AfterContentChecked,\n Component,\n ElementRef,\n ViewChild,\n computed,\n forwardRef,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n CascadeExpandTrigger,\n CascadeOption,\n CascadeSearchMatch,\n CascadeValueMode\n} from './cascade-select.types';\n\nexport interface ColumnData {\n depth: number;\n options: CascadeOption[];\n selectedOption: CascadeOption | null;\n}\n\n@Component({\n selector: 'talos-cascade-select',\n templateUrl: './cascade-select.component.html',\n styleUrl: './cascade-select.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CascadeSelectComponent),\n multi: true\n }\n ],\n host: {\n 'role': 'combobox',\n '[attr.aria-expanded]': 'isOpen()',\n '[attr.aria-disabled]': 'disabled()',\n '[class.talos-cascade-select]': 'true',\n '[class.is-open]': 'isOpen()',\n '[class.is-disabled]': 'disabled()',\n '[class.has-prefix]': 'hasPrefix()',\n '[class.has-suffix]': 'hasSuffix()',\n '[class.cascade-sm]': 'size() === \"sm\"',\n '[class.cascade-md]': 'size() === \"md\"',\n '[class.cascade-lg]': 'size() === \"lg\"',\n '(document:click)': 'onDocumentClick($event)'\n }\n})\nexport class CascadeSelectComponent implements ControlValueAccessor, AfterContentChecked {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n // Signal Inputs\n readonly options = input<CascadeOption[]>([]);\n readonly placeholder = input<string>('Select path...');\n readonly label = input<string>('');\n readonly floatingLabel = input<boolean>(false);\n readonly floating = input<boolean>(false);\n readonly required = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n readonly clearable = input<boolean>(false);\n readonly searchable = input<boolean>(false);\n readonly searchPlaceholder = input<string>('Search full hierarchy...');\n readonly expandTrigger = input<CascadeExpandTrigger>('click');\n readonly valueMode = input<CascadeValueMode>('path');\n readonly separator = input<string>(' / ');\n readonly size = input<'sm' | 'md' | 'lg'>('md');\n\n // Signal Outputs\n readonly pathChange = output<CascadeOption[]>();\n readonly selectionChange = output<unknown>();\n readonly opened = output<void>();\n readonly closed = output<void>();\n\n // Internal Reactive State\n readonly isOpen = signal<boolean>(false);\n readonly activePath = signal<CascadeOption[]>([]);\n readonly selectedPath = signal<CascadeOption[]>([]);\n readonly searchTerm = signal<string>('');\n readonly highlightedSearchIndex = signal<number>(0);\n readonly hasPrefix = signal<boolean>(false);\n readonly hasSuffix = signal<boolean>(false);\n\n // Form Control State\n readonly hasError = signal<boolean>(false);\n\n @ViewChild('searchInput') searchInputEl?: ElementRef<HTMLInputElement>;\n @ViewChild('triggerBox') triggerBoxEl?: ElementRef<HTMLElement>;\n\n private onChange: (val: unknown) => void = () => {};\n private onTouched: () => void = () => {};\n\n readonly isFloatingMode = computed(() => this.floatingLabel() || this.floating());\n\n readonly displayLabel = computed(() => {\n const sel = this.selectedPath();\n if (!sel || sel.length === 0) {\n return '';\n }\n return sel.map((opt) => opt.label).join(this.separator());\n });\n\n readonly isFloated = computed(() => {\n return this.isOpen() || !!this.displayLabel();\n });\n\n // Dynamic Column List for Cascade Panels\n readonly activeColumns = computed<ColumnData[]>(() => {\n const rootOptions = this.options();\n const currentActive = this.activePath();\n const columns: ColumnData[] = [];\n\n // Root column\n columns.push({\n depth: 0,\n options: rootOptions,\n selectedOption: currentActive[0] || null\n });\n\n // Sub-columns following the active path\n for (let i = 0; i < currentActive.length; i++) {\n const activeOpt = currentActive[i];\n if (activeOpt && activeOpt.children && activeOpt.children.length > 0) {\n columns.push({\n depth: i + 1,\n options: activeOpt.children,\n selectedOption: currentActive[i + 1] || null\n });\n }\n }\n\n return columns;\n });\n\n // Flat Search Index for Typeahead Search\n readonly allSearchablePaths = computed<CascadeSearchMatch[]>(() => {\n const results: CascadeSearchMatch[] = [];\n const rootOptions = this.options();\n\n const traverse = (opts: CascadeOption[], currentPath: CascadeOption[]) => {\n for (const opt of opts) {\n const nextPath = [...currentPath, opt];\n const isLeaf = !opt.children || opt.children.length === 0 || opt.leaf;\n\n if (isLeaf) {\n results.push({\n option: opt,\n path: nextPath,\n labelPath: nextPath.map((p) => p.label).join(this.separator()),\n valuePath: nextPath.map((p) => p.value),\n disabled: nextPath.some((p) => p.disabled)\n });\n }\n\n if (opt.children && opt.children.length > 0) {\n traverse(opt.children, nextPath);\n }\n }\n };\n\n traverse(rootOptions, []);\n return results;\n });\n\n readonly filteredSearchResults = computed<CascadeSearchMatch[]>(() => {\n const term = this.searchTerm().toLowerCase().trim();\n if (!term) {\n return [];\n }\n return this.allSearchablePaths().filter((match) =>\n match.labelPath.toLowerCase().includes(term)\n );\n });\n\n // ControlValueAccessor Implementation\n writeValue(value: unknown): void {\n if (value === null || value === undefined || (Array.isArray(value) && value.length === 0)) {\n this.selectedPath.set([]);\n this.activePath.set([]);\n return;\n }\n\n const matchedPath = this.findPathForValue(value, this.options());\n if (matchedPath) {\n this.selectedPath.set(matchedPath);\n this.activePath.set(matchedPath);\n }\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 // Handled via input or form state\n }\n\n toggleDropdown(): void {\n if (this.disabled()) {\n return;\n }\n if (this.isOpen()) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n }\n\n openDropdown(): void {\n if (this.disabled()) {\n return;\n }\n this.isOpen.set(true);\n this.searchTerm.set('');\n // Sync active path with selected path on open\n this.activePath.set([...this.selectedPath()]);\n this.opened.emit();\n\n if (this.searchable()) {\n setTimeout(() => {\n this.searchInputEl?.nativeElement.focus();\n }, 50);\n }\n }\n\n closeDropdown(): void {\n if (!this.isOpen()) {\n return;\n }\n this.isOpen.set(false);\n this.searchTerm.set('');\n this.onTouched();\n this.closed.emit();\n }\n\n onDocumentClick(event: MouseEvent): void {\n if (!this.elementRef.nativeElement.contains(event.target as Node)) {\n this.closeDropdown();\n }\n }\n\n hasChildren(option: CascadeOption): boolean {\n return !!option.children && option.children.length > 0 && !option.leaf;\n }\n\n isOptionSelected(depth: number, option: CascadeOption): boolean {\n const sel = this.selectedPath();\n return sel[depth]?.value === option.value;\n }\n\n isOptionActiveBranch(depth: number, option: CascadeOption): boolean {\n const active = this.activePath();\n return active[depth]?.value === option.value;\n }\n\n onOptionHover(depth: number, option: CascadeOption): void {\n if (this.expandTrigger() !== 'hover' || option.disabled) {\n return;\n }\n this.expandOption(depth, option);\n }\n\n onOptionClick(depth: number, option: CascadeOption): void {\n if (option.disabled) {\n return;\n }\n\n if (this.hasChildren(option)) {\n this.expandOption(depth, option);\n } else {\n // Leaf Node Selection\n const newPath = [...this.activePath().slice(0, depth), option];\n this.commitSelection(newPath);\n }\n }\n\n private expandOption(depth: number, option: CascadeOption): void {\n const newActive = [...this.activePath().slice(0, depth), option];\n this.activePath.set(newActive);\n }\n\n commitSelection(path: CascadeOption[]): void {\n this.selectedPath.set(path);\n this.activePath.set(path);\n\n const emittedValue =\n this.valueMode() === 'leaf'\n ? path[path.length - 1]?.value\n : path.map((p) => p.value);\n\n this.onChange(emittedValue);\n this.selectionChange.emit(emittedValue);\n this.pathChange.emit(path);\n this.closeDropdown();\n }\n\n onClear(event: MouseEvent): void {\n event.stopPropagation();\n this.selectedPath.set([]);\n this.activePath.set([]);\n const emptyVal = this.valueMode() === 'leaf' ? null : [];\n this.onChange(emptyVal);\n this.selectionChange.emit(emptyVal);\n this.pathChange.emit([]);\n }\n\n // Search Logic\n onSearchInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.searchTerm.set(input.value);\n this.highlightedSearchIndex.set(0);\n }\n\n clearSearch(): void {\n this.searchTerm.set('');\n this.searchInputEl?.nativeElement.focus();\n }\n\n selectSearchResult(match: CascadeSearchMatch): void {\n if (match.disabled) {\n return;\n }\n this.commitSelection(match.path);\n }\n\n onSearchKeyDown(event: KeyboardEvent): void {\n const results = this.filteredSearchResults();\n if (results.length === 0) {\n return;\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.highlightedSearchIndex.update((idx) => (idx + 1) % results.length);\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n this.highlightedSearchIndex.update((idx) => (idx - 1 + results.length) % results.length);\n } else if (event.key === 'Enter') {\n event.preventDefault();\n const current = results[this.highlightedSearchIndex()];\n if (current) {\n this.selectSearchResult(current);\n }\n } else if (event.key === 'Escape') {\n event.preventDefault();\n this.closeDropdown();\n }\n }\n\n onKeyDown(event: KeyboardEvent): void {\n if (this.disabled()) {\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ' || event.key === 'ArrowDown') {\n if (!this.isOpen()) {\n event.preventDefault();\n this.openDropdown();\n }\n } else if (event.key === 'Escape') {\n if (this.isOpen()) {\n event.preventDefault();\n this.closeDropdown();\n }\n }\n }\n\n private findPathForValue(val: unknown, options: CascadeOption[]): CascadeOption[] | null {\n // If value is array of path keys: ['na', 'usa', 'sf']\n if (Array.isArray(val)) {\n let currentLevel = options;\n const resolvedPath: CascadeOption[] = [];\n\n for (const segment of val) {\n const match = currentLevel.find((o) => o.value === segment);\n if (!match) {\n return null;\n }\n resolvedPath.push(match);\n if (match.children) {\n currentLevel = match.children;\n }\n }\n return resolvedPath.length === val.length ? resolvedPath : null;\n }\n\n // If value is single leaf key: 'sf'\n const searchLeaf = (opts: CascadeOption[], path: CascadeOption[]): CascadeOption[] | null => {\n for (const opt of opts) {\n const nextPath = [...path, opt];\n if (opt.value === val) {\n return nextPath;\n }\n if (opt.children && opt.children.length > 0) {\n const res = searchLeaf(opt.children, nextPath);\n if (res) {\n return res;\n }\n }\n }\n return null;\n };\n\n return searchLeaf(options, []);\n }\n\n ngAfterContentChecked(): void {\n this.checkAffixes();\n }\n\n private checkAffixes(): void {\n const root = this.elementRef.nativeElement as HTMLElement;\n const prefixEl = root.querySelector<HTMLElement>(\n '.cascade-trigger > [talosPrefix], .cascade-trigger > [talosTextPrefix], .cascade-trigger > [talos-prefix], .cascade-trigger > [talos-text-prefix], .cascade-trigger > [talosLead], .cascade-trigger > [talosStart], .cascade-trigger > [prefix], .cascade-trigger > .talos-input-prefix'\n );\n this.hasPrefix.set(!!prefixEl);\n\n const suffixEl = root.querySelector<HTMLElement>(\n '.cascade-trigger > [talosSuffix], .cascade-trigger > [talosPostfix], .cascade-trigger > [talosTextSuffix], .cascade-trigger > [talosTextPostfix], .cascade-trigger > [talos-suffix], .cascade-trigger > [talos-postfix], .cascade-trigger > [talosTrail], .cascade-trigger > [talosEnd], .cascade-trigger > [suffix], .cascade-trigger > .talos-input-suffix'\n );\n this.hasSuffix.set(!!suffixEl);\n\n if (prefixEl) {\n const prefixWidth = prefixEl.getBoundingClientRect().width;\n if (prefixWidth > 0) {\n root.style.setProperty('--talos-prefix-offset', `${Math.round(prefixWidth + 16)}px`);\n }\n } else {\n root.style.removeProperty('--talos-prefix-offset');\n }\n\n if (suffixEl) {\n const suffixWidth = suffixEl.getBoundingClientRect().width;\n if (suffixWidth > 0) {\n root.style.setProperty('--talos-suffix-offset', `${Math.round(suffixWidth + 16)}px`);\n }\n } else {\n root.style.removeProperty('--talos-suffix-offset');\n }\n }\n}\n","@if (label() && !isFloatingMode()) {\n <label class=\"talos-field-label\" (click)=\"toggleDropdown()\">\n {{ label() }}\n @if (required()) {\n <span class=\"required-star\" aria-hidden=\"true\">*</span>\n }\n </label>\n}\n\n<div class=\"cascade-select-wrapper\" [class.is-focused]=\"isOpen()\">\n <!-- Main Select Trigger Box -->\n <div\n #triggerBox\n class=\"cascade-trigger\"\n [class.is-empty]=\"!displayLabel()\"\n [class.is-disabled]=\"disabled()\"\n [class.has-error]=\"hasError()\"\n [attr.tabindex]=\"disabled() ? -1 : 0\"\n (click)=\"toggleDropdown()\"\n (keydown)=\"onKeyDown($event)\">\n\n <ng-content select=\"[prefix], [talosPrefix], [talosTextPrefix], [talosLead], [talosStart]\"></ng-content>\n\n <!-- Display Value or Placeholder -->\n <div class=\"trigger-content\">\n @if (displayLabel()) {\n <span class=\"display-text\">{{ displayLabel() }}</span>\n } @else if (!isFloatingMode() || isFloated()) {\n <span class=\"placeholder-text\">{{ placeholder() }}</span>\n }\n </div>\n\n <ng-content select=\"[suffix], [talosSuffix], [talosPostfix], [talosTextSuffix], [talosTextPostfix], [talosTrail], [talosEnd]\"></ng-content>\n\n <!-- Actions (Clear & Chevron) -->\n <div class=\"trigger-actions\">\n @if (clearable() && displayLabel() && !disabled()) {\n <button\n type=\"button\"\n class=\"clear-button\"\n aria-label=\"Clear selection\"\n title=\"Clear selection\"\n (click)=\"onClear($event)\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n }\n\n <span class=\"chevron-icon\" [class.is-open]=\"isOpen()\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\n <polyline points=\"6 9 12 15 18 9\"></polyline>\n </svg>\n </span>\n </div>\n </div>\n\n @if (label() && isFloatingMode()) {\n <label class=\"talos-floating-label\" [class.is-floated]=\"isFloated()\" (click)=\"toggleDropdown()\">\n {{ label() }}\n @if (required()) {\n <span class=\"required-star\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <!-- Cascading Dropdown Overlay -->\n @if (isOpen()) {\n <div class=\"cascade-dropdown-panel\" (click)=\"$event.stopPropagation()\">\n <!-- Typeahead Search Container -->\n @if (searchable()) {\n <div class=\"cascade-search-container\">\n <svg class=\"search-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <circle cx=\"11\" cy=\"11\" r=\"8\"></circle>\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line>\n </svg>\n <input\n #searchInput\n type=\"text\"\n class=\"cascade-search-input search-input\"\n [placeholder]=\"searchPlaceholder()\"\n [value]=\"searchTerm()\"\n (input)=\"onSearchInput($event)\"\n (keydown)=\"onSearchKeyDown($event)\"\n aria-label=\"Search cascade hierarchy\" />\n\n @if (searchTerm()) {\n <button type=\"button\" class=\"cascade-search-clear\" aria-label=\"Clear search\" (click)=\"clearSearch()\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n }\n </div>\n }\n\n <!-- Search Results View -->\n @if (searchTerm()) {\n <div class=\"search-results-list\">\n @if (filteredSearchResults().length === 0) {\n <div class=\"empty-state\">No matching paths found</div>\n } @else {\n @for (match of filteredSearchResults(); track match.labelPath; let idx = $index) {\n <div\n class=\"search-result-item\"\n [class.is-highlighted]=\"idx === highlightedSearchIndex()\"\n [class.is-disabled]=\"match.disabled\"\n (click)=\"selectSearchResult(match)\">\n <span class=\"match-path\">{{ match.labelPath }}</span>\n </div>\n }\n }\n </div>\n } @else {\n <!-- Side-by-Side Multi-Column Cascade Drilldown -->\n <div class=\"cascade-columns-container\">\n @for (col of activeColumns(); track col.depth; let colIdx = $index) {\n <div class=\"cascade-column\" [attr.data-depth]=\"colIdx\">\n @if (col.options.length === 0) {\n <div class=\"empty-column-state\">No options</div>\n } @else {\n <div class=\"column-options-list\">\n @for (opt of col.options; track opt.value; let rowIdx = $index) {\n <div\n class=\"cascade-option-item\"\n [class.is-selected]=\"isOptionSelected(colIdx, opt)\"\n [class.is-active-branch]=\"isOptionActiveBranch(colIdx, opt)\"\n [class.is-disabled]=\"opt.disabled\"\n (mouseenter)=\"onOptionHover(colIdx, opt)\"\n (click)=\"onOptionClick(colIdx, opt)\">\n \n @if (opt.icon) {\n <span class=\"option-icon\">{{ opt.icon }}</span>\n }\n \n <span class=\"option-label\">{{ opt.label }}</span>\n \n @if (hasChildren(opt)) {\n <span class=\"option-arrow\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <polyline points=\"9 18 15 12 9 6\"></polyline>\n </svg>\n </span>\n } @else if (isOptionSelected(colIdx, opt)) {\n <span class=\"option-check\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </span>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { SelectInputComponent } from './select-input/select-input.component';\nimport { OptionComponent } from './option/option.component';\nimport { OptionGroupComponent } from './option-group/option-group.component';\nimport { CascadeSelectComponent } from './cascade-select/cascade-select.component';\n\n/**\n * Convenience NgModule wrapping the standalone select input, option, and cascade select components.\n * \n * Allows developers who prefer `SelectInputModule` to import it into standalone components\n * or legacy NgModule-based applications.\n */\n@NgModule({\n imports: [\n SelectInputComponent,\n OptionComponent,\n OptionGroupComponent,\n CascadeSelectComponent\n ],\n exports: [\n SelectInputComponent,\n OptionComponent,\n OptionGroupComponent,\n CascadeSelectComponent\n ]\n})\nexport class SelectInputModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,252 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ElementRef, input, output, Directive, viewChild, computed, signal, forwardRef, Component, NgModule } from '@angular/core';
|
|
3
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
-
|
|
5
|
-
class TalosSlideToggleDirective {
|
|
6
|
-
elementRef = inject((ElementRef));
|
|
7
|
-
/** Standalone checked state */
|
|
8
|
-
checked = input(false, /* @ts-ignore */
|
|
9
|
-
...(ngDevMode ? [{ debugName: "checked" }] : /* istanbul ignore next */ []));
|
|
10
|
-
/** Sizing variation for the slide toggle */
|
|
11
|
-
size = input('md', /* @ts-ignore */
|
|
12
|
-
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
13
|
-
/** Visual color variant for the slide toggle */
|
|
14
|
-
variant = input('primary', /* @ts-ignore */
|
|
15
|
-
...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
16
|
-
/** Whether the slide toggle is disabled */
|
|
17
|
-
disabled = input(false, /* @ts-ignore */
|
|
18
|
-
...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
19
|
-
/** Whether the slide toggle is in an invalid error state */
|
|
20
|
-
invalid = input(false, /* @ts-ignore */
|
|
21
|
-
...(ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []));
|
|
22
|
-
/** Output event emitted when checked state changes */
|
|
23
|
-
checkedChange = output();
|
|
24
|
-
onNativeChange(event) {
|
|
25
|
-
if (this.disabled())
|
|
26
|
-
return;
|
|
27
|
-
const target = event.target;
|
|
28
|
-
const isChecked = target.checked;
|
|
29
|
-
this.checkedChange.emit(isChecked);
|
|
30
|
-
}
|
|
31
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosSlideToggleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
32
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.1", type: TalosSlideToggleDirective, isStandalone: true, selector: "input[type=\"checkbox\"][talosSlideToggle], input[type=\"checkbox\"][talos-slide-toggle], input[type=\"checkbox\"][talosSwitch], input[type=\"checkbox\"][talos-switch]", inputs: { checked: { classPropertyName: "checked", publicName: "checked", 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 }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checkedChange: "checkedChange" }, host: { attributes: { "role": "switch" }, listeners: { "change": "onNativeChange($event)" }, properties: { "class.slide-toggle-sm": "size() === \"sm\"", "class.slide-toggle-md": "size() === \"md\"", "class.slide-toggle-lg": "size() === \"lg\"", "class.talos-slide-toggle-primary": "variant() === \"primary\"", "class.talos-slide-toggle-secondary": "variant() === \"secondary\"", "class.talos-slide-toggle-success": "variant() === \"success\"", "class.talos-slide-toggle-danger": "variant() === \"danger\"", "class.is-invalid": "invalid()", "checked": "checked()", "disabled": "disabled()" }, classAttribute: "talos-slide-toggle" }, exportAs: ["talosSlideToggle"], ngImport: i0 });
|
|
33
|
-
}
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosSlideToggleDirective, decorators: [{
|
|
35
|
-
type: Directive,
|
|
36
|
-
args: [{
|
|
37
|
-
selector: 'input[type="checkbox"][talosSlideToggle], input[type="checkbox"][talos-slide-toggle], input[type="checkbox"][talosSwitch], input[type="checkbox"][talos-switch]',
|
|
38
|
-
exportAs: 'talosSlideToggle',
|
|
39
|
-
host: {
|
|
40
|
-
'class': 'talos-slide-toggle',
|
|
41
|
-
'role': 'switch',
|
|
42
|
-
'[class.slide-toggle-sm]': 'size() === "sm"',
|
|
43
|
-
'[class.slide-toggle-md]': 'size() === "md"',
|
|
44
|
-
'[class.slide-toggle-lg]': 'size() === "lg"',
|
|
45
|
-
'[class.talos-slide-toggle-primary]': 'variant() === "primary"',
|
|
46
|
-
'[class.talos-slide-toggle-secondary]': 'variant() === "secondary"',
|
|
47
|
-
'[class.talos-slide-toggle-success]': 'variant() === "success"',
|
|
48
|
-
'[class.talos-slide-toggle-danger]': 'variant() === "danger"',
|
|
49
|
-
'[class.is-invalid]': 'invalid()',
|
|
50
|
-
'[checked]': 'checked()',
|
|
51
|
-
'[disabled]': 'disabled()',
|
|
52
|
-
'(change)': 'onNativeChange($event)'
|
|
53
|
-
}
|
|
54
|
-
}]
|
|
55
|
-
}], propDecorators: { checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], checkedChange: [{ type: i0.Output, args: ["checkedChange"] }] } });
|
|
56
|
-
|
|
57
|
-
let slideToggleCounter = 0;
|
|
58
|
-
class TalosSlideToggleComponent {
|
|
59
|
-
inputRef = viewChild('inputEl', /* @ts-ignore */
|
|
60
|
-
...(ngDevMode ? [{ debugName: "inputRef" }] : /* istanbul ignore next */ []));
|
|
61
|
-
/** Standalone checked state input */
|
|
62
|
-
checked = input(false, /* @ts-ignore */
|
|
63
|
-
...(ngDevMode ? [{ debugName: "checked" }] : /* istanbul ignore next */ []));
|
|
64
|
-
/** Sizing variation for the toggle switch */
|
|
65
|
-
size = input('md', /* @ts-ignore */
|
|
66
|
-
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
67
|
-
/** Visual color variant for the toggle switch */
|
|
68
|
-
variant = input('primary', /* @ts-ignore */
|
|
69
|
-
...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
70
|
-
/** Whether the toggle switch is disabled */
|
|
71
|
-
disabled = input(false, /* @ts-ignore */
|
|
72
|
-
...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
73
|
-
/** Whether the toggle switch is in an invalid error state */
|
|
74
|
-
invalid = input(false, /* @ts-ignore */
|
|
75
|
-
...(ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []));
|
|
76
|
-
/** Position of the label text relative to the toggle switch */
|
|
77
|
-
labelPosition = input('after', /* @ts-ignore */
|
|
78
|
-
...(ngDevMode ? [{ debugName: "labelPosition" }] : /* istanbul ignore next */ []));
|
|
79
|
-
/** Optional label text fallback if not projecting content */
|
|
80
|
-
label = input('', /* @ts-ignore */
|
|
81
|
-
...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
82
|
-
/** Element HTML ID */
|
|
83
|
-
id = input('', /* @ts-ignore */
|
|
84
|
-
...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
|
|
85
|
-
/** Emitted when checked state changes */
|
|
86
|
-
checkedChange = output();
|
|
87
|
-
// Internal reactive state for CVA & ID generation
|
|
88
|
-
defaultId = `talos-slide-toggle-${++slideToggleCounter}`;
|
|
89
|
-
elementId = computed(() => this.id() || this.defaultId, /* @ts-ignore */
|
|
90
|
-
...(ngDevMode ? [{ debugName: "elementId" }] : /* istanbul ignore next */ []));
|
|
91
|
-
internalValue = signal(false, /* @ts-ignore */
|
|
92
|
-
...(ngDevMode ? [{ debugName: "internalValue" }] : /* istanbul ignore next */ []));
|
|
93
|
-
isDisabled = signal(false, /* @ts-ignore */
|
|
94
|
-
...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
|
|
95
|
-
isTouched = signal(false, /* @ts-ignore */
|
|
96
|
-
...(ngDevMode ? [{ debugName: "isTouched" }] : /* istanbul ignore next */ []));
|
|
97
|
-
// Effective state computations
|
|
98
|
-
effectiveDisabled = computed(() => this.disabled() || this.isDisabled(), /* @ts-ignore */
|
|
99
|
-
...(ngDevMode ? [{ debugName: "effectiveDisabled" }] : /* istanbul ignore next */ []));
|
|
100
|
-
effectiveInvalid = computed(() => this.invalid(), /* @ts-ignore */
|
|
101
|
-
...(ngDevMode ? [{ debugName: "effectiveInvalid" }] : /* istanbul ignore next */ []));
|
|
102
|
-
isChecked = computed(() => this.internalValue() || this.checked(), /* @ts-ignore */
|
|
103
|
-
...(ngDevMode ? [{ debugName: "isChecked" }] : /* istanbul ignore next */ []));
|
|
104
|
-
onChange = () => { };
|
|
105
|
-
onTouched = () => { };
|
|
106
|
-
// --- ControlValueAccessor Implementation ---
|
|
107
|
-
writeValue(val) {
|
|
108
|
-
this.internalValue.set(!!val);
|
|
109
|
-
}
|
|
110
|
-
registerOnChange(fn) {
|
|
111
|
-
this.onChange = fn;
|
|
112
|
-
}
|
|
113
|
-
registerOnTouched(fn) {
|
|
114
|
-
this.onTouched = fn;
|
|
115
|
-
}
|
|
116
|
-
setDisabledState(isDisabled) {
|
|
117
|
-
this.isDisabled.set(isDisabled);
|
|
118
|
-
}
|
|
119
|
-
onDirectiveCheckedChange(isChecked) {
|
|
120
|
-
if (this.effectiveDisabled())
|
|
121
|
-
return;
|
|
122
|
-
this.internalValue.set(isChecked);
|
|
123
|
-
this.onChange(isChecked);
|
|
124
|
-
this.checkedChange.emit(isChecked);
|
|
125
|
-
this.markAsTouched();
|
|
126
|
-
}
|
|
127
|
-
markAsTouched() {
|
|
128
|
-
if (!this.isTouched()) {
|
|
129
|
-
this.isTouched.set(true);
|
|
130
|
-
this.onTouched();
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
/** Focuses the native HTML input element */
|
|
134
|
-
focusInput() {
|
|
135
|
-
this.inputRef()?.nativeElement.focus();
|
|
136
|
-
}
|
|
137
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosSlideToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
138
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.1", type: TalosSlideToggleComponent, isStandalone: true, selector: "talos-slide-toggle, talos-switch", inputs: { checked: { classPropertyName: "checked", publicName: "checked", 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 }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, labelPosition: { classPropertyName: "labelPosition", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checkedChange: "checkedChange" }, host: { classAttribute: "talos-slide-toggle-host" }, providers: [
|
|
139
|
-
{
|
|
140
|
-
provide: NG_VALUE_ACCESSOR,
|
|
141
|
-
useExisting: forwardRef(() => TalosSlideToggleComponent),
|
|
142
|
-
multi: true
|
|
143
|
-
}
|
|
144
|
-
], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputEl"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
145
|
-
<label
|
|
146
|
-
class="talos-slide-toggle-wrapper"
|
|
147
|
-
[class.is-disabled]="effectiveDisabled()"
|
|
148
|
-
[class.is-checked]="isChecked()"
|
|
149
|
-
[class.label-before]="labelPosition() === 'before'"
|
|
150
|
-
>
|
|
151
|
-
<span class="talos-slide-toggle-switch">
|
|
152
|
-
<input
|
|
153
|
-
#inputEl
|
|
154
|
-
type="checkbox"
|
|
155
|
-
talosSlideToggle
|
|
156
|
-
[id]="elementId()"
|
|
157
|
-
[checked]="isChecked()"
|
|
158
|
-
[size]="size()"
|
|
159
|
-
[variant]="variant()"
|
|
160
|
-
[disabled]="effectiveDisabled()"
|
|
161
|
-
[invalid]="effectiveInvalid()"
|
|
162
|
-
(checkedChange)="onDirectiveCheckedChange($event)"
|
|
163
|
-
/>
|
|
164
|
-
<span class="talos-slide-toggle-track">
|
|
165
|
-
<span class="talos-slide-toggle-thumb"></span>
|
|
166
|
-
</span>
|
|
167
|
-
</span>
|
|
168
|
-
|
|
169
|
-
<span class="talos-slide-toggle-label">
|
|
170
|
-
{{ label() }}<ng-content />
|
|
171
|
-
</span>
|
|
172
|
-
</label>
|
|
173
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: TalosSlideToggleDirective, selector: "input[type=\"checkbox\"][talosSlideToggle], input[type=\"checkbox\"][talos-slide-toggle], input[type=\"checkbox\"][talosSwitch], input[type=\"checkbox\"][talos-switch]", inputs: ["checked", "size", "variant", "disabled", "invalid"], outputs: ["checkedChange"], exportAs: ["talosSlideToggle"] }] });
|
|
174
|
-
}
|
|
175
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosSlideToggleComponent, decorators: [{
|
|
176
|
-
type: Component,
|
|
177
|
-
args: [{
|
|
178
|
-
selector: 'talos-slide-toggle, talos-switch',
|
|
179
|
-
imports: [TalosSlideToggleDirective],
|
|
180
|
-
providers: [
|
|
181
|
-
{
|
|
182
|
-
provide: NG_VALUE_ACCESSOR,
|
|
183
|
-
useExisting: forwardRef(() => TalosSlideToggleComponent),
|
|
184
|
-
multi: true
|
|
185
|
-
}
|
|
186
|
-
],
|
|
187
|
-
host: {
|
|
188
|
-
'class': 'talos-slide-toggle-host'
|
|
189
|
-
},
|
|
190
|
-
template: `
|
|
191
|
-
<label
|
|
192
|
-
class="talos-slide-toggle-wrapper"
|
|
193
|
-
[class.is-disabled]="effectiveDisabled()"
|
|
194
|
-
[class.is-checked]="isChecked()"
|
|
195
|
-
[class.label-before]="labelPosition() === 'before'"
|
|
196
|
-
>
|
|
197
|
-
<span class="talos-slide-toggle-switch">
|
|
198
|
-
<input
|
|
199
|
-
#inputEl
|
|
200
|
-
type="checkbox"
|
|
201
|
-
talosSlideToggle
|
|
202
|
-
[id]="elementId()"
|
|
203
|
-
[checked]="isChecked()"
|
|
204
|
-
[size]="size()"
|
|
205
|
-
[variant]="variant()"
|
|
206
|
-
[disabled]="effectiveDisabled()"
|
|
207
|
-
[invalid]="effectiveInvalid()"
|
|
208
|
-
(checkedChange)="onDirectiveCheckedChange($event)"
|
|
209
|
-
/>
|
|
210
|
-
<span class="talos-slide-toggle-track">
|
|
211
|
-
<span class="talos-slide-toggle-thumb"></span>
|
|
212
|
-
</span>
|
|
213
|
-
</span>
|
|
214
|
-
|
|
215
|
-
<span class="talos-slide-toggle-label">
|
|
216
|
-
{{ label() }}<ng-content />
|
|
217
|
-
</span>
|
|
218
|
-
</label>
|
|
219
|
-
`
|
|
220
|
-
}]
|
|
221
|
-
}], propDecorators: { inputRef: [{ type: i0.ViewChild, args: ['inputEl', { isSignal: true }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], labelPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelPosition", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], checkedChange: [{ type: i0.Output, args: ["checkedChange"] }] } });
|
|
222
|
-
|
|
223
|
-
/**
|
|
224
|
-
* Convenience NgModule wrapping standalone slide-toggle directive and component.
|
|
225
|
-
*/
|
|
226
|
-
class TalosSlideToggleModule {
|
|
227
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosSlideToggleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
228
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.1", ngImport: i0, type: TalosSlideToggleModule, imports: [TalosSlideToggleDirective,
|
|
229
|
-
TalosSlideToggleComponent], exports: [TalosSlideToggleDirective,
|
|
230
|
-
TalosSlideToggleComponent] });
|
|
231
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosSlideToggleModule });
|
|
232
|
-
}
|
|
233
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosSlideToggleModule, decorators: [{
|
|
234
|
-
type: NgModule,
|
|
235
|
-
args: [{
|
|
236
|
-
imports: [
|
|
237
|
-
TalosSlideToggleDirective,
|
|
238
|
-
TalosSlideToggleComponent
|
|
239
|
-
],
|
|
240
|
-
exports: [
|
|
241
|
-
TalosSlideToggleDirective,
|
|
242
|
-
TalosSlideToggleComponent
|
|
243
|
-
]
|
|
244
|
-
}]
|
|
245
|
-
}] });
|
|
246
|
-
|
|
247
|
-
/**
|
|
248
|
-
* Generated bundle index. Do not edit.
|
|
249
|
-
*/
|
|
250
|
-
|
|
251
|
-
export { TalosSlideToggleComponent, TalosSlideToggleDirective, TalosSlideToggleModule };
|
|
252
|
-
//# sourceMappingURL=weeehaoooz-talos-ui-form-slide-toggle.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"weeehaoooz-talos-ui-form-slide-toggle.mjs","sources":["../../../projects/talos-ui/form/slide-toggle/slide-toggle.directive.ts","../../../projects/talos-ui/form/slide-toggle/slide-toggle.component.ts","../../../projects/talos-ui/form/slide-toggle/slide-toggle.module.ts","../../../projects/talos-ui/form/slide-toggle/weeehaoooz-talos-ui-form-slide-toggle.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n computed,\n inject,\n input,\n output\n} from '@angular/core';\n\nexport type SlideToggleSize = 'sm' | 'md' | 'lg';\nexport type SlideToggleVariant = 'primary' | 'secondary' | 'success' | 'danger';\n\n@Directive({\n selector: 'input[type=\"checkbox\"][talosSlideToggle], input[type=\"checkbox\"][talos-slide-toggle], input[type=\"checkbox\"][talosSwitch], input[type=\"checkbox\"][talos-switch]',\n exportAs: 'talosSlideToggle',\n host: {\n 'class': 'talos-slide-toggle',\n 'role': 'switch',\n '[class.slide-toggle-sm]': 'size() === \"sm\"',\n '[class.slide-toggle-md]': 'size() === \"md\"',\n '[class.slide-toggle-lg]': 'size() === \"lg\"',\n '[class.talos-slide-toggle-primary]': 'variant() === \"primary\"',\n '[class.talos-slide-toggle-secondary]': 'variant() === \"secondary\"',\n '[class.talos-slide-toggle-success]': 'variant() === \"success\"',\n '[class.talos-slide-toggle-danger]': 'variant() === \"danger\"',\n '[class.is-invalid]': 'invalid()',\n '[checked]': 'checked()',\n '[disabled]': 'disabled()',\n '(change)': 'onNativeChange($event)'\n }\n})\nexport class TalosSlideToggleDirective {\n private readonly elementRef = inject(ElementRef<HTMLInputElement>);\n\n /** Standalone checked state */\n readonly checked = input<boolean>(false);\n\n /** Sizing variation for the slide toggle */\n readonly size = input<SlideToggleSize>('md');\n\n /** Visual color variant for the slide toggle */\n readonly variant = input<SlideToggleVariant>('primary');\n\n /** Whether the slide toggle is disabled */\n readonly disabled = input<boolean>(false);\n\n /** Whether the slide toggle is in an invalid error state */\n readonly invalid = input<boolean>(false);\n\n /** Output event emitted when checked state changes */\n readonly checkedChange = output<boolean>();\n\n onNativeChange(event: Event): void {\n if (this.disabled()) return;\n\n const target = event.target as HTMLInputElement;\n const isChecked = target.checked;\n\n this.checkedChange.emit(isChecked);\n }\n}\n","import {\n Component,\n ElementRef,\n computed,\n forwardRef,\n input,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n TalosSlideToggleDirective,\n SlideToggleSize,\n SlideToggleVariant\n} from './slide-toggle.directive';\n\nexport type SlideToggleLabelPosition = 'before' | 'after';\n\nlet slideToggleCounter = 0;\n\n@Component({\n selector: 'talos-slide-toggle, talos-switch',\n imports: [TalosSlideToggleDirective],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TalosSlideToggleComponent),\n multi: true\n }\n ],\n host: {\n 'class': 'talos-slide-toggle-host'\n },\n template: `\n <label\n class=\"talos-slide-toggle-wrapper\"\n [class.is-disabled]=\"effectiveDisabled()\"\n [class.is-checked]=\"isChecked()\"\n [class.label-before]=\"labelPosition() === 'before'\"\n >\n <span class=\"talos-slide-toggle-switch\">\n <input\n #inputEl\n type=\"checkbox\"\n talosSlideToggle\n [id]=\"elementId()\"\n [checked]=\"isChecked()\"\n [size]=\"size()\"\n [variant]=\"variant()\"\n [disabled]=\"effectiveDisabled()\"\n [invalid]=\"effectiveInvalid()\"\n (checkedChange)=\"onDirectiveCheckedChange($event)\"\n />\n <span class=\"talos-slide-toggle-track\">\n <span class=\"talos-slide-toggle-thumb\"></span>\n </span>\n </span>\n\n <span class=\"talos-slide-toggle-label\">\n {{ label() }}<ng-content />\n </span>\n </label>\n `\n})\nexport class TalosSlideToggleComponent implements ControlValueAccessor {\n private readonly inputRef = viewChild<ElementRef<HTMLInputElement>>('inputEl');\n\n /** Standalone checked state input */\n readonly checked = input<boolean>(false);\n\n /** Sizing variation for the toggle switch */\n readonly size = input<SlideToggleSize>('md');\n\n /** Visual color variant for the toggle switch */\n readonly variant = input<SlideToggleVariant>('primary');\n\n /** Whether the toggle switch is disabled */\n readonly disabled = input<boolean>(false);\n\n /** Whether the toggle switch is in an invalid error state */\n readonly invalid = input<boolean>(false);\n\n /** Position of the label text relative to the toggle switch */\n readonly labelPosition = input<SlideToggleLabelPosition>('after');\n\n /** Optional label text fallback if not projecting content */\n readonly label = input<string>('');\n\n /** Element HTML ID */\n readonly id = input<string>('');\n\n /** Emitted when checked state changes */\n readonly checkedChange = output<boolean>();\n\n // Internal reactive state for CVA & ID generation\n private readonly defaultId = `talos-slide-toggle-${++slideToggleCounter}`;\n readonly elementId = computed(() => this.id() || this.defaultId);\n\n readonly internalValue = signal<boolean>(false);\n readonly isDisabled = signal<boolean>(false);\n readonly isTouched = signal<boolean>(false);\n\n // Effective state computations\n readonly effectiveDisabled = computed(() => this.disabled() || this.isDisabled());\n readonly effectiveInvalid = computed(() => this.invalid());\n\n readonly isChecked = computed(() => this.internalValue() || this.checked());\n\n private onChange: (val: boolean) => void = () => { };\n private onTouched: () => void = () => { };\n\n // --- ControlValueAccessor Implementation ---\n writeValue(val: boolean): void {\n this.internalValue.set(!!val);\n }\n\n registerOnChange(fn: (val: boolean) => 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 onDirectiveCheckedChange(isChecked: boolean): void {\n if (this.effectiveDisabled()) return;\n\n this.internalValue.set(isChecked);\n this.onChange(isChecked);\n this.checkedChange.emit(isChecked);\n this.markAsTouched();\n }\n\n markAsTouched(): void {\n if (!this.isTouched()) {\n this.isTouched.set(true);\n this.onTouched();\n }\n }\n\n /** Focuses the native HTML input element */\n focusInput(): void {\n this.inputRef()?.nativeElement.focus();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TalosSlideToggleDirective } from './slide-toggle.directive';\nimport { TalosSlideToggleComponent } from './slide-toggle.component';\n\n/**\n * Convenience NgModule wrapping standalone slide-toggle directive and component.\n */\n@NgModule({\n imports: [\n TalosSlideToggleDirective,\n TalosSlideToggleComponent\n ],\n exports: [\n TalosSlideToggleDirective,\n TalosSlideToggleComponent\n ]\n})\nexport class TalosSlideToggleModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|