@rossigee/clarity-angular 18.2.1-fixed → 18.2.1

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 (182) hide show
  1. package/fesm2022/clr-angular-accordion.mjs +355 -0
  2. package/fesm2022/clr-angular-accordion.mjs.map +1 -0
  3. package/fesm2022/clr-angular-button.mjs +713 -0
  4. package/fesm2022/clr-angular-button.mjs.map +1 -0
  5. package/fesm2022/clr-angular-collapsible-panel.mjs +201 -0
  6. package/fesm2022/clr-angular-collapsible-panel.mjs.map +1 -0
  7. package/fesm2022/clr-angular-data-datagrid.mjs +7635 -0
  8. package/fesm2022/clr-angular-data-datagrid.mjs.map +1 -0
  9. package/fesm2022/clr-angular-data-stack-view.mjs +442 -0
  10. package/fesm2022/clr-angular-data-stack-view.mjs.map +1 -0
  11. package/fesm2022/clr-angular-data-tree-view.mjs +1106 -0
  12. package/fesm2022/clr-angular-data-tree-view.mjs.map +1 -0
  13. package/fesm2022/clr-angular-data.mjs +40 -0
  14. package/fesm2022/clr-angular-data.mjs.map +1 -0
  15. package/fesm2022/clr-angular-emphasis-alert.mjs +624 -0
  16. package/fesm2022/clr-angular-emphasis-alert.mjs.map +1 -0
  17. package/fesm2022/clr-angular-emphasis-badge.mjs +69 -0
  18. package/fesm2022/clr-angular-emphasis-badge.mjs.map +1 -0
  19. package/fesm2022/clr-angular-emphasis-common.mjs +25 -0
  20. package/fesm2022/clr-angular-emphasis-common.mjs.map +1 -0
  21. package/fesm2022/clr-angular-emphasis-label.mjs +105 -0
  22. package/fesm2022/clr-angular-emphasis-label.mjs.map +1 -0
  23. package/fesm2022/clr-angular-emphasis.mjs +41 -0
  24. package/fesm2022/clr-angular-emphasis.mjs.map +1 -0
  25. package/fesm2022/clr-angular-forms-checkbox.mjs +270 -0
  26. package/fesm2022/clr-angular-forms-checkbox.mjs.map +1 -0
  27. package/fesm2022/clr-angular-forms-combobox.mjs +1775 -0
  28. package/fesm2022/clr-angular-forms-combobox.mjs.map +1 -0
  29. package/fesm2022/clr-angular-forms-common.mjs +1251 -0
  30. package/fesm2022/clr-angular-forms-common.mjs.map +1 -0
  31. package/fesm2022/clr-angular-forms-datalist.mjs +263 -0
  32. package/fesm2022/clr-angular-forms-datalist.mjs.map +1 -0
  33. package/fesm2022/clr-angular-forms-datepicker.mjs +3274 -0
  34. package/fesm2022/clr-angular-forms-datepicker.mjs.map +1 -0
  35. package/fesm2022/clr-angular-forms-file-input.mjs +826 -0
  36. package/fesm2022/clr-angular-forms-file-input.mjs.map +1 -0
  37. package/fesm2022/clr-angular-forms-input.mjs +153 -0
  38. package/fesm2022/clr-angular-forms-input.mjs.map +1 -0
  39. package/fesm2022/clr-angular-forms-number-input.mjs +236 -0
  40. package/fesm2022/clr-angular-forms-number-input.mjs.map +1 -0
  41. package/fesm2022/clr-angular-forms-password.mjs +233 -0
  42. package/fesm2022/clr-angular-forms-password.mjs.map +1 -0
  43. package/fesm2022/clr-angular-forms-radio.mjs +231 -0
  44. package/fesm2022/clr-angular-forms-radio.mjs.map +1 -0
  45. package/fesm2022/clr-angular-forms-range.mjs +186 -0
  46. package/fesm2022/clr-angular-forms-range.mjs.map +1 -0
  47. package/fesm2022/clr-angular-forms-select.mjs +153 -0
  48. package/fesm2022/clr-angular-forms-select.mjs.map +1 -0
  49. package/fesm2022/clr-angular-forms-textarea.mjs +136 -0
  50. package/fesm2022/clr-angular-forms-textarea.mjs.map +1 -0
  51. package/fesm2022/clr-angular-forms.mjs +100 -0
  52. package/fesm2022/clr-angular-forms.mjs.map +1 -0
  53. package/fesm2022/clr-angular-icon.mjs +7397 -0
  54. package/fesm2022/clr-angular-icon.mjs.map +1 -0
  55. package/fesm2022/clr-angular-layout-breadcrumbs.mjs +120 -0
  56. package/fesm2022/clr-angular-layout-breadcrumbs.mjs.map +1 -0
  57. package/fesm2022/clr-angular-layout-main-container.mjs +100 -0
  58. package/fesm2022/clr-angular-layout-main-container.mjs.map +1 -0
  59. package/fesm2022/clr-angular-layout-nav.mjs +582 -0
  60. package/fesm2022/clr-angular-layout-nav.mjs.map +1 -0
  61. package/fesm2022/clr-angular-layout-tabs.mjs +807 -0
  62. package/fesm2022/clr-angular-layout-tabs.mjs.map +1 -0
  63. package/fesm2022/clr-angular-layout-vertical-nav.mjs +507 -0
  64. package/fesm2022/clr-angular-layout-vertical-nav.mjs.map +1 -0
  65. package/fesm2022/clr-angular-layout.mjs +44 -0
  66. package/fesm2022/clr-angular-layout.mjs.map +1 -0
  67. package/fesm2022/clr-angular-modal.mjs +617 -0
  68. package/fesm2022/clr-angular-modal.mjs.map +1 -0
  69. package/fesm2022/clr-angular-popover-common.mjs +1082 -0
  70. package/fesm2022/clr-angular-popover-common.mjs.map +1 -0
  71. package/fesm2022/clr-angular-popover-dropdown.mjs +492 -0
  72. package/fesm2022/clr-angular-popover-dropdown.mjs.map +1 -0
  73. package/fesm2022/clr-angular-popover-signpost.mjs +494 -0
  74. package/fesm2022/clr-angular-popover-signpost.mjs.map +1 -0
  75. package/fesm2022/clr-angular-popover-tooltip.mjs +293 -0
  76. package/fesm2022/clr-angular-popover-tooltip.mjs.map +1 -0
  77. package/fesm2022/clr-angular-popover.mjs +41 -0
  78. package/fesm2022/clr-angular-popover.mjs.map +1 -0
  79. package/fesm2022/clr-angular-progress-progress-bars.mjs +217 -0
  80. package/fesm2022/clr-angular-progress-progress-bars.mjs.map +1 -0
  81. package/fesm2022/clr-angular-progress-spinner.mjs +132 -0
  82. package/fesm2022/clr-angular-progress-spinner.mjs.map +1 -0
  83. package/fesm2022/clr-angular-stepper.mjs +694 -0
  84. package/fesm2022/clr-angular-stepper.mjs.map +1 -0
  85. package/fesm2022/clr-angular-timeline.mjs +316 -0
  86. package/fesm2022/clr-angular-timeline.mjs.map +1 -0
  87. package/fesm2022/clr-angular-utils-conditional.mjs +351 -0
  88. package/fesm2022/clr-angular-utils-conditional.mjs.map +1 -0
  89. package/fesm2022/clr-angular-utils-loading.mjs +107 -0
  90. package/fesm2022/clr-angular-utils-loading.mjs.map +1 -0
  91. package/fesm2022/clr-angular-utils.mjs +2079 -0
  92. package/fesm2022/clr-angular-utils.mjs.map +1 -0
  93. package/fesm2022/clr-angular-wizard.mjs +3074 -0
  94. package/fesm2022/clr-angular-wizard.mjs.map +1 -0
  95. package/fesm2022/{rossigee-clarity-angular.mjs → clr-angular.mjs} +2 -2
  96. package/fesm2022/clr-angular.mjs.map +1 -0
  97. package/package.json +105 -103
  98. package/schematics/ng-update/index.d.ts +2 -0
  99. package/schematics/ng-update/index.js +69 -0
  100. package/schematics/ng-update/index.js.map +1 -0
  101. package/schematics/ng-update/migrations/css-migration.d.ts +6 -0
  102. package/schematics/ng-update/migrations/css-migration.js +177 -0
  103. package/schematics/ng-update/migrations/css-migration.js.map +1 -0
  104. package/schematics/ng-update/migrations/import-migration.d.ts +4 -0
  105. package/schematics/ng-update/migrations/import-migration.js +187 -0
  106. package/schematics/ng-update/migrations/import-migration.js.map +1 -0
  107. package/schematics/ng-update/migrations/template-migration.d.ts +6 -0
  108. package/schematics/ng-update/migrations/template-migration.js +261 -0
  109. package/schematics/ng-update/migrations/template-migration.js.map +1 -0
  110. package/schematics/ng-update/replacements/css-replacements.d.ts +17 -0
  111. package/schematics/ng-update/replacements/css-replacements.js +74 -0
  112. package/schematics/ng-update/replacements/css-replacements.js.map +1 -0
  113. package/schematics/ng-update/replacements/import-replacements.d.ts +13 -0
  114. package/schematics/ng-update/replacements/import-replacements.js +108 -0
  115. package/schematics/ng-update/replacements/import-replacements.js.map +1 -0
  116. package/schematics/ng-update/replacements/symbol-replacements.d.ts +12 -0
  117. package/schematics/ng-update/replacements/symbol-replacements.js +67 -0
  118. package/schematics/ng-update/replacements/symbol-replacements.js.map +1 -0
  119. package/schematics/ng-update/replacements/template-replacements.d.ts +19 -0
  120. package/schematics/ng-update/replacements/template-replacements.js +57 -0
  121. package/schematics/ng-update/replacements/template-replacements.js.map +1 -0
  122. package/schematics/ng-update/tests/test-helpers.d.ts +6 -0
  123. package/schematics/ng-update/tests/test-helpers.js +34 -0
  124. package/schematics/ng-update/tests/test-helpers.js.map +1 -0
  125. package/schematics/ng-update/utils/file-visitor.d.ts +8 -0
  126. package/schematics/ng-update/utils/file-visitor.js +44 -0
  127. package/schematics/ng-update/utils/file-visitor.js.map +1 -0
  128. package/schematics/ng-update/utils/regexp-utils.d.ts +16 -0
  129. package/schematics/ng-update/utils/regexp-utils.js +34 -0
  130. package/schematics/ng-update/utils/regexp-utils.js.map +1 -0
  131. package/schematics/vitest.config.d.ts +2 -0
  132. package/schematics/vitest.config.js +17 -0
  133. package/schematics/vitest.config.js.map +1 -0
  134. package/types/clr-angular-accordion.d.ts +100 -0
  135. package/types/clr-angular-button.d.ts +169 -0
  136. package/types/clr-angular-collapsible-panel.d.ts +73 -0
  137. package/types/clr-angular-data-datagrid.d.ts +1843 -0
  138. package/types/clr-angular-data-stack-view.d.ts +87 -0
  139. package/types/clr-angular-data-tree-view.d.ts +229 -0
  140. package/types/clr-angular-data.d.ts +15 -0
  141. package/types/clr-angular-emphasis-alert.d.ts +175 -0
  142. package/types/clr-angular-emphasis-badge.d.ts +25 -0
  143. package/types/clr-angular-emphasis-common.d.ts +6 -0
  144. package/types/clr-angular-emphasis-label.d.ts +29 -0
  145. package/types/clr-angular-emphasis.d.ts +15 -0
  146. package/types/clr-angular-forms-checkbox.d.ts +69 -0
  147. package/types/clr-angular-forms-combobox.d.ts +353 -0
  148. package/types/clr-angular-forms-common.d.ts +339 -0
  149. package/types/clr-angular-forms-datalist.d.ts +59 -0
  150. package/types/clr-angular-forms-datepicker.d.ts +986 -0
  151. package/types/clr-angular-forms-file-input.d.ts +193 -0
  152. package/types/clr-angular-forms-input.d.ts +29 -0
  153. package/types/clr-angular-forms-number-input.d.ts +43 -0
  154. package/types/clr-angular-forms-password.d.ts +52 -0
  155. package/types/clr-angular-forms-radio.d.ts +50 -0
  156. package/types/clr-angular-forms-range.d.ts +37 -0
  157. package/types/clr-angular-forms-select.d.ts +36 -0
  158. package/types/clr-angular-forms-textarea.d.ts +29 -0
  159. package/types/clr-angular-forms.d.ts +36 -0
  160. package/types/clr-angular-icon.d.ts +1498 -0
  161. package/types/clr-angular-layout-breadcrumbs.d.ts +45 -0
  162. package/types/clr-angular-layout-main-container.d.ts +28 -0
  163. package/types/clr-angular-layout-nav.d.ts +142 -0
  164. package/types/clr-angular-layout-tabs.d.ts +158 -0
  165. package/types/clr-angular-layout-vertical-nav.d.ts +128 -0
  166. package/types/clr-angular-layout.d.ts +19 -0
  167. package/types/clr-angular-modal.d.ts +160 -0
  168. package/types/clr-angular-popover-common.d.ts +254 -0
  169. package/types/clr-angular-popover-dropdown.d.ts +123 -0
  170. package/types/clr-angular-popover-signpost.d.ts +157 -0
  171. package/types/clr-angular-popover-tooltip.d.ts +83 -0
  172. package/types/clr-angular-popover.d.ts +16 -0
  173. package/types/clr-angular-progress-progress-bars.d.ts +57 -0
  174. package/types/clr-angular-progress-spinner.d.ts +44 -0
  175. package/types/clr-angular-stepper.d.ts +179 -0
  176. package/types/clr-angular-timeline.d.ts +86 -0
  177. package/types/clr-angular-utils-conditional.d.ts +132 -0
  178. package/types/clr-angular-utils-loading.d.ts +38 -0
  179. package/types/clr-angular-utils.d.ts +913 -0
  180. package/types/clr-angular-wizard.d.ts +1508 -0
  181. package/fesm2022/rossigee-clarity-angular.mjs.map +0 -1
  182. /package/types/{rossigee-clarity-angular.d.ts → clr-angular.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clr-angular-forms-combobox.mjs","sources":["../../../projects/angular/forms/combobox/providers/combobox-container.service.ts","../../../projects/angular/forms/combobox/combobox-container.ts","../../../projects/angular/forms/combobox/model/combobox.model.ts","../../../projects/angular/forms/combobox/model/multi-select-combobox.model.ts","../../../projects/angular/forms/combobox/model/single-select-combobox.model.ts","../../../projects/angular/forms/combobox/option-selected.directive.ts","../../../projects/angular/forms/combobox/model/pseudo-focus.model.ts","../../../projects/angular/forms/combobox/providers/option-selection.service.ts","../../../projects/angular/forms/combobox/providers/combobox-focus-handler.service.ts","../../../projects/angular/forms/combobox/option.ts","../../../projects/angular/forms/combobox/options.ts","../../../projects/angular/forms/combobox/combobox.ts","../../../projects/angular/forms/combobox/combobox.html","../../../projects/angular/forms/combobox/option-items.directive.ts","../../../projects/angular/forms/combobox/option-group.ts","../../../projects/angular/forms/combobox/combobox.module.ts","../../../projects/angular/forms/combobox/index.ts","../../../projects/angular/forms/combobox/clr-angular-forms-combobox.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ComboboxContainerService {\n labelOffset = 0;\n labelText: string;\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { AfterContentInit, AfterViewInit, Component, ElementRef, Optional, ViewChild } from '@angular/core';\nimport {\n ClrAbstractContainer,\n ControlClassService,\n ControlIdService,\n LayoutService,\n NgControlService,\n} from '@clr/angular/forms/common';\n\nimport { ComboboxContainerService } from './providers/combobox-container.service';\n@Component({\n selector: 'clr-combobox-container',\n template: `\n <ng-content select=\"label\"></ng-content>\n @if (!label && addGrid()) {\n <label></label>\n }\n <div class=\"clr-control-container\" [ngClass]=\"controlClass()\" #controlContainer>\n <ng-content select=\"clr-combobox\"></ng-content>\n @if (showHelper) {\n <ng-content select=\"clr-control-helper\"></ng-content>\n }\n @if (showInvalid) {\n <ng-content select=\"clr-control-error\"></ng-content>\n }\n @if (showValid) {\n <ng-content select=\"clr-control-success\"></ng-content>\n }\n </div>\n `,\n host: {\n '[class.clr-form-control]': 'true',\n '[class.clr-combobox-form-control]': 'true',\n '[class.clr-form-control-disabled]': 'control?.disabled',\n '[class.clr-row]': 'addGrid()',\n },\n providers: [NgControlService, ControlIdService, ControlClassService, ComboboxContainerService],\n standalone: false,\n})\nexport class ClrComboboxContainer extends ClrAbstractContainer implements AfterContentInit, AfterViewInit {\n @ViewChild('controlContainer') controlContainer: ElementRef<HTMLElement>;\n\n constructor(\n @Optional() layoutService: LayoutService,\n controlClassService: ControlClassService,\n ngControlService: NgControlService,\n private containerService: ComboboxContainerService,\n public el: ElementRef<HTMLElement>\n ) {\n super(layoutService, controlClassService, ngControlService);\n }\n\n ngAfterContentInit() {\n if (this.label) {\n this.containerService.labelText = this.label.labelText;\n }\n }\n\n ngAfterViewInit() {\n this.containerService.labelOffset =\n this.controlContainer.nativeElement.offsetHeight - this.el.nativeElement.offsetHeight;\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport type ClrComboboxIdentityFunction<T> = (item: T) => any;\n\nexport type ClrComboboxResolverFunction<T> = (input: string) => T;\n\nexport abstract class ComboboxModel<T> {\n model: T | T[];\n displayField?: string;\n identityFn: ClrComboboxIdentityFunction<T> = (item: T) => item;\n abstract containsItem(item: T): boolean;\n abstract select(item: T): void;\n abstract unselect(item: T): void;\n abstract toString(displayField?: string, index?: number): string;\n abstract isEmpty(): boolean;\n abstract pop(): T; // pops the last item\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { ComboboxModel } from './combobox.model';\n\nexport class MultiSelectComboboxModel<T> extends ComboboxModel<T> {\n override model: T[];\n override displayField: string;\n\n containsItem(item: T): boolean {\n if (this.model === null || this.model === undefined) {\n return false;\n }\n return this.model.some(m => this.identityFn(m) === this.identityFn(item));\n }\n\n select(item: T): void {\n this.addItem(item);\n }\n\n unselect(item: T): void {\n this.removeItem(item);\n }\n\n isEmpty(): boolean {\n return !(this.model && this.model.length > 0);\n }\n\n pop(): T {\n let item;\n if (this.model && this.model.length > 0) {\n item = this.model[this.model.length - 1];\n this.removeItem(item);\n }\n return item;\n }\n\n toString(displayField?: string, index = -1): string {\n let displayString = '';\n\n if (this.model) {\n // If the model is array, we can use a specific item from it, to retrieve the display value.\n if (index > -1) {\n if (this.model[index]) {\n // If we have a defined display field, we'll use it's value as display value\n if (displayField && (this.model[index] as any)[displayField]) {\n displayString += (this.model[index] as any)[displayField];\n } else {\n // If we don't have a defined display field, we'll use the toString representation of the\n // item as display value.\n displayString += this.model[index].toString();\n }\n }\n } else {\n this.model.forEach((model: T) => {\n // If we have a defined display field, we'll use it's value as display value\n if (displayField && (model as any)[displayField]) {\n displayString += (model as any)[displayField];\n } else {\n // If we don't have a defined display field, we'll use the toString representation of the\n // model as display value.\n displayString += model.toString();\n }\n displayString += ' ';\n });\n }\n }\n\n return displayString.trim();\n }\n\n private addItem(item: T) {\n if (!this.containsItem(item)) {\n this.model = this.model || [];\n this.model.push(item);\n }\n }\n\n private removeItem(item: T) {\n if (this.model === null || this.model === undefined) {\n return;\n }\n\n const index = this.model.findIndex(m => this.identityFn(m) === this.identityFn(item));\n\n if (index > -1) {\n this.model.splice(index, 1);\n }\n\n // we intentionally set the model to null for form validation\n if (this.model.length === 0) {\n this.model = null;\n }\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { ComboboxModel } from './combobox.model';\n\nexport class SingleSelectComboboxModel<T> extends ComboboxModel<T> {\n override model: T;\n\n containsItem(item: T): boolean {\n if (this.model === null || this.model === undefined) {\n return false;\n }\n return this.identityFn(this.model) === this.identityFn(item);\n }\n\n select(item: T): void {\n this.model = item;\n }\n\n unselect(item: T): void {\n if (this.containsItem(item)) {\n this.model = null;\n }\n }\n\n isEmpty(): boolean {\n return !this.model;\n }\n\n pop(): T {\n const item = this.model;\n this.model = null;\n return item;\n }\n\n toString(displayField?: string): string {\n if (!this.model) {\n return '';\n }\n if (displayField && (this.model as any)[displayField]) {\n return (this.model as any)[displayField];\n } else {\n return this.model.toString();\n }\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, Input, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[clrOptionSelected]',\n standalone: false,\n})\nexport class ClrOptionSelected<T> {\n @Input('clrOptionSelected') selected: T;\n\n constructor(public template: TemplateRef<{ $implicit: T }>) {}\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { SingleSelectComboboxModel } from './single-select-combobox.model';\n\nexport class PseudoFocusModel<T> extends SingleSelectComboboxModel<T> {\n private _focusChanged = new BehaviorSubject<T>(null);\n get focusChanged(): Observable<T> {\n return this._focusChanged.asObservable();\n }\n\n override select(item: T): void {\n if (this.model !== item) {\n this.model = item;\n this._focusChanged.next(item);\n }\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, ReplaySubject, Subject } from 'rxjs';\n\nimport { ClrComboboxIdentityFunction, ClrComboboxResolverFunction, ComboboxModel } from '../model/combobox.model';\nimport { MultiSelectComboboxModel } from '../model/multi-select-combobox.model';\n\n@Injectable()\nexport class OptionSelectionService<T> {\n loading = false;\n editable = false;\n showSelectAll = false;\n selectionModel: ComboboxModel<T>;\n inputChanged: Observable<string>;\n // Display all options on first open, even if filter text exists.\n // https://github.com/vmware-clarity/ng-clarity/issues/386\n showAllOptions = true;\n\n private _currentInput = '';\n private _displayField: string;\n private _inputChanged = new BehaviorSubject('');\n private _selectionChanged = new ReplaySubject<ComboboxModel<T>>(1);\n private _selectAllRequested = new Subject<void>();\n\n constructor() {\n this.inputChanged = this._inputChanged.asObservable();\n }\n\n get displayField() {\n return this._displayField;\n }\n set displayField(value: string) {\n this._displayField = value;\n if (this.selectionModel) {\n this.selectionModel.displayField = value;\n }\n }\n\n get currentInput(): string {\n return this._currentInput;\n }\n set currentInput(input) {\n // clear value in single selection model when input is empty\n if (input === '' && !this.multiselectable) {\n this.setSelectionValue(null);\n }\n this._currentInput = input;\n this._inputChanged.next(input);\n }\n\n // This observable is for notifying the ClrOption to update its\n // selection by comparing the value\n get selectionChanged(): Observable<ComboboxModel<T>> {\n return this._selectionChanged.asObservable();\n }\n\n get multiselectable(): boolean {\n return this.selectionModel instanceof MultiSelectComboboxModel;\n }\n\n get identityFn(): ClrComboboxIdentityFunction<T> {\n return this._identityFn;\n }\n\n set identityFn(value: ClrComboboxIdentityFunction<T>) {\n this._identityFn = value || ((item: T) => item);\n if (this.selectionModel) {\n this.selectionModel.identityFn = this._identityFn;\n }\n }\n\n get selectAllRequested(): Observable<void> {\n return this._selectAllRequested.asObservable();\n }\n\n requestSelectAll() {\n this._selectAllRequested.next();\n }\n\n editableResolver: ClrComboboxResolverFunction<T> = (input: string) => input as T;\n\n select(item: T) {\n if (item === null || item === undefined || this.selectionModel.containsItem(item)) {\n return;\n }\n this.selectionModel.select(item);\n this._selectionChanged.next(this.selectionModel);\n }\n\n toggle(item: T) {\n if (item === null || item === undefined) {\n return;\n }\n if (this.selectionModel.containsItem(item)) {\n this.selectionModel.unselect(item);\n } else {\n this.selectionModel.select(item);\n }\n this._selectionChanged.next(this.selectionModel);\n }\n\n selectMany(items: T[]) {\n let changed = false;\n for (const item of items) {\n if (!this.selectionModel.containsItem(item)) {\n this.selectionModel.select(item);\n changed = true;\n }\n }\n if (changed) {\n this._selectionChanged.next(this.selectionModel);\n }\n }\n\n unselectMany(items: T[]) {\n if (!this.selectionModel || this.selectionModel.isEmpty()) {\n return;\n }\n\n let changed = false;\n for (const item of items) {\n if (this.selectionModel.containsItem(item)) {\n this.selectionModel.unselect(item);\n changed = true;\n }\n }\n\n if (changed) {\n this._selectionChanged.next(this.selectionModel);\n }\n }\n\n unselect(item: T) {\n if (item === null || item === undefined || !this.selectionModel.containsItem(item)) {\n return;\n }\n this.selectionModel.unselect(item);\n this._selectionChanged.next(this.selectionModel);\n }\n\n /**\n * Checks whether all given items are currently selected, using identityFn for comparison.\n */\n containsAll(items: T[]): boolean {\n if (!items.length || this.selectionModel.isEmpty()) {\n return false;\n }\n return items.every(item => this.selectionModel.containsItem(item));\n }\n\n setSelectionValue(value: T | T[]): void {\n if (!this.selectionModel) {\n return;\n }\n\n const current = this.selectionModel.model;\n if (this.valuesEqualByIdentity(current, value)) {\n return;\n }\n\n this.selectionModel.model = value;\n this._selectionChanged.next(this.selectionModel);\n }\n\n private _identityFn: ClrComboboxIdentityFunction<T> = (item: T) => item;\n\n private valuesEqualByIdentity(current: T | T[], value: T | T[]): boolean {\n if (current === value) {\n return true;\n }\n // Check if both are null or undefined or empty string.\n if (\n (current === null || current === undefined || current === '') &&\n (value === null || value === undefined || value === '')\n ) {\n return true;\n }\n // Check if one is null or undefined or empty string and the other is not.\n if (\n current === null ||\n current === undefined ||\n current === '' ||\n value === null ||\n value === undefined ||\n value === ''\n ) {\n return false;\n }\n\n if (this.multiselectable) {\n const cur = current as T[];\n const val = value as T[];\n if (cur.length !== val.length) {\n return false;\n }\n // We only consider values equal if they are ordered the same way.\n const curIds = cur.map(this._identityFn);\n const valIds = val.map(this._identityFn);\n return curIds.every((id, i) => id === valIds[i]);\n } else {\n return this._identityFn(current as T) === this._identityFn(value as T);\n }\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, PLATFORM_ID, Renderer2, RendererFactory2 } from '@angular/core';\nimport { ClrPopoverService } from '@clr/angular/popover/common';\nimport { ArrowKeyDirection, customFocusableItemProvider, Keys } from '@clr/angular/utils';\nimport { take } from 'rxjs/operators';\n\nimport { OptionSelectionService } from './option-selection.service';\nimport { PseudoFocusModel } from '../model/pseudo-focus.model';\nimport { SELECT_ALL_ID } from '../options';\n\n@Injectable()\nexport class ComboboxFocusHandler<T> {\n pseudoFocus: PseudoFocusModel<OptionData<T>> = new PseudoFocusModel<OptionData<T>>();\n\n private renderer: Renderer2;\n private _trigger: HTMLElement;\n private _listbox: HTMLElement;\n private _textInput: HTMLElement;\n private optionData: OptionData<T>[] = [];\n\n constructor(\n rendererFactory: RendererFactory2,\n private popoverService: ClrPopoverService,\n private selectionService: OptionSelectionService<T>,\n @Inject(PLATFORM_ID) private platformId: any\n ) {\n this.handleFocusSubscription();\n // Direct renderer injection can be problematic and leads to failing tests at least\n this.renderer = rendererFactory.createRenderer(null, null);\n }\n\n get trigger() {\n return this._trigger;\n }\n set trigger(el: HTMLElement) {\n this._trigger = el;\n this.addFocusOnBlurListener(el);\n }\n\n get listbox() {\n return this._listbox;\n }\n set listbox(el: HTMLElement) {\n this._listbox = el;\n this.addFocusOnBlurListener(el);\n }\n\n get textInput() {\n return this._textInput;\n }\n set textInput(el: HTMLElement) {\n this._textInput = el;\n this.renderer.listen(el, 'keydown', event => !this.handleTextInput(event));\n this.addFocusOnBlurListener(el);\n }\n\n focusInput() {\n if (this.textInput && isPlatformBrowser(this.platformId)) {\n this.textInput.focus({ preventScroll: true });\n }\n }\n\n focusFirstActive() {\n if (this.optionData.length > 0) {\n if (this.selectionService.selectionModel.isEmpty()) {\n this.pseudoFocus.select(this.optionData[0]);\n } else {\n let firstActive: T;\n if (this.selectionService.multiselectable) {\n firstActive = (this.selectionService.selectionModel.model as T[])[0];\n } else {\n firstActive = this.selectionService.selectionModel.model as T;\n }\n const activeProxy = this.optionData.find(option => option.value === firstActive);\n if (activeProxy) {\n // active element is visible\n this.pseudoFocus.select(activeProxy);\n } else {\n // we have active element, but it's filtered out\n this.pseudoFocus.select(this.optionData[0]);\n }\n this.scrollIntoSelectedModel('auto');\n }\n }\n }\n\n addOptionValues(options: OptionData<T>[]) {\n this.optionData = options;\n }\n\n focusOption(option: OptionData<T>) {\n this.pseudoFocus.select(option);\n }\n\n private handleFocusSubscription() {\n this.popoverService.openChange.subscribe(open => {\n if (!open) {\n this.pseudoFocus.model = null;\n }\n });\n }\n\n private moveFocusTo(direction: ArrowKeyDirection) {\n let index = this.optionData.findIndex(option => option.equals(this.pseudoFocus.model));\n if (direction === ArrowKeyDirection.UP) {\n if (index === -1 || index === 0) {\n index = this.optionData.length - 1;\n } else {\n index--;\n }\n } else if (direction === ArrowKeyDirection.DOWN) {\n if (index === -1 || index === this.optionData.length - 1) {\n index = 0;\n } else {\n index++;\n }\n }\n this.pseudoFocus.select(this.optionData[index]);\n this.scrollIntoSelectedModel();\n }\n\n private openAndMoveTo(direction: ArrowKeyDirection) {\n if (!this.popoverService.open) {\n this.popoverService.openChange.pipe(take(1)).subscribe(open => {\n if (open) {\n this.moveFocusTo(direction);\n }\n });\n this.popoverService.open = true;\n } else {\n this.moveFocusTo(direction);\n }\n }\n\n // this service is only interested in keys that may move the focus\n private handleTextInput(event: KeyboardEvent): boolean {\n let preventDefault = false;\n const key = event.key;\n if (event) {\n switch (key) {\n case Keys.Enter:\n if (this.popoverService.open && this.pseudoFocus.model) {\n if (this.selectionService.multiselectable) {\n if (this.pseudoFocus.model.id === SELECT_ALL_ID) {\n this.selectionService.requestSelectAll();\n } else {\n this.selectionService.toggle(this.pseudoFocus.model.value);\n }\n } else {\n this.selectionService.select(this.pseudoFocus.model.value);\n }\n preventDefault = true;\n }\n break;\n case Keys.Space:\n if (!this.popoverService.open) {\n this.popoverService.open = true;\n preventDefault = true;\n }\n break;\n case Keys.ArrowUp:\n this.preventViewportScrolling(event);\n this.openAndMoveTo(ArrowKeyDirection.UP);\n preventDefault = true;\n break;\n case Keys.ArrowDown:\n this.preventViewportScrolling(event);\n this.openAndMoveTo(ArrowKeyDirection.DOWN);\n preventDefault = true;\n break;\n default:\n // Any other keypress\n if (\n event.key !== Keys.Tab &&\n !(this.selectionService.multiselectable && event.key === Keys.Backspace) &&\n !(event.key === Keys.Escape) &&\n !this.popoverService.open\n ) {\n this.popoverService.open = true;\n }\n break;\n }\n }\n return preventDefault;\n }\n\n private scrollIntoSelectedModel(behavior: ScrollBehavior = 'smooth') {\n if (this.pseudoFocus.model && this.pseudoFocus.model.el) {\n this.pseudoFocus.model.el.scrollIntoView({ behavior, block: 'center', inline: 'nearest' });\n }\n }\n\n private preventViewportScrolling(event: KeyboardEvent) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n private addFocusOnBlurListener(el: HTMLElement) {\n if (isPlatformBrowser(this.platformId)) {\n this.renderer.listen(el, 'blur', event => {\n if (this.focusOutOfComponent(event)) {\n this.popoverService.open = false;\n }\n });\n }\n }\n\n private focusOutOfComponent(event: FocusEvent): boolean {\n const target = event.relatedTarget as Node;\n return !(this.textInput.contains(target) || this.trigger.contains(target) || this.listbox.contains(target));\n }\n}\n\nexport const COMBOBOX_FOCUS_HANDLER_PROVIDER = customFocusableItemProvider(ComboboxFocusHandler);\n\nexport class OptionData<T> {\n el: HTMLElement;\n\n constructor(\n public id: string,\n public value: T\n ) {}\n\n equals(other: OptionData<T>): boolean {\n if (!other) {\n return false;\n }\n return this.id === other.id && this.value === other.value;\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, ElementRef, HostBinding, HostListener, Input, OnInit } from '@angular/core';\nimport { ClrCommonStringsService, uniqueIdFactory } from '@clr/angular/utils';\n\nimport { ComboboxFocusHandler, OptionData as OptionProxy } from './providers/combobox-focus-handler.service';\nimport { OptionSelectionService } from './providers/option-selection.service';\n@Component({\n selector: 'clr-option',\n template: `\n <ng-content></ng-content>\n @if (selected) {\n <span class=\"clr-sr-only\">{{ commonStrings.keys.comboboxSelected }}</span>\n }\n `,\n host: {\n '[class.clr-combobox-option]': 'true',\n '[attr.role]': '\"option\"',\n // Do not remove. Or click-selection will not work.\n '[attr.tabindex]': '-1',\n '[attr.id]': 'optionId',\n },\n standalone: false,\n})\nexport class ClrOption<T> implements OnInit {\n // A proxy with only the necessary data to be used for a11y and the focus handler service.\n optionProxy: OptionProxy<T> = new OptionProxy(null, null);\n\n private _id: string;\n private _value: T;\n\n constructor(\n public elRef: ElementRef<HTMLElement>,\n public commonStrings: ClrCommonStringsService,\n private focusHandler: ComboboxFocusHandler<T>,\n private optionSelectionService: OptionSelectionService<T>\n ) {\n this.optionProxy.el = elRef.nativeElement;\n }\n\n @Input('id')\n get optionId() {\n return this._id;\n }\n set optionId(id: string) {\n this._id = id;\n this.optionProxy.id = this._id;\n }\n\n @Input('clrValue')\n get value(): T {\n return this._value;\n }\n set value(value: T) {\n this._value = value;\n this.optionProxy.value = value;\n }\n\n @HostBinding('class.active')\n get selected() {\n return (\n this.optionSelectionService.selectionModel && this.optionSelectionService.selectionModel.containsItem(this.value)\n );\n }\n\n @HostBinding('class.clr-focus')\n get focusClass() {\n return this.focusHandler.pseudoFocus.containsItem(this.optionProxy);\n }\n\n ngOnInit() {\n if (!this._id) {\n this._id = 'clr-option-' + uniqueIdFactory();\n this.optionProxy.id = this._id;\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n event.stopPropagation();\n if (this.optionSelectionService.multiselectable) {\n this.optionSelectionService.toggle(this.value);\n } else {\n this.optionSelectionService.select(this.value);\n }\n // As the popover stays open in multi-select mode now, we have to take focus back to the input\n // This way we achieve two things:\n // - do not lose focus\n // - we're still able to use onBlur for \"outside-click\" handling\n this.focusHandler.focusOption(this.optionProxy);\n this.focusHandler.focusInput();\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n AfterViewInit,\n Component,\n ContentChildren,\n DOCUMENT,\n ElementRef,\n Inject,\n Input,\n OnDestroy,\n Optional,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport { ClrPopoverService, POPOVER_HOST_ORIGIN } from '@clr/angular/popover/common';\nimport { ClrCommonStringsService, ClrLoadingState, IF_ACTIVE_ID, LoadingListener } from '@clr/angular/utils';\nimport { Subscription } from 'rxjs';\n\nimport { ClrOption } from './option';\nimport { ComboboxFocusHandler, OptionData } from './providers/combobox-focus-handler.service';\nimport { OptionSelectionService } from './providers/option-selection.service';\n\nlet nbOptionsComponents = 0;\n\nexport const SELECT_ALL_ID = 'select-all-id';\n\n@Component({\n selector: 'clr-options',\n template: `\n @if (optionSelectionService.loading) {\n <div class=\"clr-combobox-options-loading\">\n <clr-spinner clrInline>\n {{ commonStrings.keys.loading }}\n </clr-spinner>\n <span class=\"clr-combobox-options-text\">\n {{ searchText(optionSelectionService.currentInput) }}\n </span>\n </div>\n }\n\n @if (showSelectAll) {\n <div class=\"clr-combobox-select-all\">\n <button\n #selectAllBtn\n type=\"button\"\n tabindex=\"-1\"\n class=\"btn btn-link clr-combobox-select-all-btn clr-combobox-option\"\n [class.clr-focus]=\"isSelectAllFocused\"\n (click)=\"toggleSelectAll($event)\"\n >\n {{ allVisibleSelected ? commonStrings.keys.comboboxUnselectAll : commonStrings.keys.comboboxSelectAll }}\n </button>\n </div>\n }\n\n <!-- Rendered if data set is empty -->\n @if (emptyOptions) {\n <div [id]=\"noResultsElementId\" role=\"option\">\n <span class=\"clr-combobox-options-empty-text\">\n {{ commonStrings.keys.comboboxNoResults }}\n </span>\n </div>\n }\n\n <!--Option Groups and Options will be projected here-->\n <ng-content></ng-content>\n `,\n providers: [{ provide: LoadingListener, useExisting: ClrOptions }],\n host: {\n '[class.clr-combobox-options]': 'true',\n '[class.clr-combobox-options-multi]': 'optionSelectionService.multiselectable',\n '[class.clr-combobox-options-hidden]': 'emptyOptions && editable',\n '[attr.role]': '\"listbox\"',\n '[id]': 'optionsId',\n },\n standalone: false,\n})\nexport class ClrOptions<T> implements AfterViewInit, LoadingListener, OnDestroy {\n @Input('id') optionsId: string;\n\n loading = false;\n _items: QueryList<ClrOption<T>>;\n\n private subscriptions: Subscription[] = [];\n private _selectAllOption: OptionData<T>;\n\n constructor(\n public optionSelectionService: OptionSelectionService<T>,\n @Inject(IF_ACTIVE_ID) public id: number,\n public el: ElementRef<HTMLElement>,\n public commonStrings: ClrCommonStringsService,\n private focusHandler: ComboboxFocusHandler<T>,\n private popoverService: ClrPopoverService,\n @Optional()\n @Inject(POPOVER_HOST_ORIGIN)\n parentHost: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) private document: any\n ) {\n if (!parentHost) {\n throw new Error('clr-options should only be used inside of a clr-combobox');\n }\n\n if (!this.optionsId) {\n this.optionsId = 'clr-options-' + nbOptionsComponents++;\n }\n }\n\n @ViewChild('selectAllBtn')\n set selectAllBtn(value: ElementRef) {\n if (value) {\n this._selectAllOption = new OptionData<T>(SELECT_ALL_ID, null);\n this._selectAllOption.el = value.nativeElement;\n } else {\n this._selectAllOption = null;\n }\n this.updateFocusableItems();\n }\n\n @ContentChildren(ClrOption, { descendants: true })\n get items(): QueryList<ClrOption<T>> {\n return this._items;\n }\n set items(items: QueryList<ClrOption<T>>) {\n this._items = items;\n this.updateFocusableItems();\n }\n\n /**\n * Tests if the list of options is empty, meaning it doesn't contain any items\n */\n get emptyOptions() {\n return !this.optionSelectionService.loading && this.items.length === 0;\n }\n\n get editable() {\n return this.optionSelectionService.editable;\n }\n\n get noResultsElementId() {\n return `${this.optionsId}-no-results`;\n }\n\n get showSelectAll(): boolean {\n return (\n this.optionSelectionService.showSelectAll &&\n this.optionSelectionService.multiselectable &&\n !this.optionSelectionService.loading &&\n this.items.length > 0\n );\n }\n\n get allVisibleSelected(): boolean {\n if (!this.items || this.items.length === 0) {\n return false;\n }\n return this.optionSelectionService.containsAll(this.items.map(option => option.value));\n }\n\n get isSelectAllFocused() {\n return this.focusHandler.pseudoFocus.model?.id === SELECT_ALL_ID;\n }\n\n toggleSelectAll(event: Event = null) {\n if (event) {\n event.stopPropagation();\n this.focusHandler.focusInput();\n }\n const visibleValues = this.items.map(option => option.value);\n\n if (this.allVisibleSelected) {\n this.optionSelectionService.unselectMany(visibleValues);\n } else {\n this.optionSelectionService.selectMany(visibleValues);\n }\n }\n\n ngAfterViewInit() {\n this.focusHandler.listbox = this.el.nativeElement;\n\n this.subscriptions.push(\n this.items.changes.subscribe(items => {\n if (items.length) {\n setTimeout(() => {\n this.focusHandler.focusFirstActive();\n });\n } else {\n this.focusHandler.pseudoFocus.pop();\n }\n }),\n this.optionSelectionService.selectAllRequested.subscribe(() => {\n this.toggleSelectAll();\n })\n );\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n }\n\n searchText(input: string) {\n return this.commonStrings.parse(this.commonStrings.keys.comboboxSearching, { INPUT: input });\n }\n\n loadingStateChange(state: ClrLoadingState): void {\n this.loading = state === ClrLoadingState.LOADING;\n }\n\n private updateFocusableItems() {\n const focusList: OptionData<T>[] = [];\n\n if (this._selectAllOption) {\n focusList.push(this._selectAllOption);\n }\n\n if (this._items) {\n const itemOptions = this._items.map(option => option.optionProxy);\n focusList.push(...itemOptions);\n }\n\n this.focusHandler.addOptionValues(focusList);\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Host,\n HostListener,\n Inject,\n Injector,\n Input,\n NgZone,\n Optional,\n Output,\n PLATFORM_ID,\n QueryList,\n Renderer2,\n Self,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { WrappedFormControl } from '@clr/angular/forms/common';\nimport {\n ClrPopoverHostDirective,\n ClrPopoverPosition,\n ClrPopoverService,\n ClrPopoverType,\n} from '@clr/angular/popover/common';\nimport {\n ClrCommonStringsService,\n ClrLoadingState,\n FOCUS_SERVICE_PROVIDER,\n IF_ACTIVE_ID_PROVIDER,\n Keys,\n LoadingListener,\n} from '@clr/angular/utils';\nimport { debounceTime, Subject } from 'rxjs';\n\nimport { ClrComboboxContainer } from './combobox-container';\nimport { ClrComboboxIdentityFunction, ClrComboboxResolverFunction, ComboboxModel } from './model/combobox.model';\nimport { MultiSelectComboboxModel } from './model/multi-select-combobox.model';\nimport { SingleSelectComboboxModel } from './model/single-select-combobox.model';\nimport { ClrOptionSelected } from './option-selected.directive';\nimport { ClrOptions } from './options';\nimport { ComboboxContainerService } from './providers/combobox-container.service';\nimport { COMBOBOX_FOCUS_HANDLER_PROVIDER, ComboboxFocusHandler } from './providers/combobox-focus-handler.service';\nimport { OptionSelectionService } from './providers/option-selection.service';\n\n@Component({\n selector: 'clr-combobox',\n templateUrl: './combobox.html',\n providers: [\n OptionSelectionService,\n { provide: LoadingListener, useExisting: ClrCombobox },\n IF_ACTIVE_ID_PROVIDER,\n FOCUS_SERVICE_PROVIDER,\n COMBOBOX_FOCUS_HANDLER_PROVIDER,\n ],\n hostDirectives: [ClrPopoverHostDirective],\n host: {\n '[class.aria-required]': 'true',\n '[class.clr-combobox]': 'true',\n '[class.clr-combobox-disabled]': 'control?.disabled',\n },\n standalone: false,\n})\nexport class ClrCombobox<T>\n extends WrappedFormControl<ClrComboboxContainer>\n implements ControlValueAccessor, LoadingListener, AfterContentInit\n{\n @Input('placeholder') placeholder = '';\n\n @Output('clrInputChange') clrInputChange = new EventEmitter<string>(false);\n @Output('clrOpenChange') clrOpenChange = this.popoverService.openChange;\n\n /**\n * This output should be used to set up a live region using aria-live and populate it with updates that reflect each combobox change.\n */\n @Output('clrSelectionChange') clrSelectionChange = this.optionSelectionService.selectionChanged;\n\n @ViewChild('textboxInput') textbox: ElementRef<HTMLInputElement>;\n @ViewChild('trigger') trigger: ElementRef<HTMLButtonElement>;\n @ContentChild(ClrOptionSelected) optionSelected: ClrOptionSelected<T>;\n\n @ViewChild('truncationButton') truncationButton: ElementRef;\n @ViewChild('wrapper', { static: true }) wrapper: ElementRef;\n @ViewChildren('pill') calculationPills: QueryList<ElementRef<HTMLElement>>;\n\n focused = false;\n\n popoverPosition = ClrPopoverPosition.BOTTOM_LEFT;\n\n protected override index = 1;\n\n protected popoverType = ClrPopoverType.DROPDOWN;\n\n protected containerWidth = null;\n protected selectionExpanded = false;\n protected calculatedLimit: number | undefined;\n protected shouldCalculate = true;\n protected isTotalSelection = false;\n\n private resizeObserver: ResizeObserver;\n private containerWidthChange = new Subject();\n @ContentChild(ClrOptions) private options: ClrOptions<T>;\n\n private _searchText = '';\n private onTouchedCallback: () => any;\n private onChangeCallback: (model: T | T[]) => any;\n\n constructor(\n vcr: ViewContainerRef,\n injector: Injector,\n @Self()\n @Optional()\n public control: NgControl,\n protected override renderer: Renderer2,\n protected override el: ElementRef<HTMLElement>,\n public optionSelectionService: OptionSelectionService<T>,\n public commonStrings: ClrCommonStringsService,\n private popoverService: ClrPopoverService,\n @Optional() private containerService: ComboboxContainerService,\n @Inject(PLATFORM_ID) private platformId: any,\n private focusHandler: ComboboxFocusHandler<T>,\n private cdr: ChangeDetectorRef,\n private zone: NgZone,\n @Optional() @Host() private container: ClrComboboxContainer\n ) {\n super(vcr, ClrComboboxContainer, injector, control, renderer, el);\n if (control) {\n control.valueAccessor = this;\n }\n\n // default to SingleSelectComboboxModel, in case the optional input [ClrMulti] isn't used\n this.multiSelect = false;\n }\n\n @Input({ alias: 'showSelectAll', transform: booleanAttribute })\n get showSelectAll() {\n return this.optionSelectionService.showSelectAll;\n }\n set showSelectAll(value: boolean) {\n this.optionSelectionService.showSelectAll = value;\n }\n\n @Input('clrEditable')\n get editable() {\n return this.optionSelectionService.editable;\n }\n set editable(value: boolean) {\n this.optionSelectionService.editable = value;\n }\n\n @Input('clrEditableResolverFn')\n set editableResolver(value: ClrComboboxResolverFunction<T> | undefined) {\n this.optionSelectionService.editableResolver = value;\n }\n\n @Input('clrComboboxIdentityFn')\n set identityFn(value: ClrComboboxIdentityFunction<T>) {\n this.optionSelectionService.identityFn = value;\n }\n\n @Input('clrMulti')\n get multiSelect() {\n return this.optionSelectionService.multiselectable;\n }\n set multiSelect(value: boolean | string) {\n if (value) {\n this.optionSelectionService.selectionModel = new MultiSelectComboboxModel<T>();\n } else {\n // in theory, setting this again should not cause errors even though we already set it in constructor,\n // since the initial call to writeValue (caused by [ngModel] input) should happen after this\n this.optionSelectionService.selectionModel = new SingleSelectComboboxModel<T>();\n }\n this.optionSelectionService.selectionModel.identityFn = this.optionSelectionService.identityFn;\n this.updateControlValue();\n }\n\n // Override the id of WrappedFormControl, as we want to move it to the embedded input.\n // Otherwise, the label/component connection does not work and screen readers do not read the label.\n override get id() {\n return this.controlIdService.id + '-combobox';\n }\n override set id(id: string) {\n super.id = id;\n }\n\n get searchText(): string {\n return this._searchText;\n }\n set searchText(text: string) {\n // if input text has changed since last time, fire a change event so application can react to it\n if (text !== this._searchText) {\n if (this.popoverService.open) {\n this.optionSelectionService.showAllOptions = false;\n }\n this._searchText = text;\n this.clrInputChange.emit(this.searchText);\n }\n // We need to trigger this even if unchanged, so the option-items directive will update its list\n // based on the \"showAllOptions\" variable which may have changed in the openChange subscription below.\n // The option-items directive does not listen to openChange, but it listens to currentInput changes.\n this.optionSelectionService.currentInput = this.searchText;\n }\n\n get openState(): boolean {\n return this.popoverService.open;\n }\n\n get multiSelectModel(): T[] {\n if (!this.multiSelect) {\n throw Error('multiSelectModel is not available in single selection context');\n }\n return (this.optionSelectionService.selectionModel as MultiSelectComboboxModel<T>).model;\n }\n\n get ariaControls(): string {\n return this.options?.optionsId;\n }\n\n get ariaOwns(): string {\n return this.options?.optionsId;\n }\n\n get ariaDescribedBySelection(): string {\n return 'selection-' + this.id;\n }\n\n get displayField(): string {\n return this.optionSelectionService.displayField;\n }\n\n get showAllText() {\n return this.commonStrings.parse(this.commonStrings.keys.comboboxShowAll, {\n ITEMS: this.multiSelectModel?.length.toString(),\n });\n }\n\n get allSelectedText() {\n return this.commonStrings.parse(this.commonStrings.keys.comboboxAllSelected, {\n ITEMS: this.multiSelectModel?.length.toString(),\n });\n }\n\n get showIndividualPills(): boolean {\n return !this.isTotalSelection || this.selectionExpanded;\n }\n\n get showTruncationToggle(): boolean {\n return (\n this.selectionExpanded ||\n this.isTotalSelection ||\n (this.calculatedLimit !== null && this.calculatedLimit < this.multiSelectModel.length)\n );\n }\n\n private get disabled() {\n return this.control?.disabled;\n }\n\n ngAfterContentInit() {\n this.initializeSubscriptions();\n\n // Initialize with preselected value\n if (!this.optionSelectionService.selectionModel.isEmpty()) {\n this.updateInputValue(this.optionSelectionService.selectionModel);\n }\n }\n\n ngAfterViewInit() {\n this.focusHandler.textInput = this.textbox.nativeElement;\n this.focusHandler.trigger = this.trigger.nativeElement;\n // The text input is the actual element we are wrapping\n // This assignment is needed by the wrapper, so it can set\n // the aria properties on the input element, not on the component.\n\n // We calculate on the initial load to prevent flickering\n this.el = this.textbox;\n if (this.showSelectAll) {\n if (this.multiSelect && this.multiSelectModel?.length > 0) {\n this.calculateLimit();\n }\n this.initialiseObserver();\n }\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n clearSelection() {\n this.focusHandler.focusInput();\n // Clear the array model directly\n this.optionSelectionService.setSelectionValue([]);\n }\n\n @HostListener('keydown', ['$event'])\n onKeyUp(event: KeyboardEvent) {\n // if BACKSPACE in multiselect mode, delete the last pill if text is empty\n if (this.multiSelect) {\n const multiModel: T[] = this.optionSelectionService.selectionModel.model as T[];\n switch (event.key) {\n case Keys.Backspace:\n if (!this._searchText.length) {\n if (multiModel && multiModel.length > 0) {\n const lastItem: T = multiModel[multiModel.length - 1];\n this.control?.control.markAsTouched();\n this.optionSelectionService.unselect(lastItem);\n }\n }\n break;\n case Keys.Enter:\n if (this.editable && this._searchText.length > 0 && this.options.emptyOptions) {\n const parsedInput = this.optionSelectionService.editableResolver(this._searchText);\n this.control?.control.markAsTouched();\n this.optionSelectionService.select(parsedInput);\n this.searchText = '';\n }\n break;\n }\n }\n }\n\n inputId(): string {\n return this.controlIdService.id;\n }\n\n loadingStateChange(state: ClrLoadingState): void {\n this.optionSelectionService.loading = state === ClrLoadingState.LOADING;\n\n if (state !== ClrLoadingState.LOADING && isPlatformBrowser(this.platformId)) {\n setTimeout(() => {\n this.popoverService?.resetPositions();\n });\n this.focusFirstActive();\n }\n }\n\n unselect(item: T) {\n if (!this.disabled) {\n this.optionSelectionService.unselect(item);\n }\n }\n\n onBlur(event) {\n if (!event.relatedTarget || !this.options.el?.nativeElement.contains(event.relatedTarget)) {\n this.onTouchedCallback?.();\n this.triggerValidation();\n this.focused = false;\n }\n }\n\n onFocus() {\n this.focused = true;\n\n // fix for \"expression changed\" error when focus is returned to a combobox after a modal is closed\n // https://github.com/vmware-clarity/ng-clarity/issues/663\n this.cdr.detectChanges();\n }\n\n onChange() {\n if (this.editable && !this.multiSelect && this.options.emptyOptions) {\n const parsedInput = this.optionSelectionService.editableResolver(this._searchText);\n this.optionSelectionService.setSelectionValue(parsedInput);\n }\n }\n\n getSelectionAriaLabel() {\n if (this.containerService && this.containerService.labelText) {\n return `${this.containerService.labelText} ${this.commonStrings.keys.comboboxSelection}`;\n }\n return this.commonStrings.keys.comboboxSelection;\n }\n\n focusFirstActive() {\n setTimeout(() => {\n this.focusHandler.focusFirstActive();\n });\n }\n\n writeValue(value: T | T[]): void {\n this.optionSelectionService.selectionModel.model = value;\n this.updateInputValue(this.optionSelectionService.selectionModel);\n }\n\n registerOnTouched(onTouched: any): void {\n this.onTouchedCallback = onTouched;\n }\n\n registerOnChange(onChange: any): void {\n this.onChangeCallback = onChange;\n }\n\n getActiveDescendant() {\n const model = this.focusHandler.pseudoFocus.model;\n return model ? model.id : this.options?.noResultsElementId;\n }\n\n setDisabledState(): void {\n // do nothing\n }\n\n onWrapperClick(event) {\n if (this.disabled) {\n return;\n }\n this.focusHandler.focusInput();\n if (this.editable || (!this.editable && this.trigger.nativeElement.contains(event.target))) {\n this.popoverService.toggleWithEvent(event);\n }\n }\n\n toggleSelectionExpand() {\n this.selectionExpanded = !this.selectionExpanded;\n if (this.selectionExpanded) {\n this.applyLimit(this.multiSelectModel.length);\n } else {\n this.containerWidthChange.next(this.containerWidth);\n }\n }\n\n private initialiseObserver() {\n const container = this.container ? this.container.el.nativeElement : this.el.nativeElement.parentElement;\n this.containerWidth = container.offsetWidth;\n this.resizeObserver = new ResizeObserver(entries => {\n this.zone.runOutsideAngular(() => {\n entries.forEach(entry => {\n const entryWidth = entry.contentRect.width;\n switch (entry.target) {\n case container:\n if (this.containerWidth !== entryWidth) {\n this.containerWidth = entryWidth;\n this.containerWidthChange.next(entryWidth);\n }\n break;\n case this.wrapper.nativeElement:\n this.containerWidthChange.next(null);\n break;\n }\n });\n });\n });\n this.resizeObserver.observe(container);\n this.resizeObserver.observe(this.wrapper.nativeElement);\n }\n\n private calculateLimit() {\n this.shouldCalculate = true;\n this.cdr.detectChanges();\n if (!this.calculationPills || this.calculationPills.length === 0) {\n this.applyLimit();\n return;\n }\n const pillDimensions = this.calculationPills.map(p => ({\n top: p.nativeElement.offsetTop,\n width: p.nativeElement.offsetWidth,\n left: p.nativeElement.offsetLeft,\n }));\n\n const firstPill = pillDimensions[0];\n const buttonWidth = this.truncationButton?.nativeElement?.offsetWidth || 100;\n const textboxWidth = this.textbox.nativeElement.offsetWidth;\n const expectedWidth = this.containerWidth - textboxWidth - buttonWidth;\n\n let fitCount = 0;\n\n for (const pill of pillDimensions) {\n if (pill.top > firstPill.top || pill.left + pill.width > expectedWidth) {\n break;\n }\n fitCount++;\n }\n this.applyLimit(fitCount);\n }\n\n private applyLimit(limit = undefined) {\n this.zone.run(() => {\n this.calculatedLimit = limit === 0 ? 1 : limit;\n this.shouldCalculate = false;\n this.cdr.markForCheck();\n });\n }\n\n private updateTotalSelection() {\n if (!this.multiSelect || !this.multiSelectModel?.length) {\n this.isTotalSelection = false;\n return;\n }\n // Skip recalculation when items are filtered to zero (e.g. \"no results\")\n // to prevent pills from flashing while typing in the search input.\n if (!this.options?.items?.length) {\n return;\n }\n this.isTotalSelection = this.optionSelectionService.containsAll(this.options.items.map(option => option.value));\n }\n\n private initializeSubscriptions(): void {\n this.subscriptions.push(\n this.optionSelectionService.selectionChanged.subscribe((newSelection: ComboboxModel<T>) => {\n this.updateInputValue(newSelection);\n if (newSelection.isEmpty()) {\n this.selectionExpanded = false;\n this.isTotalSelection = false;\n } else {\n if (!this.multiSelect) {\n this.popoverService.open = false;\n }\n this.updateTotalSelection();\n }\n\n this.updateControlValue();\n if (this.selectionExpanded) {\n this.applyLimit(this.multiSelectModel.length);\n } else {\n this.calculateLimit();\n }\n\n if (this.multiSelect) {\n setTimeout(() => {\n this.popoverService?.updatePosition();\n });\n }\n })\n );\n\n this.subscriptions.push(\n this.popoverService.openChange.subscribe(open => {\n if (this.editable && !this.multiSelect) {\n if (this.searchText) {\n this.optionSelectionService.showAllOptions = false;\n this.optionSelectionService.currentInput = this.searchText;\n }\n return;\n }\n if (open) {\n this.focusFirstActive();\n } else {\n this.optionSelectionService.showAllOptions = true;\n }\n if (this.multiSelect) {\n this.searchText = '';\n } else {\n this.searchText = this.getDisplayNames(this.optionSelectionService.selectionModel.model)[0] || '';\n }\n }),\n this.containerWidthChange.pipe(debounceTime(0)).subscribe(() => {\n if (!this.selectionExpanded && !this.isTotalSelection) {\n this.calculateLimit();\n }\n })\n );\n }\n\n private updateInputValue(model: ComboboxModel<T>) {\n if (!this.multiSelect) {\n this.searchText = model.model ? this.getDisplayNames(model.model)[0] : '';\n if (this.searchText) {\n this.optionSelectionService.currentInput = this.searchText;\n }\n }\n }\n\n private updateControlValue() {\n if (this.onChangeCallback) {\n this.onChangeCallback(this.optionSelectionService.selectionModel.model);\n }\n }\n\n private getDisplayNames(model: T | T[]) {\n if (this.displayField) {\n if (!Array.isArray(model)) {\n model = [model];\n }\n return model.map(item => (item ? (item as any)[this.displayField] : null));\n }\n return [this.optionSelectionService.selectionModel.model];\n }\n}\n","<!--\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<!-- The (click) handler is needed to auto-focus on input field which can not currently occupy the whole\nwidth of the component, after being wrapped to a new line -->\n<div\n #wrapper\n class=\"clr-combobox-wrapper\"\n clrPopoverOrigin\n (click)=\"onWrapperClick($event)\"\n [class.multi]=\"multiSelect\"\n [class.invalid]=\"(control?.control.touched && control?.invalid)\"\n [class.disabled]=\"control?.disabled\"\n>\n @if (multiSelect && multiSelectModel && multiSelectModel.length > 0) {\n <span\n role=\"grid\"\n clrRovingTabindex\n [clrRovingTabindexDisabled]=\"control?.disabled\"\n clrDirection=\"both\"\n [attr.aria-label]=\"getSelectionAriaLabel()\"\n [attr.aria-disabled]=\"control?.disabled? true: null\"\n class=\"clr-combobox-pills\"\n >\n <ng-template #pillTemplate let-item let-i=\"index\">\n <span class=\"label label-combobox-pill\" role=\"row\">\n <span role=\"gridcell\">\n <span class=\"clr-combobox-pill-content\" clrKeyFocusItem>\n @if (optionSelected) {\n <ng-container\n [ngTemplateOutlet]=\"optionSelected.template\"\n [ngTemplateOutletContext]=\"{$implicit: item}\"\n ></ng-container>\n }\n </span>\n </span>\n <span role=\"gridcell\">\n <button\n clrKeyFocusItem\n type=\"button\"\n class=\"clr-combobox-remove-btn\"\n [disabled]=\"control?.disabled ? true : null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxDelete + ' ' + optionSelectionService.selectionModel.toString(displayField, i)\"\n (click)=\"unselect(item)\"\n >\n <cds-icon shape=\"window-close\" size=\"12\"></cds-icon>\n </button>\n </span>\n </span>\n </ng-template>\n\n @if (showSelectAll) { @if (isTotalSelection && !selectionExpanded) {\n <span class=\"label label-combobox-pill\" role=\"row\">\n <span role=\"gridcell\">\n <span class=\"clr-combobox-pill-content\" clrKeyFocusItem>{{ allSelectedText }}</span>\n </span>\n <span role=\"gridcell\">\n <button\n clrKeyFocusItem\n type=\"button\"\n class=\"clr-combobox-remove-btn\"\n (click)=\"clearSelection()\"\n [attr.aria-label]=\"commonStrings.keys.comboboxUnselectAll\"\n >\n <cds-icon shape=\"window-close\" size=\"12\"></cds-icon>\n </button>\n </span>\n </span>\n } @if (showIndividualPills) { @for (item of multiSelectModel | slice:0:calculatedLimit; track item; let i = $index)\n {\n <ng-container\n [ngTemplateOutlet]=\"pillTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: i}\"\n ></ng-container>\n } } @if (showTruncationToggle) {\n <span role=\"row\" class=\"label label-combobox-pill clr-combobox-truncation-row\">\n <span role=\"gridcell\" class=\"clr-combobox-truncation-cell\">\n <span class=\"clr-combobox-pill-content\">\n <button\n #truncationButton\n clrKeyFocusItem\n type=\"button\"\n class=\"btn btn-link clr-combobox-show-more-btn\"\n (click)=\"toggleSelectionExpand()\"\n [attr.aria-expanded]=\"selectionExpanded\"\n [attr.aria-controls]=\"'expanded-selection-' + id\"\n >\n @if (!selectionExpanded) { {{ showAllText }} } @else { {{ commonStrings.keys.comboboxShowLess }} }\n </button>\n </span>\n </span>\n </span>\n } } @else { @for (item of multiSelectModel; track item; let i = $index) {\n <ng-container\n [ngTemplateOutlet]=\"pillTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: i}\"\n ></ng-container>\n } }\n </span>\n\n @if (showSelectAll && shouldCalculate) {\n <span class=\"clr-combobox-pills-calculation\" aria-hidden=\"true\">\n @for (item of multiSelectModel; track item) {\n <span class=\"label label-combobox-pill\" #pill>\n <span class=\"clr-combobox-pill-content\">\n @if (optionSelected) {\n <ng-container\n [ngTemplateOutlet]=\"optionSelected.template\"\n [ngTemplateOutletContext]=\"{$implicit: item}\"\n ></ng-container>\n }\n </span>\n <button type=\"button\" class=\"clr-combobox-remove-btn\" tabindex=\"-1\">\n <cds-icon shape=\"window-close\" size=\"12\"></cds-icon>\n </button>\n </span>\n }\n </span>\n } }\n\n <input\n #textboxInput\n type=\"text\"\n role=\"combobox\"\n [id]=\"inputId()\"\n class=\"clr-input clr-combobox-input\"\n [(ngModel)]=\"searchText\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus()\"\n (change)=\"onChange()\"\n [attr.aria-expanded]=\"openState\"\n [attr.aria-owns]=\"ariaOwns\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n autocomplete=\"off\"\n [attr.aria-invalid]=\"control?.invalid? true: null\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-activedescendant]=\"getActiveDescendant()\"\n [attr.placeholder]=\"placeholder\"\n />\n\n <!-- No click handler, as it uses the handler on the .clr-combobox-wrapper -->\n <button\n #trigger\n type=\"button\"\n class=\"clr-combobox-trigger\"\n tabindex=\"-1\"\n [disabled]=\"control?.disabled || null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxOpen\"\n >\n <cds-icon shape=\"angle\" direction=\"down\"></cds-icon>\n </button>\n\n <div class=\"clr-focus-indicator\" [class.clr-focus]=\"focused\"></div>\n</div>\n\n<!-- Both close handlers are handled manually.\n'outsideClickToClose' has complex handling that's necessary\nto be manual due to the component architecture -->\n<div role=\"dialog\" *clrPopoverContent=\"openState; at popoverPosition; type: popoverType;\">\n <ng-content></ng-content>\n</div>\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { NgForOf, NgForOfContext } from '@angular/common';\nimport {\n Directive,\n DoCheck,\n Input,\n IterableDiffer,\n IterableDiffers,\n OnDestroy,\n TemplateRef,\n TrackByFunction,\n ViewContainerRef,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { OptionSelectionService } from './providers/option-selection.service';\n@Directive({\n selector: '[clrOptionItems][clrOptionItemsOf]',\n standalone: false,\n})\nexport class ClrOptionItems<T> implements DoCheck, OnDestroy {\n private iterableProxy: NgForOf<T>;\n private _rawItems: T[];\n private filteredItems: T[];\n private subscriptions: Subscription[] = [];\n private filter = '';\n private _filterField: string;\n private differ: IterableDiffer<T> | null = null;\n\n constructor(\n public template: TemplateRef<NgForOfContext<T>>,\n private differs: IterableDiffers,\n private optionService: OptionSelectionService<T>,\n vcr: ViewContainerRef\n ) {\n this.iterableProxy = new NgForOf<T>(vcr, template, differs);\n this.subscriptions.push(\n optionService.inputChanged.subscribe(filter => {\n this.filter = filter;\n this.updateItems();\n })\n );\n }\n\n @Input('clrOptionItemsOf')\n set rawItems(items: T[]) {\n this._rawItems = items ? items : [];\n this.updateItems();\n }\n\n @Input('clrOptionItemsTrackBy')\n set trackBy(value: TrackByFunction<T>) {\n this.iterableProxy.ngForTrackBy = value;\n }\n\n @Input('clrOptionItemsField')\n set field(field: string) {\n this._filterField = field;\n this.optionService.displayField = field;\n }\n\n get hasResults() {\n // explicity return `undefined` instead of `false` if the answer is not known\n return this.filteredItems ? this.filteredItems.length : undefined;\n }\n\n ngDoCheck() {\n if (!this.differ) {\n this.differ = this.differs.find(this.filteredItems).create(this.iterableProxy.ngForTrackBy);\n }\n if (this.differ) {\n const changes = this.differ.diff(this.filteredItems);\n if (changes) {\n this.iterableProxy.ngDoCheck();\n }\n }\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n }\n private updateItems() {\n if (!this._rawItems || this.filter === undefined || this.filter === null) {\n return;\n }\n\n const normalizedFilterValue = normalizeValue(this.filter);\n\n if (this.optionService.showAllOptions) {\n this.filteredItems = this._rawItems;\n } else if (this._filterField) {\n this.filteredItems = this._rawItems.filter(item => {\n const objValue = (item as any)[this._filterField];\n return objValue ? normalizeValue(objValue).includes(normalizedFilterValue) : false;\n });\n } else {\n // Filter by all item object values\n this.filteredItems = this._rawItems.filter(item => {\n if (typeof item !== 'object') {\n return normalizeValue(item).includes(normalizedFilterValue);\n }\n const objValues = Object.values(item).filter(value => {\n return value !== null && value !== undefined ? normalizeValue(value).includes(normalizedFilterValue) : false;\n });\n return objValues.length > 0;\n });\n }\n this.iterableProxy.ngForOf = this.filteredItems;\n }\n}\n\nfunction normalizeValue(value: any) {\n return value\n .toString()\n .normalize('NFD')\n .replace(/\\p{Diacritic}/gu, '')\n .toLowerCase();\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, ContentChild, Input } from '@angular/core';\nimport { uniqueIdFactory } from '@clr/angular/utils';\n\nimport { ClrOptionItems } from './option-items.directive';\n\n@Component({\n selector: 'clr-option-group',\n host: {\n '[attr.role]': '\"group\"',\n '[attr.aria-labelledby]': 'labelId',\n '[style.display]': 'clrOptionItems.hasResults ? undefined : \"none\"',\n },\n template: `\n <span [id]=\"labelId\" class=\"clr-option-group-label\" role=\"presentation\">{{ label }}</span>\n <ng-content></ng-content>\n `,\n standalone: false,\n})\nexport class ClrOptionGroup<T> {\n @Input('clrOptionGroupLabel') label: string;\n\n @ContentChild(ClrOptionItems) protected clrOptionItems: ClrOptionItems<T>;\n\n protected labelId = uniqueIdFactory();\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ClrCommonFormsModule } from '@clr/angular/forms/common';\nimport {\n angleIcon,\n ClarityIcons,\n ClrIcon,\n errorStandardIcon,\n successStandardIcon,\n windowCloseIcon,\n} from '@clr/angular/icon';\nimport { ClrPopoverModuleNext } from '@clr/angular/popover/common';\nimport { ClrSpinnerModule } from '@clr/angular/progress/spinner';\nimport { ClrConditionalModule, ClrKeyFocusModule } from '@clr/angular/utils';\n\nimport { ClrCombobox } from './combobox';\nimport { ClrComboboxContainer } from './combobox-container';\nimport { ClrOption } from './option';\nimport { ClrOptionGroup } from './option-group';\nimport { ClrOptionItems } from './option-items.directive';\nimport { ClrOptionSelected } from './option-selected.directive';\nimport { ClrOptions } from './options';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ClrIcon,\n ClrKeyFocusModule,\n ClrCommonFormsModule,\n ClrConditionalModule,\n ClrPopoverModuleNext,\n ClrSpinnerModule,\n ],\n declarations: [\n ClrCombobox,\n ClrComboboxContainer,\n ClrOptions,\n ClrOption,\n ClrOptionGroup,\n ClrOptionSelected,\n ClrOptionItems,\n ],\n exports: [\n ClrCommonFormsModule,\n ClrCombobox,\n ClrComboboxContainer,\n ClrOptions,\n ClrOption,\n ClrOptionGroup,\n ClrOptionSelected,\n ClrConditionalModule,\n ClrOptionItems,\n ],\n})\nexport class ClrComboboxModule {\n constructor() {\n ClarityIcons.addIcons(successStandardIcon, errorStandardIcon, angleIcon, windowCloseIcon);\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './combobox.module';\nexport * from './combobox-container';\nexport * from './combobox';\nexport * from './options';\nexport * from './option';\nexport * from './option-group';\nexport * from './option-items.directive';\nexport * from './option-selected.directive';\nexport { ClrComboboxIdentityFunction, ClrComboboxResolverFunction } from './model/combobox.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.ComboboxContainerService","i3","OptionProxy","i1","i2.ComboboxFocusHandler","i3.OptionSelectionService","i1.OptionSelectionService","i2","i3.ComboboxFocusHandler","i6.ComboboxFocusHandler","i7.ClrComboboxContainer"],"mappings":"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"}