@po-ui/ng-components 20.7.0 → 20.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/fesm2022/po-ui-ng-components.mjs +194 -59
  2. package/fesm2022/po-ui-ng-components.mjs.map +1 -1
  3. package/index.d.ts +200 -128
  4. package/lib/components/po-dropdown/po-dropdown-action.interface.d.ts +10 -0
  5. package/lib/components/po-dropdown/po-dropdown.component.d.ts +5 -0
  6. package/lib/components/po-listbox/interfaces/po-listbox-literals.interface.d.ts +2 -0
  7. package/lib/components/po-listbox/po-item-list/po-item-list-base.component.d.ts +1 -0
  8. package/lib/components/po-listbox/po-listbox-base.component.d.ts +8 -7
  9. package/lib/components/po-listbox/po-listbox.component.d.ts +14 -3
  10. package/lib/components/po-page/interfaces/po-page-action.interface.d.ts +6 -5
  11. package/lib/components/po-popup/po-popup-action.interface.d.ts +36 -4
  12. package/lib/components/po-popup/po-popup-base.component.d.ts +1 -0
  13. package/lib/services/po-theme/helpers/types/po-theme-dark-defaults-AA.constant.d.ts +4 -0
  14. package/lib/services/po-theme/helpers/types/po-theme-dark-defaults.constant.d.ts +5 -0
  15. package/package.json +4 -4
  16. package/po-ui-ng-components-20.9.0.tgz +0 -0
  17. package/schematics/ng-add/index.js +1 -1
  18. package/schematics/ng-update/v14/index.js +1 -1
  19. package/schematics/ng-update/v15/index.js +1 -1
  20. package/schematics/ng-update/v16/index.js +1 -1
  21. package/schematics/ng-update/v17/index.js +1 -1
  22. package/schematics/ng-update/v18/index.js +2 -2
  23. package/schematics/ng-update/v19/index.js +2 -2
  24. package/schematics/ng-update/v2/index.js +1 -1
  25. package/schematics/ng-update/v20/index.js +2 -2
  26. package/schematics/ng-update/v3/index.js +1 -1
  27. package/schematics/ng-update/v4/index.js +1 -1
  28. package/schematics/ng-update/v5/index.js +1 -1
  29. package/schematics/ng-update/v6/index.js +1 -1
  30. package/po-ui-ng-components-20.7.0.tgz +0 -0
@@ -8,7 +8,7 @@ import { trigger, transition, style, animate, group, query, animateChild, state,
8
8
  import { Subject, filter, fromEvent, debounceTime, Subscription, switchMap, isObservable, of, ReplaySubject, timer, throwError, Observable, map as map$1, catchError as catchError$1, startWith, delay as delay$1 } from 'rxjs';
9
9
  import * as i1$1 from '@angular/router';
10
10
  import { RouterModule, Router, NavigationEnd, NavigationCancel } from '@angular/router';
11
- import * as i2$1 from '@angular/cdk/listbox';
11
+ import * as i4 from '@angular/cdk/listbox';
12
12
  import { CdkListboxModule } from '@angular/cdk/listbox';
13
13
  import * as i1$2 from '@angular/forms';
14
14
  import { NG_VALUE_ACCESSOR, FormsModule, NG_VALIDATORS, Validators, NgControl, NgForm, ControlContainer } from '@angular/forms';
@@ -4555,6 +4555,8 @@ class PoPopupBaseComponent {
4555
4555
  _position = poPopupDefaultPosition;
4556
4556
  _size = undefined;
4557
4557
  _target;
4558
+ // Indica se há um listbox com subitens
4559
+ listboxSubitems = false;
4558
4560
  /** Lista de ações que serão exibidas no componente. */
4559
4561
  set actions(value) {
4560
4562
  this._actions = Array.isArray(value) ? value : [];
@@ -4715,11 +4717,14 @@ class PoPopupBaseComponent {
4715
4717
  closeEvent = new EventEmitter();
4716
4718
  clickItem = new EventEmitter();
4717
4719
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoPopupBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
4718
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: PoPopupBaseComponent, isStandalone: true, inputs: { actions: ["p-actions", "actions"], hideArrow: ["p-hide-arrow", "hideArrow"], isCornerAlign: ["p-is-corner-align", "isCornerAlign"], position: ["p-position", "position"], customPositions: ["p-custom-positions", "customPositions"], size: ["p-size", "size"], target: ["p-target", "target"] }, outputs: { closeEvent: "p-close", clickItem: "p-click-item" }, ngImport: i0 });
4720
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: PoPopupBaseComponent, isStandalone: true, inputs: { listboxSubitems: ["p-listbox-subitems", "listboxSubitems"], actions: ["p-actions", "actions"], hideArrow: ["p-hide-arrow", "hideArrow"], isCornerAlign: ["p-is-corner-align", "isCornerAlign"], position: ["p-position", "position"], customPositions: ["p-custom-positions", "customPositions"], size: ["p-size", "size"], target: ["p-target", "target"] }, outputs: { closeEvent: "p-close", clickItem: "p-click-item" }, ngImport: i0 });
4719
4721
  }
