@koobiq/components 20.0.0 → 20.2.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/accordion/_accordion-theme.scss +1 -1
- package/accordion/accordion-tokens.scss +1 -0
- package/accordion/{accordion-trigger.component.scss → accordion-trigger.scss} +4 -18
- package/accordion/{accordion.component.scss → accordion.scss} +12 -5
- package/accordion/index.d.ts +215 -119
- package/actions-panel/index.d.ts +1 -0
- package/alert/_alert-theme.scss +14 -4
- package/alert/alert-tokens.scss +4 -4
- package/alert/alert.component.scss +24 -13
- package/alert/index.d.ts +63 -29
- package/app-switcher/app-switcher-dropdown-app.scss +2 -0
- package/autocomplete/autocomplete.scss +2 -1
- package/autocomplete/index.d.ts +35 -29
- package/badge/index.d.ts +2 -3
- package/breadcrumbs/breadcrumbs.scss +4 -0
- package/breadcrumbs/index.d.ts +2 -1
- package/button/button-group.scss +42 -2
- package/button-toggle/button-toggle.scss +23 -0
- package/button-toggle/index.d.ts +3 -1
- package/checkbox/checkbox.scss +5 -4
- package/clamped-text/index.d.ts +4 -2
- package/core/index.d.ts +515 -21
- package/core/styles/_core.scss +2 -0
- package/core/styles/common/_animation.scss +35 -24
- package/core/styles/common/_connected-overlay.scss +36 -0
- package/core/styles/common/_select.scss +7 -2
- package/core/styles/theming/_components-theming.scss +1 -1
- package/core/styles/theming/_scrollbar-theme.scss +4 -0
- package/datepicker/_datepicker-theme.scss +1 -1
- package/datepicker/datepicker-toggle.scss +3 -3
- package/dl/index.d.ts +1 -0
- package/dropdown/dropdown-item.scss +16 -0
- package/dropdown/dropdown-tokens.scss +2 -1
- package/dropdown/dropdown.scss +11 -2
- package/dropdown/index.d.ts +73 -6
- package/fesm2022/koobiq-components-accordion.mjs +406 -303
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +15 -6
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +88 -48
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs +7 -7
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +37 -23
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +5 -4
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +6 -4
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +9 -6
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +4 -4
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +2 -2
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +9 -0
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +5 -1
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +544 -113
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +13 -10
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +3 -2
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +105 -31
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +33 -22
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +1169 -782
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-flag.mjs +66 -0
- package/fesm2022/koobiq-components-flag.mjs.map +1 -0
- package/fesm2022/koobiq-components-form-field.mjs +6 -6
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +16 -7
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +30 -7
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +39 -20
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +2 -2
- package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +9 -5
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +123 -27
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +193 -19
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +12 -4
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +9 -4
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +2 -2
- package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-spinner.mjs +2 -2
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +3 -7
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +43 -8
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +72 -59
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +4 -0
- package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +3 -3
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-skeleton.mjs +2 -2
- package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
- package/fesm2022/koobiq-components-split-button.mjs +5 -12
- package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs +6 -2
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-table.mjs +8 -6
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +42 -18
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +8 -1
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +7 -14
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +4 -4
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +3 -4
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +9 -5
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +132 -14
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +1 -1
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +2 -2
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +168 -8
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +79 -38
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +67 -41
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +16 -3
- package/fesm2022/koobiq-components-username.mjs.map +1 -1
- package/file-upload/file-upload-tokens.scss +1 -0
- package/file-upload/index.d.ts +10 -7
- package/filter-bar/_filter-bar-theme.scss +82 -0
- package/filter-bar/filter-bar-tokens.scss +9 -0
- package/filter-bar/filter-bar.scss +10 -4
- package/filter-bar/filter-refresher.scss +1 -1
- package/filter-bar/filters.scss +25 -20
- package/filter-bar/index.d.ts +764 -336
- package/filter-bar/pipes/base-pipe.scss +12 -44
- package/filter-bar/pipes/pipe-date.scss +20 -14
- package/filter-bar/pipes/pipe-input.scss +10 -0
- package/filter-bar/pipes/pipe-multi-tree-select.scss +5 -3
- package/filter-bar/pipes/pipe-multiselect.scss +5 -3
- package/filter-bar/pipes/pipe-readonly.scss +4 -13
- package/filter-bar/pipes/pipe-select.scss +3 -1
- package/filter-bar/pipes/pipe-tree-select.scss +3 -1
- package/flag/flag.scss +53 -0
- package/flag/index.d.ts +44 -0
- package/icon/icon-button.scss +3 -1
- package/icon/icon-item-tokens.scss +1 -1
- package/icon/index.d.ts +15 -2
- package/inline-edit/index.d.ts +5 -0
- package/inline-edit/inline-edit.scss +7 -7
- package/link/link-tokens.scss +2 -2
- package/list/index.d.ts +11 -2
- package/loader-overlay/loader-overlay-tokens.scss +1 -1
- package/modal/_modal-animation.scss +6 -6
- package/modal/_modal-theme.scss +5 -0
- package/modal/index.d.ts +3 -1
- package/modal/modal.scss +15 -0
- package/navbar/_navbar-item_vertical.scss +7 -5
- package/navbar/index.d.ts +39 -4
- package/navbar/navbar-brand.scss +17 -7
- package/navbar/navbar-item.scss +9 -0
- package/notification-center/_notification-center-theme.scss +2 -1
- package/notification-center/index.d.ts +89 -3
- package/notification-center/notification-center.scss +42 -4
- package/notification-center/notification-item.scss +3 -2
- package/overflow-items/index.d.ts +1 -0
- package/package.json +7 -3
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/prebuilt-themes/theme.css +1 -1
- package/progress-bar/progress-bar.scss +4 -0
- package/progress-spinner/progress-spinner.scss +5 -1
- package/radio/index.d.ts +1 -5
- package/radio/radio.scss +18 -4
- package/schematics/collection.json +15 -0
- package/schematics/migrations/alert-signals/README.md +64 -0
- package/schematics/migrations/alert-signals/data.js +70 -0
- package/schematics/migrations/alert-signals/index.js +350 -0
- package/schematics/migrations/alert-signals/schema.json +20 -0
- package/schematics/migrations/autocomplete-panel-width-auto/README.md +68 -0
- package/schematics/migrations/autocomplete-panel-width-auto/index.js +70 -0
- package/schematics/migrations/autocomplete-panel-width-auto/schema.json +15 -0
- package/schematics/migrations/filter-bar-signals/README.md +66 -0
- package/schematics/migrations/filter-bar-signals/data.js +72 -0
- package/schematics/migrations/filter-bar-signals/index.js +316 -0
- package/schematics/migrations/filter-bar-signals/schema.json +20 -0
- package/schematics/migrations.json +15 -0
- package/schematics/ng-add/index.js +1 -1
- package/schematics/utils/angular-parsing.js +11 -2
- package/search-expandable/index.d.ts +3 -0
- package/select/index.d.ts +59 -24
- package/sidebar/index.d.ts +1 -0
- package/skeleton/skeleton.scss +4 -0
- package/split-button/_split-button-theme.scss +2 -2
- package/splitter/_splitter-theme.scss +2 -2
- package/splitter/index.d.ts +1 -0
- package/table/_table-theme.scss +4 -0
- package/table/index.d.ts +3 -2
- package/tabs/_tabs-common.scss +60 -31
- package/tabs/_tabs-theme.scss +12 -0
- package/tabs/index.d.ts +4 -2
- package/tabs/tab-header.scss +15 -0
- package/tabs/tab-nav-bar.scss +4 -0
- package/tabs/tabs-tokens.scss +2 -1
- package/textarea/index.d.ts +0 -1
- package/time-range/time-range.scss +0 -8
- package/timepicker/timepicker.scss +2 -2
- package/timezone/index.d.ts +2 -3
- package/title/index.d.ts +92 -2
- package/tooltip/index.d.ts +124 -7
- package/tree/_tree-theme.scss +2 -7
- package/tree/index.d.ts +19 -4
- package/tree/toggle.scss +5 -0
- package/tree/tree-option.scss +0 -4
- package/tree-select/_tree-select-theme.scss +1 -1
- package/tree-select/index.d.ts +53 -22
- package/username/index.d.ts +20 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"koobiq-components-breadcrumbs.mjs","sources":["../../../packages/components/breadcrumbs/utils.ts","../../../packages/components/breadcrumbs/roving-focus-group.directive.ts","../../../packages/components/breadcrumbs/roving-focus-item.directive.ts","../../../packages/components/breadcrumbs/breadcrumbs.ts","../../../packages/components/breadcrumbs/breadcrumbs.html","../../../packages/components/breadcrumbs/breadcrumbs.module.ts","../../../packages/components/breadcrumbs/koobiq-components-breadcrumbs.ts"],"sourcesContent":["export type Orientation = 'horizontal' | 'vertical';\nexport type Direction = 'ltr' | 'rtl';\n\nexport const ENTRY_FOCUS = 'rovingFocusGroup.onEntryFocus';\nexport const EVENT_OPTIONS = { bubbles: false, cancelable: true };\n\ntype FocusIntent = 'first' | 'last' | 'prev' | 'next';\n\nexport const MAP_KEY_TO_FOCUS_INTENT: Record<string, FocusIntent> = {\n ArrowLeft: 'prev',\n ArrowUp: 'prev',\n ArrowRight: 'next',\n ArrowDown: 'next',\n PageUp: 'first',\n Home: 'first',\n PageDown: 'last',\n End: 'last'\n};\n\nexport function getDirectionAwareKey(key: string, dir?: Direction) {\n if (dir !== 'rtl') return key;\n\n return key === 'ArrowLeft' ? 'ArrowRight' : key === 'ArrowRight' ? 'ArrowLeft' : key;\n}\n\nexport function getFocusIntent(event: KeyboardEvent, orientation?: Orientation, dir?: Direction) {\n const key = getDirectionAwareKey(event.key, dir);\n\n if (orientation === 'vertical' && ['ArrowLeft', 'ArrowRight'].includes(key)) return undefined;\n if (orientation === 'horizontal' && ['ArrowUp', 'ArrowDown'].includes(key)) return undefined;\n\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\n\nexport function focusFirst(candidates: HTMLElement[], preventScroll = false, rootNode?: Document | ShadowRoot) {\n // eslint-disable-next-line no-restricted-globals\n const PREVIOUSLY_FOCUSED_ELEMENT = rootNode?.activeElement ?? window.document.activeElement;\n\n for (const candidate of candidates) {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n // eslint-disable-next-line no-restricted-globals\n if (window.document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\n\n/**\n * Wraps an array around itself at a given start index\n * Example: `wrapArray(['a', 'b', 'c', 'd'], 2) === ['c', 'd', 'a', 'b']`\n */\nexport function wrapArray<T>(array: T[], startIndex: number) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\n\nexport function generateId(): string {\n return `rf-item-${Math.random().toString(36).slice(2, 11)}`;\n}\n","import { booleanAttribute, Directive, ElementRef, inject, Input, input, NgZone, output, signal } from '@angular/core';\nimport { Direction, ENTRY_FOCUS, EVENT_OPTIONS, focusFirst, Orientation } from './utils';\n\n@Directive({\n selector: '[rdxRovingFocusGroup]',\n host: {\n '[attr.data-orientation]': 'dataOrientation',\n '[attr.tabindex]': 'tabIndex',\n '[attr.dir]': 'dir()',\n '(focus)': 'handleFocus($event)',\n '(blur)': 'handleBlur()',\n '(mouseup)': 'handleMouseUp()',\n '(mousedown)': 'handleMouseDown()',\n style: 'outline: none;'\n }\n})\nexport class RdxRovingFocusGroupDirective {\n private readonly ngZone = inject(NgZone);\n private readonly elementRef = inject(ElementRef);\n\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() orientation: Orientation | undefined;\n readonly dir = input<Direction>('ltr');\n readonly loop = input<boolean, unknown>(true, { transform: booleanAttribute });\n readonly preventScrollOnEntryFocus = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n readonly entryFocus = output<Event>();\n readonly currentTabStopIdChange = output<string | null>();\n\n /** @docs-private */\n readonly currentTabStopId = signal<string | null>(null);\n\n /** @docs-private */\n readonly focusableItems = signal<HTMLElement[]>([]);\n\n private readonly isClickFocus = signal(false);\n private readonly isTabbingBackOut = signal(false);\n private readonly focusableItemsCount = signal(0);\n\n /** @docs-private */\n get dataOrientation() {\n return this.orientation || 'horizontal';\n }\n\n /** @docs-private */\n get tabIndex() {\n return this.isTabbingBackOut() || this.getFocusableItemsCount() === 0 ? -1 : 0;\n }\n\n /** @docs-private */\n handleBlur() {\n this.isTabbingBackOut.set(false);\n }\n\n /** @docs-private */\n handleMouseUp() {\n // reset `isClickFocus` after 1 tick because handleFocus might not triggered due to focused element\n this.ngZone.runOutsideAngular(() => {\n Promise.resolve().then(() => {\n this.ngZone.run(() => {\n this.isClickFocus.set(false);\n });\n });\n });\n }\n\n /** @docs-private */\n handleFocus(event: FocusEvent) {\n // We normally wouldn't need this check, because we already check\n // that the focus is on the current target and not bubbling to it.\n // We do this because Safari doesn't focus buttons when clicked, and\n // instead, the wrapper will get focused and not through a bubbling event.\n const isKeyboardFocus = !this.isClickFocus();\n\n if (\n event.currentTarget === this.elementRef.nativeElement &&\n event.target === event.currentTarget &&\n isKeyboardFocus &&\n !this.isTabbingBackOut()\n ) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n\n this.elementRef.nativeElement.dispatchEvent(entryFocusEvent);\n this.entryFocus.emit(entryFocusEvent);\n\n if (!entryFocusEvent.defaultPrevented) {\n const items = this.focusableItems().filter((item) => item.dataset['disabled'] !== '');\n const activeItem = items.find((item) => item.getAttribute('data-active') === 'true');\n const currentItem = items.find((item) => item.id === this.currentTabStopId());\n const candidateItems = [activeItem, currentItem, ...items].filter(Boolean) as HTMLElement[];\n\n focusFirst(candidateItems, this.preventScrollOnEntryFocus());\n }\n }\n\n this.isClickFocus.set(false);\n }\n\n /** @docs-private */\n handleMouseDown() {\n this.isClickFocus.set(true);\n }\n\n /** @docs-private */\n onItemFocus(tabStopId: string) {\n this.currentTabStopId.set(tabStopId);\n this.currentTabStopIdChange.emit(tabStopId);\n }\n\n /** @docs-private */\n onItemShiftTab() {\n this.isTabbingBackOut.set(true);\n }\n\n /** @docs-private */\n onFocusableItemAdd() {\n this.focusableItemsCount.update((count) => count + 1);\n }\n\n /** @docs-private */\n onFocusableItemRemove() {\n this.focusableItemsCount.update((count) => Math.max(0, count - 1));\n }\n\n /** @docs-private */\n registerItem(item: HTMLElement) {\n const currentItems = this.focusableItems();\n\n this.focusableItems.set([...currentItems, item]);\n }\n\n /** @docs-private */\n unregisterItem(item: HTMLElement) {\n const currentItems = this.focusableItems();\n\n this.focusableItems.set(currentItems.filter((el) => el !== item));\n }\n\n /** @docs-private */\n getFocusableItemsCount() {\n return this.focusableItemsCount();\n }\n}\n","import {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n NgZone,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { RdxRovingFocusGroupDirective } from './roving-focus-group.directive';\nimport { focusFirst, generateId, getFocusIntent, wrapArray } from './utils';\n\n@Directive({\n selector: '[rdxRovingFocusItem]',\n host: {\n '[attr.tabindex]': 'tabIndex',\n '[attr.data-orientation]': 'parent.orientation',\n '[attr.data-active]': 'active()',\n '[attr.data-disabled]': '!focusable() ? \"\" : undefined',\n '(mousedown)': 'handleMouseDown($event)',\n '(keydown)': 'handleKeydown($event)',\n '(focus)': 'onFocus()'\n }\n})\nexport class RdxRovingFocusItemDirective implements OnInit, OnDestroy {\n private readonly elementRef = inject(ElementRef);\n private readonly ngZone = inject(NgZone);\n protected readonly parent = inject(RdxRovingFocusGroupDirective);\n\n readonly focusable = input<boolean, unknown>(true, { transform: booleanAttribute });\n readonly active = input<boolean, unknown>(true, { transform: booleanAttribute });\n readonly tabStopId = input<string>(undefined!);\n readonly allowShiftKey = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n private readonly id = computed(() => this.tabStopId() || generateId());\n\n /** @docs-private */\n readonly isCurrentTabStop = computed(() => this.parent.currentTabStopId() === this.id());\n\n /**\n * Lifecycle hook triggered on initialization.\n * Registers the element with the parent roving focus group if it is focusable.\n * @docs-private\n */\n ngOnInit() {\n if (this.focusable()) {\n this.parent.registerItem(this.elementRef.nativeElement);\n this.parent.onFocusableItemAdd();\n }\n }\n\n /**\n * Lifecycle hook triggered on destruction.\n * Unregisters the element from the parent roving focus group if it is focusable.\n * @docs-private\n */\n ngOnDestroy() {\n if (this.focusable()) {\n this.parent.unregisterItem(this.elementRef.nativeElement);\n this.parent.onFocusableItemRemove();\n }\n }\n\n /**\n * Determines the `tabIndex` of the element.\n * Returns `0` if the element is the current tab stop; otherwise, returns `-1`.\n * @docs-private\n */\n get tabIndex() {\n return this.isCurrentTabStop() ? 0 : -1;\n }\n\n /** @docs-private */\n handleMouseDown(event: MouseEvent) {\n if (!this.focusable()) {\n // We prevent focusing non-focusable items on `mousedown`.\n // Even though the item has tabIndex={-1}, that only means take it out of the tab order.\n event.preventDefault();\n } else {\n // Safari doesn't focus a button when clicked so we run our logic on mousedown also\n this.parent.onItemFocus(this.id());\n }\n }\n\n /** @docs-private */\n onFocus() {\n this.parent.onItemFocus(this.id());\n }\n\n /**\n * Handles the `keydown` event for keyboard navigation within the roving focus group.\n * Supports navigation based on orientation and direction, and focuses appropriate elements.\n *\n * @param event The `KeyboardEvent` object.\n * @docs-private\n */\n handleKeydown(event: KeyboardEvent) {\n if (event.key === 'Tab' && event.shiftKey) {\n this.parent.onItemShiftTab();\n\n return;\n }\n\n if (event.target !== this.elementRef.nativeElement) return;\n\n const focusIntent = getFocusIntent(event, this.parent.orientation, this.parent.dir());\n\n if (focusIntent !== undefined) {\n if (event.metaKey || event.ctrlKey || event.altKey || (this.allowShiftKey() ? false : event.shiftKey)) {\n return;\n }\n\n event.preventDefault();\n\n let candidateNodes = this.parent.focusableItems().filter((item) => item.dataset['disabled'] !== '');\n\n if (focusIntent === 'last') {\n candidateNodes.reverse();\n } else if (focusIntent === 'prev' || focusIntent === 'next') {\n if (focusIntent === 'prev') candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(this.elementRef.nativeElement);\n\n candidateNodes = this.parent.loop()\n ? wrapArray(candidateNodes, currentIndex + 1)\n : candidateNodes.slice(currentIndex + 1);\n }\n\n this.ngZone.runOutsideAngular(() => {\n Promise.resolve().then(() => {\n focusFirst(candidateNodes, false, this.elementRef.nativeElement);\n });\n });\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChild,\n contentChild,\n contentChildren,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n InjectionToken,\n input,\n OnInit,\n Provider,\n TemplateRef,\n viewChild,\n viewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { outputToObservable, takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { RouterLink } from '@angular/router';\nimport { KbqButton, KbqButtonModule, KbqButtonStyles } from '@koobiq/components/button';\nimport { KbqComponentColors, KbqDefaultSizes, PopUpPlacements } from '@koobiq/components/core';\nimport { KbqDropdownModule } from '@koobiq/components/dropdown';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport {\n KbqOverflowItem,\n KbqOverflowItems,\n KbqOverflowItemsModule,\n KbqOverflowItemsResult\n} from '@koobiq/components/overflow-items';\nimport { KbqTitleModule } from '@koobiq/components/title';\nimport { EMPTY, merge, skip, switchMap } from 'rxjs';\nimport { KbqBreadcrumbsConfiguration, KbqBreadcrumbsWrapMode } from './breadcrumbs.types';\nimport { RdxRovingFocusGroupDirective } from './roving-focus-group.directive';\nimport { RdxRovingFocusItemDirective } from './roving-focus-item.directive';\n\nconst KBQ_BREADCRUMBS_DEFAULT_CONFIGURATION: KbqBreadcrumbsConfiguration = {\n max: 4,\n size: 'normal',\n firstItemNegativeMargin: true,\n wrapMode: 'auto'\n};\n\n/** Breadcrumbs options global configuration provider. */\nexport const KBQ_BREADCRUMBS_CONFIGURATION = new InjectionToken<KbqBreadcrumbsConfiguration>(\n 'KBQ_BREADCRUMBS_CONFIGURATION',\n { factory: () => KBQ_BREADCRUMBS_DEFAULT_CONFIGURATION }\n);\n\n/** Utility provider for `KBQ_BREADCRUMBS_CONFIGURATION`. */\nexport const kbqBreadcrumbsConfigurationProvider = (configuration: Partial<KbqBreadcrumbsConfiguration>): Provider => ({\n provide: KBQ_BREADCRUMBS_CONFIGURATION,\n useValue: { ...KBQ_BREADCRUMBS_DEFAULT_CONFIGURATION, ...configuration }\n});\n\n@Directive({\n selector: 'ng-template[kbqBreadcrumbsSeparator]',\n host: {\n class: 'kbq-breadcrumbs-separator'\n }\n})\nexport class KbqBreadcrumbsSeparator {\n readonly templateRef = inject(TemplateRef);\n}\n\n/**\n * Directive to style and configure buttons used as breadcrumb items.\n * - Inherits focus management behavior from `RdxRovingFocusItemDirective`.\n * - Optionally injects `KbqButton` to customize its style for breadcrumb usage.\n */\n@Directive({\n selector: '[kbq-button][kbqBreadcrumb]',\n host: { class: 'kbq-breadcrumb-item' },\n hostDirectives: [\n {\n directive: RdxRovingFocusItemDirective,\n inputs: ['focusable']\n }\n ]\n})\nexport class KbqBreadcrumbButton implements OnInit {\n private readonly button = inject(KbqButton, { optional: true, self: true });\n\n ngOnInit() {\n if (this.button) {\n this.button.color = KbqComponentColors.Contrast;\n this.button.kbqStyle = KbqButtonStyles.Transparent;\n }\n }\n}\n\n/**\n * Directive provides a way to define a custom template for breadcrumb rendering, leveraging TemplateRef\n *\n */\n@Directive({\n selector: '[kbqBreadcrumbView]'\n})\nexport class KbqBreadcrumbView {\n readonly templateRef = inject(TemplateRef);\n}\n\n/**\n * Component represents an individual breadcrumb item with optional support for router navigation and styling.\n */\n@Component({\n selector: 'kbq-breadcrumb-item',\n template: `\n <ng-content />\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.tabIndex]': 'null'\n }\n})\nexport class KbqBreadcrumbItem {\n /**\n * The text displayed for the breadcrumb item.\n * This text will be shown if breadcrumb item is hidden in dropdown.\n */\n readonly text = input<string>(undefined!);\n /**\n * Indicates whether the breadcrumb item is disabled.\n */\n readonly disabled = input<boolean, unknown>(undefined!, { transform: booleanAttribute });\n /**\n * Indicates whether the breadcrumb item is the current/active item.\n * Defaults to `false`.\n */\n readonly current = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * A reference to a custom template provided for the breadcrumb item content.\n * The template can be used to override the default appearance of the breadcrumb.\n */\n readonly customTemplateRef = contentChild(KbqBreadcrumbView, { read: TemplateRef });\n /**\n * An optional `RouterLink` instance for navigating to a specific route.\n * Injected from the host element, if available and projecting to the hidden breadcrumb item in dropdown.\n */\n readonly routerLink = inject(RouterLink, { optional: true, host: true });\n}\n\n@Component({\n selector: 'kbq-breadcrumbs,[kbq-breadcrumbs]',\n imports: [\n NgTemplateOutlet,\n RouterLink,\n KbqIconModule,\n KbqButtonModule,\n KbqDropdownModule,\n KbqBreadcrumbButton,\n KbqTitleModule,\n KbqOverflowItemsModule\n ],\n templateUrl: './breadcrumbs.html',\n styleUrls: ['./breadcrumbs.scss', './breadcrumbs-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-breadcrumbs',\n '[class.kbq-breadcrumbs_compact]': 'size() === \"compact\"',\n '[class.kbq-breadcrumbs_normal]': 'size() === \"normal\"',\n '[class.kbq-breadcrumbs_big]': 'size() === \"big\"',\n '[class.kbq-breadcrumbs_wrap]': 'wrapMode() === \"wrap\"',\n '[class.kbq-breadcrumbs_first-item-negative-margin]': 'firstItemNegativeMargin()',\n '[attr.aria-label]': \"'breadcrumb'\"\n },\n hostDirectives: [RdxRovingFocusGroupDirective]\n})\nexport class KbqBreadcrumbs {\n protected readonly configuration = inject(KBQ_BREADCRUMBS_CONFIGURATION);\n /**\n * Determines if a negative margin should be applied to the first breadcrumb item.\n *\n * @see KbqBreadcrumbsConfiguration\n */\n readonly firstItemNegativeMargin = input<boolean, unknown>(this.configuration.firstItemNegativeMargin, {\n transform: booleanAttribute\n });\n /**\n * Size of the breadcrumbs. Affects font size.\n * Default value is taken from the global configuration.\n */\n readonly size = input<KbqDefaultSizes>(this.configuration.size);\n /**\n * Maximum number of visible breadcrumb items.\n * Remaining items are collapsed into a dropdown if the total exceeds this value.\n * Default value is taken from the global configuration.\n */\n readonly max = input<number | null>(this.configuration.max);\n /**\n * Indicates whether the breadcrumbs are disabled.\n * When disabled, user interactions are blocked.\n */\n readonly disabled = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * Wrapping behavior of the breadcrumb items.\n */\n readonly wrapMode = input<KbqBreadcrumbsWrapMode>(this.configuration.wrapMode);\n\n @ContentChild(KbqBreadcrumbsSeparator, { read: TemplateRef })\n protected readonly separator?: TemplateRef<any>;\n\n protected readonly items = contentChildren<KbqBreadcrumbItem>(forwardRef(() => KbqBreadcrumbItem));\n\n private readonly breadcrumbsResult = viewChild('breadcrumbsResult', { read: ElementRef });\n private readonly result = viewChild(KbqOverflowItemsResult);\n private readonly overflowItems = viewChildren<KbqOverflowItem>(forwardRef(() => KbqOverflowItem));\n private readonly overflowItemsDir = viewChild(KbqOverflowItems);\n\n /**\n * Ensures at least minimum number of breadcrumb items are shown.\n */\n protected readonly minVisibleItems = 2;\n protected readonly KbqComponentColors = KbqComponentColors;\n protected readonly KbqButtonStyles = KbqButtonStyles;\n protected readonly PopUpPlacements = PopUpPlacements;\n\n /** @docs-private */\n protected readonly itemsExcludingEdges = computed(() => this.items().slice(1, -1));\n protected readonly hiddenItemIDs = computed(\n () =>\n new Set(\n this.overflowItems()\n .filter((item) => item.hidden())\n .map((item) => item.id())\n )\n );\n\n /** @docs-private */\n protected readonly maxVisibleItems = computed((): number | null => {\n const max = this.max();\n const count = this.items().length;\n\n if (max === null || max >= count || max < this.minVisibleItems) return null;\n\n return max - 1;\n });\n\n private readonly maxHiddenItems = new Set<KbqOverflowItem>();\n\n constructor() {\n const group = inject(RdxRovingFocusGroupDirective, { self: true });\n\n group.orientation = 'horizontal';\n\n merge(\n toObservable(this.overflowItemsDir).pipe(\n switchMap((dir) => (dir ? outputToObservable(dir.changes) : EMPTY))\n ),\n toObservable(this.max).pipe(skip(1))\n )\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.enforceMaxVisible());\n\n effect(() => {\n const focusableItems = group.focusableItems();\n const expandButton = this.breadcrumbsResult()?.nativeElement;\n\n if (focusableItems.length < 2 || focusableItems[0] !== expandButton) return;\n\n const [first, second, ...rest] = focusableItems;\n\n group.focusableItems.set([second, first, ...rest]);\n });\n }\n\n private enforceMaxVisible(): void {\n const max = this.maxVisibleItems();\n const items = this.overflowItems();\n const result = this.result();\n const overflowHiddenIds = this.overflowItemsDir()?.hiddenItemIDs() ?? new Set();\n\n this.maxHiddenItems.forEach((item) => {\n if (!overflowHiddenIds.has(item.id())) {\n item.show();\n }\n });\n this.maxHiddenItems.clear();\n\n const allVisibleItems = items\n .map((item, index) => ({ item, order: item.order() ?? index }))\n .filter(({ item }) => !item.hidden());\n\n const extraToHide = max === null ? 0 : allVisibleItems.length - max;\n\n const hideResultIfAllVisible = () => {\n if (allVisibleItems.length === items.length) {\n result?.hide();\n }\n };\n\n if (extraToHide <= 0) {\n hideResultIfAllVisible();\n\n return;\n }\n\n const hideable = allVisibleItems\n .filter(({ item }) => !item.alwaysVisible())\n .sort((a, b) => a.order - b.order)\n .map(({ item }) => item);\n\n for (let i = 0; i < extraToHide && i < hideable.length; i++) {\n hideable[i].hide();\n this.maxHiddenItems.add(hideable[i]);\n result?.show();\n }\n }\n}\n","<!--\n@TODO: check when updated to Angular 20.x (#DS-4034)\nresolved SSR issue with official hack https://github.com/angular/angular/issues/50543#issuecomment-1572900259\n-->\n<ng-content />\n@let allItems = items();\n@if (allItems.length < minVisibleItems || wrapMode() !== 'auto') {\n @for (item of allItems; track item) {\n <div class=\"kbq-breadcrumb-item__container\">\n <ng-container *ngTemplateOutlet=\"breadcrumbTemplate; context: { $implicit: item, last: $last }\" />\n @if (!$last) {\n <ng-container [ngTemplateOutlet]=\"separatorTemplate\" />\n }\n </div>\n }\n} @else {\n <div #kbqOverflowItems=\"kbqOverflowItems\" kbqOverflowItems reverseOverflowOrder class=\"layout-align-start-center\">\n <div class=\"kbq-breadcrumb-item__container\" [kbqOverflowItem]=\"0\" [order]=\"allItems.length\">\n <ng-container *ngTemplateOutlet=\"breadcrumbTemplate; context: { $implicit: allItems[0], last: false }\" />\n <ng-container [ngTemplateOutlet]=\"separatorTemplate\" />\n </div>\n <div kbqOverflowItemsResult class=\"kbq-breadcrumb-item__container\">\n <button\n #breadcrumbsResult\n kbq-button\n kbqBreadcrumb\n class=\"kbq-breadcrumb__expand\"\n [kbqDropdownTriggerFor]=\"hiddenBreadcrumbsDropdown\"\n [kbqStyle]=\"KbqButtonStyles.Transparent\"\n >\n <i kbq-icon=\"kbq-ellipsis-horizontal_16\" [color]=\"KbqComponentColors.ContrastFade\"></i>\n </button>\n <ng-container [ngTemplateOutlet]=\"separatorTemplate\" />\n\n <kbq-dropdown #hiddenBreadcrumbsDropdown=\"kbqDropdown\">\n @for (item of allItems; track item) {\n @if (hiddenItemIDs().has($index)) {\n <a kbq-dropdown-item [routerLink]=\"item.routerLink?.urlTree\" [disabled]=\"item.disabled()\">\n {{ item.text() }}\n </a>\n }\n }\n </kbq-dropdown>\n </div>\n @for (item of itemsExcludingEdges(); track item) {\n <div class=\"kbq-breadcrumb-item__container\" [kbqOverflowItem]=\"$index + 1\">\n <ng-container *ngTemplateOutlet=\"breadcrumbTemplate; context: { $implicit: item, last: false }\" />\n <ng-container [ngTemplateOutlet]=\"separatorTemplate\" />\n </div>\n }\n <div alwaysVisible class=\"kbq-breadcrumb-item__container\" [kbqOverflowItem]=\"allItems.length - 1\">\n <ng-container\n *ngTemplateOutlet=\"\n breadcrumbTemplate;\n context: { $implicit: allItems[allItems.length - 1], last: true }\n \"\n />\n </div>\n </div>\n}\n\n<ng-template #breadcrumbTemplate let-item let-last=\"last\">\n @if (item.customTemplateRef()) {\n <ng-container [ngTemplateOutlet]=\"item.customTemplateRef()!\" />\n } @else {\n <a\n kbq-button\n kbq-title\n kbqBreadcrumb\n [focusable]=\"!item.disabled() && !last\"\n [routerLink]=\"item.routerLink?.urlTree\"\n [attr.aria-current]=\"last ? 'page' : null\"\n [disabled]=\"item.disabled() || last\"\n [kbqPlacementPriority]=\"PopUpPlacements.Bottom\"\n [kbqTooltipArrow]=\"false\"\n >\n {{ item.text() }}\n </a>\n }\n</ng-template>\n\n<ng-template #separatorTemplate>\n @if (separator) {\n <ng-container [ngTemplateOutlet]=\"separator\" />\n } @else {\n <i kbq-icon=\"\" class=\"kbq-breadcrumb__separator\" [color]=\"KbqComponentColors.ContrastFade\"> / </i>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport {\n KbqBreadcrumbButton,\n KbqBreadcrumbItem,\n KbqBreadcrumbs,\n KbqBreadcrumbsSeparator,\n KbqBreadcrumbView\n} from './breadcrumbs';\n\nconst COMPONENTS = [\n KbqBreadcrumbs,\n KbqBreadcrumbItem,\n KbqBreadcrumbView,\n KbqBreadcrumbsSeparator,\n KbqBreadcrumbButton\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqBreadcrumbsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.RdxRovingFocusItemDirective","i2.RdxRovingFocusGroupDirective"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"koobiq-components-breadcrumbs.mjs","sources":["../../../packages/components/breadcrumbs/utils.ts","../../../packages/components/breadcrumbs/roving-focus-group.directive.ts","../../../packages/components/breadcrumbs/roving-focus-item.directive.ts","../../../packages/components/breadcrumbs/breadcrumbs.ts","../../../packages/components/breadcrumbs/breadcrumbs.html","../../../packages/components/breadcrumbs/breadcrumbs.module.ts","../../../packages/components/breadcrumbs/koobiq-components-breadcrumbs.ts"],"sourcesContent":["export type Orientation = 'horizontal' | 'vertical';\nexport type Direction = 'ltr' | 'rtl';\n\nexport const ENTRY_FOCUS = 'rovingFocusGroup.onEntryFocus';\nexport const EVENT_OPTIONS = { bubbles: false, cancelable: true };\n\ntype FocusIntent = 'first' | 'last' | 'prev' | 'next';\n\nexport const MAP_KEY_TO_FOCUS_INTENT: Record<string, FocusIntent> = {\n ArrowLeft: 'prev',\n ArrowUp: 'prev',\n ArrowRight: 'next',\n ArrowDown: 'next',\n PageUp: 'first',\n Home: 'first',\n PageDown: 'last',\n End: 'last'\n};\n\nexport function getDirectionAwareKey(key: string, dir?: Direction) {\n if (dir !== 'rtl') return key;\n\n return key === 'ArrowLeft' ? 'ArrowRight' : key === 'ArrowRight' ? 'ArrowLeft' : key;\n}\n\nexport function getFocusIntent(event: KeyboardEvent, orientation?: Orientation, dir?: Direction) {\n const key = getDirectionAwareKey(event.key, dir);\n\n if (orientation === 'vertical' && ['ArrowLeft', 'ArrowRight'].includes(key)) return undefined;\n if (orientation === 'horizontal' && ['ArrowUp', 'ArrowDown'].includes(key)) return undefined;\n\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\n\nexport function focusFirst(candidates: HTMLElement[], preventScroll = false, rootNode?: Document | ShadowRoot) {\n // eslint-disable-next-line no-restricted-globals\n const PREVIOUSLY_FOCUSED_ELEMENT = rootNode?.activeElement ?? window.document.activeElement;\n\n for (const candidate of candidates) {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n // eslint-disable-next-line no-restricted-globals\n if (window.document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\n\n/**\n * Wraps an array around itself at a given start index\n * Example: `wrapArray(['a', 'b', 'c', 'd'], 2) === ['c', 'd', 'a', 'b']`\n */\nexport function wrapArray<T>(array: T[], startIndex: number) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\n\nexport function generateId(): string {\n return `rf-item-${Math.random().toString(36).slice(2, 11)}`;\n}\n","import { booleanAttribute, Directive, ElementRef, inject, Input, input, NgZone, output, signal } from '@angular/core';\nimport { Direction, ENTRY_FOCUS, EVENT_OPTIONS, focusFirst, Orientation } from './utils';\n\n@Directive({\n selector: '[rdxRovingFocusGroup]',\n host: {\n '[attr.data-orientation]': 'dataOrientation',\n '[attr.tabindex]': 'tabIndex',\n '[attr.dir]': 'dir()',\n '(focus)': 'handleFocus($event)',\n '(blur)': 'handleBlur()',\n '(mouseup)': 'handleMouseUp()',\n '(mousedown)': 'handleMouseDown()',\n style: 'outline: none;'\n }\n})\nexport class RdxRovingFocusGroupDirective {\n private readonly ngZone = inject(NgZone);\n private readonly elementRef = inject(ElementRef);\n\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() orientation: Orientation | undefined;\n readonly dir = input<Direction>('ltr');\n readonly loop = input<boolean, unknown>(true, { transform: booleanAttribute });\n readonly preventScrollOnEntryFocus = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n readonly entryFocus = output<Event>();\n readonly currentTabStopIdChange = output<string | null>();\n\n /** @docs-private */\n readonly currentTabStopId = signal<string | null>(null);\n\n /** @docs-private */\n readonly focusableItems = signal<HTMLElement[]>([]);\n\n private readonly isClickFocus = signal(false);\n private readonly isTabbingBackOut = signal(false);\n private readonly focusableItemsCount = signal(0);\n\n /** @docs-private */\n get dataOrientation() {\n return this.orientation || 'horizontal';\n }\n\n /** @docs-private */\n get tabIndex() {\n return this.isTabbingBackOut() || this.getFocusableItemsCount() === 0 ? -1 : 0;\n }\n\n /** @docs-private */\n handleBlur() {\n this.isTabbingBackOut.set(false);\n }\n\n /** @docs-private */\n handleMouseUp() {\n // reset `isClickFocus` after 1 tick because handleFocus might not triggered due to focused element\n this.ngZone.runOutsideAngular(() => {\n Promise.resolve().then(() => {\n this.ngZone.run(() => {\n this.isClickFocus.set(false);\n });\n });\n });\n }\n\n /** @docs-private */\n handleFocus(event: FocusEvent) {\n // We normally wouldn't need this check, because we already check\n // that the focus is on the current target and not bubbling to it.\n // We do this because Safari doesn't focus buttons when clicked, and\n // instead, the wrapper will get focused and not through a bubbling event.\n const isKeyboardFocus = !this.isClickFocus();\n\n if (\n event.currentTarget === this.elementRef.nativeElement &&\n event.target === event.currentTarget &&\n isKeyboardFocus &&\n !this.isTabbingBackOut()\n ) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n\n this.elementRef.nativeElement.dispatchEvent(entryFocusEvent);\n this.entryFocus.emit(entryFocusEvent);\n\n if (!entryFocusEvent.defaultPrevented) {\n const items = this.focusableItems().filter((item) => item.dataset['disabled'] !== '');\n const activeItem = items.find((item) => item.getAttribute('data-active') === 'true');\n const currentItem = items.find((item) => item.id === this.currentTabStopId());\n const candidateItems = [activeItem, currentItem, ...items].filter(Boolean) as HTMLElement[];\n\n focusFirst(candidateItems, this.preventScrollOnEntryFocus());\n }\n }\n\n this.isClickFocus.set(false);\n }\n\n /** @docs-private */\n handleMouseDown() {\n this.isClickFocus.set(true);\n }\n\n /** @docs-private */\n onItemFocus(tabStopId: string) {\n this.currentTabStopId.set(tabStopId);\n this.currentTabStopIdChange.emit(tabStopId);\n }\n\n /** @docs-private */\n onItemShiftTab() {\n this.isTabbingBackOut.set(true);\n }\n\n /** @docs-private */\n onFocusableItemAdd() {\n this.focusableItemsCount.update((count) => count + 1);\n }\n\n /** @docs-private */\n onFocusableItemRemove() {\n this.focusableItemsCount.update((count) => Math.max(0, count - 1));\n }\n\n /** @docs-private */\n registerItem(item: HTMLElement) {\n const currentItems = this.focusableItems();\n\n this.focusableItems.set([...currentItems, item]);\n }\n\n /** @docs-private */\n unregisterItem(item: HTMLElement) {\n const currentItems = this.focusableItems();\n\n this.focusableItems.set(currentItems.filter((el) => el !== item));\n }\n\n /** @docs-private */\n getFocusableItemsCount() {\n return this.focusableItemsCount();\n }\n}\n","import {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n NgZone,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { RdxRovingFocusGroupDirective } from './roving-focus-group.directive';\nimport { focusFirst, generateId, getFocusIntent, wrapArray } from './utils';\n\n@Directive({\n selector: '[rdxRovingFocusItem]',\n host: {\n '[attr.tabindex]': 'tabIndex',\n '[attr.data-orientation]': 'parent.orientation',\n '[attr.data-active]': 'active()',\n '[attr.data-disabled]': '!focusable() ? \"\" : undefined',\n '(mousedown)': 'handleMouseDown($event)',\n '(keydown)': 'handleKeydown($event)',\n '(focus)': 'onFocus()'\n }\n})\nexport class RdxRovingFocusItemDirective implements OnInit, OnDestroy {\n private readonly elementRef = inject(ElementRef);\n private readonly ngZone = inject(NgZone);\n protected readonly parent = inject(RdxRovingFocusGroupDirective);\n\n readonly focusable = input<boolean, unknown>(true, { transform: booleanAttribute });\n readonly active = input<boolean, unknown>(true, { transform: booleanAttribute });\n readonly tabStopId = input<string>(undefined!);\n readonly allowShiftKey = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n private readonly id = computed(() => this.tabStopId() || generateId());\n\n /** @docs-private */\n readonly isCurrentTabStop = computed(() => this.parent.currentTabStopId() === this.id());\n\n /**\n * Lifecycle hook triggered on initialization.\n * Registers the element with the parent roving focus group if it is focusable.\n * @docs-private\n */\n ngOnInit() {\n if (this.focusable()) {\n this.parent.registerItem(this.elementRef.nativeElement);\n this.parent.onFocusableItemAdd();\n }\n }\n\n /**\n * Lifecycle hook triggered on destruction.\n * Unregisters the element from the parent roving focus group if it is focusable.\n * @docs-private\n */\n ngOnDestroy() {\n if (this.focusable()) {\n this.parent.unregisterItem(this.elementRef.nativeElement);\n this.parent.onFocusableItemRemove();\n }\n }\n\n /**\n * Determines the `tabIndex` of the element.\n * Returns `0` if the element is the current tab stop; otherwise, returns `-1`.\n * @docs-private\n */\n get tabIndex() {\n return this.isCurrentTabStop() ? 0 : -1;\n }\n\n /** @docs-private */\n handleMouseDown(event: MouseEvent) {\n if (!this.focusable()) {\n // We prevent focusing non-focusable items on `mousedown`.\n // Even though the item has tabIndex={-1}, that only means take it out of the tab order.\n event.preventDefault();\n } else {\n // Safari doesn't focus a button when clicked so we run our logic on mousedown also\n this.parent.onItemFocus(this.id());\n }\n }\n\n /** @docs-private */\n onFocus() {\n this.parent.onItemFocus(this.id());\n }\n\n /**\n * Handles the `keydown` event for keyboard navigation within the roving focus group.\n * Supports navigation based on orientation and direction, and focuses appropriate elements.\n *\n * @param event The `KeyboardEvent` object.\n * @docs-private\n */\n handleKeydown(event: KeyboardEvent) {\n if (event.key === 'Tab' && event.shiftKey) {\n this.parent.onItemShiftTab();\n\n return;\n }\n\n if (event.target !== this.elementRef.nativeElement) return;\n\n const focusIntent = getFocusIntent(event, this.parent.orientation, this.parent.dir());\n\n if (focusIntent !== undefined) {\n if (event.metaKey || event.ctrlKey || event.altKey || (this.allowShiftKey() ? false : event.shiftKey)) {\n return;\n }\n\n event.preventDefault();\n\n let candidateNodes = this.parent.focusableItems().filter((item) => item.dataset['disabled'] !== '');\n\n if (focusIntent === 'last') {\n candidateNodes.reverse();\n } else if (focusIntent === 'prev' || focusIntent === 'next') {\n if (focusIntent === 'prev') candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(this.elementRef.nativeElement);\n\n candidateNodes = this.parent.loop()\n ? wrapArray(candidateNodes, currentIndex + 1)\n : candidateNodes.slice(currentIndex + 1);\n }\n\n this.ngZone.runOutsideAngular(() => {\n Promise.resolve().then(() => {\n focusFirst(candidateNodes, false, this.elementRef.nativeElement);\n });\n });\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChild,\n contentChild,\n contentChildren,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n InjectionToken,\n input,\n OnInit,\n Provider,\n TemplateRef,\n viewChild,\n viewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { outputToObservable, takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { RouterLink } from '@angular/router';\nimport { KbqButton, KbqButtonModule, KbqButtonStyles } from '@koobiq/components/button';\nimport { KbqComponentColors, KbqDefaultSizes, PopUpPlacements } from '@koobiq/components/core';\nimport { KbqDropdownModule, KbqDropdownTrigger } from '@koobiq/components/dropdown';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport {\n KbqOverflowItem,\n KbqOverflowItems,\n KbqOverflowItemsModule,\n KbqOverflowItemsResult\n} from '@koobiq/components/overflow-items';\nimport { KbqTitleModule } from '@koobiq/components/title';\nimport { EMPTY, merge, skip, switchMap } from 'rxjs';\nimport { KbqBreadcrumbsConfiguration, KbqBreadcrumbsWrapMode } from './breadcrumbs.types';\nimport { RdxRovingFocusGroupDirective } from './roving-focus-group.directive';\nimport { RdxRovingFocusItemDirective } from './roving-focus-item.directive';\n\nconst KBQ_BREADCRUMBS_DEFAULT_CONFIGURATION: KbqBreadcrumbsConfiguration = {\n max: 4,\n size: 'normal',\n firstItemNegativeMargin: true,\n wrapMode: 'auto'\n};\n\n/** Breadcrumbs options global configuration provider. */\nexport const KBQ_BREADCRUMBS_CONFIGURATION = new InjectionToken<KbqBreadcrumbsConfiguration>(\n 'KBQ_BREADCRUMBS_CONFIGURATION',\n { factory: () => KBQ_BREADCRUMBS_DEFAULT_CONFIGURATION }\n);\n\n/** Utility provider for `KBQ_BREADCRUMBS_CONFIGURATION`. */\nexport const kbqBreadcrumbsConfigurationProvider = (configuration: Partial<KbqBreadcrumbsConfiguration>): Provider => ({\n provide: KBQ_BREADCRUMBS_CONFIGURATION,\n useValue: { ...KBQ_BREADCRUMBS_DEFAULT_CONFIGURATION, ...configuration }\n});\n\n@Directive({\n selector: 'ng-template[kbqBreadcrumbsSeparator]',\n host: {\n class: 'kbq-breadcrumbs-separator'\n }\n})\nexport class KbqBreadcrumbsSeparator {\n readonly templateRef = inject(TemplateRef);\n}\n\n/**\n * Directive to style and configure buttons used as breadcrumb items.\n * - Inherits focus management behavior from `RdxRovingFocusItemDirective`.\n * - Optionally injects `KbqButton` to customize its style for breadcrumb usage.\n */\n@Directive({\n selector: '[kbq-button][kbqBreadcrumb]',\n host: { class: 'kbq-breadcrumb-item' },\n hostDirectives: [\n {\n directive: RdxRovingFocusItemDirective,\n inputs: ['focusable']\n }\n ]\n})\nexport class KbqBreadcrumbButton implements OnInit {\n private readonly button = inject(KbqButton, { optional: true, self: true });\n\n ngOnInit() {\n if (this.button) {\n this.button.color = KbqComponentColors.Contrast;\n this.button.kbqStyle = KbqButtonStyles.Transparent;\n }\n }\n}\n\n/**\n * Directive provides a way to define a custom template for breadcrumb rendering, leveraging TemplateRef\n *\n */\n@Directive({\n selector: '[kbqBreadcrumbView]'\n})\nexport class KbqBreadcrumbView {\n readonly templateRef = inject(TemplateRef);\n}\n\n/**\n * Component represents an individual breadcrumb item with optional support for router navigation and styling.\n */\n@Component({\n selector: 'kbq-breadcrumb-item',\n template: `\n <ng-content />\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.tabIndex]': 'null'\n }\n})\nexport class KbqBreadcrumbItem {\n /**\n * The text displayed for the breadcrumb item.\n * This text will be shown if breadcrumb item is hidden in dropdown.\n */\n readonly text = input<string>(undefined!);\n /**\n * Indicates whether the breadcrumb item is disabled.\n */\n readonly disabled = input<boolean, unknown>(undefined!, { transform: booleanAttribute });\n /**\n * Indicates whether the breadcrumb item is the current/active item.\n * Defaults to `false`.\n */\n readonly current = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * A reference to a custom template provided for the breadcrumb item content.\n * The template can be used to override the default appearance of the breadcrumb.\n */\n readonly customTemplateRef = contentChild(KbqBreadcrumbView, { read: TemplateRef });\n /**\n * An optional `RouterLink` instance for navigating to a specific route.\n * Injected from the host element, if available and projecting to the hidden breadcrumb item in dropdown.\n */\n readonly routerLink = inject(RouterLink, { optional: true, host: true });\n}\n\n@Component({\n selector: 'kbq-breadcrumbs,[kbq-breadcrumbs]',\n imports: [\n NgTemplateOutlet,\n RouterLink,\n KbqIconModule,\n KbqButtonModule,\n KbqDropdownModule,\n KbqBreadcrumbButton,\n KbqTitleModule,\n KbqOverflowItemsModule\n ],\n templateUrl: './breadcrumbs.html',\n styleUrls: ['./breadcrumbs.scss', './breadcrumbs-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-breadcrumbs',\n '[class.kbq-breadcrumbs_compact]': 'size() === \"compact\"',\n '[class.kbq-breadcrumbs_normal]': 'size() === \"normal\"',\n '[class.kbq-breadcrumbs_big]': 'size() === \"big\"',\n '[class.kbq-breadcrumbs_wrap]': 'wrapMode() === \"wrap\"',\n '[class.kbq-breadcrumbs_first-item-negative-margin]': 'firstItemNegativeMargin()',\n '[attr.aria-label]': \"'breadcrumb'\"\n },\n hostDirectives: [RdxRovingFocusGroupDirective]\n})\nexport class KbqBreadcrumbs {\n protected readonly configuration = inject(KBQ_BREADCRUMBS_CONFIGURATION);\n /**\n * Determines if a negative margin should be applied to the first breadcrumb item.\n *\n * @see KbqBreadcrumbsConfiguration\n */\n readonly firstItemNegativeMargin = input<boolean, unknown>(this.configuration.firstItemNegativeMargin, {\n transform: booleanAttribute\n });\n /**\n * Size of the breadcrumbs. Affects font size.\n * Default value is taken from the global configuration.\n */\n readonly size = input<KbqDefaultSizes>(this.configuration.size);\n /**\n * Maximum number of visible breadcrumb items.\n * Remaining items are collapsed into a dropdown if the total exceeds this value.\n * Default value is taken from the global configuration.\n */\n readonly max = input<number | null>(this.configuration.max);\n /**\n * Indicates whether the breadcrumbs are disabled.\n * When disabled, user interactions are blocked.\n */\n readonly disabled = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * Wrapping behavior of the breadcrumb items.\n */\n readonly wrapMode = input<KbqBreadcrumbsWrapMode>(this.configuration.wrapMode);\n\n @ContentChild(KbqBreadcrumbsSeparator, { read: TemplateRef })\n protected readonly separator?: TemplateRef<any>;\n\n protected readonly items = contentChildren<KbqBreadcrumbItem>(forwardRef(() => KbqBreadcrumbItem));\n\n private readonly breadcrumbsResult = viewChild('breadcrumbsResult', { read: ElementRef });\n private readonly resultDropdownTrigger = viewChild('breadcrumbsResult', { read: KbqDropdownTrigger });\n private readonly result = viewChild(KbqOverflowItemsResult);\n private readonly overflowItems = viewChildren<KbqOverflowItem>(forwardRef(() => KbqOverflowItem));\n private readonly overflowItemsDir = viewChild(KbqOverflowItems);\n\n /**\n * Ensures at least minimum number of breadcrumb items are shown.\n */\n protected readonly minVisibleItems = 2;\n protected readonly KbqComponentColors = KbqComponentColors;\n protected readonly KbqButtonStyles = KbqButtonStyles;\n protected readonly PopUpPlacements = PopUpPlacements;\n\n /** @docs-private */\n protected readonly itemsExcludingEdges = computed(() => this.items().slice(1, -1));\n protected readonly hiddenItemIDs = computed(\n () =>\n new Set(\n this.overflowItems()\n .filter((item) => item.hidden())\n .map((item) => item.id())\n )\n );\n\n /** @docs-private */\n protected readonly maxVisibleItems = computed((): number | null => {\n const max = this.max();\n const count = this.items().length;\n\n if (max === null || max >= count || max < this.minVisibleItems) return null;\n\n return max - 1;\n });\n\n private readonly maxHiddenItems = new Set<KbqOverflowItem>();\n\n constructor() {\n const group = inject(RdxRovingFocusGroupDirective, { self: true });\n\n group.orientation = 'horizontal';\n\n merge(\n toObservable(this.overflowItemsDir).pipe(\n switchMap((dir) => (dir ? outputToObservable(dir.changes) : EMPTY))\n ),\n toObservable(this.max).pipe(skip(1))\n )\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.enforceMaxVisible());\n\n effect(() => {\n const focusableItems = group.focusableItems();\n const expandButton = this.breadcrumbsResult()?.nativeElement;\n\n if (focusableItems.length < 2 || focusableItems[0] !== expandButton) return;\n\n const [first, second, ...rest] = focusableItems;\n\n group.focusableItems.set([second, first, ...rest]);\n });\n }\n\n private enforceMaxVisible(): void {\n const max = this.maxVisibleItems();\n const items = this.overflowItems();\n const result = this.result();\n const overflowHiddenIds = this.overflowItemsDir()?.hiddenItemIDs() ?? new Set();\n\n this.maxHiddenItems.forEach((item) => {\n if (!overflowHiddenIds.has(item.id())) {\n item.show();\n }\n });\n this.maxHiddenItems.clear();\n\n const allVisibleItems = items\n .map((item, index) => ({ item, order: item.order() ?? index }))\n .filter(({ item }) => !item.hidden());\n\n const extraToHide = max === null ? 0 : allVisibleItems.length - max;\n\n const hideResultIfAllVisible = () => {\n if (allVisibleItems.length === items.length) {\n result?.hide();\n this.resultDropdownTrigger()?.close();\n }\n };\n\n if (extraToHide <= 0) {\n hideResultIfAllVisible();\n\n return;\n }\n\n const hideable = allVisibleItems\n .filter(({ item }) => !item.alwaysVisible())\n .sort((a, b) => a.order - b.order)\n .map(({ item }) => item);\n\n for (let i = 0; i < extraToHide && i < hideable.length; i++) {\n hideable[i].hide();\n this.maxHiddenItems.add(hideable[i]);\n result?.show();\n }\n }\n}\n","@let allItems = items();\n@if (allItems.length < minVisibleItems || wrapMode() !== 'auto') {\n @for (item of allItems; track item) {\n <div class=\"kbq-breadcrumb-item__container\">\n <ng-container *ngTemplateOutlet=\"breadcrumbTemplate; context: { $implicit: item, last: $last }\" />\n @if (!$last) {\n <ng-container [ngTemplateOutlet]=\"separatorTemplate\" />\n }\n </div>\n }\n} @else {\n <div #kbqOverflowItems=\"kbqOverflowItems\" kbqOverflowItems reverseOverflowOrder class=\"layout-align-start-center\">\n <div class=\"kbq-breadcrumb-item__container\" [kbqOverflowItem]=\"0\" [order]=\"allItems.length\">\n <ng-container *ngTemplateOutlet=\"breadcrumbTemplate; context: { $implicit: allItems[0], last: false }\" />\n <ng-container [ngTemplateOutlet]=\"separatorTemplate\" />\n </div>\n <div kbqOverflowItemsResult class=\"kbq-breadcrumb-item__container\">\n <button\n #breadcrumbsResult\n kbq-button\n kbqBreadcrumb\n class=\"kbq-breadcrumb__expand\"\n [kbqDropdownTriggerFor]=\"hiddenBreadcrumbsDropdown\"\n [kbqStyle]=\"KbqButtonStyles.Transparent\"\n >\n <i kbq-icon=\"kbq-ellipsis-horizontal_16\" [color]=\"KbqComponentColors.ContrastFade\"></i>\n </button>\n <ng-container [ngTemplateOutlet]=\"separatorTemplate\" />\n\n <kbq-dropdown #hiddenBreadcrumbsDropdown=\"kbqDropdown\">\n @for (item of allItems; track item) {\n @if (hiddenItemIDs().has($index)) {\n <a kbq-dropdown-item [routerLink]=\"item.routerLink?.urlTree\" [disabled]=\"item.disabled()\">\n {{ item.text() }}\n </a>\n }\n }\n </kbq-dropdown>\n </div>\n @for (item of itemsExcludingEdges(); track item) {\n <div class=\"kbq-breadcrumb-item__container\" [kbqOverflowItem]=\"$index + 1\">\n <ng-container *ngTemplateOutlet=\"breadcrumbTemplate; context: { $implicit: item, last: false }\" />\n <ng-container [ngTemplateOutlet]=\"separatorTemplate\" />\n </div>\n }\n <div alwaysVisible class=\"kbq-breadcrumb-item__container\" [kbqOverflowItem]=\"allItems.length - 1\">\n <ng-container\n *ngTemplateOutlet=\"\n breadcrumbTemplate;\n context: { $implicit: allItems[allItems.length - 1], last: true }\n \"\n />\n </div>\n </div>\n}\n\n<ng-template #breadcrumbTemplate let-item let-last=\"last\">\n @if (item.customTemplateRef()) {\n <ng-container [ngTemplateOutlet]=\"item.customTemplateRef()!\" />\n } @else {\n <a\n kbq-button\n kbq-title\n kbqBreadcrumb\n [focusable]=\"!item.disabled() && !last\"\n [routerLink]=\"item.routerLink?.urlTree\"\n [attr.aria-current]=\"last ? 'page' : null\"\n [disabled]=\"item.disabled() || last\"\n [kbqPlacementPriority]=\"PopUpPlacements.Bottom\"\n [kbqTooltipArrow]=\"false\"\n >\n {{ item.text() }}\n </a>\n }\n</ng-template>\n\n<ng-template #separatorTemplate>\n @if (separator) {\n <ng-container [ngTemplateOutlet]=\"separator\" />\n } @else {\n <i kbq-icon=\"\" class=\"kbq-breadcrumb__separator\" [color]=\"KbqComponentColors.ContrastFade\"> / </i>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport {\n KbqBreadcrumbButton,\n KbqBreadcrumbItem,\n KbqBreadcrumbs,\n KbqBreadcrumbsSeparator,\n KbqBreadcrumbView\n} from './breadcrumbs';\n\nconst COMPONENTS = [\n KbqBreadcrumbs,\n KbqBreadcrumbItem,\n KbqBreadcrumbView,\n KbqBreadcrumbsSeparator,\n KbqBreadcrumbButton\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqBreadcrumbsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.RdxRovingFocusItemDirective","i2.RdxRovingFocusGroupDirective"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { FocusMonitor } from '@angular/cdk/a11y';
|
|
|
2
2
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
3
3
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
|
-
import { forwardRef, inject, ChangeDetectorRef, contentChildren, output, Input, Directive, ElementRef, viewChild,
|
|
5
|
+
import { forwardRef, inject, ChangeDetectorRef, input, booleanAttribute, contentChildren, output, Input, Directive, ElementRef, viewChild, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
6
6
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
7
7
|
import * as i1 from '@koobiq/components/button';
|
|
8
8
|
import { KbqButton, KbqButtonModule } from '@koobiq/components/button';
|
|
@@ -35,6 +35,8 @@ class KbqButtonToggleChange {
|
|
|
35
35
|
class KbqButtonToggleGroup {
|
|
36
36
|
constructor() {
|
|
37
37
|
this._changeDetector = inject(ChangeDetectorRef);
|
|
38
|
+
/** Whether the toggle group stretches to fill its container width, with toggles sharing equal space. */
|
|
39
|
+
this.stretched = input(false, ...(ngDevMode ? [{ debugName: "stretched", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
38
40
|
/** Child button toggle buttons. */
|
|
39
41
|
this.buttonToggles = contentChildren(forwardRef(() => KbqButtonToggle), ...(ngDevMode ? [{ debugName: "buttonToggles" }] : []));
|
|
40
42
|
/**
|
|
@@ -216,7 +218,7 @@ class KbqButtonToggleGroup {
|
|
|
216
218
|
}
|
|
217
219
|
}
|
|
218
220
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqButtonToggleGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
219
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.25", type: KbqButtonToggleGroup, isStandalone: true, selector: "kbq-button-toggle-group", inputs: { vertical: "vertical", value: "value", multiple: "multiple", disabled: "disabled" }, outputs: { valueChange: "valueChange", change: "change" }, host: { properties: { "class.kbq-button-toggle_vertical": "vertical" }, classAttribute: "kbq-button-toggle-group" }, providers: [KBQ_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR], queries: [{ propertyName: "buttonToggles", predicate: i0.forwardRef(() => KbqButtonToggle), isSignal: true }], exportAs: ["kbqButtonToggleGroup"], ngImport: i0 }); }
|
|
221
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.25", type: KbqButtonToggleGroup, isStandalone: true, selector: "kbq-button-toggle-group", inputs: { vertical: { classPropertyName: "vertical", publicName: "vertical", isSignal: false, isRequired: false, transformFunction: null }, stretched: { classPropertyName: "stretched", publicName: "stretched", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", change: "change" }, host: { properties: { "class.kbq-button-toggle_vertical": "vertical", "class.kbq-button-toggle-group_stretched": "stretched()" }, classAttribute: "kbq-button-toggle-group" }, providers: [KBQ_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR], queries: [{ propertyName: "buttonToggles", predicate: i0.forwardRef(() => KbqButtonToggle), isSignal: true }], exportAs: ["kbqButtonToggleGroup"], ngImport: i0 }); }
|
|
220
222
|
}
|
|
221
223
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqButtonToggleGroup, decorators: [{
|
|
222
224
|
type: Directive,
|
|
@@ -225,13 +227,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
225
227
|
providers: [KBQ_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR],
|
|
226
228
|
host: {
|
|
227
229
|
class: 'kbq-button-toggle-group',
|
|
228
|
-
'[class.kbq-button-toggle_vertical]': 'vertical'
|
|
230
|
+
'[class.kbq-button-toggle_vertical]': 'vertical',
|
|
231
|
+
'[class.kbq-button-toggle-group_stretched]': 'stretched()'
|
|
229
232
|
},
|
|
230
233
|
exportAs: 'kbqButtonToggleGroup'
|
|
231
234
|
}]
|
|
232
235
|
}], propDecorators: { vertical: [{
|
|
233
236
|
type: Input
|
|
234
|
-
}], value: [{
|
|
237
|
+
}], stretched: [{ type: i0.Input, args: [{ isSignal: true, alias: "stretched", required: false }] }], value: [{
|
|
235
238
|
type: Input
|
|
236
239
|
}], multiple: [{
|
|
237
240
|
type: Input
|
|
@@ -352,7 +355,7 @@ class KbqButtonToggle {
|
|
|
352
355
|
<ng-content />
|
|
353
356
|
</div>
|
|
354
357
|
</button>
|
|
355
|
-
`, isInline: true, styles: [".kbq-button-toggle-group{box-sizing:border-box;display:inline-flex;flex-direction:row;align-items:center;gap:var(--kbq-button-toggle-size-container-content-gap-horizontal);border-radius:var(--kbq-button-toggle-size-container-border-radius);padding:var(--kbq-button-toggle-size-container-padding-vertical) var(--kbq-button-toggle-size-container-padding-horizontal)}.kbq-button-toggle-group .kbq-button-toggle{display:flex;overflow:hidden;justify-content:flex-start;align-items:center;height:var(--kbq-button-toggle-size-item-height);min-height:var(--kbq-button-toggle-size-item-height);border-radius:var(--kbq-button-toggle-size-item-border-radius);border:var(--kbq-size-border-width) solid transparent}.kbq-button-toggle-group .kbq-button-toggle.cdk-keyboard-focused{outline:1px solid var(--kbq-states-line-focus-theme);border-color:var(--kbq-states-line-focus-theme)}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle>.kbq-button-icon{height:inherit;min-height:inherit;border-radius:var(--kbq-button-toggle-size-item-border-radius);border-width:0;padding:calc(var(--kbq-button-toggle-size-item-padding-vertical) - var(--kbq-button-toggle-size-item-focus-outline-width)) calc(var(--kbq-button-toggle-size-item-padding-horizontal) - var(--kbq-button-toggle-size-item-focus-outline-width))}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button .kbq-button-wrapper,.kbq-button-toggle-group .kbq-button-toggle>.kbq-button-icon .kbq-button-wrapper{width:100%}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button .kbq-button-toggle-wrapper,.kbq-button-toggle-group .kbq-button-toggle>.kbq-button-icon .kbq-button-toggle-wrapper{display:inline-flex;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;align-items:center;width:100%;gap:var(--kbq-button-toggle-size-item-content-gap-horizontal)}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button.cdk-keyboard-focused,.kbq-button-toggle-group .kbq-button-toggle>.kbq-button-icon.cdk-keyboard-focused{outline:none}.kbq-button-toggle-group:not(.kbq-button-toggle_vertical) .kbq-button-toggle>.kbq-button,.kbq-button-toggle-group:not(.kbq-button-toggle_vertical) .kbq-button-toggle>.kbq-button-icon{max-width:100%;height:var(--kbq-button-toggle-size-item-height)}.kbq-button-toggle_vertical{flex-direction:column}.kbq-button-toggle_vertical .kbq-button-toggle{width:100%}.kbq-button-toggle_vertical .kbq-button-toggle>.kbq-button,.kbq-button-toggle_vertical .kbq-button-toggle>.kbq-button-icon{width:100%;border-radius:var(--kbq-button-toggle-size-item-border-radius)}.kbq-button-toggle-group{background:var(--kbq-button-toggle-container-background)}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle>.kbq-icon-button{background:var(--kbq-button-toggle-item-default-background);color:var(--kbq-button-toggle-item-default-text)}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-default-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-hover:not(.kbq-disabled)>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-hover:not(.kbq-disabled)>.kbq-icon-button,.kbq-button-toggle-group .kbq-button-toggle:hover:not(.kbq-disabled)>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle:hover:not(.kbq-disabled)>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-hover-background);color:var(--kbq-button-toggle-item-states-hover-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-hover:not(.kbq-disabled)>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-hover:not(.kbq-disabled)>.kbq-icon-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle:hover:not(.kbq-disabled)>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle:hover:not(.kbq-disabled)>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-hover-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-active:not(.kbq-disabled)>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-active:not(.kbq-disabled)>.kbq-icon-button,.kbq-button-toggle-group .kbq-button-toggle:active:not(.kbq-disabled)>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle:active:not(.kbq-disabled)>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-active-background);color:var(--kbq-button-toggle-item-states-active-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-active:not(.kbq-disabled)>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-active:not(.kbq-disabled)>.kbq-icon-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle:active:not(.kbq-disabled)>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle:active:not(.kbq-disabled)>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-active-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled)>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled)>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-selected-background);color:var(--kbq-button-toggle-item-states-selected-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled)>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled)>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-selected-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled).kbq-active>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled).kbq-active>.kbq-icon-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled):active>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled):active>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-selected-active-background);color:var(--kbq-button-toggle-item-states-selected-active-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled).kbq-active>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled).kbq-active>.kbq-icon-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled):active>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled):active>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-selected-active-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-disabled-background);color:var(--kbq-button-toggle-item-states-disabled-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-disabled-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled.kbq-selected>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled.kbq-selected>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-selected-disabled-background);color:var(--kbq-button-toggle-item-states-selected-disabled-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled.kbq-selected>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled.kbq-selected>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-selected-disabled-icon)}.kbq-button-toggle-group .kbq-button-toggle.cdk-keyboard-focused{border-color:var(--kbq-button-toggle-item-states-focused-outline)}.kbq-button-toggle .kbq-button-toggle-wrapper{font-size:var(--kbq-typography-text-normal-medium-font-size);font-style:var(--kbq-typography-text-normal-medium-font-style);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}\n", ".kbq-button-toggle-group{--kbq-button-toggle-size-container-border-radius: var(--kbq-size-border-radius);--kbq-button-toggle-size-container-padding-horizontal: var(--kbq-size-xxs);--kbq-button-toggle-size-container-padding-vertical: var(--kbq-size-xxs);--kbq-button-toggle-size-container-content-gap-horizontal: var(--kbq-size-xxs);--kbq-button-toggle-size-item-height: 22px;--kbq-button-toggle-size-item-border-radius: var(--kbq-size-xxs);--kbq-button-toggle-size-item-padding-horizontal: var(--kbq-size-s);--kbq-button-toggle-size-item-padding-vertical: var(--kbq-size-3xs);--kbq-button-toggle-size-item-content-gap-horizontal: var(--kbq-size-xxs);--kbq-button-toggle-size-item-focus-outline-width: var(--kbq-size-3xs);--kbq-button-toggle-container-background: var(--kbq-background-contrast-fade);--kbq-button-toggle-item-default-background: var(--kbq-background-transparent);--kbq-button-toggle-item-default-text: var(--kbq-foreground-contrast);--kbq-button-toggle-item-default-icon: var(--kbq-icon-contrast-fade);--kbq-button-toggle-item-states-hover-background: var(--kbq-states-background-contrast-fade-hover);--kbq-button-toggle-item-states-hover-text: var(--kbq-foreground-contrast);--kbq-button-toggle-item-states-hover-icon: var(--kbq-icon-contrast-fade);--kbq-button-toggle-item-states-active-background: var(--kbq-states-background-contrast-fade-active);--kbq-button-toggle-item-states-active-text: var(--kbq-foreground-contrast);--kbq-button-toggle-item-states-active-icon: var(--kbq-icon-contrast-fade);--kbq-button-toggle-item-states-selected-background: var(--kbq-background-card);--kbq-button-toggle-item-states-selected-text: var(--kbq-foreground-contrast);--kbq-button-toggle-item-states-selected-icon: var(--kbq-icon-contrast-fade);--kbq-button-toggle-item-states-selected-active-background: var(--kbq-states-background-transparent-active);--kbq-button-toggle-item-states-selected-active-text: var(--kbq-foreground-contrast);--kbq-button-toggle-item-states-selected-active-icon: var(--kbq-icon-contrast-fade);--kbq-button-toggle-item-states-selected-disabled-background: var(--kbq-states-background-disabled);--kbq-button-toggle-item-states-selected-disabled-text: var(--kbq-states-foreground-disabled);--kbq-button-toggle-item-states-selected-disabled-icon: var(--kbq-states-icon-disabled);--kbq-button-toggle-item-states-disabled-background: none;--kbq-button-toggle-item-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-button-toggle-item-states-disabled-icon: var(--kbq-states-icon-disabled);--kbq-button-toggle-item-states-focused-outline: var(--kbq-states-line-focus-theme)}\n"], dependencies: [{ kind: "directive", type: KbqTitleDirective, selector: "[kbq-title]", exportAs: ["kbqTitle"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
358
|
+
`, isInline: true, styles: [".kbq-button-toggle-group{box-sizing:border-box;display:inline-flex;flex-direction:row;align-items:center;gap:var(--kbq-button-toggle-size-container-content-gap-horizontal);border-radius:var(--kbq-button-toggle-size-container-border-radius);padding:var(--kbq-button-toggle-size-container-padding-vertical) var(--kbq-button-toggle-size-container-padding-horizontal)}.kbq-button-toggle-group .kbq-button-toggle{display:flex;overflow:hidden;justify-content:flex-start;align-items:center;height:var(--kbq-button-toggle-size-item-height);min-height:var(--kbq-button-toggle-size-item-height);border-radius:var(--kbq-button-toggle-size-item-border-radius);border:var(--kbq-size-border-width) solid transparent}.kbq-button-toggle-group .kbq-button-toggle.cdk-keyboard-focused{outline:1px solid var(--kbq-states-line-focus-theme);border-color:var(--kbq-states-line-focus-theme)}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle>.kbq-button-icon{height:inherit;min-height:inherit;border-radius:var(--kbq-button-toggle-size-item-border-radius);border-width:0;padding:calc(var(--kbq-button-toggle-size-item-padding-vertical) - var(--kbq-button-toggle-size-item-focus-outline-width)) calc(var(--kbq-button-toggle-size-item-padding-horizontal) - var(--kbq-button-toggle-size-item-focus-outline-width))}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button .kbq-button-wrapper,.kbq-button-toggle-group .kbq-button-toggle>.kbq-button-icon .kbq-button-wrapper{width:100%}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button .kbq-button-toggle-wrapper,.kbq-button-toggle-group .kbq-button-toggle>.kbq-button-icon .kbq-button-toggle-wrapper{display:inline-flex;justify-content:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;align-items:center;width:100%;gap:var(--kbq-button-toggle-size-item-content-gap-horizontal)}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button.cdk-keyboard-focused,.kbq-button-toggle-group .kbq-button-toggle>.kbq-button-icon.cdk-keyboard-focused{outline:none}.kbq-button-toggle-group:not(.kbq-button-toggle_vertical) .kbq-button-toggle>.kbq-button,.kbq-button-toggle-group:not(.kbq-button-toggle_vertical) .kbq-button-toggle>.kbq-button-icon{max-width:100%;height:var(--kbq-button-toggle-size-item-height)}.kbq-button-toggle-group.kbq-button-toggle-group_stretched{width:100%}.kbq-button-toggle-group.kbq-button-toggle-group_stretched .kbq-button-toggle{flex:1}.kbq-button-toggle-group.kbq-button-toggle-group_stretched .kbq-button-toggle>.kbq-button,.kbq-button-toggle-group.kbq-button-toggle-group_stretched .kbq-button-toggle>.kbq-button-icon{width:100%;flex:1}.kbq-button-toggle-group.kbq-button-toggle-group_stretched .kbq-button-toggle>.kbq-button .kbq-button-wrapper,.kbq-button-toggle-group.kbq-button-toggle-group_stretched .kbq-button-toggle>.kbq-button-icon .kbq-button-wrapper{justify-content:center}.kbq-button-toggle-group.kbq-button-toggle-group_stretched .kbq-button-toggle>.kbq-button .kbq-button-toggle-wrapper,.kbq-button-toggle-group.kbq-button-toggle-group_stretched .kbq-button-toggle>.kbq-button-icon .kbq-button-toggle-wrapper{display:block}.kbq-button-toggle_vertical{flex-direction:column}.kbq-button-toggle_vertical .kbq-button-toggle{width:100%}.kbq-button-toggle_vertical .kbq-button-toggle>.kbq-button,.kbq-button-toggle_vertical .kbq-button-toggle>.kbq-button-icon{width:100%;border-radius:var(--kbq-button-toggle-size-item-border-radius)}.kbq-button-toggle-group{background:var(--kbq-button-toggle-container-background)}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle>.kbq-icon-button{background:var(--kbq-button-toggle-item-default-background);color:var(--kbq-button-toggle-item-default-text)}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-default-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-hover:not(.kbq-disabled)>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-hover:not(.kbq-disabled)>.kbq-icon-button,.kbq-button-toggle-group .kbq-button-toggle:hover:not(.kbq-disabled)>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle:hover:not(.kbq-disabled)>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-hover-background);color:var(--kbq-button-toggle-item-states-hover-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-hover:not(.kbq-disabled)>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-hover:not(.kbq-disabled)>.kbq-icon-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle:hover:not(.kbq-disabled)>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle:hover:not(.kbq-disabled)>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-hover-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-active:not(.kbq-disabled)>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-active:not(.kbq-disabled)>.kbq-icon-button,.kbq-button-toggle-group .kbq-button-toggle:active:not(.kbq-disabled)>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle:active:not(.kbq-disabled)>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-active-background);color:var(--kbq-button-toggle-item-states-active-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-active:not(.kbq-disabled)>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-active:not(.kbq-disabled)>.kbq-icon-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle:active:not(.kbq-disabled)>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle:active:not(.kbq-disabled)>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-active-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled)>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled)>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-selected-background);color:var(--kbq-button-toggle-item-states-selected-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled)>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled)>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-selected-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled).kbq-active>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled).kbq-active>.kbq-icon-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled):active>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled):active>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-selected-active-background);color:var(--kbq-button-toggle-item-states-selected-active-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled).kbq-active>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled).kbq-active>.kbq-icon-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled):active>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled):active>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-selected-active-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-disabled-background);color:var(--kbq-button-toggle-item-states-disabled-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-disabled-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled.kbq-selected>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled.kbq-selected>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-selected-disabled-background);color:var(--kbq-button-toggle-item-states-selected-disabled-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled.kbq-selected>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled.kbq-selected>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-selected-disabled-icon)}.kbq-button-toggle-group .kbq-button-toggle.cdk-keyboard-focused{border-color:var(--kbq-button-toggle-item-states-focused-outline)}.kbq-button-toggle .kbq-button-toggle-wrapper{font-size:var(--kbq-typography-text-normal-medium-font-size);font-style:var(--kbq-typography-text-normal-medium-font-style);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}\n", ".kbq-button-toggle-group{--kbq-button-toggle-size-container-border-radius: var(--kbq-size-border-radius);--kbq-button-toggle-size-container-padding-horizontal: var(--kbq-size-xxs);--kbq-button-toggle-size-container-padding-vertical: var(--kbq-size-xxs);--kbq-button-toggle-size-container-content-gap-horizontal: var(--kbq-size-xxs);--kbq-button-toggle-size-item-height: 22px;--kbq-button-toggle-size-item-border-radius: var(--kbq-size-xxs);--kbq-button-toggle-size-item-padding-horizontal: var(--kbq-size-s);--kbq-button-toggle-size-item-padding-vertical: var(--kbq-size-3xs);--kbq-button-toggle-size-item-content-gap-horizontal: var(--kbq-size-xxs);--kbq-button-toggle-size-item-focus-outline-width: var(--kbq-size-3xs);--kbq-button-toggle-container-background: var(--kbq-background-contrast-fade);--kbq-button-toggle-item-default-background: var(--kbq-background-transparent);--kbq-button-toggle-item-default-text: var(--kbq-foreground-contrast);--kbq-button-toggle-item-default-icon: var(--kbq-icon-contrast-fade);--kbq-button-toggle-item-states-hover-background: var(--kbq-states-background-contrast-fade-hover);--kbq-button-toggle-item-states-hover-text: var(--kbq-foreground-contrast);--kbq-button-toggle-item-states-hover-icon: var(--kbq-icon-contrast-fade);--kbq-button-toggle-item-states-active-background: var(--kbq-states-background-contrast-fade-active);--kbq-button-toggle-item-states-active-text: var(--kbq-foreground-contrast);--kbq-button-toggle-item-states-active-icon: var(--kbq-icon-contrast-fade);--kbq-button-toggle-item-states-selected-background: var(--kbq-background-card);--kbq-button-toggle-item-states-selected-text: var(--kbq-foreground-contrast);--kbq-button-toggle-item-states-selected-icon: var(--kbq-icon-contrast-fade);--kbq-button-toggle-item-states-selected-active-background: var(--kbq-states-background-transparent-active);--kbq-button-toggle-item-states-selected-active-text: var(--kbq-foreground-contrast);--kbq-button-toggle-item-states-selected-active-icon: var(--kbq-icon-contrast-fade);--kbq-button-toggle-item-states-selected-disabled-background: var(--kbq-states-background-disabled);--kbq-button-toggle-item-states-selected-disabled-text: var(--kbq-states-foreground-disabled);--kbq-button-toggle-item-states-selected-disabled-icon: var(--kbq-states-icon-disabled);--kbq-button-toggle-item-states-disabled-background: none;--kbq-button-toggle-item-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-button-toggle-item-states-disabled-icon: var(--kbq-states-icon-disabled);--kbq-button-toggle-item-states-focused-outline: var(--kbq-states-line-focus-theme)}\n"], dependencies: [{ kind: "directive", type: KbqTitleDirective, selector: "[kbq-title]", inputs: ["kbq-title"], exportAs: ["kbqTitle"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
356
359
|
}
|
|
357
360
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqButtonToggle, decorators: [{
|
|
358
361
|
type: Component,
|
|
@@ -379,7 +382,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
379
382
|
'[class]': '"kbq-button-toggle" + iconType',
|
|
380
383
|
'[class.kbq-disabled]': 'disabled',
|
|
381
384
|
'[class.kbq-selected]': 'checked'
|
|
382
|
-
}, exportAs: 'kbqButtonToggle', styles: [".kbq-button-toggle-group{box-sizing:border-box;display:inline-flex;flex-direction:row;align-items:center;gap:var(--kbq-button-toggle-size-container-content-gap-horizontal);border-radius:var(--kbq-button-toggle-size-container-border-radius);padding:var(--kbq-button-toggle-size-container-padding-vertical) var(--kbq-button-toggle-size-container-padding-horizontal)}.kbq-button-toggle-group .kbq-button-toggle{display:flex;overflow:hidden;justify-content:flex-start;align-items:center;height:var(--kbq-button-toggle-size-item-height);min-height:var(--kbq-button-toggle-size-item-height);border-radius:var(--kbq-button-toggle-size-item-border-radius);border:var(--kbq-size-border-width) solid transparent}.kbq-button-toggle-group .kbq-button-toggle.cdk-keyboard-focused{outline:1px solid var(--kbq-states-line-focus-theme);border-color:var(--kbq-states-line-focus-theme)}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle>.kbq-button-icon{height:inherit;min-height:inherit;border-radius:var(--kbq-button-toggle-size-item-border-radius);border-width:0;padding:calc(var(--kbq-button-toggle-size-item-padding-vertical) - var(--kbq-button-toggle-size-item-focus-outline-width)) calc(var(--kbq-button-toggle-size-item-padding-horizontal) - var(--kbq-button-toggle-size-item-focus-outline-width))}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button .kbq-button-wrapper,.kbq-button-toggle-group .kbq-button-toggle>.kbq-button-icon .kbq-button-wrapper{width:100%}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button .kbq-button-toggle-wrapper,.kbq-button-toggle-group .kbq-button-toggle>.kbq-button-icon .kbq-button-toggle-wrapper{display:inline-flex;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;align-items:center;width:100%;gap:var(--kbq-button-toggle-size-item-content-gap-horizontal)}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button.cdk-keyboard-focused,.kbq-button-toggle-group .kbq-button-toggle>.kbq-button-icon.cdk-keyboard-focused{outline:none}.kbq-button-toggle-group:not(.kbq-button-toggle_vertical) .kbq-button-toggle>.kbq-button,.kbq-button-toggle-group:not(.kbq-button-toggle_vertical) .kbq-button-toggle>.kbq-button-icon{max-width:100%;height:var(--kbq-button-toggle-size-item-height)}.kbq-button-toggle_vertical{flex-direction:column}.kbq-button-toggle_vertical .kbq-button-toggle{width:100%}.kbq-button-toggle_vertical .kbq-button-toggle>.kbq-button,.kbq-button-toggle_vertical .kbq-button-toggle>.kbq-button-icon{width:100%;border-radius:var(--kbq-button-toggle-size-item-border-radius)}.kbq-button-toggle-group{background:var(--kbq-button-toggle-container-background)}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle>.kbq-icon-button{background:var(--kbq-button-toggle-item-default-background);color:var(--kbq-button-toggle-item-default-text)}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-default-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-hover:not(.kbq-disabled)>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-hover:not(.kbq-disabled)>.kbq-icon-button,.kbq-button-toggle-group .kbq-button-toggle:hover:not(.kbq-disabled)>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle:hover:not(.kbq-disabled)>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-hover-background);color:var(--kbq-button-toggle-item-states-hover-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-hover:not(.kbq-disabled)>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-hover:not(.kbq-disabled)>.kbq-icon-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle:hover:not(.kbq-disabled)>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle:hover:not(.kbq-disabled)>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-hover-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-active:not(.kbq-disabled)>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-active:not(.kbq-disabled)>.kbq-icon-button,.kbq-button-toggle-group .kbq-button-toggle:active:not(.kbq-disabled)>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle:active:not(.kbq-disabled)>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-active-background);color:var(--kbq-button-toggle-item-states-active-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-active:not(.kbq-disabled)>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-active:not(.kbq-disabled)>.kbq-icon-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle:active:not(.kbq-disabled)>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle:active:not(.kbq-disabled)>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-active-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled)>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled)>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-selected-background);color:var(--kbq-button-toggle-item-states-selected-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled)>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled)>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-selected-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled).kbq-active>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled).kbq-active>.kbq-icon-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled):active>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled):active>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-selected-active-background);color:var(--kbq-button-toggle-item-states-selected-active-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled).kbq-active>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled).kbq-active>.kbq-icon-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled):active>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled):active>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-selected-active-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-disabled-background);color:var(--kbq-button-toggle-item-states-disabled-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-disabled-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled.kbq-selected>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled.kbq-selected>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-selected-disabled-background);color:var(--kbq-button-toggle-item-states-selected-disabled-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled.kbq-selected>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled.kbq-selected>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-selected-disabled-icon)}.kbq-button-toggle-group .kbq-button-toggle.cdk-keyboard-focused{border-color:var(--kbq-button-toggle-item-states-focused-outline)}.kbq-button-toggle .kbq-button-toggle-wrapper{font-size:var(--kbq-typography-text-normal-medium-font-size);font-style:var(--kbq-typography-text-normal-medium-font-style);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}\n", ".kbq-button-toggle-group{--kbq-button-toggle-size-container-border-radius: var(--kbq-size-border-radius);--kbq-button-toggle-size-container-padding-horizontal: var(--kbq-size-xxs);--kbq-button-toggle-size-container-padding-vertical: var(--kbq-size-xxs);--kbq-button-toggle-size-container-content-gap-horizontal: var(--kbq-size-xxs);--kbq-button-toggle-size-item-height: 22px;--kbq-button-toggle-size-item-border-radius: var(--kbq-size-xxs);--kbq-button-toggle-size-item-padding-horizontal: var(--kbq-size-s);--kbq-button-toggle-size-item-padding-vertical: var(--kbq-size-3xs);--kbq-button-toggle-size-item-content-gap-horizontal: var(--kbq-size-xxs);--kbq-button-toggle-size-item-focus-outline-width: var(--kbq-size-3xs);--kbq-button-toggle-container-background: var(--kbq-background-contrast-fade);--kbq-button-toggle-item-default-background: var(--kbq-background-transparent);--kbq-button-toggle-item-default-text: var(--kbq-foreground-contrast);--kbq-button-toggle-item-default-icon: var(--kbq-icon-contrast-fade);--kbq-button-toggle-item-states-hover-background: var(--kbq-states-background-contrast-fade-hover);--kbq-button-toggle-item-states-hover-text: var(--kbq-foreground-contrast);--kbq-button-toggle-item-states-hover-icon: var(--kbq-icon-contrast-fade);--kbq-button-toggle-item-states-active-background: var(--kbq-states-background-contrast-fade-active);--kbq-button-toggle-item-states-active-text: var(--kbq-foreground-contrast);--kbq-button-toggle-item-states-active-icon: var(--kbq-icon-contrast-fade);--kbq-button-toggle-item-states-selected-background: var(--kbq-background-card);--kbq-button-toggle-item-states-selected-text: var(--kbq-foreground-contrast);--kbq-button-toggle-item-states-selected-icon: var(--kbq-icon-contrast-fade);--kbq-button-toggle-item-states-selected-active-background: var(--kbq-states-background-transparent-active);--kbq-button-toggle-item-states-selected-active-text: var(--kbq-foreground-contrast);--kbq-button-toggle-item-states-selected-active-icon: var(--kbq-icon-contrast-fade);--kbq-button-toggle-item-states-selected-disabled-background: var(--kbq-states-background-disabled);--kbq-button-toggle-item-states-selected-disabled-text: var(--kbq-states-foreground-disabled);--kbq-button-toggle-item-states-selected-disabled-icon: var(--kbq-states-icon-disabled);--kbq-button-toggle-item-states-disabled-background: none;--kbq-button-toggle-item-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-button-toggle-item-states-disabled-icon: var(--kbq-states-icon-disabled);--kbq-button-toggle-item-states-focused-outline: var(--kbq-states-line-focus-theme)}\n"] }]
|
|
385
|
+
}, exportAs: 'kbqButtonToggle', styles: [".kbq-button-toggle-group{box-sizing:border-box;display:inline-flex;flex-direction:row;align-items:center;gap:var(--kbq-button-toggle-size-container-content-gap-horizontal);border-radius:var(--kbq-button-toggle-size-container-border-radius);padding:var(--kbq-button-toggle-size-container-padding-vertical) var(--kbq-button-toggle-size-container-padding-horizontal)}.kbq-button-toggle-group .kbq-button-toggle{display:flex;overflow:hidden;justify-content:flex-start;align-items:center;height:var(--kbq-button-toggle-size-item-height);min-height:var(--kbq-button-toggle-size-item-height);border-radius:var(--kbq-button-toggle-size-item-border-radius);border:var(--kbq-size-border-width) solid transparent}.kbq-button-toggle-group .kbq-button-toggle.cdk-keyboard-focused{outline:1px solid var(--kbq-states-line-focus-theme);border-color:var(--kbq-states-line-focus-theme)}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle>.kbq-button-icon{height:inherit;min-height:inherit;border-radius:var(--kbq-button-toggle-size-item-border-radius);border-width:0;padding:calc(var(--kbq-button-toggle-size-item-padding-vertical) - var(--kbq-button-toggle-size-item-focus-outline-width)) calc(var(--kbq-button-toggle-size-item-padding-horizontal) - var(--kbq-button-toggle-size-item-focus-outline-width))}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button .kbq-button-wrapper,.kbq-button-toggle-group .kbq-button-toggle>.kbq-button-icon .kbq-button-wrapper{width:100%}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button .kbq-button-toggle-wrapper,.kbq-button-toggle-group .kbq-button-toggle>.kbq-button-icon .kbq-button-toggle-wrapper{display:inline-flex;justify-content:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;align-items:center;width:100%;gap:var(--kbq-button-toggle-size-item-content-gap-horizontal)}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button.cdk-keyboard-focused,.kbq-button-toggle-group .kbq-button-toggle>.kbq-button-icon.cdk-keyboard-focused{outline:none}.kbq-button-toggle-group:not(.kbq-button-toggle_vertical) .kbq-button-toggle>.kbq-button,.kbq-button-toggle-group:not(.kbq-button-toggle_vertical) .kbq-button-toggle>.kbq-button-icon{max-width:100%;height:var(--kbq-button-toggle-size-item-height)}.kbq-button-toggle-group.kbq-button-toggle-group_stretched{width:100%}.kbq-button-toggle-group.kbq-button-toggle-group_stretched .kbq-button-toggle{flex:1}.kbq-button-toggle-group.kbq-button-toggle-group_stretched .kbq-button-toggle>.kbq-button,.kbq-button-toggle-group.kbq-button-toggle-group_stretched .kbq-button-toggle>.kbq-button-icon{width:100%;flex:1}.kbq-button-toggle-group.kbq-button-toggle-group_stretched .kbq-button-toggle>.kbq-button .kbq-button-wrapper,.kbq-button-toggle-group.kbq-button-toggle-group_stretched .kbq-button-toggle>.kbq-button-icon .kbq-button-wrapper{justify-content:center}.kbq-button-toggle-group.kbq-button-toggle-group_stretched .kbq-button-toggle>.kbq-button .kbq-button-toggle-wrapper,.kbq-button-toggle-group.kbq-button-toggle-group_stretched .kbq-button-toggle>.kbq-button-icon .kbq-button-toggle-wrapper{display:block}.kbq-button-toggle_vertical{flex-direction:column}.kbq-button-toggle_vertical .kbq-button-toggle{width:100%}.kbq-button-toggle_vertical .kbq-button-toggle>.kbq-button,.kbq-button-toggle_vertical .kbq-button-toggle>.kbq-button-icon{width:100%;border-radius:var(--kbq-button-toggle-size-item-border-radius)}.kbq-button-toggle-group{background:var(--kbq-button-toggle-container-background)}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle>.kbq-icon-button{background:var(--kbq-button-toggle-item-default-background);color:var(--kbq-button-toggle-item-default-text)}.kbq-button-toggle-group .kbq-button-toggle>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-default-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-hover:not(.kbq-disabled)>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-hover:not(.kbq-disabled)>.kbq-icon-button,.kbq-button-toggle-group .kbq-button-toggle:hover:not(.kbq-disabled)>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle:hover:not(.kbq-disabled)>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-hover-background);color:var(--kbq-button-toggle-item-states-hover-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-hover:not(.kbq-disabled)>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-hover:not(.kbq-disabled)>.kbq-icon-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle:hover:not(.kbq-disabled)>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle:hover:not(.kbq-disabled)>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-hover-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-active:not(.kbq-disabled)>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-active:not(.kbq-disabled)>.kbq-icon-button,.kbq-button-toggle-group .kbq-button-toggle:active:not(.kbq-disabled)>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle:active:not(.kbq-disabled)>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-active-background);color:var(--kbq-button-toggle-item-states-active-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-active:not(.kbq-disabled)>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-active:not(.kbq-disabled)>.kbq-icon-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle:active:not(.kbq-disabled)>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle:active:not(.kbq-disabled)>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-active-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled)>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled)>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-selected-background);color:var(--kbq-button-toggle-item-states-selected-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled)>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled)>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-selected-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled).kbq-active>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled).kbq-active>.kbq-icon-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled):active>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled):active>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-selected-active-background);color:var(--kbq-button-toggle-item-states-selected-active-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled).kbq-active>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled).kbq-active>.kbq-icon-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled):active>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-selected:not(.kbq-disabled):active>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-selected-active-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-disabled-background);color:var(--kbq-button-toggle-item-states-disabled-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-disabled-icon)}.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled.kbq-selected>.kbq-button,.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled.kbq-selected>.kbq-icon-button{background:var(--kbq-button-toggle-item-states-selected-disabled-background);color:var(--kbq-button-toggle-item-states-selected-disabled-text)}.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled.kbq-selected>.kbq-button .kbq-icon.kbq-empty,.kbq-button-toggle-group .kbq-button-toggle.kbq-disabled.kbq-selected>.kbq-icon-button .kbq-icon.kbq-empty{color:var(--kbq-button-toggle-item-states-selected-disabled-icon)}.kbq-button-toggle-group .kbq-button-toggle.cdk-keyboard-focused{border-color:var(--kbq-button-toggle-item-states-focused-outline)}.kbq-button-toggle .kbq-button-toggle-wrapper{font-size:var(--kbq-typography-text-normal-medium-font-size);font-style:var(--kbq-typography-text-normal-medium-font-style);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}\n", ".kbq-button-toggle-group{--kbq-button-toggle-size-container-border-radius: var(--kbq-size-border-radius);--kbq-button-toggle-size-container-padding-horizontal: var(--kbq-size-xxs);--kbq-button-toggle-size-container-padding-vertical: var(--kbq-size-xxs);--kbq-button-toggle-size-container-content-gap-horizontal: var(--kbq-size-xxs);--kbq-button-toggle-size-item-height: 22px;--kbq-button-toggle-size-item-border-radius: var(--kbq-size-xxs);--kbq-button-toggle-size-item-padding-horizontal: var(--kbq-size-s);--kbq-button-toggle-size-item-padding-vertical: var(--kbq-size-3xs);--kbq-button-toggle-size-item-content-gap-horizontal: var(--kbq-size-xxs);--kbq-button-toggle-size-item-focus-outline-width: var(--kbq-size-3xs);--kbq-button-toggle-container-background: var(--kbq-background-contrast-fade);--kbq-button-toggle-item-default-background: var(--kbq-background-transparent);--kbq-button-toggle-item-default-text: var(--kbq-foreground-contrast);--kbq-button-toggle-item-default-icon: var(--kbq-icon-contrast-fade);--kbq-button-toggle-item-states-hover-background: var(--kbq-states-background-contrast-fade-hover);--kbq-button-toggle-item-states-hover-text: var(--kbq-foreground-contrast);--kbq-button-toggle-item-states-hover-icon: var(--kbq-icon-contrast-fade);--kbq-button-toggle-item-states-active-background: var(--kbq-states-background-contrast-fade-active);--kbq-button-toggle-item-states-active-text: var(--kbq-foreground-contrast);--kbq-button-toggle-item-states-active-icon: var(--kbq-icon-contrast-fade);--kbq-button-toggle-item-states-selected-background: var(--kbq-background-card);--kbq-button-toggle-item-states-selected-text: var(--kbq-foreground-contrast);--kbq-button-toggle-item-states-selected-icon: var(--kbq-icon-contrast-fade);--kbq-button-toggle-item-states-selected-active-background: var(--kbq-states-background-transparent-active);--kbq-button-toggle-item-states-selected-active-text: var(--kbq-foreground-contrast);--kbq-button-toggle-item-states-selected-active-icon: var(--kbq-icon-contrast-fade);--kbq-button-toggle-item-states-selected-disabled-background: var(--kbq-states-background-disabled);--kbq-button-toggle-item-states-selected-disabled-text: var(--kbq-states-foreground-disabled);--kbq-button-toggle-item-states-selected-disabled-icon: var(--kbq-states-icon-disabled);--kbq-button-toggle-item-states-disabled-background: none;--kbq-button-toggle-item-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-button-toggle-item-states-disabled-icon: var(--kbq-states-icon-disabled);--kbq-button-toggle-item-states-focused-outline: var(--kbq-states-line-focus-theme)}\n"] }]
|
|
383
386
|
}], propDecorators: { icons: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KbqIcon), { ...{ descendants: true }, isSignal: true }] }], checked: [{
|
|
384
387
|
type: Input
|
|
385
388
|
}], mcButton: [{ type: i0.ViewChild, args: [i0.forwardRef(() => KbqButton), { isSignal: true }] }], value: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"koobiq-components-button-toggle.mjs","sources":["../../../packages/components/button-toggle/button-toggle.component.ts","../../../packages/components/button-toggle/button-toggle.module.ts","../../../packages/components/button-toggle/koobiq-components-button-toggle.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n contentChildren,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n Input,\n input,\n OnDestroy,\n OnInit,\n output,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { KbqButton, KbqButtonModule } from '@koobiq/components/button';\nimport { getNodesWithoutComments } from '@koobiq/components/core';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqTitleDirective } from '@koobiq/components/title';\n\n/** Acceptable types for a button toggle. */\nexport type ToggleType = 'checkbox' | 'radio';\n\n/**\n * Provider Expression that allows kbq-button-toggle-group to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const KBQ_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KbqButtonToggleGroup),\n multi: true\n};\n\n/** Change event object emitted by MсButtonToggle. */\nexport class KbqButtonToggleChange {\n constructor(\n /** The MсButtonToggle that emits the event. */\n public source: KbqButtonToggle,\n /** The value assigned to the MсButtonToggle. */\n public value: any\n ) {}\n}\n\n/** Exclusive selection button toggle group that behaves like a radio-button group. */\n@Directive({\n selector: 'kbq-button-toggle-group',\n providers: [KBQ_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR],\n host: {\n class: 'kbq-button-toggle-group',\n '[class.kbq-button-toggle_vertical]': 'vertical'\n },\n exportAs: 'kbqButtonToggleGroup'\n})\nexport class KbqButtonToggleGroup implements ControlValueAccessor, OnInit, AfterContentInit {\n private _changeDetector = inject(ChangeDetectorRef);\n\n /** Whether the toggle group is vertical. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get vertical(): boolean {\n return this._vertical;\n }\n\n set vertical(value: boolean) {\n this._vertical = coerceBooleanProperty(value);\n }\n\n /** Value of the toggle group. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get value(): any {\n const selected = this.selectionModel ? this.selectionModel.selected : [];\n\n if (this.multiple) {\n return selected.map((toggle) => toggle.value);\n }\n\n return selected[0] ? selected[0].value : undefined;\n }\n\n set value(newValue: any) {\n this.setSelectionByValue(newValue);\n this.valueChange.emit(this.value);\n }\n\n /** Selected button toggles in the group. */\n get selected(): any {\n const selected = this.selectionModel.selected;\n\n return this.multiple ? selected : selected[0] || null;\n }\n\n /** Whether multiple button toggles can be selected. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get multiple(): boolean {\n return this._multiple;\n }\n\n set multiple(value: boolean) {\n this._multiple = coerceBooleanProperty(value);\n }\n\n /** Child button toggle buttons. */\n readonly buttonToggles = contentChildren(forwardRef(() => KbqButtonToggle));\n\n /** Whether multiple button toggle group is disabled. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n const buttonToggles = this.buttonToggles();\n\n if (!buttonToggles) {\n return;\n }\n\n buttonToggles.forEach((toggle) => toggle.markForCheck());\n }\n\n /**\n * Event that emits whenever the value of the group changes.\n * Used to facilitate two-way data binding.\n * @docs-private\n */\n readonly valueChange = output<any>();\n\n /** Event emitted when the group's value changes. */\n readonly change = output<KbqButtonToggleChange>();\n private _vertical = false;\n private _multiple = false;\n private _disabled = false;\n private selectionModel: SelectionModel<KbqButtonToggle>;\n\n /**\n * Reference to the raw value that the consumer tried to assign. The real\n * value will exclude any values from this one that don't correspond to a\n * toggle. Useful for the cases where the value is assigned before the toggles\n * have been initialized or at the same that they're being swapped out.\n */\n private rawValue: any;\n\n /**\n * The method to be called in order to update ngModel.\n * Now `ngModel` binding is not supported in multiple selection mode.\n */\n controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n /** onTouch function registered via registerOnTouch (ControlValueAccessor). */\n onTouched: () => any = () => {};\n\n ngOnInit() {\n this.selectionModel = new SelectionModel<KbqButtonToggle>(this.multiple, undefined, false);\n }\n\n ngAfterContentInit() {\n this.selectionModel.select(...this.buttonToggles().filter((toggle) => toggle.checked));\n this.disabled = this._disabled;\n }\n\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param value Value to be set to the model.\n */\n writeValue(value: any) {\n this.value = value;\n this._changeDetector.markForCheck();\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /** Dispatch change event with current selection and group value. */\n emitChangeEvent(): void {\n const selected = this.selected;\n const source = Array.isArray(selected) ? selected[selected.length - 1] : selected;\n const event = new KbqButtonToggleChange(source, this.value);\n\n this.controlValueAccessorChangeFn(event.value);\n this.change.emit(event);\n }\n\n /**\n * Syncs a button toggle's selected state with the model value.\n * @param toggle Toggle to be synced.\n * @param select Whether the toggle should be selected.\n * @param isUserInput Whether the change was a result of a user interaction.\n */\n syncButtonToggle(toggle: KbqButtonToggle, select: boolean, isUserInput = false) {\n // Deselect the currently-selected toggle, if we're in single-selection\n // mode and the button being toggled isn't selected at the moment.\n if (!this.multiple && this.selected && !toggle.checked) {\n (this.selected as KbqButtonToggle).checked = false;\n }\n\n if (select) {\n this.selectionModel.select(toggle);\n } else {\n this.selectionModel.deselect(toggle);\n }\n\n // Only emit the change event for user input.\n if (isUserInput) {\n this.emitChangeEvent();\n }\n\n // Note: we emit this one no matter whether it was a user interaction, because\n // it is used by Angular to sync up the two-way data binding.\n this.valueChange.emit(this.value);\n }\n\n /** Checks whether a button toggle is selected. */\n isSelected(toggle: KbqButtonToggle) {\n return this.selectionModel.isSelected(toggle);\n }\n\n /** Determines whether a button toggle should be checked on init. */\n isPrechecked(toggle: KbqButtonToggle) {\n if (this.rawValue === undefined) {\n return false;\n }\n\n if (this.multiple && Array.isArray(this.rawValue)) {\n return this.rawValue.some((value) => toggle.value != null && value === toggle.value);\n }\n\n return toggle.value === this.rawValue;\n }\n\n /** Updates the selection state of the toggles in the group based on a value. */\n private setSelectionByValue(value: any | any[]) {\n this.rawValue = value;\n\n if (!this.selectionModel) {\n return;\n }\n\n if (this.multiple && value) {\n if (!Array.isArray(value)) {\n throw Error('Value must be an array in multiple-selection mode.');\n }\n\n this.clearSelection();\n value.forEach((currentValue: any) => this.selectValue(currentValue));\n } else {\n this.clearSelection();\n this.selectValue(value);\n }\n }\n\n /** Clears the selected toggles. */\n private clearSelection() {\n this.selectionModel.clear();\n this.buttonToggles().forEach((toggle) => (toggle.checked = false));\n }\n\n /** Selects a value if there's a toggle that corresponds to it. */\n private selectValue(value: any) {\n const correspondingOption = this.buttonToggles().find((toggle) => {\n return toggle.value != null && toggle.value === value;\n });\n\n if (correspondingOption) {\n correspondingOption.checked = true;\n this.selectionModel.select(correspondingOption);\n }\n }\n}\n\n/** Single button inside of a toggle group. */\n@Component({\n selector: 'kbq-button-toggle',\n imports: [\n KbqTitleDirective,\n KbqButtonModule\n ],\n template: `\n <button\n kbq-button\n kbq-title\n type=\"button\"\n [kbqStyle]=\"'transparent'\"\n [class.kbq-selected]=\"checked\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex() || 0\"\n (click)=\"onToggleClick()\"\n >\n <div #kbqTitleText class=\"kbq-button-toggle-wrapper\">\n <ng-content />\n </div>\n </button>\n `,\n styleUrls: ['button-toggle.scss', 'button-toggle-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-button-toggle',\n '[class]': '\"kbq-button-toggle\" + iconType',\n '[class.kbq-disabled]': 'disabled',\n '[class.kbq-selected]': 'checked'\n },\n exportAs: 'kbqButtonToggle'\n})\nexport class KbqButtonToggle implements OnInit, AfterContentInit, AfterViewInit, OnDestroy {\n buttonToggleGroup = inject(KbqButtonToggleGroup, { optional: true })!;\n private changeDetectorRef = inject(ChangeDetectorRef);\n private focusMonitor = inject(FocusMonitor);\n private element = inject(ElementRef);\n\n readonly icons = contentChildren(KbqIcon, { descendants: true });\n\n /** Whether the button is checked. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get checked(): boolean {\n return this.buttonToggleGroup ? this.buttonToggleGroup.isSelected(this) : this._checked;\n }\n\n set checked(value: boolean) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this._checked) {\n this._checked = newValue;\n\n if (this.buttonToggleGroup) {\n this.buttonToggleGroup.syncButtonToggle(this, this._checked);\n }\n\n this.changeDetectorRef.markForCheck();\n }\n }\n\n type: ToggleType;\n iconType: string = '';\n\n readonly mcButton = viewChild.required(KbqButton);\n\n /** KbqButtonToggleGroup reads this to assign its own value. */\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() value: any;\n\n /** Tabindex for the toggle. */\n readonly tabIndex = input<number | null>(undefined!);\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get disabled(): boolean {\n return this._disabled || (this.buttonToggleGroup && this.buttonToggleGroup.disabled);\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n /** Event emitted when the group value changes. */\n readonly change = output<KbqButtonToggleChange>();\n\n private isSingleSelector = false;\n private _checked = false;\n private _disabled: boolean = false;\n\n ngOnInit() {\n this.isSingleSelector = this.buttonToggleGroup && !this.buttonToggleGroup.multiple;\n this.type = this.isSingleSelector ? 'radio' : 'checkbox';\n\n if (this.buttonToggleGroup && this.buttonToggleGroup.isPrechecked(this)) {\n this.checked = true;\n }\n }\n\n ngAfterContentInit(): void {\n const icons = this.icons();\n\n if (icons.length) {\n const nodesWithoutComments = getNodesWithoutComments(\n this.element.nativeElement.querySelector('.kbq-button-toggle-wrapper')!.childNodes as NodeList\n ).length;\n\n this.iconType = nodesWithoutComments === icons.length ? '-icon' : '-icon-text';\n }\n }\n\n ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.element.nativeElement, true);\n }\n\n ngOnDestroy() {\n const group = this.buttonToggleGroup;\n\n this.focusMonitor.stopMonitoring(this.element.nativeElement);\n\n // Remove the toggle from the selection once it's destroyed. Needs to happen\n // on the next tick in order to avoid \"changed after checked\" errors.\n if (group && group.isSelected(this)) {\n Promise.resolve().then(() => group.syncButtonToggle(this, false));\n }\n }\n\n /** Focuses the button. */\n focus(): void {\n this.element.nativeElement.focus();\n }\n\n /** Checks the button toggle due to an interaction with the underlying native button. */\n onToggleClick() {\n if (this.disabled) {\n return;\n }\n\n const newChecked = this.isSingleSelector ? true : !this._checked;\n\n if (newChecked !== this._checked) {\n this._checked = newChecked;\n\n if (this.buttonToggleGroup) {\n this.buttonToggleGroup.syncButtonToggle(this, this._checked, true);\n this.buttonToggleGroup.onTouched();\n }\n }\n\n // Emit a change event when it's the single selector\n this.change.emit(new KbqButtonToggleChange(this, this.value));\n }\n\n /**\n * Marks the button toggle as needing checking for change detection.\n * This method is exposed because the parent button toggle group will directly\n * update bound properties of the radio button.\n */\n markForCheck() {\n // When the group value changes, the button will not be notified.\n // Use `markForCheck` to explicit update button toggle's status.\n this.changeDetectorRef.markForCheck();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport { KbqTitleModule } from '@koobiq/components/title';\nimport { KbqButtonToggle, KbqButtonToggleGroup } from './button-toggle.component';\n\n@NgModule({\n imports: [KbqButtonModule, KbqTitleModule, KbqButtonToggleGroup, KbqButtonToggle],\n exports: [KbqButtonToggleGroup, KbqButtonToggle]\n})\nexport class KbqButtonToggleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"koobiq-components-button-toggle.mjs","sources":["../../../packages/components/button-toggle/button-toggle.component.ts","../../../packages/components/button-toggle/button-toggle.module.ts","../../../packages/components/button-toggle/koobiq-components-button-toggle.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n contentChildren,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n Input,\n input,\n OnDestroy,\n OnInit,\n output,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { KbqButton, KbqButtonModule } from '@koobiq/components/button';\nimport { getNodesWithoutComments } from '@koobiq/components/core';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqTitleDirective } from '@koobiq/components/title';\n\n/** Acceptable types for a button toggle. */\nexport type ToggleType = 'checkbox' | 'radio';\n\n/**\n * Provider Expression that allows kbq-button-toggle-group to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const KBQ_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KbqButtonToggleGroup),\n multi: true\n};\n\n/** Change event object emitted by MсButtonToggle. */\nexport class KbqButtonToggleChange {\n constructor(\n /** The MсButtonToggle that emits the event. */\n public source: KbqButtonToggle,\n /** The value assigned to the MсButtonToggle. */\n public value: any\n ) {}\n}\n\n/** Exclusive selection button toggle group that behaves like a radio-button group. */\n@Directive({\n selector: 'kbq-button-toggle-group',\n providers: [KBQ_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR],\n host: {\n class: 'kbq-button-toggle-group',\n '[class.kbq-button-toggle_vertical]': 'vertical',\n '[class.kbq-button-toggle-group_stretched]': 'stretched()'\n },\n exportAs: 'kbqButtonToggleGroup'\n})\nexport class KbqButtonToggleGroup implements ControlValueAccessor, OnInit, AfterContentInit {\n private _changeDetector = inject(ChangeDetectorRef);\n\n /** Whether the toggle group is vertical. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get vertical(): boolean {\n return this._vertical;\n }\n\n set vertical(value: boolean) {\n this._vertical = coerceBooleanProperty(value);\n }\n\n /** Whether the toggle group stretches to fill its container width, with toggles sharing equal space. */\n readonly stretched = input(false, { transform: booleanAttribute });\n\n /** Value of the toggle group. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get value(): any {\n const selected = this.selectionModel ? this.selectionModel.selected : [];\n\n if (this.multiple) {\n return selected.map((toggle) => toggle.value);\n }\n\n return selected[0] ? selected[0].value : undefined;\n }\n\n set value(newValue: any) {\n this.setSelectionByValue(newValue);\n this.valueChange.emit(this.value);\n }\n\n /** Selected button toggles in the group. */\n get selected(): any {\n const selected = this.selectionModel.selected;\n\n return this.multiple ? selected : selected[0] || null;\n }\n\n /** Whether multiple button toggles can be selected. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get multiple(): boolean {\n return this._multiple;\n }\n\n set multiple(value: boolean) {\n this._multiple = coerceBooleanProperty(value);\n }\n\n /** Child button toggle buttons. */\n readonly buttonToggles = contentChildren(forwardRef(() => KbqButtonToggle));\n\n /** Whether multiple button toggle group is disabled. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n const buttonToggles = this.buttonToggles();\n\n if (!buttonToggles) {\n return;\n }\n\n buttonToggles.forEach((toggle) => toggle.markForCheck());\n }\n\n /**\n * Event that emits whenever the value of the group changes.\n * Used to facilitate two-way data binding.\n * @docs-private\n */\n readonly valueChange = output<any>();\n\n /** Event emitted when the group's value changes. */\n readonly change = output<KbqButtonToggleChange>();\n private _vertical = false;\n private _multiple = false;\n private _disabled = false;\n private selectionModel: SelectionModel<KbqButtonToggle>;\n\n /**\n * Reference to the raw value that the consumer tried to assign. The real\n * value will exclude any values from this one that don't correspond to a\n * toggle. Useful for the cases where the value is assigned before the toggles\n * have been initialized or at the same that they're being swapped out.\n */\n private rawValue: any;\n\n /**\n * The method to be called in order to update ngModel.\n * Now `ngModel` binding is not supported in multiple selection mode.\n */\n controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n /** onTouch function registered via registerOnTouch (ControlValueAccessor). */\n onTouched: () => any = () => {};\n\n ngOnInit() {\n this.selectionModel = new SelectionModel<KbqButtonToggle>(this.multiple, undefined, false);\n }\n\n ngAfterContentInit() {\n this.selectionModel.select(...this.buttonToggles().filter((toggle) => toggle.checked));\n this.disabled = this._disabled;\n }\n\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param value Value to be set to the model.\n */\n writeValue(value: any) {\n this.value = value;\n this._changeDetector.markForCheck();\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /** Dispatch change event with current selection and group value. */\n emitChangeEvent(): void {\n const selected = this.selected;\n const source = Array.isArray(selected) ? selected[selected.length - 1] : selected;\n const event = new KbqButtonToggleChange(source, this.value);\n\n this.controlValueAccessorChangeFn(event.value);\n this.change.emit(event);\n }\n\n /**\n * Syncs a button toggle's selected state with the model value.\n * @param toggle Toggle to be synced.\n * @param select Whether the toggle should be selected.\n * @param isUserInput Whether the change was a result of a user interaction.\n */\n syncButtonToggle(toggle: KbqButtonToggle, select: boolean, isUserInput = false) {\n // Deselect the currently-selected toggle, if we're in single-selection\n // mode and the button being toggled isn't selected at the moment.\n if (!this.multiple && this.selected && !toggle.checked) {\n (this.selected as KbqButtonToggle).checked = false;\n }\n\n if (select) {\n this.selectionModel.select(toggle);\n } else {\n this.selectionModel.deselect(toggle);\n }\n\n // Only emit the change event for user input.\n if (isUserInput) {\n this.emitChangeEvent();\n }\n\n // Note: we emit this one no matter whether it was a user interaction, because\n // it is used by Angular to sync up the two-way data binding.\n this.valueChange.emit(this.value);\n }\n\n /** Checks whether a button toggle is selected. */\n isSelected(toggle: KbqButtonToggle) {\n return this.selectionModel.isSelected(toggle);\n }\n\n /** Determines whether a button toggle should be checked on init. */\n isPrechecked(toggle: KbqButtonToggle) {\n if (this.rawValue === undefined) {\n return false;\n }\n\n if (this.multiple && Array.isArray(this.rawValue)) {\n return this.rawValue.some((value) => toggle.value != null && value === toggle.value);\n }\n\n return toggle.value === this.rawValue;\n }\n\n /** Updates the selection state of the toggles in the group based on a value. */\n private setSelectionByValue(value: any | any[]) {\n this.rawValue = value;\n\n if (!this.selectionModel) {\n return;\n }\n\n if (this.multiple && value) {\n if (!Array.isArray(value)) {\n throw Error('Value must be an array in multiple-selection mode.');\n }\n\n this.clearSelection();\n value.forEach((currentValue: any) => this.selectValue(currentValue));\n } else {\n this.clearSelection();\n this.selectValue(value);\n }\n }\n\n /** Clears the selected toggles. */\n private clearSelection() {\n this.selectionModel.clear();\n this.buttonToggles().forEach((toggle) => (toggle.checked = false));\n }\n\n /** Selects a value if there's a toggle that corresponds to it. */\n private selectValue(value: any) {\n const correspondingOption = this.buttonToggles().find((toggle) => {\n return toggle.value != null && toggle.value === value;\n });\n\n if (correspondingOption) {\n correspondingOption.checked = true;\n this.selectionModel.select(correspondingOption);\n }\n }\n}\n\n/** Single button inside of a toggle group. */\n@Component({\n selector: 'kbq-button-toggle',\n imports: [\n KbqTitleDirective,\n KbqButtonModule\n ],\n template: `\n <button\n kbq-button\n kbq-title\n type=\"button\"\n [kbqStyle]=\"'transparent'\"\n [class.kbq-selected]=\"checked\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex() || 0\"\n (click)=\"onToggleClick()\"\n >\n <div #kbqTitleText class=\"kbq-button-toggle-wrapper\">\n <ng-content />\n </div>\n </button>\n `,\n styleUrls: ['button-toggle.scss', 'button-toggle-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-button-toggle',\n '[class]': '\"kbq-button-toggle\" + iconType',\n '[class.kbq-disabled]': 'disabled',\n '[class.kbq-selected]': 'checked'\n },\n exportAs: 'kbqButtonToggle'\n})\nexport class KbqButtonToggle implements OnInit, AfterContentInit, AfterViewInit, OnDestroy {\n buttonToggleGroup = inject(KbqButtonToggleGroup, { optional: true })!;\n private changeDetectorRef = inject(ChangeDetectorRef);\n private focusMonitor = inject(FocusMonitor);\n private element = inject(ElementRef);\n\n readonly icons = contentChildren(KbqIcon, { descendants: true });\n\n /** Whether the button is checked. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get checked(): boolean {\n return this.buttonToggleGroup ? this.buttonToggleGroup.isSelected(this) : this._checked;\n }\n\n set checked(value: boolean) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this._checked) {\n this._checked = newValue;\n\n if (this.buttonToggleGroup) {\n this.buttonToggleGroup.syncButtonToggle(this, this._checked);\n }\n\n this.changeDetectorRef.markForCheck();\n }\n }\n\n type: ToggleType;\n iconType: string = '';\n\n readonly mcButton = viewChild.required(KbqButton);\n\n /** KbqButtonToggleGroup reads this to assign its own value. */\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() value: any;\n\n /** Tabindex for the toggle. */\n readonly tabIndex = input<number | null>(undefined!);\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get disabled(): boolean {\n return this._disabled || (this.buttonToggleGroup && this.buttonToggleGroup.disabled);\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n /** Event emitted when the group value changes. */\n readonly change = output<KbqButtonToggleChange>();\n\n private isSingleSelector = false;\n private _checked = false;\n private _disabled: boolean = false;\n\n ngOnInit() {\n this.isSingleSelector = this.buttonToggleGroup && !this.buttonToggleGroup.multiple;\n this.type = this.isSingleSelector ? 'radio' : 'checkbox';\n\n if (this.buttonToggleGroup && this.buttonToggleGroup.isPrechecked(this)) {\n this.checked = true;\n }\n }\n\n ngAfterContentInit(): void {\n const icons = this.icons();\n\n if (icons.length) {\n const nodesWithoutComments = getNodesWithoutComments(\n this.element.nativeElement.querySelector('.kbq-button-toggle-wrapper')!.childNodes as NodeList\n ).length;\n\n this.iconType = nodesWithoutComments === icons.length ? '-icon' : '-icon-text';\n }\n }\n\n ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.element.nativeElement, true);\n }\n\n ngOnDestroy() {\n const group = this.buttonToggleGroup;\n\n this.focusMonitor.stopMonitoring(this.element.nativeElement);\n\n // Remove the toggle from the selection once it's destroyed. Needs to happen\n // on the next tick in order to avoid \"changed after checked\" errors.\n if (group && group.isSelected(this)) {\n Promise.resolve().then(() => group.syncButtonToggle(this, false));\n }\n }\n\n /** Focuses the button. */\n focus(): void {\n this.element.nativeElement.focus();\n }\n\n /** Checks the button toggle due to an interaction with the underlying native button. */\n onToggleClick() {\n if (this.disabled) {\n return;\n }\n\n const newChecked = this.isSingleSelector ? true : !this._checked;\n\n if (newChecked !== this._checked) {\n this._checked = newChecked;\n\n if (this.buttonToggleGroup) {\n this.buttonToggleGroup.syncButtonToggle(this, this._checked, true);\n this.buttonToggleGroup.onTouched();\n }\n }\n\n // Emit a change event when it's the single selector\n this.change.emit(new KbqButtonToggleChange(this, this.value));\n }\n\n /**\n * Marks the button toggle as needing checking for change detection.\n * This method is exposed because the parent button toggle group will directly\n * update bound properties of the radio button.\n */\n markForCheck() {\n // When the group value changes, the button will not be notified.\n // Use `markForCheck` to explicit update button toggle's status.\n this.changeDetectorRef.markForCheck();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport { KbqTitleModule } from '@koobiq/components/title';\nimport { KbqButtonToggle, KbqButtonToggleGroup } from './button-toggle.component';\n\n@NgModule({\n imports: [KbqButtonModule, KbqTitleModule, KbqButtonToggleGroup, KbqButtonToggle],\n exports: [KbqButtonToggleGroup, KbqButtonToggle]\n})\nexport class KbqButtonToggleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AAgCA;;;;AAIG;AACI,MAAM,sCAAsC,GAAQ;AACvD,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,IAAA,KAAK,EAAE;;AAGX;MACa,qBAAqB,CAAA;AAC9B,IAAA,WAAA;;IAEW,MAAuB;;IAEvB,KAAU,EAAA;QAFV,IAAA,CAAA,MAAM,GAAN,MAAM;QAEN,IAAA,CAAA,KAAK,GAAL,KAAK;IACb;AACN;AAED;MAWa,oBAAoB,CAAA;AAVjC,IAAA,WAAA,GAAA;AAWY,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC;;AAe1C,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,6CAAI,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA7B,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAC;;QAyCzD,IAAA,CAAA,aAAa,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,eAAe,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,eAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAsB3E;;;;AAIG;QACM,IAAA,CAAA,WAAW,GAAG,MAAM,EAAO;;QAG3B,IAAA,CAAA,MAAM,GAAG,MAAM,EAAyB;QACzC,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,SAAS,GAAG,KAAK;AAWzB;;;AAGG;AACH,QAAA,IAAA,CAAA,4BAA4B,GAAyB,MAAK,EAAE,CAAC;;AAG7D,QAAA,IAAA,CAAA,SAAS,GAAc,MAAK,EAAE,CAAC;AAkIlC,IAAA;;;;AAxOG,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAI,QAAQ,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC;IACjD;;;;AAQA,IAAA,IACI,KAAK,GAAA;AACL,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,EAAE;AAExE,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC;QACjD;AAEA,QAAA,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS;IACtD;IAEA,IAAI,KAAK,CAAC,QAAa,EAAA;AACnB,QAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACrC;;AAGA,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ;AAE7C,QAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI;IACzD;;;;AAKA,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAI,QAAQ,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC;IACjD;;;;AAQA,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAI,QAAQ,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC;AAE7C,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;QAE1C,IAAI,CAAC,aAAa,EAAE;YAChB;QACJ;AAEA,QAAA,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,YAAY,EAAE,CAAC;IAC5D;IAiCA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAkB,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC;IAC9F;IAEA,kBAAkB,GAAA;QACd,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC;AACtF,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS;IAClC;AAEA;;;AAGG;AACH,IAAA,UAAU,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;IACvC;;AAGA,IAAA,gBAAgB,CAAC,EAAwB,EAAA;AACrC,QAAA,IAAI,CAAC,4BAA4B,GAAG,EAAE;IAC1C;;AAGA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACvB;;AAGA,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;IAC9B;;IAGA,eAAe,GAAA;AACX,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,QAAQ;QACjF,MAAM,KAAK,GAAG,IAAI,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC;AAE3D,QAAA,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,KAAK,CAAC;AAC9C,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;AAEA;;;;;AAKG;AACH,IAAA,gBAAgB,CAAC,MAAuB,EAAE,MAAe,EAAE,WAAW,GAAG,KAAK,EAAA;;;AAG1E,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACnD,YAAA,IAAI,CAAC,QAA4B,CAAC,OAAO,GAAG,KAAK;QACtD;QAEA,IAAI,MAAM,EAAE;AACR,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC;QACtC;aAAO;AACH,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC;QACxC;;QAGA,IAAI,WAAW,EAAE;YACb,IAAI,CAAC,eAAe,EAAE;QAC1B;;;QAIA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACrC;;AAGA,IAAA,UAAU,CAAC,MAAuB,EAAA;QAC9B,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC;IACjD;;AAGA,IAAA,YAAY,CAAC,MAAuB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;AAC7B,YAAA,OAAO,KAAK;QAChB;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC/C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;QACxF;AAEA,QAAA,OAAO,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ;IACzC;;AAGQ,IAAA,mBAAmB,CAAC,KAAkB,EAAA;AAC1C,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AAErB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB;QACJ;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE;YACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACvB,gBAAA,MAAM,KAAK,CAAC,oDAAoD,CAAC;YACrE;YAEA,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,KAAK,CAAC,OAAO,CAAC,CAAC,YAAiB,KAAK,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACxE;aAAO;YACH,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QAC3B;IACJ;;IAGQ,cAAc,GAAA;AAClB,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AAC3B,QAAA,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,MAAM,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;IACtE;;AAGQ,IAAA,WAAW,CAAC,KAAU,EAAA;AAC1B,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;YAC7D,OAAO,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK;AACzD,QAAA,CAAC,CAAC;QAEF,IAAI,mBAAmB,EAAE;AACrB,YAAA,mBAAmB,CAAC,OAAO,GAAG,IAAI;AAClC,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAmB,CAAC;QACnD;IACJ;kIA7OS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kCAAA,EAAA,UAAA,EAAA,yCAAA,EAAA,aAAA,EAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,EAAA,SAAA,EARlB,CAAC,sCAAsC,CAAC,4EAiEO,eAAe,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAzDhE,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yBAAyB;oBACnC,SAAS,EAAE,CAAC,sCAAsC,CAAC;AACnD,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,yBAAyB;AAChC,wBAAA,oCAAoC,EAAE,UAAU;AAChD,wBAAA,2CAA2C,EAAE;AAChD,qBAAA;AACD,oBAAA,QAAQ,EAAE;AACb,iBAAA;;sBAOI;;sBAeA;;sBA0BA;AAUwC,aAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,eAAe,CAAC,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA;sBAKzE;;AAkLL;MAkCa,eAAe,CAAA;AAjC5B,IAAA,WAAA,GAAA;QAkCI,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAE;AAC7D,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC7C,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACnC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;AAE3B,QAAA,IAAA,CAAA,KAAK,GAAG,eAAe,CAAC,OAAO,yCAAI,WAAW,EAAE,IAAI,EAAA,CAAA,GAAA,CAAnB,EAAE,WAAW,EAAE,IAAI,EAAE,GAAC;QAyBhE,IAAA,CAAA,QAAQ,GAAW,EAAE;AAEZ,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;;AAQxC,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAgB,SAAU,oDAAC;;QAc3C,IAAA,CAAA,MAAM,GAAG,MAAM,EAAyB;QAEzC,IAAA,CAAA,gBAAgB,GAAG,KAAK;QACxB,IAAA,CAAA,QAAQ,GAAG,KAAK;QAChB,IAAA,CAAA,SAAS,GAAY,KAAK;AA2ErC,IAAA;;;;AA3HG,IAAA,IACI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ;IAC3F;IAEA,IAAI,OAAO,CAAC,KAAc,EAAA;AACtB,QAAA,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC;AAE7C,QAAA,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAExB,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;YAChE;AAEA,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;QACzC;IACJ;;;AAiBA,IAAA,IACI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;IACxF;IAEA,IAAI,QAAQ,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC;IACjD;IASA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ;AAClF,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,GAAG,OAAO,GAAG,UAAU;AAExD,QAAA,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AACrE,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;QACvB;IACJ;IAEA,kBAAkB,GAAA;AACd,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAE1B,QAAA,IAAI,KAAK,CAAC,MAAM,EAAE;AACd,YAAA,MAAM,oBAAoB,GAAG,uBAAuB,CAChD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,4BAA4B,CAAE,CAAC,UAAsB,CACjG,CAAC,MAAM;AAER,YAAA,IAAI,CAAC,QAAQ,GAAG,oBAAoB,KAAK,KAAK,CAAC,MAAM,GAAG,OAAO,GAAG,YAAY;QAClF;IACJ;IAEA,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC;IAC/D;IAEA,WAAW,GAAA;AACP,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB;QAEpC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;;;QAI5D,IAAI,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACjC,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACrE;IACJ;;IAGA,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE;IACtC;;IAGA,aAAa,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf;QACJ;AAEA,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ;AAEhE,QAAA,IAAI,UAAU,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC9B,YAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;AAE1B,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;AAClE,gBAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE;YACtC;QACJ;;AAGA,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACjE;AAEA;;;;AAIG;IACH,YAAY,GAAA;;;AAGR,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;IACzC;kIArIS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kCAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAMS,OAAO,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA2BD,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA5DtC;;;;;;;;;;;;;;;KAeT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,wnSAAA,EAAA,6jFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAlBG,iBAAiB,sGACjB,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FA6BV,eAAe,EAAA,UAAA,EAAA,CAAA;kBAjC3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAAA,OAAA,EACpB;wBACL,iBAAiB;wBACjB;qBACH,EAAA,QAAA,EACS;;;;;;;;;;;;;;;AAeT,IAAA,CAAA,EAAA,eAAA,EAEgB,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACF,wBAAA,KAAK,EAAE,mBAAmB;AAC1B,wBAAA,SAAS,EAAE,gCAAgC;AAC3C,wBAAA,sBAAsB,EAAE,UAAU;AAClC,wBAAA,sBAAsB,EAAE;AAC3B,qBAAA,EAAA,QAAA,EACS,iBAAiB,EAAA,MAAA,EAAA,CAAA,wnSAAA,EAAA,6jFAAA,CAAA,EAAA;AAQM,SAAA,CAAA,EAAA,cAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,OAAO,CAAA,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA;sBAK9D;4EAsBsC,SAAS,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA;sBAK/C;;sBAOA;;;MCtXQ,qBAAqB,CAAA;kIAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;mIAArB,qBAAqB,EAAA,OAAA,EAAA,CAHpB,eAAe,EAAE,cAAc,EAAE,oBAAoB,EAAE,eAAe,CAAA,EAAA,OAAA,EAAA,CACtE,oBAAoB,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;AAEtC,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,OAAA,EAAA,CAHpB,eAAe,EAAE,cAAc,EAAwB,eAAe,CAAA,EAAA,CAAA,CAAA;;4FAGvE,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,eAAe,EAAE,cAAc,EAAE,oBAAoB,EAAE,eAAe,CAAC;AACjF,oBAAA,OAAO,EAAE,CAAC,oBAAoB,EAAE,eAAe;AAClD,iBAAA;;;ACRD;;AAEG;;;;"}
|