@agorapulse/ui-components 20.4.33 → 21.0.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 (156) hide show
  1. package/agorapulse-ui-components-21.0.1.tgz +0 -0
  2. package/fesm2022/agorapulse-ui-components-action-dropdown.mjs +17 -18
  3. package/fesm2022/agorapulse-ui-components-action-dropdown.mjs.map +1 -1
  4. package/fesm2022/agorapulse-ui-components-add-comment.mjs +3 -3
  5. package/fesm2022/agorapulse-ui-components-autocomplete.mjs +7 -7
  6. package/fesm2022/agorapulse-ui-components-autocomplete.mjs.map +1 -1
  7. package/fesm2022/agorapulse-ui-components-avatar-group.mjs +11 -13
  8. package/fesm2022/agorapulse-ui-components-avatar-group.mjs.map +1 -1
  9. package/fesm2022/agorapulse-ui-components-avatar.mjs +21 -23
  10. package/fesm2022/agorapulse-ui-components-avatar.mjs.map +1 -1
  11. package/fesm2022/agorapulse-ui-components-badge.mjs +3 -3
  12. package/fesm2022/agorapulse-ui-components-button.mjs +15 -15
  13. package/fesm2022/agorapulse-ui-components-button.mjs.map +1 -1
  14. package/fesm2022/agorapulse-ui-components-checkbox.mjs +5 -5
  15. package/fesm2022/agorapulse-ui-components-checkbox.mjs.map +1 -1
  16. package/fesm2022/agorapulse-ui-components-close-button.mjs +7 -7
  17. package/fesm2022/agorapulse-ui-components-close-button.mjs.map +1 -1
  18. package/fesm2022/agorapulse-ui-components-confirm-modal.mjs +3 -3
  19. package/fesm2022/agorapulse-ui-components-counter.mjs +9 -9
  20. package/fesm2022/agorapulse-ui-components-counter.mjs.map +1 -1
  21. package/fesm2022/agorapulse-ui-components-datepicker.mjs +50 -50
  22. package/fesm2022/agorapulse-ui-components-datepicker.mjs.map +1 -1
  23. package/fesm2022/agorapulse-ui-components-directives.mjs +26 -26
  24. package/fesm2022/agorapulse-ui-components-directives.mjs.map +1 -1
  25. package/fesm2022/agorapulse-ui-components-dot-stepper.mjs +3 -3
  26. package/fesm2022/agorapulse-ui-components-dropdown-base.mjs +5 -5
  27. package/fesm2022/agorapulse-ui-components-dropdown-base.mjs.map +1 -1
  28. package/fesm2022/agorapulse-ui-components-filter-chips-list.mjs +22 -22
  29. package/fesm2022/agorapulse-ui-components-filter-chips-list.mjs.map +1 -1
  30. package/fesm2022/agorapulse-ui-components-filter-dropdown.mjs +78 -78
  31. package/fesm2022/agorapulse-ui-components-filter-dropdown.mjs.map +1 -1
  32. package/fesm2022/agorapulse-ui-components-form-field.mjs +3 -3
  33. package/fesm2022/agorapulse-ui-components-form-message.mjs +5 -5
  34. package/fesm2022/agorapulse-ui-components-form-message.mjs.map +1 -1
  35. package/fesm2022/agorapulse-ui-components-icon-button.mjs +5 -5
  36. package/fesm2022/agorapulse-ui-components-icon-button.mjs.map +1 -1
  37. package/fesm2022/agorapulse-ui-components-infobox.mjs +4 -4
  38. package/fesm2022/agorapulse-ui-components-infobox.mjs.map +1 -1
  39. package/fesm2022/agorapulse-ui-components-input-group.mjs +6 -6
  40. package/fesm2022/agorapulse-ui-components-input-search.mjs +9 -9
  41. package/fesm2022/agorapulse-ui-components-input-search.mjs.map +1 -1
  42. package/fesm2022/agorapulse-ui-components-input.mjs +3 -3
  43. package/fesm2022/agorapulse-ui-components-labels-selector.mjs +3 -3
  44. package/fesm2022/agorapulse-ui-components-labels.mjs +6 -6
  45. package/fesm2022/agorapulse-ui-components-legacy-input.mjs +4 -4
  46. package/fesm2022/agorapulse-ui-components-legacy-input.mjs.map +1 -1
  47. package/fesm2022/agorapulse-ui-components-legacy-select.mjs +16 -16
  48. package/fesm2022/agorapulse-ui-components-legacy-select.mjs.map +1 -1
  49. package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs +4 -4
  50. package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs.map +1 -1
  51. package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs +3 -3
  52. package/fesm2022/agorapulse-ui-components-modal.mjs +3 -3
  53. package/fesm2022/agorapulse-ui-components-nav-selector.mjs +148 -148
  54. package/fesm2022/agorapulse-ui-components-nav-selector.mjs.map +1 -1
  55. package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs +6 -6
  56. package/fesm2022/agorapulse-ui-components-notification.mjs +3 -3
  57. package/fesm2022/agorapulse-ui-components-paginator.mjs +8 -8
  58. package/fesm2022/agorapulse-ui-components-paginator.mjs.map +1 -1
  59. package/fesm2022/agorapulse-ui-components-password-input.mjs +3 -3
  60. package/fesm2022/agorapulse-ui-components-phone-number-input.mjs +5 -6
  61. package/fesm2022/agorapulse-ui-components-phone-number-input.mjs.map +1 -1
  62. package/fesm2022/agorapulse-ui-components-popmenu.mjs +10 -10
  63. package/fesm2022/agorapulse-ui-components-radio-button-card.mjs +25 -25
  64. package/fesm2022/agorapulse-ui-components-radio-button-card.mjs.map +1 -1
  65. package/fesm2022/agorapulse-ui-components-radio.mjs +6 -6
  66. package/fesm2022/agorapulse-ui-components-range-slider.mjs +4 -4
  67. package/fesm2022/agorapulse-ui-components-range-slider.mjs.map +1 -1
  68. package/fesm2022/agorapulse-ui-components-segmented-control.mjs +9 -9
  69. package/fesm2022/agorapulse-ui-components-segmented-control.mjs.map +1 -1
  70. package/fesm2022/agorapulse-ui-components-select.mjs +74 -74
  71. package/fesm2022/agorapulse-ui-components-select.mjs.map +1 -1
  72. package/fesm2022/agorapulse-ui-components-selection-dropdown.mjs +33 -33
  73. package/fesm2022/agorapulse-ui-components-selection-dropdown.mjs.map +1 -1
  74. package/fesm2022/agorapulse-ui-components-slide-toggle.mjs +3 -3
  75. package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs +21 -7
  76. package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs.map +1 -1
  77. package/fesm2022/agorapulse-ui-components-social-button.mjs +6 -6
  78. package/fesm2022/agorapulse-ui-components-social-button.mjs.map +1 -1
  79. package/fesm2022/agorapulse-ui-components-split-button.mjs +14 -14
  80. package/fesm2022/agorapulse-ui-components-split-button.mjs.map +1 -1
  81. package/fesm2022/agorapulse-ui-components-status-card.mjs +3 -3
  82. package/fesm2022/agorapulse-ui-components-status.mjs +3 -3
  83. package/fesm2022/agorapulse-ui-components-stepper.mjs +3 -3
  84. package/fesm2022/agorapulse-ui-components-tabs.mjs +25 -24
  85. package/fesm2022/agorapulse-ui-components-tabs.mjs.map +1 -1
  86. package/fesm2022/agorapulse-ui-components-tag.mjs +9 -9
  87. package/fesm2022/agorapulse-ui-components-tag.mjs.map +1 -1
  88. package/fesm2022/agorapulse-ui-components-text-measurement.mjs +3 -3
  89. package/fesm2022/agorapulse-ui-components-textarea.mjs +3 -3
  90. package/fesm2022/agorapulse-ui-components-toggle.mjs +5 -5
  91. package/fesm2022/agorapulse-ui-components-toggle.mjs.map +1 -1
  92. package/fesm2022/agorapulse-ui-components-tooltip.mjs +34 -34
  93. package/fesm2022/agorapulse-ui-components-tooltip.mjs.map +1 -1
  94. package/fesm2022/agorapulse-ui-components.mjs +4 -4
  95. package/package.json +71 -70
  96. package/{button/index.d.ts → types/agorapulse-ui-components-button.d.ts} +1 -1
  97. package/{icon-button/index.d.ts → types/agorapulse-ui-components-icon-button.d.ts} +1 -1
  98. package/{paginator/index.d.ts → types/agorapulse-ui-components-paginator.d.ts} +1 -1
  99. package/{snackbars-thread/index.d.ts → types/agorapulse-ui-components-snackbars-thread.d.ts} +6 -0
  100. package/{social-button/index.d.ts → types/agorapulse-ui-components-social-button.d.ts} +1 -1
  101. package/{split-button/index.d.ts → types/agorapulse-ui-components-split-button.d.ts} +1 -1
  102. package/agorapulse-ui-components-20.4.33.tgz +0 -0
  103. /package/{action-dropdown/index.d.ts → types/agorapulse-ui-components-action-dropdown.d.ts} +0 -0
  104. /package/{add-comment/index.d.ts → types/agorapulse-ui-components-add-comment.d.ts} +0 -0
  105. /package/{autocomplete/index.d.ts → types/agorapulse-ui-components-autocomplete.d.ts} +0 -0
  106. /package/{avatar-group/index.d.ts → types/agorapulse-ui-components-avatar-group.d.ts} +0 -0
  107. /package/{avatar/index.d.ts → types/agorapulse-ui-components-avatar.d.ts} +0 -0
  108. /package/{badge/index.d.ts → types/agorapulse-ui-components-badge.d.ts} +0 -0
  109. /package/{checkbox/index.d.ts → types/agorapulse-ui-components-checkbox.d.ts} +0 -0
  110. /package/{close-button/index.d.ts → types/agorapulse-ui-components-close-button.d.ts} +0 -0
  111. /package/{confirm-modal/index.d.ts → types/agorapulse-ui-components-confirm-modal.d.ts} +0 -0
  112. /package/{counter/index.d.ts → types/agorapulse-ui-components-counter.d.ts} +0 -0
  113. /package/{datepicker/index.d.ts → types/agorapulse-ui-components-datepicker.d.ts} +0 -0
  114. /package/{directives/index.d.ts → types/agorapulse-ui-components-directives.d.ts} +0 -0
  115. /package/{dot-stepper/index.d.ts → types/agorapulse-ui-components-dot-stepper.d.ts} +0 -0
  116. /package/{dropdown-base/index.d.ts → types/agorapulse-ui-components-dropdown-base.d.ts} +0 -0
  117. /package/{filter-chips-list/index.d.ts → types/agorapulse-ui-components-filter-chips-list.d.ts} +0 -0
  118. /package/{filter-dropdown/index.d.ts → types/agorapulse-ui-components-filter-dropdown.d.ts} +0 -0
  119. /package/{form-field/index.d.ts → types/agorapulse-ui-components-form-field.d.ts} +0 -0
  120. /package/{form-message/index.d.ts → types/agorapulse-ui-components-form-message.d.ts} +0 -0
  121. /package/{infobox/index.d.ts → types/agorapulse-ui-components-infobox.d.ts} +0 -0
  122. /package/{input-group/index.d.ts → types/agorapulse-ui-components-input-group.d.ts} +0 -0
  123. /package/{input-search/index.d.ts → types/agorapulse-ui-components-input-search.d.ts} +0 -0
  124. /package/{input/index.d.ts → types/agorapulse-ui-components-input.d.ts} +0 -0
  125. /package/{labels-selector/index.d.ts → types/agorapulse-ui-components-labels-selector.d.ts} +0 -0
  126. /package/{labels/index.d.ts → types/agorapulse-ui-components-labels.d.ts} +0 -0
  127. /package/{legacy/input/index.d.ts → types/agorapulse-ui-components-legacy-input.d.ts} +0 -0
  128. /package/{legacy/select/index.d.ts → types/agorapulse-ui-components-legacy-select.d.ts} +0 -0
  129. /package/{legacy/textarea/index.d.ts → types/agorapulse-ui-components-legacy-textarea.d.ts} +0 -0
  130. /package/{media-display-overlay/index.d.ts → types/agorapulse-ui-components-media-display-overlay.d.ts} +0 -0
  131. /package/{modal/index.d.ts → types/agorapulse-ui-components-modal.d.ts} +0 -0
  132. /package/{nav-selector/testing/index.d.ts → types/agorapulse-ui-components-nav-selector-testing.d.ts} +0 -0
  133. /package/{nav-selector/index.d.ts → types/agorapulse-ui-components-nav-selector.d.ts} +0 -0
  134. /package/{neo-datepicker/index.d.ts → types/agorapulse-ui-components-neo-datepicker.d.ts} +0 -0
  135. /package/{notification/index.d.ts → types/agorapulse-ui-components-notification.d.ts} +0 -0
  136. /package/{password-input/index.d.ts → types/agorapulse-ui-components-password-input.d.ts} +0 -0
  137. /package/{phone-number-input/index.d.ts → types/agorapulse-ui-components-phone-number-input.d.ts} +0 -0
  138. /package/{popmenu/index.d.ts → types/agorapulse-ui-components-popmenu.d.ts} +0 -0
  139. /package/{providers/index.d.ts → types/agorapulse-ui-components-providers.d.ts} +0 -0
  140. /package/{radio-button-card/index.d.ts → types/agorapulse-ui-components-radio-button-card.d.ts} +0 -0
  141. /package/{radio/index.d.ts → types/agorapulse-ui-components-radio.d.ts} +0 -0
  142. /package/{range-slider/index.d.ts → types/agorapulse-ui-components-range-slider.d.ts} +0 -0
  143. /package/{segmented-control/index.d.ts → types/agorapulse-ui-components-segmented-control.d.ts} +0 -0
  144. /package/{select/index.d.ts → types/agorapulse-ui-components-select.d.ts} +0 -0
  145. /package/{selection-dropdown/index.d.ts → types/agorapulse-ui-components-selection-dropdown.d.ts} +0 -0
  146. /package/{slide-toggle/index.d.ts → types/agorapulse-ui-components-slide-toggle.d.ts} +0 -0
  147. /package/{status-card/index.d.ts → types/agorapulse-ui-components-status-card.d.ts} +0 -0
  148. /package/{status/index.d.ts → types/agorapulse-ui-components-status.d.ts} +0 -0
  149. /package/{stepper/index.d.ts → types/agorapulse-ui-components-stepper.d.ts} +0 -0
  150. /package/{tabs/index.d.ts → types/agorapulse-ui-components-tabs.d.ts} +0 -0
  151. /package/{tag/index.d.ts → types/agorapulse-ui-components-tag.d.ts} +0 -0
  152. /package/{text-measurement/index.d.ts → types/agorapulse-ui-components-text-measurement.d.ts} +0 -0
  153. /package/{textarea/index.d.ts → types/agorapulse-ui-components-textarea.d.ts} +0 -0
  154. /package/{toggle/index.d.ts → types/agorapulse-ui-components-toggle.d.ts} +0 -0
  155. /package/{tooltip/index.d.ts → types/agorapulse-ui-components-tooltip.d.ts} +0 -0
  156. /package/{index.d.ts → types/agorapulse-ui-components.d.ts} +0 -0
