@frame-ui-ng/components 0.5.1-beta.0 → 0.6.0-beta.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.
Files changed (105) hide show
  1. package/accordion/src/styles/_vars.css +2 -5
  2. package/accordion/src/styles/accordion.css +44 -30
  3. package/breadcrumb/src/styles/breadcrumb.css +12 -2
  4. package/button/src/styles/button.css +5 -51
  5. package/button-group/src/styles/button-group.css +0 -38
  6. package/calendar/src/styles/_vars.css +4 -0
  7. package/calendar/src/styles/calendar.css +26 -18
  8. package/carousel/src/styles/carousel.css +103 -89
  9. package/checkbox/src/styles/checkbox.css +14 -5
  10. package/collapsible/src/styles/_vars.css +1 -0
  11. package/collapsible/src/styles/collapsible.css +15 -11
  12. package/combobox/src/styles/combobox.css +11 -2
  13. package/confirm-popover/src/styles/confirm-popover.css +0 -1
  14. package/date-picker/src/styles/date-picker.css +15 -10
  15. package/dropdown-menu/src/styles/dropdown-menu-item.css +6 -2
  16. package/fesm2022/frame-ui-ng-components-accordion.mjs +201 -147
  17. package/fesm2022/frame-ui-ng-components-accordion.mjs.map +1 -1
  18. package/fesm2022/frame-ui-ng-components-alert.mjs +2 -2
  19. package/fesm2022/frame-ui-ng-components-alert.mjs.map +1 -1
  20. package/fesm2022/frame-ui-ng-components-breadcrumb.mjs +10 -2
  21. package/fesm2022/frame-ui-ng-components-breadcrumb.mjs.map +1 -1
  22. package/fesm2022/frame-ui-ng-components-button-group.mjs +2 -2
  23. package/fesm2022/frame-ui-ng-components-button-group.mjs.map +1 -1
  24. package/fesm2022/frame-ui-ng-components-button.mjs +2 -2
  25. package/fesm2022/frame-ui-ng-components-button.mjs.map +1 -1
  26. package/fesm2022/frame-ui-ng-components-calendar.mjs +202 -50
  27. package/fesm2022/frame-ui-ng-components-calendar.mjs.map +1 -1
  28. package/fesm2022/frame-ui-ng-components-card.mjs +2 -2
  29. package/fesm2022/frame-ui-ng-components-card.mjs.map +1 -1
  30. package/fesm2022/frame-ui-ng-components-carousel.mjs +2 -2
  31. package/fesm2022/frame-ui-ng-components-carousel.mjs.map +1 -1
  32. package/fesm2022/frame-ui-ng-components-collapsible.mjs +80 -22
  33. package/fesm2022/frame-ui-ng-components-collapsible.mjs.map +1 -1
  34. package/fesm2022/frame-ui-ng-components-combobox.mjs +61 -6
  35. package/fesm2022/frame-ui-ng-components-combobox.mjs.map +1 -1
  36. package/fesm2022/frame-ui-ng-components-command.mjs +2 -2
  37. package/fesm2022/frame-ui-ng-components-command.mjs.map +1 -1
  38. package/fesm2022/frame-ui-ng-components-confirm-popover.mjs +6 -6
  39. package/fesm2022/frame-ui-ng-components-confirm-popover.mjs.map +1 -1
  40. package/fesm2022/frame-ui-ng-components-date-picker.mjs +75 -37
  41. package/fesm2022/frame-ui-ng-components-date-picker.mjs.map +1 -1
  42. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs +2 -2
  43. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs.map +1 -1
  44. package/fesm2022/frame-ui-ng-components-empty.mjs +2 -2
  45. package/fesm2022/frame-ui-ng-components-empty.mjs.map +1 -1
  46. package/fesm2022/frame-ui-ng-components-hover-card.mjs +2 -2
  47. package/fesm2022/frame-ui-ng-components-hover-card.mjs.map +1 -1
  48. package/fesm2022/frame-ui-ng-components-input-otp.mjs +2 -2
  49. package/fesm2022/frame-ui-ng-components-input-otp.mjs.map +1 -1
  50. package/fesm2022/frame-ui-ng-components-input.mjs +2 -2
  51. package/fesm2022/frame-ui-ng-components-input.mjs.map +1 -1
  52. package/fesm2022/frame-ui-ng-components-item.mjs +2 -2
  53. package/fesm2022/frame-ui-ng-components-item.mjs.map +1 -1
  54. package/fesm2022/frame-ui-ng-components-menubar.mjs +2 -2
  55. package/fesm2022/frame-ui-ng-components-menubar.mjs.map +1 -1
  56. package/fesm2022/frame-ui-ng-components-modal.mjs +10 -4
  57. package/fesm2022/frame-ui-ng-components-modal.mjs.map +1 -1
  58. package/fesm2022/frame-ui-ng-components-navigation-menu.mjs +4 -4
  59. package/fesm2022/frame-ui-ng-components-navigation-menu.mjs.map +1 -1
  60. package/fesm2022/frame-ui-ng-components-pagination.mjs +20 -4
  61. package/fesm2022/frame-ui-ng-components-pagination.mjs.map +1 -1
  62. package/fesm2022/frame-ui-ng-components-popover.mjs +2 -2
  63. package/fesm2022/frame-ui-ng-components-popover.mjs.map +1 -1
  64. package/fesm2022/frame-ui-ng-components-radio-group.mjs +2 -2
  65. package/fesm2022/frame-ui-ng-components-radio-group.mjs.map +1 -1
  66. package/fesm2022/frame-ui-ng-components-resizable.mjs +2 -2
  67. package/fesm2022/frame-ui-ng-components-resizable.mjs.map +1 -1
  68. package/fesm2022/frame-ui-ng-components-sheet.mjs +90 -65
  69. package/fesm2022/frame-ui-ng-components-sheet.mjs.map +1 -1
  70. package/fesm2022/frame-ui-ng-components-table.mjs +6 -5
  71. package/fesm2022/frame-ui-ng-components-table.mjs.map +1 -1
  72. package/fesm2022/frame-ui-ng-components-tabs.mjs +2 -2
  73. package/fesm2022/frame-ui-ng-components-tabs.mjs.map +1 -1
  74. package/fesm2022/frame-ui-ng-components-toast.mjs +6 -6
  75. package/fesm2022/frame-ui-ng-components-toast.mjs.map +1 -1
  76. package/fesm2022/frame-ui-ng-components-tooltip.mjs +6 -6
  77. package/fesm2022/frame-ui-ng-components-tooltip.mjs.map +1 -1
  78. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs +4 -4
  79. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs.map +1 -1
  80. package/fesm2022/frame-ui-ng-components.mjs +850 -420
  81. package/fesm2022/frame-ui-ng-components.mjs.map +1 -1
  82. package/input/src/styles/input-group.css +0 -7
  83. package/input/src/styles/input.css +0 -23
  84. package/modal/src/styles/modal.css +5 -19
  85. package/package.json +6 -6
  86. package/pagination/src/styles/pagination.css +6 -2
  87. package/popover/src/styles/popover.css +3 -3
  88. package/select/src/styles/select-item.css +67 -68
  89. package/sheet/src/styles/sheet.css +32 -19
  90. package/src/styles/components.css +2 -2
  91. package/src/styles/corner-handles.css +217 -0
  92. package/styles/components.css +2 -2
  93. package/styles/corner-handles.css +217 -0
  94. package/styles.css +2 -2
  95. package/toggle/src/styles/toggle.css +6 -1
  96. package/tooltip/src/styles/tooltip.css +0 -1
  97. package/types/frame-ui-ng-components-accordion.d.ts +69 -61
  98. package/types/frame-ui-ng-components-calendar.d.ts +7 -7
  99. package/types/frame-ui-ng-components-collapsible.d.ts +12 -4
  100. package/types/frame-ui-ng-components-combobox.d.ts +8 -0
  101. package/types/frame-ui-ng-components-date-picker.d.ts +2 -4
  102. package/types/frame-ui-ng-components-sheet.d.ts +6 -2
  103. package/types/frame-ui-ng-components.d.ts +172 -135
  104. package/src/styles/blueprint.css +0 -707
  105. package/styles/blueprint.css +0 -707
