@coreui/angular-pro 5.2.0 → 5.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10025,7 +10025,7 @@ const observeReferenceResizeModifier = {
10025
10025
  const RO_PROP = '__popperjsRO__';
10026
10026
  const { reference } = state.elements;
10027
10027
  let resizeObserver = new ResizeObserver((entries) => {
10028
- if (entries.find(entry => entry.target === reference)) {
10028
+ if (entries.find((entry) => entry.target === reference)) {
10029
10029
  instance.update();
10030
10030
  }
10031
10031
  });
@@ -10182,7 +10182,7 @@ class MultiSelectComponent {
10182
10182
  * @type IPluralMap
10183
10183
  * @default { '=1': 'item selected', 'other': 'items selected' }
10184
10184
  */
10185
- this.selectionTypeCounterTextPluralMap = { '=1': 'item selected', 'other': 'items selected' };
10185
+ this.selectionTypeCounterTextPluralMap = { '=1': 'item selected', other: 'items selected' };
10186
10186
  this.#value = [];
10187
10187
  /**
10188
10188
  * Emits valueChange
@@ -10203,6 +10203,7 @@ class MultiSelectComponent {
10203
10203
  * @default 196
10204
10204
  */
10205
10205
  this.itemMinWidth = 196;
10206
+ this.minWidth = signal(this.itemMinWidth);
10206
10207
  this._visible = false;
10207
10208
  /**
10208
10209
  * Emits visibleChange
@@ -10226,7 +10227,7 @@ class MultiSelectComponent {
10226
10227
  #options;
10227
10228
  #optionsContent;
10228
10229
  writeValue(value) {
10229
- if ((value !== undefined && value !== null)) {
10230
+ if (value !== undefined && value !== null) {
10230
10231
  this.value = Array.isArray(value) ? [...value] : [value];
10231
10232
  }
10232
10233
  else {
@@ -10355,7 +10356,7 @@ class MultiSelectComponent {
10355
10356
  */
10356
10357
  set visibleItems(value) {
10357
10358
  this._visibleItems = value > 0 ? value : 8;
10358
- this.optionsMaxHeight = ((this.itemSize * this._visibleItems) + 16).toString();
10359
+ this.optionsMaxHeight = (this.itemSize * this._visibleItems + 16).toString();
10359
10360
  }
10360
10361
  get visibleItems() {
10361
10362
  return this._visibleItems;
@@ -10390,7 +10391,7 @@ class MultiSelectComponent {
10390
10391
  const currOptions = {
10391
10392
  ...options,
10392
10393
  modifiers: [
10393
- ...prevModifiers.filter(prevModifier => !currModifiers.find(currModifier => currModifier.name === prevModifier.name)),
10394
+ ...prevModifiers.filter((prevModifier) => !currModifiers.find((currModifier) => currModifier.name === prevModifier.name)),
10394
10395
  ...currModifiers
10395
10396
  ]
10396
10397
  };
@@ -10404,7 +10405,7 @@ class MultiSelectComponent {
10404
10405
  return [...this.optionsSelected.values()];
10405
10406
  }
10406
10407
  get selectedOptionsText() {
10407
- return this.selectedOptions.map(option => option.label).join(', ');
10408
+ return this.selectedOptions.map((option) => option.label).join(', ');
10408
10409
  }
10409
10410
  get counterText() {
10410
10411
  return `${this.selectedOptions.length} ${this.selectionTypeCounterText}`;
@@ -10412,7 +10413,6 @@ class MultiSelectComponent {
10412
10413
  get counterTextType() {
10413
10414
  return typeof (this.selectionTypeCounterTextPluralMap ?? this.selectionTypeCounterText);
10414
10415
  }
10415
- ;
10416
10416
  get counterPlaceholderText() {
10417
10417
  if (this.selectedOptions.length === 0 || this.selectionType !== 'counter') {
10418
10418
  return null;
@@ -10465,7 +10465,8 @@ class MultiSelectComponent {
10465
10465
  this.setFocus('keyboard', 'onKeyUp');
10466
10466
  return;
10467
10467
  }
10468
- if (['Enter', 'Space', 'ArrowDown'].includes($event.code) && [this.inputElement?.nativeElement, this.elementRef.nativeElement].includes($event.target)) {
10468
+ if (['Enter', 'Space', 'ArrowDown'].includes($event.code) &&
10469
+ [this.inputElement?.nativeElement, this.elementRef.nativeElement].includes($event.target)) {
10469
10470
  $event.stopPropagation();
10470
10471
  this.visible = true;
10471
10472
  if (!this.search) {
@@ -10489,12 +10490,16 @@ class MultiSelectComponent {
10489
10490
  if (this.visible && this.subtreeFocused) {
10490
10491
  if (targetTagName === 'C-MULTI-SELECT-OPTION') {
10491
10492
  if (this.tabTarget === 'C-MULTI-SELECT-OPTION') {
10492
- if ($event.shiftKey && this.focusKeyManager.activeItem?.value === this.options.filter(option => option.visible && !option.disabled).slice(0)[0].value) {
10493
+ if ($event.shiftKey &&
10494
+ this.focusKeyManager.activeItem?.value ===
10495
+ this.options.filter((option) => option.visible && !option.disabled).slice(0)[0].value) {
10493
10496
  this.setFocus('keyboard', 'onKeyUp');
10494
10497
  this.tabTarget = targetTagName;
10495
10498
  return;
10496
10499
  }
10497
- if (!$event.shiftKey && this.focusKeyManager.activeItem?.value === this.options.filter(option => option.visible && !option.disabled).slice(-1)[0].value) {
10500
+ if (!$event.shiftKey &&
10501
+ this.focusKeyManager.activeItem?.value ===
10502
+ this.options.filter((option) => option.visible && !option.disabled).slice(-1)[0].value) {
10498
10503
  this.setFocus('keyboard', 'onKeyUp');
10499
10504
  this.tabTarget = targetTagName;
10500
10505
  this.updateActiveItem(0);
@@ -10581,21 +10586,23 @@ class MultiSelectComponent {
10581
10586
  }
10582
10587
  ngOnInit() {
10583
10588
  this.multiSelectService.selectionModel.changed
10584
- .pipe(filter(() => !this.multiple), delay(0), tap(change => {
10589
+ .pipe(filter(() => !this.multiple), delay(0), tap((change) => {
10585
10590
  if (change.added.length > 0) {
10586
10591
  // close dropdown for single select (!multiple)
10587
10592
  this.visible = false;
10588
10593
  this.searchValue = '';
10589
10594
  }
10590
- }), skip(1), tap(change => {
10595
+ }), skip(1), tap((change) => {
10591
10596
  this.setFocus('program', 'selectionModel.changed (single)');
10592
10597
  }), takeUntilDestroyed(this.#destroyRef))
10593
10598
  .subscribe();
10594
- this.#optionsReady$.pipe(filter(() => !this.virtualScroller), delay(0), tap(() => {
10599
+ this.#optionsReady$
10600
+ .pipe(filter(() => !this.virtualScroller), delay(0), tap(() => {
10595
10601
  this.setFocusKeyManager([...this.multiSelectOptionsContent, ...this.multiSelectOptionsView]);
10596
- }), takeUntilDestroyed(this.#destroyRef)).subscribe();
10602
+ }), takeUntilDestroyed(this.#destroyRef))
10603
+ .subscribe();
10597
10604
  this.multiSelectService.selectionModel.changed
10598
- .pipe(tap(change => {
10605
+ .pipe(tap((change) => {
10599
10606
  const { added } = { ...change };
10600
10607
  if (added.length > 0 && this.clearSearchOnSelect) {
10601
10608
  this.searchValue = '';
@@ -10607,10 +10614,10 @@ class MultiSelectComponent {
10607
10614
  // delay(0),
10608
10615
  combineLatestWith(this.#optionsReady$), tap(([change, ready]) => {
10609
10616
  const { removed } = { ...change };
10610
- removed.forEach(value => {
10617
+ removed.forEach((value) => {
10611
10618
  this.optionsSelected.delete(value);
10612
10619
  });
10613
- this.multiSelectService.selectionModel.selected.forEach(key => {
10620
+ this.multiSelectService.selectionModel.selected.forEach((key) => {
10614
10621
  const value = this.#options.get(key);
10615
10622
  if (value) {
10616
10623
  this.optionsSelected.set(key, value);
@@ -10624,19 +10631,17 @@ class MultiSelectComponent {
10624
10631
  .subscribe();
10625
10632
  // set initial values
10626
10633
  this.multiSelectService.selectionModel.select(...this.#value);
10627
- this.value$
10628
- .pipe(takeUntilDestroyed(this.#destroyRef))
10629
- .subscribe(value => {
10634
+ this.value$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((value) => {
10630
10635
  if (!value.length) {
10631
10636
  this.clearAllOptions();
10632
10637
  return;
10633
10638
  }
10634
- value.forEach(value => {
10639
+ value.forEach((value) => {
10635
10640
  this.multiSelectService.selectionModel.select(value);
10636
10641
  });
10637
10642
  });
10638
10643
  this.value$
10639
- .pipe(debounceTime(100), tap(value => {
10644
+ .pipe(debounceTime(100), tap((value) => {
10640
10645
  this.valueChange.emit(this.value);
10641
10646
  }), takeUntilDestroyed(this.#destroyRef))
10642
10647
  .subscribe();
@@ -10645,15 +10650,15 @@ class MultiSelectComponent {
10645
10650
  this.visibleOptions.set(options.some((item) => item.visible) || userOptions.some((item) => item.visible));
10646
10651
  this.activeOption = null;
10647
10652
  if (this.virtualScroller) {
10648
- this.multiSelectOptionsContent?.forEach(option => {
10653
+ this.multiSelectOptionsContent?.forEach((option) => {
10649
10654
  option.active = false;
10650
10655
  });
10651
10656
  this.scrollViewport?.setRenderedRange({ start: 0, end: this.visibleItems });
10652
10657
  this.scrollViewport?.scrollToIndex(0);
10653
10658
  }
10654
10659
  else {
10655
- this.multiSelectOptionsContent?.forEach(option => {
10656
- const found = options.find(item => item.value === option.value);
10660
+ this.multiSelectOptionsContent?.forEach((option) => {
10661
+ const found = options.find((item) => item.value === option.value);
10657
10662
  option.visible = found?.visible ?? false;
10658
10663
  option.active = false;
10659
10664
  });
@@ -10692,13 +10697,17 @@ class MultiSelectComponent {
10692
10697
  value.visible = false;
10693
10698
  });
10694
10699
  }
10695
- options.forEach(option => {
10700
+ options.forEach((option) => {
10696
10701
  const key = option.value;
10697
10702
  const value = {
10698
10703
  value: option.value ?? option.label,
10699
10704
  label: option.label ?? option.value?.toString(),
10700
10705
  disabled: option.disabled === true,
10701
- visible: this.search === 'external' ? true : option.custom && option.selected ? option.visible : option.visible !== false,
10706
+ visible: this.search === 'external'
10707
+ ? true
10708
+ : option.custom && option.selected
10709
+ ? option.visible
10710
+ : option.visible !== false,
10702
10711
  text: option.text ?? option.label ?? option.value?.toString(),
10703
10712
  selected: option.selected,
10704
10713
  custom: option.custom
@@ -10719,7 +10728,7 @@ class MultiSelectComponent {
10719
10728
  // });
10720
10729
  addUserOption() {
10721
10730
  if (this.allowCreateOptions) {
10722
- if (this.userOptions().some(option => option.value === this.searchValue)) {
10731
+ if (this.userOptions().some((option) => option.value === this.searchValue)) {
10723
10732
  return;
10724
10733
  }
10725
10734
  if (this.#options.get(this.searchValue)) {
@@ -10733,7 +10742,7 @@ class MultiSelectComponent {
10733
10742
  custom: true,
10734
10743
  selected: true
10735
10744
  };
10736
- this.searchValue = (this.clearSearchOnSelect || this.allowCreateOptions) ? '' : this.searchValue;
10745
+ this.searchValue = this.clearSearchOnSelect || this.allowCreateOptions ? '' : this.searchValue;
10737
10746
  this.multiSelectService.addUserOption(userOption);
10738
10747
  this.multiSelectService.selectionModel.select(userOption.value);
10739
10748
  this.optionsSelected.set(userOption.value, userOption);
@@ -10747,16 +10756,16 @@ class MultiSelectComponent {
10747
10756
  this.setVirtualScroller();
10748
10757
  this.multiSelectOptionsContent?.changes
10749
10758
  .pipe(delay(0), distinctUntilChanged((previous, current) => {
10750
- const prev = previous.toArray().map(option => option.value);
10751
- const curr = current.toArray().map(option => option.value);
10759
+ const prev = previous.toArray().map((option) => option.value);
10760
+ const curr = current.toArray().map((option) => option.value);
10752
10761
  if (this.virtualScroller) {
10753
10762
  return JSON.stringify(prev) === JSON.stringify(curr);
10754
10763
  }
10755
10764
  return JSON.stringify(this.#optionsContent) === JSON.stringify(curr);
10756
- }), tap(changes => {
10757
- this.#optionsContent = changes.toArray().map(option => option.value);
10765
+ }), tap((changes) => {
10766
+ this.#optionsContent = changes.toArray().map((option) => option.value);
10758
10767
  }), takeUntilDestroyed(this.#destroyRef))
10759
- .subscribe(next => {
10768
+ .subscribe((next) => {
10760
10769
  this.visibleOptions.set(this.multiSelectOptionsContent?.some((option) => option.visible));
10761
10770
  if (this.visibleOptions()) {
10762
10771
  this.makeOptions(this.multiSelectOptionsContent.toArray());
@@ -10793,6 +10802,10 @@ class MultiSelectComponent {
10793
10802
  }
10794
10803
  else {
10795
10804
  if (this.virtualScroller) {
10805
+ {
10806
+ const dropdownMinWidth = parseInt(this.dropdownMenu.nativeElement.style.minWidth, 10);
10807
+ this.minWidth.set(this.itemMinWidth > dropdownMinWidth ? this.itemMinWidth : dropdownMinWidth);
10808
+ }
10796
10809
  this.scrollViewport?.setRenderedRange({ start: 0, end: this.visibleItems });
10797
10810
  this.scrollViewport?.scrollToIndex(0);
10798
10811
  }
@@ -10804,7 +10817,9 @@ class MultiSelectComponent {
10804
10817
  }
10805
10818
  clearAllOptions($event) {
10806
10819
  setTimeout(() => {
10807
- const enabledOptions = Array.from(this.optionsSelected.values()).filter(option => !option.disabled).map(option => option.value);
10820
+ const enabledOptions = Array.from(this.optionsSelected.values())
10821
+ .filter((option) => !option.disabled)
10822
+ .map((option) => option.value);
10808
10823
  this.multiSelectService.selectionModel.deselect(...enabledOptions);
10809
10824
  this.removeAllUserOptions();
10810
10825
  this.searchValue = '';
@@ -10814,7 +10829,9 @@ class MultiSelectComponent {
10814
10829
  });
10815
10830
  }
10816
10831
  selectAllOptions() {
10817
- const enabledOptions = Array.from(this.#options.values()).filter(option => option.visible && !option.disabled).map(option => option.value);
10832
+ const enabledOptions = Array.from(this.#options.values())
10833
+ .filter((option) => option.visible && !option.disabled)
10834
+ .map((option) => option.value);
10818
10835
  this.multiSelectService.selectionModel.select(...enabledOptions);
10819
10836
  this.inputElementSize();
10820
10837
  }
@@ -10863,7 +10880,7 @@ class MultiSelectComponent {
10863
10880
  if (!this.nativeSelectRef || !this.nativeId) {
10864
10881
  return;
10865
10882
  }
10866
- const options = Array.from(this.optionsSelected).map(item => {
10883
+ const options = Array.from(this.optionsSelected).map((item) => {
10867
10884
  const { selected, value, label } = item[1];
10868
10885
  return { selected, value, label };
10869
10886
  });
@@ -10900,7 +10917,7 @@ class MultiSelectComponent {
10900
10917
  }
10901
10918
  if (['Backspace', 'Delete'].includes($event.key)) {
10902
10919
  $event.stopPropagation();
10903
- const last = this.selectedOptions.filter(option => !option.disabled).pop();
10920
+ const last = this.selectedOptions.filter((option) => !option.disabled).pop();
10904
10921
  if (last) {
10905
10922
  this.multiSelectService.selectionModel.deselect(last.value);
10906
10923
  }
@@ -10919,7 +10936,8 @@ class MultiSelectComponent {
10919
10936
  // takeUntilDestroyed(this.#destroyRef)
10920
10937
  // )
10921
10938
  // .subscribe();
10922
- this.focusMonitorSubscription = this.focusMonitor?.monitor(this.elementRef, true)
10939
+ this.focusMonitorSubscription = this.focusMonitor
10940
+ ?.monitor(this.elementRef, true)
10923
10941
  .pipe(
10924
10942
  // to avoid focus lost on speed scrolling with virtualScroll
10925
10943
  debounceTime(100), takeUntilDestroyed(this.#destroyRef))
@@ -10939,19 +10957,19 @@ class MultiSelectComponent {
10939
10957
  if (!this.scrollViewport) {
10940
10958
  this.scrollViewport = scrollViewport;
10941
10959
  }
10942
- const availableOptions = this.options.filter(option => option.visible);
10960
+ const availableOptions = this.options.filter((option) => option.visible);
10943
10961
  const firstVisibleOption = availableOptions[scrolledIndex];
10944
- const activeOptionIndex = availableOptions.findIndex(option => option.value === this.activeOption?.value);
10962
+ const activeOptionIndex = availableOptions.findIndex((option) => option.value === this.activeOption?.value);
10945
10963
  const optionsArray = this.multiSelectOptionsContent.toArray();
10946
10964
  if (scrolledIndex > activeOptionIndex) {
10947
- const firstVisibleItem = optionsArray.find(option => option.value === firstVisibleOption?.value);
10965
+ const firstVisibleItem = optionsArray.find((option) => option.value === firstVisibleOption?.value);
10948
10966
  if (firstVisibleItem && scrolledIndex) {
10949
10967
  this.focusKeyManager.setActiveItem(firstVisibleItem);
10950
10968
  }
10951
10969
  return;
10952
10970
  }
10953
10971
  if (scrolledIndex + this.visibleItems - 2 <= activeOptionIndex) {
10954
- const lastVisibleItem = optionsArray.findIndex(option => option.value === firstVisibleOption.value);
10972
+ const lastVisibleItem = optionsArray.findIndex((option) => option.value === firstVisibleOption.value);
10955
10973
  if (lastVisibleItem > -1) {
10956
10974
  this.focusKeyManager.setActiveItem(lastVisibleItem + this.visibleItems - 2);
10957
10975
  }
@@ -10990,14 +11008,12 @@ class MultiSelectComponent {
10990
11008
  return [...option.elementRef.nativeElement.parentElement.children]?.indexOf(option.elementRef.nativeElement);
10991
11009
  };
10992
11010
  const optionsChange$ = this.multiSelectOptionsContent.changes;
10993
- const sortedOptions$ = optionsChange$.pipe(map(options => options.toArray()), filter(options => options.length > 0), map(options => options.sort((a, b) => indexOfOption(a) - indexOfOption(b))), takeUntilDestroyed(this.#destroyRef));
10994
- sortedOptions$
10995
- .pipe(takeUntilDestroyed(this.#destroyRef))
10996
- .subscribe(sortedOptions => {
11011
+ const sortedOptions$ = optionsChange$.pipe(map((options) => options.toArray()), filter((options) => options.length > 0), map((options) => options.sort((a, b) => indexOfOption(a) - indexOfOption(b))), takeUntilDestroyed(this.#destroyRef));
11012
+ sortedOptions$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((sortedOptions) => {
10997
11013
  return this.multiSelectOptionsContent.reset(sortedOptions);
10998
11014
  });
10999
11015
  this.scrollViewportView.changes
11000
- .pipe(take(1), map(changes => changes.toArray()[0]), tap((scrollViewport) => {
11016
+ .pipe(take(1), map((changes) => changes.toArray()[0]), tap((scrollViewport) => {
11001
11017
  if (!this.scrollViewport) {
11002
11018
  this.scrollViewport = scrollViewport;
11003
11019
  const cdkVirtualScrollContentWrapper = this.scrollViewport.getElementRef().nativeElement?.firstElementChild;
@@ -11005,8 +11021,8 @@ class MultiSelectComponent {
11005
11021
  const style = getComputedStyle(cdkVirtualScrollContentWrapper, null) ?? undefined;
11006
11022
  const padding = parseInt(style?.getPropertyValue('padding-left') ?? '12px') * 3;
11007
11023
  const observer = new MutationObserver((mutationRecords) => {
11008
- mutationRecords.forEach(child => {
11009
- child.addedNodes.forEach(node => {
11024
+ mutationRecords.forEach((child) => {
11025
+ child.addedNodes.forEach((node) => {
11010
11026
  if (node.nodeName === 'C-MULTI-SELECT-OPTION') {
11011
11027
  const width = node.offsetWidth;
11012
11028
  if (width > this.itemMinWidth) {
@@ -11038,16 +11054,14 @@ class MultiSelectComponent {
11038
11054
  this.focusKeyManager = new FocusKeyManager(focusableOptions)
11039
11055
  .withHomeAndEnd()
11040
11056
  .withPageUpDown()
11041
- .skipPredicate((option) => (option.disabled || !option.visible));
11057
+ .skipPredicate((option) => option.disabled || !option.visible);
11042
11058
  if (!this._virtualScroller) {
11043
11059
  this.focusKeyManager.withTypeAhead(300);
11044
11060
  }
11045
11061
  this.focusKeyManager.tabOut
11046
11062
  .pipe(takeUntilDestroyed(this.#destroyRef), tap(() => { }))
11047
11063
  .subscribe();
11048
- this.focusKeyManager.change
11049
- .pipe(takeUntilDestroyed(this.#destroyRef))
11050
- .subscribe(change => {
11064
+ this.focusKeyManager.change.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((change) => {
11051
11065
  if (change < 0) {
11052
11066
  this.activeOption ? this.focusKeyManager.setActiveItem(this.activeOption) : this.setFirstItemActive();
11053
11067
  }
@@ -11065,21 +11079,26 @@ class MultiSelectComponent {
11065
11079
  // }
11066
11080
  }
11067
11081
  get firstFocusableItem() {
11068
- return this.multiSelectOptionsContent?.find(option => option.visible && !option.disabled) ?? this.multiSelectOptionsView?.find(option => option.visible && !option.disabled);
11082
+ return (this.multiSelectOptionsContent?.find((option) => option.visible && !option.disabled) ??
11083
+ this.multiSelectOptionsView?.find((option) => option.visible && !option.disabled));
11069
11084
  }
11070
11085
  setFirstItemActive() {
11071
11086
  const firstFocusableItem = this.firstFocusableItem;
11072
- firstFocusableItem ? this.focusKeyManager?.setActiveItem(firstFocusableItem) : this.focusKeyManager?.setFirstItemActive();
11087
+ firstFocusableItem
11088
+ ? this.focusKeyManager?.setActiveItem(firstFocusableItem)
11089
+ : this.focusKeyManager?.setFirstItemActive();
11073
11090
  this.activeOption = this.focusKeyManager?.activeItem ?? null;
11074
11091
  }
11075
11092
  updateActiveItem(item) {
11076
11093
  const firstFocusableItem = this.firstFocusableItem ?? item;
11077
- firstFocusableItem ? this.focusKeyManager?.updateActiveItem(firstFocusableItem) : this.focusKeyManager?.updateActiveItem(0);
11094
+ firstFocusableItem
11095
+ ? this.focusKeyManager?.updateActiveItem(firstFocusableItem)
11096
+ : this.focusKeyManager?.updateActiveItem(0);
11078
11097
  if (this.focusKeyManager?.activeItem) {
11079
- this.multiSelectOptionsContent?.forEach(option => {
11098
+ this.multiSelectOptionsContent?.forEach((option) => {
11080
11099
  option.active = false;
11081
11100
  });
11082
- this.multiSelectOptionsView?.forEach(option => {
11101
+ this.multiSelectOptionsView?.forEach((option) => {
11083
11102
  option.active = false;
11084
11103
  });
11085
11104
  this.focusKeyManager.activeItem.active = true;
@@ -11096,9 +11115,11 @@ class MultiSelectComponent {
11096
11115
  I18nPluralPipe,
11097
11116
  MultiSelectService,
11098
11117
  {
11099
- provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => MultiSelectComponent), multi: true
11118
+ provide: NG_VALUE_ACCESSOR,
11119
+ useExisting: forwardRef(() => MultiSelectComponent),
11120
+ multi: true
11100
11121
  }
11101
- ], queries: [{ propertyName: "multiSelectOptionsContent", predicate: MultiSelectOptionComponent, descendants: true }, { propertyName: "contentTemplates", predicate: TemplateIdDirective, descendants: true }], viewQueries: [{ propertyName: "optionsElementRef", first: true, predicate: ["options"], descendants: true }, { propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }, { propertyName: "dropdownMenu", first: true, predicate: ["dropdownMenu"], descendants: true }, { propertyName: "dropdown", first: true, predicate: DropdownComponent, descendants: true, read: ElementRef }, { propertyName: "dropdownToggle", first: true, predicate: DropdownToggleDirective, descendants: true, read: ElementRef }, { propertyName: "multiSelectOptionsView", predicate: MultiSelectOptionComponent, descendants: true }, { propertyName: "scrollViewportView", predicate: ["scrollViewport"], descendants: true }], exportAs: ["cMultiSelect"], usesOnChanges: true, ngImport: i0, template: "<c-dropdown #dropdown=\"cDropdown\"\n [(visible)]=\"visible\"\n [autoClose]=\"'outside'\"\n [ngClass]=\"multiselectClasses\"\n [popperOptions]=\"popperOptions\">\n <div #dropdownToggle=\"cDropdownToggle\" [caret]=\"false\" [disabled]=\"disabled\" cDropdownToggle role=\"button\"\n class=\"form-multi-select-input-group\">\n <span\n [ngClass]=\"{'form-multi-select-selection': true, 'form-multi-select-selection-tags': (selectionType === 'tags' && selectedOptions.length)}\">\n @if (selectionType === 'tags') {\n @if (optionsSelected$ | async; as optionTags) {\n @for (option of optionTags; track option.value; let i = $index) {\n <c-multi-select-tag\n (remove)=\"handleTagRemove($event)\"\n [disabled]=\"option.disabled ?? false\"\n [label]=\"option.label ?? option.value?.toString()\"\n [option]=\"option\"\n [value]=\"option.value\"\n class=\"form-multi-select-tag text-truncate\"\n tabindex=\"-1\"\n />\n }\n }\n } @else if (selectionType === 'text' && !!selectedOptions.length) {\n @for (option of selectedOptions; track option.value; let i = $index, last = $last) {\n <span class=\"form-multi-select-text text-truncate\">{{ option.label }}{{ last ? '&nbsp;' : ',&nbsp;' }}</span>\n }\n }\n @if (!search) {\n <span class=\"text-placeholder text-truncate\">\n {{ optionsSelected.size === 0 ? placeholder : counterPlaceholderText }}\n </span>\n }\n @if (search) {\n <input\n #inputElement\n (keydown)=\"handleSearchKeyDown($event)\"\n (valueChange)=\"handleSearchValueChange($event)\"\n [attr.placeholder]=\"selectedOptions.length === 0 ? placeholder : counterPlaceholderText\"\n [disabled]=\"disabled || !search\"\n [ngClass]=\"{ 'form-multi-select-search': true, disabled: (disabled || !search), 'text-truncate': true }\"\n [ngModel]=\"searchValue\"\n [value]=\"searchValue\"\n autocomplete=\"off\"\n cMultiSelectSearch\n size=\"2\"\n tabindex=\"{{ disabled ? -1 : 0 }}\"\n type=\"text\"\n >\n }\n </span>\n <div class=\"form-multi-select-buttons\">\n @if (!!cleaner && optionsSelected.size > 0 && !disabled) {\n <button\n (click)=\"clearAllOptions($event)\"\n [disabled]=\"disabled || (!isDropdownVisible && cleaner !== 'active')\"\n aria-label=\"Clear all\"\n class=\"form-multi-select-cleaner\"\n type=\"button\"\n ></button>\n }\n <button (click)=\"handleIndicatorClick($event)\"\n [disabled]=\"disabled\"\n class=\"form-multi-select-indicator\"\n type=\"button\">\n </button>\n </div>\n </div>\n @if (!disabled) {\n <div #dropdownMenu=\"cDropdownMenu\" [visible]=\"dropdown.visible\" cDropdownMenu\n class=\"form-multi-select-dropdown\" role=\"menu\">\n @if (visibleOptions() && options.length > 0) {\n @if (selectAll && multiple && !virtualScroller) {\n <button\n (click)=\"selectAllOptions()\"\n class=\"form-multi-select-all\"\n type=\"button\"\n tabindex=\"0\"\n >\n {{ selectAllLabel }}\n </button>\n }\n }\n @if ((visibleOptions() && options.length > 0) || isLoading()) {\n <ng-container *ngTemplateOutlet=\"virtualScroller ? multiselectVirtualScroller : multiselectOptionsDiv\" />\n } @else {\n <div class=\"form-multi-select-options-empty\">{{ searchNoResultsLabel }}</div>\n }\n @if (isLoading()) {\n <c-element-cover [ngStyle]=\"{'border-radius': '6px', 'z-index': 2}\" />\n }\n </div>\n }\n</c-dropdown>\n\n<ng-template #multiselectVirtualScroller>\n @defer (on immediate) {\n @if ((optionsArray$ | async); as optionsArray) {\n <cdk-virtual-scroll-viewport\n #scrollViewport\n (scrolledIndexChange)=\"handleScrolledIndexChange($event, scrollViewport)\"\n [itemSize]=\"itemSize\"\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'height.px': optionsMaxHeight, 'maxHeight.px': optionsMaxHeight, 'minWidth.px': itemMinWidth ?? 196, overflowX: 'hidden' } : { 'minWidth.px': itemMinWidth ?? 196, overflowX: 'hidden'}\"\n maxBufferPx=\"{{itemSize * visibleItems}}\"\n minBufferPx=\"{{itemSize * visibleItems}}\"\n class=\"form-multi-select-options\"\n tabindex=\"-1\"\n >\n <ng-container\n #cdkVirtualFor\n *cdkVirtualFor=\"let option of optionsArray; trackBy: trackByFn; templateCacheSize: 0; even as even; odd as odd; index as index; count as count; first as first; last as last;\"\n [ngTemplateOutletContext]=\"{$implicit: option, even, odd, index, count, first, last}\"\n [ngTemplateOutlet]=\"templates['multiSelectOptionTemplate'] || defaultMultiSelectOptionTemplate\"\n />\n </cdk-virtual-scroll-viewport>\n }\n }\n</ng-template>\n\n<ng-template #multiselectOptionsDiv>\n <div\n [ngClass]=\"{'form-multi-select-options': visibleOptions()}\"\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'maxHeight.px': optionsMaxHeight, overflowY: 'scroll' } : {}\"\n >\n <ng-content />\n <ng-container [ngTemplateOutlet]=\"userOptionsTemplate\" />\n </div>\n</ng-template>\n\n<ng-template #defaultMultiSelectOptionTemplate let-option>\n <c-multi-select-option\n [disabled]=\"option.disabled\"\n [label]=\"option.label\"\n [text]=\"option.text\"\n [value]=\"option.value\"\n [visible]=\"option.visible\"\n >\n {{ option.text }}\n </c-multi-select-option>\n</ng-template>\n\n<ng-template #userOptionsTemplate>\n @for (option of userOptionsArray$ | async; track option; let even = $even, odd = $odd, index = $index, count = $count, first = $first, last = $last) {\n <ng-container\n [ngTemplateOutlet]=\"templates['multiSelectOptionTemplate'] || defaultMultiSelectOptionTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: option, even, odd, index, count, first, last}\"\n />\n }\n</ng-template>\n", styles: [":host{display:block}:host:focus-visible{outline:none}:host.cdk-focused:not(.disabled) .form-multi-select{outline:none;box-shadow:0 0 0 var(--cui-focus-ring-width) var(--cui-focus-ring-color);border-radius:var(--cui-border-radius, .375rem)}:host:not(.cdk-focused) .form-multi-select:not(.show) input.form-multi-select-search:not([placeholder]){display:none}:host .form-multi-select .form-multi-select-selection{display:flex;flex:1 1 auto;flex-wrap:wrap}:host .form-multi-select .form-multi-select-selection .text-placeholder,:host .form-multi-select .form-multi-select-selection .form-multi-select-search::placeholder{color:var(--cui-form-multi-select-color);opacity:.8}:host .form-multi-select .form-multi-select-search[size]{display:flex}:host ::ng-deep .cdk-virtual-scroll-content-wrapper{padding:var(--cui-form-multi-select-options-padding-y) var(--cui-form-multi-select-options-padding-x);font-size:1rem;color:var(--cui-form-multi-select-options-color)}:host .cdk-virtual-scroll-viewport{width:var(--cui-dropdown-min-width)}:host .dropdown-menu{--cui-dropdown-padding-y: 0}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: MultiSelectTagComponent, selector: "c-multi-select-tag", inputs: ["option", "disabled", "label", "value"], outputs: ["remove"] }, { kind: "component", type: MultiSelectOptionComponent, selector: "c-multi-select-option", inputs: ["optionsStyle", "label", "text", "visible", "disabled", "selected", "value", "active", "role"], outputs: ["selectedChange", "focusChange"], exportAs: ["cMultiSelectOption"] }, { kind: "directive", type: MultiSelectSearchDirective, selector: "[cMultiSelectSearch]", inputs: ["delay", "value"], outputs: ["valueChange"], exportAs: ["cMultiSelectSearch"] }, { kind: "component", type: DropdownComponent, selector: "c-dropdown", inputs: ["alignment", "autoClose", "direction", "placement", "popper", "popperOptions", "variant", "visible"], outputs: ["visibleChange"], exportAs: ["cDropdown"] }, { kind: "directive", type: DropdownMenuDirective, selector: "[cDropdownMenu]", inputs: ["alignment", "visible"], exportAs: ["cDropdownMenu"] }, { kind: "directive", type: DropdownToggleDirective, selector: "[cDropdownToggle]", inputs: ["dropdownComponent", "disabled", "caret", "split"], exportAs: ["cDropdownToggle"] }, { kind: "component", type: ElementCoverComponent, selector: "c-element-cover, [cElementCover]", inputs: ["boundaries", "opacity"] }], deferBlockDependencies: [() => [AsyncPipe,
11122
+ ], queries: [{ propertyName: "multiSelectOptionsContent", predicate: MultiSelectOptionComponent, descendants: true }, { propertyName: "contentTemplates", predicate: TemplateIdDirective, descendants: true }], viewQueries: [{ propertyName: "optionsElementRef", first: true, predicate: ["options"], descendants: true }, { propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }, { propertyName: "dropdownMenu", first: true, predicate: DropdownMenuDirective, descendants: true, read: ElementRef }, { propertyName: "dropdown", first: true, predicate: DropdownComponent, descendants: true, read: ElementRef }, { propertyName: "dropdownToggle", first: true, predicate: DropdownToggleDirective, descendants: true, read: ElementRef }, { propertyName: "multiSelectOptionsView", predicate: MultiSelectOptionComponent, descendants: true }, { propertyName: "scrollViewportView", predicate: ["scrollViewport"], descendants: true }], exportAs: ["cMultiSelect"], usesOnChanges: true, ngImport: i0, template: "<c-dropdown #dropdown=\"cDropdown\"\n [(visible)]=\"visible\"\n [autoClose]=\"'outside'\"\n [ngClass]=\"multiselectClasses\"\n [popperOptions]=\"popperOptions\">\n <div #dropdownToggle=\"cDropdownToggle\" [caret]=\"false\" [disabled]=\"disabled\" cDropdownToggle role=\"button\"\n class=\"form-multi-select-input-group\">\n <span\n [ngClass]=\"{'form-multi-select-selection': true, 'form-multi-select-selection-tags': (selectionType === 'tags' && selectedOptions.length)}\">\n @if (selectionType === 'tags') {\n @if (optionsSelected$ | async; as optionTags) {\n @for (option of optionTags; track option.value; let i = $index) {\n <c-multi-select-tag\n (remove)=\"handleTagRemove($event)\"\n [disabled]=\"option.disabled ?? false\"\n [label]=\"option.label ?? option.value?.toString()\"\n [option]=\"option\"\n [value]=\"option.value\"\n class=\"form-multi-select-tag text-truncate\"\n tabindex=\"-1\"\n />\n }\n }\n } @else if (selectionType === 'text' && !!selectedOptions.length) {\n @for (option of selectedOptions; track option.value; let i = $index, last = $last) {\n <span class=\"form-multi-select-text text-truncate\">{{ option.label }}{{ last ? '&nbsp;' : ',&nbsp;' }}</span>\n }\n }\n @if (!search) {\n <span class=\"text-placeholder text-truncate\">\n {{ optionsSelected.size === 0 ? placeholder : counterPlaceholderText }}\n </span>\n }\n @if (search) {\n <input\n #inputElement\n (keydown)=\"handleSearchKeyDown($event)\"\n (valueChange)=\"handleSearchValueChange($event)\"\n [attr.placeholder]=\"selectedOptions.length === 0 ? placeholder : counterPlaceholderText\"\n [disabled]=\"disabled || !search\"\n [ngClass]=\"{ 'form-multi-select-search': true, disabled: (disabled || !search), 'text-truncate': true }\"\n [ngModel]=\"searchValue\"\n [value]=\"searchValue\"\n autocomplete=\"off\"\n cMultiSelectSearch\n size=\"2\"\n tabindex=\"{{ disabled ? -1 : 0 }}\"\n type=\"text\"\n >\n }\n </span>\n <div class=\"form-multi-select-buttons\">\n @if (!!cleaner && optionsSelected.size > 0 && !disabled) {\n <button\n (click)=\"clearAllOptions($event)\"\n [disabled]=\"disabled || (!isDropdownVisible && cleaner !== 'active')\"\n aria-label=\"Clear all\"\n class=\"form-multi-select-cleaner\"\n type=\"button\"\n ></button>\n }\n <button (click)=\"handleIndicatorClick($event)\"\n [disabled]=\"disabled\"\n class=\"form-multi-select-indicator\"\n type=\"button\">\n </button>\n </div>\n </div>\n @if (!disabled) {\n <div #dropdownMenu=\"cDropdownMenu\" [visible]=\"dropdown.visible\" cDropdownMenu\n class=\"form-multi-select-dropdown\" role=\"menu\">\n @if (visibleOptions() && options.length > 0) {\n @if (selectAll && multiple && !virtualScroller) {\n <button\n (click)=\"selectAllOptions()\"\n class=\"form-multi-select-all\"\n type=\"button\"\n tabindex=\"0\"\n >\n {{ selectAllLabel }}\n </button>\n }\n }\n @if ((visibleOptions() && options.length > 0) || isLoading()) {\n <ng-container *ngTemplateOutlet=\"virtualScroller ? multiselectVirtualScroller : multiselectOptionsDiv\" />\n } @else {\n <div class=\"form-multi-select-options-empty\">{{ searchNoResultsLabel }}</div>\n }\n @if (isLoading()) {\n <c-element-cover [ngStyle]=\"{'border-radius': '6px', 'z-index': 2}\" />\n }\n </div>\n }\n</c-dropdown>\n\n<ng-template #multiselectVirtualScroller>\n @defer (on immediate) {\n @if ((optionsArray$ | async); as optionsArray) {\n <cdk-virtual-scroll-viewport\n #scrollViewport\n (scrolledIndexChange)=\"handleScrolledIndexChange($event, scrollViewport)\"\n [itemSize]=\"itemSize\"\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'height.px': optionsMaxHeight, 'maxHeight.px': optionsMaxHeight, 'minWidth.px': minWidth(), overflowX: 'hidden' } : { 'minWidth.px': minWidth(), overflowX: 'hidden'}\"\n maxBufferPx=\"{{itemSize * visibleItems}}\"\n minBufferPx=\"{{itemSize * visibleItems}}\"\n class=\"form-multi-select-options\"\n tabindex=\"-1\"\n >\n <ng-container\n #cdkVirtualFor\n *cdkVirtualFor=\"let option of optionsArray; trackBy: trackByFn; templateCacheSize: 0; even as even; odd as odd; index as index; count as count; first as first; last as last;\"\n [ngTemplateOutletContext]=\"{$implicit: option, even, odd, index, count, first, last}\"\n [ngTemplateOutlet]=\"templates['multiSelectOptionTemplate'] || defaultMultiSelectOptionTemplate\"\n />\n </cdk-virtual-scroll-viewport>\n }\n }\n</ng-template>\n\n<ng-template #multiselectOptionsDiv>\n <div\n [ngClass]=\"{'form-multi-select-options': visibleOptions()}\"\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'maxHeight.px': optionsMaxHeight, overflowY: 'scroll' } : {}\"\n >\n <ng-content />\n <ng-container [ngTemplateOutlet]=\"userOptionsTemplate\" />\n </div>\n</ng-template>\n\n<ng-template #defaultMultiSelectOptionTemplate let-option>\n <c-multi-select-option\n [disabled]=\"option.disabled\"\n [label]=\"option.label\"\n [text]=\"option.text\"\n [value]=\"option.value\"\n [visible]=\"option.visible\"\n >\n {{ option.text }}\n </c-multi-select-option>\n</ng-template>\n\n<ng-template #userOptionsTemplate>\n @for (option of userOptionsArray$ | async; track option; let even = $even, odd = $odd, index = $index, count = $count, first = $first, last = $last) {\n <ng-container\n [ngTemplateOutlet]=\"templates['multiSelectOptionTemplate'] || defaultMultiSelectOptionTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: option, even, odd, index, count, first, last}\"\n />\n }\n</ng-template>\n", styles: [":host{display:block}:host:focus-visible{outline:none}:host.cdk-focused:not(.disabled) .form-multi-select{outline:none;box-shadow:0 0 0 var(--cui-focus-ring-width) var(--cui-focus-ring-color);border-radius:var(--cui-border-radius, .375rem)}:host:not(.cdk-focused) .form-multi-select:not(.show) input.form-multi-select-search:not([placeholder]){display:none}:host .form-multi-select .form-multi-select-selection{display:flex;flex:1 1 auto;flex-wrap:wrap}:host .form-multi-select .form-multi-select-selection .text-placeholder,:host .form-multi-select .form-multi-select-selection .form-multi-select-search::placeholder{color:var(--cui-form-multi-select-color);opacity:.8}:host .form-multi-select .form-multi-select-search[size]{display:flex}:host ::ng-deep .cdk-virtual-scroll-content-wrapper{padding:var(--cui-form-multi-select-options-padding-y) var(--cui-form-multi-select-options-padding-x);font-size:1rem;color:var(--cui-form-multi-select-options-color)}:host .cdk-virtual-scroll-viewport{width:var(--cui-dropdown-min-width)}:host .dropdown-menu{--cui-dropdown-padding-y: 0}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: MultiSelectTagComponent, selector: "c-multi-select-tag", inputs: ["option", "disabled", "label", "value"], outputs: ["remove"] }, { kind: "component", type: MultiSelectOptionComponent, selector: "c-multi-select-option", inputs: ["optionsStyle", "label", "text", "visible", "disabled", "selected", "value", "active", "role"], outputs: ["selectedChange", "focusChange"], exportAs: ["cMultiSelectOption"] }, { kind: "directive", type: MultiSelectSearchDirective, selector: "[cMultiSelectSearch]", inputs: ["delay", "value"], outputs: ["valueChange"], exportAs: ["cMultiSelectSearch"] }, { kind: "component", type: DropdownComponent, selector: "c-dropdown", inputs: ["alignment", "autoClose", "direction", "placement", "popper", "popperOptions", "variant", "visible"], outputs: ["visibleChange"], exportAs: ["cDropdown"] }, { kind: "directive", type: DropdownMenuDirective, selector: "[cDropdownMenu]", inputs: ["alignment", "visible"], exportAs: ["cDropdownMenu"] }, { kind: "directive", type: DropdownToggleDirective, selector: "[cDropdownToggle]", inputs: ["dropdownComponent", "disabled", "caret", "split"], exportAs: ["cDropdownToggle"] }, { kind: "component", type: ElementCoverComponent, selector: "c-element-cover, [cElementCover]", inputs: ["boundaries", "opacity"] }], deferBlockDependencies: [() => [AsyncPipe,
11102
11123
  NgStyle,
11103
11124
  NgTemplateOutlet,
11104
11125
  CdkFixedSizeVirtualScroll,
@@ -11111,7 +11132,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
11111
11132
  I18nPluralPipe,
11112
11133
  MultiSelectService,
11113
11134
  {
11114
- provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => MultiSelectComponent), multi: true
11135
+ provide: NG_VALUE_ACCESSOR,
11136
+ useExisting: forwardRef(() => MultiSelectComponent),
11137
+ multi: true
11115
11138
  }
11116
11139
  ], standalone: true, imports: [
11117
11140
  AsyncPipe,
@@ -11131,7 +11154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
11131
11154
  DropdownMenuDirective,
11132
11155
  DropdownToggleDirective,
11133
11156
  ElementCoverComponent
11134
- ], template: "<c-dropdown #dropdown=\"cDropdown\"\n [(visible)]=\"visible\"\n [autoClose]=\"'outside'\"\n [ngClass]=\"multiselectClasses\"\n [popperOptions]=\"popperOptions\">\n <div #dropdownToggle=\"cDropdownToggle\" [caret]=\"false\" [disabled]=\"disabled\" cDropdownToggle role=\"button\"\n class=\"form-multi-select-input-group\">\n <span\n [ngClass]=\"{'form-multi-select-selection': true, 'form-multi-select-selection-tags': (selectionType === 'tags' && selectedOptions.length)}\">\n @if (selectionType === 'tags') {\n @if (optionsSelected$ | async; as optionTags) {\n @for (option of optionTags; track option.value; let i = $index) {\n <c-multi-select-tag\n (remove)=\"handleTagRemove($event)\"\n [disabled]=\"option.disabled ?? false\"\n [label]=\"option.label ?? option.value?.toString()\"\n [option]=\"option\"\n [value]=\"option.value\"\n class=\"form-multi-select-tag text-truncate\"\n tabindex=\"-1\"\n />\n }\n }\n } @else if (selectionType === 'text' && !!selectedOptions.length) {\n @for (option of selectedOptions; track option.value; let i = $index, last = $last) {\n <span class=\"form-multi-select-text text-truncate\">{{ option.label }}{{ last ? '&nbsp;' : ',&nbsp;' }}</span>\n }\n }\n @if (!search) {\n <span class=\"text-placeholder text-truncate\">\n {{ optionsSelected.size === 0 ? placeholder : counterPlaceholderText }}\n </span>\n }\n @if (search) {\n <input\n #inputElement\n (keydown)=\"handleSearchKeyDown($event)\"\n (valueChange)=\"handleSearchValueChange($event)\"\n [attr.placeholder]=\"selectedOptions.length === 0 ? placeholder : counterPlaceholderText\"\n [disabled]=\"disabled || !search\"\n [ngClass]=\"{ 'form-multi-select-search': true, disabled: (disabled || !search), 'text-truncate': true }\"\n [ngModel]=\"searchValue\"\n [value]=\"searchValue\"\n autocomplete=\"off\"\n cMultiSelectSearch\n size=\"2\"\n tabindex=\"{{ disabled ? -1 : 0 }}\"\n type=\"text\"\n >\n }\n </span>\n <div class=\"form-multi-select-buttons\">\n @if (!!cleaner && optionsSelected.size > 0 && !disabled) {\n <button\n (click)=\"clearAllOptions($event)\"\n [disabled]=\"disabled || (!isDropdownVisible && cleaner !== 'active')\"\n aria-label=\"Clear all\"\n class=\"form-multi-select-cleaner\"\n type=\"button\"\n ></button>\n }\n <button (click)=\"handleIndicatorClick($event)\"\n [disabled]=\"disabled\"\n class=\"form-multi-select-indicator\"\n type=\"button\">\n </button>\n </div>\n </div>\n @if (!disabled) {\n <div #dropdownMenu=\"cDropdownMenu\" [visible]=\"dropdown.visible\" cDropdownMenu\n class=\"form-multi-select-dropdown\" role=\"menu\">\n @if (visibleOptions() && options.length > 0) {\n @if (selectAll && multiple && !virtualScroller) {\n <button\n (click)=\"selectAllOptions()\"\n class=\"form-multi-select-all\"\n type=\"button\"\n tabindex=\"0\"\n >\n {{ selectAllLabel }}\n </button>\n }\n }\n @if ((visibleOptions() && options.length > 0) || isLoading()) {\n <ng-container *ngTemplateOutlet=\"virtualScroller ? multiselectVirtualScroller : multiselectOptionsDiv\" />\n } @else {\n <div class=\"form-multi-select-options-empty\">{{ searchNoResultsLabel }}</div>\n }\n @if (isLoading()) {\n <c-element-cover [ngStyle]=\"{'border-radius': '6px', 'z-index': 2}\" />\n }\n </div>\n }\n</c-dropdown>\n\n<ng-template #multiselectVirtualScroller>\n @defer (on immediate) {\n @if ((optionsArray$ | async); as optionsArray) {\n <cdk-virtual-scroll-viewport\n #scrollViewport\n (scrolledIndexChange)=\"handleScrolledIndexChange($event, scrollViewport)\"\n [itemSize]=\"itemSize\"\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'height.px': optionsMaxHeight, 'maxHeight.px': optionsMaxHeight, 'minWidth.px': itemMinWidth ?? 196, overflowX: 'hidden' } : { 'minWidth.px': itemMinWidth ?? 196, overflowX: 'hidden'}\"\n maxBufferPx=\"{{itemSize * visibleItems}}\"\n minBufferPx=\"{{itemSize * visibleItems}}\"\n class=\"form-multi-select-options\"\n tabindex=\"-1\"\n >\n <ng-container\n #cdkVirtualFor\n *cdkVirtualFor=\"let option of optionsArray; trackBy: trackByFn; templateCacheSize: 0; even as even; odd as odd; index as index; count as count; first as first; last as last;\"\n [ngTemplateOutletContext]=\"{$implicit: option, even, odd, index, count, first, last}\"\n [ngTemplateOutlet]=\"templates['multiSelectOptionTemplate'] || defaultMultiSelectOptionTemplate\"\n />\n </cdk-virtual-scroll-viewport>\n }\n }\n</ng-template>\n\n<ng-template #multiselectOptionsDiv>\n <div\n [ngClass]=\"{'form-multi-select-options': visibleOptions()}\"\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'maxHeight.px': optionsMaxHeight, overflowY: 'scroll' } : {}\"\n >\n <ng-content />\n <ng-container [ngTemplateOutlet]=\"userOptionsTemplate\" />\n </div>\n</ng-template>\n\n<ng-template #defaultMultiSelectOptionTemplate let-option>\n <c-multi-select-option\n [disabled]=\"option.disabled\"\n [label]=\"option.label\"\n [text]=\"option.text\"\n [value]=\"option.value\"\n [visible]=\"option.visible\"\n >\n {{ option.text }}\n </c-multi-select-option>\n</ng-template>\n\n<ng-template #userOptionsTemplate>\n @for (option of userOptionsArray$ | async; track option; let even = $even, odd = $odd, index = $index, count = $count, first = $first, last = $last) {\n <ng-container\n [ngTemplateOutlet]=\"templates['multiSelectOptionTemplate'] || defaultMultiSelectOptionTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: option, even, odd, index, count, first, last}\"\n />\n }\n</ng-template>\n", styles: [":host{display:block}:host:focus-visible{outline:none}:host.cdk-focused:not(.disabled) .form-multi-select{outline:none;box-shadow:0 0 0 var(--cui-focus-ring-width) var(--cui-focus-ring-color);border-radius:var(--cui-border-radius, .375rem)}:host:not(.cdk-focused) .form-multi-select:not(.show) input.form-multi-select-search:not([placeholder]){display:none}:host .form-multi-select .form-multi-select-selection{display:flex;flex:1 1 auto;flex-wrap:wrap}:host .form-multi-select .form-multi-select-selection .text-placeholder,:host .form-multi-select .form-multi-select-selection .form-multi-select-search::placeholder{color:var(--cui-form-multi-select-color);opacity:.8}:host .form-multi-select .form-multi-select-search[size]{display:flex}:host ::ng-deep .cdk-virtual-scroll-content-wrapper{padding:var(--cui-form-multi-select-options-padding-y) var(--cui-form-multi-select-options-padding-x);font-size:1rem;color:var(--cui-form-multi-select-options-color)}:host .cdk-virtual-scroll-viewport{width:var(--cui-dropdown-min-width)}:host .dropdown-menu{--cui-dropdown-padding-y: 0}\n"] }]
11157
+ ], template: "<c-dropdown #dropdown=\"cDropdown\"\n [(visible)]=\"visible\"\n [autoClose]=\"'outside'\"\n [ngClass]=\"multiselectClasses\"\n [popperOptions]=\"popperOptions\">\n <div #dropdownToggle=\"cDropdownToggle\" [caret]=\"false\" [disabled]=\"disabled\" cDropdownToggle role=\"button\"\n class=\"form-multi-select-input-group\">\n <span\n [ngClass]=\"{'form-multi-select-selection': true, 'form-multi-select-selection-tags': (selectionType === 'tags' && selectedOptions.length)}\">\n @if (selectionType === 'tags') {\n @if (optionsSelected$ | async; as optionTags) {\n @for (option of optionTags; track option.value; let i = $index) {\n <c-multi-select-tag\n (remove)=\"handleTagRemove($event)\"\n [disabled]=\"option.disabled ?? false\"\n [label]=\"option.label ?? option.value?.toString()\"\n [option]=\"option\"\n [value]=\"option.value\"\n class=\"form-multi-select-tag text-truncate\"\n tabindex=\"-1\"\n />\n }\n }\n } @else if (selectionType === 'text' && !!selectedOptions.length) {\n @for (option of selectedOptions; track option.value; let i = $index, last = $last) {\n <span class=\"form-multi-select-text text-truncate\">{{ option.label }}{{ last ? '&nbsp;' : ',&nbsp;' }}</span>\n }\n }\n @if (!search) {\n <span class=\"text-placeholder text-truncate\">\n {{ optionsSelected.size === 0 ? placeholder : counterPlaceholderText }}\n </span>\n }\n @if (search) {\n <input\n #inputElement\n (keydown)=\"handleSearchKeyDown($event)\"\n (valueChange)=\"handleSearchValueChange($event)\"\n [attr.placeholder]=\"selectedOptions.length === 0 ? placeholder : counterPlaceholderText\"\n [disabled]=\"disabled || !search\"\n [ngClass]=\"{ 'form-multi-select-search': true, disabled: (disabled || !search), 'text-truncate': true }\"\n [ngModel]=\"searchValue\"\n [value]=\"searchValue\"\n autocomplete=\"off\"\n cMultiSelectSearch\n size=\"2\"\n tabindex=\"{{ disabled ? -1 : 0 }}\"\n type=\"text\"\n >\n }\n </span>\n <div class=\"form-multi-select-buttons\">\n @if (!!cleaner && optionsSelected.size > 0 && !disabled) {\n <button\n (click)=\"clearAllOptions($event)\"\n [disabled]=\"disabled || (!isDropdownVisible && cleaner !== 'active')\"\n aria-label=\"Clear all\"\n class=\"form-multi-select-cleaner\"\n type=\"button\"\n ></button>\n }\n <button (click)=\"handleIndicatorClick($event)\"\n [disabled]=\"disabled\"\n class=\"form-multi-select-indicator\"\n type=\"button\">\n </button>\n </div>\n </div>\n @if (!disabled) {\n <div #dropdownMenu=\"cDropdownMenu\" [visible]=\"dropdown.visible\" cDropdownMenu\n class=\"form-multi-select-dropdown\" role=\"menu\">\n @if (visibleOptions() && options.length > 0) {\n @if (selectAll && multiple && !virtualScroller) {\n <button\n (click)=\"selectAllOptions()\"\n class=\"form-multi-select-all\"\n type=\"button\"\n tabindex=\"0\"\n >\n {{ selectAllLabel }}\n </button>\n }\n }\n @if ((visibleOptions() && options.length > 0) || isLoading()) {\n <ng-container *ngTemplateOutlet=\"virtualScroller ? multiselectVirtualScroller : multiselectOptionsDiv\" />\n } @else {\n <div class=\"form-multi-select-options-empty\">{{ searchNoResultsLabel }}</div>\n }\n @if (isLoading()) {\n <c-element-cover [ngStyle]=\"{'border-radius': '6px', 'z-index': 2}\" />\n }\n </div>\n }\n</c-dropdown>\n\n<ng-template #multiselectVirtualScroller>\n @defer (on immediate) {\n @if ((optionsArray$ | async); as optionsArray) {\n <cdk-virtual-scroll-viewport\n #scrollViewport\n (scrolledIndexChange)=\"handleScrolledIndexChange($event, scrollViewport)\"\n [itemSize]=\"itemSize\"\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'height.px': optionsMaxHeight, 'maxHeight.px': optionsMaxHeight, 'minWidth.px': minWidth(), overflowX: 'hidden' } : { 'minWidth.px': minWidth(), overflowX: 'hidden'}\"\n maxBufferPx=\"{{itemSize * visibleItems}}\"\n minBufferPx=\"{{itemSize * visibleItems}}\"\n class=\"form-multi-select-options\"\n tabindex=\"-1\"\n >\n <ng-container\n #cdkVirtualFor\n *cdkVirtualFor=\"let option of optionsArray; trackBy: trackByFn; templateCacheSize: 0; even as even; odd as odd; index as index; count as count; first as first; last as last;\"\n [ngTemplateOutletContext]=\"{$implicit: option, even, odd, index, count, first, last}\"\n [ngTemplateOutlet]=\"templates['multiSelectOptionTemplate'] || defaultMultiSelectOptionTemplate\"\n />\n </cdk-virtual-scroll-viewport>\n }\n }\n</ng-template>\n\n<ng-template #multiselectOptionsDiv>\n <div\n [ngClass]=\"{'form-multi-select-options': visibleOptions()}\"\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'maxHeight.px': optionsMaxHeight, overflowY: 'scroll' } : {}\"\n >\n <ng-content />\n <ng-container [ngTemplateOutlet]=\"userOptionsTemplate\" />\n </div>\n</ng-template>\n\n<ng-template #defaultMultiSelectOptionTemplate let-option>\n <c-multi-select-option\n [disabled]=\"option.disabled\"\n [label]=\"option.label\"\n [text]=\"option.text\"\n [value]=\"option.value\"\n [visible]=\"option.visible\"\n >\n {{ option.text }}\n </c-multi-select-option>\n</ng-template>\n\n<ng-template #userOptionsTemplate>\n @for (option of userOptionsArray$ | async; track option; let even = $even, odd = $odd, index = $index, count = $count, first = $first, last = $last) {\n <ng-container\n [ngTemplateOutlet]=\"templates['multiSelectOptionTemplate'] || defaultMultiSelectOptionTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: option, even, odd, index, count, first, last}\"\n />\n }\n</ng-template>\n", styles: [":host{display:block}:host:focus-visible{outline:none}:host.cdk-focused:not(.disabled) .form-multi-select{outline:none;box-shadow:0 0 0 var(--cui-focus-ring-width) var(--cui-focus-ring-color);border-radius:var(--cui-border-radius, .375rem)}:host:not(.cdk-focused) .form-multi-select:not(.show) input.form-multi-select-search:not([placeholder]){display:none}:host .form-multi-select .form-multi-select-selection{display:flex;flex:1 1 auto;flex-wrap:wrap}:host .form-multi-select .form-multi-select-selection .text-placeholder,:host .form-multi-select .form-multi-select-selection .form-multi-select-search::placeholder{color:var(--cui-form-multi-select-color);opacity:.8}:host .form-multi-select .form-multi-select-search[size]{display:flex}:host ::ng-deep .cdk-virtual-scroll-content-wrapper{padding:var(--cui-form-multi-select-options-padding-y) var(--cui-form-multi-select-options-padding-x);font-size:1rem;color:var(--cui-form-multi-select-options-color)}:host .cdk-virtual-scroll-viewport{width:var(--cui-dropdown-min-width)}:host .dropdown-menu{--cui-dropdown-padding-y: 0}\n"] }]
11135
11158
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i1$2.FocusMonitor }, { type: MultiSelectService }, { type: i0.IterableDiffers }], propDecorators: { allowCreateOptions: [{
11136
11159
  type: Input,
11137
11160
  args: [{ transform: booleanAttribute }]
@@ -11226,7 +11249,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
11226
11249
  args: ['inputElement']
11227
11250
  }], dropdownMenu: [{
11228
11251
  type: ViewChild,
11229
- args: ['dropdownMenu']
11252
+ args: [DropdownMenuDirective, { read: ElementRef }]
11230
11253
  }], dropdown: [{
11231
11254
  type: ViewChild,
11232
11255
  args: [DropdownComponent, { read: ElementRef }]
@@ -17149,11 +17172,11 @@ class TabsComponent {
17149
17172
  }, { allowSignalWrites: true });
17150
17173
  }
17151
17174
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17152
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: TabsComponent, isStandalone: true, selector: "c-tabs", inputs: { activeItemKey: { classPropertyName: "activeItemKey", publicName: "activeItemKey", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeItemKey: "activeItemKeyChange" }, host: { properties: { "id": "id()" }, classAttribute: "tabs" }, providers: [TabsService], ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:block}\n"] }); }
17175
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: TabsComponent, isStandalone: true, selector: "c-tabs", inputs: { activeItemKey: { classPropertyName: "activeItemKey", publicName: "activeItemKey", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeItemKey: "activeItemKeyChange" }, host: { properties: { "id": "id()" }, classAttribute: "tabs" }, providers: [TabsService], exportAs: ["cTabs"], ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:block}\n"] }); }
17153
17176
  }
17154
17177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsComponent, decorators: [{
17155
17178
  type: Component,
17156
- args: [{ selector: 'c-tabs', standalone: true, imports: [], template: '<ng-content />', providers: [TabsService], host: {
17179
+ args: [{ exportAs: 'cTabs', selector: 'c-tabs', standalone: true, imports: [], template: '<ng-content />', providers: [TabsService], host: {
17157
17180
  '[id]': 'id()',
17158
17181
  class: 'tabs'
17159
17182
  }, styles: [":host{display:block}\n"] }]
@@ -17223,11 +17246,12 @@ class TabDirective {
17223
17246
  this.#elementRef.nativeElement.focus();
17224
17247
  }
17225
17248
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
17226
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.3", type: TabDirective, isStandalone: true, selector: "button[cTab]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, itemKey: { classPropertyName: "itemKey", publicName: "itemKey", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaControls: { classPropertyName: "ariaControls", publicName: "aria-controls", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button", "role": "tab" }, properties: { "class": "hostClasses()", "attr.aria-selected": "isActive()", "attr.aria-controls": "attrAriaControls()", "id": "propId()", "tabindex": "isActive() ? 0 : -1" } }, ngImport: i0 }); }
17249
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.3", type: TabDirective, isStandalone: true, selector: "button[cTab]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, itemKey: { classPropertyName: "itemKey", publicName: "itemKey", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaControls: { classPropertyName: "ariaControls", publicName: "aria-controls", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button", "role": "tab" }, properties: { "class": "hostClasses()", "attr.aria-selected": "isActive()", "attr.aria-controls": "attrAriaControls()", "id": "propId()", "tabindex": "isActive() ? 0 : -1" } }, exportAs: ["cTab"], ngImport: i0 }); }
17227
17250
  }
17228
17251
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabDirective, decorators: [{
17229
17252
  type: Directive,
17230
17253
  args: [{
17254
+ exportAs: 'cTab',
17231
17255
  selector: 'button[cTab]',
17232
17256
  standalone: true,
17233
17257
  host: {
@@ -17311,11 +17335,12 @@ class TabsListComponent {
17311
17335
  return;
17312
17336
  }
17313
17337
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17314
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.0.3", type: TabsListComponent, isStandalone: true, selector: "c-tabs-list", inputs: { layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown": "onKeydown($event)" }, properties: { "attr.role": "role()", "class": "hostClasses()" } }, queries: [{ propertyName: "tabs", predicate: TabDirective, isSignal: true }], ngImport: i0, template: '<ng-content />', isInline: true }); }
17338
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.0.3", type: TabsListComponent, isStandalone: true, selector: "c-tabs-list", inputs: { layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown": "onKeydown($event)" }, properties: { "attr.role": "role()", "class": "hostClasses()" } }, queries: [{ propertyName: "tabs", predicate: TabDirective, isSignal: true }], exportAs: ["cTabsList"], ngImport: i0, template: '<ng-content />', isInline: true }); }
17315
17339
  }
17316
17340
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsListComponent, decorators: [{
17317
17341
  type: Component,
17318
17342
  args: [{
17343
+ exportAs: 'cTabsList',
17319
17344
  selector: 'c-tabs-list',
17320
17345
  standalone: true,
17321
17346
  imports: [TabDirective],
@@ -17332,11 +17357,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
17332
17357
 
17333
17358
  class TabsContentComponent {
17334
17359
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17335
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: TabsContentComponent, isStandalone: true, selector: "c-tabs-content", host: { classAttribute: "tab-content" }, ngImport: i0, template: '<ng-content />', isInline: true }); }
17360
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: TabsContentComponent, isStandalone: true, selector: "c-tabs-content", host: { classAttribute: "tab-content" }, exportAs: ["cTabsContent"], ngImport: i0, template: '<ng-content />', isInline: true }); }
17336
17361
  }
17337
17362
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsContentComponent, decorators: [{
17338
17363
  type: Component,
17339
17364
  args: [{
17365
+ exportAs: 'cTabsContent',
17340
17366
  selector: 'c-tabs-content',
17341
17367
  standalone: true,
17342
17368
  template: '<ng-content />',
@@ -17412,7 +17438,7 @@ class TabPanelComponent {
17412
17438
  this.show.set(this.visible());
17413
17439
  }
17414
17440
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17415
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: TabPanelComponent, isStandalone: true, selector: "c-tab-panel", inputs: { ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, itemKey: { classPropertyName: "itemKey", publicName: "itemKey", isSignal: true, isRequired: true, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, transition: { classPropertyName: "transition", publicName: "transition", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visibleChange: "visibleChange" }, host: { attributes: { "role": "tabpanel" }, listeners: { "@fadeInOut.done": "onAnimationDone($event)" }, properties: { "class": "hostClasses()", "tabindex": "visible() ? tabindex(): -1", "attr.aria-labelledby": "attrAriaLabelledBy()", "id": "propId()", "@.disabled": "this.animationDisabled", "@fadeInOut": "this.animateType" } }, ngImport: i0, template: '<ng-content />', isInline: true, animations: [
17441
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: TabPanelComponent, isStandalone: true, selector: "c-tab-panel", inputs: { ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, itemKey: { classPropertyName: "itemKey", publicName: "itemKey", isSignal: true, isRequired: true, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, transition: { classPropertyName: "transition", publicName: "transition", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visibleChange: "visibleChange" }, host: { attributes: { "role": "tabpanel" }, listeners: { "@fadeInOut.done": "onAnimationDone($event)" }, properties: { "class": "hostClasses()", "tabindex": "visible() ? tabindex(): -1", "attr.aria-labelledby": "attrAriaLabelledBy()", "id": "propId()", "@.disabled": "this.animationDisabled", "@fadeInOut": "this.animateType" } }, exportAs: ["cTabPanel"], ngImport: i0, template: '<ng-content />', isInline: true, animations: [
17416
17442
  trigger('fadeInOut', [
17417
17443
  state('show', style({ opacity: 1 })),
17418
17444
  state('hide', style({ opacity: 0 })),
@@ -17424,6 +17450,7 @@ class TabPanelComponent {
17424
17450
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabPanelComponent, decorators: [{
17425
17451
  type: Component,
17426
17452
  args: [{
17453
+ exportAs: 'cTabPanel',
17427
17454
  selector: 'c-tab-panel',
17428
17455
  standalone: true,
17429
17456
  template: '<ng-content />',