@@ -18,9 +18,9 @@ import { Subject, debounceTime, distinctUntilChanged, takeUntil } from 'rxjs';
18
18
  class SelectionDropdownTriggerDirective {
19
19
  elementRef = inject((ElementRef));
20
20
  /** Reference to the SelectionDropdown component that this trigger controls */
21
- apSelectionDropdownTrigger = input.required(...(ngDevMode ? [{ debugName: "apSelectionDropdownTrigger" }] : []));
21
+ apSelectionDropdownTrigger = input.required(...(ngDevMode ? [{ debugName: "apSelectionDropdownTrigger" }] : /* istanbul ignore next */ []));
22
22
  /** Prevents the trigger from opening/toggling the dropdown when true */
23
- apSelectionDropdownTriggerDisable = input(false, ...(ngDevMode ? [{ debugName: "apSelectionDropdownTriggerDisable" }] : []));
23
+ apSelectionDropdownTriggerDisable = input(false, ...(ngDevMode ? [{ debugName: "apSelectionDropdownTriggerDisable" }] : /* istanbul ignore next */ []));
24
24
  /** Handles click events to toggle the dropdown */
25
25
  onClick(event) {
26
26
  if (this.apSelectionDropdownTriggerDisable())
@@ -47,10 +47,10 @@ class SelectionDropdownTriggerDirective {
47
47
  break;
48
48
  }
49
49
  }
50
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectionDropdownTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
51
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.18", type: SelectionDropdownTriggerDirective, isStandalone: true, selector: "[apSelectionDropdownTrigger]", inputs: { apSelectionDropdownTrigger: { classPropertyName: "apSelectionDropdownTrigger", publicName: "apSelectionDropdownTrigger", isSignal: true, isRequired: true, transformFunction: null }, apSelectionDropdownTriggerDisable: { classPropertyName: "apSelectionDropdownTriggerDisable", publicName: "apSelectionDropdownTriggerDisable", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick($event)", "keydown": "onKeyDown($event)" } }, ngImport: i0 });
50
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: SelectionDropdownTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
51
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: SelectionDropdownTriggerDirective, isStandalone: true, selector: "[apSelectionDropdownTrigger]", inputs: { apSelectionDropdownTrigger: { classPropertyName: "apSelectionDropdownTrigger", publicName: "apSelectionDropdownTrigger", isSignal: true, isRequired: true, transformFunction: null }, apSelectionDropdownTriggerDisable: { classPropertyName: "apSelectionDropdownTriggerDisable", publicName: "apSelectionDropdownTriggerDisable", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick($event)", "keydown": "onKeyDown($event)" } }, ngImport: i0 });
52
52
  }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectionDropdownTriggerDirective, decorators: [{
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: SelectionDropdownTriggerDirective, decorators: [{
54
54
  type: Directive,
55
55
  args: [{
56
56
  selector: '[apSelectionDropdownTrigger]',
@@ -70,34 +70,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
70
70
  class SelectionDropdownComponent {
71
71
  symbolRegistry = inject(SymbolRegistry);
72
72
  overlay = createDropdownOverlay();
73
- selectionDropdownTemplate = viewChild('selectionDropdownTemplate', ...(ngDevMode ? [{ debugName: "selectionDropdownTemplate" }] : []));
74
- trigger = contentChild('trigger', ...(ngDevMode ? [{ debugName: "trigger" }] : []));
73
+ selectionDropdownTemplate = viewChild('selectionDropdownTemplate', ...(ngDevMode ? [{ debugName: "selectionDropdownTemplate" }] : /* istanbul ignore next */ []));
74
+ trigger = contentChild('trigger', ...(ngDevMode ? [{ debugName: "trigger" }] : /* istanbul ignore next */ []));
75
75
  /** ID for the header button */
76
- headerButtonId = input(...(ngDevMode ? [undefined, { debugName: "headerButtonId" }] : []));
76
+ headerButtonId = input(...(ngDevMode ? [undefined, { debugName: "headerButtonId" }] : /* istanbul ignore next */ []));
77
77
  /** ID for the footer button */
78
- footerButtonId = input(...(ngDevMode ? [undefined, { debugName: "footerButtonId" }] : []));
78
+ footerButtonId = input(...(ngDevMode ? [undefined, { debugName: "footerButtonId" }] : /* istanbul ignore next */ []));
79
79
  /** Array of items to display in the dropdown menu */
80
- items = input([], ...(ngDevMode ? [{ debugName: "items" }] : []));
80
+ items = input([], ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
81
81
  /** Title to display in the header */
82
- title = input(...(ngDevMode ? [undefined, { debugName: "title" }] : []));
82
+ title = input(...(ngDevMode ? [undefined, { debugName: "title" }] : /* istanbul ignore next */ []));
83
83
  /** Text for the footer button */
84
- footerButtonText = input(...(ngDevMode ? [undefined, { debugName: "footerButtonText" }] : []));
84
+ footerButtonText = input(...(ngDevMode ? [undefined, { debugName: "footerButtonText" }] : /* istanbul ignore next */ []));
85
85
  /** Symbol ID for the footer button */
86
- footerButtonSymbolId = input(...(ngDevMode ? [undefined, { debugName: "footerButtonSymbolId" }] : []));
86
+ footerButtonSymbolId = input(...(ngDevMode ? [undefined, { debugName: "footerButtonSymbolId" }] : /* istanbul ignore next */ []));
87
87
  /** Text for the header button */
88
- headerButtonText = input(...(ngDevMode ? [undefined, { debugName: "headerButtonText" }] : []));
88
+ headerButtonText = input(...(ngDevMode ? [undefined, { debugName: "headerButtonText" }] : /* istanbul ignore next */ []));
89
89
  /** Symbol ID for the header button */
90
- headerButtonSymbolId = input(...(ngDevMode ? [undefined, { debugName: "headerButtonSymbolId" }] : []));
90
+ headerButtonSymbolId = input(...(ngDevMode ? [undefined, { debugName: "headerButtonSymbolId" }] : /* istanbul ignore next */ []));
91
91
  /** Placeholder text for the search input */
92
- searchPlaceholderText = input('Search', ...(ngDevMode ? [{ debugName: "searchPlaceholderText" }] : []));
92
+ searchPlaceholderText = input('Search', ...(ngDevMode ? [{ debugName: "searchPlaceholderText" }] : /* istanbul ignore next */ []));
93
93
  /** Text to display when no search results are found */
94
- noSearchResultsText = input('No results found', ...(ngDevMode ? [{ debugName: "noSearchResultsText" }] : []));
94
+ noSearchResultsText = input('No results found', ...(ngDevMode ? [{ debugName: "noSearchResultsText" }] : /* istanbul ignore next */ []));
95
95
  /** Whether to show a backdrop that closes the dropdown when clicked */
96
- showBackdrop = input(true, ...(ngDevMode ? [{ debugName: "showBackdrop" }] : []));
96
+ showBackdrop = input(true, ...(ngDevMode ? [{ debugName: "showBackdrop" }] : /* istanbul ignore next */ []));
97
97
  /** Whether the dropdown is disabled and cannot be opened */
98
- disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
98
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
99
99
  /** Default position for the dropdown relative to the trigger element */
100
- defaultPosition = input('right', ...(ngDevMode ? [{ debugName: "defaultPosition" }] : []));
100
+ defaultPosition = input('right', ...(ngDevMode ? [{ debugName: "defaultPosition" }] : /* istanbul ignore next */ []));
101
101
  /** Emits when the dropdown menu is opened */
102
102
  opened = output();
103
103
  /** Emits when the dropdown menu is closed */
@@ -115,10 +115,10 @@ class SelectionDropdownComponent {
115
115
  * to clear the search and restore the full item list — letting them drive the search
116
116
  * declaratively instead of reaching into the rendered `ap-input-search`.
117
117
  */
118
- searchTerm = model('', ...(ngDevMode ? [{ debugName: "searchTerm" }] : []));
118
+ searchTerm = model('', ...(ngDevMode ? [{ debugName: "searchTerm" }] : /* istanbul ignore next */ []));
119
119
  destroy$ = new Subject();
120
120
  searchTermSubject = new Subject();
121
- inputSearchComponent = viewChild('inputSearchElement', ...(ngDevMode ? [{ debugName: "inputSearchComponent" }] : []));
121
+ inputSearchComponent = viewChild('inputSearchElement', ...(ngDevMode ? [{ debugName: "inputSearchComponent" }] : /* istanbul ignore next */ []));
122
122
  isOpen = this.overlay.isOpen;
123
123
  focusInput = effect(() => {
124
124
  const inputSearch = this.inputSearchComponent();
@@ -127,19 +127,19 @@ class SelectionDropdownComponent {
127
127
  inputSearch.focusInput();
128
128
  }
129
129
  });
130
- }, ...(ngDevMode ? [{ debugName: "focusInput" }] : []));
131
- internalItems = linkedSignal(() => this.items(), ...(ngDevMode ? [{ debugName: "internalItems" }] : []));
132
- filteredItems = signal([], ...(ngDevMode ? [{ debugName: "filteredItems" }] : []));
133
- initiallySelectedItems = signal([], ...(ngDevMode ? [{ debugName: "initiallySelectedItems" }] : []));
130
+ }, ...(ngDevMode ? [{ debugName: "focusInput" }] : /* istanbul ignore next */ []));
131
+ internalItems = linkedSignal(() => this.items(), ...(ngDevMode ? [{ debugName: "internalItems" }] : /* istanbul ignore next */ []));
132
+ filteredItems = signal([], ...(ngDevMode ? [{ debugName: "filteredItems" }] : /* istanbul ignore next */ []));
133
+ initiallySelectedItems = signal([], ...(ngDevMode ? [{ debugName: "initiallySelectedItems" }] : /* istanbul ignore next */ []));
134
134
  // Computed properties for template usage
135
135
  selectedItems = computed(() => {
136
136
  const initiallySelectedIds = this.initiallySelectedItems().map(item => item.htmlId);
137
137
  return this.filteredItems().filter(item => initiallySelectedIds.includes(item.htmlId));
138
- }, ...(ngDevMode ? [{ debugName: "selectedItems" }] : []));
138
+ }, ...(ngDevMode ? [{ debugName: "selectedItems" }] : /* istanbul ignore next */ []));
139
139
  unselectedItems = computed(() => {
140
140
  const initiallySelectedIds = this.initiallySelectedItems().map(item => item.htmlId);
141
141
  return this.filteredItems().filter(item => !initiallySelectedIds.includes(item.htmlId));
142
- }, ...(ngDevMode ? [{ debugName: "unselectedItems" }] : []));
142
+ }, ...(ngDevMode ? [{ debugName: "unselectedItems" }] : /* istanbul ignore next */ []));
143
143
  /**
144
144
  * Unselected items rebuilt into a single ordered list: standalone items and
145
145
  * groups appear in the order their first item is encountered; later items of
@@ -167,7 +167,7 @@ class SelectionDropdownComponent {
167
167
  }
168
168
  }
169
169
  return entries;
170
- }, ...(ngDevMode ? [{ debugName: "displayEntries" }] : []));
170
+ }, ...(ngDevMode ? [{ debugName: "displayEntries" }] : /* istanbul ignore next */ []));
171
171
  // Computed maps for template usage