@@ -1 +1 @@
1
- {"version":3,"file":"frame-ui-ng-components-combobox.mjs","sources":["../../../projects/components/combobox/src/combobox.content.ts","../../../projects/components/combobox/src/combobox.root.ts","../../../projects/components/combobox/src/combobox.input.ts","../../../projects/components/combobox/src/combobox.items.ts","../../../projects/components/combobox/src/combobox.value.ts","../../../projects/components/combobox/combobox.module.ts","../../../projects/components/combobox/frame-ui-ng-components-combobox.ts"],"sourcesContent":["import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n/** Content slot for combobox. */\r\n@Directive({\r\n selector: 'ng-template[frComboboxContent]',\r\n exportAs: 'frComboboxContent',\r\n})\r\nexport class FrComboboxContent {\r\n readonly templateRef = inject(TemplateRef<unknown>);\r\n}\r\n\r\n/** Panel slot for combobox. */\r\n@Directive({\r\n selector: '[frComboboxPanel], frame-combobox-panel',\r\n host: {\r\n class: 'frame-combobox__panel',\r\n role: 'listbox',\r\n },\r\n})\r\nexport class FrComboboxPanel {}\r\n\r\n/** List slot for combobox. */\r\n@Directive({\r\n selector: '[frComboboxList], frame-combobox-list',\r\n host: {\r\n class: 'frame-combobox__list',\r\n },\r\n})\r\nexport class FrComboboxList {}\r\n\r\n/** Empty-state slot for combobox results. */\r\n@Directive({\r\n selector: '[frComboboxEmpty], frame-combobox-empty',\r\n host: {\r\n class: 'frame-combobox__empty',\r\n '[attr.hidden]': 'hidden() ? \"\" : null',\r\n },\r\n})\r\nexport class FrComboboxEmpty {\r\n private readonly root = inject(FrComboboxRootLookup);\r\n\r\n protected hidden(): boolean {\r\n return this.root.visibleCount() > 0;\r\n }\r\n}\r\n\r\n/** Group slot for combobox. */\r\n@Directive({\r\n selector: '[frComboboxGroup], frame-combobox-group',\r\n host: {\r\n class: 'frame-combobox__group',\r\n },\r\n})\r\nexport class FrComboboxGroup {}\r\n\r\n/** Label slot for combobox. */\r\n@Directive({\r\n selector: '[frComboboxLabel], frame-combobox-label',\r\n host: {\r\n class: 'frame-combobox__label',\r\n },\r\n})\r\nexport class FrComboboxLabel {}\r\n\r\n/** Separator slot for combobox. */\r\n@Directive({\r\n selector: '[frComboboxSeparator], frame-combobox-separator',\r\n host: {\r\n class: 'frame-combobox__separator',\r\n role: 'separator',\r\n },\r\n})\r\nexport class FrComboboxSeparator {}\r\n\r\n/** Collection host for combobox options. */\r\n@Directive({\r\n selector: '[frComboboxCollection], frame-combobox-collection',\r\n host: {\r\n class: 'frame-combobox__collection',\r\n },\r\n})\r\nexport class FrComboboxCollection {}\r\n\r\n// Resolved by the root file to avoid a circular import in decorator metadata.\r\n/** Base API for combobox root lookup. */\r\nexport abstract class FrComboboxRootLookup {\r\n abstract visibleCount(): number;\r\n}\r\n\r\n","import {\r\n CdkConnectedOverlay,\r\n CdkOverlayOrigin,\r\n ConnectedOverlayPositionChange,\r\n ConnectedPosition,\r\n} from '@angular/cdk/overlay';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n DestroyRef,\r\n DoCheck,\r\n ElementRef,\r\n booleanAttribute,\r\n computed,\r\n contentChild,\r\n inject,\r\n input,\r\n model,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\n\r\nimport { FrControlValueAccessor, provideDsValueAccessor } from '@frame-ui-ng/components/forms';\r\nimport { FrComboboxContent, FrComboboxRootLookup } from './combobox.content';\r\nimport { FrComboboxItem } from './combobox.items';\r\n\r\nexport type FrComboboxValue = unknown;\r\nexport type FrComboboxStringifier = (item: FrComboboxValue) => string;\r\n\r\nconst POSITIONS: ConnectedPosition[] = [\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n offsetY: 4,\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom',\r\n offsetY: -4,\r\n },\r\n];\r\n\r\n/** Combobox control with single and multi-value support. */\r\n@Component({\r\n selector: '[frCombobox], frame-combobox',\r\n exportAs: 'frCombobox',\r\n imports: [CdkConnectedOverlay, CdkOverlayOrigin, NgTemplateOutlet],\r\n providers: [\r\n provideDsValueAccessor(FrCombobox),\r\n {\r\n provide: FrComboboxRootLookup,\r\n useExisting: FrCombobox,\r\n },\r\n ],\r\n host: {\r\n class: 'frame-combobox',\r\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\r\n '[attr.data-invalid]': 'invalid() ? \"\" : null'\r\n },\r\n template: `\r\n <span cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" class=\"frame-combobox__anchor\">\r\n <ng-content />\r\n </span>\r\n\r\n <ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayOrigin]=\"origin\"\r\n [cdkConnectedOverlayOpen]=\"isOpen()\"\r\n [cdkConnectedOverlayPositions]=\"positions\"\r\n [cdkConnectedOverlayPanelClass]=\"overlayPanelClasses()\"\r\n [cdkConnectedOverlayWidth]=\"overlayMinWidth()\"\r\n [cdkConnectedOverlayMinWidth]=\"overlayMinWidth()\"\r\n (overlayOutsideClick)=\"close()\"\r\n (positionChange)=\"handlePositionChange($event)\"\r\n (detach)=\"close()\"\r\n >\r\n @if (content()) {\r\n <ng-container [ngTemplateOutlet]=\"content()!.templateRef\" />\r\n }\r\n </ng-template>\r\n `,\r\n})\r\nexport class FrCombobox\r\n extends FrControlValueAccessor<FrComboboxValue | FrComboboxValue[] | null>\r\n implements AfterViewInit, DoCheck {\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly items = new Set<FrComboboxItem>();\r\n private readonly itemsVersion = signal(0);\r\n private readonly selectedLabels = new Map<FrComboboxValue, string>();\r\n private lastAutoHighlight = false;\r\n private lastItemsVersion = -1;\r\n private lastQuery = '';\r\n private resizeObserver: ResizeObserver | null = null;\r\n\r\n private readonly origin = viewChild(CdkOverlayOrigin);\r\n\r\n readonly content = contentChild(FrComboboxContent);\r\n readonly autoHighlight = input(false, { transform: booleanAttribute });\r\n readonly debugVisible = input(false, { transform: booleanAttribute });\r\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\r\n readonly invalidInput = input(false, { alias: 'invalid', transform: booleanAttribute });\r\n readonly itemToStringValue = input<FrComboboxStringifier>((item) => String(item ?? ''));\r\n readonly multiple = input(false, { transform: booleanAttribute });\r\n readonly showClear = input(false, { transform: booleanAttribute });\r\n readonly value = model<FrComboboxValue | FrComboboxValue[] | null>(null);\r\n\r\n readonly disabled = computed(() => this.disabledInput() || this.formDisabled());\r\n readonly invalid = computed(() => this.invalidInput() || this.formInvalid());\r\n readonly isOpen = signal(false);\r\n readonly query = signal('');\r\n readonly anchorWidth = signal<number | null>(null);\r\n readonly highlightedIndex = signal(0);\r\n readonly overlaySide = signal<'bottom' | 'top'>('bottom');\r\n readonly positions = POSITIONS;\r\n\r\n readonly selectedValues = computed(() => {\r\n const value = this.value();\r\n return Array.isArray(value) ? value : value === null ? [] : [value];\r\n });\r\n\r\n readonly displayValue = computed(() => {\r\n if (this.multiple()) {\r\n return this.query();\r\n }\r\n\r\n const value = this.value();\r\n\r\n if (value === null || Array.isArray(value)) {\r\n return this.query();\r\n }\r\n\r\n return this.query() || this.selectedLabels.get(value) || this.itemToStringValue()(value);\r\n });\r\n\r\n readonly hasValue = computed(() => this.selectedValues().length > 0 || this.query().length > 0);\r\n\r\n constructor() {\r\n super();\r\n\r\n queueMicrotask(() => {\r\n this.measureAnchor();\r\n this.attachResizeObserver();\r\n });\r\n\r\n this.destroyRef.onDestroy(() => {\r\n this.resizeObserver?.disconnect();\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.debugVisible()) {\r\n this.open();\r\n }\r\n }\r\n\r\n ngDoCheck(): void {\r\n if (this.debugVisible() && !this.isOpen()) {\r\n this.open();\r\n }\r\n\r\n const autoHighlight = this.autoHighlight();\r\n const itemsVersion = this.itemsVersion();\r\n const query = this.query();\r\n\r\n if (\r\n autoHighlight &&\r\n (query !== this.lastQuery ||\r\n itemsVersion !== this.lastItemsVersion ||\r\n autoHighlight !== this.lastAutoHighlight)\r\n ) {\r\n // Filtering can invalidate the current index, so restart highlight at the first visible item.\r\n this.highlightedIndex.set(0);\r\n }\r\n\r\n this.lastAutoHighlight = autoHighlight;\r\n this.lastItemsVersion = itemsVersion;\r\n this.lastQuery = query;\r\n }\r\n\r\n registerItem(item: FrComboboxItem): void {\r\n this.items.add(item);\r\n this.bumpItems();\r\n }\r\n\r\n unregisterItem(item: FrComboboxItem): void {\r\n this.items.delete(item);\r\n this.bumpItems();\r\n }\r\n\r\n refreshItems(): void {\r\n this.bumpItems();\r\n }\r\n\r\n visibleItems(): FrComboboxItem[] {\r\n this.itemsVersion();\r\n return Array.from(this.items).filter((item) => item.isVisible());\r\n }\r\n\r\n visibleCount(): number {\r\n return this.visibleItems().length;\r\n }\r\n\r\n overlayMinWidth(): number {\r\n return this.anchorWidth() ?? 0;\r\n }\r\n\r\n overlayPanelClasses(): string[] {\r\n return ['frame-combobox-overlay', `frame-combobox-overlay--${this.overlaySide()}`];\r\n }\r\n\r\n isSelected(value: FrComboboxValue): boolean {\r\n return this.selectedValues().some((selected) => Object.is(selected, value));\r\n }\r\n\r\n isHighlighted(item: FrComboboxItem): boolean {\r\n return this.visibleItems()[this.highlightedIndex()] === item;\r\n }\r\n\r\n rememberItemLabel(value: FrComboboxValue, label: string): void {\r\n this.selectedLabels.set(value, label);\r\n }\r\n\r\n itemVisible(label: string): boolean {\r\n const query = this.query().trim().toLowerCase();\r\n return !query || label.toLowerCase().includes(query);\r\n }\r\n\r\n open(): void {\r\n if (this.disabled()) {\r\n return;\r\n }\r\n\r\n this.measureAnchor();\r\n this.isOpen.set(true);\r\n }\r\n\r\n close(): void {\r\n if (this.debugVisible()) {\r\n return;\r\n }\r\n\r\n this.isOpen.set(false);\r\n this.markAsTouched();\r\n }\r\n\r\n touch(): void {\r\n this.markAsTouched();\r\n }\r\n\r\n clear(): void {\r\n this.query.set('');\r\n this.value.set(this.multiple() ? [] : null);\r\n this.notifyValueChange(this.value());\r\n this.markAsTouched();\r\n }\r\n\r\n selectItem(value: FrComboboxValue, label: string): void {\r\n this.selectedLabels.set(value, label);\r\n\r\n if (this.multiple()) {\r\n const current = this.selectedValues();\r\n const exists = current.some((item) => Object.is(item, value));\r\n const next = exists ? current.filter((item) => !Object.is(item, value)) : [...current, value];\r\n this.value.set(next);\r\n this.notifyValueChange(next);\r\n this.query.set('');\r\n this.open();\r\n return;\r\n }\r\n\r\n this.value.set(value);\r\n this.notifyValueChange(value);\r\n this.query.set('');\r\n this.close();\r\n }\r\n\r\n removeItem(value: FrComboboxValue): void {\r\n if (!this.multiple()) {\r\n this.clear();\r\n return;\r\n }\r\n\r\n const next = this.selectedValues().filter((item) => !Object.is(item, value));\r\n this.value.set(next);\r\n this.notifyValueChange(next);\r\n this.markAsTouched();\r\n }\r\n\r\n updateQuery(value: string): void {\r\n this.query.set(value);\r\n this.highlightedIndex.set(0);\r\n this.open();\r\n }\r\n\r\n moveHighlight(delta: number): void {\r\n const count = this.visibleCount();\r\n\r\n if (count === 0) {\r\n this.highlightedIndex.set(0);\r\n return;\r\n }\r\n\r\n this.highlightedIndex.set((this.highlightedIndex() + delta + count) % count);\r\n }\r\n\r\n selectHighlighted(): void {\r\n const item = this.visibleItems()[this.highlightedIndex()];\r\n item?.select();\r\n }\r\n\r\n handlePositionChange(event: ConnectedOverlayPositionChange): void {\r\n this.overlaySide.set(event.connectionPair.overlayY === 'bottom' ? 'top' : 'bottom');\r\n }\r\n\r\n protected setViewValue(value: FrComboboxValue | FrComboboxValue[] | null): void {\r\n this.value.set(value);\r\n this.query.set('');\r\n }\r\n\r\n private bumpItems(): void {\r\n this.itemsVersion.update((value) => value + 1);\r\n }\r\n\r\n private measureAnchor(): void {\r\n const element = this.origin()?.elementRef.nativeElement ?? this.elementRef.nativeElement;\r\n\r\n if (typeof element?.getBoundingClientRect !== 'function') {\r\n this.anchorWidth.set(null);\r\n return;\r\n }\r\n\r\n // Match the overlay width to the trigger even when content is rendered in the CDK overlay.\r\n this.anchorWidth.set(element.getBoundingClientRect().width || null);\r\n }\r\n\r\n private attachResizeObserver(): void {\r\n if (typeof ResizeObserver === 'undefined') {\r\n return;\r\n }\r\n\r\n const element = this.origin()?.elementRef.nativeElement ?? this.elementRef.nativeElement;\r\n\r\n if (typeof element?.getBoundingClientRect !== 'function') {\r\n return;\r\n }\r\n\r\n this.resizeObserver = new ResizeObserver(() => this.measureAnchor());\r\n this.resizeObserver.observe(element);\r\n }\r\n}\r\n\r\n\r\n","import { Directive, ElementRef, inject } from '@angular/core';\r\n\r\nimport { FrCombobox } from './combobox.root';\r\n\r\n/** Search input for combobox filtering. */\r\n@Directive({\r\n selector: 'input[frComboboxInput]',\r\n host: {\r\n class: 'frame-combobox__input',\r\n '[attr.aria-disabled]': 'root.disabled() ? \"true\" : null',\r\n '[attr.aria-expanded]': 'root.isOpen() ? \"true\" : \"false\"',\r\n '[attr.aria-invalid]': 'root.invalid() ? \"true\" : null',\r\n '[attr.disabled]': 'root.disabled() ? \"\" : null',\r\n '[attr.data-has-value]': 'root.hasValue() ? \"true\" : \"false\"',\r\n '[value]': 'root.displayValue()',\r\n autocomplete: 'off',\r\n role: 'combobox',\r\n type: 'text',\r\n '(blur)': 'handleBlur()',\r\n '(focus)': 'root.open()',\r\n '(input)': 'handleInput()',\r\n '(keydown)': 'handleKeydown($event)',\r\n },\r\n})\r\nexport class FrComboboxInput {\r\n protected readonly root = inject(FrCombobox);\r\n private readonly elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\r\n\r\n protected handleInput(): void {\r\n this.root.updateQuery(this.elementRef.nativeElement.value);\r\n }\r\n\r\n protected handleBlur(): void {\r\n this.root.touch();\r\n }\r\n\r\n protected handleKeydown(event: KeyboardEvent): void {\r\n if (event.key === 'ArrowDown') {\r\n event.preventDefault();\r\n this.root.open();\r\n this.root.moveHighlight(1);\r\n return;\r\n }\r\n\r\n if (event.key === 'ArrowUp') {\r\n event.preventDefault();\r\n this.root.open();\r\n this.root.moveHighlight(-1);\r\n return;\r\n }\r\n\r\n if (event.key === 'Enter') {\r\n event.preventDefault();\r\n this.root.selectHighlighted();\r\n return;\r\n }\r\n\r\n if (event.key === 'Escape') {\r\n event.preventDefault();\r\n this.root.close();\r\n }\r\n }\r\n}\r\n\r\n/** Trigger control for combobox. */\r\n@Directive({\r\n selector: 'button[frComboboxTrigger]',\r\n host: {\r\n class: 'frame-combobox__trigger',\r\n '[attr.aria-expanded]': 'root.isOpen() ? \"true\" : \"false\"',\r\n '[attr.disabled]': 'root.disabled() ? \"\" : null',\r\n role: 'combobox',\r\n type: 'button',\r\n '(click)': 'root.isOpen() ? root.close() : root.open()',\r\n },\r\n})\r\nexport class FrComboboxTrigger {\r\n protected readonly root = inject(FrCombobox);\r\n}\r\n\r\n/** Clear control for combobox values. */\r\n@Directive({\r\n selector: 'button[frComboboxClear]',\r\n host: {\r\n class: 'frame-combobox__clear',\r\n '[attr.hidden]': 'hidden() ? \"\" : null',\r\n type: 'button',\r\n '(click)': 'root.clear()',\r\n },\r\n})\r\nexport class FrComboboxClear {\r\n protected readonly root = inject(FrCombobox);\r\n\r\n protected hidden(): boolean {\r\n return !this.root.showClear() || !this.root.hasValue();\r\n }\r\n}\r\n\r\n","import {\r\n DestroyRef,\r\n Directive,\r\n DoCheck,\r\n ElementRef,\r\n afterNextRender,\r\n booleanAttribute,\r\n computed,\r\n inject,\r\n input,\r\n signal,\r\n} from '@angular/core';\r\n\r\nimport { FrCombobox, FrComboboxValue } from './combobox.root';\r\n\r\n/** Item slot for combobox. */\r\n@Directive({\r\n selector: 'button[frComboboxItem]',\r\n host: {\r\n class: 'frame-combobox__item',\r\n '[attr.aria-selected]': 'isSelected() ? \"true\" : \"false\"',\r\n '[attr.data-highlighted]': 'isHighlighted() ? \"\" : null',\r\n '[attr.data-hidden]': 'isVisible() ? null : \"\"',\r\n '[attr.data-selected]': 'isSelected() ? \"\" : null',\r\n '[attr.disabled]': 'disabled() ? \"\" : null',\r\n role: 'option',\r\n type: 'button',\r\n '(click)': 'select()',\r\n '(mouseenter)': 'highlightSelf()',\r\n },\r\n})\r\nexport class FrComboboxItem implements DoCheck {\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly root = inject(FrCombobox);\r\n private mutationObserver: MutationObserver | null = null;\r\n\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n readonly itemLabel = input<string | null>(null, { alias: 'label' });\r\n readonly value = input.required<FrComboboxValue>();\r\n readonly resolvedLabel = signal('');\r\n private lastItemStateKey = '';\r\n\r\n readonly label = computed(() => this.itemLabel() ?? this.resolvedLabel());\r\n readonly visible = computed(() => this.root.itemVisible(this.label()));\r\n\r\n constructor() {\r\n this.root.registerItem(this);\r\n this.destroyRef.onDestroy(() => {\r\n this.mutationObserver?.disconnect();\r\n this.root.unregisterItem(this);\r\n });\r\n\r\n afterNextRender(() => {\r\n this.refreshResolvedLabel();\r\n this.observeTextChanges();\r\n });\r\n\r\n }\r\n\r\n ngDoCheck(): void {\r\n const itemStateKey = `${this.label()}|${this.disabled()}|${this.root.isSelected(this.value())}`;\r\n\r\n if (itemStateKey === this.lastItemStateKey) {\r\n return;\r\n }\r\n\r\n this.lastItemStateKey = itemStateKey;\r\n this.root.refreshItems();\r\n\r\n if (this.root.isSelected(this.value())) {\r\n this.root.rememberItemLabel(this.value(), this.label());\r\n }\r\n }\r\n\r\n isVisible(): boolean {\r\n return this.visible();\r\n }\r\n\r\n isSelected(): boolean {\r\n return this.root.isSelected(this.value());\r\n }\r\n\r\n isHighlighted(): boolean {\r\n return this.root.isHighlighted(this);\r\n }\r\n\r\n select(): void {\r\n if (!this.disabled() && this.isVisible()) {\r\n this.root.selectItem(this.value(), this.label());\r\n }\r\n }\r\n\r\n protected highlightSelf(): void {\r\n const index = this.root.visibleItems().indexOf(this);\r\n\r\n if (index >= 0) {\r\n this.root.highlightedIndex.set(index);\r\n }\r\n }\r\n\r\n private resolveLabel(): string {\r\n return this.elementRef.nativeElement.textContent?.trim() ?? '';\r\n }\r\n\r\n private refreshResolvedLabel(): void {\r\n this.resolvedLabel.set(this.resolveLabel());\r\n this.root.refreshItems();\r\n }\r\n\r\n private observeTextChanges(): void {\r\n if (typeof MutationObserver === 'undefined' || this.itemLabel() !== null) {\r\n return;\r\n }\r\n\r\n // Items without explicit labels derive filtering text from projected content.\r\n this.mutationObserver = new MutationObserver(() => this.refreshResolvedLabel());\r\n this.mutationObserver.observe(this.elementRef.nativeElement, {\r\n characterData: true,\r\n childList: true,\r\n subtree: true,\r\n });\r\n }\r\n}\r\n\r\n/** Indicator slot for combobox item. */\r\n@Directive({\r\n selector: '[frComboboxItemIndicator]',\r\n host: {\r\n class: 'frame-combobox__item-indicator',\r\n 'aria-hidden': 'true',\r\n },\r\n})\r\nexport class FrComboboxItemIndicator {}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n Renderer2,\r\n afterNextRender,\r\n booleanAttribute,\r\n inject,\r\n input,\r\n} from '@angular/core';\r\n\r\nimport { FrCombobox, FrComboboxValue } from './combobox.root';\r\n\r\n/** Chip list for multi-value combobox selections. */\r\n@Directive({\r\n selector: '[frComboboxChips], frame-combobox-chips',\r\n host: {\r\n class: 'frame-combobox__chips',\r\n '[attr.data-disabled]': 'root.disabled() ? \"\" : null',\r\n '[attr.data-invalid]': 'root.invalid() ? \"\" : null',\r\n },\r\n})\r\nexport class FrComboboxChips {\r\n protected readonly root = inject(FrCombobox);\r\n}\r\n\r\n/** List slot for combobox value. */\r\n@Directive({\r\n selector: '[frComboboxValue], frame-combobox-value',\r\n exportAs: 'frComboboxValue',\r\n host: {\r\n class: 'frame-combobox__value',\r\n },\r\n})\r\nexport class FrComboboxValueList {\r\n private readonly root = inject(FrCombobox);\r\n\r\n values(): FrComboboxValue[] {\r\n return this.root.selectedValues();\r\n }\r\n}\r\n\r\n/** Selected value chip for combobox. */\r\n@Directive({\r\n selector: '[frComboboxChip], frame-combobox-chip',\r\n exportAs: 'frComboboxChip',\r\n host: {\r\n class: 'frame-combobox__chip',\r\n },\r\n})\r\nexport class FrComboboxChip {\r\n private readonly root = inject(FrCombobox);\r\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly renderer = inject(Renderer2);\r\n\r\n readonly value = input.required<FrComboboxValue>();\r\n readonly removable = input(true, { transform: booleanAttribute });\r\n\r\n constructor() {\r\n afterNextRender(() => this.attachDefaultRemoveButton());\r\n }\r\n\r\n remove(): void {\r\n if (this.root.disabled()) {\r\n return;\r\n }\r\n\r\n this.root.removeItem(this.value());\r\n }\r\n\r\n private attachDefaultRemoveButton(): void {\r\n const element = this.elementRef.nativeElement;\r\n\r\n if (!this.removable() || element.querySelector('[frComboboxChipRemove], [frcomboboxchipremove]')) {\r\n return;\r\n }\r\n\r\n const button = this.renderer.createElement('button') as HTMLButtonElement;\r\n const label = this.renderer.createText('×');\r\n this.renderer.setAttribute(button, 'type', 'button');\r\n this.renderer.setAttribute(button, 'aria-label', 'Remove selected item');\r\n this.renderer.setAttribute(button, 'data-default-remove', '');\r\n this.renderer.addClass(button, 'frame-combobox__chip-remove');\r\n this.renderer.appendChild(button, label);\r\n this.renderer.listen(button, 'click', (event: MouseEvent) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.remove();\r\n });\r\n this.renderer.appendChild(element, button);\r\n }\r\n}\r\n\r\n/** Remove control for a combobox chip. */\r\n@Directive({\r\n selector: 'button[frComboboxChipRemove]',\r\n host: {\r\n class: 'frame-combobox__chip-remove',\r\n type: 'button',\r\n '(click)': 'remove($event)',\r\n },\r\n})\r\nexport class FrComboboxChipRemove {\r\n private readonly chip = inject(FrComboboxChip);\r\n\r\n protected remove(event: MouseEvent): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.chip.remove();\r\n }\r\n}\r\n\r\n/** Inline text input inside combobox chips. */\r\n@Directive({\r\n selector: 'input[frComboboxChipsInput]',\r\n host: {\r\n class: 'frame-combobox__chips-input',\r\n '[attr.disabled]': 'root.disabled() ? \"\" : null',\r\n '[value]': 'root.query()',\r\n autocomplete: 'off',\r\n type: 'text',\r\n '(focus)': 'root.open()',\r\n '(input)': 'handleInput($event)',\r\n '(keydown)': 'handleKeydown($event)',\r\n },\r\n})\r\nexport class FrComboboxChipsInput {\r\n protected readonly root = inject(FrCombobox);\r\n\r\n protected handleInput(event: Event): void {\r\n this.root.updateQuery((event.target as HTMLInputElement).value);\r\n }\r\n\r\n protected handleKeydown(event: KeyboardEvent): void {\r\n if (event.key === 'Backspace' && this.root.query() === '') {\r\n const values = this.root.selectedValues();\r\n const last = values.at(-1);\r\n\r\n if (last !== undefined) {\r\n this.root.removeItem(last);\r\n }\r\n }\r\n\r\n if (event.key === 'ArrowDown') {\r\n event.preventDefault();\r\n this.root.open();\r\n this.root.moveHighlight(1);\r\n }\r\n\r\n if (event.key === 'Enter') {\r\n event.preventDefault();\r\n this.root.selectHighlighted();\r\n }\r\n }\r\n}\r\n\r\n/** Error slot for combobox. */\r\n@Directive({\r\n selector: '[frComboboxError], frame-combobox-error',\r\n host: {\r\n class: 'frame-combobox__error',\r\n 'aria-live': 'polite',\r\n },\r\n})\r\nexport class FrComboboxError {}\r\n\r\n","import { NgModule } from '@angular/core';\nimport {\n FrCombobox,\n FrComboboxChip,\n FrComboboxChipRemove,\n FrComboboxChips,\n FrComboboxChipsInput,\n FrComboboxClear,\n FrComboboxCollection,\n FrComboboxContent,\n FrComboboxEmpty,\n FrComboboxError,\n FrComboboxGroup,\n FrComboboxInput,\n FrComboboxItem,\n FrComboboxItemIndicator,\n FrComboboxLabel,\n FrComboboxList,\n FrComboboxPanel,\n FrComboboxSeparator,\n FrComboboxTrigger,\n FrComboboxValueList,\n} from './src/combobox';\n\n@NgModule({\n imports: [\n FrCombobox,\n FrComboboxChip,\n FrComboboxChipRemove,\n FrComboboxChips,\n FrComboboxChipsInput,\n FrComboboxClear,\n FrComboboxCollection,\n FrComboboxContent,\n FrComboboxEmpty,\n FrComboboxError,\n FrComboboxGroup,\n FrComboboxInput,\n FrComboboxItem,\n FrComboboxItemIndicator,\n FrComboboxLabel,\n FrComboboxList,\n FrComboboxPanel,\n FrComboboxSeparator,\n FrComboboxTrigger,\n FrComboboxValueList,\n ],\n exports: [\n FrCombobox,\n FrComboboxChip,\n FrComboboxChipRemove,\n FrComboboxChips,\n FrComboboxChipsInput,\n FrComboboxClear,\n FrComboboxCollection,\n FrComboboxContent,\n FrComboboxEmpty,\n FrComboboxError,\n FrComboboxGroup,\n FrComboboxInput,\n FrComboboxItem,\n FrComboboxItemIndicator,\n FrComboboxLabel,\n FrComboboxList,\n FrComboboxPanel,\n FrComboboxSeparator,\n FrComboboxTrigger,\n FrComboboxValueList,\n ],\n})\nexport class FrComboboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frame-ui-ng-components-combobox.mjs","sources":["../../../projects/components/combobox/src/combobox.content.ts","../../../projects/components/combobox/src/combobox.root.ts","../../../projects/components/combobox/src/combobox.input.ts","../../../projects/components/combobox/src/combobox.items.ts","../../../projects/components/combobox/src/combobox.value.ts","../../../projects/components/combobox/combobox.module.ts","../../../projects/components/combobox/frame-ui-ng-components-combobox.ts"],"sourcesContent":["import { Directive, ElementRef, TemplateRef, inject } from '@angular/core';\r\n\r\n/** Content slot for combobox. */\r\n@Directive({\r\n selector: 'ng-template[frComboboxContent]',\r\n exportAs: 'frComboboxContent',\r\n})\r\nexport class FrComboboxContent {\r\n readonly templateRef = inject(TemplateRef<unknown>);\r\n}\r\n\r\n/** Panel slot for combobox. */\r\n@Directive({\r\n selector: '[frComboboxPanel], frame-combobox-panel',\r\n host: {\r\n class: 'frame-combobox__panel',\r\n role: 'listbox',\r\n },\r\n})\r\nexport class FrComboboxPanel {}\r\n\r\n/** List slot for combobox. */\r\n@Directive({\r\n selector: '[frComboboxList], frame-combobox-list',\r\n host: {\r\n class: 'frame-combobox__list',\r\n },\r\n})\r\nexport class FrComboboxList {}\r\n\r\n/** Empty-state slot for combobox results. */\r\n@Directive({\r\n selector: '[frComboboxEmpty], frame-combobox-empty',\r\n host: {\r\n class: 'frame-combobox__empty',\r\n '[attr.hidden]': 'hidden() ? \"\" : null',\r\n },\r\n})\r\nexport class FrComboboxEmpty {\r\n private readonly root = inject(FrComboboxRootLookup);\r\n\r\n protected hidden(): boolean {\r\n return this.root.visibleCount() > 0;\r\n }\r\n}\r\n\r\n/** Group slot for combobox. */\r\n@Directive({\r\n selector: '[frComboboxGroup], frame-combobox-group',\r\n host: {\r\n class: 'frame-combobox__group',\r\n '[attr.hidden]': 'hidden() ? \"\" : null',\r\n },\r\n})\r\nexport class FrComboboxGroup {\r\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly root = inject(FrComboboxRootLookup);\r\n\r\n protected hidden(): boolean {\r\n this.root.visibleCount();\r\n\r\n const items = Array.from(this.elementRef.nativeElement.querySelectorAll('.frame-combobox__item'));\r\n return items.length > 0 && items.every((item) => item.hasAttribute('data-hidden'));\r\n }\r\n}\r\n\r\n/** Label slot for combobox. */\r\n@Directive({\r\n selector: '[frComboboxLabel], frame-combobox-label',\r\n host: {\r\n class: 'frame-combobox__label',\r\n },\r\n})\r\nexport class FrComboboxLabel {}\r\n\r\n/** Separator slot for combobox. */\r\n@Directive({\r\n selector: '[frComboboxSeparator], frame-combobox-separator',\r\n host: {\r\n class: 'frame-combobox__separator',\r\n role: 'separator',\r\n },\r\n})\r\nexport class FrComboboxSeparator {}\r\n\r\n/** Collection host for combobox options. */\r\n@Directive({\r\n selector: '[frComboboxCollection], frame-combobox-collection',\r\n host: {\r\n class: 'frame-combobox__collection',\r\n },\r\n})\r\nexport class FrComboboxCollection {}\r\n\r\n// Resolved by the root file to avoid a circular import in decorator metadata.\r\n/** Base API for combobox root lookup. */\r\nexport abstract class FrComboboxRootLookup {\r\n abstract visibleCount(): number;\r\n}\r\n\r\n","import {\r\n CdkConnectedOverlay,\r\n CdkOverlayOrigin,\r\n ConnectedOverlayPositionChange,\r\n ConnectedPosition,\r\n} from '@angular/cdk/overlay';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n DestroyRef,\r\n DoCheck,\r\n ElementRef,\r\n booleanAttribute,\r\n computed,\r\n contentChild,\r\n inject,\r\n input,\r\n model,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\n\r\nimport { FrControlValueAccessor, provideDsValueAccessor } from '@frame-ui-ng/components/forms';\r\nimport { FrComboboxContent, FrComboboxRootLookup } from './combobox.content';\r\nimport { FrComboboxItem } from './combobox.items';\r\n\r\nexport type FrComboboxValue = unknown;\r\nexport type FrComboboxStringifier = (item: FrComboboxValue) => string;\r\n\r\nconst POSITIONS: ConnectedPosition[] = [\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n offsetY: 4,\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom',\r\n offsetY: -4,\r\n },\r\n];\r\n\r\n/** Combobox control with single and multi-value support. */\r\n@Component({\r\n selector: '[frCombobox], frame-combobox',\r\n exportAs: 'frCombobox',\r\n imports: [CdkConnectedOverlay, CdkOverlayOrigin, NgTemplateOutlet],\r\n providers: [\r\n provideDsValueAccessor(FrCombobox),\r\n {\r\n provide: FrComboboxRootLookup,\r\n useExisting: FrCombobox,\r\n },\r\n ],\r\n host: {\r\n class: 'frame-combobox',\r\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\r\n '[attr.data-invalid]': 'invalid() ? \"\" : null'\r\n },\r\n template: `\r\n <span cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" class=\"frame-combobox__anchor\">\r\n <ng-content />\r\n </span>\r\n\r\n <ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayOrigin]=\"origin\"\r\n [cdkConnectedOverlayOpen]=\"isOpen()\"\r\n [cdkConnectedOverlayPositions]=\"positions\"\r\n [cdkConnectedOverlayPanelClass]=\"overlayPanelClasses()\"\r\n [cdkConnectedOverlayWidth]=\"overlayMinWidth()\"\r\n [cdkConnectedOverlayMinWidth]=\"overlayMinWidth()\"\r\n (overlayOutsideClick)=\"close()\"\r\n (positionChange)=\"handlePositionChange($event)\"\r\n (detach)=\"close()\"\r\n >\r\n @if (content()) {\r\n <ng-container [ngTemplateOutlet]=\"content()!.templateRef\" />\r\n }\r\n </ng-template>\r\n `,\r\n})\r\nexport class FrCombobox\r\n extends FrControlValueAccessor<FrComboboxValue | FrComboboxValue[] | null>\r\n implements AfterViewInit, DoCheck {\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly items = new Set<FrComboboxItem>();\r\n private readonly itemsVersion = signal(0);\r\n private readonly selectedLabels = new Map<FrComboboxValue, string>();\r\n private readonly selectedLabelsVersion = signal(0);\r\n private lastAutoHighlight = false;\r\n private lastItemsVersion = -1;\r\n private lastQuery = '';\r\n private resizeObserver: ResizeObserver | null = null;\r\n\r\n private readonly origin = viewChild(CdkOverlayOrigin);\r\n\r\n readonly content = contentChild(FrComboboxContent);\r\n readonly autoHighlight = input(false, { transform: booleanAttribute });\r\n readonly debugVisible = input(false, { transform: booleanAttribute });\r\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\r\n readonly invalidInput = input(false, { alias: 'invalid', transform: booleanAttribute });\r\n readonly itemToStringValue = input<FrComboboxStringifier>((item) => String(item ?? ''));\r\n readonly multiple = input(false, { transform: booleanAttribute });\r\n readonly showClear = input(false, { transform: booleanAttribute });\r\n readonly value = model<FrComboboxValue | FrComboboxValue[] | null>(null);\r\n\r\n readonly disabled = computed(() => this.disabledInput() || this.formDisabled());\r\n readonly invalid = computed(() => this.invalidInput() || this.formInvalid());\r\n readonly isOpen = signal(false);\r\n readonly query = signal('');\r\n readonly queryActive = signal(false);\r\n readonly anchorWidth = signal<number | null>(null);\r\n readonly highlightedIndex = signal(0);\r\n readonly overlaySide = signal<'bottom' | 'top'>('bottom');\r\n readonly positions = POSITIONS;\r\n\r\n readonly selectedValues = computed(() => {\r\n const value = this.value();\r\n return Array.isArray(value) ? value : value === null ? [] : [value];\r\n });\r\n\r\n readonly displayValue = computed(() => {\r\n if (this.multiple()) {\r\n return this.query();\r\n }\r\n\r\n const value = this.value();\r\n this.selectedLabelsVersion();\r\n\r\n if (this.queryActive() || value === null || Array.isArray(value)) {\r\n return this.query();\r\n }\r\n\r\n return this.query() || this.selectedLabels.get(value) || this.itemToStringValue()(value);\r\n });\r\n\r\n readonly hasValue = computed(() => this.selectedValues().length > 0 || this.query().length > 0);\r\n\r\n constructor() {\r\n super();\r\n\r\n queueMicrotask(() => {\r\n this.measureAnchor();\r\n this.attachResizeObserver();\r\n });\r\n\r\n this.destroyRef.onDestroy(() => {\r\n this.resizeObserver?.disconnect();\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.debugVisible()) {\r\n this.open();\r\n }\r\n }\r\n\r\n ngDoCheck(): void {\r\n if (this.debugVisible() && !this.isOpen()) {\r\n this.open();\r\n }\r\n\r\n const autoHighlight = this.autoHighlight();\r\n const itemsVersion = this.itemsVersion();\r\n const query = this.query();\r\n\r\n if (\r\n autoHighlight &&\r\n (query !== this.lastQuery ||\r\n itemsVersion !== this.lastItemsVersion ||\r\n autoHighlight !== this.lastAutoHighlight)\r\n ) {\r\n // Filtering can invalidate the current index, so restart highlight at the first visible item.\r\n this.highlightedIndex.set(0);\r\n }\r\n\r\n this.lastAutoHighlight = autoHighlight;\r\n this.lastItemsVersion = itemsVersion;\r\n this.lastQuery = query;\r\n }\r\n\r\n registerItem(item: FrComboboxItem): void {\r\n this.items.add(item);\r\n this.bumpItems();\r\n }\r\n\r\n unregisterItem(item: FrComboboxItem): void {\r\n this.items.delete(item);\r\n this.bumpItems();\r\n }\r\n\r\n refreshItems(): void {\r\n this.bumpItems();\r\n }\r\n\r\n visibleItems(): FrComboboxItem[] {\r\n this.itemsVersion();\r\n return Array.from(this.items).filter((item) => item.isVisible());\r\n }\r\n\r\n visibleCount(): number {\r\n return this.visibleItems().length;\r\n }\r\n\r\n overlayMinWidth(): number {\r\n return this.anchorWidth() ?? 0;\r\n }\r\n\r\n overlayPanelClasses(): string[] {\r\n return ['frame-combobox-overlay', `frame-combobox-overlay--${this.overlaySide()}`];\r\n }\r\n\r\n isSelected(value: FrComboboxValue): boolean {\r\n return this.selectedValues().some((selected) => Object.is(selected, value));\r\n }\r\n\r\n isHighlighted(item: FrComboboxItem): boolean {\r\n return this.visibleItems()[this.highlightedIndex()] === item;\r\n }\r\n\r\n rememberItemLabel(value: FrComboboxValue, label: string): void {\r\n if (this.selectedLabels.get(value) === label) {\r\n return;\r\n }\r\n\r\n this.selectedLabels.set(value, label);\r\n this.selectedLabelsVersion.update((version) => version + 1);\r\n }\r\n\r\n itemVisible(label: string): boolean {\r\n const query = this.query().trim().toLowerCase();\r\n return !query || label.toLowerCase().includes(query);\r\n }\r\n\r\n open(): void {\r\n if (this.disabled()) {\r\n return;\r\n }\r\n\r\n this.measureAnchor();\r\n this.isOpen.set(true);\r\n }\r\n\r\n close(): void {\r\n if (this.debugVisible()) {\r\n return;\r\n }\r\n\r\n this.isOpen.set(false);\r\n if (!this.query()) {\r\n this.queryActive.set(false);\r\n }\r\n this.markAsTouched();\r\n }\r\n\r\n touch(): void {\r\n this.markAsTouched();\r\n }\r\n\r\n clear(): void {\r\n this.query.set('');\r\n this.queryActive.set(false);\r\n this.value.set(this.multiple() ? [] : null);\r\n this.notifyValueChange(this.value());\r\n this.markAsTouched();\r\n }\r\n\r\n selectItem(value: FrComboboxValue, label: string): void {\r\n this.rememberItemLabel(value, label);\r\n\r\n if (this.multiple()) {\r\n const current = this.selectedValues();\r\n const exists = current.some((item) => Object.is(item, value));\r\n const next = exists ? current.filter((item) => !Object.is(item, value)) : [...current, value];\r\n this.value.set(next);\r\n this.notifyValueChange(next);\r\n this.query.set('');\r\n this.queryActive.set(false);\r\n this.open();\r\n return;\r\n }\r\n\r\n this.value.set(value);\r\n this.notifyValueChange(value);\r\n this.query.set('');\r\n this.queryActive.set(false);\r\n this.close();\r\n }\r\n\r\n removeItem(value: FrComboboxValue): void {\r\n if (!this.multiple()) {\r\n this.clear();\r\n return;\r\n }\r\n\r\n const next = this.selectedValues().filter((item) => !Object.is(item, value));\r\n this.value.set(next);\r\n this.notifyValueChange(next);\r\n this.markAsTouched();\r\n }\r\n\r\n updateQuery(value: string): void {\r\n this.query.set(value);\r\n this.queryActive.set(true);\r\n this.highlightedIndex.set(0);\r\n this.open();\r\n }\r\n\r\n moveHighlight(delta: number): void {\r\n const count = this.visibleCount();\r\n\r\n if (count === 0) {\r\n this.highlightedIndex.set(0);\r\n return;\r\n }\r\n\r\n this.highlightedIndex.set((this.highlightedIndex() + delta + count) % count);\r\n this.scrollHighlightedItemIntoView();\r\n }\r\n\r\n selectHighlighted(): void {\r\n const item = this.visibleItems()[this.highlightedIndex()];\r\n item?.select();\r\n }\r\n\r\n handlePositionChange(event: ConnectedOverlayPositionChange): void {\r\n this.overlaySide.set(event.connectionPair.overlayY === 'bottom' ? 'top' : 'bottom');\r\n }\r\n\r\n protected setViewValue(value: FrComboboxValue | FrComboboxValue[] | null): void {\r\n this.value.set(value);\r\n this.query.set('');\r\n this.queryActive.set(false);\r\n }\r\n\r\n private bumpItems(): void {\r\n this.itemsVersion.update((value) => value + 1);\r\n }\r\n\r\n private scrollHighlightedItemIntoView(): void {\r\n queueMicrotask(() => {\r\n this.visibleItems()[this.highlightedIndex()]?.scrollIntoView();\r\n });\r\n }\r\n\r\n private measureAnchor(): void {\r\n const element = this.origin()?.elementRef.nativeElement ?? this.elementRef.nativeElement;\r\n\r\n if (typeof element?.getBoundingClientRect !== 'function') {\r\n this.anchorWidth.set(null);\r\n return;\r\n }\r\n\r\n // Match the overlay width to the trigger even when content is rendered in the CDK overlay.\r\n this.anchorWidth.set(element.getBoundingClientRect().width || null);\r\n }\r\n\r\n private attachResizeObserver(): void {\r\n if (typeof ResizeObserver === 'undefined') {\r\n return;\r\n }\r\n\r\n const element = this.origin()?.elementRef.nativeElement ?? this.elementRef.nativeElement;\r\n\r\n if (typeof element?.getBoundingClientRect !== 'function') {\r\n return;\r\n }\r\n\r\n this.resizeObserver = new ResizeObserver(() => this.measureAnchor());\r\n this.resizeObserver.observe(element);\r\n }\r\n}\r\n\r\n\r\n","import { Directive, ElementRef, inject } from '@angular/core';\r\n\r\nimport { FrCombobox } from './combobox.root';\r\n\r\n/** Search input for combobox filtering. */\r\n@Directive({\r\n selector: 'input[frComboboxInput]',\r\n host: {\r\n class: 'frame-combobox__input',\r\n '[attr.aria-disabled]': 'root.disabled() ? \"true\" : null',\r\n '[attr.aria-expanded]': 'root.isOpen() ? \"true\" : \"false\"',\r\n '[attr.aria-invalid]': 'root.invalid() ? \"true\" : null',\r\n '[attr.disabled]': 'root.disabled() ? \"\" : null',\r\n '[attr.data-has-value]': 'root.hasValue() ? \"true\" : \"false\"',\r\n '[value]': 'root.displayValue()',\r\n autocomplete: 'off',\r\n role: 'combobox',\r\n type: 'text',\r\n '(blur)': 'handleBlur()',\r\n '(focus)': 'root.open()',\r\n '(input)': 'handleInput()',\r\n '(keydown)': 'handleKeydown($event)',\r\n },\r\n})\r\nexport class FrComboboxInput {\r\n protected readonly root = inject(FrCombobox);\r\n private readonly elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\r\n\r\n protected handleInput(): void {\r\n this.root.updateQuery(this.elementRef.nativeElement.value);\r\n }\r\n\r\n protected handleBlur(): void {\r\n this.root.touch();\r\n }\r\n\r\n protected handleKeydown(event: KeyboardEvent): void {\r\n if (event.key === 'ArrowDown') {\r\n event.preventDefault();\r\n this.root.open();\r\n this.root.moveHighlight(1);\r\n return;\r\n }\r\n\r\n if (event.key === 'ArrowUp') {\r\n event.preventDefault();\r\n this.root.open();\r\n this.root.moveHighlight(-1);\r\n return;\r\n }\r\n\r\n if (event.key === 'Enter') {\r\n event.preventDefault();\r\n this.root.selectHighlighted();\r\n return;\r\n }\r\n\r\n if (event.key === 'Escape') {\r\n event.preventDefault();\r\n this.root.close();\r\n }\r\n }\r\n}\r\n\r\n/** Trigger control for combobox. */\r\n@Directive({\r\n selector: 'button[frComboboxTrigger]',\r\n host: {\r\n class: 'frame-combobox__trigger',\r\n '[attr.aria-expanded]': 'root.isOpen() ? \"true\" : \"false\"',\r\n '[attr.disabled]': 'root.disabled() ? \"\" : null',\r\n role: 'combobox',\r\n type: 'button',\r\n '(click)': 'root.isOpen() ? root.close() : root.open()',\r\n },\r\n})\r\nexport class FrComboboxTrigger {\r\n protected readonly root = inject(FrCombobox);\r\n}\r\n\r\n/** Clear control for combobox values. */\r\n@Directive({\r\n selector: 'button[frComboboxClear]',\r\n host: {\r\n class: 'frame-combobox__clear',\r\n '[attr.hidden]': 'hidden() ? \"\" : null',\r\n type: 'button',\r\n '(click)': 'root.clear()',\r\n },\r\n})\r\nexport class FrComboboxClear {\r\n protected readonly root = inject(FrCombobox);\r\n\r\n protected hidden(): boolean {\r\n return !this.root.showClear() || !this.root.hasValue();\r\n }\r\n}\r\n\r\n","import {\r\n DestroyRef,\r\n Directive,\r\n DoCheck,\r\n ElementRef,\r\n afterNextRender,\r\n booleanAttribute,\r\n computed,\r\n inject,\r\n input,\r\n signal,\r\n} from '@angular/core';\r\n\r\nimport { FrCombobox, FrComboboxValue } from './combobox.root';\r\n\r\n/** Item slot for combobox. */\r\n@Directive({\r\n selector: 'button[frComboboxItem]',\r\n host: {\r\n class: 'frame-combobox__item',\r\n '[attr.aria-selected]': 'isSelected() ? \"true\" : \"false\"',\r\n '[attr.data-highlighted]': 'isHighlighted() ? \"\" : null',\r\n '[attr.data-hidden]': 'isVisible() ? null : \"\"',\r\n '[attr.data-selected]': 'isSelected() ? \"\" : null',\r\n '[attr.disabled]': 'disabled() ? \"\" : null',\r\n role: 'option',\r\n type: 'button',\r\n '(click)': 'select()',\r\n '(mouseenter)': 'highlightSelf()',\r\n },\r\n})\r\nexport class FrComboboxItem implements DoCheck {\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly root = inject(FrCombobox);\r\n private mutationObserver: MutationObserver | null = null;\r\n\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n readonly itemLabel = input<string | null>(null, { alias: 'label' });\r\n readonly value = input.required<FrComboboxValue>();\r\n readonly resolvedLabel = signal('');\r\n private lastItemStateKey = '';\r\n\r\n readonly label = computed(() => this.itemLabel() ?? this.resolvedLabel());\r\n readonly visible = computed(() => this.root.itemVisible(this.label()));\r\n\r\n constructor() {\r\n this.root.registerItem(this);\r\n this.destroyRef.onDestroy(() => {\r\n this.mutationObserver?.disconnect();\r\n this.root.unregisterItem(this);\r\n });\r\n\r\n afterNextRender(() => {\r\n this.refreshResolvedLabel();\r\n this.observeTextChanges();\r\n });\r\n\r\n }\r\n\r\n ngDoCheck(): void {\r\n const itemStateKey = `${this.label()}|${this.disabled()}|${this.root.isSelected(this.value())}`;\r\n\r\n if (itemStateKey === this.lastItemStateKey) {\r\n return;\r\n }\r\n\r\n this.lastItemStateKey = itemStateKey;\r\n this.root.refreshItems();\r\n\r\n if (this.root.isSelected(this.value())) {\r\n this.root.rememberItemLabel(this.value(), this.label());\r\n }\r\n }\r\n\r\n isVisible(): boolean {\r\n return this.visible();\r\n }\r\n\r\n isSelected(): boolean {\r\n return this.root.isSelected(this.value());\r\n }\r\n\r\n isHighlighted(): boolean {\r\n return this.root.isHighlighted(this);\r\n }\r\n\r\n select(): void {\r\n if (!this.disabled() && this.isVisible()) {\r\n this.root.selectItem(this.value(), this.label());\r\n }\r\n }\r\n\r\n scrollIntoView(): void {\r\n this.elementRef.nativeElement.scrollIntoView?.({ block: 'nearest', inline: 'nearest' });\r\n }\r\n\r\n protected highlightSelf(): void {\r\n const index = this.root.visibleItems().indexOf(this);\r\n\r\n if (index >= 0) {\r\n this.root.highlightedIndex.set(index);\r\n }\r\n }\r\n\r\n private resolveLabel(): string {\r\n return this.elementRef.nativeElement.textContent?.trim() ?? '';\r\n }\r\n\r\n private refreshResolvedLabel(): void {\r\n this.resolvedLabel.set(this.resolveLabel());\r\n this.root.refreshItems();\r\n }\r\n\r\n private observeTextChanges(): void {\r\n if (typeof MutationObserver === 'undefined' || this.itemLabel() !== null) {\r\n return;\r\n }\r\n\r\n // Items without explicit labels derive filtering text from projected content.\r\n this.mutationObserver = new MutationObserver(() => this.refreshResolvedLabel());\r\n this.mutationObserver.observe(this.elementRef.nativeElement, {\r\n characterData: true,\r\n childList: true,\r\n subtree: true,\r\n });\r\n }\r\n}\r\n\r\n/** Indicator slot for combobox item. */\r\n@Directive({\r\n selector: '[frComboboxItemIndicator]',\r\n host: {\r\n class: 'frame-combobox__item-indicator',\r\n 'aria-hidden': 'true',\r\n },\r\n})\r\nexport class FrComboboxItemIndicator {}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n Renderer2,\r\n afterNextRender,\r\n booleanAttribute,\r\n inject,\r\n input,\r\n} from '@angular/core';\r\n\r\nimport { FrCombobox, FrComboboxValue } from './combobox.root';\r\n\r\n/** Chip list for multi-value combobox selections. */\r\n@Directive({\r\n selector: '[frComboboxChips], frame-combobox-chips',\r\n host: {\r\n class: 'frame-combobox__chips',\r\n '[attr.data-disabled]': 'root.disabled() ? \"\" : null',\r\n '[attr.data-invalid]': 'root.invalid() ? \"\" : null',\r\n },\r\n})\r\nexport class FrComboboxChips {\r\n protected readonly root = inject(FrCombobox);\r\n}\r\n\r\n/** List slot for combobox value. */\r\n@Directive({\r\n selector: '[frComboboxValue], frame-combobox-value',\r\n exportAs: 'frComboboxValue',\r\n host: {\r\n class: 'frame-combobox__value',\r\n },\r\n})\r\nexport class FrComboboxValueList {\r\n private readonly root = inject(FrCombobox);\r\n\r\n values(): FrComboboxValue[] {\r\n return this.root.selectedValues();\r\n }\r\n}\r\n\r\n/** Selected value chip for combobox. */\r\n@Directive({\r\n selector: '[frComboboxChip], frame-combobox-chip',\r\n exportAs: 'frComboboxChip',\r\n host: {\r\n class: 'frame-combobox__chip',\r\n },\r\n})\r\nexport class FrComboboxChip {\r\n private readonly root = inject(FrCombobox);\r\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly renderer = inject(Renderer2);\r\n\r\n readonly value = input.required<FrComboboxValue>();\r\n readonly removable = input(true, { transform: booleanAttribute });\r\n\r\n constructor() {\r\n afterNextRender(() => this.attachDefaultRemoveButton());\r\n }\r\n\r\n remove(): void {\r\n if (this.root.disabled()) {\r\n return;\r\n }\r\n\r\n this.root.removeItem(this.value());\r\n }\r\n\r\n private attachDefaultRemoveButton(): void {\r\n const element = this.elementRef.nativeElement;\r\n\r\n if (!this.removable() || element.querySelector('[frComboboxChipRemove], [frcomboboxchipremove]')) {\r\n return;\r\n }\r\n\r\n const button = this.renderer.createElement('button') as HTMLButtonElement;\r\n const icon = this.createRemoveIcon();\r\n this.renderer.setAttribute(button, 'type', 'button');\r\n this.renderer.setAttribute(button, 'aria-label', 'Remove selected item');\r\n this.renderer.setAttribute(button, 'data-default-remove', '');\r\n this.renderer.addClass(button, 'frame-combobox__chip-remove');\r\n this.renderer.appendChild(button, icon);\r\n this.renderer.listen(button, 'click', (event: MouseEvent) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.remove();\r\n });\r\n this.renderer.appendChild(element, button);\r\n }\r\n\r\n private createRemoveIcon(): SVGElement {\r\n const svg = this.renderer.createElement('svg', 'svg') as SVGElement;\r\n const firstPath = this.renderer.createElement('path', 'svg') as SVGPathElement;\r\n const secondPath = this.renderer.createElement('path', 'svg') as SVGPathElement;\r\n\r\n this.renderer.setAttribute(svg, 'aria-hidden', 'true');\r\n this.renderer.setAttribute(svg, 'viewBox', '0 0 24 24');\r\n this.renderer.setAttribute(svg, 'fill', 'none');\r\n this.renderer.setAttribute(svg, 'stroke', 'currentColor');\r\n this.renderer.setAttribute(svg, 'stroke-width', '2');\r\n this.renderer.setAttribute(svg, 'stroke-linecap', 'round');\r\n this.renderer.setAttribute(svg, 'stroke-linejoin', 'round');\r\n this.renderer.addClass(svg, 'frame-combobox__chip-remove-icon');\r\n this.renderer.setAttribute(firstPath, 'd', 'M18 6 6 18');\r\n this.renderer.setAttribute(secondPath, 'd', 'm6 6 12 12');\r\n this.renderer.appendChild(svg, firstPath);\r\n this.renderer.appendChild(svg, secondPath);\r\n\r\n return svg;\r\n }\r\n}\r\n\r\n/** Remove control for a combobox chip. */\r\n@Directive({\r\n selector: 'button[frComboboxChipRemove]',\r\n host: {\r\n class: 'frame-combobox__chip-remove',\r\n type: 'button',\r\n '(click)': 'remove($event)',\r\n },\r\n})\r\nexport class FrComboboxChipRemove {\r\n private readonly chip = inject(FrComboboxChip);\r\n\r\n protected remove(event: MouseEvent): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.chip.remove();\r\n }\r\n}\r\n\r\n/** Inline text input inside combobox chips. */\r\n@Directive({\r\n selector: 'input[frComboboxChipsInput]',\r\n host: {\r\n class: 'frame-combobox__chips-input',\r\n '[attr.disabled]': 'root.disabled() ? \"\" : null',\r\n '[value]': 'root.query()',\r\n autocomplete: 'off',\r\n type: 'text',\r\n '(focus)': 'root.open()',\r\n '(input)': 'handleInput($event)',\r\n '(keydown)': 'handleKeydown($event)',\r\n },\r\n})\r\nexport class FrComboboxChipsInput {\r\n protected readonly root = inject(FrCombobox);\r\n\r\n protected handleInput(event: Event): void {\r\n this.root.updateQuery((event.target as HTMLInputElement).value);\r\n }\r\n\r\n protected handleKeydown(event: KeyboardEvent): void {\r\n if (event.key === 'Backspace' && this.root.query() === '') {\r\n const values = this.root.selectedValues();\r\n const last = values.at(-1);\r\n\r\n if (last !== undefined) {\r\n this.root.removeItem(last);\r\n }\r\n }\r\n\r\n if (event.key === 'ArrowDown') {\r\n event.preventDefault();\r\n this.root.open();\r\n this.root.moveHighlight(1);\r\n }\r\n\r\n if (event.key === 'ArrowUp') {\r\n event.preventDefault();\r\n this.root.open();\r\n this.root.moveHighlight(-1);\r\n }\r\n\r\n if (event.key === 'Enter') {\r\n event.preventDefault();\r\n this.root.selectHighlighted();\r\n }\r\n }\r\n}\r\n\r\n/** Error slot for combobox. */\r\n@Directive({\r\n selector: '[frComboboxError], frame-combobox-error',\r\n host: {\r\n class: 'frame-combobox__error',\r\n 'aria-live': 'polite',\r\n },\r\n})\r\nexport class FrComboboxError {}\r\n\r\n","import { NgModule } from '@angular/core';\nimport {\n FrCombobox,\n FrComboboxChip,\n FrComboboxChipRemove,\n FrComboboxChips,\n FrComboboxChipsInput,\n FrComboboxClear,\n FrComboboxCollection,\n FrComboboxContent,\n FrComboboxEmpty,\n FrComboboxError,\n FrComboboxGroup,\n FrComboboxInput,\n FrComboboxItem,\n FrComboboxItemIndicator,\n FrComboboxLabel,\n FrComboboxList,\n FrComboboxPanel,\n FrComboboxSeparator,\n FrComboboxTrigger,\n FrComboboxValueList,\n} from './src/combobox';\n\n@NgModule({\n imports: [\n FrCombobox,\n FrComboboxChip,\n FrComboboxChipRemove,\n FrComboboxChips,\n FrComboboxChipsInput,\n FrComboboxClear,\n FrComboboxCollection,\n FrComboboxContent,\n FrComboboxEmpty,\n FrComboboxError,\n FrComboboxGroup,\n FrComboboxInput,\n FrComboboxItem,\n FrComboboxItemIndicator,\n FrComboboxLabel,\n FrComboboxList,\n FrComboboxPanel,\n FrComboboxSeparator,\n FrComboboxTrigger,\n FrComboboxValueList,\n ],\n exports: [\n FrCombobox,\n FrComboboxChip,\n FrComboboxChipRemove,\n FrComboboxChips,\n FrComboboxChipsInput,\n FrComboboxClear,\n FrComboboxCollection,\n FrComboboxContent,\n FrComboboxEmpty,\n FrComboboxError,\n FrComboboxGroup,\n FrComboboxInput,\n FrComboboxItem,\n FrComboboxItemIndicator,\n FrComboboxLabel,\n FrComboboxList,\n FrComboboxPanel,\n FrComboboxSeparator,\n FrComboboxTrigger,\n FrComboboxValueList,\n ],\n})\nexport class FrComboboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -599,7 +599,7 @@ class FrCommand {
599
599
  this.visibleItems()[this.highlightedIndex()]?.scrollIntoView();
600
600
  }
601
601
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrCommand, deps: [], target: i0.ɵɵFactoryTarget.Directive });
602
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrCommand, isStandalone: true, selector: "[frCommand], frame-command", inputs: { closeOnSelect: { classPropertyName: "closeOnSelect", publicName: "closeOnSelect", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, loop: { classPropertyName: "loop", publicName: "loop", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", itemSelected: "itemSelected", queryChange: "queryChange" }, host: { listeners: { "keydown": "handleKeydown($event)" }, properties: { "attr.data-disabled": "disabled() ? \"\" : null", "attr.data-state": "visibleCount() > 0 ? \"results\" : \"empty\"" }, classAttribute: "frame-command" }, providers: [{ provide: FR_COMMAND, useExisting: FrCommand }], exportAs: ["frCommand"], ngImport: i0 });
602
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrCommand, isStandalone: true, selector: "[frCommand], frame-command", inputs: { closeOnSelect: { classPropertyName: "closeOnSelect", publicName: "closeOnSelect", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, loop: { classPropertyName: "loop", publicName: "loop", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", itemSelected: "itemSelected", queryChange: "queryChange" }, host: { listeners: { "keydown": "handleKeydown($event)" }, properties: { "attr.data-disabled": "disabled() ? \"\" : null", "attr.data-state": "visibleCount() > 0 ? \"results\" : \"empty\"" }, classAttribute: "frame-command frame-corner-handles" }, providers: [{ provide: FR_COMMAND, useExisting: FrCommand }], exportAs: ["frCommand"], ngImport: i0 });
603
603
  }
