@tailng-ui/primitives 0.13.0 → 0.15.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/package.json +3 -2
- package/src/index.d.ts +1 -0
- package/src/index.d.ts.map +1 -1
- package/src/index.js +1 -0
- package/src/index.js.map +1 -1
- package/src/lib/feedback/empty/tng-empty.d.ts.map +1 -1
- package/src/lib/feedback/empty/tng-empty.js +0 -5
- package/src/lib/feedback/empty/tng-empty.js.map +1 -1
- package/src/lib/feedback/progress-bar/tng-progress-bar.d.ts.map +1 -1
- package/src/lib/feedback/progress-bar/tng-progress-bar.js +0 -2
- package/src/lib/feedback/progress-bar/tng-progress-bar.js.map +1 -1
- package/src/lib/feedback/progress-spinner/tng-progress-spinner.d.ts.map +1 -1
- package/src/lib/feedback/progress-spinner/tng-progress-spinner.js +0 -1
- package/src/lib/feedback/progress-spinner/tng-progress-spinner.js.map +1 -1
- package/src/lib/feedback/skeleton/tng-skeleton.d.ts.map +1 -1
- package/src/lib/feedback/skeleton/tng-skeleton.js +0 -1
- package/src/lib/feedback/skeleton/tng-skeleton.js.map +1 -1
- package/src/lib/feedback/toast/tng-toast.d.ts.map +1 -1
- package/src/lib/feedback/toast/tng-toast.js +0 -2
- package/src/lib/feedback/toast/tng-toast.js.map +1 -1
- package/src/lib/form/_shared/select/tng-select.overlay.shared.d.ts.map +1 -1
- package/src/lib/form/_shared/select/tng-select.overlay.shared.js +0 -1
- package/src/lib/form/_shared/select/tng-select.overlay.shared.js.map +1 -1
- package/src/lib/form/_shared/select/tng-select.parts.shared.d.ts.map +1 -1
- package/src/lib/form/_shared/select/tng-select.parts.shared.js +0 -4
- package/src/lib/form/_shared/select/tng-select.parts.shared.js.map +1 -1
- package/src/lib/form/autocomplete/tng-autocomplete.d.ts.map +1 -1
- package/src/lib/form/autocomplete/tng-autocomplete.js +0 -1
- package/src/lib/form/autocomplete/tng-autocomplete.js.map +1 -1
- package/src/lib/form/autocomplete/tng-autocomplete.listbox.d.ts.map +1 -1
- package/src/lib/form/autocomplete/tng-autocomplete.listbox.js +0 -2
- package/src/lib/form/autocomplete/tng-autocomplete.listbox.js.map +1 -1
- package/src/lib/form/autocomplete/tng-autocomplete.overlay.d.ts.map +1 -1
- package/src/lib/form/autocomplete/tng-autocomplete.overlay.js +0 -1
- package/src/lib/form/autocomplete/tng-autocomplete.overlay.js.map +1 -1
- package/src/lib/form/autocomplete/tng-autocomplete.parts.d.ts.map +1 -1
- package/src/lib/form/autocomplete/tng-autocomplete.parts.js +0 -4
- package/src/lib/form/autocomplete/tng-autocomplete.parts.js.map +1 -1
- package/src/lib/form/button-toggle/tng-button-toggle.d.ts.map +1 -1
- package/src/lib/form/button-toggle/tng-button-toggle.js +0 -2
- package/src/lib/form/button-toggle/tng-button-toggle.js.map +1 -1
- package/src/lib/form/checkbox/tng-checkbox.d.ts.map +1 -1
- package/src/lib/form/checkbox/tng-checkbox.js +0 -1
- package/src/lib/form/checkbox/tng-checkbox.js.map +1 -1
- package/src/lib/form/chips/tng-chips.d.ts.map +1 -1
- package/src/lib/form/chips/tng-chips.js +0 -3
- package/src/lib/form/chips/tng-chips.js.map +1 -1
- package/src/lib/form/combobox/tng-combobox.d.ts.map +1 -1
- package/src/lib/form/combobox/tng-combobox.js +0 -1
- package/src/lib/form/combobox/tng-combobox.js.map +1 -1
- package/src/lib/form/datepicker/__tests__/tng-datepicker.test-helpers.d.ts +25 -0
- package/src/lib/form/datepicker/__tests__/tng-datepicker.test-helpers.d.ts.map +1 -0
- package/src/lib/form/datepicker/__tests__/tng-datepicker.test-helpers.js +105 -0
- package/src/lib/form/datepicker/__tests__/tng-datepicker.test-helpers.js.map +1 -0
- package/src/lib/form/datepicker/datepicker.adapters.d.ts +5 -0
- package/src/lib/form/datepicker/datepicker.adapters.d.ts.map +1 -0
- package/src/lib/form/datepicker/datepicker.adapters.js +194 -0
- package/src/lib/form/datepicker/datepicker.adapters.js.map +1 -0
- package/src/lib/form/datepicker/datepicker.state.d.ts +10 -0
- package/src/lib/form/datepicker/datepicker.state.d.ts.map +1 -0
- package/src/lib/form/datepicker/datepicker.state.js +97 -0
- package/src/lib/form/datepicker/datepicker.state.js.map +1 -0
- package/src/lib/form/datepicker/datepicker.types.d.ts +269 -0
- package/src/lib/form/datepicker/datepicker.types.d.ts.map +1 -0
- package/src/lib/form/datepicker/datepicker.types.js +1 -0
- package/src/lib/form/datepicker/datepicker.types.js.map +1 -0
- package/src/lib/form/datepicker/datepicker.utils.d.ts +75 -0
- package/src/lib/form/datepicker/datepicker.utils.d.ts.map +1 -0
- package/src/lib/form/datepicker/datepicker.utils.js +238 -0
- package/src/lib/form/datepicker/datepicker.utils.js.map +1 -0
- package/src/lib/form/datepicker/index.d.ts +3 -0
- package/src/lib/form/datepicker/index.d.ts.map +1 -0
- package/src/lib/form/datepicker/index.js +3 -0
- package/src/lib/form/datepicker/index.js.map +1 -0
- package/src/lib/form/datepicker/tng-datepicker.d.ts +5 -0
- package/src/lib/form/datepicker/tng-datepicker.d.ts.map +1 -0
- package/src/lib/form/datepicker/tng-datepicker.js +1948 -0
- package/src/lib/form/datepicker/tng-datepicker.js.map +1 -0
- package/src/lib/form/datepicker/tng-datepicker.overlay.d.ts +60 -0
- package/src/lib/form/datepicker/tng-datepicker.overlay.d.ts.map +1 -0
- package/src/lib/form/datepicker/tng-datepicker.overlay.js +275 -0
- package/src/lib/form/datepicker/tng-datepicker.overlay.js.map +1 -0
- package/src/lib/form/input/tng-input.d.ts.map +1 -1
- package/src/lib/form/input/tng-input.js +0 -4
- package/src/lib/form/input/tng-input.js.map +1 -1
- package/src/lib/form/input-otp/tng-input-otp.d.ts.map +1 -1
- package/src/lib/form/input-otp/tng-input-otp.js +0 -1
- package/src/lib/form/input-otp/tng-input-otp.js.map +1 -1
- package/src/lib/form/label/tng-label.d.ts.map +1 -1
- package/src/lib/form/label/tng-label.js +0 -1
- package/src/lib/form/label/tng-label.js.map +1 -1
- package/src/lib/form/listbox/listbox.directive.d.ts.map +1 -1
- package/src/lib/form/listbox/listbox.directive.js +0 -1
- package/src/lib/form/listbox/listbox.directive.js.map +1 -1
- package/src/lib/form/listbox/option.directive.d.ts.map +1 -1
- package/src/lib/form/listbox/option.directive.js +0 -1
- package/src/lib/form/listbox/option.directive.js.map +1 -1
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.d.ts.map +1 -1
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.js +0 -1
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.js.map +1 -1
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.d.ts.map +1 -1
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.js +0 -1
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.js.map +1 -1
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.d.ts.map +1 -1
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.js +0 -1
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.js.map +1 -1
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.d.ts.map +1 -1
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.js +0 -2
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.js.map +1 -1
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.d.ts.map +1 -1
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.js +0 -1
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.js.map +1 -1
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts.map +1 -1
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js +0 -1
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js.map +1 -1
- package/src/lib/form/multi-select/tng-multi-select.d.ts.map +1 -1
- package/src/lib/form/multi-select/tng-multi-select.js +0 -1
- package/src/lib/form/multi-select/tng-multi-select.js.map +1 -1
- package/src/lib/form/multi-select/tng-multi-select.listbox.d.ts.map +1 -1
- package/src/lib/form/multi-select/tng-multi-select.listbox.js +0 -2
- package/src/lib/form/multi-select/tng-multi-select.listbox.js.map +1 -1
- package/src/lib/form/multiselect/tng-multiselect.d.ts.map +1 -1
- package/src/lib/form/multiselect/tng-multiselect.js +0 -1
- package/src/lib/form/multiselect/tng-multiselect.js.map +1 -1
- package/src/lib/form/radio/tng-radio.d.ts.map +1 -1
- package/src/lib/form/radio/tng-radio.js +0 -1
- package/src/lib/form/radio/tng-radio.js.map +1 -1
- package/src/lib/form/select/tng-select.d.ts.map +1 -1
- package/src/lib/form/select/tng-select.js +0 -1
- package/src/lib/form/select/tng-select.js.map +1 -1
- package/src/lib/form/select/tng-select.listbox.d.ts.map +1 -1
- package/src/lib/form/select/tng-select.listbox.js +0 -2
- package/src/lib/form/select/tng-select.listbox.js.map +1 -1
- package/src/lib/form/slider/tng-slider.d.ts.map +1 -1
- package/src/lib/form/slider/tng-slider.js +0 -1
- package/src/lib/form/slider/tng-slider.js.map +1 -1
- package/src/lib/form/switch/tng-switch.d.ts.map +1 -1
- package/src/lib/form/switch/tng-switch.js +0 -1
- package/src/lib/form/switch/tng-switch.js.map +1 -1
- package/src/lib/form/textarea/tng-textarea.d.ts.map +1 -1
- package/src/lib/form/textarea/tng-textarea.js +0 -1
- package/src/lib/form/textarea/tng-textarea.js.map +1 -1
- package/src/lib/form/toggle/tng-toggle.d.ts.map +1 -1
- package/src/lib/form/toggle/tng-toggle.js +0 -1
- package/src/lib/form/toggle/tng-toggle.js.map +1 -1
- package/src/lib/form/toggle-group/tng-toggle-group.d.ts.map +1 -1
- package/src/lib/form/toggle-group/tng-toggle-group.js +0 -1
- package/src/lib/form/toggle-group/tng-toggle-group.js.map +1 -1
- package/src/lib/layout/accordion/tng-accordion.d.ts.map +1 -1
- package/src/lib/layout/accordion/tng-accordion.js +0 -4
- package/src/lib/layout/accordion/tng-accordion.js.map +1 -1
- package/src/lib/layout/bottom-sheet/tng-bottom-sheet.d.ts.map +1 -1
- package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js +0 -1
- package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js.map +1 -1
- package/src/lib/layout/card/tng-card.d.ts.map +1 -1
- package/src/lib/layout/card/tng-card.js +0 -10
- package/src/lib/layout/card/tng-card.js.map +1 -1
- package/src/lib/layout/collapsible/tng-collapsible.d.ts.map +1 -1
- package/src/lib/layout/collapsible/tng-collapsible.js +0 -3
- package/src/lib/layout/collapsible/tng-collapsible.js.map +1 -1
- package/src/lib/layout/drawer/tng-drawer.d.ts.map +1 -1
- package/src/lib/layout/drawer/tng-drawer.js +0 -6
- package/src/lib/layout/drawer/tng-drawer.js.map +1 -1
- package/src/lib/layout/grid/__tests__/tng-grid.test-harness.d.ts +32 -0
- package/src/lib/layout/grid/__tests__/tng-grid.test-harness.d.ts.map +1 -0
- package/src/lib/layout/grid/__tests__/tng-grid.test-harness.js +312 -0
- package/src/lib/layout/grid/__tests__/tng-grid.test-harness.js.map +1 -0
- package/src/lib/layout/grid/tng-grid.d.ts +144 -2
- package/src/lib/layout/grid/tng-grid.d.ts.map +1 -1
- package/src/lib/layout/grid/tng-grid.js +669 -3
- package/src/lib/layout/grid/tng-grid.js.map +1 -1
- package/src/lib/layout/separator/tng-separator.d.ts.map +1 -1
- package/src/lib/layout/separator/tng-separator.js +0 -1
- package/src/lib/layout/separator/tng-separator.js.map +1 -1
- package/src/lib/layout/stepper/tng-stepper.d.ts.map +1 -1
- package/src/lib/layout/stepper/tng-stepper.js +0 -1
- package/src/lib/layout/stepper/tng-stepper.js.map +1 -1
- package/src/lib/layout/tree/__tests__/tng-tree.test-harness.d.ts.map +1 -1
- package/src/lib/layout/tree/__tests__/tng-tree.test-harness.js +0 -1
- package/src/lib/layout/tree/__tests__/tng-tree.test-harness.js.map +1 -1
- package/src/lib/layout/tree/tng-tree-group.d.ts.map +1 -1
- package/src/lib/layout/tree/tng-tree-group.js +0 -1
- package/src/lib/layout/tree/tng-tree-group.js.map +1 -1
- package/src/lib/layout/tree/tng-tree-indicator.d.ts.map +1 -1
- package/src/lib/layout/tree/tng-tree-indicator.js +0 -1
- package/src/lib/layout/tree/tng-tree-indicator.js.map +1 -1
- package/src/lib/layout/tree/tng-tree-item.d.ts.map +1 -1
- package/src/lib/layout/tree/tng-tree-item.js +0 -1
- package/src/lib/layout/tree/tng-tree-item.js.map +1 -1
- package/src/lib/layout/tree/tng-tree.d.ts.map +1 -1
- package/src/lib/layout/tree/tng-tree.js +0 -1
- package/src/lib/layout/tree/tng-tree.js.map +1 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb.d.ts.map +1 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb.js +0 -5
- package/src/lib/navigation/breadcrumb/tng-breadcrumb.js.map +1 -1
- package/src/lib/navigation/context-menu/tng-context-menu.d.ts.map +1 -1
- package/src/lib/navigation/context-menu/tng-context-menu.js +0 -2
- package/src/lib/navigation/context-menu/tng-context-menu.js.map +1 -1
- package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.d.ts.map +1 -1
- package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js +0 -1
- package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js.map +1 -1
- package/src/lib/navigation/menu/tng-menu.d.ts.map +1 -1
- package/src/lib/navigation/menu/tng-menu.js +0 -6
- package/src/lib/navigation/menu/tng-menu.js.map +1 -1
- package/src/lib/navigation/menubar/tng-menubar.d.ts.map +1 -1
- package/src/lib/navigation/menubar/tng-menubar.js +0 -2
- package/src/lib/navigation/menubar/tng-menubar.js.map +1 -1
- package/src/lib/navigation/navigation-menu/tng-navigation-menu.d.ts.map +1 -1
- package/src/lib/navigation/navigation-menu/tng-navigation-menu.js +0 -1
- package/src/lib/navigation/navigation-menu/tng-navigation-menu.js.map +1 -1
- package/src/lib/navigation/tabs/tng-tabs.d.ts +13 -6
- package/src/lib/navigation/tabs/tng-tabs.d.ts.map +1 -1
- package/src/lib/navigation/tabs/tng-tabs.js +77 -41
- package/src/lib/navigation/tabs/tng-tabs.js.map +1 -1
- package/src/lib/navigation/toolbar/tng-toolbar.d.ts.map +1 -1
- package/src/lib/navigation/toolbar/tng-toolbar.js +0 -1
- package/src/lib/navigation/toolbar/tng-toolbar.js.map +1 -1
- package/src/lib/overlay/dialog/tng-dialog.d.ts.map +1 -1
- package/src/lib/overlay/dialog/tng-dialog.js +0 -9
- package/src/lib/overlay/dialog/tng-dialog.js.map +1 -1
- package/src/lib/overlay/popover/tng-popover.d.ts.map +1 -1
- package/src/lib/overlay/popover/tng-popover.js +0 -4
- package/src/lib/overlay/popover/tng-popover.js.map +1 -1
- package/src/lib/overlay/tooltip/tng-tooltip.d.ts.map +1 -1
- package/src/lib/overlay/tooltip/tng-tooltip.js +0 -3
- package/src/lib/overlay/tooltip/tng-tooltip.js.map +1 -1
- package/src/lib/utility/avatar/tng-avatar.d.ts.map +1 -1
- package/src/lib/utility/avatar/tng-avatar.js +0 -3
- package/src/lib/utility/avatar/tng-avatar.js.map +1 -1
- package/src/lib/utility/badge/tng-badge.d.ts.map +1 -1
- package/src/lib/utility/badge/tng-badge.js +0 -1
- package/src/lib/utility/badge/tng-badge.js.map +1 -1
- package/src/lib/utility/code-block/tng-code-block.d.ts.map +1 -1
- package/src/lib/utility/code-block/tng-code-block.js +0 -5
- package/src/lib/utility/code-block/tng-code-block.js.map +1 -1
- package/src/lib/utility/copy/tng-copy.d.ts.map +1 -1
- package/src/lib/utility/copy/tng-copy.js +0 -1
- package/src/lib/utility/copy/tng-copy.js.map +1 -1
- package/src/lib/utility/press/tng-press.d.ts.map +1 -1
- package/src/lib/utility/press/tng-press.js +0 -1
- package/src/lib/utility/press/tng-press.js.map +1 -1
- package/src/lib/utility/tag/tng-tag.d.ts.map +1 -1
- package/src/lib/utility/tag/tng-tag.js +0 -3
- package/src/lib/utility/tag/tng-tag.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-toggle-group.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/toggle-group/tng-toggle-group.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Directive,\n HostBinding,\n OnInit,\n booleanAttribute,\n input,\n output,\n signal,\n} from '@angular/core';\n\ntype TngToggleGroupSelectionMode = 'multiple' | 'single';\n\nfunction coerceSelectionMode(value: unknown): TngToggleGroupSelectionMode {\n return value === 'single' ? 'single' : 'multiple';\n}\n\nfunction normalizeStringValue(value: string | null | undefined): string | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nfunction normalizeStringArray(value: readonly string[] | null | undefined): readonly string[] {\n if (!Array.isArray(value) || value.length === 0) {\n return [];\n }\n\n const normalized: string[] = [];\n for (const item of value) {\n const normalizedItem = normalizeStringValue(item);\n if (normalizedItem === null || normalized.includes(normalizedItem)) {\n continue;\n }\n\n normalized.push(normalizedItem);\n }\n\n return normalized;\n}\n\n@Directive({\n selector: '[tngToggleGroup]',\n exportAs: 'tngToggleGroup',\n standalone: true,\n})\nexport class TngToggleGroup implements OnInit {\n private readonly internalSingleValue = signal<string | null>(null);\n private readonly internalMultipleValues = signal<readonly string[]>([]);\n\n public readonly ariaLabel = input<string | null>(null);\n public readonly ariaLabelledby = input<string | null>(null);\n public readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n public readonly selectionMode = input<TngToggleGroupSelectionMode, unknown>('multiple', {\n transform: coerceSelectionMode,\n });\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly value = input<string | null | undefined>(undefined);\n public readonly values = input<readonly string[] | undefined>(undefined);\n public readonly defaultValue = input<string | null>(null);\n public readonly defaultValues = input<readonly string[]>([]);\n\n public readonly valueChange = output<string | null>();\n public readonly valuesChange = output<readonly string[]>();\n\n public ngOnInit(): void {\n this.internalSingleValue.set(normalizeStringValue(this.defaultValue()));\n this.internalMultipleValues.set(normalizeStringArray(this.defaultValues()));\n }\n\n public isGroupDisabled(): boolean {\n return this.disabled();\n }\n\n public isItemSelected(itemValue: string): boolean {\n if (this.selectionMode() === 'single') {\n return this.resolveSingleValue() === itemValue;\n }\n\n return this.resolveMultipleValues().includes(itemValue);\n }\n\n public toggleItem(itemValue: string): boolean {\n if (this.disabled()) {\n return this.isItemSelected(itemValue);\n }\n\n if (this.selectionMode() === 'single') {\n const currentValue = this.resolveSingleValue();\n const nextValue = currentValue === itemValue ? null : itemValue;\n\n if (!this.isSingleControlled()) {\n this.internalSingleValue.set(nextValue);\n }\n\n if (nextValue !== currentValue) {\n this.valueChange.emit(nextValue);\n }\n\n return nextValue === itemValue;\n }\n\n const currentValues = this.resolveMultipleValues();\n const isSelected = currentValues.includes(itemValue);\n const nextValues = isSelected\n ? currentValues.filter((value) => value !== itemValue)\n : [...currentValues, itemValue];\n\n if (!this.isMultipleControlled()) {\n this.internalMultipleValues.set(nextValues);\n }\n\n if (nextValues.length !== currentValues.length || !isSelected) {\n this.valuesChange.emit(nextValues);\n }\n\n return !isSelected;\n }\n\n private isSingleControlled(): boolean {\n return this.value() !== undefined;\n }\n\n private isMultipleControlled(): boolean {\n return this.values() !== undefined;\n }\n\n private resolveSingleValue(): string | null {\n if (this.isSingleControlled()) {\n return normalizeStringValue(this.value() ?? null);\n }\n\n return this.internalSingleValue();\n }\n\n private resolveMultipleValues(): readonly string[] {\n if (this.isMultipleControlled()) {\n return normalizeStringArray(this.values());\n }\n\n return this.internalMultipleValues();\n }\n\n @HostBinding('attr.aria-label')\n protected get ariaLabelAttr(): string | null {\n return normalizeStringValue(this.ariaLabel());\n }\n\n @HostBinding('attr.aria-labelledby')\n protected get ariaLabelledbyAttr(): string | null {\n return normalizeStringValue(this.ariaLabelledby());\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabledAttr(): 'true' | null {\n return this.disabled() ? 'true' : null;\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.data-orientation')\n protected get dataOrientationAttr(): 'horizontal' | 'vertical' {\n return this.orientation();\n }\n\n @HostBinding('attr.data-selection-mode')\n protected get dataSelectionModeAttr(): TngToggleGroupSelectionMode {\n return this.selectionMode();\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'toggle-group' as const;\n\n @HostBinding('attr.role')\n protected readonly roleAttr = 'group' as const;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"tng-toggle-group.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/toggle-group/tng-toggle-group.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Directive,\n HostBinding,\n OnInit,\n booleanAttribute,\n input,\n output,\n signal,\n} from '@angular/core';\n\ntype TngToggleGroupSelectionMode = 'multiple' | 'single';\n\nfunction coerceSelectionMode(value: unknown): TngToggleGroupSelectionMode {\n return value === 'single' ? 'single' : 'multiple';\n}\n\nfunction normalizeStringValue(value: string | null | undefined): string | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nfunction normalizeStringArray(value: readonly string[] | null | undefined): readonly string[] {\n if (!Array.isArray(value) || value.length === 0) {\n return [];\n }\n\n const normalized: string[] = [];\n for (const item of value) {\n const normalizedItem = normalizeStringValue(item);\n if (normalizedItem === null || normalized.includes(normalizedItem)) {\n continue;\n }\n\n normalized.push(normalizedItem);\n }\n\n return normalized;\n}\n\n@Directive({\n selector: '[tngToggleGroup]',\n exportAs: 'tngToggleGroup',\n})\nexport class TngToggleGroup implements OnInit {\n private readonly internalSingleValue = signal<string | null>(null);\n private readonly internalMultipleValues = signal<readonly string[]>([]);\n\n public readonly ariaLabel = input<string | null>(null);\n public readonly ariaLabelledby = input<string | null>(null);\n public readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n public readonly selectionMode = input<TngToggleGroupSelectionMode, unknown>('multiple', {\n transform: coerceSelectionMode,\n });\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly value = input<string | null | undefined>(undefined);\n public readonly values = input<readonly string[] | undefined>(undefined);\n public readonly defaultValue = input<string | null>(null);\n public readonly defaultValues = input<readonly string[]>([]);\n\n public readonly valueChange = output<string | null>();\n public readonly valuesChange = output<readonly string[]>();\n\n public ngOnInit(): void {\n this.internalSingleValue.set(normalizeStringValue(this.defaultValue()));\n this.internalMultipleValues.set(normalizeStringArray(this.defaultValues()));\n }\n\n public isGroupDisabled(): boolean {\n return this.disabled();\n }\n\n public isItemSelected(itemValue: string): boolean {\n if (this.selectionMode() === 'single') {\n return this.resolveSingleValue() === itemValue;\n }\n\n return this.resolveMultipleValues().includes(itemValue);\n }\n\n public toggleItem(itemValue: string): boolean {\n if (this.disabled()) {\n return this.isItemSelected(itemValue);\n }\n\n if (this.selectionMode() === 'single') {\n const currentValue = this.resolveSingleValue();\n const nextValue = currentValue === itemValue ? null : itemValue;\n\n if (!this.isSingleControlled()) {\n this.internalSingleValue.set(nextValue);\n }\n\n if (nextValue !== currentValue) {\n this.valueChange.emit(nextValue);\n }\n\n return nextValue === itemValue;\n }\n\n const currentValues = this.resolveMultipleValues();\n const isSelected = currentValues.includes(itemValue);\n const nextValues = isSelected\n ? currentValues.filter((value) => value !== itemValue)\n : [...currentValues, itemValue];\n\n if (!this.isMultipleControlled()) {\n this.internalMultipleValues.set(nextValues);\n }\n\n if (nextValues.length !== currentValues.length || !isSelected) {\n this.valuesChange.emit(nextValues);\n }\n\n return !isSelected;\n }\n\n private isSingleControlled(): boolean {\n return this.value() !== undefined;\n }\n\n private isMultipleControlled(): boolean {\n return this.values() !== undefined;\n }\n\n private resolveSingleValue(): string | null {\n if (this.isSingleControlled()) {\n return normalizeStringValue(this.value() ?? null);\n }\n\n return this.internalSingleValue();\n }\n\n private resolveMultipleValues(): readonly string[] {\n if (this.isMultipleControlled()) {\n return normalizeStringArray(this.values());\n }\n\n return this.internalMultipleValues();\n }\n\n @HostBinding('attr.aria-label')\n protected get ariaLabelAttr(): string | null {\n return normalizeStringValue(this.ariaLabel());\n }\n\n @HostBinding('attr.aria-labelledby')\n protected get ariaLabelledbyAttr(): string | null {\n return normalizeStringValue(this.ariaLabelledby());\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabledAttr(): 'true' | null {\n return this.disabled() ? 'true' : null;\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.data-orientation')\n protected get dataOrientationAttr(): 'horizontal' | 'vertical' {\n return this.orientation();\n }\n\n @HostBinding('attr.data-selection-mode')\n protected get dataSelectionModeAttr(): TngToggleGroupSelectionMode {\n return this.selectionMode();\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'toggle-group' as const;\n\n @HostBinding('attr.role')\n protected readonly roleAttr = 'group' as const;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-accordion.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/accordion/tng-accordion.ts"],"names":[],"mappings":";AAWA,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,CAAC;AACrD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;AAChD,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,UAAU,GAAG,cAAc,CAAC;AAEhF,MAAM,MAAM,+BAA+B,GAAG,QAAQ,CAAC;IACrD,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC7C,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACrC,OAAO,EAAE,yBAAyB,CAAC;CACpC,CAAC,CAAC;AA8HH,
|
|
1
|
+
{"version":3,"file":"tng-accordion.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/accordion/tng-accordion.ts"],"names":[],"mappings":";AAWA,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,CAAC;AACrD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;AAChD,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,UAAU,GAAG,cAAc,CAAC;AAEhF,MAAM,MAAM,+BAA+B,GAAG,QAAQ,CAAC;IACrD,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC7C,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACrC,OAAO,EAAE,yBAAyB,CAAC;CACpC,CAAC,CAAC;AA8HH,qBAIa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;IACrD,OAAO,CAAC,kBAAkB,CAAgC;IAC1D,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,qBAAqB,CAAoC;IACjE,OAAO,CAAC,kBAAkB,CAAS;IAEnC,QAAQ,CAAC,IAAI,8EAEV;IACH,QAAQ,CAAC,KAAK,iIAKZ;IACF,QAAQ,CAAC,YAAY,iIAKnB;IACF,QAAQ,CAAC,WAAW,qEAEjB;IACH,QAAQ,CAAC,QAAQ,qEAEd;IACH,QAAQ,CAAC,IAAI,qEAEV;IACH,QAAQ,CAAC,IAAI,qEAEV;IACH,QAAQ,CAAC,SAAS,qEAEf;IAEH,QAAQ,CAAC,WAAW,oGAAqE;IACzF,QAAQ,CAAC,YAAY,yEAA0C;IAC/D,QAAQ,CAAC,cAAc;eAlLhB,iBAAiB;kBACd,OAAO;wBACD,SAAS,iBAAiB,EAAE;gBACpC,SAAS,iBAAiB,EAAE;iBAC3B,yBAAyB;QA8KkC;IACpE,QAAQ,CAAC,SAAS,8DAA+B;IACjD,QAAQ,CAAC,MAAM,8DAA+B;IAC9C,QAAQ,CAAC,UAAU,8DAA+B;IAClD,QAAQ,CAAC,MAAM,8DAA+B;IAG9C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,WAAW,CAAU;IAGnD,SAAS,KAAK,QAAQ,IAAI,gBAAgB,CAEzC;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,OAAO,CAE7C;IAED,SAAS,IAAI,IAAI;IAKjB,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAmBnD,WAAW,IAAI,IAAI;IAInB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAK1C,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAkB5C,iBAAiB,IAAI,IAAI;IAIzB,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO;IAI/C,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO;IAI/C,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM;IAalD,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAQ9C,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAI9C,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI;IAqBpE,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO;IAyBrE,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO;IAiB/C,IAAI,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAIpC,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAIrC,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAKtC,iBAAiB,IAAI,SAAS,iBAAiB,EAAE;IAOjD,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,aAAa;IAiDrB,OAAO,CAAC,oBAAoB;IAoC5B,OAAO,CAAC,uBAAuB;IAoB/B,OAAO,CAAC,SAAS;IA4CjB,OAAO,CAAC,mBAAmB;IAgC3B,OAAO,CAAC,2BAA2B;IA4BnC,OAAO,CAAC,uCAAuC;IAsB/C,OAAO,CAAC,4BAA4B;IAkBpC,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,2BAA2B;IAkBnC,OAAO,CAAC,0BAA0B;IAclC,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,+BAA+B;IAOvC,OAAO,CAAC,oBAAoB;IA+B5B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,2BAA2B;IAsBnC,cAAc,IAAI,WAAW;yCA1oBlB,YAAY;2CAAZ,YAAY;CA6oBxB;AAED,qBAIa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwD;IAC7E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwC;IAC1E,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,YAAY,CAAS;IAE7B,QAAQ,CAAC,KAAK,2FAEX;IACH,QAAQ,CAAC,QAAQ,qEAEd;IAGH,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,gBAAgB,CAAU;IAGxD,SAAS,KAAK,SAAS,IAAI,MAAM,GAAG,QAAQ,CAE3C;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,OAAO,CAE7C;IAED,QAAQ,IAAI,IAAI;IAIhB,SAAS,IAAI,IAAI;IAIjB,WAAW,IAAI,IAAI;IAInB,cAAc,IAAI,WAAW;IAI7B,oBAAoB,IAAI,MAAM;IAI9B,QAAQ,IAAI,iBAAiB;IAI7B,YAAY,IAAI,YAAY,GAAG,IAAI;IAInC,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAInD,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAMrD,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAI7C,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAM/C,YAAY,IAAI,IAAI;IAIpB,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,iBAAiB,IAAI,WAAW,GAAG,IAAI;IAIvC,UAAU,IAAI,MAAM,GAAG,IAAI;IAI3B,gBAAgB,IAAI,IAAI;IAIxB,eAAe,IAAI,OAAO;yCAjGf,gBAAgB;2CAAhB,gBAAgB;CAoG5B;AAED,qBAIa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4D;IACjF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAC4C;IAG9E,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,mBAAmB,CAAU;IAG3D,SAAS,KAAK,MAAM,IAAI,MAAM,CAE7B;IAGD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAG5C,SAAS,KAAK,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAExC;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,CAOnC;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,OAAO,CAM7C;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,IAAI,CAE1C;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,IAAI,CAM1C;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAMtC;IAGD,SAAS,KAAK,SAAS,IAAI,MAAM,GAAG,QAAQ,CAM3C;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,OAAO,CAM7C;IAED,QAAQ,IAAI,IAAI;IAIhB,WAAW,IAAI,IAAI;IAInB,YAAY,IAAI,MAAM;IAItB,SAAS,IAAI,IAAI;IAIjB,cAAc,IAAI,WAAW;IAI7B,OAAO,CAAC,gBAAgB;IAUxB,SAAS,CAAC,OAAO,IAAI,IAAI;IASzB,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAe1C,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;yCAxIpC,mBAAmB;2CAAnB,mBAAmB;CA+I/B;AAED,qBAIa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4D;IACjF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6E;IAG7G,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,iBAAiB,CAAU;IAGzD,SAAS,KAAK,MAAM,IAAI,MAAM,CAE7B;IAGD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAG5C,SAAS,KAAK,cAAc,IAAI,MAAM,GAAG,IAAI,CAE5C;IAGD,SAAS,KAAK,UAAU,IAAI,EAAE,GAAG,IAAI,CAYpC;IAGD,SAAS,KAAK,SAAS,IAAI,MAAM,GAAG,QAAQ,CAM3C;IAGD,SAAS,KAAK,WAAW,IAAI,MAAM,GAAG,OAAO,CAM5C;IAED,QAAQ,IAAI,IAAI;IAIhB,SAAS,IAAI,IAAI;IAMjB,WAAW,IAAI,IAAI;IAInB,UAAU,IAAI,MAAM;IAIpB,OAAO,CAAC,cAAc;yCAxEX,iBAAiB;2CAAjB,iBAAiB;CAgF7B"}
|
|
@@ -605,7 +605,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
605
605
|
args: [{
|
|
606
606
|
selector: '[tngAccordion]',
|
|
607
607
|
exportAs: 'tngAccordion',
|
|
608
|
-
standalone: true,
|
|
609
608
|
}]
|
|
610
609
|
}], propDecorators: { type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], defaultValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValue", required: false }] }], collapsible: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsible", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], loop: [{ type: i0.Input, args: [{ isSignal: true, alias: "loop", required: false }] }], lazy: [{ type: i0.Input, args: [{ isSignal: true, alias: "lazy", required: false }] }], keepAlive: [{ type: i0.Input, args: [{ isSignal: true, alias: "keepAlive", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], valuesChange: [{ type: i0.Output, args: ["valuesChange"] }], expandedChange: [{ type: i0.Output, args: ["expandedChange"] }], openStart: [{ type: i0.Output, args: ["openStart"] }], opened: [{ type: i0.Output, args: ["opened"] }], closeStart: [{ type: i0.Output, args: ["closeStart"] }], closed: [{ type: i0.Output, args: ["closed"] }], dataSlot: [{
|
|
611
610
|
type: HostBinding,
|
|
@@ -700,7 +699,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
700
699
|
args: [{
|
|
701
700
|
selector: '[tngAccordionItem]',
|
|
702
701
|
exportAs: 'tngAccordionItem',
|
|
703
|
-
standalone: true,
|
|
704
702
|
}]
|
|
705
703
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], dataSlot: [{
|
|
706
704
|
type: HostBinding,
|
|
@@ -817,7 +815,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
817
815
|
args: [{
|
|
818
816
|
selector: '[tngAccordionTrigger]',
|
|
819
817
|
exportAs: 'tngAccordionTrigger',
|
|
820
|
-
standalone: true,
|
|
821
818
|
}]
|
|
822
819
|
}], propDecorators: { dataSlot: [{
|
|
823
820
|
type: HostBinding,
|
|
@@ -926,7 +923,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
926
923
|
args: [{
|
|
927
924
|
selector: '[tngAccordionPanel]',
|
|
928
925
|
exportAs: 'tngAccordionPanel',
|
|
929
|
-
standalone: true,
|
|
930
926
|
}]
|
|
931
927
|
}], propDecorators: { dataSlot: [{
|
|
932
928
|
type: HostBinding,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-accordion.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/accordion/tng-accordion.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { createTngIdFactory } from '@tailng-ui/cdk';\n\nexport type TngAccordionType = 'single' | 'multiple';\nexport type TngAccordionValue = string | number;\nexport type TngAccordionTriggerSource = 'pointer' | 'keyboard' | 'programmatic';\n\nexport type TngAccordionExpandedChangeEvent = Readonly<{\n value: TngAccordionValue;\n expanded: boolean;\n previousValues: readonly TngAccordionValue[];\n values: readonly TngAccordionValue[];\n trigger: TngAccordionTriggerSource;\n}>;\n\ntype TngAccordionNavigationAction = 'next' | 'prev' | 'first' | 'last';\n\nconst createAccordionItemValue = createTngIdFactory('tng-accordion-item');\nconst createAccordionTriggerId = createTngIdFactory('tng-accordion-trigger');\nconst createAccordionPanelId = createTngIdFactory('tng-accordion-panel');\n\nlet nextAccordionItemRegistrationOrder = 0;\n\nfunction normalizeBooleanInput(value: unknown): boolean {\n if (typeof value === 'boolean') {\n return value;\n }\n\n if (typeof value === 'string') {\n const normalized = value.trim().toLowerCase();\n if (normalized === '' || normalized === 'true') {\n return true;\n }\n\n if (normalized === 'false') {\n return false;\n }\n }\n\n return false;\n}\n\nfunction normalizeAccordionType(value: unknown): TngAccordionType {\n return value === 'multiple' ? 'multiple' : 'single';\n}\n\nfunction normalizeAccordionValue(value: unknown): TngAccordionValue {\n if (typeof value === 'number') {\n return value;\n }\n\n if (typeof value === 'string') {\n return value;\n }\n\n return String(value);\n}\n\nfunction normalizeOptionalAccordionValue(value: unknown): TngAccordionValue | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n return normalizeAccordionValue(value);\n}\n\nfunction normalizeAccordionValueInput(\n value: unknown,\n): TngAccordionValue | readonly TngAccordionValue[] | null | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n if (value === null) {\n return null;\n }\n\n if (Array.isArray(value)) {\n return value.map((entry) => normalizeAccordionValue(entry));\n }\n\n return normalizeAccordionValue(value);\n}\n\nfunction compareAccordionItemsByDomPosition(a: TngAccordionItem, b: TngAccordionItem): number {\n const aElement = a.getHostElement();\n const bElement = b.getHostElement();\n\n if (aElement === bElement) {\n return a.getRegistrationOrder() - b.getRegistrationOrder();\n }\n\n const relativePosition = aElement.compareDocumentPosition(bElement);\n if (relativePosition & Node.DOCUMENT_POSITION_FOLLOWING) {\n return -1;\n }\n\n if (relativePosition & Node.DOCUMENT_POSITION_PRECEDING) {\n return 1;\n }\n\n return a.getRegistrationOrder() - b.getRegistrationOrder();\n}\n\nfunction toSet(values: readonly TngAccordionValue[]): Set<TngAccordionValue> {\n return new Set(values);\n}\n\nfunction setsEqual(a: ReadonlySet<TngAccordionValue>, b: ReadonlySet<TngAccordionValue>): boolean {\n if (a.size !== b.size) {\n return false;\n }\n\n for (const value of a) {\n if (!b.has(value)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction compareElementsByDomPosition(a: HTMLElement, b: HTMLElement): number {\n if (a === b) {\n return 0;\n }\n\n const relativePosition = a.compareDocumentPosition(b);\n if (relativePosition & Node.DOCUMENT_POSITION_FOLLOWING) {\n return -1;\n }\n\n if (relativePosition & Node.DOCUMENT_POSITION_PRECEDING) {\n return 1;\n }\n\n return 0;\n}\n\n@Directive({\n selector: '[tngAccordion]',\n exportAs: 'tngAccordion',\n standalone: true,\n})\nexport class TngAccordion {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly items = new Set<TngAccordionItem>();\n private uncontrolledValues = new Set<TngAccordionValue>();\n private focusedValue: TngAccordionValue | null = null;\n private initialized = false;\n private lastType: TngAccordionType = 'single';\n private defaultValuesSnapshot: readonly TngAccordionValue[] = [];\n private hasUserInteraction = false;\n\n readonly type = input<TngAccordionType, unknown>('single', {\n transform: normalizeAccordionType,\n });\n readonly value = input<TngAccordionValue | readonly TngAccordionValue[] | null | undefined, unknown>(\n undefined,\n {\n transform: normalizeAccordionValueInput,\n },\n );\n readonly defaultValue = input<TngAccordionValue | readonly TngAccordionValue[] | null | undefined, unknown>(\n undefined,\n {\n transform: normalizeAccordionValueInput,\n },\n );\n readonly collapsible = input<boolean, unknown>(true, {\n transform: normalizeBooleanInput,\n });\n readonly disabled = input<boolean, unknown>(false, {\n transform: normalizeBooleanInput,\n });\n readonly loop = input<boolean, unknown>(true, {\n transform: normalizeBooleanInput,\n });\n readonly lazy = input<boolean, unknown>(false, {\n transform: normalizeBooleanInput,\n });\n readonly keepAlive = input<boolean, unknown>(true, {\n transform: normalizeBooleanInput,\n });\n\n readonly valueChange = output<TngAccordionValue | readonly TngAccordionValue[] | null>();\n readonly valuesChange = output<readonly TngAccordionValue[]>();\n readonly expandedChange = output<TngAccordionExpandedChangeEvent>();\n readonly openStart = output<TngAccordionValue>();\n readonly opened = output<TngAccordionValue>();\n readonly closeStart = output<TngAccordionValue>();\n readonly closed = output<TngAccordionValue>();\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'accordion' as const;\n\n @HostBinding('attr.data-type')\n protected get dataType(): TngAccordionType {\n return this.type();\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): 'true' | 'false' {\n return this.disabled() ? 'true' : 'false';\n }\n\n ngDoCheck(): void {\n this.syncStateFromInputs('check');\n }\n\n @HostListener('keydown', ['$event'])\n protected onHostKeydown(event: KeyboardEvent): void {\n if (event.key !== 'Tab' || event.altKey || event.ctrlKey || event.metaKey) {\n return;\n }\n\n const eventTarget = event.target;\n if (!(eventTarget instanceof HTMLElement)) {\n return;\n }\n\n if (!this.getHostElement().contains(eventTarget)) {\n return;\n }\n\n if (this.onTabWithinAccordion(eventTarget, event.shiftKey)) {\n event.preventDefault();\n }\n }\n\n ngOnDestroy(): void {\n this.items.clear();\n }\n\n registerItem(item: TngAccordionItem): void {\n this.items.add(item);\n this.syncStateFromInputs('registration');\n }\n\n unregisterItem(item: TngAccordionItem): void {\n const wasExpanded = this.getEffectiveValueSet().has(item.getValue());\n const removedValue = item.getValue();\n this.items.delete(item);\n\n if (wasExpanded && !this.isControlled()) {\n const next = new Set(this.uncontrolledValues);\n next.delete(removedValue);\n this.uncontrolledValues = next;\n }\n\n if (this.focusedValue !== null && this.focusedValue === removedValue) {\n this.focusedValue = null;\n }\n\n this.syncStateFromInputs('check');\n }\n\n notifyItemMutated(): void {\n this.syncStateFromInputs('check');\n }\n\n isItemExpanded(item: TngAccordionItem): boolean {\n return this.getEffectiveValueSet().has(item.getValue());\n }\n\n isItemDisabled(item: TngAccordionItem): boolean {\n return this.disabled() || item.disabled();\n }\n\n getTriggerTabIndex(item: TngAccordionItem): string {\n if (this.isItemDisabled(item)) {\n return '-1';\n }\n\n const focusableItem = this.resolveCurrentFocusableItem();\n if (focusableItem === null) {\n return '-1';\n }\n\n return focusableItem === item ? '0' : '-1';\n }\n\n onTriggerFocused(item: TngAccordionItem): void {\n if (this.isItemDisabled(item)) {\n return;\n }\n\n this.focusedValue = item.getValue();\n }\n\n onTriggerClicked(item: TngAccordionItem): void {\n this.requestToggle(item, 'pointer');\n }\n\n onTriggerKeydown(item: TngAccordionItem, event: KeyboardEvent): void {\n if (this.isItemDisabled(item) || event.altKey || event.ctrlKey || event.metaKey) {\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ' || event.key === 'Spacebar') {\n event.preventDefault();\n this.requestToggle(item, 'keyboard');\n return;\n }\n\n const action = this.resolveNavigationAction(event.key);\n if (action === null) {\n return;\n }\n\n if (this.moveFocus(item, action)) {\n event.preventDefault();\n }\n }\n\n onTabWithinAccordion(source: HTMLElement, shiftKey: boolean): boolean {\n if (!this.shouldHandleCustomTabNavigation()) {\n return false;\n }\n\n const sequence = this.getCustomTabSequence();\n if (sequence.length === 0) {\n return false;\n }\n\n const currentIndex = this.findSequenceIndex(sequence, source);\n if (currentIndex < 0) {\n return false;\n }\n\n const nextIndex = shiftKey ? currentIndex - 1 : currentIndex + 1;\n const target = sequence[nextIndex] ?? null;\n if (target === null) {\n return false;\n }\n\n target.focus();\n return true;\n }\n\n isPanelMounted(item: TngAccordionItem): boolean {\n if (this.isItemExpanded(item)) {\n item.markExpandedOnce();\n return true;\n }\n\n if (!this.keepAlive()) {\n return false;\n }\n\n if (!this.lazy()) {\n return true;\n }\n\n return item.hasExpandedOnce();\n }\n\n open(value: TngAccordionValue): void {\n this.requestSetExpanded(value, true, 'programmatic');\n }\n\n close(value: TngAccordionValue): void {\n this.requestSetExpanded(value, false, 'programmatic');\n }\n\n toggle(value: TngAccordionValue): void {\n const expanded = this.getEffectiveValueSet().has(value);\n this.requestSetExpanded(value, !expanded, 'programmatic');\n }\n\n getExpandedValues(): readonly TngAccordionValue[] {\n const effectiveSet = this.getEffectiveValueSet();\n return this.getOrderedItems()\n .map((item) => item.getValue())\n .filter((value) => effectiveSet.has(value));\n }\n\n private requestSetExpanded(value: TngAccordionValue, nextExpanded: boolean, trigger: TngAccordionTriggerSource): void {\n const item = this.getOrderedItems().find((candidate) => candidate.getValue() === value) ?? null;\n if (item === null) {\n return;\n }\n\n if (this.isItemExpanded(item) === nextExpanded) {\n return;\n }\n\n this.requestToggle(item, trigger, nextExpanded);\n }\n\n private requestToggle(\n item: TngAccordionItem,\n trigger: TngAccordionTriggerSource,\n forcedExpanded?: boolean,\n ): void {\n if (this.isItemDisabled(item)) {\n return;\n }\n\n const previous = this.getEffectiveValueSet();\n const next = new Set(previous);\n const itemValue = item.getValue();\n const currentlyExpanded = previous.has(itemValue);\n const shouldExpand = forcedExpanded ?? !currentlyExpanded;\n\n if (this.type() === 'single') {\n if (!shouldExpand && !this.collapsible()) {\n return;\n }\n\n next.clear();\n if (shouldExpand) {\n next.add(itemValue);\n }\n } else {\n if (shouldExpand) {\n next.add(itemValue);\n } else {\n next.delete(itemValue);\n }\n }\n\n if (setsEqual(previous, next)) {\n return;\n }\n\n if (!this.isControlled()) {\n this.uncontrolledValues = next;\n }\n\n this.hasUserInteraction = true;\n this.focusedValue = itemValue;\n const previousValues = this.mapSetToOrderedValues(previous);\n const nextValues = this.mapSetToOrderedValues(next);\n const expanded = next.has(itemValue);\n this.emitSelectionOutputs(itemValue, expanded, previousValues, nextValues, trigger);\n this.syncStateFromInputs('check');\n }\n\n private emitSelectionOutputs(\n value: TngAccordionValue,\n expanded: boolean,\n previousValues: readonly TngAccordionValue[],\n values: readonly TngAccordionValue[],\n trigger: TngAccordionTriggerSource,\n ): void {\n if (expanded) {\n this.openStart.emit(value);\n } else {\n this.closeStart.emit(value);\n }\n\n if (this.type() === 'single') {\n const nextSingle = values[0] ?? null;\n this.valueChange.emit(nextSingle);\n } else {\n this.valueChange.emit(values);\n this.valuesChange.emit(values);\n }\n\n this.expandedChange.emit({\n value,\n expanded,\n previousValues,\n values,\n trigger,\n });\n\n if (expanded) {\n this.opened.emit(value);\n } else {\n this.closed.emit(value);\n }\n }\n\n private resolveNavigationAction(key: string): TngAccordionNavigationAction | null {\n if (key === 'ArrowDown') {\n return 'next';\n }\n\n if (key === 'ArrowUp') {\n return 'prev';\n }\n\n if (key === 'Home') {\n return 'first';\n }\n\n if (key === 'End') {\n return 'last';\n }\n\n return null;\n }\n\n private moveFocus(item: TngAccordionItem, action: TngAccordionNavigationAction): boolean {\n const enabledItems = this.getEnabledItems();\n if (enabledItems.length === 0) {\n return false;\n }\n\n const currentIndex = enabledItems.indexOf(item);\n if (currentIndex < 0) {\n return false;\n }\n\n let nextIndex = currentIndex;\n if (action === 'first') {\n nextIndex = 0;\n } else if (action === 'last') {\n nextIndex = enabledItems.length - 1;\n } else if (action === 'next') {\n if (currentIndex + 1 < enabledItems.length) {\n nextIndex = currentIndex + 1;\n } else if (this.loop()) {\n nextIndex = 0;\n } else {\n return false;\n }\n } else if (action === 'prev') {\n if (currentIndex - 1 >= 0) {\n nextIndex = currentIndex - 1;\n } else if (this.loop()) {\n nextIndex = enabledItems.length - 1;\n } else {\n return false;\n }\n }\n\n const target = enabledItems[nextIndex] ?? null;\n if (target === null || target === item) {\n return false;\n }\n\n target.focusTrigger();\n this.focusedValue = target.getValue();\n return true;\n }\n\n private syncStateFromInputs(source: 'check' | 'registration'): void {\n if (!this.initialized) {\n this.initialized = this.initializeUncontrolledState(source);\n if (!this.initialized) {\n return;\n }\n }\n\n const nextType = this.type();\n if (nextType !== this.lastType) {\n this.lastType = nextType;\n if (!this.isControlled() && nextType === 'single' && this.uncontrolledValues.size > 1) {\n const first = this.mapSetToOrderedValues(this.uncontrolledValues)[0];\n this.uncontrolledValues = first === undefined ? new Set() : new Set([first]);\n }\n }\n\n if (!this.isControlled()) {\n this.uncontrolledValues = this.normalizeSetForCurrentItems(this.uncontrolledValues);\n\n if (!this.hasUserInteraction && this.defaultValuesSnapshot.length > 0) {\n const normalizedDefaultValues = this.normalizeSetForCurrentItems(toSet(this.defaultValuesSnapshot));\n if (!setsEqual(this.uncontrolledValues, normalizedDefaultValues)) {\n this.uncontrolledValues = normalizedDefaultValues;\n }\n }\n }\n\n this.ensureSingleModeNonCollapsibleSelection();\n this.ensureFocusedValueStillValid();\n }\n\n private initializeUncontrolledState(source: 'check' | 'registration'): boolean {\n if (this.isControlled()) {\n this.uncontrolledValues = new Set();\n return true;\n }\n\n if (this.items.size === 0) {\n this.uncontrolledValues = new Set();\n return false;\n }\n\n const defaultInput = this.defaultValue();\n const initialValues = this.normalizeValueInputToArray(defaultInput);\n this.defaultValuesSnapshot = initialValues;\n this.uncontrolledValues = this.normalizeSetForCurrentItems(toSet(initialValues));\n\n if (initialValues.length === 0) {\n return this.items.size > 0 || source === 'check';\n }\n\n const requiredValuesCount = new Set(initialValues).size;\n if (this.uncontrolledValues.size >= requiredValuesCount) {\n return true;\n }\n\n return source === 'check';\n }\n\n private ensureSingleModeNonCollapsibleSelection(): void {\n if (this.type() !== 'single' || this.collapsible()) {\n return;\n }\n\n const effectiveValues = this.getEffectiveValueSet();\n if (effectiveValues.size > 0) {\n return;\n }\n\n const firstEnabled = this.getEnabledItems()[0];\n if (firstEnabled === undefined) {\n return;\n }\n\n if (this.isControlled()) {\n return;\n }\n\n this.uncontrolledValues = new Set([firstEnabled.getValue()]);\n }\n\n private ensureFocusedValueStillValid(): void {\n const enabledItems = this.getEnabledItems();\n if (enabledItems.length === 0) {\n this.focusedValue = null;\n return;\n }\n\n if (this.focusedValue !== null && enabledItems.some((item) => item.getValue() === this.focusedValue)) {\n return;\n }\n\n const expandedSet = this.getEffectiveValueSet();\n const expandedItem =\n enabledItems.find((item) => expandedSet.has(item.getValue())) ??\n null;\n this.focusedValue = expandedItem?.getValue() ?? enabledItems[0]?.getValue() ?? null;\n }\n\n private isControlled(): boolean {\n return this.value() !== undefined;\n }\n\n private getEffectiveValueSet(): ReadonlySet<TngAccordionValue> {\n if (!this.isControlled()) {\n return this.uncontrolledValues;\n }\n\n const controlledValues = toSet(this.normalizeValueInputToArray(this.value()));\n return this.normalizeSetForCurrentItems(controlledValues);\n }\n\n private normalizeSetForCurrentItems(values: ReadonlySet<TngAccordionValue>): Set<TngAccordionValue> {\n const availableValues = new Set(this.getOrderedItems().map((item) => item.getValue()));\n const normalized = new Set<TngAccordionValue>();\n\n for (const value of values) {\n if (availableValues.has(value)) {\n normalized.add(value);\n }\n }\n\n if (this.type() === 'single') {\n const first = this.mapSetToOrderedValues(normalized)[0];\n return first === undefined ? new Set() : new Set([first]);\n }\n\n return normalized;\n }\n\n private normalizeValueInputToArray(\n value: TngAccordionValue | readonly TngAccordionValue[] | null | undefined,\n ): readonly TngAccordionValue[] {\n if (value === undefined || value === null) {\n return [];\n }\n\n if (Array.isArray(value)) {\n return [...value];\n }\n\n return [value as TngAccordionValue];\n }\n\n private mapSetToOrderedValues(values: ReadonlySet<TngAccordionValue>): readonly TngAccordionValue[] {\n return this.getOrderedItems()\n .map((item) => item.getValue())\n .filter((value) => values.has(value));\n }\n\n private getOrderedItems(): readonly TngAccordionItem[] {\n return Array.from(this.items).sort(compareAccordionItemsByDomPosition);\n }\n\n private getEnabledItems(): readonly TngAccordionItem[] {\n return this.getOrderedItems().filter((item) => !this.isItemDisabled(item));\n }\n\n private shouldHandleCustomTabNavigation(): boolean {\n return this.getEnabledItems().some((item) => {\n const triggerElement = item.getTriggerElement();\n return triggerElement !== null && !(triggerElement instanceof HTMLButtonElement);\n });\n }\n\n private getCustomTabSequence(): readonly HTMLElement[] {\n const host = this.getHostElement();\n const sequence = new Set<HTMLElement>();\n\n for (const item of this.getEnabledItems()) {\n const triggerElement = item.getTriggerElement();\n if (triggerElement === null || this.isInHiddenSubtree(triggerElement)) {\n continue;\n }\n sequence.add(triggerElement);\n }\n\n const candidates = host.querySelectorAll<HTMLElement>(\n 'a[href],area[href],button,input,select,textarea,[tabindex],[contenteditable=\"true\"]',\n );\n\n for (let index = 0; index < candidates.length; index += 1) {\n const candidate = candidates.item(index);\n if (candidate === null) {\n continue;\n }\n\n if (!host.contains(candidate) || this.isInHiddenSubtree(candidate) || !this.isNaturallyTabbable(candidate)) {\n continue;\n }\n sequence.add(candidate);\n }\n\n return Array.from(sequence).sort(compareElementsByDomPosition);\n }\n\n private findSequenceIndex(sequence: readonly HTMLElement[], source: HTMLElement): number {\n const directIndex = sequence.indexOf(source);\n if (directIndex >= 0) {\n return directIndex;\n }\n\n return sequence.findIndex((candidate) => candidate.contains(source));\n }\n\n private isInHiddenSubtree(element: HTMLElement): boolean {\n return element.closest('[hidden]') !== null;\n }\n\n private isNaturallyTabbable(element: HTMLElement): boolean {\n if (element.hasAttribute('disabled')) {\n return false;\n }\n\n const tabIndexAttr = element.getAttribute('tabindex');\n if (tabIndexAttr !== null) {\n const parsed = Number(tabIndexAttr);\n return Number.isFinite(parsed) && parsed >= 0;\n }\n\n if (element instanceof HTMLAnchorElement || element instanceof HTMLAreaElement) {\n return element.hasAttribute('href');\n }\n\n return (\n element instanceof HTMLButtonElement ||\n element instanceof HTMLInputElement ||\n element instanceof HTMLSelectElement ||\n element instanceof HTMLTextAreaElement\n );\n }\n\n private resolveCurrentFocusableItem(): TngAccordionItem | null {\n const enabledItems = this.getEnabledItems();\n if (enabledItems.length === 0) {\n return null;\n }\n\n if (this.focusedValue !== null) {\n const focusedItem = enabledItems.find((item) => item.getValue() === this.focusedValue) ?? null;\n if (focusedItem !== null) {\n return focusedItem;\n }\n }\n\n const expandedValues = this.getEffectiveValueSet();\n const expandedItem = enabledItems.find((item) => expandedValues.has(item.getValue())) ?? null;\n if (expandedItem !== null) {\n return expandedItem;\n }\n\n return enabledItems[0] ?? null;\n }\n\n getHostElement(): HTMLElement {\n return this.hostRef.nativeElement;\n }\n}\n\n@Directive({\n selector: '[tngAccordionItem]',\n exportAs: 'tngAccordionItem',\n standalone: true,\n})\nexport class TngAccordionItem {\n private readonly root = inject(TngAccordion, { optional: true, host: true });\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly fallbackValue = createAccordionItemValue();\n private readonly registrationOrder = nextAccordionItemRegistrationOrder++;\n private trigger: TngAccordionTrigger | null = null;\n private panel: TngAccordionPanel | null = null;\n private expandedOnce = false;\n\n readonly value = input<TngAccordionValue | undefined, unknown>(undefined, {\n transform: normalizeOptionalAccordionValue,\n });\n readonly disabled = input<boolean, unknown>(false, {\n transform: normalizeBooleanInput,\n });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'accordion-item' as const;\n\n @HostBinding('attr.data-state')\n protected get dataState(): 'open' | 'closed' {\n return this.root?.isItemExpanded(this) ? 'open' : 'closed';\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): 'true' | 'false' {\n return this.disabled() ? 'true' : 'false';\n }\n\n ngOnInit(): void {\n this.root?.registerItem(this);\n }\n\n ngDoCheck(): void {\n this.root?.notifyItemMutated();\n }\n\n ngOnDestroy(): void {\n this.root?.unregisterItem(this);\n }\n\n getHostElement(): HTMLElement {\n return this.hostRef.nativeElement;\n }\n\n getRegistrationOrder(): number {\n return this.registrationOrder;\n }\n\n getValue(): TngAccordionValue {\n return this.value() ?? this.fallbackValue;\n }\n\n getAccordion(): TngAccordion | null {\n return this.root ?? null;\n }\n\n registerTrigger(trigger: TngAccordionTrigger): void {\n this.trigger = trigger;\n }\n\n unregisterTrigger(trigger: TngAccordionTrigger): void {\n if (this.trigger === trigger) {\n this.trigger = null;\n }\n }\n\n registerPanel(panel: TngAccordionPanel): void {\n this.panel = panel;\n }\n\n unregisterPanel(panel: TngAccordionPanel): void {\n if (this.panel === panel) {\n this.panel = null;\n }\n }\n\n focusTrigger(): void {\n this.trigger?.focusSelf();\n }\n\n getTriggerId(): string | null {\n return this.trigger?.getTriggerId() ?? null;\n }\n\n getTriggerElement(): HTMLElement | null {\n return this.trigger?.getHostElement() ?? null;\n }\n\n getPanelId(): string | null {\n return this.panel?.getPanelId() ?? null;\n }\n\n markExpandedOnce(): void {\n this.expandedOnce = true;\n }\n\n hasExpandedOnce(): boolean {\n return this.expandedOnce;\n }\n}\n\n@Directive({\n selector: '[tngAccordionTrigger]',\n exportAs: 'tngAccordionTrigger',\n standalone: true,\n})\nexport class TngAccordionTrigger {\n private readonly item = inject(TngAccordionItem, { optional: true, host: true });\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly fallbackTriggerId =\n this.hostRef.nativeElement.getAttribute('id') ?? createAccordionTriggerId();\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'accordion-trigger' as const;\n\n @HostBinding('attr.id')\n protected get idAttr(): string {\n return this.resolveTriggerId();\n }\n\n @HostBinding('attr.role')\n protected readonly role = 'button' as const;\n\n @HostBinding('attr.type')\n protected get typeAttr(): 'button' | null {\n return this.hostRef.nativeElement instanceof HTMLButtonElement ? 'button' : null;\n }\n\n @HostBinding('attr.tabindex')\n protected get tabIndexAttr(): string {\n if (this.item === null) {\n return this.hostRef.nativeElement.getAttribute('tabindex') ?? '0';\n }\n\n const root = this.item.getAccordion();\n return root?.getTriggerTabIndex(this.item) ?? '0';\n }\n\n @HostBinding('attr.aria-expanded')\n protected get ariaExpanded(): 'true' | 'false' {\n if (this.item === null) {\n return 'false';\n }\n\n return this.item.getAccordion()?.isItemExpanded(this.item) ? 'true' : 'false';\n }\n\n @HostBinding('attr.aria-controls')\n protected get ariaControls(): string | null {\n return this.item?.getPanelId() ?? null;\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabled(): 'true' | null {\n if (this.item === null) {\n return null;\n }\n\n return this.item.getAccordion()?.isItemDisabled(this.item) ? 'true' : null;\n }\n\n @HostBinding('attr.disabled')\n protected get disabledAttr(): '' | null {\n if (!(this.hostRef.nativeElement instanceof HTMLButtonElement) || this.item === null) {\n return null;\n }\n\n return this.item.getAccordion()?.isItemDisabled(this.item) ? '' : null;\n }\n\n @HostBinding('attr.data-state')\n protected get dataState(): 'open' | 'closed' {\n if (this.item === null) {\n return 'closed';\n }\n\n return this.item.getAccordion()?.isItemExpanded(this.item) ? 'open' : 'closed';\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): 'true' | 'false' {\n if (this.item === null) {\n return 'false';\n }\n\n return this.item.getAccordion()?.isItemDisabled(this.item) ? 'true' : 'false';\n }\n\n ngOnInit(): void {\n this.item?.registerTrigger(this);\n }\n\n ngOnDestroy(): void {\n this.item?.unregisterTrigger(this);\n }\n\n getTriggerId(): string {\n return this.resolveTriggerId();\n }\n\n focusSelf(): void {\n this.hostRef.nativeElement.focus();\n }\n\n getHostElement(): HTMLElement {\n return this.hostRef.nativeElement;\n }\n\n private resolveTriggerId(): string {\n const explicitId = this.hostRef.nativeElement.getAttribute('id');\n if (explicitId !== null && explicitId.length > 0) {\n return explicitId;\n }\n\n return this.fallbackTriggerId;\n }\n\n @HostListener('focus')\n protected onFocus(): void {\n if (this.item === null) {\n return;\n }\n\n this.item.getAccordion()?.onTriggerFocused(this.item);\n }\n\n @HostListener('click', ['$event'])\n protected onClick(event: MouseEvent): void {\n if (this.item === null) {\n return;\n }\n\n const accordion = this.item.getAccordion();\n if (accordion?.isItemDisabled(this.item)) {\n event.preventDefault();\n return;\n }\n\n accordion?.onTriggerClicked(this.item);\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n if (this.item === null) {\n return;\n }\n\n this.item.getAccordion()?.onTriggerKeydown(this.item, event);\n }\n}\n\n@Directive({\n selector: '[tngAccordionPanel]',\n exportAs: 'tngAccordionPanel',\n standalone: true,\n})\nexport class TngAccordionPanel {\n private readonly item = inject(TngAccordionItem, { optional: true, host: true });\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly fallbackPanelId = this.hostRef.nativeElement.getAttribute('id') ?? createAccordionPanelId();\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'accordion-panel' as const;\n\n @HostBinding('attr.id')\n protected get idAttr(): string {\n return this.resolvePanelId();\n }\n\n @HostBinding('attr.role')\n protected readonly role = 'region' as const;\n\n @HostBinding('attr.aria-labelledby')\n protected get ariaLabelledBy(): string | null {\n return this.item?.getTriggerId() ?? null;\n }\n\n @HostBinding('attr.hidden')\n protected get hiddenAttr(): '' | null {\n if (this.item === null) {\n return '';\n }\n\n const accordion = this.item.getAccordion();\n if (accordion === null) {\n return '';\n }\n\n const isVisible = accordion.isItemExpanded(this.item) && accordion.isPanelMounted(this.item);\n return isVisible ? null : '';\n }\n\n @HostBinding('attr.data-state')\n protected get dataState(): 'open' | 'closed' {\n if (this.item === null) {\n return 'closed';\n }\n\n return this.item.getAccordion()?.isItemExpanded(this.item) ? 'open' : 'closed';\n }\n\n @HostBinding('attr.data-mounted')\n protected get dataMounted(): 'true' | 'false' {\n if (this.item === null) {\n return 'false';\n }\n\n return this.item.getAccordion()?.isPanelMounted(this.item) ? 'true' : 'false';\n }\n\n ngOnInit(): void {\n this.item?.registerPanel(this);\n }\n\n ngDoCheck(): void {\n if (this.item?.getAccordion()?.isItemExpanded(this.item)) {\n this.item.markExpandedOnce();\n }\n }\n\n ngOnDestroy(): void {\n this.item?.unregisterPanel(this);\n }\n\n getPanelId(): string {\n return this.resolvePanelId();\n }\n\n private resolvePanelId(): string {\n const explicitId = this.hostRef.nativeElement.getAttribute('id');\n if (explicitId !== null && explicitId.length > 0) {\n return explicitId;\n }\n\n return this.fallbackPanelId;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"tng-accordion.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/accordion/tng-accordion.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { createTngIdFactory } from '@tailng-ui/cdk';\n\nexport type TngAccordionType = 'single' | 'multiple';\nexport type TngAccordionValue = string | number;\nexport type TngAccordionTriggerSource = 'pointer' | 'keyboard' | 'programmatic';\n\nexport type TngAccordionExpandedChangeEvent = Readonly<{\n value: TngAccordionValue;\n expanded: boolean;\n previousValues: readonly TngAccordionValue[];\n values: readonly TngAccordionValue[];\n trigger: TngAccordionTriggerSource;\n}>;\n\ntype TngAccordionNavigationAction = 'next' | 'prev' | 'first' | 'last';\n\nconst createAccordionItemValue = createTngIdFactory('tng-accordion-item');\nconst createAccordionTriggerId = createTngIdFactory('tng-accordion-trigger');\nconst createAccordionPanelId = createTngIdFactory('tng-accordion-panel');\n\nlet nextAccordionItemRegistrationOrder = 0;\n\nfunction normalizeBooleanInput(value: unknown): boolean {\n if (typeof value === 'boolean') {\n return value;\n }\n\n if (typeof value === 'string') {\n const normalized = value.trim().toLowerCase();\n if (normalized === '' || normalized === 'true') {\n return true;\n }\n\n if (normalized === 'false') {\n return false;\n }\n }\n\n return false;\n}\n\nfunction normalizeAccordionType(value: unknown): TngAccordionType {\n return value === 'multiple' ? 'multiple' : 'single';\n}\n\nfunction normalizeAccordionValue(value: unknown): TngAccordionValue {\n if (typeof value === 'number') {\n return value;\n }\n\n if (typeof value === 'string') {\n return value;\n }\n\n return String(value);\n}\n\nfunction normalizeOptionalAccordionValue(value: unknown): TngAccordionValue | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n return normalizeAccordionValue(value);\n}\n\nfunction normalizeAccordionValueInput(\n value: unknown,\n): TngAccordionValue | readonly TngAccordionValue[] | null | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n if (value === null) {\n return null;\n }\n\n if (Array.isArray(value)) {\n return value.map((entry) => normalizeAccordionValue(entry));\n }\n\n return normalizeAccordionValue(value);\n}\n\nfunction compareAccordionItemsByDomPosition(a: TngAccordionItem, b: TngAccordionItem): number {\n const aElement = a.getHostElement();\n const bElement = b.getHostElement();\n\n if (aElement === bElement) {\n return a.getRegistrationOrder() - b.getRegistrationOrder();\n }\n\n const relativePosition = aElement.compareDocumentPosition(bElement);\n if (relativePosition & Node.DOCUMENT_POSITION_FOLLOWING) {\n return -1;\n }\n\n if (relativePosition & Node.DOCUMENT_POSITION_PRECEDING) {\n return 1;\n }\n\n return a.getRegistrationOrder() - b.getRegistrationOrder();\n}\n\nfunction toSet(values: readonly TngAccordionValue[]): Set<TngAccordionValue> {\n return new Set(values);\n}\n\nfunction setsEqual(a: ReadonlySet<TngAccordionValue>, b: ReadonlySet<TngAccordionValue>): boolean {\n if (a.size !== b.size) {\n return false;\n }\n\n for (const value of a) {\n if (!b.has(value)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction compareElementsByDomPosition(a: HTMLElement, b: HTMLElement): number {\n if (a === b) {\n return 0;\n }\n\n const relativePosition = a.compareDocumentPosition(b);\n if (relativePosition & Node.DOCUMENT_POSITION_FOLLOWING) {\n return -1;\n }\n\n if (relativePosition & Node.DOCUMENT_POSITION_PRECEDING) {\n return 1;\n }\n\n return 0;\n}\n\n@Directive({\n selector: '[tngAccordion]',\n exportAs: 'tngAccordion',\n})\nexport class TngAccordion {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly items = new Set<TngAccordionItem>();\n private uncontrolledValues = new Set<TngAccordionValue>();\n private focusedValue: TngAccordionValue | null = null;\n private initialized = false;\n private lastType: TngAccordionType = 'single';\n private defaultValuesSnapshot: readonly TngAccordionValue[] = [];\n private hasUserInteraction = false;\n\n readonly type = input<TngAccordionType, unknown>('single', {\n transform: normalizeAccordionType,\n });\n readonly value = input<TngAccordionValue | readonly TngAccordionValue[] | null | undefined, unknown>(\n undefined,\n {\n transform: normalizeAccordionValueInput,\n },\n );\n readonly defaultValue = input<TngAccordionValue | readonly TngAccordionValue[] | null | undefined, unknown>(\n undefined,\n {\n transform: normalizeAccordionValueInput,\n },\n );\n readonly collapsible = input<boolean, unknown>(true, {\n transform: normalizeBooleanInput,\n });\n readonly disabled = input<boolean, unknown>(false, {\n transform: normalizeBooleanInput,\n });\n readonly loop = input<boolean, unknown>(true, {\n transform: normalizeBooleanInput,\n });\n readonly lazy = input<boolean, unknown>(false, {\n transform: normalizeBooleanInput,\n });\n readonly keepAlive = input<boolean, unknown>(true, {\n transform: normalizeBooleanInput,\n });\n\n readonly valueChange = output<TngAccordionValue | readonly TngAccordionValue[] | null>();\n readonly valuesChange = output<readonly TngAccordionValue[]>();\n readonly expandedChange = output<TngAccordionExpandedChangeEvent>();\n readonly openStart = output<TngAccordionValue>();\n readonly opened = output<TngAccordionValue>();\n readonly closeStart = output<TngAccordionValue>();\n readonly closed = output<TngAccordionValue>();\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'accordion' as const;\n\n @HostBinding('attr.data-type')\n protected get dataType(): TngAccordionType {\n return this.type();\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): 'true' | 'false' {\n return this.disabled() ? 'true' : 'false';\n }\n\n ngDoCheck(): void {\n this.syncStateFromInputs('check');\n }\n\n @HostListener('keydown', ['$event'])\n protected onHostKeydown(event: KeyboardEvent): void {\n if (event.key !== 'Tab' || event.altKey || event.ctrlKey || event.metaKey) {\n return;\n }\n\n const eventTarget = event.target;\n if (!(eventTarget instanceof HTMLElement)) {\n return;\n }\n\n if (!this.getHostElement().contains(eventTarget)) {\n return;\n }\n\n if (this.onTabWithinAccordion(eventTarget, event.shiftKey)) {\n event.preventDefault();\n }\n }\n\n ngOnDestroy(): void {\n this.items.clear();\n }\n\n registerItem(item: TngAccordionItem): void {\n this.items.add(item);\n this.syncStateFromInputs('registration');\n }\n\n unregisterItem(item: TngAccordionItem): void {\n const wasExpanded = this.getEffectiveValueSet().has(item.getValue());\n const removedValue = item.getValue();\n this.items.delete(item);\n\n if (wasExpanded && !this.isControlled()) {\n const next = new Set(this.uncontrolledValues);\n next.delete(removedValue);\n this.uncontrolledValues = next;\n }\n\n if (this.focusedValue !== null && this.focusedValue === removedValue) {\n this.focusedValue = null;\n }\n\n this.syncStateFromInputs('check');\n }\n\n notifyItemMutated(): void {\n this.syncStateFromInputs('check');\n }\n\n isItemExpanded(item: TngAccordionItem): boolean {\n return this.getEffectiveValueSet().has(item.getValue());\n }\n\n isItemDisabled(item: TngAccordionItem): boolean {\n return this.disabled() || item.disabled();\n }\n\n getTriggerTabIndex(item: TngAccordionItem): string {\n if (this.isItemDisabled(item)) {\n return '-1';\n }\n\n const focusableItem = this.resolveCurrentFocusableItem();\n if (focusableItem === null) {\n return '-1';\n }\n\n return focusableItem === item ? '0' : '-1';\n }\n\n onTriggerFocused(item: TngAccordionItem): void {\n if (this.isItemDisabled(item)) {\n return;\n }\n\n this.focusedValue = item.getValue();\n }\n\n onTriggerClicked(item: TngAccordionItem): void {\n this.requestToggle(item, 'pointer');\n }\n\n onTriggerKeydown(item: TngAccordionItem, event: KeyboardEvent): void {\n if (this.isItemDisabled(item) || event.altKey || event.ctrlKey || event.metaKey) {\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ' || event.key === 'Spacebar') {\n event.preventDefault();\n this.requestToggle(item, 'keyboard');\n return;\n }\n\n const action = this.resolveNavigationAction(event.key);\n if (action === null) {\n return;\n }\n\n if (this.moveFocus(item, action)) {\n event.preventDefault();\n }\n }\n\n onTabWithinAccordion(source: HTMLElement, shiftKey: boolean): boolean {\n if (!this.shouldHandleCustomTabNavigation()) {\n return false;\n }\n\n const sequence = this.getCustomTabSequence();\n if (sequence.length === 0) {\n return false;\n }\n\n const currentIndex = this.findSequenceIndex(sequence, source);\n if (currentIndex < 0) {\n return false;\n }\n\n const nextIndex = shiftKey ? currentIndex - 1 : currentIndex + 1;\n const target = sequence[nextIndex] ?? null;\n if (target === null) {\n return false;\n }\n\n target.focus();\n return true;\n }\n\n isPanelMounted(item: TngAccordionItem): boolean {\n if (this.isItemExpanded(item)) {\n item.markExpandedOnce();\n return true;\n }\n\n if (!this.keepAlive()) {\n return false;\n }\n\n if (!this.lazy()) {\n return true;\n }\n\n return item.hasExpandedOnce();\n }\n\n open(value: TngAccordionValue): void {\n this.requestSetExpanded(value, true, 'programmatic');\n }\n\n close(value: TngAccordionValue): void {\n this.requestSetExpanded(value, false, 'programmatic');\n }\n\n toggle(value: TngAccordionValue): void {\n const expanded = this.getEffectiveValueSet().has(value);\n this.requestSetExpanded(value, !expanded, 'programmatic');\n }\n\n getExpandedValues(): readonly TngAccordionValue[] {\n const effectiveSet = this.getEffectiveValueSet();\n return this.getOrderedItems()\n .map((item) => item.getValue())\n .filter((value) => effectiveSet.has(value));\n }\n\n private requestSetExpanded(value: TngAccordionValue, nextExpanded: boolean, trigger: TngAccordionTriggerSource): void {\n const item = this.getOrderedItems().find((candidate) => candidate.getValue() === value) ?? null;\n if (item === null) {\n return;\n }\n\n if (this.isItemExpanded(item) === nextExpanded) {\n return;\n }\n\n this.requestToggle(item, trigger, nextExpanded);\n }\n\n private requestToggle(\n item: TngAccordionItem,\n trigger: TngAccordionTriggerSource,\n forcedExpanded?: boolean,\n ): void {\n if (this.isItemDisabled(item)) {\n return;\n }\n\n const previous = this.getEffectiveValueSet();\n const next = new Set(previous);\n const itemValue = item.getValue();\n const currentlyExpanded = previous.has(itemValue);\n const shouldExpand = forcedExpanded ?? !currentlyExpanded;\n\n if (this.type() === 'single') {\n if (!shouldExpand && !this.collapsible()) {\n return;\n }\n\n next.clear();\n if (shouldExpand) {\n next.add(itemValue);\n }\n } else {\n if (shouldExpand) {\n next.add(itemValue);\n } else {\n next.delete(itemValue);\n }\n }\n\n if (setsEqual(previous, next)) {\n return;\n }\n\n if (!this.isControlled()) {\n this.uncontrolledValues = next;\n }\n\n this.hasUserInteraction = true;\n this.focusedValue = itemValue;\n const previousValues = this.mapSetToOrderedValues(previous);\n const nextValues = this.mapSetToOrderedValues(next);\n const expanded = next.has(itemValue);\n this.emitSelectionOutputs(itemValue, expanded, previousValues, nextValues, trigger);\n this.syncStateFromInputs('check');\n }\n\n private emitSelectionOutputs(\n value: TngAccordionValue,\n expanded: boolean,\n previousValues: readonly TngAccordionValue[],\n values: readonly TngAccordionValue[],\n trigger: TngAccordionTriggerSource,\n ): void {\n if (expanded) {\n this.openStart.emit(value);\n } else {\n this.closeStart.emit(value);\n }\n\n if (this.type() === 'single') {\n const nextSingle = values[0] ?? null;\n this.valueChange.emit(nextSingle);\n } else {\n this.valueChange.emit(values);\n this.valuesChange.emit(values);\n }\n\n this.expandedChange.emit({\n value,\n expanded,\n previousValues,\n values,\n trigger,\n });\n\n if (expanded) {\n this.opened.emit(value);\n } else {\n this.closed.emit(value);\n }\n }\n\n private resolveNavigationAction(key: string): TngAccordionNavigationAction | null {\n if (key === 'ArrowDown') {\n return 'next';\n }\n\n if (key === 'ArrowUp') {\n return 'prev';\n }\n\n if (key === 'Home') {\n return 'first';\n }\n\n if (key === 'End') {\n return 'last';\n }\n\n return null;\n }\n\n private moveFocus(item: TngAccordionItem, action: TngAccordionNavigationAction): boolean {\n const enabledItems = this.getEnabledItems();\n if (enabledItems.length === 0) {\n return false;\n }\n\n const currentIndex = enabledItems.indexOf(item);\n if (currentIndex < 0) {\n return false;\n }\n\n let nextIndex = currentIndex;\n if (action === 'first') {\n nextIndex = 0;\n } else if (action === 'last') {\n nextIndex = enabledItems.length - 1;\n } else if (action === 'next') {\n if (currentIndex + 1 < enabledItems.length) {\n nextIndex = currentIndex + 1;\n } else if (this.loop()) {\n nextIndex = 0;\n } else {\n return false;\n }\n } else if (action === 'prev') {\n if (currentIndex - 1 >= 0) {\n nextIndex = currentIndex - 1;\n } else if (this.loop()) {\n nextIndex = enabledItems.length - 1;\n } else {\n return false;\n }\n }\n\n const target = enabledItems[nextIndex] ?? null;\n if (target === null || target === item) {\n return false;\n }\n\n target.focusTrigger();\n this.focusedValue = target.getValue();\n return true;\n }\n\n private syncStateFromInputs(source: 'check' | 'registration'): void {\n if (!this.initialized) {\n this.initialized = this.initializeUncontrolledState(source);\n if (!this.initialized) {\n return;\n }\n }\n\n const nextType = this.type();\n if (nextType !== this.lastType) {\n this.lastType = nextType;\n if (!this.isControlled() && nextType === 'single' && this.uncontrolledValues.size > 1) {\n const first = this.mapSetToOrderedValues(this.uncontrolledValues)[0];\n this.uncontrolledValues = first === undefined ? new Set() : new Set([first]);\n }\n }\n\n if (!this.isControlled()) {\n this.uncontrolledValues = this.normalizeSetForCurrentItems(this.uncontrolledValues);\n\n if (!this.hasUserInteraction && this.defaultValuesSnapshot.length > 0) {\n const normalizedDefaultValues = this.normalizeSetForCurrentItems(toSet(this.defaultValuesSnapshot));\n if (!setsEqual(this.uncontrolledValues, normalizedDefaultValues)) {\n this.uncontrolledValues = normalizedDefaultValues;\n }\n }\n }\n\n this.ensureSingleModeNonCollapsibleSelection();\n this.ensureFocusedValueStillValid();\n }\n\n private initializeUncontrolledState(source: 'check' | 'registration'): boolean {\n if (this.isControlled()) {\n this.uncontrolledValues = new Set();\n return true;\n }\n\n if (this.items.size === 0) {\n this.uncontrolledValues = new Set();\n return false;\n }\n\n const defaultInput = this.defaultValue();\n const initialValues = this.normalizeValueInputToArray(defaultInput);\n this.defaultValuesSnapshot = initialValues;\n this.uncontrolledValues = this.normalizeSetForCurrentItems(toSet(initialValues));\n\n if (initialValues.length === 0) {\n return this.items.size > 0 || source === 'check';\n }\n\n const requiredValuesCount = new Set(initialValues).size;\n if (this.uncontrolledValues.size >= requiredValuesCount) {\n return true;\n }\n\n return source === 'check';\n }\n\n private ensureSingleModeNonCollapsibleSelection(): void {\n if (this.type() !== 'single' || this.collapsible()) {\n return;\n }\n\n const effectiveValues = this.getEffectiveValueSet();\n if (effectiveValues.size > 0) {\n return;\n }\n\n const firstEnabled = this.getEnabledItems()[0];\n if (firstEnabled === undefined) {\n return;\n }\n\n if (this.isControlled()) {\n return;\n }\n\n this.uncontrolledValues = new Set([firstEnabled.getValue()]);\n }\n\n private ensureFocusedValueStillValid(): void {\n const enabledItems = this.getEnabledItems();\n if (enabledItems.length === 0) {\n this.focusedValue = null;\n return;\n }\n\n if (this.focusedValue !== null && enabledItems.some((item) => item.getValue() === this.focusedValue)) {\n return;\n }\n\n const expandedSet = this.getEffectiveValueSet();\n const expandedItem =\n enabledItems.find((item) => expandedSet.has(item.getValue())) ??\n null;\n this.focusedValue = expandedItem?.getValue() ?? enabledItems[0]?.getValue() ?? null;\n }\n\n private isControlled(): boolean {\n return this.value() !== undefined;\n }\n\n private getEffectiveValueSet(): ReadonlySet<TngAccordionValue> {\n if (!this.isControlled()) {\n return this.uncontrolledValues;\n }\n\n const controlledValues = toSet(this.normalizeValueInputToArray(this.value()));\n return this.normalizeSetForCurrentItems(controlledValues);\n }\n\n private normalizeSetForCurrentItems(values: ReadonlySet<TngAccordionValue>): Set<TngAccordionValue> {\n const availableValues = new Set(this.getOrderedItems().map((item) => item.getValue()));\n const normalized = new Set<TngAccordionValue>();\n\n for (const value of values) {\n if (availableValues.has(value)) {\n normalized.add(value);\n }\n }\n\n if (this.type() === 'single') {\n const first = this.mapSetToOrderedValues(normalized)[0];\n return first === undefined ? new Set() : new Set([first]);\n }\n\n return normalized;\n }\n\n private normalizeValueInputToArray(\n value: TngAccordionValue | readonly TngAccordionValue[] | null | undefined,\n ): readonly TngAccordionValue[] {\n if (value === undefined || value === null) {\n return [];\n }\n\n if (Array.isArray(value)) {\n return [...value];\n }\n\n return [value as TngAccordionValue];\n }\n\n private mapSetToOrderedValues(values: ReadonlySet<TngAccordionValue>): readonly TngAccordionValue[] {\n return this.getOrderedItems()\n .map((item) => item.getValue())\n .filter((value) => values.has(value));\n }\n\n private getOrderedItems(): readonly TngAccordionItem[] {\n return Array.from(this.items).sort(compareAccordionItemsByDomPosition);\n }\n\n private getEnabledItems(): readonly TngAccordionItem[] {\n return this.getOrderedItems().filter((item) => !this.isItemDisabled(item));\n }\n\n private shouldHandleCustomTabNavigation(): boolean {\n return this.getEnabledItems().some((item) => {\n const triggerElement = item.getTriggerElement();\n return triggerElement !== null && !(triggerElement instanceof HTMLButtonElement);\n });\n }\n\n private getCustomTabSequence(): readonly HTMLElement[] {\n const host = this.getHostElement();\n const sequence = new Set<HTMLElement>();\n\n for (const item of this.getEnabledItems()) {\n const triggerElement = item.getTriggerElement();\n if (triggerElement === null || this.isInHiddenSubtree(triggerElement)) {\n continue;\n }\n sequence.add(triggerElement);\n }\n\n const candidates = host.querySelectorAll<HTMLElement>(\n 'a[href],area[href],button,input,select,textarea,[tabindex],[contenteditable=\"true\"]',\n );\n\n for (let index = 0; index < candidates.length; index += 1) {\n const candidate = candidates.item(index);\n if (candidate === null) {\n continue;\n }\n\n if (!host.contains(candidate) || this.isInHiddenSubtree(candidate) || !this.isNaturallyTabbable(candidate)) {\n continue;\n }\n sequence.add(candidate);\n }\n\n return Array.from(sequence).sort(compareElementsByDomPosition);\n }\n\n private findSequenceIndex(sequence: readonly HTMLElement[], source: HTMLElement): number {\n const directIndex = sequence.indexOf(source);\n if (directIndex >= 0) {\n return directIndex;\n }\n\n return sequence.findIndex((candidate) => candidate.contains(source));\n }\n\n private isInHiddenSubtree(element: HTMLElement): boolean {\n return element.closest('[hidden]') !== null;\n }\n\n private isNaturallyTabbable(element: HTMLElement): boolean {\n if (element.hasAttribute('disabled')) {\n return false;\n }\n\n const tabIndexAttr = element.getAttribute('tabindex');\n if (tabIndexAttr !== null) {\n const parsed = Number(tabIndexAttr);\n return Number.isFinite(parsed) && parsed >= 0;\n }\n\n if (element instanceof HTMLAnchorElement || element instanceof HTMLAreaElement) {\n return element.hasAttribute('href');\n }\n\n return (\n element instanceof HTMLButtonElement ||\n element instanceof HTMLInputElement ||\n element instanceof HTMLSelectElement ||\n element instanceof HTMLTextAreaElement\n );\n }\n\n private resolveCurrentFocusableItem(): TngAccordionItem | null {\n const enabledItems = this.getEnabledItems();\n if (enabledItems.length === 0) {\n return null;\n }\n\n if (this.focusedValue !== null) {\n const focusedItem = enabledItems.find((item) => item.getValue() === this.focusedValue) ?? null;\n if (focusedItem !== null) {\n return focusedItem;\n }\n }\n\n const expandedValues = this.getEffectiveValueSet();\n const expandedItem = enabledItems.find((item) => expandedValues.has(item.getValue())) ?? null;\n if (expandedItem !== null) {\n return expandedItem;\n }\n\n return enabledItems[0] ?? null;\n }\n\n getHostElement(): HTMLElement {\n return this.hostRef.nativeElement;\n }\n}\n\n@Directive({\n selector: '[tngAccordionItem]',\n exportAs: 'tngAccordionItem',\n})\nexport class TngAccordionItem {\n private readonly root = inject(TngAccordion, { optional: true, host: true });\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly fallbackValue = createAccordionItemValue();\n private readonly registrationOrder = nextAccordionItemRegistrationOrder++;\n private trigger: TngAccordionTrigger | null = null;\n private panel: TngAccordionPanel | null = null;\n private expandedOnce = false;\n\n readonly value = input<TngAccordionValue | undefined, unknown>(undefined, {\n transform: normalizeOptionalAccordionValue,\n });\n readonly disabled = input<boolean, unknown>(false, {\n transform: normalizeBooleanInput,\n });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'accordion-item' as const;\n\n @HostBinding('attr.data-state')\n protected get dataState(): 'open' | 'closed' {\n return this.root?.isItemExpanded(this) ? 'open' : 'closed';\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): 'true' | 'false' {\n return this.disabled() ? 'true' : 'false';\n }\n\n ngOnInit(): void {\n this.root?.registerItem(this);\n }\n\n ngDoCheck(): void {\n this.root?.notifyItemMutated();\n }\n\n ngOnDestroy(): void {\n this.root?.unregisterItem(this);\n }\n\n getHostElement(): HTMLElement {\n return this.hostRef.nativeElement;\n }\n\n getRegistrationOrder(): number {\n return this.registrationOrder;\n }\n\n getValue(): TngAccordionValue {\n return this.value() ?? this.fallbackValue;\n }\n\n getAccordion(): TngAccordion | null {\n return this.root ?? null;\n }\n\n registerTrigger(trigger: TngAccordionTrigger): void {\n this.trigger = trigger;\n }\n\n unregisterTrigger(trigger: TngAccordionTrigger): void {\n if (this.trigger === trigger) {\n this.trigger = null;\n }\n }\n\n registerPanel(panel: TngAccordionPanel): void {\n this.panel = panel;\n }\n\n unregisterPanel(panel: TngAccordionPanel): void {\n if (this.panel === panel) {\n this.panel = null;\n }\n }\n\n focusTrigger(): void {\n this.trigger?.focusSelf();\n }\n\n getTriggerId(): string | null {\n return this.trigger?.getTriggerId() ?? null;\n }\n\n getTriggerElement(): HTMLElement | null {\n return this.trigger?.getHostElement() ?? null;\n }\n\n getPanelId(): string | null {\n return this.panel?.getPanelId() ?? null;\n }\n\n markExpandedOnce(): void {\n this.expandedOnce = true;\n }\n\n hasExpandedOnce(): boolean {\n return this.expandedOnce;\n }\n}\n\n@Directive({\n selector: '[tngAccordionTrigger]',\n exportAs: 'tngAccordionTrigger',\n})\nexport class TngAccordionTrigger {\n private readonly item = inject(TngAccordionItem, { optional: true, host: true });\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly fallbackTriggerId =\n this.hostRef.nativeElement.getAttribute('id') ?? createAccordionTriggerId();\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'accordion-trigger' as const;\n\n @HostBinding('attr.id')\n protected get idAttr(): string {\n return this.resolveTriggerId();\n }\n\n @HostBinding('attr.role')\n protected readonly role = 'button' as const;\n\n @HostBinding('attr.type')\n protected get typeAttr(): 'button' | null {\n return this.hostRef.nativeElement instanceof HTMLButtonElement ? 'button' : null;\n }\n\n @HostBinding('attr.tabindex')\n protected get tabIndexAttr(): string {\n if (this.item === null) {\n return this.hostRef.nativeElement.getAttribute('tabindex') ?? '0';\n }\n\n const root = this.item.getAccordion();\n return root?.getTriggerTabIndex(this.item) ?? '0';\n }\n\n @HostBinding('attr.aria-expanded')\n protected get ariaExpanded(): 'true' | 'false' {\n if (this.item === null) {\n return 'false';\n }\n\n return this.item.getAccordion()?.isItemExpanded(this.item) ? 'true' : 'false';\n }\n\n @HostBinding('attr.aria-controls')\n protected get ariaControls(): string | null {\n return this.item?.getPanelId() ?? null;\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabled(): 'true' | null {\n if (this.item === null) {\n return null;\n }\n\n return this.item.getAccordion()?.isItemDisabled(this.item) ? 'true' : null;\n }\n\n @HostBinding('attr.disabled')\n protected get disabledAttr(): '' | null {\n if (!(this.hostRef.nativeElement instanceof HTMLButtonElement) || this.item === null) {\n return null;\n }\n\n return this.item.getAccordion()?.isItemDisabled(this.item) ? '' : null;\n }\n\n @HostBinding('attr.data-state')\n protected get dataState(): 'open' | 'closed' {\n if (this.item === null) {\n return 'closed';\n }\n\n return this.item.getAccordion()?.isItemExpanded(this.item) ? 'open' : 'closed';\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): 'true' | 'false' {\n if (this.item === null) {\n return 'false';\n }\n\n return this.item.getAccordion()?.isItemDisabled(this.item) ? 'true' : 'false';\n }\n\n ngOnInit(): void {\n this.item?.registerTrigger(this);\n }\n\n ngOnDestroy(): void {\n this.item?.unregisterTrigger(this);\n }\n\n getTriggerId(): string {\n return this.resolveTriggerId();\n }\n\n focusSelf(): void {\n this.hostRef.nativeElement.focus();\n }\n\n getHostElement(): HTMLElement {\n return this.hostRef.nativeElement;\n }\n\n private resolveTriggerId(): string {\n const explicitId = this.hostRef.nativeElement.getAttribute('id');\n if (explicitId !== null && explicitId.length > 0) {\n return explicitId;\n }\n\n return this.fallbackTriggerId;\n }\n\n @HostListener('focus')\n protected onFocus(): void {\n if (this.item === null) {\n return;\n }\n\n this.item.getAccordion()?.onTriggerFocused(this.item);\n }\n\n @HostListener('click', ['$event'])\n protected onClick(event: MouseEvent): void {\n if (this.item === null) {\n return;\n }\n\n const accordion = this.item.getAccordion();\n if (accordion?.isItemDisabled(this.item)) {\n event.preventDefault();\n return;\n }\n\n accordion?.onTriggerClicked(this.item);\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n if (this.item === null) {\n return;\n }\n\n this.item.getAccordion()?.onTriggerKeydown(this.item, event);\n }\n}\n\n@Directive({\n selector: '[tngAccordionPanel]',\n exportAs: 'tngAccordionPanel',\n})\nexport class TngAccordionPanel {\n private readonly item = inject(TngAccordionItem, { optional: true, host: true });\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly fallbackPanelId = this.hostRef.nativeElement.getAttribute('id') ?? createAccordionPanelId();\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'accordion-panel' as const;\n\n @HostBinding('attr.id')\n protected get idAttr(): string {\n return this.resolvePanelId();\n }\n\n @HostBinding('attr.role')\n protected readonly role = 'region' as const;\n\n @HostBinding('attr.aria-labelledby')\n protected get ariaLabelledBy(): string | null {\n return this.item?.getTriggerId() ?? null;\n }\n\n @HostBinding('attr.hidden')\n protected get hiddenAttr(): '' | null {\n if (this.item === null) {\n return '';\n }\n\n const accordion = this.item.getAccordion();\n if (accordion === null) {\n return '';\n }\n\n const isVisible = accordion.isItemExpanded(this.item) && accordion.isPanelMounted(this.item);\n return isVisible ? null : '';\n }\n\n @HostBinding('attr.data-state')\n protected get dataState(): 'open' | 'closed' {\n if (this.item === null) {\n return 'closed';\n }\n\n return this.item.getAccordion()?.isItemExpanded(this.item) ? 'open' : 'closed';\n }\n\n @HostBinding('attr.data-mounted')\n protected get dataMounted(): 'true' | 'false' {\n if (this.item === null) {\n return 'false';\n }\n\n return this.item.getAccordion()?.isPanelMounted(this.item) ? 'true' : 'false';\n }\n\n ngOnInit(): void {\n this.item?.registerPanel(this);\n }\n\n ngDoCheck(): void {\n if (this.item?.getAccordion()?.isItemExpanded(this.item)) {\n this.item.markExpandedOnce();\n }\n }\n\n ngOnDestroy(): void {\n this.item?.unregisterPanel(this);\n }\n\n getPanelId(): string {\n return this.resolvePanelId();\n }\n\n private resolvePanelId(): string {\n const explicitId = this.hostRef.nativeElement.getAttribute('id');\n if (explicitId !== null && explicitId.length > 0) {\n return explicitId;\n }\n\n return this.fallbackPanelId;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-bottom-sheet.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/bottom-sheet/tng-bottom-sheet.ts"],"names":[],"mappings":";AAEA,
|
|
1
|
+
{"version":3,"file":"tng-bottom-sheet.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/bottom-sheet/tng-bottom-sheet.ts"],"names":[],"mappings":";AAEA,qBAIa,cAAc;IAEzB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,cAAc,CAAU;yCAF3C,cAAc;2CAAd,cAAc;CAG1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-bottom-sheet.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/bottom-sheet/tng-bottom-sheet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;;
|
|
1
|
+
{"version":3,"file":"tng-bottom-sheet.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/bottom-sheet/tng-bottom-sheet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;;AAMvD,MAAM,OAAO,cAAc;IAEN,QAAQ,GAAG,cAAuB,CAAC;uGAF3C,cAAc;2FAAd,cAAc;;2FAAd,cAAc;kBAJ1B,SAAS;mBAAC;oBACT,QAAQ,EAAE,kBAAkB;oBAC5B,QAAQ,EAAE,gBAAgB;iBAC3B;;sBAEE,WAAW;uBAAC,gBAAgB","sourcesContent":["import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[tngBottomSheet]',\n exportAs: 'tngBottomSheet',\n})\nexport class TngBottomSheet {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'bottom-sheet' as const;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-card.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/card/tng-card.ts"],"names":[],"mappings":";AAEA,
|
|
1
|
+
{"version":3,"file":"tng-card.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/card/tng-card.ts"],"names":[],"mappings":";AAEA,qBAIa,OAAO;IAElB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,MAAM,CAAU;yCAFnC,OAAO;2CAAP,OAAO;CAGnB;AAED,qBAIa,aAAa;IAExB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,aAAa,CAAU;yCAF1C,aAAa;2CAAb,aAAa;CAGzB;AAED,qBAIa,YAAY;IAEvB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,YAAY,CAAU;yCAFzC,YAAY;2CAAZ,YAAY;CAGxB;AAED,qBAIa,kBAAkB;IAE7B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,kBAAkB,CAAU;yCAF/C,kBAAkB;2CAAlB,kBAAkB;CAG9B;AAED,qBAIa,cAAc;IAEzB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,cAAc,CAAU;yCAF3C,cAAc;2CAAd,cAAc;CAG1B;AAED,qBAIa,aAAa;IAExB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,aAAa,CAAU;yCAF1C,aAAa;2CAAb,aAAa;CAGzB;AAED,qBAIa,YAAY;IAEvB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,YAAY,CAAU;yCAFzC,YAAY;2CAAZ,YAAY;CAGxB;AAED,qBAIa,cAAc;IAEzB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,cAAc,CAAU;yCAF3C,cAAc;2CAAd,cAAc;CAG1B;AAED,qBAIa,cAAc;IAEzB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,cAAc,CAAU;yCAF3C,cAAc;2CAAd,cAAc;CAG1B;AAED,qBAIa,WAAW;IAEtB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,WAAW,CAAU;yCAFxC,WAAW;2CAAX,WAAW;CAGvB"}
|
|
@@ -10,7 +10,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
10
10
|
args: [{
|
|
11
11
|
selector: '[tngCard]',
|
|
12
12
|
exportAs: 'tngCard',
|
|
13
|
-
standalone: true,
|
|
14
13
|
}]
|
|
15
14
|
}], propDecorators: { dataSlot: [{
|
|
16
15
|
type: HostBinding,
|
|
@@ -26,7 +25,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
26
25
|
args: [{
|
|
27
26
|
selector: '[tngCardHeader]',
|
|
28
27
|
exportAs: 'tngCardHeader',
|
|
29
|
-
standalone: true,
|
|
30
28
|
}]
|
|
31
29
|
}], propDecorators: { dataSlot: [{
|
|
32
30
|
type: HostBinding,
|
|
@@ -42,7 +40,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
42
40
|
args: [{
|
|
43
41
|
selector: '[tngCardTitle]',
|
|
44
42
|
exportAs: 'tngCardTitle',
|
|
45
|
-
standalone: true,
|
|
46
43
|
}]
|
|
47
44
|
}], propDecorators: { dataSlot: [{
|
|
48
45
|
type: HostBinding,
|
|
@@ -58,7 +55,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
58
55
|
args: [{
|
|
59
56
|
selector: '[tngCardDescription]',
|
|
60
57
|
exportAs: 'tngCardDescription',
|
|
61
|
-
standalone: true,
|
|
62
58
|
}]
|
|
63
59
|
}], propDecorators: { dataSlot: [{
|
|
64
60
|
type: HostBinding,
|
|
@@ -74,7 +70,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
74
70
|
args: [{
|
|
75
71
|
selector: '[tngCardContent]',
|
|
76
72
|
exportAs: 'tngCardContent',
|
|
77
|
-
standalone: true,
|
|
78
73
|
}]
|
|
79
74
|
}], propDecorators: { dataSlot: [{
|
|
80
75
|
type: HostBinding,
|
|
@@ -90,7 +85,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
90
85
|
args: [{
|
|
91
86
|
selector: '[tngCardFooter]',
|
|
92
87
|
exportAs: 'tngCardFooter',
|
|
93
|
-
standalone: true,
|
|
94
88
|
}]
|
|
95
89
|
}], propDecorators: { dataSlot: [{
|
|
96
90
|
type: HostBinding,
|
|
@@ -106,7 +100,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
106
100
|
args: [{
|
|
107
101
|
selector: '[tngCardMedia]',
|
|
108
102
|
exportAs: 'tngCardMedia',
|
|
109
|
-
standalone: true,
|
|
110
103
|
}]
|
|
111
104
|
}], propDecorators: { dataSlot: [{
|
|
112
105
|
type: HostBinding,
|
|
@@ -122,7 +115,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
122
115
|
args: [{
|
|
123
116
|
selector: '[tngCardActions]',
|
|
124
117
|
exportAs: 'tngCardActions',
|
|
125
|
-
standalone: true,
|
|
126
118
|
}]
|
|
127
119
|
}], propDecorators: { dataSlot: [{
|
|
128
120
|
type: HostBinding,
|
|
@@ -138,7 +130,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
138
130
|
args: [{
|
|
139
131
|
selector: '[tngCardDivider]',
|
|
140
132
|
exportAs: 'tngCardDivider',
|
|
141
|
-
standalone: true,
|
|
142
133
|
}]
|
|
143
134
|
}], propDecorators: { dataSlot: [{
|
|
144
135
|
type: HostBinding,
|
|
@@ -154,7 +145,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
154
145
|
args: [{
|
|
155
146
|
selector: '[tngCardLink]',
|
|
156
147
|
exportAs: 'tngCardLink',
|
|
157
|
-
standalone: true,
|
|
158
148
|
}]
|
|
159
149
|
}], propDecorators: { dataSlot: [{
|
|
160
150
|
type: HostBinding,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-card.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/card/tng-card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;;
|
|
1
|
+
{"version":3,"file":"tng-card.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/card/tng-card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;;AAMvD,MAAM,OAAO,OAAO;IAEC,QAAQ,GAAG,MAAe,CAAC;uGAFnC,OAAO;2FAAP,OAAO;;2FAAP,OAAO;kBAJnB,SAAS;mBAAC;oBACT,QAAQ,EAAE,WAAW;oBACrB,QAAQ,EAAE,SAAS;iBACpB;;sBAEE,WAAW;uBAAC,gBAAgB;;AAQ/B,MAAM,OAAO,aAAa;IAEL,QAAQ,GAAG,aAAsB,CAAC;uGAF1C,aAAa;2FAAb,aAAa;;2FAAb,aAAa;kBAJzB,SAAS;mBAAC;oBACT,QAAQ,EAAE,iBAAiB;oBAC3B,QAAQ,EAAE,eAAe;iBAC1B;;sBAEE,WAAW;uBAAC,gBAAgB;;AAQ/B,MAAM,OAAO,YAAY;IAEJ,QAAQ,GAAG,YAAqB,CAAC;uGAFzC,YAAY;2FAAZ,YAAY;;2FAAZ,YAAY;kBAJxB,SAAS;mBAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,EAAE,cAAc;iBACzB;;sBAEE,WAAW;uBAAC,gBAAgB;;AAQ/B,MAAM,OAAO,kBAAkB;IAEV,QAAQ,GAAG,kBAA2B,CAAC;uGAF/C,kBAAkB;2FAAlB,kBAAkB;;2FAAlB,kBAAkB;kBAJ9B,SAAS;mBAAC;oBACT,QAAQ,EAAE,sBAAsB;oBAChC,QAAQ,EAAE,oBAAoB;iBAC/B;;sBAEE,WAAW;uBAAC,gBAAgB;;AAQ/B,MAAM,OAAO,cAAc;IAEN,QAAQ,GAAG,cAAuB,CAAC;uGAF3C,cAAc;2FAAd,cAAc;;2FAAd,cAAc;kBAJ1B,SAAS;mBAAC;oBACT,QAAQ,EAAE,kBAAkB;oBAC5B,QAAQ,EAAE,gBAAgB;iBAC3B;;sBAEE,WAAW;uBAAC,gBAAgB;;AAQ/B,MAAM,OAAO,aAAa;IAEL,QAAQ,GAAG,aAAsB,CAAC;uGAF1C,aAAa;2FAAb,aAAa;;2FAAb,aAAa;kBAJzB,SAAS;mBAAC;oBACT,QAAQ,EAAE,iBAAiB;oBAC3B,QAAQ,EAAE,eAAe;iBAC1B;;sBAEE,WAAW;uBAAC,gBAAgB;;AAQ/B,MAAM,OAAO,YAAY;IAEJ,QAAQ,GAAG,YAAqB,CAAC;uGAFzC,YAAY;2FAAZ,YAAY;;2FAAZ,YAAY;kBAJxB,SAAS;mBAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,EAAE,cAAc;iBACzB;;sBAEE,WAAW;uBAAC,gBAAgB;;AAQ/B,MAAM,OAAO,cAAc;IAEN,QAAQ,GAAG,cAAuB,CAAC;uGAF3C,cAAc;2FAAd,cAAc;;2FAAd,cAAc;kBAJ1B,SAAS;mBAAC;oBACT,QAAQ,EAAE,kBAAkB;oBAC5B,QAAQ,EAAE,gBAAgB;iBAC3B;;sBAEE,WAAW;uBAAC,gBAAgB;;AAQ/B,MAAM,OAAO,cAAc;IAEN,QAAQ,GAAG,cAAuB,CAAC;uGAF3C,cAAc;2FAAd,cAAc;;2FAAd,cAAc;kBAJ1B,SAAS;mBAAC;oBACT,QAAQ,EAAE,kBAAkB;oBAC5B,QAAQ,EAAE,gBAAgB;iBAC3B;;sBAEE,WAAW;uBAAC,gBAAgB;;AAQ/B,MAAM,OAAO,WAAW;IAEH,QAAQ,GAAG,WAAoB,CAAC;uGAFxC,WAAW;2FAAX,WAAW;;2FAAX,WAAW;kBAJvB,SAAS;mBAAC;oBACT,QAAQ,EAAE,eAAe;oBACzB,QAAQ,EAAE,aAAa;iBACxB;;sBAEE,WAAW;uBAAC,gBAAgB","sourcesContent":["import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[tngCard]',\n exportAs: 'tngCard',\n})\nexport class TngCard {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'card' as const;\n}\n\n@Directive({\n selector: '[tngCardHeader]',\n exportAs: 'tngCardHeader',\n})\nexport class TngCardHeader {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'card-header' as const;\n}\n\n@Directive({\n selector: '[tngCardTitle]',\n exportAs: 'tngCardTitle',\n})\nexport class TngCardTitle {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'card-title' as const;\n}\n\n@Directive({\n selector: '[tngCardDescription]',\n exportAs: 'tngCardDescription',\n})\nexport class TngCardDescription {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'card-description' as const;\n}\n\n@Directive({\n selector: '[tngCardContent]',\n exportAs: 'tngCardContent',\n})\nexport class TngCardContent {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'card-content' as const;\n}\n\n@Directive({\n selector: '[tngCardFooter]',\n exportAs: 'tngCardFooter',\n})\nexport class TngCardFooter {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'card-footer' as const;\n}\n\n@Directive({\n selector: '[tngCardMedia]',\n exportAs: 'tngCardMedia',\n})\nexport class TngCardMedia {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'card-media' as const;\n}\n\n@Directive({\n selector: '[tngCardActions]',\n exportAs: 'tngCardActions',\n})\nexport class TngCardActions {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'card-actions' as const;\n}\n\n@Directive({\n selector: '[tngCardDivider]',\n exportAs: 'tngCardDivider',\n})\nexport class TngCardDivider {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'card-divider' as const;\n}\n\n@Directive({\n selector: '[tngCardLink]',\n exportAs: 'tngCardLink',\n})\nexport class TngCardLink {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'card-link' as const;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-collapsible.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/collapsible/tng-collapsible.ts"],"names":[],"mappings":";AAEA,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAEjF;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAE/E;AAED,
|
|
1
|
+
{"version":3,"file":"tng-collapsible.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/collapsible/tng-collapsible.ts"],"names":[],"mappings":";AAEA,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAEjF;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAE/E;AAED,qBAIa,cAAc;IACzB,SAAgB,QAAQ,8EAErB;IACH,SAAgB,IAAI,8EAEjB;IAGH,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,aAAa,CAAU;IAGrD,SAAS,KAAK,aAAa,IAAI,QAAQ,GAAG,MAAM,CAE/C;yCAnBU,cAAc;2CAAd,cAAc;CAoB1B;AAED,qBAIa,qBAAqB;IAChC,SAAgB,SAAS,8CAAqB;IAC9C,SAAgB,QAAQ,8EAErB;IACH,SAAgB,IAAI,8EAEjB;IAGH,SAAS,KAAK,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAG9C;IAGD,SAAS,KAAK,gBAAgB,IAAI,OAAO,GAAG,MAAM,CAEjD;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,qBAAqB,CAAU;IAG7D,SAAS,KAAK,aAAa,IAAI,QAAQ,GAAG,MAAM,CAE/C;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;yCAvCrC,qBAAqB;2CAArB,qBAAqB;CAwCjC;AAED,qBAIa,qBAAqB;IAChC,SAAgB,IAAI,8EAEjB;IAGH,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,qBAAqB,CAAU;IAG7D,SAAS,KAAK,aAAa,IAAI,QAAQ,GAAG,MAAM,CAE/C;IAGD,SAAS,KAAK,UAAU,IAAI,EAAE,GAAG,IAAI,CAEpC;yCAhBU,qBAAqB;2CAArB,qBAAqB;CAiBjC"}
|
|
@@ -24,7 +24,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
24
24
|
args: [{
|
|
25
25
|
selector: '[tngCollapsible]',
|
|
26
26
|
exportAs: 'tngCollapsible',
|
|
27
|
-
standalone: true,
|
|
28
27
|
}]
|
|
29
28
|
}], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], dataDisabledAttr: [{
|
|
30
29
|
type: HostBinding,
|
|
@@ -66,7 +65,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
66
65
|
args: [{
|
|
67
66
|
selector: 'button[tngCollapsibleTrigger]',
|
|
68
67
|
exportAs: 'tngCollapsibleTrigger',
|
|
69
|
-
standalone: true,
|
|
70
68
|
}]
|
|
71
69
|
}], propDecorators: { contentId: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentId", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], ariaControlsAttr: [{
|
|
72
70
|
type: HostBinding,
|
|
@@ -107,7 +105,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
107
105
|
args: [{
|
|
108
106
|
selector: '[tngCollapsibleContent]',
|
|
109
107
|
exportAs: 'tngCollapsibleContent',
|
|
110
|
-
standalone: true,
|
|
111
108
|
}]
|
|
112
109
|
}], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], dataSlot: [{
|
|
113
110
|
type: HostBinding,
|