172
172
  groupSelectionStates = computed(() => {
173
173
  const states = {};
@@ -195,7 +195,7 @@ class SelectionDropdownComponent {
195
195
  }
196
196
  }
197
197
  return states;
198
- }, ...(ngDevMode ? [{ debugName: "groupSelectionStates" }] : []));
198
+ }, ...(ngDevMode ? [{ debugName: "groupSelectionStates" }] : /* istanbul ignore next */ []));
199
199
  constructor() {
200
200
  this.symbolRegistry.withSymbols(...(inject(UI_COMPONENTS_SYMBOLS, { optional: true })?.flat() ?? []));
201
201
  // Set up debounced search
@@ -320,10 +320,10 @@ class SelectionDropdownComponent {
320
320
  const filtered = items.filter(item => item.text.toLowerCase().includes(searchTerm));
321
321
  this.filteredItems.set(filtered);
322
322
  }
323
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectionDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
324
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: SelectionDropdownComponent, isStandalone: true, selector: "ap-selection-dropdown", inputs: { headerButtonId: { classPropertyName: "headerButtonId", publicName: "headerButtonId", isSignal: true, isRequired: false, transformFunction: null }, footerButtonId: { classPropertyName: "footerButtonId", publicName: "footerButtonId", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, footerButtonText: { classPropertyName: "footerButtonText", publicName: "footerButtonText", isSignal: true, isRequired: false, transformFunction: null }, footerButtonSymbolId: { classPropertyName: "footerButtonSymbolId", publicName: "footerButtonSymbolId", isSignal: true, isRequired: false, transformFunction: null }, headerButtonText: { classPropertyName: "headerButtonText", publicName: "headerButtonText", isSignal: true, isRequired: false, transformFunction: null }, headerButtonSymbolId: { classPropertyName: "headerButtonSymbolId", publicName: "headerButtonSymbolId", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholderText: { classPropertyName: "searchPlaceholderText", publicName: "searchPlaceholderText", isSignal: true, isRequired: false, transformFunction: null }, noSearchResultsText: { classPropertyName: "noSearchResultsText", publicName: "noSearchResultsText", isSignal: true, isRequired: false, transformFunction: null }, showBackdrop: { classPropertyName: "showBackdrop", publicName: "showBackdrop", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, defaultPosition: { classPropertyName: "defaultPosition", publicName: "defaultPosition", isSignal: true, isRequired: false, transformFunction: null }, searchTerm: { classPropertyName: "searchTerm", publicName: "searchTerm", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { opened: "opened", closed: "closed", selectionChange: "selectionChange", footerButtonClick: "footerButtonClick", headerButtonClick: "headerButtonClick", searchInputChange: "searchInputChange", searchTerm: "searchTermChange" }, queries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "selectionDropdownTemplate", first: true, predicate: ["selectionDropdownTemplate"], descendants: true, isSignal: true }, { propertyName: "inputSearchComponent", first: true, predicate: ["inputSearchElement"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #selectionDropdownTemplate>\n <div class=\"ap-selection-dropdown__content\">\n <!-- Header -->\n <div class=\"ap-selection-dropdown__header\">\n <div class=\"ap-selection-dropdown__header-top\">\n @if (title()) {\n <h3 class=\"ap-selection-dropdown__title\">\n {{ title() }}\n </h3>\n }\n @if (headerButtonText()) {\n <a\n class=\"standalone\"\n role=\"link\"\n tabindex=\"0\"\n [id]=\"headerButtonId()\"\n (click)=\"onHeaderButtonClick()\"\n (keydown)=\"onHeaderButtonKeydown($event)\">\n <ap-symbol [symbolId]=\"headerButtonSymbolId()\" />\n {{ headerButtonText() }}\n </a>\n }\n </div>\n <ap-input-search\n #inputSearchElement\n [placeholder]=\"searchPlaceholderText()\"\n [clearable]=\"true\"\n [ngModel]=\"searchTerm()\"\n (ngModelChange)=\"onSearchTermChange($event)\" />\n </div>\n\n <!-- Selection dropdown items -->\n <div class=\"ap-selection-dropdown__items\">\n @if (filteredItems().length === 0 && searchTerm()) {\n <div class=\"ap-selection-dropdown__no-results\">\n {{ noSearchResultsText() }}\n </div>\n } @else {\n <!-- Selected items section (at the top) -->\n @if (selectedItems().length > 0) {\n <div class=\"ap-selection-dropdown__selected-section\">\n @for (item of selectedItems(); track item.htmlId) {\n <div [apTooltip]=\"item.disabledTooltip\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"ap-selection-dropdown__item-button\"\n [class.ap-selection-dropdown__item-button--disabled]=\"item.disabled || item.isFeatureLocked\"\n (click)=\"onItemToggle(item)\">\n <ap-dropdown-item-multiple-one-line\n class=\"ap-selection-dropdown__item\"\n [text]=\"item.text\"\n [selected]=\"item.selected\"\n [indeterminate]=\"item.indeterminate ?? false\"\n [htmlId]=\"item.htmlId\"\n [disabled]=\"item.disabled || false\"\n [avatarUrl]=\"item.avatarUrl\"\n [symbolId]=\"item.symbolId\"\n [badgeText]=\"item.badgeText\"\n [isFeatureLocked]=\"item.isFeatureLocked || false\"\n [roundedAvatar]=\"!!item.roundedAvatar\"\n [network]=\"item.network\"\n [symbolColor]=\"item.symbolColor\"\n [symbolTooltipText]=\"item.symbolTooltipText\" />\n </button>\n </div>\n }\n </div>\n }\n\n <!-- Unselected zone: items & groups in first-encounter order -->\n @for (entry of displayEntries(); track entryKey(entry)) {\n @if (entry.kind === 'item') {\n <div [apTooltip]=\"entry.item.disabledTooltip\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"ap-selection-dropdown__item-button\"\n [class.ap-selection-dropdown__item-button--disabled]=\"entry.item.disabled || entry.item.isFeatureLocked\"\n (click)=\"onItemToggle(entry.item)\">\n <ap-dropdown-item-multiple-one-line\n class=\"ap-selection-dropdown__item\"\n [text]=\"entry.item.text\"\n [selected]=\"entry.item.selected\"\n [indeterminate]=\"entry.item.indeterminate ?? false\"\n [htmlId]=\"entry.item.htmlId\"\n [disabled]=\"entry.item.disabled || false\"\n [avatarUrl]=\"entry.item.avatarUrl\"\n [symbolId]=\"entry.item.symbolId\"\n [badgeText]=\"entry.item.badgeText\"\n [isFeatureLocked]=\"entry.item.isFeatureLocked || false\"\n [roundedAvatar]=\"!!entry.item.roundedAvatar\"\n [network]=\"entry.item.network\"\n [symbolColor]=\"entry.item.symbolColor\"\n [symbolTooltipText]=\"entry.item.symbolTooltipText\" />\n </button>\n </div>\n } @else {\n <div class=\"ap-selection-dropdown__group\">\n <!-- Group header with checkbox -->\n <div class=\"ap-selection-dropdown__group-header\">\n <div class=\"ap-selection-dropdown__group-label\">\n <ap-checkbox\n [name]=\"entry.label\"\n [checked]=\"groupSelectionStates()[entry.label] === 'selected'\"\n [indeterminate]=\"groupSelectionStates()[entry.label] === 'partial'\"\n (change)=\"onGroupToggle(entry.label, $event)\">\n {{ entry.label }}\n </ap-checkbox>\n </div>\n </div>\n\n <!-- Group items -->\n @for (item of entry.items; track item.htmlId) {\n <div [apTooltip]=\"item.disabledTooltip\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"ap-selection-dropdown__item-button\"\n [class.ap-selection-dropdown__item-button--disabled]=\"item.disabled || item.isFeatureLocked\"\n (click)=\"onItemToggle(item)\">\n <ap-dropdown-item-multiple-one-line\n class=\"ap-selection-dropdown__item ap-selection-dropdown__item--grouped\"\n [text]=\"item.text\"\n [selected]=\"item.selected\"\n [indeterminate]=\"item.indeterminate ?? false\"\n [htmlId]=\"item.htmlId\"\n [disabled]=\"item.disabled || false\"\n [avatarUrl]=\"item.avatarUrl\"\n [symbolId]=\"item.symbolId\"\n [badgeText]=\"item.badgeText\"\n [isFeatureLocked]=\"item.isFeatureLocked || false\"\n [roundedAvatar]=\"!!item.roundedAvatar\"\n [network]=\"item.network\"\n [symbolColor]=\"item.symbolColor\"\n [symbolTooltipText]=\"item.symbolTooltipText\" />\n </button>\n </div>\n }\n </div>\n }\n }\n }\n </div>\n\n <!-- Footer -->\n @if (footerButtonText()) {\n <div class=\"ap-selection-dropdown__footer\">\n <a\n class=\"standalone\"\n role=\"link\"\n tabindex=\"0\"\n [id]=\"footerButtonId()\"\n (click)=\"onFooterButtonClick()\"\n (keydown)=\"onFooterButtonKeydown($event)\">\n <ap-symbol [symbolId]=\"footerButtonSymbolId()\" />\n {{ footerButtonText() }}\n </a>\n </div>\n }\n </div>\n</ng-template>\n", styles: [":host{display:none}.ap-selection-dropdown__content{background-color:var(--ref-color-white);border-radius:var(--sys-border-radius-sm);box-shadow:0 4px 25px -2px #34456326,0 4px 6px -2px #34456326;overflow:hidden;z-index:1000;width:370px;display:flex;flex-direction:column;max-height:400px}.ap-selection-dropdown__item-button{display:block;width:100%;padding:0;margin:0;border:none;background:transparent;text-align:left;cursor:pointer;outline:none}.ap-selection-dropdown__item-button:hover{background-color:var(--ref-color-electric-blue-10)}.ap-selection-dropdown__item-button:active{background-color:var(--ref-color-electric-blue-20)}.ap-selection-dropdown__item-button:focus{outline:none}.ap-selection-dropdown__item-button:focus-visible{outline:none}.ap-selection-dropdown__item-button.ap-selection-dropdown__item-button--disabled{pointer-events:none}.ap-selection-dropdown__item{display:flex;align-items:center;width:100%;min-height:40px;padding:var(--ref-spacing-xxs) var(--ref-spacing-sm);background:transparent;cursor:pointer;font-family:Averta}.ap-selection-dropdown__group-header{display:flex;align-items:center;padding:var(--ref-spacing-xxs) var(--ref-spacing-sm);border-top:1px solid var(--ref-color-grey-10);background:var(--ref-color-grey-bg)}.ap-selection-dropdown__group-label{display:flex;align-items:center;flex:1;font-weight:700;color:var(--ref-color-grey-100)}.ap-selection-dropdown__group-label ap-checkbox{--comp-forms-label-font-weight: 700}.ap-selection-dropdown__header{border-bottom:1px solid var(--ref-color-grey-10);flex-shrink:0;display:flex;flex-direction:column}.ap-selection-dropdown__header .ap-selection-dropdown__header-top{display:flex;align-items:center;justify-content:space-between;padding:var(--ref-spacing-xs) var(--ref-spacing-sm)}.ap-selection-dropdown__header .ap-selection-dropdown__title{margin:0;font-size:var(--ref-font-size-md);font-weight:var(--ref-font-weight-bold);color:var(--ref-color-grey-100);flex:1}.ap-selection-dropdown__header ap-input-search{width:100%;padding:0 var(--ref-spacing-xxs) var(--ref-spacing-xxs)}.ap-selection-dropdown__items{padding:var(--ref-spacing-xxs) 0;flex:1;overflow-y:auto;min-height:0}.ap-selection-dropdown__no-results{padding:var(--ref-spacing-xxs) var(--ref-spacing-sm);color:var(--ref-color-grey-80);font-size:var(--ref-font-size-sm);font-style:italic}.ap-selection-dropdown__footer{height:40px;padding:var(--ref-spacing-xs) var(--ref-spacing-sm);border-top:1px solid var(--ref-color-grey-10);flex-shrink:0;display:flex;align-items:center;justify-content:flex-start}.ap-selection-dropdown__selected-section{margin-bottom:var(--ref-spacing-xxs);border-bottom:1px solid var(--ref-color-grey-10);padding-bottom:var(--ref-spacing-xxs)}.ap-selection-dropdown__selected-section ::ng-deep ap-checkbox{--comp-forms-label-font-weight: 700}\n"], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "ap-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "disabled", "indeterminate", "checked", "required", "name"], outputs: ["change"] }, { kind: "component", type: DropdownItemMultipleOneLineComponent, selector: "ap-dropdown-item-multiple-one-line", inputs: ["text", "selected", "indeterminate", "htmlId", "disabled", "avatarUrl", "symbolId", "disabledTooltip", "badgeText", "dividerEnabled", "onlyEnabled", "onlyText", "isFeatureLocked", "roundedAvatar", "network", "symbolColor", "symbolTooltipText"], outputs: ["selectOnly", "selectionChange", "lockedFeatureClicked"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: InputSearchComponent, selector: "ap-input-search", inputs: ["id", "placeholder", "clearable"], outputs: ["focus", "blur", "keyup"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }, { kind: "directive", type: TooltipDirective, selector: "[apTooltip]", inputs: ["apTooltip", "apTooltipPosition", "apTooltipShowDelay", "apTooltipHideDelay", "apTooltipDuration", "apTooltipDisabled", "apTooltipTruncatedTextOnly", "apTooltipTemplateContext", "apTooltipVirtualScrollElement", "apTooltipTrigger", "apTooltipType", "apTooltipPresentationContext", "apTooltipListItems", "apTooltipShowAvatarCaption"], exportAs: ["apTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
323
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: SelectionDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
324
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.16", type: SelectionDropdownComponent, isStandalone: true, selector: "ap-selection-dropdown", inputs: { headerButtonId: { classPropertyName: "headerButtonId", publicName: "headerButtonId", isSignal: true, isRequired: false, transformFunction: null }, footerButtonId: { classPropertyName: "footerButtonId", publicName: "footerButtonId", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, footerButtonText: { classPropertyName: "footerButtonText", publicName: "footerButtonText", isSignal: true, isRequired: false, transformFunction: null }, footerButtonSymbolId: { classPropertyName: "footerButtonSymbolId", publicName: "footerButtonSymbolId", isSignal: true, isRequired: false, transformFunction: null }, headerButtonText: { classPropertyName: "headerButtonText", publicName: "headerButtonText", isSignal: true, isRequired: false, transformFunction: null }, headerButtonSymbolId: { classPropertyName: "headerButtonSymbolId", publicName: "headerButtonSymbolId", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholderText: { classPropertyName: "searchPlaceholderText", publicName: "searchPlaceholderText", isSignal: true, isRequired: false, transformFunction: null }, noSearchResultsText: { classPropertyName: "noSearchResultsText", publicName: "noSearchResultsText", isSignal: true, isRequired: false, transformFunction: null }, showBackdrop: { classPropertyName: "showBackdrop", publicName: "showBackdrop", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, defaultPosition: { classPropertyName: "defaultPosition", publicName: "defaultPosition", isSignal: true, isRequired: false, transformFunction: null }, searchTerm: { classPropertyName: "searchTerm", publicName: "searchTerm", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { opened: "opened", closed: "closed", selectionChange: "selectionChange", footerButtonClick: "footerButtonClick", headerButtonClick: "headerButtonClick", searchInputChange: "searchInputChange", searchTerm: "searchTermChange" }, queries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "selectionDropdownTemplate", first: true, predicate: ["selectionDropdownTemplate"], descendants: true, isSignal: true }, { propertyName: "inputSearchComponent", first: true, predicate: ["inputSearchElement"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #selectionDropdownTemplate>\n <div class=\"ap-selection-dropdown__content\">\n <!-- Header -->\n <div class=\"ap-selection-dropdown__header\">\n <div class=\"ap-selection-dropdown__header-top\">\n @if (title()) {\n <h3 class=\"ap-selection-dropdown__title\">\n {{ title() }}\n </h3>\n }\n @if (headerButtonText()) {\n <a\n class=\"standalone\"\n role=\"link\"\n tabindex=\"0\"\n [id]=\"headerButtonId()\"\n (click)=\"onHeaderButtonClick()\"\n (keydown)=\"onHeaderButtonKeydown($event)\">\n <ap-symbol [symbolId]=\"headerButtonSymbolId()\" />\n {{ headerButtonText() }}\n </a>\n }\n </div>\n <ap-input-search\n #inputSearchElement\n [placeholder]=\"searchPlaceholderText()\"\n [clearable]=\"true\"\n [ngModel]=\"searchTerm()\"\n (ngModelChange)=\"onSearchTermChange($event)\" />\n </div>\n\n <!-- Selection dropdown items -->\n <div class=\"ap-selection-dropdown__items\">\n @if (filteredItems().length === 0 && searchTerm()) {\n <div class=\"ap-selection-dropdown__no-results\">\n {{ noSearchResultsText() }}\n </div>\n } @else {\n <!-- Selected items section (at the top) -->\n @if (selectedItems().length > 0) {\n <div class=\"ap-selection-dropdown__selected-section\">\n @for (item of selectedItems(); track item.htmlId) {\n <div [apTooltip]=\"item.disabledTooltip\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"ap-selection-dropdown__item-button\"\n [class.ap-selection-dropdown__item-button--disabled]=\"item.disabled || item.isFeatureLocked\"\n (click)=\"onItemToggle(item)\">\n <ap-dropdown-item-multiple-one-line\n class=\"ap-selection-dropdown__item\"\n [text]=\"item.text\"\n [selected]=\"item.selected\"\n [indeterminate]=\"item.indeterminate ?? false\"\n [htmlId]=\"item.htmlId\"\n [disabled]=\"item.disabled || false\"\n [avatarUrl]=\"item.avatarUrl\"\n [symbolId]=\"item.symbolId\"\n [badgeText]=\"item.badgeText\"\n [isFeatureLocked]=\"item.isFeatureLocked || false\"\n [roundedAvatar]=\"!!item.roundedAvatar\"\n [network]=\"item.network\"\n [symbolColor]=\"item.symbolColor\"\n [symbolTooltipText]=\"item.symbolTooltipText\" />\n </button>\n </div>\n }\n </div>\n }\n\n <!-- Unselected zone: items & groups in first-encounter order -->\n @for (entry of displayEntries(); track entryKey(entry)) {\n @if (entry.kind === 'item') {\n <div [apTooltip]=\"entry.item.disabledTooltip\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"ap-selection-dropdown__item-button\"\n [class.ap-selection-dropdown__item-button--disabled]=\"entry.item.disabled || entry.item.isFeatureLocked\"\n (click)=\"onItemToggle(entry.item)\">\n <ap-dropdown-item-multiple-one-line\n class=\"ap-selection-dropdown__item\"\n [text]=\"entry.item.text\"\n [selected]=\"entry.item.selected\"\n [indeterminate]=\"entry.item.indeterminate ?? false\"\n [htmlId]=\"entry.item.htmlId\"\n [disabled]=\"entry.item.disabled || false\"\n [avatarUrl]=\"entry.item.avatarUrl\"\n [symbolId]=\"entry.item.symbolId\"\n [badgeText]=\"entry.item.badgeText\"\n [isFeatureLocked]=\"entry.item.isFeatureLocked || false\"\n [roundedAvatar]=\"!!entry.item.roundedAvatar\"\n [network]=\"entry.item.network\"\n [symbolColor]=\"entry.item.symbolColor\"\n [symbolTooltipText]=\"entry.item.symbolTooltipText\" />\n </button>\n </div>\n } @else {\n <div class=\"ap-selection-dropdown__group\">\n <!-- Group header with checkbox -->\n <div class=\"ap-selection-dropdown__group-header\">\n <div class=\"ap-selection-dropdown__group-label\">\n <ap-checkbox\n [name]=\"entry.label\"\n [checked]=\"groupSelectionStates()[entry.label] === 'selected'\"\n [indeterminate]=\"groupSelectionStates()[entry.label] === 'partial'\"\n (change)=\"onGroupToggle(entry.label, $event)\">\n {{ entry.label }}\n </ap-checkbox>\n </div>\n </div>\n\n <!-- Group items -->\n @for (item of entry.items; track item.htmlId) {\n <div [apTooltip]=\"item.disabledTooltip\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"ap-selection-dropdown__item-button\"\n [class.ap-selection-dropdown__item-button--disabled]=\"item.disabled || item.isFeatureLocked\"\n (click)=\"onItemToggle(item)\">\n <ap-dropdown-item-multiple-one-line\n class=\"ap-selection-dropdown__item ap-selection-dropdown__item--grouped\"\n [text]=\"item.text\"\n [selected]=\"item.selected\"\n [indeterminate]=\"item.indeterminate ?? false\"\n [htmlId]=\"item.htmlId\"\n [disabled]=\"item.disabled || false\"\n [avatarUrl]=\"item.avatarUrl\"\n [symbolId]=\"item.symbolId\"\n [badgeText]=\"item.badgeText\"\n [isFeatureLocked]=\"item.isFeatureLocked || false\"\n [roundedAvatar]=\"!!item.roundedAvatar\"\n [network]=\"item.network\"\n [symbolColor]=\"item.symbolColor\"\n [symbolTooltipText]=\"item.symbolTooltipText\" />\n </button>\n </div>\n }\n </div>\n }\n }\n }\n </div>\n\n <!-- Footer -->\n @if (footerButtonText()) {\n <div class=\"ap-selection-dropdown__footer\">\n <a\n class=\"standalone\"\n role=\"link\"\n tabindex=\"0\"\n [id]=\"footerButtonId()\"\n (click)=\"onFooterButtonClick()\"\n (keydown)=\"onFooterButtonKeydown($event)\">\n <ap-symbol [symbolId]=\"footerButtonSymbolId()\" />\n {{ footerButtonText() }}\n </a>\n </div>\n }\n </div>\n</ng-template>\n", styles: [":host{display:none}.ap-selection-dropdown__content{background-color:var(--ref-color-white);border-radius:var(--sys-border-radius-sm);box-shadow:0 4px 25px -2px #34456326,0 4px 6px -2px #34456326;overflow:hidden;z-index:1000;width:370px;display:flex;flex-direction:column;max-height:400px}.ap-selection-dropdown__item-button{display:block;width:100%;padding:0;margin:0;border:none;background:transparent;text-align:left;cursor:pointer;outline:none}.ap-selection-dropdown__item-button:hover{background-color:var(--ref-color-electric-blue-10)}.ap-selection-dropdown__item-button:active{background-color:var(--ref-color-electric-blue-20)}.ap-selection-dropdown__item-button:focus{outline:none}.ap-selection-dropdown__item-button:focus-visible{outline:none}.ap-selection-dropdown__item-button.ap-selection-dropdown__item-button--disabled{pointer-events:none}.ap-selection-dropdown__item{display:flex;align-items:center;width:100%;min-height:40px;padding:var(--ref-spacing-xxs) var(--ref-spacing-sm);background:transparent;cursor:pointer;font-family:Averta}.ap-selection-dropdown__group-header{display:flex;align-items:center;padding:var(--ref-spacing-xxs) var(--ref-spacing-sm);border-top:1px solid var(--ref-color-grey-10);background:var(--ref-color-grey-bg)}.ap-selection-dropdown__group-label{display:flex;align-items:center;flex:1;font-weight:700;color:var(--ref-color-grey-100)}.ap-selection-dropdown__group-label ap-checkbox{--comp-forms-label-font-weight: 700}.ap-selection-dropdown__header{border-bottom:1px solid var(--ref-color-grey-10);flex-shrink:0;display:flex;flex-direction:column}.ap-selection-dropdown__header .ap-selection-dropdown__header-top{display:flex;align-items:center;justify-content:space-between;padding:var(--ref-spacing-xs) var(--ref-spacing-sm)}.ap-selection-dropdown__header .ap-selection-dropdown__title{margin:0;font-size:var(--ref-font-size-md);font-weight:var(--ref-font-weight-bold);color:var(--ref-color-grey-100);flex:1}.ap-selection-dropdown__header ap-input-search{width:100%;padding:0 var(--ref-spacing-xxs) var(--ref-spacing-xxs)}.ap-selection-dropdown__items{padding:var(--ref-spacing-xxs) 0;flex:1;overflow-y:auto;min-height:0}.ap-selection-dropdown__no-results{padding:var(--ref-spacing-xxs) var(--ref-spacing-sm);color:var(--ref-color-grey-80);font-size:var(--ref-font-size-sm);font-style:italic}.ap-selection-dropdown__footer{height:40px;padding:var(--ref-spacing-xs) var(--ref-spacing-sm);border-top:1px solid var(--ref-color-grey-10);flex-shrink:0;display:flex;align-items:center;justify-content:flex-start}.ap-selection-dropdown__selected-section{margin-bottom:var(--ref-spacing-xxs);border-bottom:1px solid var(--ref-color-grey-10);padding-bottom:var(--ref-spacing-xxs)}.ap-selection-dropdown__selected-section ::ng-deep ap-checkbox{--comp-forms-label-font-weight: 700}\n"], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "ap-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "disabled", "indeterminate", "checked", "required", "name"], outputs: ["change"] }, { kind: "component", type: DropdownItemMultipleOneLineComponent, selector: "ap-dropdown-item-multiple-one-line", inputs: ["text", "selected", "indeterminate", "htmlId", "disabled", "avatarUrl", "symbolId", "disabledTooltip", "badgeText", "dividerEnabled", "onlyEnabled", "onlyText", "isFeatureLocked", "roundedAvatar", "network", "symbolColor", "symbolTooltipText"], outputs: ["selectOnly", "selectionChange", "lockedFeatureClicked"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: InputSearchComponent, selector: "ap-input-search", inputs: ["id", "placeholder", "clearable"], outputs: ["focus", "blur", "keyup"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }, { kind: "directive", type: TooltipDirective, selector: "[apTooltip]", inputs: ["apTooltip", "apTooltipPosition", "apTooltipShowDelay", "apTooltipHideDelay", "apTooltipDuration", "apTooltipDisabled", "apTooltipTruncatedTextOnly", "apTooltipTemplateContext", "apTooltipVirtualScrollElement", "apTooltipTrigger", "apTooltipType", "apTooltipPresentationContext", "apTooltipListItems", "apTooltipShowAvatarCaption"], exportAs: ["apTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
325
325
  }
326
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectionDropdownComponent, decorators: [{
326
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: SelectionDropdownComponent, decorators: [{
327
327
  type: Component,
328
328
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-selection-dropdown', imports: [
329
329
  CheckboxComponent,
@@ -1 +1 @@
1
- {"version":3,"file":"agorapulse-ui-components-selection-dropdown.mjs","sources":["../../../libs/ui-components/selection-dropdown/src/selection-dropdown-trigger.directive.ts","../../../libs/ui-components/selection-dropdown/src/selection-dropdown.component.ts","../../../libs/ui-components/selection-dropdown/src/selection-dropdown.component.html","../../../libs/ui-components/selection-dropdown/src/agorapulse-ui-components-selection-dropdown.ts"],"sourcesContent":["import { Directive, ElementRef, HostListener, inject, input } from '@angular/core';\nimport { SelectionDropdownComponent } from './selection-dropdown.component';\n\n/**\n * Directive that turns any element into a trigger for a SelectionDropdown component.\n * Handles click and keyboard interactions to open/close the dropdown.\n */\n@Directive({\n selector: '[apSelectionDropdownTrigger]',\n})\nexport class SelectionDropdownTriggerDirective {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n /** Reference to the SelectionDropdown component that this trigger controls */\n apSelectionDropdownTrigger = input.required<SelectionDropdownComponent>();\n\n /** Prevents the trigger from opening/toggling the dropdown when true */\n apSelectionDropdownTriggerDisable = input(false);\n\n /** Handles click events to toggle the dropdown */\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n if (this.apSelectionDropdownTriggerDisable()) return;\n\n event.preventDefault();\n event.stopPropagation();\n\n this.apSelectionDropdownTrigger().toggle(this.elementRef.nativeElement);\n }\n\n /** Handles keyboard events for accessibility (Enter, Space, Arrow Down, Escape) */\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent): void {\n const dropdown = this.apSelectionDropdownTrigger();\n\n switch (event.key) {\n case 'Enter':\n case ' ':\n case 'ArrowDown':\n if (this.apSelectionDropdownTriggerDisable()) return;\n event.preventDefault();\n dropdown.open(this.elementRef.nativeElement);\n break;\n\n case 'Escape':\n event.preventDefault();\n dropdown.close();\n break;\n }\n }\n}\n","import { CheckboxComponent } from '@agorapulse/ui-components/checkbox';\nimport { createDropdownOverlay, DropdownOverlay } from '@agorapulse/ui-components/dropdown-base';\nimport { InputSearchComponent } from '@agorapulse/ui-components/input-search';\nimport { UI_COMPONENTS_SYMBOLS } from '@agorapulse/ui-components/providers';\nimport { DropdownItemMultipleOneLineComponent } from '@agorapulse/ui-components/select';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n inject,\n input,\n linkedSignal,\n model,\n OnDestroy,\n output,\n signal,\n TemplateRef, untracked,\n viewChild,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { debounceTime, distinctUntilChanged, Subject, takeUntil } from 'rxjs';\n\nexport interface SelectionDropdownItem {\n /** Unique HTML ID for the item */\n htmlId: string;\n /** Display text for the item */\n text: string;\n /** Whether the item is selected */\n selected: boolean;\n /** Whether the item is displayed in a mixed/indeterminate state. Takes visual precedence over `selected`. */\n indeterminate?: boolean;\n /** Whether the item is disabled and non-interactive */\n disabled?: boolean;\n /** Avatar URL to display */\n avatarUrl?: string;\n /** Symbol ID to display */\n symbolId?: string;\n /** Tooltip text displayed when item is disabled */\n disabledTooltip?: string;\n /** Text displayed in a badge next to the item */\n badgeText?: string;\n /** Whether the feature is locked */\n isFeatureLocked?: boolean;\n /** Whether avatar should be rounded */\n roundedAvatar?: boolean;\n /** Avatar network type */\n network?: any;\n /** Symbol color */\n symbolColor?: string;\n /** Symbol tooltip text */\n symbolTooltipText?: string;\n /** Group label - items with the same groupLabel will be grouped together */\n groupLabel?: string;\n}\n\n/**\n * One rendered row in the unselected zone: either a standalone item or a group\n * holding the items that belong to it (in first-encounter order).\n */\ntype RenderEntry =\n | { kind: 'item'; item: SelectionDropdownItem }\n | { kind: 'group'; label: string; items: SelectionDropdownItem[] };\n\n/**\n * A dropdown component that displays a list of selectable items with checkboxes,\n * badges, tooltips, and keyboard navigation.\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-selection-dropdown',\n templateUrl: './selection-dropdown.component.html',\n styleUrls: ['./selection-dropdown.component.scss'],\n imports: [\n CheckboxComponent,\n DropdownItemMultipleOneLineComponent,\n FormsModule,\n InputSearchComponent,\n SymbolComponent,\n TooltipDirective,\n ],\n})\nexport class SelectionDropdownComponent implements DropdownOverlay, OnDestroy {\n private readonly symbolRegistry = inject(SymbolRegistry);\n private readonly overlay = createDropdownOverlay();\n\n selectionDropdownTemplate = viewChild<TemplateRef<unknown>>('selectionDropdownTemplate');\n trigger = contentChild<TemplateRef<unknown>>('trigger');\n\n /** ID for the header button */\n headerButtonId = input<string>();\n /** ID for the footer button */\n footerButtonId = input<string>();\n /** Array of items to display in the dropdown menu */\n items = input<SelectionDropdownItem[]>([]);\n /** Title to display in the header */\n title = input<string>();\n /** Text for the footer button */\n footerButtonText = input<string>();\n /** Symbol ID for the footer button */\n footerButtonSymbolId = input<string>();\n /** Text for the header button */\n headerButtonText = input<string>();\n /** Symbol ID for the header button */\n headerButtonSymbolId = input<string>();\n /** Placeholder text for the search input */\n searchPlaceholderText = input('Search');\n /** Text to display when no search results are found */\n noSearchResultsText = input('No results found');\n\n /** Whether to show a backdrop that closes the dropdown when clicked */\n showBackdrop = input(true);\n /** Whether the dropdown is disabled and cannot be opened */\n disabled = input(false);\n /** Default position for the dropdown relative to the trigger element */\n defaultPosition = input<'right' | 'left'>('right');\n\n /** Emits when the dropdown menu is opened */\n opened = output<void>();\n /** Emits when the dropdown menu is closed */\n closed = output<void>();\n /** Emits when a dropdown item selection changes */\n selectionChange = output<SelectionDropdownItem[]>();\n /** Emits when the footer button is clicked */\n footerButtonClick = output<void>();\n /** Emits when the header button is clicked */\n headerButtonClick = output<void>();\n /** Emits when the search input is changed */\n searchInputChange = output<string>();\n\n /**\n * Two-way bindable, clearable search term. Consumers can read it and reset it (set to '')\n * to clear the search and restore the full item list — letting them drive the search\n * declaratively instead of reaching into the rendered `ap-input-search`.\n */\n readonly searchTerm = model<string>('');\n\n private readonly destroy$ = new Subject<void>();\n private readonly searchTermSubject = new Subject<string>();\n\n protected readonly inputSearchComponent = viewChild<InputSearchComponent>('inputSearchElement');\n\n readonly isOpen = this.overlay.isOpen;\n\n focusInput = effect(() => {\n const inputSearch = this.inputSearchComponent();\n untracked(() => {\n if (this.isOpen() && inputSearch) {\n inputSearch.focusInput();\n }\n })\n })\n\n private readonly internalItems = linkedSignal(() => this.items());\n\n protected readonly filteredItems = signal<SelectionDropdownItem[]>([]);\n protected readonly initiallySelectedItems = signal<SelectionDropdownItem[]>([]);\n\n // Computed properties for template usage\n protected readonly selectedItems = computed(() => {\n const initiallySelectedIds = this.initiallySelectedItems().map(item => item.htmlId);\n return this.filteredItems().filter(item => initiallySelectedIds.includes(item.htmlId));\n });\n\n protected readonly unselectedItems = computed(() => {\n const initiallySelectedIds = this.initiallySelectedItems().map(item => item.htmlId);\n return this.filteredItems().filter(item => !initiallySelectedIds.includes(item.htmlId));\n });\n\n /**\n * Unselected items rebuilt into a single ordered list: standalone items and\n * groups appear in the order their first item is encountered; later items of\n * an already-seen group join that existing group entry.\n */\n protected readonly displayEntries = computed<RenderEntry[]>(() => {\n const entries: RenderEntry[] = [];\n const groupsByLabel = new Map<string, Extract<RenderEntry, { kind: 'group' }>>();\n\n for (const item of this.unselectedItems()) {\n const label = item.groupLabel;\n if (!label) {\n entries.push({ kind: 'item', item });\n continue;\n }\n\n const existing = groupsByLabel.get(label);\n if (existing) {\n // `existing` is the same object reference already pushed into `entries`,\n // so mutating its items array updates the rendered group in place.\n existing.items.push(item);\n } else {\n const group: Extract<RenderEntry, { kind: 'group' }> = { kind: 'group', label, items: [item] };\n groupsByLabel.set(label, group);\n entries.push(group);\n }\n }\n\n return entries;\n });\n\n // Computed maps for template usage\n protected readonly groupSelectionStates = computed(() => {\n const states: Record<string, 'selected' | 'partial' | 'unselected'> = {};\n for (const entry of this.displayEntries()) {\n if (entry.kind !== 'group') {\n continue;\n }\n const groupLabel = entry.label;\n const groupItems = this.filteredItems().filter(item => item.groupLabel === groupLabel);\n // Selection is counted across all members: a disabled item can still be selected, and\n // excluding it would wrongly drop the group to \"unselected\" despite a live selection.\n const hasSelection = groupItems.some(item => item.selected);\n const hasIndeterminate = groupItems.some(item => item.indeterminate);\n // \"Fully selected\" ignores members that cannot be toggled on (a disabled, unselected\n // item), so a group whose every selectable member is selected still reads as selected.\n const hasPendingSelectable = groupItems.some(item => !item.selected && !item.disabled && !item.isFeatureLocked);\n\n if (!hasSelection && !hasIndeterminate) {\n states[groupLabel] = 'unselected';\n } else if (!hasPendingSelectable && !hasIndeterminate) {\n states[groupLabel] = 'selected';\n } else {\n states[groupLabel] = 'partial';\n }\n }\n return states;\n });\n\n constructor() {\n this.symbolRegistry.withSymbols(...(inject(UI_COMPONENTS_SYMBOLS, { optional: true })?.flat() ?? []));\n\n // Set up debounced search\n this.searchTermSubject.pipe(debounceTime(100), distinctUntilChanged(), takeUntil(this.destroy$)).subscribe(term => {\n const items = this.internalItems();\n this.updateFilteredItems(term?.toLowerCase() ?? '', items);\n });\n\n // Feed the debounced filter pipeline from the search term signal, so the list re-filters\n // both on user typing and on an external set (a consumer resetting searchTerm to '').\n effect(() => this.searchTermSubject.next(this.searchTerm() ?? ''));\n\n // Initialize filtered items when items change\n effect(() => {\n const items = this.internalItems();\n if (!this.searchTerm()) {\n this.filteredItems.set(items);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n /** Opens the dropdown menu at the specified trigger element */\n open(triggerElement?: HTMLElement): void {\n const template = this.selectionDropdownTemplate();\n if (this.disabled() || this.isOpen() || !template) return;\n\n this.overlay.open(template, triggerElement, {\n showBackdrop: this.showBackdrop(),\n defaultPosition: this.defaultPosition(),\n onClose: () => this.close(),\n });\n\n // Capture initially selected items as a static snapshot\n const selectedItems = this.internalItems().filter(item => item.selected);\n this.initiallySelectedItems.set(selectedItems);\n\n this.opened.emit();\n }\n\n /** Closes the dropdown menu and cleans up overlay resources */\n close(): void {\n if (!this.isOpen()) return;\n this.initiallySelectedItems.set([]);\n this.overlay.close();\n this.closed.emit();\n }\n\n /** Toggles the dropdown menu open or closed state */\n toggle(triggerElement?: HTMLElement): void {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open(triggerElement);\n }\n }\n\n /** Handles item toggle events, updating selection and emitting changes.\n * An indeterminate item resolves to selected; a definite item flips. Toggling always\n * clears the indeterminate flag, so the item becomes a definite selected/unselected. */\n onItemToggle(item: SelectionDropdownItem): void {\n if (item.disabled || item.isFeatureLocked) {\n return;\n }\n\n const nextSelected = item.indeterminate ? true : !item.selected;\n const resolve = (i: SelectionDropdownItem): SelectionDropdownItem =>\n i.htmlId === item.htmlId ? { ...i, selected: nextSelected, indeterminate: false } : i;\n\n const updatedItems = this.internalItems().map(resolve);\n this.internalItems.set(updatedItems);\n this.selectionChange.emit(updatedItems);\n\n // Keep the filtered view in sync with the toggled item.\n this.filteredItems.update(items => items.map(resolve));\n }\n\n /** Handles footer button clicks */\n onFooterButtonClick(): void {\n this.footerButtonClick.emit();\n }\n\n /** Handles footer button keyboard events */\n onFooterButtonKeydown(event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.footerButtonClick.emit();\n }\n }\n\n /** Handles header button clicks */\n onHeaderButtonClick(): void {\n this.headerButtonClick.emit();\n }\n\n /** Handles header button keyboard events */\n onHeaderButtonKeydown(event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.headerButtonClick.emit();\n }\n }\n\n /** Handles search input changes from the rendered field. Filtering is driven by the\n * `searchTerm` effect, so this only updates the term and notifies listeners. */\n onSearchTermChange(term: string): void {\n this.searchTerm.set(term ?? '');\n this.searchInputChange.emit(term ?? '');\n }\n\n /** Handles group toggle events, selecting/deselecting all items within the group */\n onGroupToggle(groupLabel: string, checked: boolean): void {\n if (typeof checked !== 'boolean') {\n return;\n }\n const updatedItems = this.internalItems().map(item => {\n if (item.groupLabel === groupLabel && !item.disabled && !item.isFeatureLocked) {\n return { ...item, selected: checked, indeterminate: false };\n }\n return item;\n });\n this.internalItems.set(updatedItems);\n this.selectionChange.emit(updatedItems);\n }\n\n /** Stable track key for a render entry (item or group). */\n protected entryKey(entry: RenderEntry): string {\n return entry.kind === 'item' ? `item:${entry.item.htmlId}` : `group:${entry.label}`;\n }\n\n /** Updates the filtered items based on search term */\n private updateFilteredItems(searchTerm: string, items: SelectionDropdownItem[]): void {\n if (!searchTerm) {\n this.filteredItems.set(items);\n return;\n }\n\n const filtered = items.filter(item => item.text.toLowerCase().includes(searchTerm));\n this.filteredItems.set(filtered);\n }\n\n}","<ng-template #selectionDropdownTemplate>\n <div class=\"ap-selection-dropdown__content\">\n <!-- Header -->\n <div class=\"ap-selection-dropdown__header\">\n <div class=\"ap-selection-dropdown__header-top\">\n @if (title()) {\n <h3 class=\"ap-selection-dropdown__title\">\n {{ title() }}\n </h3>\n }\n @if (headerButtonText()) {\n <a\n class=\"standalone\"\n role=\"link\"\n tabindex=\"0\"\n [id]=\"headerButtonId()\"\n (click)=\"onHeaderButtonClick()\"\n (keydown)=\"onHeaderButtonKeydown($event)\">\n <ap-symbol [symbolId]=\"headerButtonSymbolId()\" />\n {{ headerButtonText() }}\n </a>\n }\n </div>\n <ap-input-search\n #inputSearchElement\n [placeholder]=\"searchPlaceholderText()\"\n [clearable]=\"true\"\n [ngModel]=\"searchTerm()\"\n (ngModelChange)=\"onSearchTermChange($event)\" />\n </div>\n\n <!-- Selection dropdown items -->\n <div class=\"ap-selection-dropdown__items\">\n @if (filteredItems().length === 0 && searchTerm()) {\n <div class=\"ap-selection-dropdown__no-results\">\n {{ noSearchResultsText() }}\n </div>\n } @else {\n <!-- Selected items section (at the top) -->\n @if (selectedItems().length > 0) {\n <div class=\"ap-selection-dropdown__selected-section\">\n @for (item of selectedItems(); track item.htmlId) {\n <div [apTooltip]=\"item.disabledTooltip\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"ap-selection-dropdown__item-button\"\n [class.ap-selection-dropdown__item-button--disabled]=\"item.disabled || item.isFeatureLocked\"\n (click)=\"onItemToggle(item)\">\n <ap-dropdown-item-multiple-one-line\n class=\"ap-selection-dropdown__item\"\n [text]=\"item.text\"\n [selected]=\"item.selected\"\n [indeterminate]=\"item.indeterminate ?? false\"\n [htmlId]=\"item.htmlId\"\n [disabled]=\"item.disabled || false\"\n [avatarUrl]=\"item.avatarUrl\"\n [symbolId]=\"item.symbolId\"\n [badgeText]=\"item.badgeText\"\n [isFeatureLocked]=\"item.isFeatureLocked || false\"\n [roundedAvatar]=\"!!item.roundedAvatar\"\n [network]=\"item.network\"\n [symbolColor]=\"item.symbolColor\"\n [symbolTooltipText]=\"item.symbolTooltipText\" />\n </button>\n </div>\n }\n </div>\n }\n\n <!-- Unselected zone: items & groups in first-encounter order -->\n @for (entry of displayEntries(); track entryKey(entry)) {\n @if (entry.kind === 'item') {\n <div [apTooltip]=\"entry.item.disabledTooltip\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"ap-selection-dropdown__item-button\"\n [class.ap-selection-dropdown__item-button--disabled]=\"entry.item.disabled || entry.item.isFeatureLocked\"\n (click)=\"onItemToggle(entry.item)\">\n <ap-dropdown-item-multiple-one-line\n class=\"ap-selection-dropdown__item\"\n [text]=\"entry.item.text\"\n [selected]=\"entry.item.selected\"\n [indeterminate]=\"entry.item.indeterminate ?? false\"\n [htmlId]=\"entry.item.htmlId\"\n [disabled]=\"entry.item.disabled || false\"\n [avatarUrl]=\"entry.item.avatarUrl\"\n [symbolId]=\"entry.item.symbolId\"\n [badgeText]=\"entry.item.badgeText\"\n [isFeatureLocked]=\"entry.item.isFeatureLocked || false\"\n [roundedAvatar]=\"!!entry.item.roundedAvatar\"\n [network]=\"entry.item.network\"\n [symbolColor]=\"entry.item.symbolColor\"\n [symbolTooltipText]=\"entry.item.symbolTooltipText\" />\n </button>\n </div>\n } @else {\n <div class=\"ap-selection-dropdown__group\">\n <!-- Group header with checkbox -->\n <div class=\"ap-selection-dropdown__group-header\">\n <div class=\"ap-selection-dropdown__group-label\">\n <ap-checkbox\n [name]=\"entry.label\"\n [checked]=\"groupSelectionStates()[entry.label] === 'selected'\"\n [indeterminate]=\"groupSelectionStates()[entry.label] === 'partial'\"\n (change)=\"onGroupToggle(entry.label, $event)\">\n {{ entry.label }}\n </ap-checkbox>\n </div>\n </div>\n\n <!-- Group items -->\n @for (item of entry.items; track item.htmlId) {\n <div [apTooltip]=\"item.disabledTooltip\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"ap-selection-dropdown__item-button\"\n [class.ap-selection-dropdown__item-button--disabled]=\"item.disabled || item.isFeatureLocked\"\n (click)=\"onItemToggle(item)\">\n <ap-dropdown-item-multiple-one-line\n class=\"ap-selection-dropdown__item ap-selection-dropdown__item--grouped\"\n [text]=\"item.text\"\n [selected]=\"item.selected\"\n [indeterminate]=\"item.indeterminate ?? false\"\n [htmlId]=\"item.htmlId\"\n [disabled]=\"item.disabled || false\"\n [avatarUrl]=\"item.avatarUrl\"\n [symbolId]=\"item.symbolId\"\n [badgeText]=\"item.badgeText\"\n [isFeatureLocked]=\"item.isFeatureLocked || false\"\n [roundedAvatar]=\"!!item.roundedAvatar\"\n [network]=\"item.network\"\n [symbolColor]=\"item.symbolColor\"\n [symbolTooltipText]=\"item.symbolTooltipText\" />\n </button>\n </div>\n }\n </div>\n }\n }\n }\n </div>\n\n <!-- Footer -->\n @if (footerButtonText()) {\n <div class=\"ap-selection-dropdown__footer\">\n <a\n class=\"standalone\"\n role=\"link\"\n tabindex=\"0\"\n [id]=\"footerButtonId()\"\n (click)=\"onFooterButtonClick()\"\n (keydown)=\"onFooterButtonKeydown($event)\">\n <ap-symbol [symbolId]=\"footerButtonSymbolId()\" />\n {{ footerButtonText() }}\n </a>\n </div>\n }\n </div>\n</ng-template>\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":"agorapulse-ui-components-selection-dropdown.mjs","sources":["../../../libs/ui-components/selection-dropdown/src/selection-dropdown-trigger.directive.ts","../../../libs/ui-components/selection-dropdown/src/selection-dropdown.component.ts","../../../libs/ui-components/selection-dropdown/src/selection-dropdown.component.html","../../../libs/ui-components/selection-dropdown/src/agorapulse-ui-components-selection-dropdown.ts"],"sourcesContent":["import { Directive, ElementRef, HostListener, inject, input } from '@angular/core';\nimport { SelectionDropdownComponent } from './selection-dropdown.component';\n\n/**\n * Directive that turns any element into a trigger for a SelectionDropdown component.\n * Handles click and keyboard interactions to open/close the dropdown.\n */\n@Directive({\n selector: '[apSelectionDropdownTrigger]',\n})\nexport class SelectionDropdownTriggerDirective {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n /** Reference to the SelectionDropdown component that this trigger controls */\n apSelectionDropdownTrigger = input.required<SelectionDropdownComponent>();\n\n /** Prevents the trigger from opening/toggling the dropdown when true */\n apSelectionDropdownTriggerDisable = input(false);\n\n /** Handles click events to toggle the dropdown */\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n if (this.apSelectionDropdownTriggerDisable()) return;\n\n event.preventDefault();\n event.stopPropagation();\n\n this.apSelectionDropdownTrigger().toggle(this.elementRef.nativeElement);\n }\n\n /** Handles keyboard events for accessibility (Enter, Space, Arrow Down, Escape) */\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent): void {\n const dropdown = this.apSelectionDropdownTrigger();\n\n switch (event.key) {\n case 'Enter':\n case ' ':\n case 'ArrowDown':\n if (this.apSelectionDropdownTriggerDisable()) return;\n event.preventDefault();\n dropdown.open(this.elementRef.nativeElement);\n break;\n\n case 'Escape':\n event.preventDefault();\n dropdown.close();\n break;\n }\n }\n}\n","import { CheckboxComponent } from '@agorapulse/ui-components/checkbox';\nimport { createDropdownOverlay, DropdownOverlay } from '@agorapulse/ui-components/dropdown-base';\nimport { InputSearchComponent } from '@agorapulse/ui-components/input-search';\nimport { UI_COMPONENTS_SYMBOLS } from '@agorapulse/ui-components/providers';\nimport { DropdownItemMultipleOneLineComponent } from '@agorapulse/ui-components/select';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n inject,\n input,\n linkedSignal,\n model,\n OnDestroy,\n output,\n signal,\n TemplateRef, untracked,\n viewChild,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { debounceTime, distinctUntilChanged, Subject, takeUntil } from 'rxjs';\n\nexport interface SelectionDropdownItem {\n /** Unique HTML ID for the item */\n htmlId: string;\n /** Display text for the item */\n text: string;\n /** Whether the item is selected */\n selected: boolean;\n /** Whether the item is displayed in a mixed/indeterminate state. Takes visual precedence over `selected`. */\n indeterminate?: boolean;\n /** Whether the item is disabled and non-interactive */\n disabled?: boolean;\n /** Avatar URL to display */\n avatarUrl?: string;\n /** Symbol ID to display */\n symbolId?: string;\n /** Tooltip text displayed when item is disabled */\n disabledTooltip?: string;\n /** Text displayed in a badge next to the item */\n badgeText?: string;\n /** Whether the feature is locked */\n isFeatureLocked?: boolean;\n /** Whether avatar should be rounded */\n roundedAvatar?: boolean;\n /** Avatar network type */\n network?: any;\n /** Symbol color */\n symbolColor?: string;\n /** Symbol tooltip text */\n symbolTooltipText?: string;\n /** Group label - items with the same groupLabel will be grouped together */\n groupLabel?: string;\n}\n\n/**\n * One rendered row in the unselected zone: either a standalone item or a group\n * holding the items that belong to it (in first-encounter order).\n */\ntype RenderEntry =\n | { kind: 'item'; item: SelectionDropdownItem }\n | { kind: 'group'; label: string; items: SelectionDropdownItem[] };\n\n/**\n * A dropdown component that displays a list of selectable items with checkboxes,\n * badges, tooltips, and keyboard navigation.\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-selection-dropdown',\n templateUrl: './selection-dropdown.component.html',\n styleUrls: ['./selection-dropdown.component.scss'],\n imports: [\n CheckboxComponent,\n DropdownItemMultipleOneLineComponent,\n FormsModule,\n InputSearchComponent,\n SymbolComponent,\n TooltipDirective,\n ],\n})\nexport class SelectionDropdownComponent implements DropdownOverlay, OnDestroy {\n private readonly symbolRegistry = inject(SymbolRegistry);\n private readonly overlay = createDropdownOverlay();\n\n selectionDropdownTemplate = viewChild<TemplateRef<unknown>>('selectionDropdownTemplate');\n trigger = contentChild<TemplateRef<unknown>>('trigger');\n\n /** ID for the header button */\n headerButtonId = input<string>();\n /** ID for the footer button */\n footerButtonId = input<string>();\n /** Array of items to display in the dropdown menu */\n items = input<SelectionDropdownItem[]>([]);\n /** Title to display in the header */\n title = input<string>();\n /** Text for the footer button */\n footerButtonText = input<string>();\n /** Symbol ID for the footer button */\n footerButtonSymbolId = input<string>();\n /** Text for the header button */\n headerButtonText = input<string>();\n /** Symbol ID for the header button */\n headerButtonSymbolId = input<string>();\n /** Placeholder text for the search input */\n searchPlaceholderText = input('Search');\n /** Text to display when no search results are found */\n noSearchResultsText = input('No results found');\n\n /** Whether to show a backdrop that closes the dropdown when clicked */\n showBackdrop = input(true);\n /** Whether the dropdown is disabled and cannot be opened */\n disabled = input(false);\n /** Default position for the dropdown relative to the trigger element */\n defaultPosition = input<'right' | 'left'>('right');\n\n /** Emits when the dropdown menu is opened */\n opened = output<void>();\n /** Emits when the dropdown menu is closed */\n closed = output<void>();\n /** Emits when a dropdown item selection changes */\n selectionChange = output<SelectionDropdownItem[]>();\n /** Emits when the footer button is clicked */\n footerButtonClick = output<void>();\n /** Emits when the header button is clicked */\n headerButtonClick = output<void>();\n /** Emits when the search input is changed */\n searchInputChange = output<string>();\n\n /**\n * Two-way bindable, clearable search term. Consumers can read it and reset it (set to '')\n * to clear the search and restore the full item list — letting them drive the search\n * declaratively instead of reaching into the rendered `ap-input-search`.\n */\n readonly searchTerm = model<string>('');\n\n private readonly destroy$ = new Subject<void>();\n private readonly searchTermSubject = new Subject<string>();\n\n protected readonly inputSearchComponent = viewChild<InputSearchComponent>('inputSearchElement');\n\n readonly isOpen = this.overlay.isOpen;\n\n focusInput = effect(() => {\n const inputSearch = this.inputSearchComponent();\n untracked(() => {\n if (this.isOpen() && inputSearch) {\n inputSearch.focusInput();\n }\n })\n })\n\n private readonly internalItems = linkedSignal(() => this.items());\n\n protected readonly filteredItems = signal<SelectionDropdownItem[]>([]);\n protected readonly initiallySelectedItems = signal<SelectionDropdownItem[]>([]);\n\n // Computed properties for template usage\n protected readonly selectedItems = computed(() => {\n const initiallySelectedIds = this.initiallySelectedItems().map(item => item.htmlId);\n return this.filteredItems().filter(item => initiallySelectedIds.includes(item.htmlId));\n });\n\n protected readonly unselectedItems = computed(() => {\n const initiallySelectedIds = this.initiallySelectedItems().map(item => item.htmlId);\n return this.filteredItems().filter(item => !initiallySelectedIds.includes(item.htmlId));\n });\n\n /**\n * Unselected items rebuilt into a single ordered list: standalone items and\n * groups appear in the order their first item is encountered; later items of\n * an already-seen group join that existing group entry.\n */\n protected readonly displayEntries = computed<RenderEntry[]>(() => {\n const entries: RenderEntry[] = [];\n const groupsByLabel = new Map<string, Extract<RenderEntry, { kind: 'group' }>>();\n\n for (const item of this.unselectedItems()) {\n const label = item.groupLabel;\n if (!label) {\n entries.push({ kind: 'item', item });\n continue;\n }\n\n const existing = groupsByLabel.get(label);\n if (existing) {\n // `existing` is the same object reference already pushed into `entries`,\n // so mutating its items array updates the rendered group in place.\n existing.items.push(item);\n } else {\n const group: Extract<RenderEntry, { kind: 'group' }> = { kind: 'group', label, items: [item] };\n groupsByLabel.set(label, group);\n entries.push(group);\n }\n }\n\n return entries;\n });\n\n // Computed maps for template usage\n protected readonly groupSelectionStates = computed(() => {\n const states: Record<string, 'selected' | 'partial' | 'unselected'> = {};\n for (const entry of this.displayEntries()) {\n if (entry.kind !== 'group') {\n continue;\n }\n const groupLabel = entry.label;\n const groupItems = this.filteredItems().filter(item => item.groupLabel === groupLabel);\n // Selection is counted across all members: a disabled item can still be selected, and\n // excluding it would wrongly drop the group to \"unselected\" despite a live selection.\n const hasSelection = groupItems.some(item => item.selected);\n const hasIndeterminate = groupItems.some(item => item.indeterminate);\n // \"Fully selected\" ignores members that cannot be toggled on (a disabled, unselected\n // item), so a group whose every selectable member is selected still reads as selected.\n const hasPendingSelectable = groupItems.some(item => !item.selected && !item.disabled && !item.isFeatureLocked);\n\n if (!hasSelection && !hasIndeterminate) {\n states[groupLabel] = 'unselected';\n } else if (!hasPendingSelectable && !hasIndeterminate) {\n states[groupLabel] = 'selected';\n } else {\n states[groupLabel] = 'partial';\n }\n }\n return states;\n });\n\n constructor() {\n this.symbolRegistry.withSymbols(...(inject(UI_COMPONENTS_SYMBOLS, { optional: true })?.flat() ?? []));\n\n // Set up debounced search\n this.searchTermSubject.pipe(debounceTime(100), distinctUntilChanged(), takeUntil(this.destroy$)).subscribe(term => {\n const items = this.internalItems();\n this.updateFilteredItems(term?.toLowerCase() ?? '', items);\n });\n\n // Feed the debounced filter pipeline from the search term signal, so the list re-filters\n // both on user typing and on an external set (a consumer resetting searchTerm to '').\n effect(() => this.searchTermSubject.next(this.searchTerm() ?? ''));\n\n // Initialize filtered items when items change\n effect(() => {\n const items = this.internalItems();\n if (!this.searchTerm()) {\n this.filteredItems.set(items);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n /** Opens the dropdown menu at the specified trigger element */\n open(triggerElement?: HTMLElement): void {\n const template = this.selectionDropdownTemplate();\n if (this.disabled() || this.isOpen() || !template) return;\n\n this.overlay.open(template, triggerElement, {\n showBackdrop: this.showBackdrop(),\n defaultPosition: this.defaultPosition(),\n onClose: () => this.close(),\n });\n\n // Capture initially selected items as a static snapshot\n const selectedItems = this.internalItems().filter(item => item.selected);\n this.initiallySelectedItems.set(selectedItems);\n\n this.opened.emit();\n }\n\n /** Closes the dropdown menu and cleans up overlay resources */\n close(): void {\n if (!this.isOpen()) return;\n this.initiallySelectedItems.set([]);\n this.overlay.close();\n this.closed.emit();\n }\n\n /** Toggles the dropdown menu open or closed state */\n toggle(triggerElement?: HTMLElement): void {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open(triggerElement);\n }\n }\n\n /** Handles item toggle events, updating selection and emitting changes.\n * An indeterminate item resolves to selected; a definite item flips. Toggling always\n * clears the indeterminate flag, so the item becomes a definite selected/unselected. */\n onItemToggle(item: SelectionDropdownItem): void {\n if (item.disabled || item.isFeatureLocked) {\n return;\n }\n\n const nextSelected = item.indeterminate ? true : !item.selected;\n const resolve = (i: SelectionDropdownItem): SelectionDropdownItem =>\n i.htmlId === item.htmlId ? { ...i, selected: nextSelected, indeterminate: false } : i;\n\n const updatedItems = this.internalItems().map(resolve);\n this.internalItems.set(updatedItems);\n this.selectionChange.emit(updatedItems);\n\n // Keep the filtered view in sync with the toggled item.\n this.filteredItems.update(items => items.map(resolve));\n }\n\n /** Handles footer button clicks */\n onFooterButtonClick(): void {\n this.footerButtonClick.emit();\n }\n\n /** Handles footer button keyboard events */\n onFooterButtonKeydown(event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.footerButtonClick.emit();\n }\n }\n\n /** Handles header button clicks */\n onHeaderButtonClick(): void {\n this.headerButtonClick.emit();\n }\n\n /** Handles header button keyboard events */\n onHeaderButtonKeydown(event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.headerButtonClick.emit();\n }\n }\n\n /** Handles search input changes from the rendered field. Filtering is driven by the\n * `searchTerm` effect, so this only updates the term and notifies listeners. */\n onSearchTermChange(term: string): void {\n this.searchTerm.set(term ?? '');\n this.searchInputChange.emit(term ?? '');\n }\n\n /** Handles group toggle events, selecting/deselecting all items within the group */\n onGroupToggle(groupLabel: string, checked: boolean): void {\n if (typeof checked !== 'boolean') {\n return;\n }\n const updatedItems = this.internalItems().map(item => {\n if (item.groupLabel === groupLabel && !item.disabled && !item.isFeatureLocked) {\n return { ...item, selected: checked, indeterminate: false };\n }\n return item;\n });\n this.internalItems.set(updatedItems);\n this.selectionChange.emit(updatedItems);\n }\n\n /** Stable track key for a render entry (item or group). */\n protected entryKey(entry: RenderEntry): string {\n return entry.kind === 'item' ? `item:${entry.item.htmlId}` : `group:${entry.label}`;\n }\n\n /** Updates the filtered items based on search term */\n private updateFilteredItems(searchTerm: string, items: SelectionDropdownItem[]): void {\n if (!searchTerm) {\n this.filteredItems.set(items);\n return;\n }\n\n const filtered = items.filter(item => item.text.toLowerCase().includes(searchTerm));\n this.filteredItems.set(filtered);\n }\n\n}","<ng-template #selectionDropdownTemplate>\n <div class=\"ap-selection-dropdown__content\">\n <!-- Header -->\n <div class=\"ap-selection-dropdown__header\">\n <div class=\"ap-selection-dropdown__header-top\">\n @if (title()) {\n <h3 class=\"ap-selection-dropdown__title\">\n {{ title() }}\n </h3>\n }\n @if (headerButtonText()) {\n <a\n class=\"standalone\"\n role=\"link\"\n tabindex=\"0\"\n [id]=\"headerButtonId()\"\n (click)=\"onHeaderButtonClick()\"\n (keydown)=\"onHeaderButtonKeydown($event)\">\n <ap-symbol [symbolId]=\"headerButtonSymbolId()\" />\n {{ headerButtonText() }}\n </a>\n }\n </div>\n <ap-input-search\n #inputSearchElement\n [placeholder]=\"searchPlaceholderText()\"\n [clearable]=\"true\"\n [ngModel]=\"searchTerm()\"\n (ngModelChange)=\"onSearchTermChange($event)\" />\n </div>\n\n <!-- Selection dropdown items -->\n <div class=\"ap-selection-dropdown__items\">\n @if (filteredItems().length === 0 && searchTerm()) {\n <div class=\"ap-selection-dropdown__no-results\">\n {{ noSearchResultsText() }}\n </div>\n } @else {\n <!-- Selected items section (at the top) -->\n @if (selectedItems().length > 0) {\n <div class=\"ap-selection-dropdown__selected-section\">\n @for (item of selectedItems(); track item.htmlId) {\n <div [apTooltip]=\"item.disabledTooltip\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"ap-selection-dropdown__item-button\"\n [class.ap-selection-dropdown__item-button--disabled]=\"item.disabled || item.isFeatureLocked\"\n (click)=\"onItemToggle(item)\">\n <ap-dropdown-item-multiple-one-line\n class=\"ap-selection-dropdown__item\"\n [text]=\"item.text\"\n [selected]=\"item.selected\"\n [indeterminate]=\"item.indeterminate ?? false\"\n [htmlId]=\"item.htmlId\"\n [disabled]=\"item.disabled || false\"\n [avatarUrl]=\"item.avatarUrl\"\n [symbolId]=\"item.symbolId\"\n [badgeText]=\"item.badgeText\"\n [isFeatureLocked]=\"item.isFeatureLocked || false\"\n [roundedAvatar]=\"!!item.roundedAvatar\"\n [network]=\"item.network\"\n [symbolColor]=\"item.symbolColor\"\n [symbolTooltipText]=\"item.symbolTooltipText\" />\n </button>\n </div>\n }\n </div>\n }\n\n <!-- Unselected zone: items & groups in first-encounter order -->\n @for (entry of displayEntries(); track entryKey(entry)) {\n @if (entry.kind === 'item') {\n <div [apTooltip]=\"entry.item.disabledTooltip\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"ap-selection-dropdown__item-button\"\n [class.ap-selection-dropdown__item-button--disabled]=\"entry.item.disabled || entry.item.isFeatureLocked\"\n (click)=\"onItemToggle(entry.item)\">\n <ap-dropdown-item-multiple-one-line\n class=\"ap-selection-dropdown__item\"\n [text]=\"entry.item.text\"\n [selected]=\"entry.item.selected\"\n [indeterminate]=\"entry.item.indeterminate ?? false\"\n [htmlId]=\"entry.item.htmlId\"\n [disabled]=\"entry.item.disabled || false\"\n [avatarUrl]=\"entry.item.avatarUrl\"\n [symbolId]=\"entry.item.symbolId\"\n [badgeText]=\"entry.item.badgeText\"\n [isFeatureLocked]=\"entry.item.isFeatureLocked || false\"\n [roundedAvatar]=\"!!entry.item.roundedAvatar\"\n [network]=\"entry.item.network\"\n [symbolColor]=\"entry.item.symbolColor\"\n [symbolTooltipText]=\"entry.item.symbolTooltipText\" />\n </button>\n </div>\n } @else {\n <div class=\"ap-selection-dropdown__group\">\n <!-- Group header with checkbox -->\n <div class=\"ap-selection-dropdown__group-header\">\n <div class=\"ap-selection-dropdown__group-label\">\n <ap-checkbox\n [name]=\"entry.label\"\n [checked]=\"groupSelectionStates()[entry.label] === 'selected'\"\n [indeterminate]=\"groupSelectionStates()[entry.label] === 'partial'\"\n (change)=\"onGroupToggle(entry.label, $event)\">\n {{ entry.label }}\n </ap-checkbox>\n </div>\n </div>\n\n <!-- Group items -->\n @for (item of entry.items; track item.htmlId) {\n <div [apTooltip]=\"item.disabledTooltip\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"ap-selection-dropdown__item-button\"\n [class.ap-selection-dropdown__item-button--disabled]=\"item.disabled || item.isFeatureLocked\"\n (click)=\"onItemToggle(item)\">\n <ap-dropdown-item-multiple-one-line\n class=\"ap-selection-dropdown__item ap-selection-dropdown__item--grouped\"\n [text]=\"item.text\"\n [selected]=\"item.selected\"\n [indeterminate]=\"item.indeterminate ?? false\"\n [htmlId]=\"item.htmlId\"\n [disabled]=\"item.disabled || false\"\n [avatarUrl]=\"item.avatarUrl\"\n [symbolId]=\"item.symbolId\"\n [badgeText]=\"item.badgeText\"\n [isFeatureLocked]=\"item.isFeatureLocked || false\"\n [roundedAvatar]=\"!!item.roundedAvatar\"\n [network]=\"item.network\"\n [symbolColor]=\"item.symbolColor\"\n [symbolTooltipText]=\"item.symbolTooltipText\" />\n </button>\n </div>\n }\n </div>\n }\n }\n }\n </div>\n\n <!-- Footer -->\n @if (footerButtonText()) {\n <div class=\"ap-selection-dropdown__footer\">\n <a\n class=\"standalone\"\n role=\"link\"\n tabindex=\"0\"\n [id]=\"footerButtonId()\"\n (click)=\"onFooterButtonClick()\"\n (keydown)=\"onFooterButtonKeydown($event)\">\n <ap-symbol [symbolId]=\"footerButtonSymbolId()\" />\n {{ footerButtonText() }}\n </a>\n </div>\n }\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -36,8 +36,8 @@ class SlideToggleComponent {
36
36
  writeValue(status) {
37
37
  this.checked = status;
38
38
  }
39
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SlideToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
40
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.18", type: SlideToggleComponent, isStandalone: true, selector: "ap-slide-toggle", inputs: { checked: "checked", disabled: ["disabled", "disabled", booleanAttribute] }, outputs: { checkedChange: "checkedChange" }, providers: [
39
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: SlideToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
40
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "21.2.16", type: SlideToggleComponent, isStandalone: true, selector: "ap-slide-toggle", inputs: { checked: "checked", disabled: ["disabled", "disabled", booleanAttribute] }, outputs: { checkedChange: "checkedChange" }, providers: [
41
41
  {
42
42
  provide: NG_VALUE_ACCESSOR,
43
43
  useExisting: forwardRef(() => SlideToggleComponent),
@@ -45,7 +45,7 @@ class SlideToggleComponent {
45
45
  },
46
46
  ], ngImport: i0, template: "<label\n class=\"switch\"\n [ngClass]=\"{ checked: checked, enabled: !disabled }\"\n (click)=\"onClick()\">\n <span\n class=\"slider\"\n [ngClass]=\"{ checked: checked }\"></span>\n</label>\n", styles: ["[color=facebook]{color:#0866ff}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#0866ff}[border=facebook]{border:1px solid #0866ff}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=reddit]{color:#ff4500}[bgcolor=reddit],[hcolor=reddit]:hover{background-color:#ff4500}[border=reddit]{border:1px solid #ff4500}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #a566a5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #c7ab82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #f2713c}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #ffd006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94c5aa}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2a9d8f}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78acd8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525a9e}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6a2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729e}.switch{position:relative;display:inline-block;width:34px;height:16px;background-color:#ccc;border-radius:14px}.switch.enabled{cursor:pointer}.switch.checked{background-color:#00aeef}.slider{position:absolute;inset:1px 0 0 1px;-webkit-transition:.2s;transition:.2s;content:\"\";height:14px;width:14px;border-radius:50%;background-color:#fff}.slider.checked{-webkit-transform:translateX(18px);-ms-transform:translateX(18px);transform:translate(18px)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
47
47
  }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SlideToggleComponent, decorators: [{
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: SlideToggleComponent, decorators: [{
49
49
  type: Component,
50
50
  args: [{ selector: 'ap-slide-toggle', providers: [
51
51
  {