604
604
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrCommand, decorators: [{
605
605
  type: Directive,
@@ -609,7 +609,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
609
609
  standalone: true,
610
610
  providers: [{ provide: FR_COMMAND, useExisting: FrCommand }],
611
611
  host: {
612
- class: 'frame-command',
612
+ class: 'frame-command frame-corner-handles',
613
613
  '[attr.data-disabled]': 'disabled() ? "" : null',
614
614
  '[attr.data-state]': 'visibleCount() > 0 ? "results" : "empty"',
615
615
  '(keydown)': 'handleKeydown($event)',
@@ -1 +1 @@
1
- {"version":3,"file":"frame-ui-ng-components-command.mjs","sources":["../../../projects/components/command/src/command.dialog.ts","../../../projects/components/command/src/command.footer.ts","../../../projects/components/command/src/command.tokens.ts","../../../projects/components/command/src/command.group.ts","../../../projects/components/command/src/command.input.ts","../../../projects/components/command/src/command.item.ts","../../../projects/components/command/src/command.list.ts","../../../projects/components/command/src/command.root.ts","../../../projects/components/command/src/command.separator.ts","../../../projects/components/command/command.module.ts","../../../projects/components/command/frame-ui-ng-components-command.ts"],"sourcesContent":["import { Direction } from '@angular/cdk/bidi';\r\nimport { ComponentType } from '@angular/cdk/portal';\r\nimport { Dialog, DialogConfig, DialogRef } from '@angular/cdk/dialog';\r\nimport {\r\n DestroyRef,\r\n Directive,\r\n Injectable,\r\n TemplateRef,\r\n ViewContainerRef,\r\n booleanAttribute,\r\n inject,\r\n input,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nexport type FrCommandDialogRef<Result = unknown, Component = unknown> = DialogRef<Result, Component>;\r\nexport type FrCommandDialogConfig<Data = unknown, Result = unknown, Component = unknown> = DialogConfig<\r\n Data,\r\n DialogRef<Result, Component>\r\n>;\r\n\r\nconst DEFAULT_PANEL_CLASS = 'frame-command-dialog__overlay-pane';\r\nconst DEFAULT_BACKDROP_CLASS = 'frame-command-dialog__backdrop';\r\n\r\n/** Template configuration for a command dialog. */\r\n@Directive({\r\n selector: 'ng-template[frCommandDialog]',\r\n exportAs: 'frCommandDialog',\r\n standalone: true,\r\n})\r\nexport class FrCommandDialog {\r\n readonly templateRef = inject(TemplateRef<unknown>);\r\n\r\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\r\n readonly ariaLabelledBy = input<string | null>(null, { alias: 'aria-labelledby' });\r\n readonly ariaDescribedBy = input<string | null>(null, { alias: 'aria-describedby' });\r\n readonly backdropClass = input<string | string[] | null>(null);\r\n readonly closeOnDestroy = input(true, { transform: booleanAttribute });\r\n readonly closeOnNavigation = input(true, { transform: booleanAttribute });\r\n readonly direction = input<Direction | null>(null);\r\n readonly disableClose = input(false, { transform: booleanAttribute });\r\n readonly height = input<string | null>(null);\r\n readonly id = input<string | null>(null);\r\n readonly maxHeight = input<string | null>(null);\r\n readonly maxWidth = input<string | null>(null);\r\n readonly minHeight = input<string | null>(null);\r\n readonly minWidth = input<string | null>(null);\r\n readonly panelClass = input<string | string[] | null>(null);\r\n readonly role = input<'dialog' | 'alertdialog'>('dialog');\r\n readonly width = input<string | null>(null);\r\n\r\n buildConfig(viewContainerRef: ViewContainerRef): FrCommandDialogConfig {\r\n return {\r\n ariaLabel: this.ariaLabel() ?? undefined,\r\n ariaLabelledBy: this.ariaLabelledBy() ?? undefined,\r\n ariaDescribedBy: this.ariaDescribedBy() ?? undefined,\r\n backdropClass: this.backdropClass() ?? undefined,\r\n closeOnDestroy: this.closeOnDestroy(),\r\n closeOnNavigation: this.closeOnNavigation(),\r\n direction: this.direction() ?? undefined,\r\n disableClose: this.disableClose(),\r\n height: this.height() ?? undefined,\r\n id: this.id() ?? undefined,\r\n maxHeight: this.maxHeight() ?? undefined,\r\n maxWidth: this.maxWidth() ?? undefined,\r\n minHeight: this.minHeight() ?? undefined,\r\n minWidth: this.minWidth() ?? undefined,\r\n panelClass: this.panelClass() ?? undefined,\r\n role: this.role(),\r\n viewContainerRef,\r\n width: this.width() ?? undefined,\r\n };\r\n }\r\n}\r\n\r\n/** Trigger control for command dialog. */\r\n@Directive({\r\n selector: '[frCommandDialogTrigger]',\r\n standalone: true,\r\n host: {\r\n class: 'frame-command-dialog__trigger',\r\n '[attr.aria-haspopup]': '\"dialog\"',\r\n '[attr.data-state]': 'isOpen() ? \"open\" : \"closed\"',\r\n '[attr.disabled]': 'disabled() ? \"\" : null',\r\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\r\n '(click)': 'open()',\r\n },\r\n})\r\nexport class FrCommandDialogTrigger {\r\n private readonly commandDialog = inject(FrCommandService);\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly viewContainerRef = inject(ViewContainerRef);\r\n private dialogRef: FrCommandDialogRef | null = null;\r\n\r\n readonly content = input<FrCommandDialog | TemplateRef<unknown> | null>(null, {\r\n alias: 'frCommandDialogTrigger',\r\n });\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n readonly opened = output<FrCommandDialogRef>();\r\n readonly closed = output<unknown>();\r\n readonly isOpen = signal(false);\r\n\r\n open(): void {\r\n if (this.disabled() || this.isOpen()) {\r\n return;\r\n }\r\n\r\n const content = this.content();\r\n\r\n if (!content) {\r\n return;\r\n }\r\n\r\n const templateRef = content instanceof FrCommandDialog ? content.templateRef : content;\r\n const config =\r\n content instanceof FrCommandDialog\r\n ? content.buildConfig(this.viewContainerRef)\r\n : { viewContainerRef: this.viewContainerRef };\r\n\r\n this.dialogRef = this.commandDialog.open(templateRef, config);\r\n this.isOpen.set(true);\r\n this.opened.emit(this.dialogRef);\r\n\r\n this.dialogRef.closed.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((result) => {\r\n this.isOpen.set(false);\r\n this.dialogRef = null;\r\n this.closed.emit(result);\r\n });\r\n }\r\n}\r\n\r\n/** Service for opening command dialogs. */\r\n@Injectable({ providedIn: 'root' })\r\nexport class FrCommandService {\r\n private readonly dialog = inject(Dialog);\r\n\r\n open<Result = unknown, Data = unknown, Component = unknown>(\r\n content: ComponentType<Component>,\r\n config?: FrCommandDialogConfig<Data, Result, Component>,\r\n ): FrCommandDialogRef<Result, Component>;\r\n open<Result = unknown, Data = unknown, Context = unknown>(\r\n content: TemplateRef<Context>,\r\n config?: FrCommandDialogConfig<Data, Result, Context>,\r\n ): FrCommandDialogRef<Result, Context>;\r\n open<Result = unknown, Data = unknown, ComponentOrContext = unknown>(\r\n content: ComponentType<ComponentOrContext> | TemplateRef<ComponentOrContext>,\r\n config: FrCommandDialogConfig<Data, Result, ComponentOrContext> = {},\r\n ): FrCommandDialogRef<Result, ComponentOrContext> {\r\n const dialogRef = this.dialog.open<Result, Data, ComponentOrContext>(\r\n content,\r\n this.withDefaultClasses(config),\r\n );\r\n\r\n if (isComponentType(content)) {\r\n const host = dialogRef.componentRef?.location.nativeElement as HTMLElement | undefined;\r\n host?.style.setProperty('display', 'block');\r\n host?.style.setProperty('inline-size', '100%');\r\n }\r\n\r\n return dialogRef;\r\n }\r\n\r\n closeAll(): void {\r\n this.dialog.closeAll();\r\n }\r\n\r\n private withDefaultClasses<Data, Result, Component>(\r\n config: FrCommandDialogConfig<Data, Result, Component>,\r\n ): FrCommandDialogConfig<Data, Result, Component> {\r\n return {\r\n ariaModal: true,\r\n autoFocus: '[frCommandInput]',\r\n restoreFocus: true,\r\n width: 'min(calc(100vw - 2rem), 48rem)',\r\n maxWidth: 'calc(100vw - 2rem)',\r\n ...config,\r\n panelClass: mergeClassList(config.panelClass, DEFAULT_PANEL_CLASS),\r\n backdropClass: mergeClassList(config.backdropClass, DEFAULT_BACKDROP_CLASS),\r\n };\r\n }\r\n}\r\n\r\nfunction isComponentType(value: unknown): value is ComponentType<unknown> {\r\n return typeof value === 'function';\r\n}\r\n\r\nfunction mergeClassList(\r\n classList: string | string[] | undefined | null,\r\n defaultClass: string,\r\n): string[] {\r\n const classes = Array.isArray(classList)\r\n ? classList\r\n : classList\r\n ? classList.split(/\\s+/)\r\n : [];\r\n\r\n return Array.from(new Set([defaultClass, ...classes].filter(Boolean)));\r\n}\r\n\r\n","import { Directive } from '@angular/core';\r\n\r\n/** Footer slot for command. */\r\n@Directive({\r\n selector: '[frCommandFooter]',\r\n host: {\r\n class: 'frame-command__footer',\r\n },\r\n})\r\nexport class FrCommandFooter {}\r\n","import { InjectionToken, Signal, WritableSignal } from '@angular/core';\r\n\r\nimport type { FrCommandItem } from './command.item';\r\n\r\nexport interface FrCommandRootContext {\r\n readonly disabled: Signal<boolean>;\r\n readonly highlightedIndex: WritableSignal<number>;\r\n readonly query: Signal<string>;\r\n readonly selectedValue: Signal<unknown>;\r\n close(value?: unknown): void;\r\n filteredItemVisible(label: string, keywords: readonly string[]): boolean;\r\n isHighlighted(item: FrCommandItem): boolean;\r\n isItemSelected(value: unknown): boolean;\r\n moveHighlight(delta: number): void;\r\n refreshItems(): void;\r\n registerItem(item: FrCommandItem): void;\r\n selectItem(item: FrCommandItem): void;\r\n setQuery(query: string): void;\r\n unregisterItem(item: FrCommandItem): void;\r\n visibleCount(): number;\r\n visibleItems(): FrCommandItem[];\r\n}\r\n\r\nexport interface FrCommandGroupContext {\r\n registerItem(item: FrCommandItem): void;\r\n unregisterItem(item: FrCommandItem): void;\r\n}\r\n\r\nexport const FR_COMMAND = new InjectionToken<FrCommandRootContext>('FrCommand');\r\nexport const FR_COMMAND_GROUP = new InjectionToken<FrCommandGroupContext>('FrCommandGroup');\r\n","import { Directive, booleanAttribute, computed, inject, input, signal } from '@angular/core';\r\n\r\nimport { FrCommandItem } from './command.item';\r\nimport { FR_COMMAND_GROUP } from './command.tokens';\r\n\r\n/** Group slot for command. */\r\n@Directive({\r\n selector: '[frCommandGroup]',\r\n exportAs: 'frCommandGroup',\r\n standalone: true,\r\n providers: [{ provide: FR_COMMAND_GROUP, useExisting: FrCommandGroup }],\r\n host: {\r\n class: 'frame-command__group',\r\n '[attr.aria-label]': 'heading()',\r\n '[attr.data-hidden]': 'hidden() ? \"\" : null',\r\n role: 'group',\r\n },\r\n})\r\nexport class FrCommandGroup {\r\n private readonly items = new Set<FrCommandItem>();\r\n private readonly itemsVersion = signal(0);\r\n\r\n readonly forceMount = input(false, { transform: booleanAttribute });\r\n readonly heading = input<string | null>(null);\r\n\r\n readonly hidden = computed(() => {\r\n this.itemsVersion();\r\n return !this.forceMount() && Array.from(this.items).every((item) => !item.isVisible());\r\n });\r\n\r\n registerItem(item: FrCommandItem): void {\r\n this.items.add(item);\r\n this.bumpItems();\r\n }\r\n\r\n unregisterItem(item: FrCommandItem): void {\r\n this.items.delete(item);\r\n this.bumpItems();\r\n }\r\n\r\n private bumpItems(): void {\r\n this.itemsVersion.update((value) => value + 1);\r\n }\r\n}\r\n\r\n/** Heading slot for a command group. */\r\n@Directive({\r\n selector: '[frCommandGroupHeading]',\r\n standalone: true,\r\n host: {\r\n class: 'frame-command__group-heading',\r\n },\r\n})\r\nexport class FrCommandGroupHeading {}\r\n\r\n","import { Directive, ElementRef, inject, input } from '@angular/core';\r\n\r\nimport { FR_COMMAND } from './command.tokens';\r\n\r\n/** Command input component primitive. */\r\n@Directive({\r\n selector: 'input[frCommandInput]',\r\n standalone: true,\r\n host: {\r\n class: 'frame-command__input',\r\n '[attr.aria-disabled]': 'command.disabled() ? \"true\" : null',\r\n '[attr.disabled]': 'command.disabled() ? \"\" : null',\r\n '[attr.placeholder]': 'placeholder()',\r\n autocomplete: 'off',\r\n role: 'searchbox',\r\n spellcheck: 'false',\r\n type: 'text',\r\n '[value]': 'command.query()',\r\n '(input)': 'handleInput()',\r\n },\r\n})\r\nexport class FrCommandInput {\r\n private readonly elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\r\n protected readonly command = inject(FR_COMMAND);\r\n\r\n readonly placeholder = input('Type a command or search...');\r\n\r\n protected handleInput(): void {\r\n this.command.setQuery(this.elementRef.nativeElement.value);\r\n }\r\n}\r\n","import {\r\n DestroyRef,\r\n Directive,\r\n DoCheck,\r\n ElementRef,\r\n afterNextRender,\r\n booleanAttribute,\r\n computed,\r\n inject,\r\n input,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\n\r\nimport { FR_COMMAND, FR_COMMAND_GROUP } from './command.tokens';\r\n\r\n/** Item slot for command. */\r\n@Directive({\r\n selector: 'button[frCommandItem]',\r\n exportAs: 'frCommandItem',\r\n standalone: true,\r\n host: {\r\n class: 'frame-command__item',\r\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\r\n '[attr.aria-selected]': 'isHighlighted() ? \"true\" : \"false\"',\r\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\r\n '[attr.data-hidden]': 'isVisible() ? null : \"\"',\r\n '[attr.data-highlighted]': 'isHighlighted() ? \"\" : null',\r\n '[attr.data-selected]': 'isSelected() ? \"\" : null',\r\n '[attr.disabled]': 'disabled() ? \"\" : null',\r\n role: 'option',\r\n type: 'button',\r\n '(click)': 'select()',\r\n '(mouseenter)': 'highlightSelf()',\r\n },\r\n})\r\nexport class FrCommandItem implements DoCheck {\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly command = inject(FR_COMMAND);\r\n private readonly group = inject(FR_COMMAND_GROUP, { optional: true });\r\n private mutationObserver: MutationObserver | null = null;\r\n\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n readonly itemKeywords = input<readonly string[] | string>([], { alias: 'keywords' });\r\n readonly itemLabel = input<string | null>(null, { alias: 'label' });\r\n readonly valueInput = input<unknown>(undefined, { alias: 'value' });\r\n readonly itemSelected = output<unknown>({ alias: 'selected' });\r\n\r\n readonly resolvedLabel = signal('');\r\n readonly label = computed(() => this.itemLabel() ?? this.resolvedLabel());\r\n readonly keywords = computed(() => {\r\n const keywords = this.itemKeywords();\r\n return typeof keywords === 'string'\r\n ? keywords.split(/\\s*,\\s*/).filter(Boolean)\r\n : [...keywords];\r\n });\r\n readonly value = computed(() => this.valueInput() ?? this.label());\r\n readonly visible = computed(() => this.command.filteredItemVisible(this.label(), this.keywords()));\r\n private lastSearchKey = '';\r\n\r\n constructor() {\r\n this.command.registerItem(this);\r\n this.group?.registerItem(this);\r\n this.destroyRef.onDestroy(() => {\r\n this.mutationObserver?.disconnect();\r\n this.command.unregisterItem(this);\r\n this.group?.unregisterItem(this);\r\n });\r\n\r\n afterNextRender(() => {\r\n this.refreshResolvedLabel();\r\n this.observeTextChanges();\r\n });\r\n\r\n }\r\n\r\n ngDoCheck(): void {\r\n const searchKey = `${this.label()}|${this.keywords().join('|')}|${this.disabled()}`;\r\n\r\n if (searchKey === this.lastSearchKey) {\r\n return;\r\n }\r\n\r\n this.lastSearchKey = searchKey;\r\n this.command.refreshItems();\r\n }\r\n\r\n isVisible(): boolean {\r\n return this.visible();\r\n }\r\n\r\n isHighlighted(): boolean {\r\n return this.command.isHighlighted(this);\r\n }\r\n\r\n isSelected(): boolean {\r\n return this.command.isItemSelected(this.value());\r\n }\r\n\r\n scrollIntoView(): void {\r\n this.elementRef.nativeElement.scrollIntoView?.({\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }\r\n\r\n select(): void {\r\n if (this.disabled() || !this.isVisible()) {\r\n return;\r\n }\r\n\r\n this.command.selectItem(this);\r\n this.itemSelected.emit(this.value());\r\n }\r\n\r\n protected highlightSelf(): void {\r\n const index = this.command.visibleItems().indexOf(this);\r\n\r\n if (index >= 0) {\r\n this.command.highlightedIndex.set(index);\r\n }\r\n }\r\n\r\n private resolveLabel(): string {\r\n return this.elementRef.nativeElement.textContent?.trim() ?? '';\r\n }\r\n\r\n private refreshResolvedLabel(): void {\r\n this.resolvedLabel.set(this.resolveLabel());\r\n this.command.refreshItems();\r\n }\r\n\r\n private observeTextChanges(): void {\r\n if (typeof MutationObserver === 'undefined' || this.itemLabel() !== null) {\r\n return;\r\n }\r\n\r\n // Items without explicit labels derive search text from projected content.\r\n this.mutationObserver = new MutationObserver(() => this.refreshResolvedLabel());\r\n this.mutationObserver.observe(this.elementRef.nativeElement, {\r\n characterData: true,\r\n childList: true,\r\n subtree: true,\r\n });\r\n }\r\n}\r\n\r\n/** Icon slot for command item. */\r\n@Directive({\r\n selector: '[frCommandItemIcon]',\r\n standalone: true,\r\n host: {\r\n class: 'frame-command__item-icon',\r\n 'aria-hidden': 'true',\r\n },\r\n})\r\nexport class FrCommandItemIcon {}\r\n\r\n/** Shortcut slot for command. */\r\n@Directive({\r\n selector: '[frCommandShortcut]',\r\n standalone: true,\r\n host: {\r\n class: 'frame-command__shortcut',\r\n 'aria-hidden': 'true',\r\n },\r\n})\r\nexport class FrCommandShortcut {}\r\n","import { Directive, inject } from '@angular/core';\r\n\r\nimport { FR_COMMAND } from './command.tokens';\r\n\r\n/** List slot for command. */\r\n@Directive({\r\n selector: '[frCommandList]',\r\n standalone: true,\r\n host: {\r\n class: 'frame-command__list',\r\n role: 'listbox',\r\n },\r\n})\r\nexport class FrCommandList {}\r\n\r\n/** Empty-state slot for command results. */\r\n@Directive({\r\n selector: '[frCommandEmpty]',\r\n standalone: true,\r\n host: {\r\n class: 'frame-command__empty',\r\n '[attr.hidden]': 'command.visibleCount() > 0 ? \"\" : null',\r\n },\r\n})\r\nexport class FrCommandEmpty {\r\n protected readonly command = inject(FR_COMMAND);\r\n}\r\n\r\n","import {\r\n Directive,\r\n DoCheck,\r\n booleanAttribute,\r\n computed,\r\n inject,\r\n input,\r\n model,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { DialogRef } from '@angular/cdk/dialog';\r\n\r\nimport { FR_COMMAND } from './command.tokens';\r\nimport type { FrCommandItem } from './command.item';\r\n\r\nexport type FrCommandFilter = (\r\n query: string,\r\n label: string,\r\n keywords: readonly string[],\r\n) => boolean;\r\n\r\nconst DEFAULT_FILTER: FrCommandFilter = (query, label, keywords) => {\r\n const normalizedQuery = query.trim().toLowerCase();\r\n\r\n if (!normalizedQuery) {\r\n return true;\r\n }\r\n\r\n return [label, ...keywords].some((value) => value.toLowerCase().includes(normalizedQuery));\r\n};\r\n\r\n/** Command menu root that coordinates filtering and selection. */\r\n@Directive({\r\n selector: '[frCommand], frame-command',\r\n exportAs: 'frCommand',\r\n standalone: true,\r\n providers: [{ provide: FR_COMMAND, useExisting: FrCommand }],\r\n host: {\r\n class: 'frame-command',\r\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\r\n '[attr.data-state]': 'visibleCount() > 0 ? \"results\" : \"empty\"',\r\n '(keydown)': 'handleKeydown($event)',\r\n },\r\n})\r\nexport class FrCommand implements DoCheck {\r\n private readonly dialogRef = inject<DialogRef<unknown>>(DialogRef, { optional: true });\r\n private readonly items = new Set<FrCommandItem>();\r\n private readonly itemsVersion = signal(0);\r\n private lastFilter: FrCommandFilter | null = null;\r\n private lastHighlightedIndex = 0;\r\n private lastItemsVersion = -1;\r\n private lastQuery = '';\r\n\r\n readonly closeOnSelect = input(false, { transform: booleanAttribute });\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n readonly filter = input<FrCommandFilter>(DEFAULT_FILTER);\r\n readonly loop = input(true, { transform: booleanAttribute });\r\n readonly value = model<unknown>(null);\r\n\r\n readonly itemSelected = output<unknown>();\r\n readonly queryChange = output<string>();\r\n\r\n readonly query = signal('');\r\n readonly highlightedIndex = signal(0);\r\n readonly selectedValue = computed(() => this.value());\r\n\r\n ngDoCheck(): void {\r\n const filter = this.filter();\r\n const highlightedIndex = this.highlightedIndex();\r\n const itemsVersion = this.itemsVersion();\r\n const query = this.query();\r\n\r\n if (query !== this.lastQuery || itemsVersion !== this.lastItemsVersion || filter !== this.lastFilter) {\r\n this.normalizeHighlight();\r\n }\r\n\r\n if (highlightedIndex !== this.lastHighlightedIndex || itemsVersion !== this.lastItemsVersion) {\r\n this.scrollHighlightedItemIntoView();\r\n }\r\n\r\n this.lastFilter = filter;\r\n this.lastHighlightedIndex = this.highlightedIndex();\r\n this.lastItemsVersion = itemsVersion;\r\n this.lastQuery = query;\r\n }\r\n\r\n registerItem(item: FrCommandItem): void {\r\n this.items.add(item);\r\n this.bumpItems();\r\n }\r\n\r\n unregisterItem(item: FrCommandItem): void {\r\n this.items.delete(item);\r\n this.bumpItems();\r\n }\r\n\r\n refreshItems(): void {\r\n this.bumpItems();\r\n }\r\n\r\n visibleItems(): FrCommandItem[] {\r\n this.itemsVersion();\r\n return Array.from(this.items).filter((item) => item.isVisible() && !item.disabled());\r\n }\r\n\r\n visibleCount(): number {\r\n return this.visibleItems().length;\r\n }\r\n\r\n filteredItemVisible(label: string, keywords: readonly string[]): boolean {\r\n return this.filter()(this.query(), label, keywords);\r\n }\r\n\r\n isHighlighted(item: FrCommandItem): boolean {\r\n return this.visibleItems()[this.highlightedIndex()] === item;\r\n }\r\n\r\n isItemSelected(value: unknown): boolean {\r\n return Object.is(this.value(), value);\r\n }\r\n\r\n setQuery(query: string): void {\r\n this.query.set(query);\r\n this.queryChange.emit(query);\r\n this.highlightedIndex.set(0);\r\n }\r\n\r\n moveHighlight(delta: number): void {\r\n const count = this.visibleCount();\r\n\r\n if (count === 0) {\r\n this.highlightedIndex.set(0);\r\n return;\r\n }\r\n\r\n const next = this.highlightedIndex() + delta;\r\n\r\n if (this.loop()) {\r\n this.highlightedIndex.set((next + count) % count);\r\n return;\r\n }\r\n\r\n this.highlightedIndex.set(Math.max(0, Math.min(next, count - 1)));\r\n }\r\n\r\n highlightFirst(): void {\r\n this.highlightedIndex.set(0);\r\n }\r\n\r\n highlightLast(): void {\r\n this.highlightedIndex.set(Math.max(0, this.visibleCount() - 1));\r\n }\r\n\r\n selectHighlighted(): void {\r\n this.visibleItems()[this.highlightedIndex()]?.select();\r\n }\r\n\r\n selectItem(item: FrCommandItem): void {\r\n const value = item.value();\r\n\r\n this.value.set(value);\r\n this.itemSelected.emit(value);\r\n\r\n if (this.closeOnSelect()) {\r\n this.close(value);\r\n }\r\n }\r\n\r\n close(value?: unknown): void {\r\n this.dialogRef?.close(value);\r\n }\r\n\r\n handleKeydown(event: KeyboardEvent): void {\r\n if (this.disabled()) {\r\n return;\r\n }\r\n\r\n if (event.key === 'ArrowDown') {\r\n event.preventDefault();\r\n this.moveHighlight(1);\r\n return;\r\n }\r\n\r\n if (event.key === 'ArrowUp') {\r\n event.preventDefault();\r\n this.moveHighlight(-1);\r\n return;\r\n }\r\n\r\n if (event.key === 'Home') {\r\n event.preventDefault();\r\n this.highlightFirst();\r\n return;\r\n }\r\n\r\n if (event.key === 'End') {\r\n event.preventDefault();\r\n this.highlightLast();\r\n return;\r\n }\r\n\r\n if (event.key === 'Enter') {\r\n event.preventDefault();\r\n this.selectHighlighted();\r\n return;\r\n }\r\n\r\n if (event.key === 'Escape') {\r\n event.preventDefault();\r\n this.close();\r\n }\r\n }\r\n\r\n private normalizeHighlight(): void {\r\n const count = this.visibleCount();\r\n\r\n if (count === 0) {\r\n this.highlightedIndex.set(0);\r\n return;\r\n }\r\n\r\n if (this.highlightedIndex() >= count) {\r\n this.highlightedIndex.set(count - 1);\r\n }\r\n }\r\n\r\n private bumpItems(): void {\r\n this.itemsVersion.update((value) => value + 1);\r\n }\r\n\r\n private scrollHighlightedItemIntoView(): void {\r\n this.visibleItems()[this.highlightedIndex()]?.scrollIntoView();\r\n }\r\n}\r\n\r\n","import { Directive } from '@angular/core';\r\n\r\n/** Separator slot for command. */\r\n@Directive({\r\n selector: '[frCommandSeparator]',\r\n standalone: true,\r\n host: {\r\n class: 'frame-command__separator',\r\n role: 'separator',\r\n },\r\n})\r\nexport class FrCommandSeparator {}\r\n","import { NgModule } from '@angular/core';\r\nimport {\r\n FrCommand,\r\n FrCommandDialog,\r\n FrCommandDialogTrigger,\r\n FrCommandEmpty,\r\n FrCommandFooter,\r\n FrCommandGroup,\r\n FrCommandGroupHeading,\r\n FrCommandInput,\r\n FrCommandItem,\r\n FrCommandItemIcon,\r\n FrCommandList,\r\n FrCommandSeparator,\r\n FrCommandShortcut,\r\n} from './src/command';\r\n\r\n@NgModule({\r\n imports: [\r\n FrCommand,\r\n FrCommandDialog,\r\n FrCommandDialogTrigger,\r\n FrCommandEmpty,\r\n FrCommandFooter,\r\n FrCommandGroup,\r\n FrCommandGroupHeading,\r\n FrCommandInput,\r\n FrCommandItem,\r\n FrCommandItemIcon,\r\n FrCommandList,\r\n FrCommandSeparator,\r\n FrCommandShortcut,\r\n ],\r\n exports: [\r\n FrCommand,\r\n FrCommandDialog,\r\n FrCommandDialogTrigger,\r\n FrCommandEmpty,\r\n FrCommandFooter,\r\n FrCommandGroup,\r\n FrCommandGroupHeading,\r\n FrCommandInput,\r\n FrCommandItem,\r\n FrCommandItemIcon,\r\n FrCommandList,\r\n FrCommandSeparator,\r\n FrCommandShortcut,\r\n ],\r\n})\r\nexport class FrCommandModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frame-ui-ng-components-command.mjs","sources":["../../../projects/components/command/src/command.dialog.ts","../../../projects/components/command/src/command.footer.ts","../../../projects/components/command/src/command.tokens.ts","../../../projects/components/command/src/command.group.ts","../../../projects/components/command/src/command.input.ts","../../../projects/components/command/src/command.item.ts","../../../projects/components/command/src/command.list.ts","../../../projects/components/command/src/command.root.ts","../../../projects/components/command/src/command.separator.ts","../../../projects/components/command/command.module.ts","../../../projects/components/command/frame-ui-ng-components-command.ts"],"sourcesContent":["import { Direction } from '@angular/cdk/bidi';\r\nimport { ComponentType } from '@angular/cdk/portal';\r\nimport { Dialog, DialogConfig, DialogRef } from '@angular/cdk/dialog';\r\nimport {\r\n DestroyRef,\r\n Directive,\r\n Injectable,\r\n TemplateRef,\r\n ViewContainerRef,\r\n booleanAttribute,\r\n inject,\r\n input,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nexport type FrCommandDialogRef<Result = unknown, Component = unknown> = DialogRef<Result, Component>;\r\nexport type FrCommandDialogConfig<Data = unknown, Result = unknown, Component = unknown> = DialogConfig<\r\n Data,\r\n DialogRef<Result, Component>\r\n>;\r\n\r\nconst DEFAULT_PANEL_CLASS = 'frame-command-dialog__overlay-pane';\r\nconst DEFAULT_BACKDROP_CLASS = 'frame-command-dialog__backdrop';\r\n\r\n/** Template configuration for a command dialog. */\r\n@Directive({\r\n selector: 'ng-template[frCommandDialog]',\r\n exportAs: 'frCommandDialog',\r\n standalone: true,\r\n})\r\nexport class FrCommandDialog {\r\n readonly templateRef = inject(TemplateRef<unknown>);\r\n\r\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\r\n readonly ariaLabelledBy = input<string | null>(null, { alias: 'aria-labelledby' });\r\n readonly ariaDescribedBy = input<string | null>(null, { alias: 'aria-describedby' });\r\n readonly backdropClass = input<string | string[] | null>(null);\r\n readonly closeOnDestroy = input(true, { transform: booleanAttribute });\r\n readonly closeOnNavigation = input(true, { transform: booleanAttribute });\r\n readonly direction = input<Direction | null>(null);\r\n readonly disableClose = input(false, { transform: booleanAttribute });\r\n readonly height = input<string | null>(null);\r\n readonly id = input<string | null>(null);\r\n readonly maxHeight = input<string | null>(null);\r\n readonly maxWidth = input<string | null>(null);\r\n readonly minHeight = input<string | null>(null);\r\n readonly minWidth = input<string | null>(null);\r\n readonly panelClass = input<string | string[] | null>(null);\r\n readonly role = input<'dialog' | 'alertdialog'>('dialog');\r\n readonly width = input<string | null>(null);\r\n\r\n buildConfig(viewContainerRef: ViewContainerRef): FrCommandDialogConfig {\r\n return {\r\n ariaLabel: this.ariaLabel() ?? undefined,\r\n ariaLabelledBy: this.ariaLabelledBy() ?? undefined,\r\n ariaDescribedBy: this.ariaDescribedBy() ?? undefined,\r\n backdropClass: this.backdropClass() ?? undefined,\r\n closeOnDestroy: this.closeOnDestroy(),\r\n closeOnNavigation: this.closeOnNavigation(),\r\n direction: this.direction() ?? undefined,\r\n disableClose: this.disableClose(),\r\n height: this.height() ?? undefined,\r\n id: this.id() ?? undefined,\r\n maxHeight: this.maxHeight() ?? undefined,\r\n maxWidth: this.maxWidth() ?? undefined,\r\n minHeight: this.minHeight() ?? undefined,\r\n minWidth: this.minWidth() ?? undefined,\r\n panelClass: this.panelClass() ?? undefined,\r\n role: this.role(),\r\n viewContainerRef,\r\n width: this.width() ?? undefined,\r\n };\r\n }\r\n}\r\n\r\n/** Trigger control for command dialog. */\r\n@Directive({\r\n selector: '[frCommandDialogTrigger]',\r\n standalone: true,\r\n host: {\r\n class: 'frame-command-dialog__trigger',\r\n '[attr.aria-haspopup]': '\"dialog\"',\r\n '[attr.data-state]': 'isOpen() ? \"open\" : \"closed\"',\r\n '[attr.disabled]': 'disabled() ? \"\" : null',\r\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\r\n '(click)': 'open()',\r\n },\r\n})\r\nexport class FrCommandDialogTrigger {\r\n private readonly commandDialog = inject(FrCommandService);\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly viewContainerRef = inject(ViewContainerRef);\r\n private dialogRef: FrCommandDialogRef | null = null;\r\n\r\n readonly content = input<FrCommandDialog | TemplateRef<unknown> | null>(null, {\r\n alias: 'frCommandDialogTrigger',\r\n });\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n readonly opened = output<FrCommandDialogRef>();\r\n readonly closed = output<unknown>();\r\n readonly isOpen = signal(false);\r\n\r\n open(): void {\r\n if (this.disabled() || this.isOpen()) {\r\n return;\r\n }\r\n\r\n const content = this.content();\r\n\r\n if (!content) {\r\n return;\r\n }\r\n\r\n const templateRef = content instanceof FrCommandDialog ? content.templateRef : content;\r\n const config =\r\n content instanceof FrCommandDialog\r\n ? content.buildConfig(this.viewContainerRef)\r\n : { viewContainerRef: this.viewContainerRef };\r\n\r\n this.dialogRef = this.commandDialog.open(templateRef, config);\r\n this.isOpen.set(true);\r\n this.opened.emit(this.dialogRef);\r\n\r\n this.dialogRef.closed.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((result) => {\r\n this.isOpen.set(false);\r\n this.dialogRef = null;\r\n this.closed.emit(result);\r\n });\r\n }\r\n}\r\n\r\n/** Service for opening command dialogs. */\r\n@Injectable({ providedIn: 'root' })\r\nexport class FrCommandService {\r\n private readonly dialog = inject(Dialog);\r\n\r\n open<Result = unknown, Data = unknown, Component = unknown>(\r\n content: ComponentType<Component>,\r\n config?: FrCommandDialogConfig<Data, Result, Component>,\r\n ): FrCommandDialogRef<Result, Component>;\r\n open<Result = unknown, Data = unknown, Context = unknown>(\r\n content: TemplateRef<Context>,\r\n config?: FrCommandDialogConfig<Data, Result, Context>,\r\n ): FrCommandDialogRef<Result, Context>;\r\n open<Result = unknown, Data = unknown, ComponentOrContext = unknown>(\r\n content: ComponentType<ComponentOrContext> | TemplateRef<ComponentOrContext>,\r\n config: FrCommandDialogConfig<Data, Result, ComponentOrContext> = {},\r\n ): FrCommandDialogRef<Result, ComponentOrContext> {\r\n const dialogRef = this.dialog.open<Result, Data, ComponentOrContext>(\r\n content,\r\n this.withDefaultClasses(config),\r\n );\r\n\r\n if (isComponentType(content)) {\r\n const host = dialogRef.componentRef?.location.nativeElement as HTMLElement | undefined;\r\n host?.style.setProperty('display', 'block');\r\n host?.style.setProperty('inline-size', '100%');\r\n }\r\n\r\n return dialogRef;\r\n }\r\n\r\n closeAll(): void {\r\n this.dialog.closeAll();\r\n }\r\n\r\n private withDefaultClasses<Data, Result, Component>(\r\n config: FrCommandDialogConfig<Data, Result, Component>,\r\n ): FrCommandDialogConfig<Data, Result, Component> {\r\n return {\r\n ariaModal: true,\r\n autoFocus: '[frCommandInput]',\r\n restoreFocus: true,\r\n width: 'min(calc(100vw - 2rem), 48rem)',\r\n maxWidth: 'calc(100vw - 2rem)',\r\n ...config,\r\n panelClass: mergeClassList(config.panelClass, DEFAULT_PANEL_CLASS),\r\n backdropClass: mergeClassList(config.backdropClass, DEFAULT_BACKDROP_CLASS),\r\n };\r\n }\r\n}\r\n\r\nfunction isComponentType(value: unknown): value is ComponentType<unknown> {\r\n return typeof value === 'function';\r\n}\r\n\r\nfunction mergeClassList(\r\n classList: string | string[] | undefined | null,\r\n defaultClass: string,\r\n): string[] {\r\n const classes = Array.isArray(classList)\r\n ? classList\r\n : classList\r\n ? classList.split(/\\s+/)\r\n : [];\r\n\r\n return Array.from(new Set([defaultClass, ...classes].filter(Boolean)));\r\n}\r\n\r\n","import { Directive } from '@angular/core';\r\n\r\n/** Footer slot for command. */\r\n@Directive({\r\n selector: '[frCommandFooter]',\r\n host: {\r\n class: 'frame-command__footer',\r\n },\r\n})\r\nexport class FrCommandFooter {}\r\n","import { InjectionToken, Signal, WritableSignal } from '@angular/core';\r\n\r\nimport type { FrCommandItem } from './command.item';\r\n\r\nexport interface FrCommandRootContext {\r\n readonly disabled: Signal<boolean>;\r\n readonly highlightedIndex: WritableSignal<number>;\r\n readonly query: Signal<string>;\r\n readonly selectedValue: Signal<unknown>;\r\n close(value?: unknown): void;\r\n filteredItemVisible(label: string, keywords: readonly string[]): boolean;\r\n isHighlighted(item: FrCommandItem): boolean;\r\n isItemSelected(value: unknown): boolean;\r\n moveHighlight(delta: number): void;\r\n refreshItems(): void;\r\n registerItem(item: FrCommandItem): void;\r\n selectItem(item: FrCommandItem): void;\r\n setQuery(query: string): void;\r\n unregisterItem(item: FrCommandItem): void;\r\n visibleCount(): number;\r\n visibleItems(): FrCommandItem[];\r\n}\r\n\r\nexport interface FrCommandGroupContext {\r\n registerItem(item: FrCommandItem): void;\r\n unregisterItem(item: FrCommandItem): void;\r\n}\r\n\r\nexport const FR_COMMAND = new InjectionToken<FrCommandRootContext>('FrCommand');\r\nexport const FR_COMMAND_GROUP = new InjectionToken<FrCommandGroupContext>('FrCommandGroup');\r\n","import { Directive, booleanAttribute, computed, inject, input, signal } from '@angular/core';\r\n\r\nimport { FrCommandItem } from './command.item';\r\nimport { FR_COMMAND_GROUP } from './command.tokens';\r\n\r\n/** Group slot for command. */\r\n@Directive({\r\n selector: '[frCommandGroup]',\r\n exportAs: 'frCommandGroup',\r\n standalone: true,\r\n providers: [{ provide: FR_COMMAND_GROUP, useExisting: FrCommandGroup }],\r\n host: {\r\n class: 'frame-command__group',\r\n '[attr.aria-label]': 'heading()',\r\n '[attr.data-hidden]': 'hidden() ? \"\" : null',\r\n role: 'group',\r\n },\r\n})\r\nexport class FrCommandGroup {\r\n private readonly items = new Set<FrCommandItem>();\r\n private readonly itemsVersion = signal(0);\r\n\r\n readonly forceMount = input(false, { transform: booleanAttribute });\r\n readonly heading = input<string | null>(null);\r\n\r\n readonly hidden = computed(() => {\r\n this.itemsVersion();\r\n return !this.forceMount() && Array.from(this.items).every((item) => !item.isVisible());\r\n });\r\n\r\n registerItem(item: FrCommandItem): void {\r\n this.items.add(item);\r\n this.bumpItems();\r\n }\r\n\r\n unregisterItem(item: FrCommandItem): void {\r\n this.items.delete(item);\r\n this.bumpItems();\r\n }\r\n\r\n private bumpItems(): void {\r\n this.itemsVersion.update((value) => value + 1);\r\n }\r\n}\r\n\r\n/** Heading slot for a command group. */\r\n@Directive({\r\n selector: '[frCommandGroupHeading]',\r\n standalone: true,\r\n host: {\r\n class: 'frame-command__group-heading',\r\n },\r\n})\r\nexport class FrCommandGroupHeading {}\r\n\r\n","import { Directive, ElementRef, inject, input } from '@angular/core';\r\n\r\nimport { FR_COMMAND } from './command.tokens';\r\n\r\n/** Command input component primitive. */\r\n@Directive({\r\n selector: 'input[frCommandInput]',\r\n standalone: true,\r\n host: {\r\n class: 'frame-command__input',\r\n '[attr.aria-disabled]': 'command.disabled() ? \"true\" : null',\r\n '[attr.disabled]': 'command.disabled() ? \"\" : null',\r\n '[attr.placeholder]': 'placeholder()',\r\n autocomplete: 'off',\r\n role: 'searchbox',\r\n spellcheck: 'false',\r\n type: 'text',\r\n '[value]': 'command.query()',\r\n '(input)': 'handleInput()',\r\n },\r\n})\r\nexport class FrCommandInput {\r\n private readonly elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\r\n protected readonly command = inject(FR_COMMAND);\r\n\r\n readonly placeholder = input('Type a command or search...');\r\n\r\n protected handleInput(): void {\r\n this.command.setQuery(this.elementRef.nativeElement.value);\r\n }\r\n}\r\n","import {\r\n DestroyRef,\r\n Directive,\r\n DoCheck,\r\n ElementRef,\r\n afterNextRender,\r\n booleanAttribute,\r\n computed,\r\n inject,\r\n input,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\n\r\nimport { FR_COMMAND, FR_COMMAND_GROUP } from './command.tokens';\r\n\r\n/** Item slot for command. */\r\n@Directive({\r\n selector: 'button[frCommandItem]',\r\n exportAs: 'frCommandItem',\r\n standalone: true,\r\n host: {\r\n class: 'frame-command__item',\r\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\r\n '[attr.aria-selected]': 'isHighlighted() ? \"true\" : \"false\"',\r\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\r\n '[attr.data-hidden]': 'isVisible() ? null : \"\"',\r\n '[attr.data-highlighted]': 'isHighlighted() ? \"\" : null',\r\n '[attr.data-selected]': 'isSelected() ? \"\" : null',\r\n '[attr.disabled]': 'disabled() ? \"\" : null',\r\n role: 'option',\r\n type: 'button',\r\n '(click)': 'select()',\r\n '(mouseenter)': 'highlightSelf()',\r\n },\r\n})\r\nexport class FrCommandItem implements DoCheck {\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly command = inject(FR_COMMAND);\r\n private readonly group = inject(FR_COMMAND_GROUP, { optional: true });\r\n private mutationObserver: MutationObserver | null = null;\r\n\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n readonly itemKeywords = input<readonly string[] | string>([], { alias: 'keywords' });\r\n readonly itemLabel = input<string | null>(null, { alias: 'label' });\r\n readonly valueInput = input<unknown>(undefined, { alias: 'value' });\r\n readonly itemSelected = output<unknown>({ alias: 'selected' });\r\n\r\n readonly resolvedLabel = signal('');\r\n readonly label = computed(() => this.itemLabel() ?? this.resolvedLabel());\r\n readonly keywords = computed(() => {\r\n const keywords = this.itemKeywords();\r\n return typeof keywords === 'string'\r\n ? keywords.split(/\\s*,\\s*/).filter(Boolean)\r\n : [...keywords];\r\n });\r\n readonly value = computed(() => this.valueInput() ?? this.label());\r\n readonly visible = computed(() => this.command.filteredItemVisible(this.label(), this.keywords()));\r\n private lastSearchKey = '';\r\n\r\n constructor() {\r\n this.command.registerItem(this);\r\n this.group?.registerItem(this);\r\n this.destroyRef.onDestroy(() => {\r\n this.mutationObserver?.disconnect();\r\n this.command.unregisterItem(this);\r\n this.group?.unregisterItem(this);\r\n });\r\n\r\n afterNextRender(() => {\r\n this.refreshResolvedLabel();\r\n this.observeTextChanges();\r\n });\r\n\r\n }\r\n\r\n ngDoCheck(): void {\r\n const searchKey = `${this.label()}|${this.keywords().join('|')}|${this.disabled()}`;\r\n\r\n if (searchKey === this.lastSearchKey) {\r\n return;\r\n }\r\n\r\n this.lastSearchKey = searchKey;\r\n this.command.refreshItems();\r\n }\r\n\r\n isVisible(): boolean {\r\n return this.visible();\r\n }\r\n\r\n isHighlighted(): boolean {\r\n return this.command.isHighlighted(this);\r\n }\r\n\r\n isSelected(): boolean {\r\n return this.command.isItemSelected(this.value());\r\n }\r\n\r\n scrollIntoView(): void {\r\n this.elementRef.nativeElement.scrollIntoView?.({\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }\r\n\r\n select(): void {\r\n if (this.disabled() || !this.isVisible()) {\r\n return;\r\n }\r\n\r\n this.command.selectItem(this);\r\n this.itemSelected.emit(this.value());\r\n }\r\n\r\n protected highlightSelf(): void {\r\n const index = this.command.visibleItems().indexOf(this);\r\n\r\n if (index >= 0) {\r\n this.command.highlightedIndex.set(index);\r\n }\r\n }\r\n\r\n private resolveLabel(): string {\r\n return this.elementRef.nativeElement.textContent?.trim() ?? '';\r\n }\r\n\r\n private refreshResolvedLabel(): void {\r\n this.resolvedLabel.set(this.resolveLabel());\r\n this.command.refreshItems();\r\n }\r\n\r\n private observeTextChanges(): void {\r\n if (typeof MutationObserver === 'undefined' || this.itemLabel() !== null) {\r\n return;\r\n }\r\n\r\n // Items without explicit labels derive search text from projected content.\r\n this.mutationObserver = new MutationObserver(() => this.refreshResolvedLabel());\r\n this.mutationObserver.observe(this.elementRef.nativeElement, {\r\n characterData: true,\r\n childList: true,\r\n subtree: true,\r\n });\r\n }\r\n}\r\n\r\n/** Icon slot for command item. */\r\n@Directive({\r\n selector: '[frCommandItemIcon]',\r\n standalone: true,\r\n host: {\r\n class: 'frame-command__item-icon',\r\n 'aria-hidden': 'true',\r\n },\r\n})\r\nexport class FrCommandItemIcon {}\r\n\r\n/** Shortcut slot for command. */\r\n@Directive({\r\n selector: '[frCommandShortcut]',\r\n standalone: true,\r\n host: {\r\n class: 'frame-command__shortcut',\r\n 'aria-hidden': 'true',\r\n },\r\n})\r\nexport class FrCommandShortcut {}\r\n","import { Directive, inject } from '@angular/core';\r\n\r\nimport { FR_COMMAND } from './command.tokens';\r\n\r\n/** List slot for command. */\r\n@Directive({\r\n selector: '[frCommandList]',\r\n standalone: true,\r\n host: {\r\n class: 'frame-command__list',\r\n role: 'listbox',\r\n },\r\n})\r\nexport class FrCommandList {}\r\n\r\n/** Empty-state slot for command results. */\r\n@Directive({\r\n selector: '[frCommandEmpty]',\r\n standalone: true,\r\n host: {\r\n class: 'frame-command__empty',\r\n '[attr.hidden]': 'command.visibleCount() > 0 ? \"\" : null',\r\n },\r\n})\r\nexport class FrCommandEmpty {\r\n protected readonly command = inject(FR_COMMAND);\r\n}\r\n\r\n","import {\r\n Directive,\r\n DoCheck,\r\n booleanAttribute,\r\n computed,\r\n inject,\r\n input,\r\n model,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { DialogRef } from '@angular/cdk/dialog';\r\n\r\nimport { FR_COMMAND } from './command.tokens';\r\nimport type { FrCommandItem } from './command.item';\r\n\r\nexport type FrCommandFilter = (\r\n query: string,\r\n label: string,\r\n keywords: readonly string[],\r\n) => boolean;\r\n\r\nconst DEFAULT_FILTER: FrCommandFilter = (query, label, keywords) => {\r\n const normalizedQuery = query.trim().toLowerCase();\r\n\r\n if (!normalizedQuery) {\r\n return true;\r\n }\r\n\r\n return [label, ...keywords].some((value) => value.toLowerCase().includes(normalizedQuery));\r\n};\r\n\r\n/** Command menu root that coordinates filtering and selection. */\r\n@Directive({\r\n selector: '[frCommand], frame-command',\r\n exportAs: 'frCommand',\r\n standalone: true,\r\n providers: [{ provide: FR_COMMAND, useExisting: FrCommand }],\r\n host: {\r\n class: 'frame-command frame-corner-handles',\r\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\r\n '[attr.data-state]': 'visibleCount() > 0 ? \"results\" : \"empty\"',\r\n '(keydown)': 'handleKeydown($event)',\r\n },\r\n})\r\nexport class FrCommand implements DoCheck {\r\n private readonly dialogRef = inject<DialogRef<unknown>>(DialogRef, { optional: true });\r\n private readonly items = new Set<FrCommandItem>();\r\n private readonly itemsVersion = signal(0);\r\n private lastFilter: FrCommandFilter | null = null;\r\n private lastHighlightedIndex = 0;\r\n private lastItemsVersion = -1;\r\n private lastQuery = '';\r\n\r\n readonly closeOnSelect = input(false, { transform: booleanAttribute });\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n readonly filter = input<FrCommandFilter>(DEFAULT_FILTER);\r\n readonly loop = input(true, { transform: booleanAttribute });\r\n readonly value = model<unknown>(null);\r\n\r\n readonly itemSelected = output<unknown>();\r\n readonly queryChange = output<string>();\r\n\r\n readonly query = signal('');\r\n readonly highlightedIndex = signal(0);\r\n readonly selectedValue = computed(() => this.value());\r\n\r\n ngDoCheck(): void {\r\n const filter = this.filter();\r\n const highlightedIndex = this.highlightedIndex();\r\n const itemsVersion = this.itemsVersion();\r\n const query = this.query();\r\n\r\n if (query !== this.lastQuery || itemsVersion !== this.lastItemsVersion || filter !== this.lastFilter) {\r\n this.normalizeHighlight();\r\n }\r\n\r\n if (highlightedIndex !== this.lastHighlightedIndex || itemsVersion !== this.lastItemsVersion) {\r\n this.scrollHighlightedItemIntoView();\r\n }\r\n\r\n this.lastFilter = filter;\r\n this.lastHighlightedIndex = this.highlightedIndex();\r\n this.lastItemsVersion = itemsVersion;\r\n this.lastQuery = query;\r\n }\r\n\r\n registerItem(item: FrCommandItem): void {\r\n this.items.add(item);\r\n this.bumpItems();\r\n }\r\n\r\n unregisterItem(item: FrCommandItem): void {\r\n this.items.delete(item);\r\n this.bumpItems();\r\n }\r\n\r\n refreshItems(): void {\r\n this.bumpItems();\r\n }\r\n\r\n visibleItems(): FrCommandItem[] {\r\n this.itemsVersion();\r\n return Array.from(this.items).filter((item) => item.isVisible() && !item.disabled());\r\n }\r\n\r\n visibleCount(): number {\r\n return this.visibleItems().length;\r\n }\r\n\r\n filteredItemVisible(label: string, keywords: readonly string[]): boolean {\r\n return this.filter()(this.query(), label, keywords);\r\n }\r\n\r\n isHighlighted(item: FrCommandItem): boolean {\r\n return this.visibleItems()[this.highlightedIndex()] === item;\r\n }\r\n\r\n isItemSelected(value: unknown): boolean {\r\n return Object.is(this.value(), value);\r\n }\r\n\r\n setQuery(query: string): void {\r\n this.query.set(query);\r\n this.queryChange.emit(query);\r\n this.highlightedIndex.set(0);\r\n }\r\n\r\n moveHighlight(delta: number): void {\r\n const count = this.visibleCount();\r\n\r\n if (count === 0) {\r\n this.highlightedIndex.set(0);\r\n return;\r\n }\r\n\r\n const next = this.highlightedIndex() + delta;\r\n\r\n if (this.loop()) {\r\n this.highlightedIndex.set((next + count) % count);\r\n return;\r\n }\r\n\r\n this.highlightedIndex.set(Math.max(0, Math.min(next, count - 1)));\r\n }\r\n\r\n highlightFirst(): void {\r\n this.highlightedIndex.set(0);\r\n }\r\n\r\n highlightLast(): void {\r\n this.highlightedIndex.set(Math.max(0, this.visibleCount() - 1));\r\n }\r\n\r\n selectHighlighted(): void {\r\n this.visibleItems()[this.highlightedIndex()]?.select();\r\n }\r\n\r\n selectItem(item: FrCommandItem): void {\r\n const value = item.value();\r\n\r\n this.value.set(value);\r\n this.itemSelected.emit(value);\r\n\r\n if (this.closeOnSelect()) {\r\n this.close(value);\r\n }\r\n }\r\n\r\n close(value?: unknown): void {\r\n this.dialogRef?.close(value);\r\n }\r\n\r\n handleKeydown(event: KeyboardEvent): void {\r\n if (this.disabled()) {\r\n return;\r\n }\r\n\r\n if (event.key === 'ArrowDown') {\r\n event.preventDefault();\r\n this.moveHighlight(1);\r\n return;\r\n }\r\n\r\n if (event.key === 'ArrowUp') {\r\n event.preventDefault();\r\n this.moveHighlight(-1);\r\n return;\r\n }\r\n\r\n if (event.key === 'Home') {\r\n event.preventDefault();\r\n this.highlightFirst();\r\n return;\r\n }\r\n\r\n if (event.key === 'End') {\r\n event.preventDefault();\r\n this.highlightLast();\r\n return;\r\n }\r\n\r\n if (event.key === 'Enter') {\r\n event.preventDefault();\r\n this.selectHighlighted();\r\n return;\r\n }\r\n\r\n if (event.key === 'Escape') {\r\n event.preventDefault();\r\n this.close();\r\n }\r\n }\r\n\r\n private normalizeHighlight(): void {\r\n const count = this.visibleCount();\r\n\r\n if (count === 0) {\r\n this.highlightedIndex.set(0);\r\n return;\r\n }\r\n\r\n if (this.highlightedIndex() >= count) {\r\n this.highlightedIndex.set(count - 1);\r\n }\r\n }\r\n\r\n private bumpItems(): void {\r\n this.itemsVersion.update((value) => value + 1);\r\n }\r\n\r\n private scrollHighlightedItemIntoView(): void {\r\n this.visibleItems()[this.highlightedIndex()]?.scrollIntoView();\r\n }\r\n}\r\n\r\n","import { Directive } from '@angular/core';\r\n\r\n/** Separator slot for command. */\r\n@Directive({\r\n selector: '[frCommandSeparator]',\r\n standalone: true,\r\n host: {\r\n class: 'frame-command__separator',\r\n role: 'separator',\r\n },\r\n})\r\nexport class FrCommandSeparator {}\r\n","import { NgModule } from '@angular/core';\r\nimport {\r\n FrCommand,\r\n FrCommandDialog,\r\n FrCommandDialogTrigger,\r\n FrCommandEmpty,\r\n FrCommandFooter,\r\n FrCommandGroup,\r\n FrCommandGroupHeading,\r\n FrCommandInput,\r\n FrCommandItem,\r\n FrCommandItemIcon,\r\n FrCommandList,\r\n FrCommandSeparator,\r\n FrCommandShortcut,\r\n} from './src/command';\r\n\r\n@NgModule({\r\n imports: [\r\n FrCommand,\r\n FrCommandDialog,\r\n FrCommandDialogTrigger,\r\n FrCommandEmpty,\r\n FrCommandFooter,\r\n FrCommandGroup,\r\n FrCommandGroupHeading,\r\n FrCommandInput,\r\n FrCommandItem,\r\n FrCommandItemIcon,\r\n FrCommandList,\r\n FrCommandSeparator,\r\n FrCommandShortcut,\r\n ],\r\n exports: [\r\n FrCommand,\r\n FrCommandDialog,\r\n FrCommandDialogTrigger,\r\n FrCommandEmpty,\r\n FrCommandFooter,\r\n FrCommandGroup,\r\n FrCommandGroupHeading,\r\n FrCommandInput,\r\n FrCommandItem,\r\n FrCommandItemIcon,\r\n FrCommandList,\r\n FrCommandSeparator,\r\n FrCommandShortcut,\r\n ],\r\n})\r\nexport class FrCommandModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}