@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-transfer-list.mjs","sources":["../../../projects/talos-ui/form/transfer-list/transfer-list.component.ts","../../../projects/talos-ui/form/transfer-list/transfer-list.component.html","../../../projects/talos-ui/form/transfer-list/transfer-list.module.ts","../../../projects/talos-ui/form/transfer-list/weeehaoooz-talos-ui-form-transfer-list.ts"],"sourcesContent":["import {\n Component,\n DestroyRef,\n ElementRef,\n TemplateRef,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n output,\n signal,\n untracked\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Subject, Observable, from, isObservable, of } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, switchMap, catchError } from 'rxjs/operators';\nimport {\n CdkDragDrop,\n CdkDrag,\n CdkDropList,\n CdkDropListGroup,\n CdkDragPlaceholder,\n CdkDragPreview,\n CdkDragHandle,\n moveItemInArray,\n transferArrayItem\n} from '@angular/cdk/drag-drop';\nimport {\n LucideChevronRight,\n LucideChevronLeft,\n LucideChevronsRight,\n LucideChevronsLeft,\n LucideChevronUp,\n LucideChevronDown,\n LucideChevronsUp,\n LucideChevronsDown,\n LucideSearch,\n LucideX,\n LucideLoader2,\n LucideGripVertical\n} from '@lucide/angular';\nimport {\n TalosTransferEvent,\n TalosTransferItem,\n TalosTransferListItemContext,\n TalosTransferSelectionChange,\n TransferListDirection,\n TransferListFilterFn,\n TransferListItemDescriptionFn,\n TransferListItemDisabledFn,\n TransferListItemKeyFn,\n TransferListItemLabelFn,\n TransferListPane,\n TransferListSearchMode,\n TransferListDragMode,\n TransferListSearchHandler,\n TransferListSearchQueryEvent,\n TransferListSearchErrorEvent,\n TransferListSize,\n TransferListVariant\n} from './transfer-list.types';\n\nlet uniqueTransferListIdCounter = 0;\n\n@Component({\n selector: 'talos-transfer-list',\n imports: [\n FormsModule,\n NgTemplateOutlet,\n CdkDropListGroup,\n CdkDropList,\n CdkDrag,\n CdkDragPlaceholder,\n CdkDragPreview,\n CdkDragHandle,\n LucideChevronRight,\n LucideChevronLeft,\n LucideChevronsRight,\n LucideChevronsLeft,\n LucideChevronUp,\n LucideChevronDown,\n LucideChevronsUp,\n LucideChevronsDown,\n LucideSearch,\n LucideX,\n LucideLoader2,\n LucideGripVertical\n ],\n templateUrl: './transfer-list.component.html',\n styleUrl: './transfer-list.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TalosTransferListComponent),\n multi: true\n }\n ],\n host: {\n 'class': 'talos-transfer-list-host',\n '[class.transfer-size-sm]': 'size() === \"sm\"',\n '[class.transfer-size-md]': 'size() === \"md\"',\n '[class.transfer-size-lg]': 'size() === \"lg\"',\n '[class.transfer-variant-outlined]': 'variant() === \"outlined\"',\n '[class.transfer-variant-elevated]': 'variant() === \"elevated\"',\n '[class.transfer-variant-flat]': 'variant() === \"flat\"',\n '[class.transfer-variant-bordered]': 'variant() === \"bordered\"',\n '[class.is-disabled]': 'effectiveDisabled()',\n '[class.is-loading]': 'loading()',\n '[class.is-card-drag]': 'dragDrop() && !useDragHandle()'\n }\n})\nexport class TalosTransferListComponent<T = unknown> implements ControlValueAccessor {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n // Signal Inputs\n readonly source = input<readonly T[] | T[]>([]);\n readonly target = input<readonly T[] | T[]>([]);\n readonly titles = input<[string, string]>(['Available', 'Selected']);\n readonly searchable = input<boolean>(true);\n readonly searchMode = input<TransferListSearchMode>('client');\n readonly searchPlaceholder = input<string | [string, string]>('Search items...');\n readonly sourceSearchQuery = input<string>('');\n readonly targetSearchQuery = input<string>('');\n readonly searchDebounce = input<number>(300);\n readonly searchHandler = input<TransferListSearchHandler<T> | null>(null);\n readonly sourceSearchHandler = input<((query: string) => Observable<T[]> | Promise<T[]> | T[]) | null>(null);\n readonly targetSearchHandler = input<((query: string) => Observable<T[]> | Promise<T[]> | T[]) | null>(null);\n readonly sourceLoading = input<boolean>(false);\n readonly targetLoading = input<boolean>(false);\n readonly loading = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n readonly showSelectAll = input<boolean>(true);\n readonly showMoveAll = input<boolean>(true);\n readonly showReorder = input<boolean>(false);\n readonly dragDrop = input<boolean>(true);\n readonly dragMode = input<TransferListDragMode>('handle');\n readonly dragHandle = input<boolean | null>(null);\n readonly size = input<TransferListSize>('md');\n readonly variant = input<TransferListVariant>('outlined');\n readonly height = input<string | number | null>(null);\n readonly listWidth = input<string | number | null>(null);\n readonly itemKey = input<keyof T | TransferListItemKeyFn<T> | null>(null);\n readonly itemLabel = input<keyof T | TransferListItemLabelFn<T> | null>(null);\n readonly itemDescription = input<keyof T | TransferListItemDescriptionFn<T> | null>(null);\n readonly itemDisabled = input<keyof T | TransferListItemDisabledFn<T> | null>(null);\n readonly filterFn = input<TransferListFilterFn<T> | null>(null);\n readonly itemTemplate = input<TemplateRef<TalosTransferListItemContext<T>> | null>(null);\n readonly emptySourceText = input<string>('No items available');\n readonly emptyTargetText = input<string>('No items selected');\n readonly searchingText = input<string>('Searching remote catalog...');\n readonly noMatchesText = input<string>('No matches found for');\n readonly id = input<string>('');\n\n // Computed Search States\n readonly isSourceSearching = computed(() => Boolean(this.internalSourceQuery().trim()));\n readonly isTargetSearching = computed(() => Boolean(this.internalTargetQuery().trim()));\n\n // Computed Drag Handle mode\n readonly useDragHandle = computed(() => {\n const customHandle = this.dragHandle();\n if (customHandle !== null && customHandle !== undefined) {\n return Boolean(customHandle);\n }\n return this.dragMode() === 'handle';\n });\n\n // Signal Outputs\n readonly sourceChange = output<T[]>();\n readonly targetChange = output<T[]>();\n readonly transfer = output<TalosTransferEvent<T>>();\n readonly search = output<TransferListSearchQueryEvent>();\n readonly sourceSearchChange = output<string>();\n readonly targetSearchChange = output<string>();\n readonly searchError = output<TransferListSearchErrorEvent>();\n readonly selectionChange = output<TalosTransferSelectionChange<T>>();\n readonly targetReorder = output<T[]>();\n\n // Unique ID\n private readonly autoId = `talos-transfer-list-${uniqueTransferListIdCounter++}`;\n readonly componentId = computed(() => this.id() || this.autoId);\n\n // Form Control Value Accessor state\n private readonly formDisabled = signal<boolean>(false);\n readonly effectiveDisabled = computed(() => this.disabled() || this.formDisabled());\n\n // Internal Data State\n readonly internalSource = signal<T[]>([]);\n readonly internalTarget = signal<T[]>([]);\n\n // Selection Sets\n readonly sourceSelectedKeys = signal<Set<string | number>>(new Set());\n readonly targetSelectedKeys = signal<Set<string | number>>(new Set());\n\n // Search Queries & State\n readonly internalSourceQuery = signal<string>('');\n readonly internalTargetQuery = signal<string>('');\n readonly internalSourceLoading = signal<boolean>(false);\n readonly internalTargetLoading = signal<boolean>(false);\n readonly effectiveSourceLoading = computed(() => this.sourceLoading() || this.internalSourceLoading());\n readonly effectiveTargetLoading = computed(() => this.targetLoading() || this.internalTargetLoading());\n\n // Debounced Search Subjects\n private readonly sourceSearchSubject$ = new Subject<string>();\n private readonly targetSearchSubject$ = new Subject<string>();\n private readonly destroyRef = inject(DestroyRef);\n\n // CVA callbacks\n private onChange: (value: unknown) => void = () => {};\n private onTouched: () => void = () => {};\n\n constructor() {\n // Sync external source\n effect(() => {\n const src = this.source();\n untracked(() => {\n this.internalSource.set(Array.isArray(src) ? [...src] : []);\n this.pruneSelections();\n });\n });\n\n // Sync external target\n effect(() => {\n const tgt = this.target();\n untracked(() => {\n this.internalTarget.set(Array.isArray(tgt) ? [...tgt] : []);\n this.pruneSelections();\n });\n });\n\n // Sync external search queries\n effect(() => {\n const q = this.sourceSearchQuery();\n untracked(() => this.internalSourceQuery.set(q));\n });\n\n effect(() => {\n const q = this.targetSearchQuery();\n untracked(() => this.internalTargetQuery.set(q));\n });\n\n // Setup debounced server search pipeline\n this.sourceSearchSubject$\n .pipe(\n debounceTime(this.searchDebounce()),\n distinctUntilChanged(),\n switchMap(query => this.processSearchRequest(query, 'source')),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe();\n\n this.targetSearchSubject$\n .pipe(\n debounceTime(this.searchDebounce()),\n distinctUntilChanged(),\n switchMap(query => this.processSearchRequest(query, 'target')),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe();\n }\n\n // Placeholders\n readonly sourcePlaceholder = computed(() => {\n const p = this.searchPlaceholder();\n return Array.isArray(p) ? p[0] : p;\n });\n\n readonly targetPlaceholder = computed(() => {\n const p = this.searchPlaceholder();\n return Array.isArray(p) ? p[1] : p;\n });\n\n readonly containerHeight = computed(() => {\n const h = this.height();\n if (h !== null && h !== undefined) {\n return typeof h === 'number' ? `${h}px` : h;\n }\n switch (this.size()) {\n case 'sm':\n return '260px';\n case 'lg':\n return '380px';\n case 'md':\n default:\n return '320px';\n }\n });\n\n readonly effectivePaneWidth = computed(() => {\n const w = this.listWidth();\n if (w !== null && w !== undefined) {\n return typeof w === 'number' ? `${w}px` : w;\n }\n return null;\n });\n\n // Key / Label / Disabled extractors\n getItemKey(item: T, fallbackIndex = 0): string | number {\n if (item === null || item === undefined) return fallbackIndex;\n const keyProp = this.itemKey();\n if (typeof keyProp === 'function') {\n return (keyProp as TransferListItemKeyFn<T>)(item);\n }\n if (typeof keyProp === 'string' && item && typeof item === 'object') {\n const val = (item as Record<string, unknown>)[keyProp];\n if (val !== undefined && val !== null) return String(val);\n }\n if (typeof item === 'object') {\n const rec = item as Record<string, unknown>;\n if (rec['id'] !== undefined && rec['id'] !== null) return String(rec['id']);\n if (rec['key'] !== undefined && rec['key'] !== null) return String(rec['key']);\n if (rec['value'] !== undefined && rec['value'] !== null) return String(rec['value']);\n }\n return String(item);\n }\n\n getItemLabel(item: T): string {\n if (item === null || item === undefined) return '';\n const labelProp = this.itemLabel();\n if (typeof labelProp === 'function') {\n return (labelProp as TransferListItemLabelFn<T>)(item);\n }\n if (typeof labelProp === 'string' && item && typeof item === 'object') {\n const val = (item as Record<string, unknown>)[labelProp];\n if (val !== undefined && val !== null) return String(val);\n }\n if (typeof item === 'object') {\n const rec = item as Record<string, unknown>;\n if (rec['label'] !== undefined) return String(rec['label']);\n if (rec['name'] !== undefined) return String(rec['name']);\n if (rec['title'] !== undefined) return String(rec['title']);\n }\n return String(item);\n }\n\n getItemDescription(item: T): string | undefined {\n if (item === null || item === undefined) return undefined;\n const descProp = this.itemDescription();\n if (typeof descProp === 'function') {\n return (descProp as TransferListItemDescriptionFn<T>)(item);\n }\n if (typeof descProp === 'string' && item && typeof item === 'object') {\n const val = (item as Record<string, unknown>)[descProp];\n if (val !== undefined && val !== null) return String(val);\n }\n if (typeof item === 'object') {\n const rec = item as Record<string, unknown>;\n if (rec['description'] !== undefined) return String(rec['description']);\n }\n return undefined;\n }\n\n isItemDisabled(item: T): boolean {\n if (this.effectiveDisabled()) return true;\n if (item === null || item === undefined) return false;\n const disProp = this.itemDisabled();\n if (typeof disProp === 'function') {\n return (disProp as TransferListItemDisabledFn<T>)(item);\n }\n if (typeof disProp === 'string' && item && typeof item === 'object') {\n return Boolean((item as Record<string, unknown>)[disProp]);\n }\n if (typeof item === 'object') {\n const rec = item as Record<string, unknown>;\n if (rec['disabled'] !== undefined) return Boolean(rec['disabled']);\n }\n return false;\n }\n\n // Filtered Source & Target\n readonly filteredSource = computed(() => {\n const list = this.internalSource();\n if (this.searchMode() === 'server') return list;\n const q = this.internalSourceQuery().trim().toLowerCase();\n if (!q) return list;\n const customFilter = this.filterFn();\n if (customFilter) {\n return list.filter(item => customFilter(item, q, 'source'));\n }\n return list.filter(item => {\n const label = this.getItemLabel(item).toLowerCase();\n const desc = (this.getItemDescription(item) || '').toLowerCase();\n return label.includes(q) || desc.includes(q);\n });\n });\n\n readonly filteredTarget = computed(() => {\n const list = this.internalTarget();\n if (this.searchMode() === 'server') return list;\n const q = this.internalTargetQuery().trim().toLowerCase();\n if (!q) return list;\n const customFilter = this.filterFn();\n if (customFilter) {\n return list.filter(item => customFilter(item, q, 'target'));\n }\n return list.filter(item => {\n const label = this.getItemLabel(item).toLowerCase();\n const desc = (this.getItemDescription(item) || '').toLowerCase();\n return label.includes(q) || desc.includes(q);\n });\n });\n\n // Source Stats\n readonly sourceSelectedCount = computed(() => {\n const sel = this.sourceSelectedKeys();\n let count = 0;\n for (const item of this.filteredSource()) {\n if (sel.has(this.getItemKey(item))) count++;\n }\n return count;\n });\n\n readonly isSourceAllSelected = computed(() => {\n const list = this.filteredSource().filter(item => !this.isItemDisabled(item));\n if (list.length === 0) return false;\n const sel = this.sourceSelectedKeys();\n return list.every(item => sel.has(this.getItemKey(item)));\n });\n\n readonly isSourceIndeterminate = computed(() => {\n const list = this.filteredSource().filter(item => !this.isItemDisabled(item));\n if (list.length === 0) return false;\n const selCount = this.sourceSelectedCount();\n return selCount > 0 && selCount < list.length;\n });\n\n // Target Stats\n readonly targetSelectedCount = computed(() => {\n const sel = this.targetSelectedKeys();\n let count = 0;\n for (const item of this.filteredTarget()) {\n if (sel.has(this.getItemKey(item))) count++;\n }\n return count;\n });\n\n readonly isTargetAllSelected = computed(() => {\n const list = this.filteredTarget().filter(item => !this.isItemDisabled(item));\n if (list.length === 0) return false;\n const sel = this.targetSelectedKeys();\n return list.every(item => sel.has(this.getItemKey(item)));\n });\n\n readonly isTargetIndeterminate = computed(() => {\n const list = this.filteredTarget().filter(item => !this.isItemDisabled(item));\n if (list.length === 0) return false;\n const selCount = this.targetSelectedCount();\n return selCount > 0 && selCount < list.length;\n });\n\n // Item Context Generator\n getItemContext(item: T, pane: TransferListPane, index: number): TalosTransferListItemContext<T> {\n const key = this.getItemKey(item, index);\n const sel = pane === 'source' ? this.sourceSelectedKeys() : this.targetSelectedKeys();\n return {\n $implicit: item,\n item,\n pane,\n selected: sel.has(key),\n disabled: this.isItemDisabled(item),\n index\n };\n }\n\n // Selection Toggles\n toggleSourceItem(item: T): void {\n if (this.isItemDisabled(item)) return;\n const key = this.getItemKey(item);\n this.sourceSelectedKeys.update(set => {\n const next = new Set(set);\n if (next.has(key)) next.delete(key);\n else next.add(key);\n return next;\n });\n this.emitSelectionChange();\n }\n\n toggleTargetItem(item: T): void {\n if (this.isItemDisabled(item)) return;\n const key = this.getItemKey(item);\n this.targetSelectedKeys.update(set => {\n const next = new Set(set);\n if (next.has(key)) next.delete(key);\n else next.add(key);\n return next;\n });\n this.emitSelectionChange();\n }\n\n toggleSelectAllSource(): void {\n if (this.effectiveDisabled()) return;\n const list = this.filteredSource().filter(item => !this.isItemDisabled(item));\n if (this.isSourceAllSelected()) {\n // Unselect all in visible source\n this.sourceSelectedKeys.update(set => {\n const next = new Set(set);\n for (const item of list) next.delete(this.getItemKey(item));\n return next;\n });\n } else {\n // Select all in visible source\n this.sourceSelectedKeys.update(set => {\n const next = new Set(set);\n for (const item of list) next.add(this.getItemKey(item));\n return next;\n });\n }\n this.emitSelectionChange();\n }\n\n toggleSelectAllTarget(): void {\n if (this.effectiveDisabled()) return;\n const list = this.filteredTarget().filter(item => !this.isItemDisabled(item));\n if (this.isTargetAllSelected()) {\n this.targetSelectedKeys.update(set => {\n const next = new Set(set);\n for (const item of list) next.delete(this.getItemKey(item));\n return next;\n });\n } else {\n this.targetSelectedKeys.update(set => {\n const next = new Set(set);\n for (const item of list) next.add(this.getItemKey(item));\n return next;\n });\n }\n this.emitSelectionChange();\n }\n\n private emitSelectionChange(): void {\n const srcSelKeys = Array.from(this.sourceSelectedKeys());\n const tgtSelKeys = Array.from(this.targetSelectedKeys());\n const srcMap = new Map(this.internalSource().map(i => [this.getItemKey(i), i]));\n const tgtMap = new Map(this.internalTarget().map(i => [this.getItemKey(i), i]));\n\n const sourceSelected = srcSelKeys.map(k => srcMap.get(k)).filter((i): i is T => i !== undefined);\n const targetSelected = tgtSelKeys.map(k => tgtMap.get(k)).filter((i): i is T => i !== undefined);\n\n this.selectionChange.emit({\n sourceSelected,\n targetSelected,\n sourceSelectedKeys: srcSelKeys,\n targetSelectedKeys: tgtSelKeys\n });\n }\n\n private pruneSelections(): void {\n const srcKeys = new Set(this.internalSource().map(i => this.getItemKey(i)));\n const tgtKeys = new Set(this.internalTarget().map(i => this.getItemKey(i)));\n\n this.sourceSelectedKeys.update(set => {\n const next = new Set<string | number>();\n for (const k of set) {\n if (srcKeys.has(k)) next.add(k);\n }\n return next;\n });\n\n this.targetSelectedKeys.update(set => {\n const next = new Set<string | number>();\n for (const k of set) {\n if (tgtKeys.has(k)) next.add(k);\n }\n return next;\n });\n }\n\n // Search Handlers\n onSourceSearch(value: string): void {\n this.internalSourceQuery.set(value);\n if (this.searchMode() === 'server') {\n this.sourceSearchSubject$.next(value);\n } else {\n this.sourceSearchChange.emit(value);\n this.search.emit({ query: value, pane: 'source' });\n }\n }\n\n onTargetSearch(value: string): void {\n this.internalTargetQuery.set(value);\n if (this.searchMode() === 'server') {\n this.targetSearchSubject$.next(value);\n } else {\n this.targetSearchChange.emit(value);\n this.search.emit({ query: value, pane: 'target' });\n }\n }\n\n clearSourceSearch(): void {\n this.onSourceSearch('');\n }\n\n clearTargetSearch(): void {\n this.onTargetSearch('');\n }\n\n /**\n * Process asynchronous server-side search request via configured handlers.\n */\n private processSearchRequest(query: string, pane: TransferListPane): Observable<unknown> {\n this.search.emit({ query, pane });\n if (pane === 'source') {\n this.sourceSearchChange.emit(query);\n } else {\n this.targetSearchChange.emit(query);\n }\n\n const handler = pane === 'source'\n ? (this.sourceSearchHandler() || this.searchHandler())\n : (this.targetSearchHandler() || this.searchHandler());\n\n if (!handler) {\n return of(null);\n }\n\n if (pane === 'source') this.internalSourceLoading.set(true);\n else this.internalTargetLoading.set(true);\n\n try {\n const result = handler(query, pane);\n const obs$: Observable<T[]> = isObservable(result)\n ? (result as Observable<T[]>)\n : from(Promise.resolve(result as T[] | Promise<T[]>));\n\n return obs$.pipe(\n switchMap(items => {\n if (Array.isArray(items)) {\n if (pane === 'source') {\n this.internalSource.set([...items]);\n this.sourceChange.emit([...items]);\n } else {\n this.internalTarget.set([...items]);\n this.targetChange.emit([...items]);\n }\n this.pruneSelections();\n }\n if (pane === 'source') this.internalSourceLoading.set(false);\n else this.internalTargetLoading.set(false);\n return of(items);\n }),\n catchError(err => {\n if (pane === 'source') this.internalSourceLoading.set(false);\n else this.internalTargetLoading.set(false);\n this.searchError.emit({ error: err, query, pane });\n return of(null);\n })\n );\n } catch (err) {\n if (pane === 'source') this.internalSourceLoading.set(false);\n else this.internalTargetLoading.set(false);\n this.searchError.emit({ error: err, query, pane });\n return of(null);\n }\n }\n\n // Move Actions\n moveToTarget(): void {\n if (this.effectiveDisabled() || this.sourceSelectedCount() === 0) return;\n const sel = this.sourceSelectedKeys();\n const currentSource = this.internalSource();\n const currentTarget = this.internalTarget();\n\n const moved: T[] = [];\n const remainingSource: T[] = [];\n\n for (const item of currentSource) {\n if (sel.has(this.getItemKey(item)) && !this.isItemDisabled(item)) {\n moved.push(item);\n } else {\n remainingSource.push(item);\n }\n }\n\n if (moved.length === 0) return;\n\n const newTarget = [...currentTarget, ...moved];\n this.internalSource.set(remainingSource);\n this.internalTarget.set(newTarget);\n this.sourceSelectedKeys.set(new Set());\n\n this.notifyChanges(remainingSource, newTarget, moved, 'toTarget');\n }\n\n moveAllToTarget(): void {\n if (this.effectiveDisabled() || this.filteredSource().length === 0) return;\n const currentSource = this.internalSource();\n const currentTarget = this.internalTarget();\n const visibleKeys = new Set(this.filteredSource().map(i => this.getItemKey(i)));\n\n const moved: T[] = [];\n const remainingSource: T[] = [];\n\n for (const item of currentSource) {\n if (visibleKeys.has(this.getItemKey(item)) && !this.isItemDisabled(item)) {\n moved.push(item);\n } else {\n remainingSource.push(item);\n }\n }\n\n if (moved.length === 0) return;\n\n const newTarget = [...currentTarget, ...moved];\n this.internalSource.set(remainingSource);\n this.internalTarget.set(newTarget);\n this.sourceSelectedKeys.set(new Set());\n\n this.notifyChanges(remainingSource, newTarget, moved, 'toTarget');\n }\n\n moveToSource(): void {\n if (this.effectiveDisabled() || this.targetSelectedCount() === 0) return;\n const sel = this.targetSelectedKeys();\n const currentSource = this.internalSource();\n const currentTarget = this.internalTarget();\n\n const moved: T[] = [];\n const remainingTarget: T[] = [];\n\n for (const item of currentTarget) {\n if (sel.has(this.getItemKey(item)) && !this.isItemDisabled(item)) {\n moved.push(item);\n } else {\n remainingTarget.push(item);\n }\n }\n\n if (moved.length === 0) return;\n\n const newSource = [...currentSource, ...moved];\n this.internalSource.set(newSource);\n this.internalTarget.set(remainingTarget);\n this.targetSelectedKeys.set(new Set());\n\n this.notifyChanges(newSource, remainingTarget, moved, 'toSource');\n }\n\n moveAllToSource(): void {\n if (this.effectiveDisabled() || this.filteredTarget().length === 0) return;\n const currentSource = this.internalSource();\n const currentTarget = this.internalTarget();\n const visibleKeys = new Set(this.filteredTarget().map(i => this.getItemKey(i)));\n\n const moved: T[] = [];\n const remainingTarget: T[] = [];\n\n for (const item of currentTarget) {\n if (visibleKeys.has(this.getItemKey(item)) && !this.isItemDisabled(item)) {\n moved.push(item);\n } else {\n remainingTarget.push(item);\n }\n }\n\n if (moved.length === 0) return;\n\n const newSource = [...currentSource, ...moved];\n this.internalSource.set(newSource);\n this.internalTarget.set(remainingTarget);\n this.targetSelectedKeys.set(new Set());\n\n this.notifyChanges(newSource, remainingTarget, moved, 'toSource');\n }\n\n // Reordering Actions for Target List\n moveTargetTop(): void {\n if (this.effectiveDisabled() || this.targetSelectedCount() === 0) return;\n const sel = this.targetSelectedKeys();\n const list = [...this.internalTarget()];\n const selected: T[] = [];\n const unselected: T[] = [];\n\n for (const item of list) {\n if (sel.has(this.getItemKey(item))) selected.push(item);\n else unselected.push(item);\n }\n\n const reordered = [...selected, ...unselected];\n this.internalTarget.set(reordered);\n this.targetReorder.emit(reordered);\n this.notifyChanges(this.internalSource(), reordered, [], 'toTarget');\n }\n\n moveTargetUp(): void {\n if (this.effectiveDisabled() || this.targetSelectedCount() === 0) return;\n const sel = this.targetSelectedKeys();\n const list = [...this.internalTarget()];\n\n for (let i = 1; i < list.length; i++) {\n const item = list[i];\n if (item && sel.has(this.getItemKey(item))) {\n const prevItem = list[i - 1];\n if (prevItem && !sel.has(this.getItemKey(prevItem))) {\n list[i] = prevItem;\n list[i - 1] = item;\n }\n }\n }\n\n this.internalTarget.set(list);\n this.targetReorder.emit(list);\n this.notifyChanges(this.internalSource(), list, [], 'toTarget');\n }\n\n moveTargetDown(): void {\n if (this.effectiveDisabled() || this.targetSelectedCount() === 0) return;\n const sel = this.targetSelectedKeys();\n const list = [...this.internalTarget()];\n\n for (let i = list.length - 2; i >= 0; i--) {\n const item = list[i];\n if (item && sel.has(this.getItemKey(item))) {\n const nextItem = list[i + 1];\n if (nextItem && !sel.has(this.getItemKey(nextItem))) {\n list[i] = nextItem;\n list[i + 1] = item;\n }\n }\n }\n\n this.internalTarget.set(list);\n this.targetReorder.emit(list);\n this.notifyChanges(this.internalSource(), list, [], 'toTarget');\n }\n\n moveTargetBottom(): void {\n if (this.effectiveDisabled() || this.targetSelectedCount() === 0) return;\n const sel = this.targetSelectedKeys();\n const list = [...this.internalTarget()];\n const selected: T[] = [];\n const unselected: T[] = [];\n\n for (const item of list) {\n if (sel.has(this.getItemKey(item))) selected.push(item);\n else unselected.push(item);\n }\n\n const reordered = [...unselected, ...selected];\n this.internalTarget.set(reordered);\n this.targetReorder.emit(reordered);\n this.notifyChanges(this.internalSource(), reordered, [], 'toTarget');\n }\n\n // CDK Drag and Drop\n onCdkDrop(event: CdkDragDrop<T[]>): void {\n if (this.effectiveDisabled()) return;\n\n if (event.previousContainer === event.container) {\n // Reordering within the same list\n const list = [...event.container.data];\n moveItemInArray(list, event.previousIndex, event.currentIndex);\n\n if (event.container.id.includes('source')) {\n this.internalSource.set(list);\n this.sourceChange.emit(list);\n } else {\n this.internalTarget.set(list);\n this.targetChange.emit(list);\n this.targetReorder.emit(list);\n this.onChange(list);\n }\n } else {\n // Moving between source and target lists\n const sourceList = [...event.previousContainer.data];\n const targetList = [...event.container.data];\n\n transferArrayItem(\n sourceList,\n targetList,\n event.previousIndex,\n event.currentIndex\n );\n\n const isToTarget = event.container.id.includes('target');\n const movedItem = targetList[event.currentIndex] as T;\n\n if (isToTarget) {\n this.internalSource.set(sourceList);\n this.internalTarget.set(targetList);\n this.notifyChanges(sourceList, targetList, [movedItem], 'toTarget');\n } else {\n this.internalTarget.set(sourceList);\n this.internalSource.set(targetList);\n this.notifyChanges(targetList, sourceList, [movedItem], 'toSource');\n }\n this.pruneSelections();\n this.emitSelectionChange();\n }\n }\n\n private notifyChanges(\n source: T[],\n target: T[],\n moved: T[],\n direction: TransferListDirection\n ): void {\n this.sourceChange.emit(source);\n this.targetChange.emit(target);\n this.transfer.emit({ source, target, moved, direction });\n this.onChange(target);\n this.onTouched();\n }\n\n // ControlValueAccessor Implementation\n writeValue(value: unknown): void {\n if (Array.isArray(value)) {\n this.internalTarget.set([...value]);\n } else {\n this.internalTarget.set([]);\n }\n this.pruneSelections();\n }\n\n registerOnChange(fn: (value: 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.formDisabled.set(isDisabled);\n }\n}\n","<div class=\"talos-transfer-list-container\" cdkDropListGroup [style.--transfer-height]=\"containerHeight()\">\n <!-- ========================================== -->\n <!-- SOURCE PANE (Available Items) -->\n <!-- ========================================== -->\n <div class=\"talos-transfer-pane talos-transfer-pane-source\" [style.width]=\"effectivePaneWidth()\">\n <!-- Pane Header -->\n <div class=\"talos-transfer-header\">\n <div class=\"talos-transfer-header-left\">\n @if (showSelectAll()) {\n <label class=\"talos-transfer-checkbox-wrap\" [class.is-disabled]=\"effectiveDisabled()\">\n <input\n type=\"checkbox\"\n class=\"talos-transfer-native-checkbox\"\n [checked]=\"isSourceAllSelected()\"\n [indeterminate]=\"isSourceIndeterminate()\"\n [disabled]=\"effectiveDisabled()\"\n (change)=\"toggleSelectAllSource()\"\n [attr.aria-label]=\"'Select all in ' + titles()[0]\"\n />\n <span class=\"talos-transfer-checkbox-custom\"></span>\n </label>\n }\n <span class=\"talos-transfer-title\">{{ titles()[0] }}</span>\n </div>\n <span class=\"talos-transfer-counter\" [attr.aria-live]=\"'polite'\">\n {{ sourceSelectedCount() }} / {{ filteredSource().length }}\n @if (isSourceSearching() && filteredSource().length !== internalSource().length) {\n <span class=\"talos-transfer-filter-tag\">filtered</span>\n }\n </span>\n </div>\n\n <!-- Optional Search Bar -->\n @if (searchable()) {\n <div class=\"talos-transfer-search-wrapper\">\n <svg lucideSearch class=\"talos-transfer-search-icon\" [size]=\"14\"></svg>\n <input\n type=\"text\"\n class=\"talos-transfer-search-input\"\n [placeholder]=\"sourcePlaceholder()\"\n [value]=\"internalSourceQuery()\"\n (input)=\"onSourceSearch($any($event.target).value)\"\n [disabled]=\"effectiveDisabled()\"\n [attr.aria-label]=\"'Search ' + titles()[0]\"\n />\n @if (effectiveSourceLoading()) {\n <svg lucideLoader2 class=\"talos-transfer-search-spinner talos-spin\" [size]=\"14\"></svg>\n } @else if (internalSourceQuery()) {\n <button\n type=\"button\"\n class=\"talos-transfer-search-clear\"\n (click)=\"clearSourceSearch()\"\n [attr.aria-label]=\"'Clear source search'\"\n >\n <svg lucideX [size]=\"12\"></svg>\n </button>\n }\n\n @if (effectiveSourceLoading()) {\n <div class=\"talos-transfer-search-progress\"></div>\n }\n </div>\n }\n\n <!-- Source Items List -->\n <div\n class=\"talos-transfer-list-body\"\n cdkDropList\n [id]=\"componentId() + '-source-list'\"\n [cdkDropListData]=\"internalSource()\"\n [cdkDropListDisabled]=\"!dragDrop() || effectiveDisabled()\"\n (cdkDropListDropped)=\"onCdkDrop($event)\"\n role=\"listbox\"\n [attr.aria-multiselectable]=\"true\"\n [attr.aria-label]=\"titles()[0]\"\n >\n @if (effectiveSourceLoading()) {\n <div class=\"talos-transfer-loading-state\">\n <svg lucideLoader2 class=\"talos-spin\" [size]=\"20\"></svg>\n <span>{{ isSourceSearching() ? searchingText() : 'Loading items...' }}</span>\n </div>\n } @else if (filteredSource().length === 0) {\n <div class=\"talos-transfer-empty-state\">\n @if (isSourceSearching()) {\n <span>{{ noMatchesText() }} “<strong>{{ internalSourceQuery() }}</strong>”</span>\n <button type=\"button\" class=\"talos-transfer-clear-filter-btn\" (click)=\"clearSourceSearch()\">\n Clear filter\n </button>\n } @else {\n <span>{{ emptySourceText() }}</span>\n }\n </div>\n } @else {\n @for (item of filteredSource(); track getItemKey(item, $index); let i = $index) {\n @let isSel = sourceSelectedKeys().has(getItemKey(item, i));\n @let isDis = isItemDisabled(item);\n\n <div\n class=\"talos-transfer-item\"\n [class.is-selected]=\"isSel\"\n [class.is-disabled]=\"isDis\"\n cdkDrag\n [cdkDragData]=\"item\"\n [cdkDragDisabled]=\"!dragDrop() || isDis || effectiveDisabled()\"\n (click)=\"toggleSourceItem(item)\"\n role=\"option\"\n [attr.aria-selected]=\"isSel\"\n [attr.aria-disabled]=\"isDis\"\n tabindex=\"0\"\n (keydown.space)=\"$event.preventDefault(); toggleSourceItem(item)\"\n (keydown.enter)=\"$event.preventDefault(); toggleSourceItem(item)\"\n >\n <!-- CDK Drag Placeholder -->\n <div class=\"talos-transfer-drag-placeholder\" *cdkDragPlaceholder></div>\n\n <!-- CDK Drag Preview -->\n <div class=\"talos-transfer-drag-preview\" *cdkDragPreview>\n <span class=\"preview-label\">{{ getItemLabel(item) }}</span>\n </div>\n\n <!-- Drag Handle -->\n @if (dragDrop() && useDragHandle() && !isDis && !effectiveDisabled()) {\n <div class=\"talos-transfer-drag-handle\" cdkDragHandle (click)=\"$event.stopPropagation()\">\n <svg lucideGripVertical [size]=\"14\"></svg>\n </div>\n }\n\n <!-- Checkbox -->\n <label class=\"talos-transfer-checkbox-wrap\" (click)=\"$event.stopPropagation()\">\n <input\n type=\"checkbox\"\n class=\"talos-transfer-native-checkbox\"\n [checked]=\"isSel\"\n [disabled]=\"isDis || effectiveDisabled()\"\n (change)=\"toggleSourceItem(item)\"\n [attr.aria-label]=\"'Select ' + getItemLabel(item)\"\n />\n <span class=\"talos-transfer-checkbox-custom\"></span>\n </label>\n\n <!-- Custom Template or Default View -->\n <div class=\"talos-transfer-item-content\">\n @if (itemTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"itemTemplate()!; context: getItemContext(item, 'source', i)\"\n ></ng-container>\n } @else {\n <div class=\"talos-transfer-item-text\">\n <span class=\"talos-transfer-item-label\">{{ getItemLabel(item) }}</span>\n @if (getItemDescription(item); as desc) {\n <span class=\"talos-transfer-item-desc\">{{ desc }}</span>\n }\n </div>\n }\n </div>\n </div>\n }\n }\n </div>\n </div>\n\n <!-- ========================================== -->\n <!-- ACTION CONTROLS TOOLBAR -->\n <!-- ========================================== -->\n <div class=\"talos-transfer-actions\" role=\"toolbar\" aria-label=\"Transfer Actions\">\n <!-- Move Selected to Target (>) -->\n <button\n type=\"button\"\n class=\"talos-transfer-action-btn\"\n [class.is-active]=\"sourceSelectedCount() > 0 && !effectiveDisabled()\"\n [disabled]=\"sourceSelectedCount() === 0 || effectiveDisabled()\"\n (click)=\"moveToTarget()\"\n [attr.aria-label]=\"'Move selected to ' + titles()[1]\"\n title=\"Move selected right\"\n >\n <svg lucideChevronRight [size]=\"16\"></svg>\n </button>\n\n <!-- Move All to Target (>>) -->\n @if (showMoveAll()) {\n <button\n type=\"button\"\n class=\"talos-transfer-action-btn\"\n [class.is-active]=\"filteredSource().length > 0 && !effectiveDisabled()\"\n [disabled]=\"filteredSource().length === 0 || effectiveDisabled()\"\n (click)=\"moveAllToTarget()\"\n [attr.aria-label]=\"'Move all to ' + titles()[1]\"\n title=\"Move all right\"\n >\n <svg lucideChevronsRight [size]=\"16\"></svg>\n </button>\n }\n\n <!-- Move Selected to Source (<) -->\n <button\n type=\"button\"\n class=\"talos-transfer-action-btn\"\n [class.is-active]=\"targetSelectedCount() > 0 && !effectiveDisabled()\"\n [disabled]=\"targetSelectedCount() === 0 || effectiveDisabled()\"\n (click)=\"moveToSource()\"\n [attr.aria-label]=\"'Move selected to ' + titles()[0]\"\n title=\"Move selected left\"\n >\n <svg lucideChevronLeft [size]=\"16\"></svg>\n </button>\n\n <!-- Move All to Source (<<) -->\n @if (showMoveAll()) {\n <button\n type=\"button\"\n class=\"talos-transfer-action-btn\"\n [class.is-active]=\"filteredTarget().length > 0 && !effectiveDisabled()\"\n [disabled]=\"filteredTarget().length === 0 || effectiveDisabled()\"\n (click)=\"moveAllToSource()\"\n [attr.aria-label]=\"'Move all to ' + titles()[0]\"\n title=\"Move all left\"\n >\n <svg lucideChevronsLeft [size]=\"16\"></svg>\n </button>\n }\n </div>\n\n <!-- ========================================== -->\n <!-- TARGET PANE (Selected Items) -->\n <!-- ========================================== -->\n <div class=\"talos-transfer-pane talos-transfer-pane-target\" [style.width]=\"effectivePaneWidth()\">\n <!-- Pane Header -->\n <div class=\"talos-transfer-header\">\n <div class=\"talos-transfer-header-left\">\n @if (showSelectAll()) {\n <label class=\"talos-transfer-checkbox-wrap\" [class.is-disabled]=\"effectiveDisabled()\">\n <input\n type=\"checkbox\"\n class=\"talos-transfer-native-checkbox\"\n [checked]=\"isTargetAllSelected()\"\n [indeterminate]=\"isTargetIndeterminate()\"\n [disabled]=\"effectiveDisabled()\"\n (change)=\"toggleSelectAllTarget()\"\n [attr.aria-label]=\"'Select all in ' + titles()[1]\"\n />\n <span class=\"talos-transfer-checkbox-custom\"></span>\n </label>\n }\n <span class=\"talos-transfer-title\">{{ titles()[1] }}</span>\n </div>\n <span class=\"talos-transfer-counter\" [attr.aria-live]=\"'polite'\">\n {{ targetSelectedCount() }} / {{ filteredTarget().length }}\n @if (isTargetSearching() && filteredTarget().length !== internalTarget().length) {\n <span class=\"talos-transfer-filter-tag\">filtered</span>\n }\n </span>\n </div>\n\n <!-- Optional Search Bar -->\n @if (searchable()) {\n <div class=\"talos-transfer-search-wrapper\">\n <svg lucideSearch class=\"talos-transfer-search-icon\" [size]=\"14\"></svg>\n <input\n type=\"text\"\n class=\"talos-transfer-search-input\"\n [placeholder]=\"targetPlaceholder()\"\n [value]=\"internalTargetQuery()\"\n (input)=\"onTargetSearch($any($event.target).value)\"\n [disabled]=\"effectiveDisabled()\"\n [attr.aria-label]=\"'Search ' + titles()[1]\"\n />\n @if (effectiveTargetLoading()) {\n <svg lucideLoader2 class=\"talos-transfer-search-spinner talos-spin\" [size]=\"14\"></svg>\n } @else if (internalTargetQuery()) {\n <button\n type=\"button\"\n class=\"talos-transfer-search-clear\"\n (click)=\"clearTargetSearch()\"\n [attr.aria-label]=\"'Clear target search'\"\n >\n <svg lucideX [size]=\"12\"></svg>\n </button>\n }\n\n @if (effectiveTargetLoading()) {\n <div class=\"talos-transfer-search-progress\"></div>\n }\n </div>\n }\n\n <!-- Target Items List -->\n <div\n class=\"talos-transfer-list-body\"\n cdkDropList\n [id]=\"componentId() + '-target-list'\"\n [cdkDropListData]=\"internalTarget()\"\n [cdkDropListDisabled]=\"!dragDrop() || effectiveDisabled()\"\n (cdkDropListDropped)=\"onCdkDrop($event)\"\n role=\"listbox\"\n [attr.aria-multiselectable]=\"true\"\n [attr.aria-label]=\"titles()[1]\"\n >\n @if (effectiveTargetLoading()) {\n <div class=\"talos-transfer-loading-state\">\n <svg lucideLoader2 class=\"talos-spin\" [size]=\"20\"></svg>\n <span>{{ isTargetSearching() ? searchingText() : 'Loading items...' }}</span>\n </div>\n } @else if (filteredTarget().length === 0) {\n <div class=\"talos-transfer-empty-state\">\n @if (isTargetSearching()) {\n <span>{{ noMatchesText() }} “<strong>{{ internalTargetQuery() }}</strong>”</span>\n <button type=\"button\" class=\"talos-transfer-clear-filter-btn\" (click)=\"clearTargetSearch()\">\n Clear filter\n </button>\n } @else {\n <span>{{ emptyTargetText() }}</span>\n }\n </div>\n } @else {\n @for (item of filteredTarget(); track getItemKey(item, $index); let i = $index) {\n @let isSel = targetSelectedKeys().has(getItemKey(item, i));\n @let isDis = isItemDisabled(item);\n\n <div\n class=\"talos-transfer-item\"\n [class.is-selected]=\"isSel\"\n [class.is-disabled]=\"isDis\"\n cdkDrag\n [cdkDragData]=\"item\"\n [cdkDragDisabled]=\"!dragDrop() || isDis || effectiveDisabled()\"\n (click)=\"toggleTargetItem(item)\"\n role=\"option\"\n [attr.aria-selected]=\"isSel\"\n [attr.aria-disabled]=\"isDis\"\n tabindex=\"0\"\n (keydown.space)=\"$event.preventDefault(); toggleTargetItem(item)\"\n (keydown.enter)=\"$event.preventDefault(); toggleTargetItem(item)\"\n >\n <!-- CDK Drag Placeholder -->\n <div class=\"talos-transfer-drag-placeholder\" *cdkDragPlaceholder></div>\n\n <!-- CDK Drag Preview -->\n <div class=\"talos-transfer-drag-preview\" *cdkDragPreview>\n <span class=\"preview-label\">{{ getItemLabel(item) }}</span>\n </div>\n\n <!-- Drag Handle -->\n @if (dragDrop() && useDragHandle() && !isDis && !effectiveDisabled()) {\n <div class=\"talos-transfer-drag-handle\" cdkDragHandle (click)=\"$event.stopPropagation()\">\n <svg lucideGripVertical [size]=\"14\"></svg>\n </div>\n }\n\n <!-- Checkbox -->\n <label class=\"talos-transfer-checkbox-wrap\" (click)=\"$event.stopPropagation()\">\n <input\n type=\"checkbox\"\n class=\"talos-transfer-native-checkbox\"\n [checked]=\"isSel\"\n [disabled]=\"isDis || effectiveDisabled()\"\n (change)=\"toggleTargetItem(item)\"\n [attr.aria-label]=\"'Select ' + getItemLabel(item)\"\n />\n <span class=\"talos-transfer-checkbox-custom\"></span>\n </label>\n\n <!-- Custom Template or Default View -->\n <div class=\"talos-transfer-item-content\">\n @if (itemTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"itemTemplate()!; context: getItemContext(item, 'target', i)\"\n ></ng-container>\n } @else {\n <div class=\"talos-transfer-item-text\">\n <span class=\"talos-transfer-item-label\">{{ getItemLabel(item) }}</span>\n @if (getItemDescription(item); as desc) {\n <span class=\"talos-transfer-item-desc\">{{ desc }}</span>\n }\n </div>\n }\n </div>\n </div>\n }\n }\n </div>\n </div>\n\n <!-- ========================================== -->\n <!-- OPTIONAL TARGET REORDER TOOLBAR -->\n <!-- ========================================== -->\n @if (showReorder()) {\n <div class=\"talos-transfer-reorder-actions\" role=\"toolbar\" aria-label=\"Reorder Target Items\">\n <!-- Move Top -->\n <button\n type=\"button\"\n class=\"talos-transfer-action-btn\"\n [class.is-active]=\"targetSelectedCount() > 0 && !effectiveDisabled()\"\n [disabled]=\"targetSelectedCount() === 0 || effectiveDisabled()\"\n (click)=\"moveTargetTop()\"\n title=\"Move to top\"\n aria-label=\"Move selected items to top\"\n >\n <svg lucideChevronsUp [size]=\"16\"></svg>\n </button>\n\n <!-- Move Up -->\n <button\n type=\"button\"\n class=\"talos-transfer-action-btn\"\n [class.is-active]=\"targetSelectedCount() > 0 && !effectiveDisabled()\"\n [disabled]=\"targetSelectedCount() === 0 || effectiveDisabled()\"\n (click)=\"moveTargetUp()\"\n title=\"Move up\"\n aria-label=\"Move selected items up\"\n >\n <svg lucideChevronUp [size]=\"16\"></svg>\n </button>\n\n <!-- Move Down -->\n <button\n type=\"button\"\n class=\"talos-transfer-action-btn\"\n [class.is-active]=\"targetSelectedCount() > 0 && !effectiveDisabled()\"\n [disabled]=\"targetSelectedCount() === 0 || effectiveDisabled()\"\n (click)=\"moveTargetDown()\"\n title=\"Move down\"\n aria-label=\"Move selected items down\"\n >\n <svg lucideChevronDown [size]=\"16\"></svg>\n </button>\n\n <!-- Move Bottom -->\n <button\n type=\"button\"\n class=\"talos-transfer-action-btn\"\n [class.is-active]=\"targetSelectedCount() > 0 && !effectiveDisabled()\"\n [disabled]=\"targetSelectedCount() === 0 || effectiveDisabled()\"\n (click)=\"moveTargetBottom()\"\n title=\"Move to bottom\"\n aria-label=\"Move selected items to bottom\"\n >\n <svg lucideChevronsDown [size]=\"16\"></svg>\n </button>\n </div>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { TalosTransferListComponent } from './transfer-list.component';\n\n@NgModule({\n imports: [TalosTransferListComponent],\n exports: [TalosTransferListComponent]\n})\nexport class TalosTransferListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { ElementRef } from '@angular/core';
|
|
3
|
-
import * as i4 from '@weeehaoooz/talos-ui/button/button';
|
|
4
|
-
import { ButtonSize, TalosButtonDirective } from '@weeehaoooz/talos-ui/button/button';
|
|
5
|
-
import * as i3 from '@weeehaoooz/talos-ui/feedback/tooltip';
|
|
6
|
-
|
|
7
|
-
declare class TalosButtonGroupItemDirective {
|
|
8
|
-
readonly elementRef: ElementRef<HTMLElement>;
|
|
9
|
-
/** Value associated with this button item in selection mode */
|
|
10
|
-
readonly value: _angular_core.InputSignal<any>;
|
|
11
|
-
/** Explicit selected / active state override */
|
|
12
|
-
readonly selected: _angular_core.WritableSignal<boolean>;
|
|
13
|
-
/** Focus target method */
|
|
14
|
-
focus(): void;
|
|
15
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosButtonGroupItemDirective, never>;
|
|
16
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TalosButtonGroupItemDirective, "button[talosButtonGroupItem], a[talosButtonGroupItem], [talos-button-group-item]", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
type ButtonGroupOrientation = 'horizontal' | 'vertical';
|
|
20
|
-
type ButtonGroupVariant = 'attached' | 'segmented' | 'outline' | 'subtle' | 'pill' | 'glow';
|
|
21
|
-
type ButtonGroupSelectionMode = 'none' | 'single' | 'multiple';
|
|
22
|
-
declare class TalosButtonGroupComponent {
|
|
23
|
-
private readonly elementRef;
|
|
24
|
-
/** Layout orientation: horizontal or vertical */
|
|
25
|
-
readonly orientation: _angular_core.InputSignal<ButtonGroupOrientation>;
|
|
26
|
-
/** Visual variant style */
|
|
27
|
-
readonly variant: _angular_core.InputSignal<ButtonGroupVariant>;
|
|
28
|
-
/** Button size propagation */
|
|
29
|
-
readonly size: _angular_core.InputSignal<ButtonSize>;
|
|
30
|
-
/** Selection behavior: none, single (radio), or multiple (checkbox) */
|
|
31
|
-
readonly selectionMode: _angular_core.InputSignal<ButtonGroupSelectionMode>;
|
|
32
|
-
/** Model value for single or multiple selection */
|
|
33
|
-
readonly value: _angular_core.ModelSignal<any>;
|
|
34
|
-
/** Apply fully rounded pill shape */
|
|
35
|
-
readonly pill: _angular_core.InputSignal<boolean>;
|
|
36
|
-
/** Allow mouse wheel vertical scrolling to translate to horizontal scrolling when overflowing on hover */
|
|
37
|
-
readonly mouseWheelScroll: _angular_core.InputSignal<boolean>;
|
|
38
|
-
/** Disable all buttons in group */
|
|
39
|
-
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
40
|
-
/** Child items using TalosButtonGroupItemDirective */
|
|
41
|
-
readonly items: _angular_core.Signal<readonly TalosButtonGroupItemDirective[]>;
|
|
42
|
-
/** Child directives using TalosButtonDirective */
|
|
43
|
-
readonly buttons: _angular_core.Signal<readonly TalosButtonDirective[]>;
|
|
44
|
-
private selectionModel;
|
|
45
|
-
constructor();
|
|
46
|
-
private syncChildSelectionStates;
|
|
47
|
-
onClick(event: MouseEvent): void;
|
|
48
|
-
onKeydown(event: KeyboardEvent): void;
|
|
49
|
-
onWheel(event: WheelEvent): void;
|
|
50
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosButtonGroupComponent, never>;
|
|
51
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TalosButtonGroupComponent, "talos-button-group", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "pill": { "alias": "pill"; "required": false; "isSignal": true; }; "mouseWheelScroll": { "alias": "mouseWheelScroll"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, ["items", "buttons"], ["*"], true, never>;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
declare class TalosButtonGroupModule {
|
|
55
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosButtonGroupModule, never>;
|
|
56
|
-
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<TalosButtonGroupModule, never, [typeof TalosButtonGroupComponent, typeof TalosButtonGroupItemDirective, typeof i3.TalosTooltipDirective, typeof i3.TalosTooltipComponent, typeof i4.TalosButtonDirective], [typeof TalosButtonGroupComponent, typeof TalosButtonGroupItemDirective, typeof i3.TalosTooltipDirective, typeof i3.TalosTooltipComponent, typeof i4.TalosButtonDirective]>;
|
|
57
|
-
static ɵinj: _angular_core.ɵɵInjectorDeclaration<TalosButtonGroupModule>;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export { TalosButtonGroupComponent, TalosButtonGroupItemDirective, TalosButtonGroupModule };
|
|
61
|
-
export type { ButtonGroupOrientation, ButtonGroupSelectionMode, ButtonGroupVariant };
|
|
62
|
-
//# sourceMappingURL=weeehaoooz-talos-ui-button-button-group.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"weeehaoooz-talos-ui-button-button-group.d.ts","sources":["../../../projects/talos-ui/button/button-group/button-group-item/button-group-item.directive.ts","../../../projects/talos-ui/button/button-group/button-group/button-group.component.ts","../../../projects/talos-ui/button/button-group/button-group.module.ts"],"mappings":";;;;;;AAEA,cASa,6BAA6B;yBACrB,UAAA,CAAA,WAAA;;oBAGL,aAAA,CAAA,WAAA;;uBAGG,aAAA,CAAA,cAAA;;AAGjB;oDAVW,6BAA6B;sDAA7B,6BAA6B;AAazC;;KCTW,sBAAsB;AAC5B,KAAM,kBAAkB;AACxB,KAAM,wBAAwB;AAEpC,cAuBa,yBAAyB;AACpC;;0BAGoB,aAAA,CAAA,WAAA,CAAA,sBAAA;;sBAGJ,aAAA,CAAA,WAAA,CAAA,kBAAA;;mBAGH,aAAA,CAAA,WAAA,CAAA,UAAA;;4BAGS,aAAA,CAAA,WAAA,CAAA,wBAAA;;oBAGR,aAAA,CAAA,WAAA;;mBAGD,aAAA,CAAA,WAAA;;+BAGY,aAAA,CAAA,WAAA;;uBAGR,aAAA,CAAA,WAAA;;oBAGH,aAAA,CAAA,MAAA,UAAA,6BAAA;;sBAGE,aAAA,CAAA,MAAA,UAAA,oBAAA;;;AAqChB;AAWA,mBAAe,UAAU;AA8CzB,qBAAiB,aAAa;AA+B9B,mBAAe,UAAU;oDA5Jd,yBAAyB;sDAAzB,yBAAyB;AA6KrC;;ACjND,cAgBa,sBAAsB;oDAAtB,sBAAsB;qDAAtB,sBAAsB,iBAAAA,yBAAA,SAAAC,6BAAA,SAAA,EAAA,CAAA,qBAAA,SAAA,EAAA,CAAA,qBAAA,SAAA,EAAA,CAAA,oBAAA,WAAAD,yBAAA,SAAAC,6BAAA,SAAA,EAAA,CAAA,qBAAA,SAAA,EAAA,CAAA,qBAAA,SAAA,EAAA,CAAA,oBAAA;qDAAtB,sBAAsB;AAAI;;;;","names":["i1.TalosButtonGroupComponent","i2.TalosButtonGroupItemDirective"]}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import * as _angular_core from '@angular/core';
|
|
2
|
-
|
|
3
|
-
type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'subtle' | 'danger' | 'success' | 'link';
|
|
4
|
-
type ButtonSize = 'xs' | 'sm' | 'md' | 'lg';
|
|
5
|
-
type ButtonAnimation = 'spin' | 'spin-once' | 'pop' | 'shake' | 'pulse' | 'bounce' | 'none';
|
|
6
|
-
type ButtonFeedbackState = 'success' | 'error' | null;
|
|
7
|
-
declare class TalosButtonDirective {
|
|
8
|
-
private readonly elementRef;
|
|
9
|
-
/** Button visual style variant */
|
|
10
|
-
readonly variant: _angular_core.InputSignal<ButtonVariant>;
|
|
11
|
-
/** Button size variant */
|
|
12
|
-
readonly size: _angular_core.InputSignal<ButtonSize>;
|
|
13
|
-
/** Whether button has square aspect ratio for icon-only display */
|
|
14
|
-
readonly iconOnly: _angular_core.InputSignal<boolean>;
|
|
15
|
-
/** Expand button to fill 100% width of parent container */
|
|
16
|
-
readonly fullWidth: _angular_core.InputSignal<boolean>;
|
|
17
|
-
/** Apply fully rounded pill shape */
|
|
18
|
-
readonly pill: _angular_core.InputSignal<boolean>;
|
|
19
|
-
/** Show loading spinner and disable interactive events */
|
|
20
|
-
readonly loading: _angular_core.InputSignal<boolean>;
|
|
21
|
-
/** Disable button interaction */
|
|
22
|
-
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
23
|
-
/** Micro-interaction animation preset to apply */
|
|
24
|
-
readonly animation: _angular_core.InputSignal<ButtonAnimation>;
|
|
25
|
-
/** Convenience boolean signal for spinning icon / continuous refresh state */
|
|
26
|
-
readonly spinning: _angular_core.InputSignal<boolean>;
|
|
27
|
-
/** Convenience boolean signal for pop / scale bounce feedback */
|
|
28
|
-
readonly popping: _angular_core.InputSignal<boolean>;
|
|
29
|
-
/** Contextual temporary feedback state (e.g. green success pop or red error shake) */
|
|
30
|
-
readonly feedback: _angular_core.InputSignal<ButtonFeedbackState>;
|
|
31
|
-
onPointerDown(event: Event): void;
|
|
32
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosButtonDirective, never>;
|
|
33
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TalosButtonDirective, "button[talosButton], a[talosButton], button[talos-btn], a[talos-btn]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "iconOnly"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "pill": { "alias": "pill"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "animation": { "alias": "animation"; "required": false; "isSignal": true; }; "spinning": { "alias": "spinning"; "required": false; "isSignal": true; }; "popping": { "alias": "popping"; "required": false; "isSignal": true; }; "feedback": { "alias": "feedback"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export { TalosButtonDirective };
|
|
37
|
-
export type { ButtonAnimation, ButtonFeedbackState, ButtonSize, ButtonVariant };
|
|
38
|
-
//# sourceMappingURL=weeehaoooz-talos-ui-button-button.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"weeehaoooz-talos-ui-button-button.d.ts","sources":["../../../projects/talos-ui/button/button/button.directive.ts"],"mappings":";;KAEY,aAAa;AACnB,KAAM,UAAU;KACV,eAAe;AACrB,KAAM,mBAAmB;AAE/B,cAgCa,oBAAoB;AAC/B;;sBAGgB,aAAA,CAAA,WAAA,CAAA,aAAA;;mBAGH,aAAA,CAAA,WAAA,CAAA,UAAA;;uBAGI,aAAA,CAAA,WAAA;;wBAGC,aAAA,CAAA,WAAA;;mBAGL,aAAA,CAAA,WAAA;;sBAGG,aAAA,CAAA,WAAA;;uBAGC,aAAA,CAAA,WAAA;;wBAGC,aAAA,CAAA,WAAA,CAAA,eAAA;;uBAGD,aAAA,CAAA,WAAA;;sBAGD,aAAA,CAAA,WAAA;;uBAGC,aAAA,CAAA,WAAA,CAAA,mBAAA;AAEjB,yBAAqB,KAAK;oDApCf,oBAAoB;sDAApB,oBAAoB;AA8ChC;;;;","names":[]}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import * as _angular_core from '@angular/core';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Supported size scales for the badge.
|
|
5
|
-
*/
|
|
6
|
-
type TalosBadgeSize = 'xs' | 'sm' | 'md' | 'lg';
|
|
7
|
-
/**
|
|
8
|
-
* Anchor positions for placing the badge relative to its host element.
|
|
9
|
-
*/
|
|
10
|
-
type TalosBadgePosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top' | 'bottom' | 'inline';
|
|
11
|
-
/**
|
|
12
|
-
* Visual semantic variant presentation styles.
|
|
13
|
-
*/
|
|
14
|
-
type TalosBadgeVariant = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'error' | 'info' | 'neutral' | 'subtle' | 'outline';
|
|
15
|
-
/**
|
|
16
|
-
* Shape styling of the badge container.
|
|
17
|
-
*/
|
|
18
|
-
type TalosBadgeShape = 'circle' | 'pill' | 'square';
|
|
19
|
-
/**
|
|
20
|
-
* Formats badge content taking into account max threshold clamping, dot mode, and null values.
|
|
21
|
-
*
|
|
22
|
-
* @param content The raw badge content (number, string, or null/undefined)
|
|
23
|
-
* @param max The maximum numerical threshold before displaying with a '+' post-script (e.g. 99+)
|
|
24
|
-
* @param dot Whether the badge is operating in dot indicator mode
|
|
25
|
-
* @returns The formatted string to be rendered inside the badge
|
|
26
|
-
*/
|
|
27
|
-
declare function formatBadgeContent(content: string | number | null | undefined, max?: number | null, dot?: boolean): string;
|
|
28
|
-
|
|
29
|
-
declare class TalosBadgeDirective {
|
|
30
|
-
private readonly elementRef;
|
|
31
|
-
private readonly renderer;
|
|
32
|
-
private readonly destroyRef;
|
|
33
|
-
/**
|
|
34
|
-
* The content to display inside the badge.
|
|
35
|
-
* Can be a number, string, or null/undefined.
|
|
36
|
-
*/
|
|
37
|
-
readonly content: _angular_core.InputSignal<string | number | null | undefined>;
|
|
38
|
-
/**
|
|
39
|
-
* Maximum numeric value to display before appending '+'.
|
|
40
|
-
* For example, max = 99 will display 100 as '99+'.
|
|
41
|
-
*/
|
|
42
|
-
readonly max: _angular_core.InputSignal<number | null | undefined>;
|
|
43
|
-
/**
|
|
44
|
-
* Size scale of the badge.
|
|
45
|
-
* @default 'md'
|
|
46
|
-
*/
|
|
47
|
-
readonly size: _angular_core.InputSignal<TalosBadgeSize>;
|
|
48
|
-
/**
|
|
49
|
-
* Anchor position of the badge relative to the host element.
|
|
50
|
-
* @default 'top-right'
|
|
51
|
-
*/
|
|
52
|
-
readonly position: _angular_core.InputSignal<TalosBadgePosition>;
|
|
53
|
-
/**
|
|
54
|
-
* Visual variant/color theme of the badge.
|
|
55
|
-
* @default 'primary'
|
|
56
|
-
*/
|
|
57
|
-
readonly variant: _angular_core.InputSignal<TalosBadgeVariant>;
|
|
58
|
-
/**
|
|
59
|
-
* Shape style of the badge container.
|
|
60
|
-
* @default 'circle'
|
|
61
|
-
*/
|
|
62
|
-
readonly shape: _angular_core.InputSignal<TalosBadgeShape>;
|
|
63
|
-
/**
|
|
64
|
-
* Whether to display the badge as a small indicator dot without text content.
|
|
65
|
-
* @default false
|
|
66
|
-
*/
|
|
67
|
-
readonly dot: _angular_core.InputSignal<boolean>;
|
|
68
|
-
/**
|
|
69
|
-
* Whether to enable an animated pulse/ripple effect for notifications.
|
|
70
|
-
* @default false
|
|
71
|
-
*/
|
|
72
|
-
readonly pulse: _angular_core.InputSignal<boolean>;
|
|
73
|
-
/**
|
|
74
|
-
* Whether the badge is hidden from view.
|
|
75
|
-
* @default false
|
|
76
|
-
*/
|
|
77
|
-
readonly hidden: _angular_core.InputSignal<boolean>;
|
|
78
|
-
/**
|
|
79
|
-
* Whether the badge overlaps the edge of the host component.
|
|
80
|
-
* @default true
|
|
81
|
-
*/
|
|
82
|
-
readonly overlap: _angular_core.InputSignal<boolean>;
|
|
83
|
-
/**
|
|
84
|
-
* Accessible description/label for screen readers.
|
|
85
|
-
*/
|
|
86
|
-
readonly ariaLabel: _angular_core.InputSignal<string | null | undefined>;
|
|
87
|
-
/**
|
|
88
|
-
* Computed formatted text content for the badge.
|
|
89
|
-
*/
|
|
90
|
-
readonly formattedContent: _angular_core.Signal<string>;
|
|
91
|
-
/**
|
|
92
|
-
* Whether the badge should actively render in the DOM and be visible.
|
|
93
|
-
*/
|
|
94
|
-
readonly shouldRender: _angular_core.Signal<boolean>;
|
|
95
|
-
/**
|
|
96
|
-
* Computed host aria-label override when provided.
|
|
97
|
-
*/
|
|
98
|
-
readonly resolvedHostAriaLabel: _angular_core.Signal<string | null>;
|
|
99
|
-
private badgeElement;
|
|
100
|
-
constructor();
|
|
101
|
-
/**
|
|
102
|
-
* Returns the native badge element for inspection or testing.
|
|
103
|
-
*/
|
|
104
|
-
get nativeBadgeElement(): HTMLElement | null;
|
|
105
|
-
private updateBadgeDom;
|
|
106
|
-
private removeBadgeDom;
|
|
107
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosBadgeDirective, never>;
|
|
108
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TalosBadgeDirective, "[talosBadge], [talos-badge]", never, { "content": { "alias": "talosBadge"; "required": false; "isSignal": true; }; "max": { "alias": "talosBadgeMax"; "required": false; "isSignal": true; }; "size": { "alias": "talosBadgeSize"; "required": false; "isSignal": true; }; "position": { "alias": "talosBadgePosition"; "required": false; "isSignal": true; }; "variant": { "alias": "talosBadgeVariant"; "required": false; "isSignal": true; }; "shape": { "alias": "talosBadgeShape"; "required": false; "isSignal": true; }; "dot": { "alias": "talosBadgeDot"; "required": false; "isSignal": true; }; "pulse": { "alias": "talosBadgePulse"; "required": false; "isSignal": true; }; "hidden": { "alias": "talosBadgeHidden"; "required": false; "isSignal": true; }; "overlap": { "alias": "talosBadgeOverlap"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "talosBadgeAriaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
declare class TalosBadgeModule {
|
|
112
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TalosBadgeModule, never>;
|
|
113
|
-
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<TalosBadgeModule, never, [typeof TalosBadgeDirective], [typeof TalosBadgeDirective]>;
|
|
114
|
-
static ɵinj: _angular_core.ɵɵInjectorDeclaration<TalosBadgeModule>;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
export { TalosBadgeDirective, TalosBadgeModule, formatBadgeContent };
|
|
118
|
-
export type { TalosBadgePosition, TalosBadgeShape, TalosBadgeSize, TalosBadgeVariant };
|
|
119
|
-
//# sourceMappingURL=weeehaoooz-talos-ui-data-display-badge.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"weeehaoooz-talos-ui-data-display-badge.d.ts","sources":["../../../projects/talos-ui/data-display/badge/badge.types.ts","../../../projects/talos-ui/data-display/badge/badge.directive.ts","../../../projects/talos-ui/data-display/badge/badge.module.ts"],"mappings":";;AAAA;;AAEG;AACG,KAAM,cAAc;AAE1B;;AAEG;KACS,kBAAkB;AAS9B;;AAEG;AACG,KAAM,iBAAiB;AAY7B;;AAEG;AACG,KAAM,eAAe;AAE3B;;;;;;;AAOG;AACH,iBAAgB,kBAAkB;;AC3BlC,cAQa,mBAAmB;AAC9B;AACA;AACA;AAEA;;;AAGG;sBACa,aAAA,CAAA,WAAA;AAIhB;;;AAGG;kBACS,aAAA,CAAA,WAAA;AAIZ;;;AAGG;mBACU,aAAA,CAAA,WAAA,CAAA,cAAA;AAIb;;;AAGG;uBACc,aAAA,CAAA,WAAA,CAAA,kBAAA;AAIjB;;;AAGG;sBACa,aAAA,CAAA,WAAA,CAAA,iBAAA;AAIhB;;;AAGG;oBACW,aAAA,CAAA,WAAA,CAAA,eAAA;AAId;;;AAGG;kBACS,aAAA,CAAA,WAAA;AAIZ;;;AAGG;oBACW,aAAA,CAAA,WAAA;AAId;;;AAGG;qBACY,aAAA,CAAA,WAAA;AAIf;;;AAGG;sBACa,aAAA,CAAA,WAAA;AAIhB;;AAEG;wBACe,aAAA,CAAA,WAAA;AAIlB;;AAEG;+BACsB,aAAA,CAAA,MAAA;AAIzB;;AAEG;2BACkB,aAAA,CAAA,MAAA;AAWrB;;AAEG;oCAC2B,aAAA,CAAA,MAAA;;;AAqB9B;;AAEG;AACH,8BAA0B,WAAW;AAIrC;AA8DA;oDA9MW,mBAAmB;sDAAnB,mBAAmB;AAoN/B;;AC3OD,cAIa,gBAAgB;oDAAhB,gBAAgB;qDAAhB,gBAAgB,iBAAAA,mBAAA,WAAAA,mBAAA;qDAAhB,gBAAgB;AAAG;;;;","names":["i1.TalosBadgeDirective"]}
|