@weeehaoooz/talos-ui 0.1.0
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/LICENSE +21 -0
- package/README.md +85 -0
- package/fesm2022/weeehaoooz-talos-ui-button-button-group.mjs +237 -0
- package/fesm2022/weeehaoooz-talos-ui-button-button-group.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-button-button.mjs +93 -0
- package/fesm2022/weeehaoooz-talos-ui-button-button.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-core.mjs +438 -0
- package/fesm2022/weeehaoooz-talos-ui-core.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-data-display-badge.mjs +233 -0
- package/fesm2022/weeehaoooz-talos-ui-data-display-badge.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-data-display-status-tag.mjs +361 -0
- package/fesm2022/weeehaoooz-talos-ui-data-display-status-tag.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-data-display-timeline.mjs +312 -0
- package/fesm2022/weeehaoooz-talos-ui-data-display-timeline.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-data-display-trend-indicator.mjs +235 -0
- package/fesm2022/weeehaoooz-talos-ui-data-display-trend-indicator.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-data-viz-category-bar.mjs +462 -0
- package/fesm2022/weeehaoooz-talos-ui-data-viz-category-bar.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-data-viz-heatmap.mjs +805 -0
- package/fesm2022/weeehaoooz-talos-ui-data-viz-heatmap.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-donut.mjs +267 -0
- package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-donut.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-gauge.mjs +351 -0
- package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-gauge.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-data-viz-sparkline.mjs +566 -0
- package/fesm2022/weeehaoooz-talos-ui-data-viz-sparkline.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-feedback-alert.mjs +534 -0
- package/fesm2022/weeehaoooz-talos-ui-feedback-alert.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-feedback-dialog.mjs +446 -0
- package/fesm2022/weeehaoooz-talos-ui-feedback-dialog.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-feedback-snackbar.mjs +376 -0
- package/fesm2022/weeehaoooz-talos-ui-feedback-snackbar.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-feedback-tooltip.mjs +147 -0
- package/fesm2022/weeehaoooz-talos-ui-feedback-tooltip.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form-affix.mjs +242 -0
- package/fesm2022/weeehaoooz-talos-ui-form-affix.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form-autocomplete.mjs +514 -0
- package/fesm2022/weeehaoooz-talos-ui-form-autocomplete.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form-checkbox.mjs +548 -0
- package/fesm2022/weeehaoooz-talos-ui-form-checkbox.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form-chips.mjs +692 -0
- package/fesm2022/weeehaoooz-talos-ui-form-chips.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form-color-picker.mjs +761 -0
- package/fesm2022/weeehaoooz-talos-ui-form-color-picker.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form-date-picker.mjs +896 -0
- package/fesm2022/weeehaoooz-talos-ui-form-date-picker.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form-date-range-picker.mjs +872 -0
- package/fesm2022/weeehaoooz-talos-ui-form-date-range-picker.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form-date-time-picker.mjs +119 -0
- package/fesm2022/weeehaoooz-talos-ui-form-date-time-picker.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form-date-time-range-picker.mjs +135 -0
- package/fesm2022/weeehaoooz-talos-ui-form-date-time-range-picker.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form-drop-zone.mjs +666 -0
- package/fesm2022/weeehaoooz-talos-ui-form-drop-zone.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form-form-field.mjs +147 -0
- package/fesm2022/weeehaoooz-talos-ui-form-form-field.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form-input.mjs +33 -0
- package/fesm2022/weeehaoooz-talos-ui-form-input.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form-otp.mjs +455 -0
- package/fesm2022/weeehaoooz-talos-ui-form-otp.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form-password-input.mjs +379 -0
- package/fesm2022/weeehaoooz-talos-ui-form-password-input.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form-radio.mjs +297 -0
- package/fesm2022/weeehaoooz-talos-ui-form-radio.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs +661 -0
- package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs +346 -0
- package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form-select-input.mjs +896 -0
- package/fesm2022/weeehaoooz-talos-ui-form-select-input.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form-slide-toggle.mjs +252 -0
- package/fesm2022/weeehaoooz-talos-ui-form-slide-toggle.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form-transfer-list.mjs +916 -0
- package/fesm2022/weeehaoooz-talos-ui-form-transfer-list.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-layout.mjs +851 -0
- package/fesm2022/weeehaoooz-talos-ui-layout.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-nav.mjs +897 -0
- package/fesm2022/weeehaoooz-talos-ui-nav.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui.mjs +17058 -0
- package/fesm2022/weeehaoooz-talos-ui.mjs.map +1 -0
- package/package.json +203 -0
- package/schematics/collection.json +10 -0
- package/schematics/ng-add/index.d.ts +3 -0
- package/schematics/ng-add/index.js +99 -0
- package/schematics/ng-add/schema.d.ts +10 -0
- package/schematics/ng-add/schema.js +2 -0
- package/schematics/ng-add/schema.json +52 -0
- package/styles/_alert.scss +56 -0
- package/styles/_badge.scss +279 -0
- package/styles/_button-group.scss +470 -0
- package/styles/_buttons.scss +442 -0
- package/styles/_card.scss +18 -0
- package/styles/_dialog.scss +116 -0
- package/styles/_drop-zone.scss +19 -0
- package/styles/_form-controls.scss +660 -0
- package/styles/_slide-toggle.scss +171 -0
- package/styles/_status-tag.scss +108 -0
- package/styles/_timeline.scss +19 -0
- package/styles/_tooltip.scss +32 -0
- package/styles/_typography.scss +279 -0
- package/styles/_variables.scss +590 -0
- package/styles/index.scss +15 -0
- package/types/weeehaoooz-talos-ui-button-button-group.d.ts +59 -0
- package/types/weeehaoooz-talos-ui-button-button-group.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-button-button.d.ts +38 -0
- package/types/weeehaoooz-talos-ui-button-button.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-core.d.ts +95 -0
- package/types/weeehaoooz-talos-ui-core.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-data-display-badge.d.ts +119 -0
- package/types/weeehaoooz-talos-ui-data-display-badge.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-data-display-status-tag.d.ts +135 -0
- package/types/weeehaoooz-talos-ui-data-display-status-tag.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-data-display-timeline.d.ts +144 -0
- package/types/weeehaoooz-talos-ui-data-display-timeline.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-data-display-trend-indicator.d.ts +83 -0
- package/types/weeehaoooz-talos-ui-data-display-trend-indicator.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-data-viz-category-bar.d.ts +255 -0
- package/types/weeehaoooz-talos-ui-data-viz-category-bar.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-data-viz-heatmap.d.ts +204 -0
- package/types/weeehaoooz-talos-ui-data-viz-heatmap.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-data-viz-mini-donut.d.ts +101 -0
- package/types/weeehaoooz-talos-ui-data-viz-mini-donut.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-data-viz-mini-gauge.d.ts +138 -0
- package/types/weeehaoooz-talos-ui-data-viz-mini-gauge.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-data-viz-sparkline.d.ts +161 -0
- package/types/weeehaoooz-talos-ui-data-viz-sparkline.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-feedback-alert.d.ts +212 -0
- package/types/weeehaoooz-talos-ui-feedback-alert.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-feedback-dialog.d.ts +259 -0
- package/types/weeehaoooz-talos-ui-feedback-dialog.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-feedback-snackbar.d.ts +147 -0
- package/types/weeehaoooz-talos-ui-feedback-snackbar.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-feedback-tooltip.d.ts +32 -0
- package/types/weeehaoooz-talos-ui-feedback-tooltip.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form-affix.d.ts +88 -0
- package/types/weeehaoooz-talos-ui-form-affix.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form-autocomplete.d.ts +113 -0
- package/types/weeehaoooz-talos-ui-form-autocomplete.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form-checkbox.d.ts +165 -0
- package/types/weeehaoooz-talos-ui-form-checkbox.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form-chips.d.ts +152 -0
- package/types/weeehaoooz-talos-ui-form-chips.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form-color-picker.d.ts +144 -0
- package/types/weeehaoooz-talos-ui-form-color-picker.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form-date-picker.d.ts +138 -0
- package/types/weeehaoooz-talos-ui-form-date-picker.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form-date-range-picker.d.ts +148 -0
- package/types/weeehaoooz-talos-ui-form-date-range-picker.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form-date-time-picker.d.ts +44 -0
- package/types/weeehaoooz-talos-ui-form-date-time-picker.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form-date-time-range-picker.d.ts +48 -0
- package/types/weeehaoooz-talos-ui-form-date-time-range-picker.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form-drop-zone.d.ts +227 -0
- package/types/weeehaoooz-talos-ui-form-drop-zone.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form-form-field.d.ts +42 -0
- package/types/weeehaoooz-talos-ui-form-form-field.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form-input.d.ts +15 -0
- package/types/weeehaoooz-talos-ui-form-input.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form-otp.d.ts +111 -0
- package/types/weeehaoooz-talos-ui-form-otp.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form-password-input.d.ts +145 -0
- package/types/weeehaoooz-talos-ui-form-password-input.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form-radio.d.ts +84 -0
- package/types/weeehaoooz-talos-ui-form-radio.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form-range-input.d.ts +181 -0
- package/types/weeehaoooz-talos-ui-form-range-input.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form-rating.d.ts +110 -0
- package/types/weeehaoooz-talos-ui-form-rating.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form-select-input.d.ts +195 -0
- package/types/weeehaoooz-talos-ui-form-select-input.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form-slide-toggle.d.ts +79 -0
- package/types/weeehaoooz-talos-ui-form-slide-toggle.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form-transfer-list.d.ts +192 -0
- package/types/weeehaoooz-talos-ui-form-transfer-list.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-layout.d.ts +286 -0
- package/types/weeehaoooz-talos-ui-layout.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-nav.d.ts +384 -0
- package/types/weeehaoooz-talos-ui-nav.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui.d.ts +5050 -0
- package/types/weeehaoooz-talos-ui.d.ts.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
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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"}
|