4720
4722
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoPopupBaseComponent, decorators: [{
4721
4723
  type: Directive
4722
- }], propDecorators: { actions: [{
4724
+ }], propDecorators: { listboxSubitems: [{
4725
+ type: Input,
4726
+ args: ['p-listbox-subitems']
4727
+ }], actions: [{
4723
4728
  type: Input,
4724
4729
  args: ['p-actions']
4725
4730
  }], hideArrow: [{
@@ -4768,15 +4773,19 @@ var PoItemListFilterMode;
4768
4773
 
4769
4774
  const poListBoxLiteralsDefault = {
4770
4775
  en: {
4776
+ backToPreviousGroup: 'Go back to the previous list',
4771
4777
  noItems: 'No items found'
4772
4778
  },
4773
4779
  es: {
4780
+ backToPreviousGroup: 'Volver a la lista anterior',
4774
4781
  noItems: 'No se encontraron artículos'
4775
4782
  },
4776
4783
  pt: {
4784
+ backToPreviousGroup: 'Voltar para a lista anterior',
4777
4785
  noItems: 'Nenhum item encontrado'
4778
4786
  },
4779
4787
  ru: {
4788
+ backToPreviousGroup: 'Вернуться к предыдущему списку',
4780
4789
  noItems: 'ничего не найдено'
4781
4790
  }
4782
4791
  };
@@ -4790,6 +4799,7 @@ class PoListBoxBaseComponent {
4790
4799
  _literals;
4791
4800
  language = poLocaleDefault;
4792
4801
  _size = undefined;
4802
+ listboxSubitems = false;
4793
4803
  visible = false;
4794
4804
  set type(value) {
4795
4805
  this._type = PoItemListType[value] ?? 'action';
@@ -4824,16 +4834,6 @@ class PoListBoxBaseComponent {
4824
4834
  isTabs = false;
4825
4835
  // parâmetro que pode ser passado para o popup ao clicar em um item
4826
4836
  param;
4827
- selectItem = new EventEmitter();
4828
- closeEvent = new EventEmitter();
4829
- // MULTISELECT PROPERTIES
4830
- //output para evento do checkbox
4831
- change = new EventEmitter();
4832
- //output para evento do checkbox
4833
- selectCombo = new EventEmitter();
4834
- //output para evento do checkbox de selecionar todos
4835
- changeAll = new EventEmitter();
4836
- UpdateInfiniteScroll = new EventEmitter();
4837
4837
  //valor do checkbox de selecionar todos
4838
4838
  checkboxAllValue;
4839
4839
  // Propriedade que recebe a lista de opções selecionadas.
@@ -4842,8 +4842,6 @@ class PoListBoxBaseComponent {
4842
4842
  selectedOption;
4843
4843
  fieldValue = 'value';
4844
4844
  fieldLabel = 'label';
4845
- // Evento disparado a cada tecla digitada na pesquisa.
4846
- changeSearch = new EventEmitter();
4847
4845
  // Propriedade que recebe as literais definidas no componente `po-multiselect`.
4848
4846
  literalSearch;
4849
4847
  // Propriedade que recebe o valor de comparação de pesquisa
@@ -4882,6 +4880,18 @@ class PoListBoxBaseComponent {
4882
4880
  placeholderListbox;
4883
4881
  // Define se haverá ou não um separador entre todos os itens do listbox
4884
4882
  separator = false;
4883
+ // Evento disparado a cada tecla digitada na pesquisa.
4884
+ changeSearch = new EventEmitter();
4885
+ selectItem = new EventEmitter();
4886
+ closeEvent = new EventEmitter();
4887
+ // MULTISELECT PROPERTIES
4888
+ //output para evento do checkbox
4889
+ change = new EventEmitter();
4890
+ //output para evento do checkbox
4891
+ selectCombo = new EventEmitter();
4892
+ //output para evento do checkbox de selecionar todos
4893
+ changeAll = new EventEmitter();
4894
+ UpdateInfiniteScroll = new EventEmitter();
4885
4895
  // Evento disparado quando uma tab é ativada
4886
4896
  activatedTab = new EventEmitter();
4887
4897
  // Evento disparado no click de uma aba do tabs
@@ -4894,11 +4904,14 @@ class PoListBoxBaseComponent {
4894
4904
  this.language = languageService.getShortLanguage();
4895
4905
  }
4896
4906
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoListBoxBaseComponent, deps: [{ token: PoLanguageService }], target: i0.ɵɵFactoryTarget.Directive });
4897
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.0.7", type: PoListBoxBaseComponent, isStandalone: true, inputs: { visible: ["p-visible", "visible", convertToBoolean], type: ["p-type", "type"], items: ["p-items", "items"], literals: ["p-literals", "literals"], isTabs: ["p-is-tabs", "isTabs", convertToBoolean], param: ["p-param", "param"], checkboxAllValue: ["p-checkboxAllValue", "checkboxAllValue"], selectedOptions: ["p-selected-options", "selectedOptions"], selectedOption: ["p-selected-option", "selectedOption"], fieldValue: ["p-field-value", "fieldValue"], fieldLabel: ["p-field-label", "fieldLabel"], literalSearch: ["p-literal-search", "literalSearch"], fieldValueSearch: ["p-field-value-search", "fieldValueSearch"], hideSearch: ["p-hide-search", "hideSearch"], hideSelectAll: ["p-hide-select-all", "hideSelectAll"], multiselectTemplate: ["p-multiselect-template", "multiselectTemplate"], template: ["p-template", "template"], placeholderSearch: ["p-placeholder-search", "placeholderSearch"], searchValue: ["p-search-value", "searchValue"], isServerSearching: ["p-is-searching", "isServerSearching", convertToBoolean], infiniteLoading: ["p-infinite-loading", "infiniteLoading", convertToBoolean], infiniteScroll: ["p-infinite-scroll", "infiniteScroll", convertToBoolean], cache: ["p-cache", "cache", convertToBoolean], infiniteScrollDistance: ["p-infinite-scroll-distance", "infiniteScrollDistance"], filterMode: ["p-filter-mode", "filterMode"], isFiltering: ["p-filtering", "isFiltering"], shouldMarkLetters: ["p-should-mark-letter", "shouldMarkLetters"], size: ["p-size", "size"], compareCache: ["p-compare-cache", "compareCache"], comboService: ["p-combo-service", "comboService"], containerWidth: ["p-container-width", "containerWidth"], keysLabel: ["p-keys-label", "keysLabel"], footerActionListbox: ["p-footer-action-listbox", "footerActionListbox"], placeholderListbox: ["p-placeholder-listbox", "placeholderListbox"], separator: ["p-separator", "separator"] }, outputs: { selectItem: "p-select-item", closeEvent: "p-close", change: "p-change", selectCombo: "p-selectcombo-item", changeAll: "p-change-all", UpdateInfiniteScroll: "p-update-infinite-scroll", changeSearch: "p-change-search", activatedTab: "p-activated-tabs", clickTab: "p-click-tabs", changeStateTabs: "p-change-state-tabs", clickItem: "p-click-item", footerActionListboxEvent: "p-footer-action-listbox-event" }, ngImport: i0 });
4907
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.0.7", type: PoListBoxBaseComponent, isStandalone: true, inputs: { listboxSubitems: ["p-listbox-subitems", "listboxSubitems"], visible: ["p-visible", "visible", convertToBoolean], type: ["p-type", "type"], items: ["p-items", "items"], literals: ["p-literals", "literals"], isTabs: ["p-is-tabs", "isTabs", convertToBoolean], param: ["p-param", "param"], checkboxAllValue: ["p-checkboxAllValue", "checkboxAllValue"], selectedOptions: ["p-selected-options", "selectedOptions"], selectedOption: ["p-selected-option", "selectedOption"], fieldValue: ["p-field-value", "fieldValue"], fieldLabel: ["p-field-label", "fieldLabel"], literalSearch: ["p-literal-search", "literalSearch"], fieldValueSearch: ["p-field-value-search", "fieldValueSearch"], hideSearch: ["p-hide-search", "hideSearch"], hideSelectAll: ["p-hide-select-all", "hideSelectAll"], multiselectTemplate: ["p-multiselect-template", "multiselectTemplate"], template: ["p-template", "template"], placeholderSearch: ["p-placeholder-search", "placeholderSearch"], searchValue: ["p-search-value", "searchValue"], isServerSearching: ["p-is-searching", "isServerSearching", convertToBoolean], infiniteLoading: ["p-infinite-loading", "infiniteLoading", convertToBoolean], infiniteScroll: ["p-infinite-scroll", "infiniteScroll", convertToBoolean], cache: ["p-cache", "cache", convertToBoolean], infiniteScrollDistance: ["p-infinite-scroll-distance", "infiniteScrollDistance"], filterMode: ["p-filter-mode", "filterMode"], isFiltering: ["p-filtering", "isFiltering"], shouldMarkLetters: ["p-should-mark-letter", "shouldMarkLetters"], size: ["p-size", "size"], compareCache: ["p-compare-cache", "compareCache"], comboService: ["p-combo-service", "comboService"], containerWidth: ["p-container-width", "containerWidth"], keysLabel: ["p-keys-label", "keysLabel"], footerActionListbox: ["p-footer-action-listbox", "footerActionListbox"], placeholderListbox: ["p-placeholder-listbox", "placeholderListbox"], separator: ["p-separator", "separator"] }, outputs: { changeSearch: "p-change-search", selectItem: "p-select-item", closeEvent: "p-close", change: "p-change", selectCombo: "p-selectcombo-item", changeAll: "p-change-all", UpdateInfiniteScroll: "p-update-infinite-scroll", activatedTab: "p-activated-tabs", clickTab: "p-click-tabs", changeStateTabs: "p-change-state-tabs", clickItem: "p-click-item", footerActionListboxEvent: "p-footer-action-listbox-event" }, host: { properties: { "attr.p-size": "this.size" } }, ngImport: i0 });
4898
4908
  }
4899
4909
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoListBoxBaseComponent, decorators: [{
4900
4910
  type: Directive
4901
- }], ctorParameters: () => [{ type: PoLanguageService }], propDecorators: { visible: [{
4911
+ }], ctorParameters: () => [{ type: PoLanguageService }], propDecorators: { listboxSubitems: [{
4912
+ type: Input,
4913
+ args: ['p-listbox-subitems']
4914
+ }], visible: [{
4902
4915
  type: Input,
4903
4916
  args: [{ alias: 'p-visible', transform: convertToBoolean }]
4904
4917
  }], type: [{
@@ -4916,24 +4929,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
4916
4929
  }], param: [{
4917
4930
  type: Input,
4918
4931
  args: ['p-param']
4919
- }], selectItem: [{
4920
- type: Output,
4921
- args: ['p-select-item']
4922
- }], closeEvent: [{
4923
- type: Output,
4924
- args: ['p-close']
4925
- }], change: [{
4926
- type: Output,
4927
- args: ['p-change']
4928
- }], selectCombo: [{
4929
- type: Output,
4930
- args: ['p-selectcombo-item']
4931
- }], changeAll: [{
4932
- type: Output,
4933
- args: ['p-change-all']
4934
- }], UpdateInfiniteScroll: [{
4935
- type: Output,
4936
- args: ['p-update-infinite-scroll']
4937
4932
  }], checkboxAllValue: [{
4938
4933
  type: Input,
4939
4934
  args: ['p-checkboxAllValue']
@@ -4949,9 +4944,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
4949
4944
  }], fieldLabel: [{
4950
4945
  type: Input,
4951
4946
  args: ['p-field-label']
4952
- }], changeSearch: [{
4953
- type: Output,
4954
- args: ['p-change-search']
4955
4947
  }], literalSearch: [{
4956
4948
  type: Input,
4957
4949
  args: ['p-literal-search']
@@ -5001,6 +4993,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
5001
4993
  type: Input,
5002
4994
  args: ['p-should-mark-letter']
5003
4995
  }], size: [{
4996
+ type: HostBinding,
4997
+ args: ['attr.p-size']
4998
+ }, {
5004
4999
  type: Input,
5005
5000
  args: ['p-size']
5006
5001
  }], compareCache: [{
@@ -5024,6 +5019,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
5024
5019
  }], separator: [{
5025
5020
  type: Input,
5026
5021
  args: ['p-separator']
5022
+ }], changeSearch: [{
5023
+ type: Output,
5024
+ args: ['p-change-search']
5025
+ }], selectItem: [{
5026
+ type: Output,
5027
+ args: ['p-select-item']
5028
+ }], closeEvent: [{
5029
+ type: Output,
5030
+ args: ['p-close']
5031
+ }], change: [{
5032
+ type: Output,
5033
+ args: ['p-change']
5034
+ }], selectCombo: [{
5035
+ type: Output,
5036
+ args: ['p-selectcombo-item']
5037
+ }], changeAll: [{
5038
+ type: Output,
5039
+ args: ['p-change-all']
5040
+ }], UpdateInfiniteScroll: [{
5041
+ type: Output,
5042
+ args: ['p-update-infinite-scroll']
5027
5043
  }], activatedTab: [{
5028
5044
  type: Output,
5029
5045
  args: ['p-activated-tabs']
@@ -5521,6 +5537,8 @@ class PoItemListBaseComponent {
5521
5537
  * Define um ícone que será exibido ao lado esquerdo do rótulo.
5522
5538
  */
5523
5539
  icon;
5540
+ // Define a posição do ícone: 'left' (padrão) ou 'right'.
5541
+ iconPosition = 'left';
5524
5542
  /**
5525
5543
  * @optional
5526
5544
  *
@@ -5566,7 +5584,7 @@ class PoItemListBaseComponent {
5566
5584
  }
5567
5585
  }
5568
5586
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoItemListBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
5569
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.0.7", type: PoItemListBaseComponent, isStandalone: true, inputs: { type: ["p-type", "type"], visible: ["p-visible", "visible"], item: ["p-item", "item"], label: ["p-label", "label"], size: ["p-size", "size"], value: ["p-value", "value"], danger: ["p-danger", "danger", convertToBoolean], disabled: ["p-disabled", "disabled"], selected: ["p-selected", "selected", convertToBoolean], separator: ["p-separator", "separator", convertToBoolean], icon: ["p-icon", "icon"], checkboxValue: ["p-checkbox-value", "checkboxValue"], fieldValue: ["p-field-value", "fieldValue"], fieldLabel: ["p-field-label", "fieldLabel"], template: ["p-template", "template"], templateContext: ["p-template-context", "templateContext"], searchValue: ["p-search-value", "searchValue"], filterMode: ["p-filter-mode", "filterMode"], isFiltering: ["p-filtering", "isFiltering"], shouldMarkLetters: ["p-should-mark-letter", "shouldMarkLetters"], compareCache: ["p-compare-cache", "compareCache"], comboService: ["p-combo-service", "comboService"], isTabs: ["p-is-tabs", "isTabs"], tabHide: ["p-tab-hide", "tabHide"], activeTabs: ["p-active-tabs", "activeTabs"], keysLabel: ["p-keys-label", "keysLabel"] }, outputs: { clickItem: "p-click-item", checkboxItem: "p-selectcheckbox-item", comboItem: "p-selectcombo-item", tabsItem: "p-emit-item-tabs", activatedTab: "p-activated-tabs" }, host: { properties: { "attr.p-type": "this.type" } }, ngImport: i0 });
5587
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.0.7", type: PoItemListBaseComponent, isStandalone: true, inputs: { type: ["p-type", "type"], visible: ["p-visible", "visible"], item: ["p-item", "item"], label: ["p-label", "label"], size: ["p-size", "size"], value: ["p-value", "value"], danger: ["p-danger", "danger", convertToBoolean], disabled: ["p-disabled", "disabled"], selected: ["p-selected", "selected", convertToBoolean], separator: ["p-separator", "separator", convertToBoolean], icon: ["p-icon", "icon"], iconPosition: ["p-icon-position", "iconPosition"], checkboxValue: ["p-checkbox-value", "checkboxValue"], fieldValue: ["p-field-value", "fieldValue"], fieldLabel: ["p-field-label", "fieldLabel"], template: ["p-template", "template"], templateContext: ["p-template-context", "templateContext"], searchValue: ["p-search-value", "searchValue"], filterMode: ["p-filter-mode", "filterMode"], isFiltering: ["p-filtering", "isFiltering"], shouldMarkLetters: ["p-should-mark-letter", "shouldMarkLetters"], compareCache: ["p-compare-cache", "compareCache"], comboService: ["p-combo-service", "comboService"], isTabs: ["p-is-tabs", "isTabs"], tabHide: ["p-tab-hide", "tabHide"], activeTabs: ["p-active-tabs", "activeTabs"], keysLabel: ["p-keys-label", "keysLabel"] }, outputs: { clickItem: "p-click-item", checkboxItem: "p-selectcheckbox-item", comboItem: "p-selectcombo-item", tabsItem: "p-emit-item-tabs", activatedTab: "p-activated-tabs" }, host: { properties: { "attr.p-type": "this.type", "attr.p-size": "this.size" } }, ngImport: i0 });
5570
5588
  }
5571
5589
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoItemListBaseComponent, decorators: [{
5572
5590
  type: Directive
@@ -5586,6 +5604,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
5586
5604
  type: Input,
5587
5605
  args: ['p-label']
5588
5606
  }], size: [{
5607
+ type: HostBinding,
5608
+ args: ['attr.p-size']
5609
+ }, {
5589
5610
  type: Input,
5590
5611
  args: ['p-size']
5591
5612
  }], value: [{
@@ -5606,6 +5627,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
5606
5627
  }], icon: [{
5607
5628
  type: Input,
5608
5629
  args: ['p-icon']
5630
+ }], iconPosition: [{
5631
+ type: Input,
5632
+ args: ['p-icon-position']
5609
5633
  }], clickItem: [{
5610
5634
  type: Output,
5611
5635
  args: ['p-click-item']
@@ -8030,11 +8054,11 @@ class PoItemListComponent extends PoItemListBaseComponent {
8030
8054
  return value.replace(/</g, '&lt;').replace(/>/g, '&gt;');
8031
8055
  }
8032
8056
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoItemListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
8033
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: PoItemListComponent, isStandalone: false, selector: "po-item-list", viewQueries: [{ propertyName: "itemList", first: true, predicate: ["itemList"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container (keydown)=\"onCheckboxItemEmit($event)\">\n @switch (type) {\n @default {\n <div\n #itemList\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__disabled]=\"disabled || !visible\"\n [class.po-item-list__selected]=\"(selected || activeTabs) && !disabled\"\n [class.po-item-list__hidden]=\"tabHide\"\n [attr.aria-disabled]=\"disabled || !visible\"\n [attr.aria-label]=\"label\"\n [class.po-item-list__danger]=\"danger\"\n class=\"po-item-list po-item-list__action\"\n >\n @if (icon) {\n <po-icon class=\"po-popup-icon-item\" [p-icon]=\"icon\"></po-icon>\n }\n <span class=\"po-item-list-label\">{{ label }}</span>\n </div>\n }\n @case ('option') {\n <div\n #itemList\n class=\"po-item-list po-item-list__option\"\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__selected]=\"selected && !disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"label\"\n (click)=\"onComboItem(item, $event)\"\n >\n @if (!template) {\n @switch (keysLabel.length) {\n @case (0) {\n <span class=\"po-item-list-label\" [innerHTML]=\"getLabelFormatted(label)\"></span>\n }\n\n @case (1) {\n <span class=\"po-item-list-label\">{{ item[keysLabel[0]] }}</span>\n }\n\n @case (2) {\n <div class=\"po-item-list-label po-item-list-label-group\">\n <span class=\"po-item-list-label\">{{ item[keysLabel[0]] }}</span>\n <span class=\"po-item-list-sublabel\">{{ item[keysLabel[1]] }}</span>\n </div>\n }\n\n @default {\n <div class=\"po-item-list-label po-item-list-label-group\">\n <span class=\"po-item-list-label\">{{ item[keysLabel[0]] }}</span>\n <span class=\"po-item-list-sublabel\">{{ item[keysLabel[1]] }} - {{ item[keysLabel[2]] }}</span>\n </div>\n }\n }\n }\n\n <ng-template\n [ngTemplateOutlet]=\"template?.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: templateContext }\"\n >\n </ng-template>\n </div>\n }\n @case ('check') {\n <div\n class=\"po-item-list po-item-list__check\"\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__selected]=\"selected && !disabled\"\n [class.po-item-list__disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"label\"\n (click)=\"onCheckboxItem()\"\n (keydown)=\"onCheckboxItemEmit($event)\"\n (keyup)=\"onCheckboxItemEmit($event)\"\n >\n <po-checkbox\n [p-disabled-tabindex]=\"true\"\n [p-checkboxValue]=\"checkboxValue === null ? 'mixed' : checkboxValue\"\n [p-disabled]=\"disabled\"\n [p-size]=\"size\"\n ></po-checkbox>\n @if (!template) {\n <span class=\"po-item-list__label\">{{ label }}</span>\n }\n <ng-template\n [ngTemplateOutlet]=\"template?.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: templateContext }\"\n >\n </ng-template>\n </div>\n }\n }\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PoCheckboxComponent, selector: "po-checkbox" }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }] });
8057
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: PoItemListComponent, isStandalone: false, selector: "po-item-list", viewQueries: [{ propertyName: "itemList", first: true, predicate: ["itemList"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container (keydown)=\"onCheckboxItemEmit($event)\">\n @switch (type) {\n @default {\n <div\n #itemList\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__disabled]=\"disabled || !visible\"\n [class.po-item-list__selected]=\"(selected || activeTabs) && !disabled\"\n [class.po-item-list__hidden]=\"tabHide\"\n [attr.aria-disabled]=\"disabled || !visible\"\n [attr.aria-label]=\"label\"\n [class.po-item-list__danger]=\"danger\"\n class=\"po-item-list po-item-list__action\"\n >\n @if (icon && iconPosition === 'left') {\n <po-icon\n class=\"po-popup-icon-item po-field-icon\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n }\n <span class=\"po-item-list-label\">{{ label }}</span>\n\n @if (icon && iconPosition === 'right') {\n <po-icon class=\"po-popup-icon-item-right po-field-icon\" [p-icon]=\"icon\"></po-icon>\n }\n </div>\n }\n @case ('option') {\n <div\n #itemList\n class=\"po-item-list po-item-list__option\"\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__selected]=\"selected && !disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"label\"\n (click)=\"onComboItem(item, $event)\"\n >\n @if (!template) {\n @switch (keysLabel.length) {\n @case (0) {\n <span class=\"po-item-list-label\" [innerHTML]=\"getLabelFormatted(label)\"></span>\n }\n\n @case (1) {\n <span class=\"po-item-list-label\">{{ item[keysLabel[0]] }}</span>\n }\n\n @case (2) {\n <div class=\"po-item-list-label po-item-list-label-group\">\n <span class=\"po-item-list-label\">{{ item[keysLabel[0]] }}</span>\n <span class=\"po-item-list-sublabel\">{{ item[keysLabel[1]] }}</span>\n </div>\n }\n\n @default {\n <div class=\"po-item-list-label po-item-list-label-group\">\n <span class=\"po-item-list-label\">{{ item[keysLabel[0]] }}</span>\n <span class=\"po-item-list-sublabel\">{{ item[keysLabel[1]] }} - {{ item[keysLabel[2]] }}</span>\n </div>\n }\n }\n }\n\n <ng-template\n [ngTemplateOutlet]=\"template?.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: templateContext }\"\n >\n </ng-template>\n </div>\n }\n @case ('check') {\n <div\n class=\"po-item-list po-item-list__check\"\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__selected]=\"selected && !disabled\"\n [class.po-item-list__disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"label\"\n (click)=\"onCheckboxItem()\"\n (keydown)=\"onCheckboxItemEmit($event)\"\n (keyup)=\"onCheckboxItemEmit($event)\"\n >\n <po-checkbox\n [p-disabled-tabindex]=\"true\"\n [p-checkboxValue]=\"checkboxValue === null ? 'mixed' : checkboxValue\"\n [p-disabled]=\"disabled\"\n [p-size]=\"size\"\n ></po-checkbox>\n @if (!template) {\n <span class=\"po-item-list__label\">{{ label }}</span>\n }\n <ng-template\n [ngTemplateOutlet]=\"template?.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: templateContext }\"\n >\n </ng-template>\n </div>\n }\n }\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PoCheckboxComponent, selector: "po-checkbox" }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }] });
8034
8058
  }
8035
8059
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoItemListComponent, decorators: [{
8036
8060
  type: Component,
8037
- args: [{ selector: 'po-item-list', standalone: false, template: "<ng-container (keydown)=\"onCheckboxItemEmit($event)\">\n @switch (type) {\n @default {\n <div\n #itemList\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__disabled]=\"disabled || !visible\"\n [class.po-item-list__selected]=\"(selected || activeTabs) && !disabled\"\n [class.po-item-list__hidden]=\"tabHide\"\n [attr.aria-disabled]=\"disabled || !visible\"\n [attr.aria-label]=\"label\"\n [class.po-item-list__danger]=\"danger\"\n class=\"po-item-list po-item-list__action\"\n >\n @if (icon) {\n <po-icon class=\"po-popup-icon-item\" [p-icon]=\"icon\"></po-icon>\n }\n <span class=\"po-item-list-label\">{{ label }}</span>\n </div>\n }\n @case ('option') {\n <div\n #itemList\n class=\"po-item-list po-item-list__option\"\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__selected]=\"selected && !disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"label\"\n (click)=\"onComboItem(item, $event)\"\n >\n @if (!template) {\n @switch (keysLabel.length) {\n @case (0) {\n <span class=\"po-item-list-label\" [innerHTML]=\"getLabelFormatted(label)\"></span>\n }\n\n @case (1) {\n <span class=\"po-item-list-label\">{{ item[keysLabel[0]] }}</span>\n }\n\n @case (2) {\n <div class=\"po-item-list-label po-item-list-label-group\">\n <span class=\"po-item-list-label\">{{ item[keysLabel[0]] }}</span>\n <span class=\"po-item-list-sublabel\">{{ item[keysLabel[1]] }}</span>\n </div>\n }\n\n @default {\n <div class=\"po-item-list-label po-item-list-label-group\">\n <span class=\"po-item-list-label\">{{ item[keysLabel[0]] }}</span>\n <span class=\"po-item-list-sublabel\">{{ item[keysLabel[1]] }} - {{ item[keysLabel[2]] }}</span>\n </div>\n }\n }\n }\n\n <ng-template\n [ngTemplateOutlet]=\"template?.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: templateContext }\"\n >\n </ng-template>\n </div>\n }\n @case ('check') {\n <div\n class=\"po-item-list po-item-list__check\"\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__selected]=\"selected && !disabled\"\n [class.po-item-list__disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"label\"\n (click)=\"onCheckboxItem()\"\n (keydown)=\"onCheckboxItemEmit($event)\"\n (keyup)=\"onCheckboxItemEmit($event)\"\n >\n <po-checkbox\n [p-disabled-tabindex]=\"true\"\n [p-checkboxValue]=\"checkboxValue === null ? 'mixed' : checkboxValue\"\n [p-disabled]=\"disabled\"\n [p-size]=\"size\"\n ></po-checkbox>\n @if (!template) {\n <span class=\"po-item-list__label\">{{ label }}</span>\n }\n <ng-template\n [ngTemplateOutlet]=\"template?.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: templateContext }\"\n >\n </ng-template>\n </div>\n }\n }\n</ng-container>\n" }]
8061
+ args: [{ selector: 'po-item-list', standalone: false, template: "<ng-container (keydown)=\"onCheckboxItemEmit($event)\">\n @switch (type) {\n @default {\n <div\n #itemList\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__disabled]=\"disabled || !visible\"\n [class.po-item-list__selected]=\"(selected || activeTabs) && !disabled\"\n [class.po-item-list__hidden]=\"tabHide\"\n [attr.aria-disabled]=\"disabled || !visible\"\n [attr.aria-label]=\"label\"\n [class.po-item-list__danger]=\"danger\"\n class=\"po-item-list po-item-list__action\"\n >\n @if (icon && iconPosition === 'left') {\n <po-icon\n class=\"po-popup-icon-item po-field-icon\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n }\n <span class=\"po-item-list-label\">{{ label }}</span>\n\n @if (icon && iconPosition === 'right') {\n <po-icon class=\"po-popup-icon-item-right po-field-icon\" [p-icon]=\"icon\"></po-icon>\n }\n </div>\n }\n @case ('option') {\n <div\n #itemList\n class=\"po-item-list po-item-list__option\"\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__selected]=\"selected && !disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"label\"\n (click)=\"onComboItem(item, $event)\"\n >\n @if (!template) {\n @switch (keysLabel.length) {\n @case (0) {\n <span class=\"po-item-list-label\" [innerHTML]=\"getLabelFormatted(label)\"></span>\n }\n\n @case (1) {\n <span class=\"po-item-list-label\">{{ item[keysLabel[0]] }}</span>\n }\n\n @case (2) {\n <div class=\"po-item-list-label po-item-list-label-group\">\n <span class=\"po-item-list-label\">{{ item[keysLabel[0]] }}</span>\n <span class=\"po-item-list-sublabel\">{{ item[keysLabel[1]] }}</span>\n </div>\n }\n\n @default {\n <div class=\"po-item-list-label po-item-list-label-group\">\n <span class=\"po-item-list-label\">{{ item[keysLabel[0]] }}</span>\n <span class=\"po-item-list-sublabel\">{{ item[keysLabel[1]] }} - {{ item[keysLabel[2]] }}</span>\n </div>\n }\n }\n }\n\n <ng-template\n [ngTemplateOutlet]=\"template?.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: templateContext }\"\n >\n </ng-template>\n </div>\n }\n @case ('check') {\n <div\n class=\"po-item-list po-item-list__check\"\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__selected]=\"selected && !disabled\"\n [class.po-item-list__disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"label\"\n (click)=\"onCheckboxItem()\"\n (keydown)=\"onCheckboxItemEmit($event)\"\n (keyup)=\"onCheckboxItemEmit($event)\"\n >\n <po-checkbox\n [p-disabled-tabindex]=\"true\"\n [p-checkboxValue]=\"checkboxValue === null ? 'mixed' : checkboxValue\"\n [p-disabled]=\"disabled\"\n [p-size]=\"size\"\n ></po-checkbox>\n @if (!template) {\n <span class=\"po-item-list__label\">{{ label }}</span>\n }\n <ng-template\n [ngTemplateOutlet]=\"template?.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: templateContext }\"\n >\n </ng-template>\n </div>\n }\n }\n</ng-container>\n" }]
8038
8062
  }], propDecorators: { itemList: [{
8039
8063
  type: ViewChild,
8040
8064
  args: ['itemList', { static: true }]
@@ -8141,27 +8165,50 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
8141
8165
 
8142
8166
  class PoListBoxComponent extends PoListBoxBaseComponent {
8143
8167
  element = inject(ElementRef);
8168
+ currentItems = [];
8169
+ currentGroup = null;
8170
+ navigationStack = [];
8144
8171
  renderer = inject(Renderer2);
8145
8172
  router = inject(Router);
8146
8173
  changeDetector = inject(ChangeDetectorRef);
8147
8174
  listbox;
8148
8175
  listboxItemList;
8176
+ listboxGroupHeader;
8149
8177
  searchElement;
8150
8178
  popupHeaderContainer;
8179
+ listboxItems;
8151
8180
  scrollEvent$;
8152
8181
  subscriptionScrollEvent;
8153
8182
  constructor() {
8154
8183
  const languageService = inject(PoLanguageService);
8155
8184
  super(languageService);
8156
8185
  }
8186
+ ngOnInit() {
8187
+ if (this.listboxSubitems) {
8188
+ this.currentItems = this.items;
8189
+ }
8190
+ }
8157
8191
  ngAfterViewInit() {
8158
8192
  this.setListBoxMaxHeight();
8193
+ this.setListBoxWidth();
8159
8194
  this.listboxItemList?.nativeElement.focus();
8195
+ if (this.listboxSubitems) {
8196
+ requestAnimationFrame(() => {
8197
+ const firstItem = this.listboxItems?.first.nativeElement;
8198
+ if (firstItem) {
8199
+ firstItem.focus();
8200
+ setTimeout(() => {
8201
+ firstItem.dispatchEvent(new FocusEvent('focus', { bubbles: true }));
8202
+ }, 0);
8203
+ }
8204
+ });
8205
+ }
8160
8206
  this.changeDetector.detectChanges();
8161
8207
  }
8162
8208
  ngOnChanges(changes) {
8163
8209
  if (changes?.items) {
8164
8210
  this.setListBoxMaxHeight();
8211
+ this.setListBoxWidth();
8165
8212
  }
8166
8213
  if (this.visible && this.infiniteScroll) {
8167
8214
  this.checkInfiniteScroll();
@@ -8172,7 +8219,55 @@ class PoListBoxComponent extends PoListBoxBaseComponent {
8172
8219
  this.subscriptionScrollEvent.unsubscribe();
8173
8220
  }
8174
8221
  }
8175
- onSelectItem(itemListAction) {
8222
+ openGroup(group, event) {
8223
+ event?.stopPropagation();
8224
+ this.navigationStack.push({
8225
+ group: this.currentGroup,
8226
+ items: this.currentItems
8227
+ });
8228
+ this.currentGroup = group;
8229
+ this.currentItems = group.subItems || [];
8230
+ requestAnimationFrame(() => {
8231
+ const firstItem = this.listboxGroupHeader?.nativeElement;
8232
+ if (firstItem) {
8233
+ firstItem.focus();
8234
+ setTimeout(() => {
8235
+ firstItem.dispatchEvent(new FocusEvent('focus', { bubbles: true }));
8236
+ }, 0);
8237
+ }
8238
+ });
8239
+ }
8240
+ goBack(event) {
8241
+ event?.stopPropagation();
8242
+ const previous = this.navigationStack.pop();
8243
+ if (previous) {
8244
+ this.currentGroup = previous.group;
8245
+ this.currentItems = previous.items;
8246
+ }
8247
+ else {
8248
+ this.currentGroup = null;
8249
+ this.currentItems = this.items;
8250
+ }
8251
+ this.clickItem.emit({ goBack: true });
8252
+ requestAnimationFrame(() => {
8253
+ const firstItem = this.listboxItems?.first?.nativeElement;
8254
+ if (firstItem) {
8255
+ firstItem.focus();
8256
+ setTimeout(() => {
8257
+ firstItem.dispatchEvent(new FocusEvent('focus', { bubbles: true }));
8258
+ }, 0);
8259
+ }
8260
+ });
8261
+ }
8262
+ onKeydownGoBack(event) {
8263
+ if (event.key === 'Enter') {
8264
+ this.goBack(event);
8265
+ }
8266
+ if (event?.code === 'Escape' || event.code === 'Tab') {
8267
+ this.closeEvent.emit();
8268
+ }
8269
+ }
8270
+ onSelectItem(itemListAction, event) {
8176
8271
  const isDisabled = itemListAction.hasOwnProperty('disabled') &&
8177
8272
  itemListAction.disabled !== null &&
8178
8273
  itemListAction.disabled !== undefined
@@ -8186,12 +8281,18 @@ class PoListBoxComponent extends PoListBoxBaseComponent {
8186
8281
  if (this.isTabs && !itemListAction.disabled && !itemListAction.hide) {
8187
8282
  this.onClickTabs(itemListAction);
8188
8283
  }
8189
- if (itemListAction && itemListAction.action && !isDisabled && isVisible) {
8284
+ if (itemListAction?.action && !isDisabled && isVisible) {
8190
8285
  itemListAction.action(this.param || itemListAction);
8191
8286
  }
8192
- if (itemListAction && itemListAction.url && !isDisabled && isVisible) {
8287
+ if (itemListAction?.url && !isDisabled && isVisible) {
8193
8288
  return this.openUrl(itemListAction.url);
8194
8289
  }
8290
+ if (itemListAction?.subItems?.length) {
8291
+ this.openGroup(itemListAction, event);
8292
+ }
8293
+ else if (this.listboxSubitems) {
8294
+ this.closeEvent.emit();
8295
+ }
8195
8296
  if (!isDisabled) {
8196
8297
  this.clickItem.emit(itemListAction);
8197
8298
  }
@@ -8202,7 +8303,7 @@ class PoListBoxComponent extends PoListBoxBaseComponent {
8202
8303
  }
8203
8304
  }
8204
8305
  onKeyDown(itemListAction, event) {
8205
- event.preventDefault();
8306
+ event?.preventDefault();
8206
8307
  if ((event && event.code === 'Enter') || event.code === 'Space') {
8207
8308
  if (itemListAction.type === 'footerAction') {
8208
8309
  this.handleFooterActionListbox();
@@ -8324,9 +8425,10 @@ class PoListBoxComponent extends PoListBoxBaseComponent {
8324
8425
  : itemListAction[property];
8325
8426
  }
8326
8427
  setListBoxMaxHeight() {
8428
+ const dropdownMaxHeight = 400;
8327
8429
  const itemsLength = this.items.length;
8328
8430
  const hasPopupHeaderContainer = this.popupHeaderContainer?.nativeElement?.children?.length > 0;
8329
- if (itemsLength > 6) {
8431
+ if (!this.listboxSubitems && itemsLength > 6) {
8330
8432
  if (this.type === 'check' && !this.hideSearch) {
8331
8433
  this.renderer.setStyle(this.listbox.nativeElement, 'maxHeight', `${44 * 6 - 44 / 3 + 60}px`);
8332
8434
  }
@@ -8338,6 +8440,17 @@ class PoListBoxComponent extends PoListBoxBaseComponent {
8338
8440
  this.renderer.setStyle(this.listbox.nativeElement, 'maxHeight', `${44 * 6 - 44 / 3}px`);
8339
8441
  }
8340
8442
  }
8443
+ if (this.listboxSubitems) {
8444
+ this.renderer.setStyle(this.listbox.nativeElement, 'maxHeight', `${dropdownMaxHeight}px`);
8445
+ }
8446
+ }
8447
+ setListBoxWidth() {
8448
+ const dropdownMinWidth = 240;
8449
+ const dropdownMaxWidth = 340;
8450
+ if (this.listboxSubitems && this.items) {
8451
+ this.renderer.setStyle(this.listbox.nativeElement, 'minWidth', `${dropdownMinWidth}px`);
8452
+ this.renderer.setStyle(this.listbox.nativeElement, 'maxWidth', `${dropdownMaxWidth}px`);
8453
+ }
8341
8454
  }
8342
8455
  openUrl(url) {
8343
8456
  if (isExternalLink(url)) {
@@ -8370,23 +8483,29 @@ class PoListBoxComponent extends PoListBoxBaseComponent {
8370
8483
  this.closeEvent.emit();
8371
8484
  }
8372
8485
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoListBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8373
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: PoListBoxComponent, isStandalone: false, selector: "po-listbox", viewQueries: [{ propertyName: "listbox", first: true, predicate: ["listbox"], descendants: true, static: true }, { propertyName: "listboxItemList", first: true, predicate: ["listboxItemList"], descendants: true }, { propertyName: "searchElement", first: true, predicate: ["searchElement"], descendants: true }, { propertyName: "popupHeaderContainer", first: true, predicate: ["popupHeaderContainer"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\n #listbox\n class=\"po-listbox\"\n [class.po-listbox-check]=\"type === 'check' || type === 'option'\"\n [attr.data-type]=\"type\"\n [attr.p-size]=\"size\"\n [hidden]=\"visible\"\n>\n <div #popupHeaderContainer>\n <ng-content select=\"[p-popup-header-template]\"></ng-content>\n </div>\n\n @if (!hideSearch && type === 'check') {\n <po-search-list\n #searchElement\n (p-change)=\"callChangeSearch($event)\"\n [p-literals]=\"literalSearch\"\n [p-field-value]=\"fieldValueSearch\"\n [p-placeholder]=\"placeholderSearch\"\n [p-size]=\"size\"\n ></po-search-list>\n }\n\n @if (checkTemplate()) {\n <ul #listboxItemList cdkListbox [cdkListboxMultiple]=\"type === 'check'\" class=\"po-listbox-list\">\n @if (type === 'check' && items.length && !searchElement?.inputValue && !hideSelectAll) {\n <li\n cdkOption=\"selectAll\"\n [attr.aria-checked]=\"checkboxAllValue === null ? 'mixed' : checkboxAllValue\"\n class=\"po-listbox-item-type-check\"\n (click)=\"changeAll.emit()\"\n (keydown)=\"changeAllEmit($event)\"\n (keydown)=\"onSelectAllCheckboxKeyDown($event)\"\n >\n <po-item-list\n [p-selected]=\"checkboxAllValue\"\n p-type=\"check\"\n [p-label]=\"literals.selectAll\"\n p-value=\"selectAll\"\n [p-checkbox-value]=\"checkboxAllValue\"\n [p-size]=\"size\"\n >\n </po-item-list>\n </li>\n }\n @for (item of items; track item) {\n <li\n [class.po-listbox-item]=\"visible\"\n [class.po-listbox-item-type-check]=\"type === 'check'\"\n [cdkOption]=\"item[fieldLabel]\"\n [cdkOptionDisabled]=\"\n returnBooleanValue(item, 'disabled') || returnBooleanValue(item, 'visible') === false || item.options\n \"\n [attr.aria-selected]=\"isSelectedItem(item) || item.selected\"\n (click)=\"onSelectItem(item)\"\n (keydown)=\"onKeyDown(item, $event)\"\n >\n @if (item.options) {\n <label class=\"po-combo-item-title\">\n {{ item.label }}\n </label>\n }\n @if (returnBooleanValue(item, 'visible') !== false && !item.options) {\n <po-item-list\n [p-disabled]=\"returnBooleanValue(item, 'disabled')\"\n [p-visible]=\"returnBooleanValue(item, 'visible')\"\n [p-checkbox-value]=\"isSelectedItem(item)\"\n [attr.data-item-list]=\"formatItemList(item)\"\n [p-label]=\"item[fieldLabel]\"\n [p-value]=\"item[fieldValue]\"\n [p-selected]=\"isSelectedItem(item) || item.selected\"\n [p-active-tabs]=\"item.active\"\n [p-separator]=\"item.separator || separator\"\n [p-danger]=\"item.danger || item.type === 'danger'\"\n [p-icon]=\"item.icon\"\n [p-type]=\"type\"\n [p-item]=\"item\"\n [p-tab-hide]=\"item.hide\"\n [p-is-tabs]=\"isTabs\"\n [p-field-value]=\"fieldValue\"\n [p-field-label]=\"fieldLabel\"\n [p-template]=\"template\"\n [p-template-context]=\"item\"\n (p-selectcheckbox-item)=\"checkboxClicked($event)\"\n (p-selectcombo-item)=\"optionClicked(item)\"\n (p-emit-item-tabs)=\"onSelectTabs($event)\"\n (p-activated-tabs)=\"onActivatedTabs($event)\"\n [p-search-value]=\"searchValue\"\n [p-filter-mode]=\"filterMode\"\n [p-filtering]=\"isFiltering\"\n [p-size]=\"size\"\n [p-should-mark-letter]=\"shouldMarkLetters\"\n [p-compare-cache]=\"compareCache\"\n [p-combo-service]=\"comboService\"\n [p-keys-label]=\"keysLabel\"\n ></po-item-list>\n }\n </li>\n }\n\n @if (footerActionListbox) {\n @if (placeholderListbox) {\n <div class=\"po-item-list\" aria-hidden=\"true\">\n <span>{{ placeholderListbox }}</span>\n </div>\n }\n\n @if (!placeholderListbox && !items.length) {\n <div class=\"po-item-list\" aria-hidden=\"true\">\n <span>{{ literals.noItems }}</span>\n </div>\n }\n\n <li\n class=\"po-listbox-item\"\n (click)=\"handleFooterActionListbox()\"\n (keydown)=\"onKeyDown({ type: 'footerAction' }, $event)\"\n cdkOption=\"footerActionListbox\"\n >\n <po-item-list [p-label]=\"literals.footerActionListbox\" p-separator [p-size]=\"size\" />\n </li>\n }\n </ul>\n } @else {\n @if (!items.length && !isServerSearching && type !== 'action' && !footerActionListbox) {\n <div class=\"po-listbox-container-no-data po-text-center\">\n <span> {{ literals.noItems }}</span>\n </div>\n }\n }\n\n @if (isServerSearching && type !== 'action') {\n <div [class.po-listbox-container-loading-default]=\"!infiniteLoading\">\n <po-loading-overlay [p-size]=\"getSizeLoading()\" [p-text]=\"getTextLoading()\"></po-loading-overlay>\n </div>\n }\n</div>\n", dependencies: [{ kind: "component", type: PoLoadingOverlayComponent, selector: "po-loading-overlay" }, { kind: "directive", type: i2$1.CdkListbox, selector: "[cdkListbox]", inputs: ["id", "tabindex", "cdkListboxValue", "cdkListboxMultiple", "cdkListboxDisabled", "cdkListboxUseActiveDescendant", "cdkListboxOrientation", "cdkListboxCompareWith", "cdkListboxNavigationWrapDisabled", "cdkListboxNavigatesDisabledOptions"], outputs: ["cdkListboxValueChange"], exportAs: ["cdkListbox"] }, { kind: "directive", type: i2$1.CdkOption, selector: "[cdkOption]", inputs: ["id", "cdkOption", "cdkOptionTypeaheadLabel", "cdkOptionDisabled", "tabindex"], exportAs: ["cdkOption"] }, { kind: "component", type: PoItemListComponent, selector: "po-item-list" }, { kind: "component", type: PoSearchListComponent, selector: "po-search-list", inputs: ["p-literals", "p-field-value", "p-size", "p-placeholder"], outputs: ["p-change"] }] });
8486
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: PoListBoxComponent, isStandalone: false, selector: "po-listbox", viewQueries: [{ propertyName: "listbox", first: true, predicate: ["listbox"], descendants: true, static: true }, { propertyName: "listboxItemList", first: true, predicate: ["listboxItemList"], descendants: true }, { propertyName: "listboxGroupHeader", first: true, predicate: ["listboxGroupHeader"], descendants: true }, { propertyName: "searchElement", first: true, predicate: ["searchElement"], descendants: true }, { propertyName: "popupHeaderContainer", first: true, predicate: ["popupHeaderContainer"], descendants: true }, { propertyName: "listboxItems", predicate: ["listboxItem"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\n #listbox\n class=\"po-listbox\"\n [class.po-listbox-check]=\"type === 'check' || type === 'option'\"\n [attr.data-type]=\"type\"\n [attr.p-size]=\"size\"\n [hidden]=\"visible\"\n>\n <div #popupHeaderContainer>\n <ng-content select=\"[p-popup-header-template]\"></ng-content>\n </div>\n\n @if (!hideSearch && type === 'check') {\n <po-search-list\n #searchElement\n (p-change)=\"callChangeSearch($event)\"\n [p-literals]=\"literalSearch\"\n [p-field-value]=\"fieldValueSearch\"\n [p-placeholder]=\"placeholderSearch\"\n [p-size]=\"size\"\n ></po-search-list>\n }\n\n @if (checkTemplate() && !listboxSubitems) {\n <ul #listboxItemList cdkListbox [cdkListboxMultiple]=\"type === 'check'\" class=\"po-listbox-list\">\n @if (type === 'check' && items.length && !searchElement?.inputValue && !hideSelectAll) {\n <li\n cdkOption=\"selectAll\"\n [attr.aria-checked]=\"checkboxAllValue === null ? 'mixed' : checkboxAllValue\"\n class=\"po-listbox-item-type-check\"\n (click)=\"changeAll.emit()\"\n (keydown)=\"changeAllEmit($event)\"\n (keydown)=\"onSelectAllCheckboxKeyDown($event)\"\n >\n <po-item-list\n [p-selected]=\"checkboxAllValue\"\n p-type=\"check\"\n [p-label]=\"literals.selectAll\"\n p-value=\"selectAll\"\n [p-checkbox-value]=\"checkboxAllValue\"\n [p-size]=\"size\"\n >\n </po-item-list>\n </li>\n }\n @for (item of items; track item) {\n <li\n [class.po-listbox-item]=\"visible\"\n [class.po-listbox-item-type-check]=\"type === 'check'\"\n [cdkOption]=\"item[fieldLabel]\"\n [cdkOptionDisabled]=\"\n returnBooleanValue(item, 'disabled') || returnBooleanValue(item, 'visible') === false || item.options\n \"\n [attr.aria-selected]=\"isSelectedItem(item) || item.selected\"\n (click)=\"onSelectItem(item)\"\n (keydown)=\"onKeyDown(item, $event)\"\n >\n @if (item.options) {\n <label class=\"po-combo-item-title\">\n {{ item.label }}\n </label>\n }\n @if (returnBooleanValue(item, 'visible') !== false) {\n <po-item-list\n [p-disabled]=\"returnBooleanValue(item, 'disabled')\"\n [p-visible]=\"returnBooleanValue(item, 'visible')\"\n [p-checkbox-value]=\"isSelectedItem(item)\"\n [attr.data-item-list]=\"formatItemList(item)\"\n [p-label]=\"item[fieldLabel]\"\n [p-value]=\"item[fieldValue]\"\n [p-selected]=\"isSelectedItem(item) || item.selected\"\n [p-active-tabs]=\"item.active\"\n [p-separator]=\"item.separator || separator\"\n [p-danger]=\"item.danger || item.type === 'danger'\"\n [p-icon]=\"item.icon\"\n [p-type]=\"type\"\n [p-item]=\"item\"\n [p-tab-hide]=\"item.hide\"\n [p-is-tabs]=\"isTabs\"\n [p-field-value]=\"fieldValue\"\n [p-field-label]=\"fieldLabel\"\n [p-template]=\"template\"\n [p-template-context]=\"item\"\n (p-selectcheckbox-item)=\"checkboxClicked($event)\"\n (p-selectcombo-item)=\"optionClicked(item)\"\n (p-emit-item-tabs)=\"onSelectTabs($event)\"\n (p-activated-tabs)=\"onActivatedTabs($event)\"\n [p-search-value]=\"searchValue\"\n [p-filter-mode]=\"filterMode\"\n [p-filtering]=\"isFiltering\"\n [p-size]=\"size\"\n [p-should-mark-letter]=\"shouldMarkLetters\"\n [p-compare-cache]=\"compareCache\"\n [p-combo-service]=\"comboService\"\n [p-keys-label]=\"keysLabel\"\n ></po-item-list>\n }\n </li>\n }\n\n @if (footerActionListbox) {\n @if (placeholderListbox) {\n <div class=\"po-item-list\" aria-hidden=\"true\">\n <span>{{ placeholderListbox }}</span>\n </div>\n }\n\n @if (!placeholderListbox && !items.length) {\n <div class=\"po-item-list\" aria-hidden=\"true\">\n <span>{{ literals.noItems }}</span>\n </div>\n }\n\n <li\n class=\"po-listbox-item\"\n (click)=\"handleFooterActionListbox()\"\n (keydown)=\"onKeyDown({ type: 'footerAction' }, $event)\"\n cdkOption=\"footerActionListbox\"\n >\n <po-item-list [p-label]=\"literals.footerActionListbox\" p-separator [p-size]=\"size\" />\n </li>\n }\n </ul>\n } @else {\n @if (!items.length && !isServerSearching && type !== 'action' && !footerActionListbox) {\n <div class=\"po-listbox-container-no-data po-text-center\">\n <span> {{ literals.noItems }}</span>\n </div>\n }\n }\n\n @if (listboxSubitems) {\n <ul cdkListbox class=\"po-listbox-list po-listbox-dropdown\">\n @if (!currentGroup) {\n @for (item of currentItems; track item) {\n <li\n #listboxItem\n [class.po-listbox-item]=\"visible\"\n [cdkOption]=\"item[fieldLabel]\"\n [cdkOptionDisabled]=\"returnBooleanValue(item, 'disabled') || returnBooleanValue(item, 'visible') === false\"\n [attr.aria-selected]=\"isSelectedItem(item) || item.selected\"\n (click)=\"onSelectItem(item, $event)\"\n (keydown)=\"onKeyDown(item, $event)\"\n >\n @if (item.subItems?.length) {\n <po-item-list\n [p-label]=\"item.label\"\n [p-item]=\"item\"\n [p-separator]=\"item.separator || separator\"\n [p-icon]=\"'po-icon-arrow-right'\"\n [p-icon-position]=\"'right'\"\n >\n </po-item-list>\n } @else if (!item.subItems?.length && returnBooleanValue(item, 'visible') !== false) {\n <po-item-list\n class=\"po-listbox-item-sub\"\n [p-disabled]=\"returnBooleanValue(item, 'disabled')\"\n [p-visible]=\"returnBooleanValue(item, 'visible')\"\n [p-label]=\"item[fieldLabel]\"\n [p-item]=\"item\"\n [p-icon]=\"item.icon\"\n [p-separator]=\"item.separator || separator\"\n [p-danger]=\"item.type === 'danger'\"\n [p-selected]=\"isSelectedItem(item) || item.selected\"\n >\n </po-item-list>\n }\n </li>\n }\n }\n\n @if (currentGroup) {\n <li\n #listboxGroupHeader\n class=\"po-listbox-group-header\"\n [cdkOption]=\"'back-option'\"\n [attr.aria-label]=\"literals?.backToPreviousGroup\"\n (click)=\"goBack($event)\"\n (keydown)=\"onKeydownGoBack($event)\"\n >\n <po-icon class=\"po-field-icon\" [p-icon]=\"'po-icon-arrow-left'\"></po-icon>\n <po-tag [p-value]=\"currentGroup.label\"></po-tag>\n </li>\n\n @for (subItem of currentItems; track subItem.label) {\n @if (subItem.subItems?.length) {\n <li\n [cdkOption]=\"subItem[fieldLabel]\"\n (click)=\"onSelectItem(subItem, $event)\"\n (keydown)=\"onKeyDown(subItem, $event)\"\n >\n <po-item-list\n [p-label]=\"subItem.label\"\n [p-item]=\"subItem\"\n [p-separator]=\"subItem.separator || separator\"\n [p-icon]=\"'po-icon-arrow-right'\"\n [p-icon-position]=\"'right'\"\n >\n </po-item-list>\n </li>\n } @else if (!subItem.subItems?.length && returnBooleanValue(subItem, 'visible') !== false) {\n <li\n [cdkOption]=\"subItem[fieldLabel]\"\n (click)=\"onSelectItem(subItem, $event)\"\n (keydown)=\"onKeyDown(subItem, $event)\"\n >\n <po-item-list\n class=\"po-listbox-item-sub\"\n [p-disabled]=\"returnBooleanValue(subItem, 'disabled')\"\n [p-visible]=\"returnBooleanValue(subItem, 'visible')\"\n [p-label]=\"subItem[fieldLabel]\"\n [p-item]=\"subItem\"\n [p-icon]=\"subItem.icon\"\n [p-separator]=\"subItem.separator || separator\"\n [p-danger]=\"subItem.type === 'danger'\"\n [p-selected]=\"isSelectedItem(subItem) || subItem.selected\"\n >\n </po-item-list>\n </li>\n }\n }\n }\n </ul>\n }\n\n @if (isServerSearching && type !== 'action') {\n <div [class.po-listbox-container-loading-default]=\"!infiniteLoading\">\n <po-loading-overlay [p-size]=\"getSizeLoading()\" [p-text]=\"getTextLoading()\"></po-loading-overlay>\n </div>\n }\n</div>\n", dependencies: [{ kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoLoadingOverlayComponent, selector: "po-loading-overlay" }, { kind: "component", type: PoTagComponent, selector: "po-tag" }, { kind: "directive", type: i4.CdkListbox, selector: "[cdkListbox]", inputs: ["id", "tabindex", "cdkListboxValue", "cdkListboxMultiple", "cdkListboxDisabled", "cdkListboxUseActiveDescendant", "cdkListboxOrientation", "cdkListboxCompareWith", "cdkListboxNavigationWrapDisabled", "cdkListboxNavigatesDisabledOptions"], outputs: ["cdkListboxValueChange"], exportAs: ["cdkListbox"] }, { kind: "directive", type: i4.CdkOption, selector: "[cdkOption]", inputs: ["id", "cdkOption", "cdkOptionTypeaheadLabel", "cdkOptionDisabled", "tabindex"], exportAs: ["cdkOption"] }, { kind: "component", type: PoItemListComponent, selector: "po-item-list" }, { kind: "component", type: PoSearchListComponent, selector: "po-search-list", inputs: ["p-literals", "p-field-value", "p-size", "p-placeholder"], outputs: ["p-change"] }] });
8374
8487
  }
8375
8488
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoListBoxComponent, decorators: [{
8376
8489
  type: Component,
8377
- args: [{ selector: 'po-listbox', standalone: false, template: "<div\n #listbox\n class=\"po-listbox\"\n [class.po-listbox-check]=\"type === 'check' || type === 'option'\"\n [attr.data-type]=\"type\"\n [attr.p-size]=\"size\"\n [hidden]=\"visible\"\n>\n <div #popupHeaderContainer>\n <ng-content select=\"[p-popup-header-template]\"></ng-content>\n </div>\n\n @if (!hideSearch && type === 'check') {\n <po-search-list\n #searchElement\n (p-change)=\"callChangeSearch($event)\"\n [p-literals]=\"literalSearch\"\n [p-field-value]=\"fieldValueSearch\"\n [p-placeholder]=\"placeholderSearch\"\n [p-size]=\"size\"\n ></po-search-list>\n }\n\n @if (checkTemplate()) {\n <ul #listboxItemList cdkListbox [cdkListboxMultiple]=\"type === 'check'\" class=\"po-listbox-list\">\n @if (type === 'check' && items.length && !searchElement?.inputValue && !hideSelectAll) {\n <li\n cdkOption=\"selectAll\"\n [attr.aria-checked]=\"checkboxAllValue === null ? 'mixed' : checkboxAllValue\"\n class=\"po-listbox-item-type-check\"\n (click)=\"changeAll.emit()\"\n (keydown)=\"changeAllEmit($event)\"\n (keydown)=\"onSelectAllCheckboxKeyDown($event)\"\n >\n <po-item-list\n [p-selected]=\"checkboxAllValue\"\n p-type=\"check\"\n [p-label]=\"literals.selectAll\"\n p-value=\"selectAll\"\n [p-checkbox-value]=\"checkboxAllValue\"\n [p-size]=\"size\"\n >\n </po-item-list>\n </li>\n }\n @for (item of items; track item) {\n <li\n [class.po-listbox-item]=\"visible\"\n [class.po-listbox-item-type-check]=\"type === 'check'\"\n [cdkOption]=\"item[fieldLabel]\"\n [cdkOptionDisabled]=\"\n returnBooleanValue(item, 'disabled') || returnBooleanValue(item, 'visible') === false || item.options\n \"\n [attr.aria-selected]=\"isSelectedItem(item) || item.selected\"\n (click)=\"onSelectItem(item)\"\n (keydown)=\"onKeyDown(item, $event)\"\n >\n @if (item.options) {\n <label class=\"po-combo-item-title\">\n {{ item.label }}\n </label>\n }\n @if (returnBooleanValue(item, 'visible') !== false && !item.options) {\n <po-item-list\n [p-disabled]=\"returnBooleanValue(item, 'disabled')\"\n [p-visible]=\"returnBooleanValue(item, 'visible')\"\n [p-checkbox-value]=\"isSelectedItem(item)\"\n [attr.data-item-list]=\"formatItemList(item)\"\n [p-label]=\"item[fieldLabel]\"\n [p-value]=\"item[fieldValue]\"\n [p-selected]=\"isSelectedItem(item) || item.selected\"\n [p-active-tabs]=\"item.active\"\n [p-separator]=\"item.separator || separator\"\n [p-danger]=\"item.danger || item.type === 'danger'\"\n [p-icon]=\"item.icon\"\n [p-type]=\"type\"\n [p-item]=\"item\"\n [p-tab-hide]=\"item.hide\"\n [p-is-tabs]=\"isTabs\"\n [p-field-value]=\"fieldValue\"\n [p-field-label]=\"fieldLabel\"\n [p-template]=\"template\"\n [p-template-context]=\"item\"\n (p-selectcheckbox-item)=\"checkboxClicked($event)\"\n (p-selectcombo-item)=\"optionClicked(item)\"\n (p-emit-item-tabs)=\"onSelectTabs($event)\"\n (p-activated-tabs)=\"onActivatedTabs($event)\"\n [p-search-value]=\"searchValue\"\n [p-filter-mode]=\"filterMode\"\n [p-filtering]=\"isFiltering\"\n [p-size]=\"size\"\n [p-should-mark-letter]=\"shouldMarkLetters\"\n [p-compare-cache]=\"compareCache\"\n [p-combo-service]=\"comboService\"\n [p-keys-label]=\"keysLabel\"\n ></po-item-list>\n }\n </li>\n }\n\n @if (footerActionListbox) {\n @if (placeholderListbox) {\n <div class=\"po-item-list\" aria-hidden=\"true\">\n <span>{{ placeholderListbox }}</span>\n </div>\n }\n\n @if (!placeholderListbox && !items.length) {\n <div class=\"po-item-list\" aria-hidden=\"true\">\n <span>{{ literals.noItems }}</span>\n </div>\n }\n\n <li\n class=\"po-listbox-item\"\n (click)=\"handleFooterActionListbox()\"\n (keydown)=\"onKeyDown({ type: 'footerAction' }, $event)\"\n cdkOption=\"footerActionListbox\"\n >\n <po-item-list [p-label]=\"literals.footerActionListbox\" p-separator [p-size]=\"size\" />\n </li>\n }\n </ul>\n } @else {\n @if (!items.length && !isServerSearching && type !== 'action' && !footerActionListbox) {\n <div class=\"po-listbox-container-no-data po-text-center\">\n <span> {{ literals.noItems }}</span>\n </div>\n }\n }\n\n @if (isServerSearching && type !== 'action') {\n <div [class.po-listbox-container-loading-default]=\"!infiniteLoading\">\n <po-loading-overlay [p-size]=\"getSizeLoading()\" [p-text]=\"getTextLoading()\"></po-loading-overlay>\n </div>\n }\n</div>\n" }]
8490
+ args: [{ selector: 'po-listbox', standalone: false, template: "<div\n #listbox\n class=\"po-listbox\"\n [class.po-listbox-check]=\"type === 'check' || type === 'option'\"\n [attr.data-type]=\"type\"\n [attr.p-size]=\"size\"\n [hidden]=\"visible\"\n>\n <div #popupHeaderContainer>\n <ng-content select=\"[p-popup-header-template]\"></ng-content>\n </div>\n\n @if (!hideSearch && type === 'check') {\n <po-search-list\n #searchElement\n (p-change)=\"callChangeSearch($event)\"\n [p-literals]=\"literalSearch\"\n [p-field-value]=\"fieldValueSearch\"\n [p-placeholder]=\"placeholderSearch\"\n [p-size]=\"size\"\n ></po-search-list>\n }\n\n @if (checkTemplate() && !listboxSubitems) {\n <ul #listboxItemList cdkListbox [cdkListboxMultiple]=\"type === 'check'\" class=\"po-listbox-list\">\n @if (type === 'check' && items.length && !searchElement?.inputValue && !hideSelectAll) {\n <li\n cdkOption=\"selectAll\"\n [attr.aria-checked]=\"checkboxAllValue === null ? 'mixed' : checkboxAllValue\"\n class=\"po-listbox-item-type-check\"\n (click)=\"changeAll.emit()\"\n (keydown)=\"changeAllEmit($event)\"\n (keydown)=\"onSelectAllCheckboxKeyDown($event)\"\n >\n <po-item-list\n [p-selected]=\"checkboxAllValue\"\n p-type=\"check\"\n [p-label]=\"literals.selectAll\"\n p-value=\"selectAll\"\n [p-checkbox-value]=\"checkboxAllValue\"\n [p-size]=\"size\"\n >\n </po-item-list>\n </li>\n }\n @for (item of items; track item) {\n <li\n [class.po-listbox-item]=\"visible\"\n [class.po-listbox-item-type-check]=\"type === 'check'\"\n [cdkOption]=\"item[fieldLabel]\"\n [cdkOptionDisabled]=\"\n returnBooleanValue(item, 'disabled') || returnBooleanValue(item, 'visible') === false || item.options\n \"\n [attr.aria-selected]=\"isSelectedItem(item) || item.selected\"\n (click)=\"onSelectItem(item)\"\n (keydown)=\"onKeyDown(item, $event)\"\n >\n @if (item.options) {\n <label class=\"po-combo-item-title\">\n {{ item.label }}\n </label>\n }\n @if (returnBooleanValue(item, 'visible') !== false) {\n <po-item-list\n [p-disabled]=\"returnBooleanValue(item, 'disabled')\"\n [p-visible]=\"returnBooleanValue(item, 'visible')\"\n [p-checkbox-value]=\"isSelectedItem(item)\"\n [attr.data-item-list]=\"formatItemList(item)\"\n [p-label]=\"item[fieldLabel]\"\n [p-value]=\"item[fieldValue]\"\n [p-selected]=\"isSelectedItem(item) || item.selected\"\n [p-active-tabs]=\"item.active\"\n [p-separator]=\"item.separator || separator\"\n [p-danger]=\"item.danger || item.type === 'danger'\"\n [p-icon]=\"item.icon\"\n [p-type]=\"type\"\n [p-item]=\"item\"\n [p-tab-hide]=\"item.hide\"\n [p-is-tabs]=\"isTabs\"\n [p-field-value]=\"fieldValue\"\n [p-field-label]=\"fieldLabel\"\n [p-template]=\"template\"\n [p-template-context]=\"item\"\n (p-selectcheckbox-item)=\"checkboxClicked($event)\"\n (p-selectcombo-item)=\"optionClicked(item)\"\n (p-emit-item-tabs)=\"onSelectTabs($event)\"\n (p-activated-tabs)=\"onActivatedTabs($event)\"\n [p-search-value]=\"searchValue\"\n [p-filter-mode]=\"filterMode\"\n [p-filtering]=\"isFiltering\"\n [p-size]=\"size\"\n [p-should-mark-letter]=\"shouldMarkLetters\"\n [p-compare-cache]=\"compareCache\"\n [p-combo-service]=\"comboService\"\n [p-keys-label]=\"keysLabel\"\n ></po-item-list>\n }\n </li>\n }\n\n @if (footerActionListbox) {\n @if (placeholderListbox) {\n <div class=\"po-item-list\" aria-hidden=\"true\">\n <span>{{ placeholderListbox }}</span>\n </div>\n }\n\n @if (!placeholderListbox && !items.length) {\n <div class=\"po-item-list\" aria-hidden=\"true\">\n <span>{{ literals.noItems }}</span>\n </div>\n }\n\n <li\n class=\"po-listbox-item\"\n (click)=\"handleFooterActionListbox()\"\n (keydown)=\"onKeyDown({ type: 'footerAction' }, $event)\"\n cdkOption=\"footerActionListbox\"\n >\n <po-item-list [p-label]=\"literals.footerActionListbox\" p-separator [p-size]=\"size\" />\n </li>\n }\n </ul>\n } @else {\n @if (!items.length && !isServerSearching && type !== 'action' && !footerActionListbox) {\n <div class=\"po-listbox-container-no-data po-text-center\">\n <span> {{ literals.noItems }}</span>\n </div>\n }\n }\n\n @if (listboxSubitems) {\n <ul cdkListbox class=\"po-listbox-list po-listbox-dropdown\">\n @if (!currentGroup) {\n @for (item of currentItems; track item) {\n <li\n #listboxItem\n [class.po-listbox-item]=\"visible\"\n [cdkOption]=\"item[fieldLabel]\"\n [cdkOptionDisabled]=\"returnBooleanValue(item, 'disabled') || returnBooleanValue(item, 'visible') === false\"\n [attr.aria-selected]=\"isSelectedItem(item) || item.selected\"\n (click)=\"onSelectItem(item, $event)\"\n (keydown)=\"onKeyDown(item, $event)\"\n >\n @if (item.subItems?.length) {\n <po-item-list\n [p-label]=\"item.label\"\n [p-item]=\"item\"\n [p-separator]=\"item.separator || separator\"\n [p-icon]=\"'po-icon-arrow-right'\"\n [p-icon-position]=\"'right'\"\n >\n </po-item-list>\n } @else if (!item.subItems?.length && returnBooleanValue(item, 'visible') !== false) {\n <po-item-list\n class=\"po-listbox-item-sub\"\n [p-disabled]=\"returnBooleanValue(item, 'disabled')\"\n [p-visible]=\"returnBooleanValue(item, 'visible')\"\n [p-label]=\"item[fieldLabel]\"\n [p-item]=\"item\"\n [p-icon]=\"item.icon\"\n [p-separator]=\"item.separator || separator\"\n [p-danger]=\"item.type === 'danger'\"\n [p-selected]=\"isSelectedItem(item) || item.selected\"\n >\n </po-item-list>\n }\n </li>\n }\n }\n\n @if (currentGroup) {\n <li\n #listboxGroupHeader\n class=\"po-listbox-group-header\"\n [cdkOption]=\"'back-option'\"\n [attr.aria-label]=\"literals?.backToPreviousGroup\"\n (click)=\"goBack($event)\"\n (keydown)=\"onKeydownGoBack($event)\"\n >\n <po-icon class=\"po-field-icon\" [p-icon]=\"'po-icon-arrow-left'\"></po-icon>\n <po-tag [p-value]=\"currentGroup.label\"></po-tag>\n </li>\n\n @for (subItem of currentItems; track subItem.label) {\n @if (subItem.subItems?.length) {\n <li\n [cdkOption]=\"subItem[fieldLabel]\"\n (click)=\"onSelectItem(subItem, $event)\"\n (keydown)=\"onKeyDown(subItem, $event)\"\n >\n <po-item-list\n [p-label]=\"subItem.label\"\n [p-item]=\"subItem\"\n [p-separator]=\"subItem.separator || separator\"\n [p-icon]=\"'po-icon-arrow-right'\"\n [p-icon-position]=\"'right'\"\n >\n </po-item-list>\n </li>\n } @else if (!subItem.subItems?.length && returnBooleanValue(subItem, 'visible') !== false) {\n <li\n [cdkOption]=\"subItem[fieldLabel]\"\n (click)=\"onSelectItem(subItem, $event)\"\n (keydown)=\"onKeyDown(subItem, $event)\"\n >\n <po-item-list\n class=\"po-listbox-item-sub\"\n [p-disabled]=\"returnBooleanValue(subItem, 'disabled')\"\n [p-visible]=\"returnBooleanValue(subItem, 'visible')\"\n [p-label]=\"subItem[fieldLabel]\"\n [p-item]=\"subItem\"\n [p-icon]=\"subItem.icon\"\n [p-separator]=\"subItem.separator || separator\"\n [p-danger]=\"subItem.type === 'danger'\"\n [p-selected]=\"isSelectedItem(subItem) || subItem.selected\"\n >\n </po-item-list>\n </li>\n }\n }\n }\n </ul>\n }\n\n @if (isServerSearching && type !== 'action') {\n <div [class.po-listbox-container-loading-default]=\"!infiniteLoading\">\n <po-loading-overlay [p-size]=\"getSizeLoading()\" [p-text]=\"getTextLoading()\"></po-loading-overlay>\n </div>\n }\n</div>\n" }]
8378
8491
  }], ctorParameters: () => [], propDecorators: { listbox: [{
8379
8492
  type: ViewChild,
8380
8493
  args: ['listbox', { static: true }]
8381
8494
  }], listboxItemList: [{
8382
8495
  type: ViewChild,
8383
8496
  args: ['listboxItemList', { static: false }]
8497
+ }], listboxGroupHeader: [{
8498
+ type: ViewChild,
8499
+ args: ['listboxGroupHeader']
8384
8500
  }], searchElement: [{
8385
8501
  type: ViewChild,
8386
8502
  args: ['searchElement']
8387
8503
  }], popupHeaderContainer: [{
8388
8504
  type: ViewChild,
8389
8505
  args: ['popupHeaderContainer']
8506
+ }], listboxItems: [{
8507
+ type: ViewChildren,
8508
+ args: ['listboxItem']
8390
8509
  }] } });
8391
8510
 
8392
8511
  /**
@@ -8432,11 +8551,11 @@ class PoPopupComponent extends PoPopupBaseComponent {
8432
8551
  }
8433
8552
  onActionClick(popupAction) {
8434
8553
  const actionNoDisabled = popupAction && !this.returnBooleanValue(popupAction, 'disabled');
8435
- if (popupAction && popupAction.action && actionNoDisabled) {
8554
+ if (popupAction?.action && actionNoDisabled) {
8436
8555
  this.close();
8437
8556
  popupAction.action(this.param || popupAction);
8438
8557
  }
8439
- if (popupAction && popupAction.url && actionNoDisabled) {
8558
+ if (popupAction?.url && actionNoDisabled) {
8440
8559
  this.close();
8441
8560
  return this.openUrl(popupAction.url);
8442
8561
  }
@@ -8469,7 +8588,13 @@ class PoPopupComponent extends PoPopupBaseComponent {
8469
8588
  this.showPopup && this.oldTarget === this.target ? this.close() : this.open(param);
8470
8589
  }
8471
8590
  onClickItem(item) {
8472
- this.clickItem.emit(item);
8591
+ if (!item.goBack) {
8592
+ this.clickItem.emit(item);
8593
+ }
8594
+ if (item.subItems || item.goBack) {
8595
+ this.changeDetector.detectChanges();
8596
+ this.validateInitialContent();
8597
+ }
8473
8598
  }
8474
8599
  checkAllActionIsInvisible() {
8475
8600
  if (this.actions.every(item => item.visible === false)) {
@@ -8549,11 +8674,11 @@ class PoPopupComponent extends PoPopupBaseComponent {
8549
8674
  }
8550
8675
  }
8551
8676
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
8552
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: PoPopupComponent, isStandalone: false, selector: "po-popup", providers: [PoControlPositionService], viewQueries: [{ propertyName: "popupRef", first: true, predicate: ["popupRef"], descendants: true, read: ElementRef }, { propertyName: "listbox", first: true, predicate: ["listbox"], descendants: true, read: ElementRef }, { propertyName: "poListBoxRef", first: true, predicate: ["poListBoxRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (showPopup && actions.length && !checkAllActionIsInvisible()) {\n <div #popupRef class=\"po-popup\">\n @if (!hideArrow) {\n <div class=\"po-popup-arrow po-arrow-{{ arrowDirection }}\"></div>\n }\n <div class=\"po-popup-container\">\n <po-listbox\n #listbox\n #poListBoxRef\n p-type=\"action\"\n [p-items]=\"actions\"\n [p-param]=\"param\"\n [p-size]=\"size\"\n (p-close)=\"close()\"\n (p-click-item)=\"onClickItem($event)\"\n >\n <ng-content p-popup-header-template select=\"[p-popup-header-template]\"></ng-content>\n </po-listbox>\n </div>\n </div>\n}\n", dependencies: [{ kind: "component", type: PoListBoxComponent, selector: "po-listbox" }] });
8677
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: PoPopupComponent, isStandalone: false, selector: "po-popup", providers: [PoControlPositionService], viewQueries: [{ propertyName: "popupRef", first: true, predicate: ["popupRef"], descendants: true, read: ElementRef }, { propertyName: "listbox", first: true, predicate: ["listbox"], descendants: true, read: ElementRef }, { propertyName: "poListBoxRef", first: true, predicate: ["poListBoxRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (showPopup && actions.length && !checkAllActionIsInvisible()) {\n <div #popupRef class=\"po-popup\">\n @if (!hideArrow) {\n <div class=\"po-popup-arrow po-arrow-{{ arrowDirection }}\"></div>\n }\n <div class=\"po-popup-container\">\n <po-listbox\n #listbox\n #poListBoxRef\n p-type=\"action\"\n [p-items]=\"actions\"\n [p-param]=\"param\"\n [p-size]=\"size\"\n [p-listbox-subitems]=\"listboxSubitems\"\n (p-close)=\"close()\"\n (p-click-item)=\"onClickItem($event)\"\n >\n <ng-content p-popup-header-template select=\"[p-popup-header-template]\"></ng-content>\n </po-listbox>\n </div>\n </div>\n}\n", dependencies: [{ kind: "component", type: PoListBoxComponent, selector: "po-listbox" }] });
8553
8678
  }
8554
8679
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoPopupComponent, decorators: [{
8555
8680
  type: Component,
8556
- args: [{ selector: 'po-popup', providers: [PoControlPositionService], standalone: false, template: "@if (showPopup && actions.length && !checkAllActionIsInvisible()) {\n <div #popupRef class=\"po-popup\">\n @if (!hideArrow) {\n <div class=\"po-popup-arrow po-arrow-{{ arrowDirection }}\"></div>\n }\n <div class=\"po-popup-container\">\n <po-listbox\n #listbox\n #poListBoxRef\n p-type=\"action\"\n [p-items]=\"actions\"\n [p-param]=\"param\"\n [p-size]=\"size\"\n (p-close)=\"close()\"\n (p-click-item)=\"onClickItem($event)\"\n >\n <ng-content p-popup-header-template select=\"[p-popup-header-template]\"></ng-content>\n </po-listbox>\n </div>\n </div>\n}\n" }]
8681
+ args: [{ selector: 'po-popup', providers: [PoControlPositionService], standalone: false, template: "@if (showPopup && actions.length && !checkAllActionIsInvisible()) {\n <div #popupRef class=\"po-popup\">\n @if (!hideArrow) {\n <div class=\"po-popup-arrow po-arrow-{{ arrowDirection }}\"></div>\n }\n <div class=\"po-popup-container\">\n <po-listbox\n #listbox\n #poListBoxRef\n p-type=\"action\"\n [p-items]=\"actions\"\n [p-param]=\"param\"\n [p-size]=\"size\"\n [p-listbox-subitems]=\"listboxSubitems\"\n (p-close)=\"close()\"\n (p-click-item)=\"onClickItem($event)\"\n >\n <ng-content p-popup-header-template select=\"[p-popup-header-template]\"></ng-content>\n </po-listbox>\n </div>\n </div>\n}\n" }]
8557
8682
  }], propDecorators: { popupRef: [{
8558
8683
  type: ViewChild,
8559
8684
  args: ['popupRef', { read: ElementRef }]
@@ -8946,15 +9071,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
8946
9071
 
8947
9072
  class PoListBoxModule {
8948
9073
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoListBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8949
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.7", ngImport: i0, type: PoListBoxModule, declarations: [PoListBoxComponent, PoItemListComponent, PoSearchListComponent], imports: [CommonModule, PoCheckboxModule, PoIconModule, PoLoadingModule, CdkListboxModule], exports: [PoListBoxComponent] });
8950
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoListBoxModule, imports: [CommonModule, PoCheckboxModule, PoIconModule, PoLoadingModule, CdkListboxModule] });
9074
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.7", ngImport: i0, type: PoListBoxModule, declarations: [PoListBoxComponent, PoItemListComponent, PoSearchListComponent], imports: [CommonModule, PoCheckboxModule, PoIconModule, PoLoadingModule, PoTagModule, CdkListboxModule], exports: [PoListBoxComponent] });
9075
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoListBoxModule, imports: [CommonModule, PoCheckboxModule, PoIconModule, PoLoadingModule, PoTagModule, CdkListboxModule] });
8951
9076
  }
8952
9077
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoListBoxModule, decorators: [{
8953
9078
  type: NgModule,
8954
9079
  args: [{
8955
9080
  declarations: [PoListBoxComponent, PoItemListComponent, PoSearchListComponent],
8956
9081
  exports: [PoListBoxComponent],
8957
- imports: [CommonModule, PoCheckboxModule, PoIconModule, PoLoadingModule, CdkListboxModule]
9082
+ imports: [CommonModule, PoCheckboxModule, PoIconModule, PoLoadingModule, PoTagModule, CdkListboxModule]
8958
9083
  }]
8959
9084
  }] });
8960
9085
 
@@ -13204,6 +13329,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
13204
13329
  * <file name="sample-po-dropdown-basic/sample-po-dropdown-basic.component.ts"> </file>
13205
13330
  * </example>
13206
13331
  *
13332
+ * <example name="po-dropdown-subitems" title="PO Dropdown Subitems" >
13333
+ * <file name="sample-po-dropdown-subitems/sample-po-dropdown-subitems.component.html"> </file>
13334
+ * <file name="sample-po-dropdown-subitems/sample-po-dropdown-subitems.component.ts"> </file>
13335
+ * </example>
13336
+ *
13207
13337
  * <example name="po-dropdown-labs" title="PO Dropdown Labs" >
13208
13338
  * <file name="sample-po-dropdown-labs/sample-po-dropdown-labs.component.html"> </file>
13209
13339
  * <file name="sample-po-dropdown-labs/sample-po-dropdown-labs.component.ts"> </file>
@@ -13230,7 +13360,7 @@ class PoDropdownComponent extends PoDropdownBaseComponent {
13230
13360
  this.dropdownRef && !this.open && !this.disabled ? this.showDropdown() : this.hideDropdown();
13231
13361
  }
13232
13362
  checkClickArea(event) {
13233
- return this.dropdownRef && this.dropdownRef.nativeElement.contains(event.target);
13363
+ return this.dropdownRef?.nativeElement.contains(event.target);
13234
13364
  }
13235
13365
  hideDropdown() {
13236
13366
  this.icon = 'ICON_ARROW_DOWN';
@@ -13280,11 +13410,11 @@ class PoDropdownComponent extends PoDropdownBaseComponent {
13280
13410
  }
13281
13411
  }
13282
13412
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoDropdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
13283
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.7", type: PoDropdownComponent, isStandalone: false, selector: "po-dropdown", viewQueries: [{ propertyName: "dropdownRef", first: true, predicate: ["dropdownRef"], descendants: true, read: ElementRef, static: true }, { propertyName: "popupRef", first: true, predicate: ["popupRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n #dropdownRef\n class=\"po-dropdown\"\n [class.po-dropdown-aa]=\"size === 'small'\"\n [attr.disabled]=\"disabled\"\n tabindex=\"{{ disabled ? -1 : 0 }}\"\n (click)=\"toggleDropdown()\"\n (keydown)=\"onKeyDown($event)\"\n>\n <div\n class=\"po-dropdown-button\"\n [class.po-dropdown-button-aa]=\"size === 'small'\"\n [ngClass]=\"{ 'po-dropdown-button-disabled': disabled, 'po-dropdown-button-open': open }\"\n >\n <span>{{ label }}</span>\n <po-icon class=\"po-dropdown-icon\" [class.po-dropdown-icon-aa]=\"size === 'small'\" [p-icon]=\"icon\"></po-icon>\n </div>\n</div>\n\n<po-popup\n #popupRef\n p-hide-arrow\n p-is-corner-align\n p-position=\"bottom-left\"\n [p-actions]=\"actions\"\n [p-custom-positions]=\"['bottom-left', 'top-left']\"\n [p-size]=\"size\"\n [p-target]=\"dropdownRef\"\n>\n</po-popup>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PoPopupComponent, selector: "po-popup" }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13413
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.7", type: PoDropdownComponent, isStandalone: false, selector: "po-dropdown", viewQueries: [{ propertyName: "dropdownRef", first: true, predicate: ["dropdownRef"], descendants: true, read: ElementRef, static: true }, { propertyName: "popupRef", first: true, predicate: ["popupRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n #dropdownRef\n class=\"po-dropdown\"\n [class.po-dropdown-aa]=\"size === 'small'\"\n [attr.disabled]=\"disabled\"\n tabindex=\"{{ disabled ? -1 : 0 }}\"\n (click)=\"toggleDropdown()\"\n (keydown)=\"onKeyDown($event)\"\n>\n <div\n class=\"po-dropdown-button\"\n [class.po-dropdown-button-aa]=\"size === 'small'\"\n [ngClass]=\"{ 'po-dropdown-button-disabled': disabled, 'po-dropdown-button-open': open }\"\n >\n <span>{{ label }}</span>\n <po-icon class=\"po-dropdown-icon\" [class.po-dropdown-icon-aa]=\"size === 'small'\" [p-icon]=\"icon\"></po-icon>\n </div>\n</div>\n\n<po-popup\n #popupRef\n p-hide-arrow\n p-is-corner-align\n p-position=\"bottom-left\"\n [p-actions]=\"actions\"\n [p-custom-positions]=\"['bottom-left', 'top-left']\"\n [p-size]=\"size\"\n [p-target]=\"dropdownRef\"\n [p-listbox-subitems]=\"true\"\n>\n</po-popup>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PoPopupComponent, selector: "po-popup" }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13284
13414
  }
13285
13415
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoDropdownComponent, decorators: [{
13286
13416
  type: Component,
13287
- args: [{ selector: 'po-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div\n #dropdownRef\n class=\"po-dropdown\"\n [class.po-dropdown-aa]=\"size === 'small'\"\n [attr.disabled]=\"disabled\"\n tabindex=\"{{ disabled ? -1 : 0 }}\"\n (click)=\"toggleDropdown()\"\n (keydown)=\"onKeyDown($event)\"\n>\n <div\n class=\"po-dropdown-button\"\n [class.po-dropdown-button-aa]=\"size === 'small'\"\n [ngClass]=\"{ 'po-dropdown-button-disabled': disabled, 'po-dropdown-button-open': open }\"\n >\n <span>{{ label }}</span>\n <po-icon class=\"po-dropdown-icon\" [class.po-dropdown-icon-aa]=\"size === 'small'\" [p-icon]=\"icon\"></po-icon>\n </div>\n</div>\n\n<po-popup\n #popupRef\n p-hide-arrow\n p-is-corner-align\n p-position=\"bottom-left\"\n [p-actions]=\"actions\"\n [p-custom-positions]=\"['bottom-left', 'top-left']\"\n [p-size]=\"size\"\n [p-target]=\"dropdownRef\"\n>\n</po-popup>\n" }]
13417
+ args: [{ selector: 'po-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div\n #dropdownRef\n class=\"po-dropdown\"\n [class.po-dropdown-aa]=\"size === 'small'\"\n [attr.disabled]=\"disabled\"\n tabindex=\"{{ disabled ? -1 : 0 }}\"\n (click)=\"toggleDropdown()\"\n (keydown)=\"onKeyDown($event)\"\n>\n <div\n class=\"po-dropdown-button\"\n [class.po-dropdown-button-aa]=\"size === 'small'\"\n [ngClass]=\"{ 'po-dropdown-button-disabled': disabled, 'po-dropdown-button-open': open }\"\n >\n <span>{{ label }}</span>\n <po-icon class=\"po-dropdown-icon\" [class.po-dropdown-icon-aa]=\"size === 'small'\" [p-icon]=\"icon\"></po-icon>\n </div>\n</div>\n\n<po-popup\n #popupRef\n p-hide-arrow\n p-is-corner-align\n p-position=\"bottom-left\"\n [p-actions]=\"actions\"\n [p-custom-positions]=\"['bottom-left', 'top-left']\"\n [p-size]=\"size\"\n [p-target]=\"dropdownRef\"\n [p-listbox-subitems]=\"true\"\n>\n</po-popup>\n" }]
13288
13418
  }], propDecorators: { dropdownRef: [{
13289
13419
  type: ViewChild,
13290
13420
  args: ['dropdownRef', { read: ElementRef, static: true }]
@@ -19392,6 +19522,11 @@ const poThemeDefaultDarkValues = {
19392
19522
  /** SELECT */
19393
19523
  'po-select': {
19394
19524
  '--color-hover': 'var(--color-action-hover);'
19525
+ },
19526
+ /** DROPDOWN */
19527
+ '.po-listbox-group-header .po-tag': {
19528
+ 'color': 'var(--color-neutral-light-00);',
19529
+ 'background-color': 'var(--color-action-default);'
19395
19530
  }
19396
19531
  },
19397
19532
  onRoot: {