@po-ui/ng-components 19.37.0 → 19.38.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 (37) hide show
  1. package/fesm2022/po-ui-ng-components.mjs +425 -90
  2. package/fesm2022/po-ui-ng-components.mjs.map +1 -1
  3. package/lib/components/po-chart/enums/po-chart-type.enum.d.ts +5 -1
  4. package/lib/components/po-chart/index.d.ts +4 -4
  5. package/lib/components/po-chart/interfaces/po-chart-indicator-options.interface.d.ts +50 -0
  6. package/lib/components/po-chart/interfaces/po-chart-options.interface.d.ts +17 -1
  7. package/lib/components/po-chart/interfaces/po-chart-radar-options.interface.d.ts +38 -0
  8. package/lib/components/po-chart/interfaces/po-chart-serie-data-label.interface.d.ts +1 -2
  9. package/lib/components/po-chart/interfaces/po-chart-serie.interface.d.ts +15 -5
  10. package/lib/components/po-chart/po-chart-base.component.d.ts +22 -9
  11. package/lib/components/po-chart/po-chart-grid-utils.d.ts +45 -0
  12. package/lib/components/po-chart/po-chart.component.d.ts +7 -0
  13. package/lib/components/po-field/po-input/po-input-base.component.d.ts +13 -1
  14. package/lib/components/po-icon/po-icon.component.d.ts +3 -1
  15. package/lib/components/po-listbox/po-item-list/po-item-list-base.component.d.ts +9 -1
  16. package/lib/components/po-listbox/po-listbox.component.d.ts +2 -1
  17. package/lib/components/po-popup/po-popup-action.interface.d.ts +1 -0
  18. package/lib/components/po-popup/po-popup-base.component.d.ts +2 -1
  19. package/lib/components/po-popup/po-popup.component.d.ts +4 -2
  20. package/lib/components/po-tag/po-tag-base.component.d.ts +2 -1
  21. package/lib/components/po-tag/po-tag.component.d.ts +0 -2
  22. package/lib/utils/util.d.ts +12 -0
  23. package/package.json +4 -4
  24. package/po-ui-ng-components-19.38.0.tgz +0 -0
  25. package/schematics/ng-add/index.js +1 -1
  26. package/schematics/ng-update/v14/index.js +1 -1
  27. package/schematics/ng-update/v15/index.js +1 -1
  28. package/schematics/ng-update/v16/index.js +1 -1
  29. package/schematics/ng-update/v17/index.js +1 -1
  30. package/schematics/ng-update/v18/index.js +2 -2
  31. package/schematics/ng-update/v19/index.js +2 -2
  32. package/schematics/ng-update/v2/index.js +1 -1
  33. package/schematics/ng-update/v3/index.js +1 -1
  34. package/schematics/ng-update/v4/index.js +1 -1
  35. package/schematics/ng-update/v5/index.js +1 -1
  36. package/schematics/ng-update/v6/index.js +1 -1
  37. package/po-ui-ng-components-19.37.0.tgz +0 -0
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, Input, Component, ChangeDetectionStrategy, NgModule, InjectionToken, TemplateRef, Optional, Inject, Injectable, EventEmitter, Output, ElementRef, SecurityContext, HostListener, inject, ViewChild, ChangeDetectorRef, ViewChildren, ContentChildren, HostBinding, input, forwardRef, Renderer2, IterableDiffers, ViewContainerRef, ContentChild, Pipe, Injector, provideAppInitializer } from '@angular/core';
2
+ import { Directive, Input, Component, ChangeDetectionStrategy, NgModule, InjectionToken, TemplateRef, Optional, Inject, ViewChild, HostBinding, Injectable, EventEmitter, Output, ElementRef, SecurityContext, HostListener, inject, ChangeDetectorRef, ViewChildren, ContentChildren, input, forwardRef, Renderer2, IterableDiffers, ViewContainerRef, ContentChild, Pipe, Injector, provideAppInitializer } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule, CurrencyPipe, DecimalPipe, DOCUMENT, TitleCasePipe, DatePipe, NgOptimizedImage, Location } from '@angular/common';
5
5
  import * as i2 from '@angular/platform-browser';
@@ -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 i4 from '@angular/cdk/listbox';
11
+ import * as i5 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';
@@ -17,12 +17,12 @@ import { OverlayModule } from '@angular/cdk/overlay';
17
17
  import * as i1$3 from '@angular/common/http';
18
18
  import { HttpClient, HttpHeaders, HttpEventType, HttpResponse, HttpRequest, HTTP_INTERCEPTORS } from '@angular/common/http';
19
19
  import { debounceTime as debounceTime$1, take, delay, takeWhile, tap, map, filter as filter$1, distinctUntilChanged, catchError, switchMap as switchMap$1, finalize, mergeMap } from 'rxjs/operators';
20
- import { BarChart, CustomChart, GaugeChart, LineChart, PieChart } from 'echarts/charts';
20
+ import { BarChart, CustomChart, GaugeChart, LineChart, PieChart, RadarChart } from 'echarts/charts';
21
21
  import { GraphicComponent, BrushComponent, DataZoomComponent, GridComponent, LegendComponent, MarkLineComponent, ToolboxComponent, TooltipComponent } from 'echarts/components';
22
22
  import * as echarts from 'echarts/core';
23
23
  import { use } from 'echarts/core';
24
24
  import { CanvasRenderer, SVGRenderer } from 'echarts/renderers';
25
- import * as i5 from '@angular/cdk/scrolling';
25
+ import * as i5$1 from '@angular/cdk/scrolling';
26
26
  import { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';
27
27
  import * as i6 from '@angular/cdk/drag-drop';
28
28
  import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
@@ -355,9 +355,11 @@ const AnimaliaIconDictionary = {
355
355
  ICON_ALIGN_RIGHT: 'an an-text-align-right',
356
356
  ICON_ARROW_ARC_LEFT: 'an an-arrow-arc-left',
357
357
  ICON_ARROW_DOWN: 'an an-caret-down',
358
+ ICON_OTHER_ARROW_DOWN: 'an an-arrow-down',
358
359
  ICON_ARROW_LEFT: 'an an-caret-left',
359
360
  ICON_ARROW_RIGHT: 'an an-caret-right',
360
361
  ICON_ARROW_UP: 'an an-caret-up',
362
+ ICON_OTHER_ARROW_UP: 'an an-arrow-up',
361
363
  ICON_CALENDAR: 'an an-calendar-blank',
362
364
  ICON_CLEAR_CONTENT: 'an an-x-circle',
363
365
  ICON_CLOCK: 'an an-clock',
@@ -371,6 +373,9 @@ const AnimaliaIconDictionary = {
371
373
  ICON_EYE: 'an an-eye',
372
374
  ICON_EYE_OFF: 'an an-eye-closed',
373
375
  ICON_FILTER: 'an an-funnel',
376
+ ICON_FILL_FILTER: 'an-fill an-funnel',
377
+ ICON_FUNNEL: 'an an-funnel-simple',
378
+ ICON_FUNNEL_X: 'an an-funnel-x',
374
379
  ICON_HELP: 'an an-question',
375
380
  ICON_INFO: 'an an-info',
376
381
  ICON_LAST_PAGE: 'an an-caret-double-right',
@@ -385,6 +390,7 @@ const AnimaliaIconDictionary = {
385
390
  ICON_MINUS: 'an an-minus',
386
391
  ICON_MORE: 'an an-dots-three',
387
392
  ICON_MORE_VERT: 'an an-dots-three-vertical',
393
+ ICON_FILL_MORE_OUTLINE_VERT: 'an-fill an-dots-three-outline-vertical',
388
394
  ICON_NOTIFICATION: 'an an-bell',
389
395
  ICON_OK: 'an an-check',
390
396
  ICON_PARAMETERS: 'an an-sliders-horizontal',
@@ -399,7 +405,11 @@ const AnimaliaIconDictionary = {
399
405
  ICON_SETTINGS: 'an an-gear-six',
400
406
  ICON_SORT: 'an an-arrows-down-up',
401
407
  ICON_SORT_ASC: 'an an-arrow-up',
408
+ ICON_SORT_ASCENDING: 'an an-sort-ascending',
409
+ ICON_FILL_SORT_ASCENDING: 'an-fill an-sort-ascending',
402
410
  ICON_SORT_DESC: 'an an-arrow-down',
411
+ ICON_SORT_DESCENDING: 'an an-sort-descending',
412
+ ICON_FILL_SORT_DESCENDING: 'an-fill an-sort-descending',
403
413
  ICON_STAR: 'an an-star',
404
414
  ICON_TELEPHONE: 'an an-phone',
405
415
  ICON_TEXT_BOLD: 'an an-text-b',
@@ -421,9 +431,11 @@ const AnimaliaIconDictionary = {
421
431
  * Permite a exibição de ícones.
422
432
  */
423
433
  class PoIconComponent {
434
+ iconElement;
424
435
  class;
425
436
  _icon;
426
437
  _iconToken;
438
+ hostPIcon = null;
427
439
  constructor(value) {
428
440
  this._iconToken = value ?? AnimaliaIconDictionary;
429
441
  }
@@ -450,10 +462,12 @@ class PoIconComponent {
450
462
  */
451
463
  set icon(value) {
452
464
  if (typeof value === 'string') {
465
+ this.hostPIcon = value;
453
466
  this.processIcon(value);
454
467
  }
455
468
  else if (value instanceof TemplateRef) {
456
469
  this._icon = value;
470
+ this.hostPIcon = null;
457
471
  }
458
472
  }
459
473
  get icon() {
@@ -499,17 +513,23 @@ class PoIconComponent {
499
513
  return iconName.includes(' ') ? iconName.split(' ') : iconName;
500
514
  }
501
515
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoIconComponent, deps: [{ token: ICONS_DICTIONARY, optional: true }], target: i0.ɵɵFactoryTarget.Component });
502
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: PoIconComponent, isStandalone: false, selector: "po-icon", inputs: { icon: ["p-icon", "icon"] }, ngImport: i0, template: "@if (class) {\n <i [class]=\"class\" aria-hidden=\"true\">\n <ng-content></ng-content>\n </i>\n} @else {\n <ng-template [ngTemplateOutlet]=\"icon\"></ng-template>\n}\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
516
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: PoIconComponent, isStandalone: false, selector: "po-icon", inputs: { icon: ["p-icon", "icon"] }, host: { properties: { "attr.p-icon": "this.hostPIcon" } }, viewQueries: [{ propertyName: "iconElement", first: true, predicate: ["iconElement"], descendants: true }], ngImport: i0, template: "@if (class) {\n <i #iconElement [class]=\"class\" aria-hidden=\"true\">\n <ng-content></ng-content>\n </i>\n} @else {\n <ng-template [ngTemplateOutlet]=\"icon\"></ng-template>\n}\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
503
517
  }
504
518
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoIconComponent, decorators: [{
505
519
  type: Component,
506
- args: [{ selector: 'po-icon', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (class) {\n <i [class]=\"class\" aria-hidden=\"true\">\n <ng-content></ng-content>\n </i>\n} @else {\n <ng-template [ngTemplateOutlet]=\"icon\"></ng-template>\n}\n" }]
520
+ args: [{ selector: 'po-icon', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (class) {\n <i #iconElement [class]=\"class\" aria-hidden=\"true\">\n <ng-content></ng-content>\n </i>\n} @else {\n <ng-template [ngTemplateOutlet]=\"icon\"></ng-template>\n}\n" }]
507
521
  }], ctorParameters: () => [{ type: undefined, decorators: [{
508
522
  type: Optional
509
523
  }, {
510
524
  type: Inject,
511
525
  args: [ICONS_DICTIONARY]
512
- }] }], propDecorators: { icon: [{
526
+ }] }], propDecorators: { iconElement: [{
527
+ type: ViewChild,
528
+ args: ['iconElement', { static: false }]
529
+ }], hostPIcon: [{
530
+ type: HostBinding,
531
+ args: ['attr.p-icon']
532
+ }], icon: [{
513
533
  type: Input,
514
534
  args: ['p-icon']
515
535
  }] } });
@@ -1469,6 +1489,38 @@ function getMeasurableEl(labelElement) {
1469
1489
  const inner = host.querySelector('.po-label, label, .po-label-title, .po-field-title .po-checkbox-label');
1470
1490
  return inner ?? host;
1471
1491
  }
1492
+ /**
1493
+ * Retorna a cor do texto baseada no tema atual.
1494
+ * @param type Tipo de cor do texto, pode ser 'lightest' ou 'darkest'.
1495
+ * @returns Valor da cor no formato definido pela propriedade customizada CSS (por exemplo, '#ffffff', 'rgb(255,255,255)').
1496
+ */
1497
+ function getTextColor(type) {
1498
+ const isLightTheme = !document.documentElement.className.includes('-dark-');
1499
+ let token = '';
1500
+ if (type === 'lightest') {
1501
+ token = isLightTheme ? '--color-neutral-light-00' : '--color-neutral-dark-95';
1502
+ }
1503
+ else {
1504
+ token = isLightTheme ? '--color-neutral-dark-95' : '--color-neutral-light-00';
1505
+ }
1506
+ return getComputedStyle(document.documentElement).getPropertyValue(token);
1507
+ }
1508
+ /**
1509
+ * Retorna a cor do texto baseada na cor de fundo informada.
1510
+ * @param backgroundColor Cor de fundo em formato 'rgb(r,g,b)' ou 'rgba(r,g,b,a)'.
1511
+ * @returns Valor da cor do texto (por exemplo, '#ffffff', 'rgb(255,255,255)') baseado no brilho percebido da cor de fundo usando a fórmula do espaço de cor YIQ.
1512
+ */
1513
+ function getTextColorFromBackgroundColor(backgroundColor) {
1514
+ const rgbValues = backgroundColor
1515
+ .replaceAll(/(?:^rgba?\(|\s+|\)$)/g, '')
1516
+ .split(',')
1517
+ .map(value => Number.parseInt(value, 10));
1518
+ const r = rgbValues[0];
1519
+ const g = rgbValues[1];
1520
+ const b = rgbValues[2];
1521
+ const yiq = (r * 299 + g * 587 + b * 114) / 1000;
1522
+ return yiq >= 128 ? getTextColor('darkest') : getTextColor('lightest');
1523
+ }
1472
1524
 
1473
1525
  const poDefaultLanguage = 'PO_DEFAULT_LANGUAGE';
1474
1526
  const poLocaleKey = 'PO_USER_LOCALE';
@@ -1829,7 +1881,8 @@ class PoTagBaseComponent {
1829
1881
  * - <span class="dot po-color-11"></span> `color-11`
1830
1882
  * - <span class="dot po-color-12"></span> `color-12`
1831
1883
  *
1832
- * - Para uma melhor acessibilidade no uso do componente é recomendável utilizar cores com um melhor contraste em relação ao background.
1884
+ * - Para uma melhor acessibilidade no uso do componente é recomendável utilizar cores com um melhor contraste em relação ao background;
1885
+ * - O componente ajusta automaticamente a cor do texto para garantir legibilidade, escolhendo dinamicamente entre texto claro ou escuro conforme o contraste necessário.
1833
1886
  *
1834
1887
  * > **Atenção:** A propriedade `p-type` sobrepõe esta definição.
1835
1888
  */
@@ -2916,8 +2969,22 @@ class PoTagComponent extends PoTagBaseComponent {
2916
2969
  this.onClick('enter');
2917
2970
  }
2918
2971
  styleTag() {
2972
+ // Ajusta a cor do texto com base na cor de fundo computada do elemento
2973
+ requestAnimationFrame(() => {
2974
+ const computedStyle = getComputedStyle(this.poTag.nativeElement);
2975
+ if ((!this.tagColor || this.tagColor?.startsWith('po-color-')) &&
2976
+ !this.removable &&
2977
+ !this.textColor &&
2978
+ computedStyle?.backgroundColor) {
2979
+ const textColor = getTextColorFromBackgroundColor(computedStyle.backgroundColor);
2980
+ this.poTag.nativeElement.style.color = textColor;
2981
+ }
2982
+ else {
2983
+ this.poTag.nativeElement.style.color = '';
2984
+ }
2985
+ });
2919
2986
  if (!this.tagColor && !this.removable) {
2920
- return { 'background-color': this.customColor, 'color': 'white' };
2987
+ return { 'background-color': this.customColor };
2921
2988
  }
2922
2989
  else {
2923
2990
  return {};
@@ -4561,6 +4628,8 @@ class PoPopupBaseComponent {
4561
4628
  _target;
4562
4629
  // Indica se há um listbox com subitens
4563
4630
  listboxSubitems = false;
4631
+ // template-icon
4632
+ templateIcon = false;
4564
4633
  /** Lista de ações que serão exibidas no componente. */
4565
4634
  set actions(value) {
4566
4635
  this._actions = Array.isArray(value) ? value : [];
@@ -4721,13 +4790,16 @@ class PoPopupBaseComponent {
4721
4790
  closeEvent = new EventEmitter();
4722
4791
  clickItem = new EventEmitter();
4723
4792
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoPopupBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
4724
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.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 });
4793
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: PoPopupBaseComponent, isStandalone: true, inputs: { listboxSubitems: ["p-listbox-subitems", "listboxSubitems"], templateIcon: ["p-template-icon", "templateIcon"], 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 });
4725
4794
  }
4726
4795
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoPopupBaseComponent, decorators: [{
4727
4796
  type: Directive
4728
4797
  }], propDecorators: { listboxSubitems: [{
4729
4798
  type: Input,
4730
4799
  args: ['p-listbox-subitems']
4800
+ }], templateIcon: [{
4801
+ type: Input,
4802
+ args: ['p-template-icon']
4731
4803
  }], actions: [{
4732
4804
  type: Input,
4733
4805
  args: ['p-actions']
@@ -5541,6 +5613,14 @@ class PoItemListBaseComponent {
5541
5613
  * Define um ícone que será exibido ao lado esquerdo do rótulo.
5542
5614
  */
5543
5615
  icon;
5616
+ /**
5617
+ * @optional
5618
+ *
5619
+ * @description
5620
+ *
5621
+ * Define se deve ser exibido o ícone indicando subnível.
5622
+ */
5623
+ iconArrowRight;
5544
5624
  // Define a posição do ícone: 'left' (padrão) ou 'right'.
5545
5625
  iconPosition = 'left';
5546
5626
  /**
@@ -5588,7 +5668,7 @@ class PoItemListBaseComponent {
5588
5668
  }
5589
5669
  }
5590
5670
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoItemListBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
5591
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.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 });
5671
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.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"], iconArrowRight: ["p-icon-arrow-right", "iconArrowRight"], 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 });
5592
5672
  }
5593
5673
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoItemListBaseComponent, decorators: [{
5594
5674
  type: Directive
@@ -5631,6 +5711,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
5631
5711
  }], icon: [{
5632
5712
  type: Input,
5633
5713
  args: ['p-icon']
5714
+ }], iconArrowRight: [{
5715
+ type: Input,
5716
+ args: ['p-icon-arrow-right']
5634
5717
  }], iconPosition: [{
5635
5718
  type: Input,
5636
5719
  args: ['p-icon-position']
@@ -8036,11 +8119,11 @@ class PoItemListComponent extends PoItemListBaseComponent {
8036
8119
  return value.replace(/</g, '&lt;').replace(/>/g, '&gt;');
8037
8120
  }
8038
8121
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoItemListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
8039
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.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"] }] });
8122
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.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\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 (iconArrowRight) {\n <po-icon class=\"po-popup-icon-item-right po-field-icon\" [p-icon]=\"iconArrowRight\"></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"] }] });
8040
8123
  }
8041
8124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoItemListComponent, decorators: [{
8042
8125
  type: Component,
8043
- 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" }]
8126
+ 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\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 (iconArrowRight) {\n <po-icon class=\"po-popup-icon-item-right po-field-icon\" [p-icon]=\"iconArrowRight\"></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" }]
8044
8127
  }], propDecorators: { itemList: [{
8045
8128
  type: ViewChild,
8046
8129
  args: ['itemList', { static: true }]
@@ -8241,11 +8324,23 @@ class PoListBoxComponent extends PoListBoxBaseComponent {
8241
8324
  }
8242
8325
  });
8243
8326
  }
8244
- onKeydownGoBack(event) {
8327
+ onKeydownGoBack(event, currentGroup) {
8245
8328
  if (event.key === 'Enter') {
8246
8329
  this.goBack(event);
8247
8330
  }
8248
8331
  if (event?.code === 'Escape' || event.code === 'Tab') {
8332
+ if (event.code === 'Tab' && !event.shiftKey && currentGroup?.$subItemTemplate) {
8333
+ return;
8334
+ }
8335
+ this.closeEvent.emit();
8336
+ }
8337
+ }
8338
+ onKeydownTemplate(event) {
8339
+ if (event.code === 'Tab') {
8340
+ if (event.target?.closest('.po-listbox-dropdown')) {
8341
+ event.stopPropagation();
8342
+ return;
8343
+ }
8249
8344
  this.closeEvent.emit();
8250
8345
  }
8251
8346
  }
@@ -8269,7 +8364,7 @@ class PoListBoxComponent extends PoListBoxBaseComponent {
8269
8364
  if (itemListAction?.url && !isDisabled && isVisible) {
8270
8365
  return this.openUrl(itemListAction.url);
8271
8366
  }
8272
- if (itemListAction?.subItems?.length) {
8367
+ if (itemListAction?.subItems?.length || itemListAction?.$subItemTemplate) {
8273
8368
  this.openGroup(itemListAction, event);
8274
8369
  }
8275
8370
  else if (this.listboxSubitems) {
@@ -8465,11 +8560,11 @@ class PoListBoxComponent extends PoListBoxBaseComponent {
8465
8560
  this.closeEvent.emit();
8466
8561
  }
8467
8562
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoListBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8468
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.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"] }] });
8563
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.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 || item.$subItemTemplate) {\n <po-item-list\n [p-label]=\"item.label\"\n [p-item]=\"item\"\n [p-separator]=\"item.separator || separator\"\n [p-icon]=\"item.icon\"\n [p-icon-arrow-right]=\"'ICON_ARROW_RIGHT'\"\n [p-selected]=\"isSelectedItem(item) || item.selected\"\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, currentGroup)\"\n >\n <po-icon class=\"po-field-icon\" [p-icon]=\"'ICON_ARROW_LEFT'\"></po-icon>\n <po-tag [p-value]=\"currentGroup.label\"></po-tag>\n </li>\n\n @if (currentGroup.$subItemTemplate) {\n <div\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"onKeydownTemplate($event)\"\n (keydown.space)=\"$event.stopPropagation()\"\n >\n <ng-container\n *ngTemplateOutlet=\"currentGroup.$subItemTemplate; context: { $implicit: currentGroup }\"\n ></ng-container>\n </div>\n } @else {\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]=\"'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 }\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: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: i5.CdkListbox, selector: "[cdkListbox]", inputs: ["id", "tabindex", "cdkListboxValue", "cdkListboxMultiple", "cdkListboxDisabled", "cdkListboxUseActiveDescendant", "cdkListboxOrientation", "cdkListboxCompareWith", "cdkListboxNavigationWrapDisabled", "cdkListboxNavigatesDisabledOptions"], outputs: ["cdkListboxValueChange"], exportAs: ["cdkListbox"] }, { kind: "directive", type: i5.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"] }] });
8469
8564
  }
8470
8565
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoListBoxComponent, decorators: [{
8471
8566
  type: Component,
8472
- 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" }]
8567
+ 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 || item.$subItemTemplate) {\n <po-item-list\n [p-label]=\"item.label\"\n [p-item]=\"item\"\n [p-separator]=\"item.separator || separator\"\n [p-icon]=\"item.icon\"\n [p-icon-arrow-right]=\"'ICON_ARROW_RIGHT'\"\n [p-selected]=\"isSelectedItem(item) || item.selected\"\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, currentGroup)\"\n >\n <po-icon class=\"po-field-icon\" [p-icon]=\"'ICON_ARROW_LEFT'\"></po-icon>\n <po-tag [p-value]=\"currentGroup.label\"></po-tag>\n </li>\n\n @if (currentGroup.$subItemTemplate) {\n <div\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"onKeydownTemplate($event)\"\n (keydown.space)=\"$event.stopPropagation()\"\n >\n <ng-container\n *ngTemplateOutlet=\"currentGroup.$subItemTemplate; context: { $implicit: currentGroup }\"\n ></ng-container>\n </div>\n } @else {\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]=\"'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 }\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" }]
8473
8568
  }], ctorParameters: () => [], propDecorators: { listbox: [{
8474
8569
  type: ViewChild,
8475
8570
  args: ['listbox', { static: true }]
@@ -8513,6 +8608,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
8513
8608
  *
8514
8609
  */
8515
8610
  class PoPopupComponent extends PoPopupBaseComponent {
8611
+ id = `po-popup[${uuid()}]`;
8516
8612
  renderer = inject(Renderer2);
8517
8613
  router = inject(Router);
8518
8614
  poControlPosition = inject(PoControlPositionService);
@@ -8521,6 +8617,11 @@ class PoPopupComponent extends PoPopupBaseComponent {
8521
8617
  listbox;
8522
8618
  //utilizado apenas no theme builder
8523
8619
  poListBoxRef;
8620
+ ngAfterViewInit() {
8621
+ if (this.templateIcon && this.target) {
8622
+ this.target = this.target?.iconElement?.nativeElement;
8623
+ }
8624
+ }
8524
8625
  /**
8525
8626
  * Fecha o componente *popup*.
8526
8627
  *
@@ -8573,7 +8674,7 @@ class PoPopupComponent extends PoPopupBaseComponent {
8573
8674
  if (!item.goBack) {
8574
8675
  this.clickItem.emit(item);
8575
8676
  }
8576
- if (item.subItems || item.goBack) {
8677
+ if (item.subItems || item.$subItemTemplate || item.goBack) {
8577
8678
  this.changeDetector.detectChanges();
8578
8679
  this.validateInitialContent();
8579
8680
  }
@@ -10704,6 +10805,49 @@ var PoChartLabelFormat;
10704
10805
  PoChartLabelFormat["Currency"] = "currency";
10705
10806
  })(PoChartLabelFormat || (PoChartLabelFormat = {}));
10706
10807
 
10808
+ const poChartLiteralsDefault = {
10809
+ en: {
10810
+ downloadCSV: 'Download CSV',
10811
+ exportCSV: 'Export CSV',
10812
+ exportJPG: 'Export JPG',
10813
+ exportPNG: 'Export PNG',
10814
+ value: 'Value',
10815
+ item: 'Item',
10816
+ serie: 'Series',
10817
+ category: 'Category'
10818
+ },
10819
+ es: {
10820
+ downloadCSV: 'Descargar CSV',
10821
+ exportCSV: 'Exportar CSV',
10822
+ exportJPG: 'Exportar JPG',
10823
+ exportPNG: 'Exportar PNG',
10824
+ value: 'Valor',
10825
+ item: 'Artículo',
10826
+ serie: 'Serie',
10827
+ category: 'Categoría'
10828
+ },
10829
+ pt: {
10830
+ downloadCSV: 'Baixar CSV',
10831
+ exportCSV: 'Exportar CSV',
10832
+ exportJPG: 'Exportar JPG',
10833
+ exportPNG: 'Exportar PNG',
10834
+ value: 'Valor',
10835
+ item: 'Item',
10836
+ serie: 'Série',
10837
+ category: 'Categoria'
10838
+ },
10839
+ ru: {
10840
+ downloadCSV: 'Скачать CSV',
10841
+ exportCSV: 'Экспортировать CSV',
10842
+ exportJPG: 'Экспортировать JPG',
10843
+ exportPNG: 'Экспортировать PNG',
10844
+ value: 'Ценить',
10845
+ item: 'Пункт',
10846
+ serie: 'Ряд',
10847
+ category: 'Категория'
10848
+ }
10849
+ };
10850
+
10707
10851
  /**
10708
10852
  * @usedBy PoChartComponent
10709
10853
  *
@@ -10746,51 +10890,12 @@ var PoChartType;
10746
10890
  * - Para um demonstrativo mais elaborado, consegue-se definir alcances em cores, um breve texto descritivo e um ponteiro indicando o valor desejado.
10747
10891
  */
10748
10892
  PoChartType["Gauge"] = "gauge";
10893
+ /**
10894
+ * Tipo de gráfico utilizado para visualizar e comparar o desempenho de diferentes itens em múltiplas categorias.
10895
+ */
10896
+ PoChartType["Radar"] = "radar";
10749
10897
  })(PoChartType || (PoChartType = {}));
10750
10898
 
10751
- const poChartLiteralsDefault = {
10752
- en: {
10753
- downloadCSV: 'Download CSV',
10754
- exportCSV: 'Export CSV',
10755
- exportJPG: 'Export JPG',
10756
- exportPNG: 'Export PNG',
10757
- value: 'Value',
10758
- item: 'Item',
10759
- serie: 'Series',
10760
- category: 'Category'
10761
- },
10762
- es: {
10763
- downloadCSV: 'Descargar CSV',
10764
- exportCSV: 'Exportar CSV',
10765
- exportJPG: 'Exportar JPG',
10766
- exportPNG: 'Exportar PNG',
10767
- value: 'Valor',
10768
- item: 'Artículo',
10769
- serie: 'Serie',
10770
- category: 'Categoría'
10771
- },
10772
- pt: {
10773
- downloadCSV: 'Baixar CSV',
10774
- exportCSV: 'Exportar CSV',
10775
- exportJPG: 'Exportar JPG',
10776
- exportPNG: 'Exportar PNG',
10777
- value: 'Valor',
10778
- item: 'Item',
10779
- serie: 'Série',
10780
- category: 'Categoria'
10781
- },
10782
- ru: {
10783
- downloadCSV: 'Скачать CSV',
10784
- exportCSV: 'Экспортировать CSV',
10785
- exportJPG: 'Экспортировать JPG',
10786
- exportPNG: 'Экспортировать PNG',
10787
- value: 'Ценить',
10788
- item: 'Пункт',
10789
- serie: 'Ряд',
10790
- category: 'Категория'
10791
- }
10792
- };
10793
-
10794
10899
  const poChartMinHeight = 200;
10795
10900
  const poChartDefaultHeight = 400;
10796
10901
  /**
@@ -10846,6 +10951,9 @@ const poChartDefaultHeight = 400;
10846
10951
  * | `--color-base-gauge` | Cor da base do gráfico `Gauge` | `var(--color-neutral-light-20)` |
10847
10952
  * | `--color-gauge-pointer-color` | Cor do ponteiro do gráfico `Gauge` | `var(--color-neutral-dark-70)` |
10848
10953
  * | `--color-chart-line-point-fill` | Cor de dentro do círculo dos gráficos `Line` e `Area` | `var(--color-neutral-light-00)` |
10954
+ * | `--border-color-radar` | Cor do eixo da grid do gráfico `Radar` | `var(--color-neutral-light-30)` |
10955
+ * | `--color-background-zebra` | Cor das áreas alternadas (efeito zebrado) da grid do gráfico `Radar` | `var(--color-neutral-light-10)` |
10956
+ * | `--color-background-line` | Cor das áreas entre as faixas zebradas da grade do `Radar` | `none` |
10849
10957
  * | **Wrapper (.po-chart-container-gauge)** | | |
10850
10958
  * | `--background-color-container-gauge` | Cor de background do container do gauge | `var(--color-neutral-light-00)` |
10851
10959
  */
@@ -10873,11 +10981,18 @@ class PoChartBaseComponent {
10873
10981
  *
10874
10982
  * @description
10875
10983
  *
10876
- * Define os nomes das categorias que serão plotadas no eixo X do gráfico caso seja do tipo `bar`, ou então nos eixos Y do grid de gráficos dos tipos `area`, `columnn` e `line`.
10984
+ * Define os valores utilizados na construção das categorias do gráfico.
10985
+ *
10986
+ * Para gráficos dos tipos *bar*, *area*, *column* e *line*, representa os nomes das categorias exibidas no eixo.
10987
+ *
10988
+ * Para gráficos do tipo *radar*, representa a configuração dos indicadores, formato (shape), áreas de divisão (splitArea)
10989
+ * e demais opções específicas do gráfico `Radar`.
10877
10990
  *
10878
- * > Gráficos do tipo `bar` dimensionam a área do gráfico de acordo com a largura do maior texto de categorias. No entanto, é uma boa prática optar por palavras curtas para que a leitura do gráfico não seja prejudicada.
10991
+ * > Caso nenhum valor seja informado, será utilizado um hífen como categoria
10992
+ * correspondente para cada série.
10879
10993
  *
10880
- * > Caso não seja especificado um valor para a categoria, será plotado um hífen na categoria referente a cada série.
10994
+ * > Gráficos do tipo bar dimensionam sua área considerando a largura do maior texto
10995
+ * da categoria, sendo recomendável utilizar rótulos curtos para facilitar a leitura.
10881
10996
  */
10882
10997
  categories;
10883
10998
  /**
@@ -10896,7 +11011,7 @@ class PoChartBaseComponent {
10896
11011
  * Objeto com as configurações usadas no `po-chart`.
10897
11012
  *
10898
11013
  * É possível, por exemplo, definir as configurações de exibição das legendas,
10899
- * configurar os eixos(*axis*) para os gráficos dos tipos `area`, `line`, `column` e `bar` da seguinte forma:
11014
+ * configurar os eixos(*axis*) para os gráficos dos tipos `area`, `line`, `column`, `bar` e `radar` da seguinte forma:
10900
11015
  *
10901
11016
  * ```
10902
11017
  * chartOptions: PoChartOptions = {
@@ -10923,7 +11038,7 @@ class PoChartBaseComponent {
10923
11038
  * - Os marcadores (*bullets*) terão seu estilo ajustado.
10924
11039
  * - As outras séries ficarão com opacidade reduzida ao passar o mouse sobre a série ativa.
10925
11040
  *
10926
- * > Disponível apenas para gráficos do tipo `line`.
11041
+ * > Disponível para gráficos do tipo `line` e `radar`.
10927
11042
  *
10928
11043
  * #### Exemplo de utilização:
10929
11044
  * ```typescript
@@ -11024,6 +11139,7 @@ class PoChartBaseComponent {
11024
11139
  *
11025
11140
  * O evento emitirá o seguinte parâmetro:
11026
11141
  * - *donut* e *pie*: um objeto contendo a categoria e valor da série.
11142
+ * - *radar*: um objeto contendo o nome da série e os valores.
11027
11143
  * - *area*, *line*, *column* e *bar*: um objeto contendo o nome da série, valor e categoria do eixo do gráfico.
11028
11144
  */
11029
11145
  seriesClick = new EventEmitter();
@@ -11036,6 +11152,7 @@ class PoChartBaseComponent {
11036
11152
  *
11037
11153
  * O evento emitirá o seguinte parâmetro de acordo com o tipo de gráfico:
11038
11154
  * - *donut* e *pie*: um objeto contendo a categoria e valor da série.
11155
+ * - *radar*: um objeto contendo o nome da série e os valores.
11039
11156
  * - *area*, *line*, *column* e *bar*: um objeto contendo a categoria, valor da série e categoria do eixo do gráfico.
11040
11157
  */
11041
11158
  seriesHover = new EventEmitter();
@@ -11169,6 +11286,9 @@ class PoChartGridUtils {
11169
11286
  }
11170
11287
  }
11171
11288
  };
11289
+ if (this.component.isTypeRadar) {
11290
+ return;
11291
+ }
11172
11292
  if (this.component.isTypeBar) {
11173
11293
  options.yAxis.data = this.component.categories;
11174
11294
  }
@@ -11382,7 +11502,8 @@ class PoChartGridUtils {
11382
11502
  }
11383
11503
  else if ((options?.dataZoom && !options?.bottomDataZoom && options.legend === false) ||
11384
11504
  (!options?.dataZoom && options?.legend === false) ||
11385
- (!options?.dataZoom && options?.legendVerticalPosition === 'top')) {
11505
+ (!options?.dataZoom && options?.legendVerticalPosition === 'top') ||
11506
+ (this.component.isTypeRadar && options.legendVerticalPosition !== 'top')) {
11386
11507
  return gridPaddingValues.paddingBottomNoLegend;
11387
11508
  }
11388
11509
  return gridPaddingValues.paddingBottomWithTopLegend;
@@ -11412,6 +11533,135 @@ class PoChartGridUtils {
11412
11533
  : gridPaddingValues.paddingTopDefaultWithBottomLegend;
11413
11534
  }
11414
11535
  }
11536
+ isRadarOptions(value) {
11537
+ return value && typeof value === 'object' && !Array.isArray(value) && 'indicator' in value;
11538
+ }
11539
+ convertRadarConfig(indicators) {
11540
+ return {
11541
+ shape: 'polygon',
11542
+ splitArea: false,
11543
+ indicator: indicators.map(item => ({ name: item }))
11544
+ };
11545
+ }
11546
+ setListTypeRadar() {
11547
+ const radar = this.isRadarOptions(this.component.categories)
11548
+ ? this.component.categories
11549
+ : this.convertRadarConfig(this.component.categories);
11550
+ const radarConfig = {
11551
+ shape: radar?.shape ?? 'polygon',
11552
+ radius: '60%',
11553
+ splitLine: {
11554
+ show: true,
11555
+ lineStyle: {
11556
+ color: [this.component.getCSSVariable('--border-color-radar', 'po-chart .po-chart')],
11557
+ width: this.resolvePx('--border-width-sm')
11558
+ }
11559
+ },
11560
+ axisLine: {
11561
+ show: true,
11562
+ lineStyle: {
11563
+ color: this.component.getCSSVariable('--border-color-radar', 'po-chart .po-chart'),
11564
+ width: this.resolvePx('--border-width-sm')
11565
+ }
11566
+ },
11567
+ splitArea: {
11568
+ show: radar?.splitArea ?? false,
11569
+ areaStyle: {
11570
+ color: [
11571
+ this.component.getCSSVariable('--color-background-line', 'po-chart .po-chart'),
11572
+ this.component.getCSSVariable('--color-background-zebra', 'po-chart .po-chart')
11573
+ ]
11574
+ }
11575
+ },
11576
+ indicator: Array.isArray(radar?.indicator)
11577
+ ? radar.indicator.map(ind => ({
11578
+ name: ind.name,
11579
+ max: ind.max ?? undefined,
11580
+ min: ind.min ?? 0,
11581
+ color: ind.color ?? this.component.getCSSVariable('--color-neutral-dark-90')
11582
+ }))
11583
+ : []
11584
+ };
11585
+ const currentOptions = this.component.options ?? {};
11586
+ const hasGlobalAreaStyle = this.component.options?.areaStyle === true;
11587
+ const hasSeriesAreaStyle = Array.isArray(this.component.series) && this.component.series.some(serie => !!serie?.areaStyle);
11588
+ this.component.options = {
11589
+ ...this.component.options,
11590
+ fillPoints: hasGlobalAreaStyle || hasSeriesAreaStyle ? true : (currentOptions.fillPoints ?? true),
11591
+ radar: radarConfig
11592
+ };
11593
+ return radarConfig;
11594
+ }
11595
+ setSerieTypeRadar(serie, tokenBorderWidthMd, color) {
11596
+ if (serie.type === 'radar') {
11597
+ serie.type = 'radar';
11598
+ serie.symbol = 'circle';
11599
+ serie.symbolSize = 6;
11600
+ if (this.component.dataLabel?.fixed) {
11601
+ serie.label = {
11602
+ show: true
11603
+ };
11604
+ }
11605
+ serie.itemStyle = {
11606
+ color: this.component.options?.fillPoints === false
11607
+ ? this.component.getCSSVariable('--color-chart-line-point-fill', 'po-chart .po-chart')
11608
+ : color,
11609
+ borderColor: color,
11610
+ borderWidth: tokenBorderWidthMd
11611
+ };
11612
+ serie.lineStyle = { color, width: tokenBorderWidthMd };
11613
+ return serie;
11614
+ }
11615
+ }
11616
+ setTooltipRadar(params) {
11617
+ const indicators = this.component.options.radar?.indicator ?? [];
11618
+ const values = params.value ?? [];
11619
+ values.map((val, i) => {
11620
+ const indicatorName = indicators[i]?.name ?? `Indicador ${i + 1}`;
11621
+ return `${indicatorName}: <b>${val}</b>`;
11622
+ });
11623
+ }
11624
+ buildRadarTooltip(params) {
11625
+ const indicators = this.component.options.radar?.indicator ?? [];
11626
+ const values = params.value ?? [];
11627
+ let tooltip = `<b>${params.name}</b><br>`;
11628
+ values.map((val, index) => {
11629
+ const indicatorName = indicators[index]?.name ?? `Indicator ${index + 1}`;
11630
+ tooltip += `${indicatorName}: <b>${val}</b><br>`;
11631
+ });
11632
+ return tooltip;
11633
+ }
11634
+ finalizeSerieTypeRadar(seriesUpdated) {
11635
+ const hasGlobalAreaStyle = this.component.options?.areaStyle === true;
11636
+ return [
11637
+ {
11638
+ type: 'radar',
11639
+ data: seriesUpdated.map(item => {
11640
+ const name = item?.name ?? '';
11641
+ const value = Array.isArray(item?.data) ? item.data : [];
11642
+ let areaStyle;
11643
+ if (hasGlobalAreaStyle || item.areaStyle === true) {
11644
+ areaStyle = {
11645
+ opacity: 0.5
11646
+ };
11647
+ }
11648
+ else {
11649
+ areaStyle = undefined;
11650
+ }
11651
+ return {
11652
+ name,
11653
+ value,
11654
+ areaStyle,
11655
+ symbol: item.symbol,
11656
+ symbolSize: item.symbolSize,
11657
+ itemStyle: item.itemStyle,
11658
+ lineStyle: item.lineStyle,
11659
+ label: { show: item?.label?.show }
11660
+ };
11661
+ })
11662
+ }
11663
+ ];
11664
+ }
11415
11665
  }
11416
11666
 
11417
11667
  class PoChartGaugeUtils {
@@ -11563,11 +11813,9 @@ class PoChartGaugeUtils {
11563
11813
  let lengthPointer = '40%';
11564
11814
  let center = ['50%', '80%'];
11565
11815
  let widthSubtitle = height < 450 ? 400 : 500;
11566
- // 👇 Regras para telas pequenas
11567
11816
  const isSmallScreen = divWidth < 480;
11568
11817
  const isMediumScreen = divWidth >= 480 && divWidth < 960;
11569
11818
  const isLargeScreen = divWidth >= 960;
11570
- // 👇 Ajustes por largura
11571
11819
  if (isSmallScreen) {
11572
11820
  radius = height > 480 ? '100%' : '120%';
11573
11821
  lengthPointer = '25%';
@@ -11582,7 +11830,6 @@ class PoChartGaugeUtils {
11582
11830
  else if (isLargeScreen && height > 750) {
11583
11831
  radius = '100%';
11584
11832
  }
11585
- // 👇 Ajuste específico para altura muito pequena
11586
11833
  if (height < 400) {
11587
11834
  return this.setPropertiesDefaultHeight(center);
11588
11835
  }
@@ -11673,6 +11920,7 @@ use([
11673
11920
  GraphicComponent,
11674
11921
  LineChart,
11675
11922
  PieChart,
11923
+ RadarChart,
11676
11924
  BrushComponent,
11677
11925
  DataZoomComponent,
11678
11926
  GridComponent,
@@ -11717,6 +11965,11 @@ use([
11717
11965
  * <file name="sample-po-chart-world-exports/sample-po-chart-world-exports.component.html"> </file>
11718
11966
  * <file name="sample-po-chart-world-exports/sample-po-chart-world-exports.component.ts"> </file>
11719
11967
  * </example>
11968
+ *
11969
+ * <example name="po-chart-technology-skill" title="PO Chart - Radar">
11970
+ * <file name="sample-po-chart-technology-skill/sample-po-chart-technology-skill.component.html"> </file>
11971
+ * <file name="sample-po-chart-technology-skill/sample-po-chart-technology-skill.component.ts"> </file>
11972
+ * </example>
11720
11973
  */
11721
11974
  class PoChartComponent extends PoChartBaseComponent {
11722
11975
  el = inject(ElementRef);
@@ -11732,6 +11985,7 @@ class PoChartComponent extends PoChartBaseComponent {
11732
11985
  originalRadiusGauge;
11733
11986
  chartMarginTop = '0px';
11734
11987
  isTypeBar = false;
11988
+ isTypeRadar = false;
11735
11989
  boundaryGap = false;
11736
11990
  listTypePieDonut;
11737
11991
  itemsTypeDonut = [];
@@ -12014,7 +12268,9 @@ class PoChartComponent extends PoChartBaseComponent {
12014
12268
  }
12015
12269
  resolveCustomTooltip(params, name, seriesName, valueLabel) {
12016
12270
  let text;
12017
- const serie = params.seriesType === 'pie' ? this.series[params.dataIndex] : this.series[params.seriesIndex];
12271
+ const serie = params.seriesType === 'pie' || params.seriesType === 'radar'
12272
+ ? this.series[params.dataIndex]
12273
+ : this.series[params.seriesIndex];
12018
12274
  if (serie?.tooltip) {
12019
12275
  if (typeof serie.tooltip === 'function') {
12020
12276
  text = serie.tooltip(params);
@@ -12028,6 +12284,9 @@ class PoChartComponent extends PoChartBaseComponent {
12028
12284
  seriesName && !seriesName.includes('\u00000')
12029
12285
  ? `<b>${name}</b><br>${seriesName}: <b>${valueLabel}</b>`
12030
12286
  : `${name}: <b>${valueLabel}</b>`;
12287
+ if (params.seriesType === 'radar') {
12288
+ text = this.chartGridUtils.buildRadarTooltip(params);
12289
+ }
12031
12290
  }
12032
12291
  return this.parseTooltipText(text);
12033
12292
  }
@@ -12052,7 +12311,7 @@ class PoChartComponent extends PoChartBaseComponent {
12052
12311
  this.listTypePieDonut = [];
12053
12312
  this.itemsTypeDonut = [];
12054
12313
  let option = {};
12055
- if (!this.categories?.length && this.categories !== undefined) {
12314
+ if (Array.isArray(this.categories) && !this.categories?.length && this.categories !== undefined) {
12056
12315
  this.categories = undefined;
12057
12316
  }
12058
12317
  if (!this.series?.length) {
@@ -12088,6 +12347,9 @@ class PoChartComponent extends PoChartBaseComponent {
12088
12347
  if (this.isTypeGauge) {
12089
12348
  this.chartGaugeUtils.setGaugeOptions(options, this.chartGridUtils.resolvePx('--font-size-grid', '.po-chart'));
12090
12349
  }
12350
+ if (this.isTypeRadar) {
12351
+ options.radar = this.options?.radar;
12352
+ }
12091
12353
  return options;
12092
12354
  }
12093
12355
  formatLabelOption(options) {
@@ -12125,7 +12387,10 @@ class PoChartComponent extends PoChartBaseComponent {
12125
12387
  };
12126
12388
  }
12127
12389
  setSeries() {
12128
- const hasArea = this.type === 'area' || this.series.some(serie => serie.type === 'area');
12390
+ const hasArea = this.type === 'area' ||
12391
+ this.series.some(serie => serie.type === 'area') ||
12392
+ this.options?.areaStyle ||
12393
+ this.series.some(serie => serie.areaStyle === true);
12129
12394
  const newSeries = [...this.colorService.getColors(this.series, true, hasArea)];
12130
12395
  const tokenBorderWidthMd = this.chartGridUtils.resolvePx('--border-width-md');
12131
12396
  const findType = this.series.find(serie => serie.type)?.type;
@@ -12147,6 +12412,9 @@ class PoChartComponent extends PoChartBaseComponent {
12147
12412
  };
12148
12413
  serieGauge = this.chartGaugeUtils.setListTypeGauge(serie, fontSizes);
12149
12414
  }
12415
+ else if (verifyType === 'radar') {
12416
+ this.chartGridUtils.setListTypeRadar();
12417
+ }
12150
12418
  const seriesUpdated = newSeries.map((serie, index) => {
12151
12419
  serie.name = serie.name || (serie.label && typeof serie.label === 'string') ? (serie.name ?? serie.label) : ' ';
12152
12420
  !serie.type ? this.setTypeSerie(serie, this.type || typeDefault) : this.setTypeSerie(serie, serie.type);
@@ -12168,6 +12436,7 @@ class PoChartComponent extends PoChartBaseComponent {
12168
12436
  this.chartGridUtils.setSerieTypeLine(serie, tokenBorderWidthMd, colorVariable);
12169
12437
  this.chartGridUtils.setSerieTypeArea(serie, index);
12170
12438
  this.chartGridUtils.setSerieTypeBarColumn(serie, colorVariable);
12439
+ this.chartGridUtils.setSerieTypeRadar(serie, tokenBorderWidthMd, colorVariable);
12171
12440
  return serie;
12172
12441
  });
12173
12442
  if (this.listTypePieDonut?.length) {
@@ -12176,6 +12445,9 @@ class PoChartComponent extends PoChartBaseComponent {
12176
12445
  else if (verifyType === 'gauge') {
12177
12446
  return this.chartGaugeUtils.finalizeSerieTypeGauge(serieGauge);
12178
12447
  }
12448
+ else if (verifyType === 'radar') {
12449
+ return this.chartGridUtils.finalizeSerieTypeRadar(seriesUpdated);
12450
+ }
12179
12451
  return seriesUpdated;
12180
12452
  }
12181
12453
  setSerieEmphasis(serie, color, tokenBorder) {
@@ -12203,8 +12475,8 @@ class PoChartComponent extends PoChartBaseComponent {
12203
12475
  setTypeSerie(serie, type) {
12204
12476
  switch (type) {
12205
12477
  case PoChartType.Area:
12206
- serie.type = 'line';
12207
12478
  serie.isTypeArea = true;
12479
+ serie.type = 'line';
12208
12480
  break;
12209
12481
  case PoChartType.Bar:
12210
12482
  this.isTypeBar = true;
@@ -12221,6 +12493,10 @@ class PoChartComponent extends PoChartBaseComponent {
12221
12493
  this.isTypeGauge = true;
12222
12494
  serie.type = 'gauge';
12223
12495
  break;
12496
+ case PoChartType.Radar:
12497
+ this.isTypeRadar = true;
12498
+ serie.type = 'radar';
12499
+ break;
12224
12500
  }
12225
12501
  }
12226
12502
  setTableProperties() {
@@ -12247,6 +12523,10 @@ class PoChartComponent extends PoChartBaseComponent {
12247
12523
  this.setTablePropertiesTypeGauge();
12248
12524
  return;
12249
12525
  }
12526
+ else if (this.isTypeRadar) {
12527
+ this.setTablePropertiesTypeRadar();
12528
+ return;
12529
+ }
12250
12530
  this.itemsTable = series.map((serie) => {
12251
12531
  const rowData = { serie: serie.name };
12252
12532
  categories.forEach((category, index) => {
@@ -12286,6 +12566,34 @@ class PoChartComponent extends PoChartBaseComponent {
12286
12566
  });
12287
12567
  }
12288
12568
  }
12569
+ setTablePropertiesTypeRadar() {
12570
+ let indicators;
12571
+ if (!Array.isArray(this.categories) && this.categories?.indicator) {
12572
+ indicators = this.categories.indicator;
12573
+ }
12574
+ else if (Array.isArray(this.categories)) {
12575
+ indicators = this.categories.map(item => ({ name: item }));
12576
+ }
12577
+ const series = this.series;
12578
+ this.columnsTable = [
12579
+ {
12580
+ property: 'serie',
12581
+ label: this.options?.firstColumnName || this.literals.serie
12582
+ },
12583
+ ...indicators.map((indicator) => ({
12584
+ property: indicator.name,
12585
+ label: indicator.name
12586
+ }))
12587
+ ];
12588
+ this.itemsTable = series.map((serie) => {
12589
+ const row = { serie: serie.label };
12590
+ indicators.forEach((indicator, idx) => {
12591
+ const value = serie.data[idx]?.value ?? serie.data[idx];
12592
+ row[indicator.name] = value;
12593
+ });
12594
+ return row;
12595
+ });
12596
+ }
12289
12597
  setTableColumns(option, categories) {
12290
12598
  this.columnsTable = [
12291
12599
  { property: 'serie', label: this.options?.firstColumnName || this.literals.serie },
@@ -26538,7 +26846,7 @@ class PoTableComponent extends PoTableBaseComponent {
26538
26846
  }
26539
26847
  }
26540
26848
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoTableComponent, deps: [{ token: PoDateService }, { token: i0.IterableDiffers }, { token: i0.Renderer2 }, { token: PoLanguageService }, { token: i0.ChangeDetectorRef }, { token: i1.DecimalPipe }, { token: PoTableService }, { token: ICONS_DICTIONARY, optional: true }], target: i0.ɵɵFactoryTarget.Component });
26541
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: PoTableComponent, isStandalone: false, selector: "po-table", providers: [PoDateService, PoTableService], queries: [{ propertyName: "tableRowTemplate", first: true, predicate: PoTableRowTemplateDirective, descendants: true, static: true }, { propertyName: "tableCellTemplate", first: true, predicate: PoTableCellTemplateDirective, descendants: true }, { propertyName: "tableColumnTemplates", predicate: PoTableColumnTemplateDirective }], viewQueries: [{ propertyName: "noColumnsHeader", first: true, predicate: ["noColumnsHeader"], descendants: true, read: ElementRef }, { propertyName: "poPopupComponent", first: true, predicate: ["popup"], descendants: true }, { propertyName: "modalDelete", first: true, predicate: PoModalComponent, descendants: true, static: true }, { propertyName: "tableFooterElement", first: true, predicate: ["tableFooter"], descendants: true, read: ElementRef }, { propertyName: "tableWrapperElement", first: true, predicate: ["tableWrapper"], descendants: true, read: ElementRef }, { propertyName: "tableTemplate", first: true, predicate: ["tableTemplate"], descendants: true, read: ElementRef }, { propertyName: "tableVirtualScroll", first: true, predicate: ["tableVirtualScroll"], descendants: true, read: ElementRef }, { propertyName: "tableScrollable", first: true, predicate: ["tableScrollable"], descendants: true, read: ElementRef }, { propertyName: "columnManager", first: true, predicate: ["columnManager"], descendants: true, read: ElementRef }, { propertyName: "columnBatchActions", first: true, predicate: ["columnBatchActions"], descendants: true, read: ElementRef }, { propertyName: "columnActionLeft", first: true, predicate: ["columnActionLeft"], descendants: true, read: ElementRef }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }, { propertyName: "poSearchInput", first: true, predicate: ["poSearchInput"], descendants: true, read: ElementRef, static: true }, { propertyName: "viewPort", first: true, predicate: CdkVirtualScrollViewport, descendants: true }, { propertyName: "columnManagerTarget", first: true, predicate: ["columnManagerTarget"], descendants: true }, { propertyName: "columnManagerTargetFixed", first: true, predicate: ["columnManagerTargetFixed"], descendants: true }, { propertyName: "actionsIconElement", predicate: ["actionsIconElement"], descendants: true, read: ElementRef }, { propertyName: "actionsElement", predicate: ["actionsElement"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"po-table-actions\">\n @if (hasValidColumns && itemsSelected.length > 0 && !hideBatchActions) {\n <div #columnBatchActions class=\"po-table-actions-batch-actions\">\n <div [ngPlural]=\"itemsSelected.length\" class=\"po-table-actions-batch-actions__label\">\n <strong>\n <ng-template ngPluralCase=\"=0\">{{ literals.noItem }}</ng-template>\n <ng-template ngPluralCase=\"=1\">{{ literals.oneItem }}</ng-template>\n <ng-template ngPluralCase=\"other\">{{ itemsSelected.length }} {{ literals.multipleItems }}</ng-template>\n </strong>\n </div>\n <div class=\"po-table-actions-batch-actions__buttons\">\n <po-button\n p-icon=\"ICON_DELETE\"\n [p-danger]=\"true\"\n [p-disabled]=\"itemsSelected.length > 1 && serviceDeleteApi !== undefined\"\n [p-label]=\"literals.delete\"\n [p-size]=\"componentsSize\"\n (p-click)=\"modalDelete.open()\"\n ></po-button>\n </div>\n </div>\n }\n\n @if (hasValidColumns && !hideColumnsManager) {\n <div #columnManager class=\"po-table-actions-column-manager\">\n <po-button\n #columnManagerTarget\n p-icon=\"ICON_SETTINGS\"\n p-kind=\"tertiary\"\n p-tooltip-position=\"left\"\n [p-aria-label]=\"literals.columnsManager\"\n [p-tooltip]=\"literals.columnsManager\"\n [p-size]=\"componentsSize\"\n (p-click)=\"onOpenColumnManager()\"\n ></po-button>\n </div>\n }\n\n @if (!hideTableSearch && hasValidColumns) {\n <div class=\"po-table-search\">\n <po-search\n [p-items]=\"items\"\n [p-filter-keys]=\"filteredColumns\"\n [p-filter-type]=\"filterType\"\n [p-size]=\"componentsSize\"\n (p-filtered-items-change)=\"onFilteredItemsChange($event)\"\n >\n </po-search>\n </div>\n }\n</div>\n@if (container) {\n <po-container p-no-padding>\n <ng-container *ngTemplateOutlet=\"tableContainerTemplate\"></ng-container>\n </po-container>\n} @else {\n <div [class.po-table-container-sticky]=\"loading\">\n @if (loading) {\n <po-loading-overlay [p-text]=\"literals.loadingData\" [p-size]=\"sizeLoading\"></po-loading-overlay>\n }\n <div class=\"po-table-main-container\">\n <div\n #tableWrapper\n class=\"po-table-wrapper\"\n [class.po-table-header-fixed-columns-pixels]=\"allColumnsWidthPixels\"\n [style.opacity]=\"tableOpacity\"\n >\n @if (height) {\n <div class=\"po-table-container\" [style.height.px]=\"heightTableContainer\">\n <div #poTableTbody [class.po-table-container-fixed-inner]=\"virtualScroll\">\n @if (virtualScroll) {\n <div>\n <ng-container *ngTemplateOutlet=\"tableVirtualScrollTemplate\"></ng-container>\n </div>\n }\n @if (!virtualScroll) {\n <div class=\"po-table-container-overflow\" [style.height.px]=\"heightTableContainer\">\n <ng-container *ngTemplateOutlet=\"tableTemplate\"></ng-container>\n </div>\n }\n </div>\n </div>\n }\n @if (!height) {\n <div>\n <ng-container *ngTemplateOutlet=\"tableTemplate\"></ng-container>\n </div>\n }\n </div>\n </div>\n </div>\n @if (hasFooter) {\n <div class=\"po-table-footer\">\n @for (column of subtitleColumns; track trackBy($index)) {\n <po-table-subtitle-footer\n [p-components-size]=\"componentsSize\"\n [p-literals]=\"literals\"\n [p-subtitles]=\"column.subtitles\"\n >\n </po-table-subtitle-footer>\n }\n </div>\n }\n}\n\n<ng-template #tableContainerTemplate>\n <div [class.po-table-container-sticky]=\"loading\">\n @if (loading) {\n <po-loading-overlay [p-text]=\"literals.loadingData\" [p-size]=\"sizeLoading\"></po-loading-overlay>\n }\n <div class=\"po-table-main-container\">\n <div\n #tableWrapper\n class=\"po-table-wrapper\"\n [class.po-table-header-fixed-columns-pixels]=\"allColumnsWidthPixels\"\n [style.opacity]=\"tableOpacity\"\n >\n @if (height) {\n <div class=\"po-table-container\" [style.height.px]=\"heightTableContainer\">\n <div #poTableTbody [class.po-table-container-fixed-inner]=\"virtualScroll\">\n @if (virtualScroll) {\n <div>\n <ng-container *ngTemplateOutlet=\"tableVirtualScrollTemplate\"></ng-container>\n </div>\n }\n @if (!virtualScroll) {\n <div class=\"po-table-container-overflow\" [style.height.px]=\"heightTableContainer\">\n <ng-container *ngTemplateOutlet=\"tableTemplate\"></ng-container>\n </div>\n }\n </div>\n </div>\n }\n\n @if (!height) {\n <div>\n <ng-container *ngTemplateOutlet=\"tableTemplate\"></ng-container>\n </div>\n }\n </div>\n </div>\n </div>\n\n @if (hasFooter) {\n <div class=\"po-table-footer\">\n @for (column of subtitleColumns; track trackBy($index)) {\n <po-table-subtitle-footer\n [p-components-size]=\"componentsSize\"\n [p-literals]=\"literals\"\n [p-subtitles]=\"column.subtitles\"\n >\n </po-table-subtitle-footer>\n }\n </div>\n }\n</ng-template>\n\n<!-- Show More Button -->\n@if (!infiniteScroll) {\n <div\n class=\"po-row po-table-footer-show-more\"\n [class.po-invisible]=\"showMore.observers.length === 0 && !hasService\"\n #tableFooter\n >\n <po-button\n class=\"po-offset-xl-4 po-offset-lg-4 po-offset-md-3 po-lg-4 po-md-6\"\n [p-disabled]=\"showMoreDisabled\"\n [p-label]=\"literals.loadMoreData\"\n [p-loading]=\"loadingShowMore\"\n [p-size]=\"componentsSize\"\n (p-click)=\"onShowMore()\"\n >\n </po-button>\n </div>\n}\n\n<!-- Table default-->\n<ng-template #tableTemplate>\n <table\n #tableScrollable\n class=\"po-table\"\n [ngClass]=\"{\n 'po-table-interactive': selectable || sort,\n 'po-table-selectable': selectable,\n 'po-table-striped': striped,\n 'po-table-data-fixed-columns': applyFixedColumns(),\n 'po-table-text-wrap-enabled': textWrap\n }\"\n [attr.p-spacing]=\"spacing\"\n >\n <thead\n [class.po-table-header-sticky]=\"height > 0 && !virtualScroll\"\n [attr.p-spacing]=\"spacing ?? (componentsSize === 'small' ? 'extraSmall' : 'medium')\"\n >\n <tr\n [ngClass]=\"!height ? { 'no-hover': hideSelectAll, 'po-table-column-drag': this.isDraggable } : ''\"\n [class.po-table-header]=\"!height\"\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n @if (hasSelectableColumn) {\n <th [style.pointer-events]=\"hideSelectAll ? 'none' : 'auto'\" class=\"po-table-column-selectable\">\n <div [class.po-table-header-fixed-inner]=\"height\">\n @if (!hideSelectAll) {\n <po-checkbox\n name=\"selectAll\"\n [p-size]=\"componentsSize\"\n (p-change)=\"selectAllRows()\"\n [p-checkboxValue]=\"selectAll === null ? 'mixed' : selectAll\"\n ></po-checkbox>\n }\n </div>\n </th>\n }\n\n @if ((hasMasterDetailColumn || hasRowTemplate) && hasMainColumns && !hasRowTemplateWithArrowDirectionRight) {\n <th class=\"po-table-header-column po-table-header-master-detail\"></th>\n }\n\n <!-- Coluna criada para caso as a\u00E7\u00F5es fiquem no lado esquerdo -->\n @if (!actionRight && hasItems && hasMainColumns && (visibleActions.length > 1 || isSingleAction)) {\n <th\n #columnActionLeft\n [class.po-table-header-master-detail]=\"!isSingleAction\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n ></th>\n }\n\n @if (!hasMainColumns) {\n <th #noColumnsHeader class=\"po-table-header-column po-text-center\" [attr.colspan]=\"columnCount\">\n @if (height) {\n <div class=\"po-table-header-fixed-inner\" [style.width.px]=\"hasValidColumns ? headerWidth : null\">\n {{ hasValidColumns ? literals.noVisibleColumn : literals.noColumns }}\n </div>\n } @else {\n {{ hasValidColumns ? literals.noVisibleColumn : literals.noColumns }}\n }\n </th>\n }\n\n @if (this.isDraggable || hasSomeFixed()) {\n @for (column of mainColumns; track trackBy(i); let i = $index) {\n <th\n class=\"po-table-header-ellipsis p-element po-frozen-column\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [attr.data-po-table-column-name]=\"column.label || (column.property | titlecase) | lowercase\"\n [class.po-clickable]=\"(sort && column.sortable !== false) || hasService\"\n [ngClass]=\"{\n 'po-table-header-sorted':\n sort &&\n JSON.stringify(sortedColumn?.property) === JSON.stringify(column) &&\n (sortedColumn.ascending || !sortedColumn.ascending)\n }\"\n [ngStyle]=\"{\n 'width':\n height > 0 && !virtualScroll ? (!hasItems ? '100%' : applyFixedColumns() ? column.width : 'auto') : ''\n }\"\n [class.po-table-header-subtitle]=\"column.type === 'subtitle'\"\n [class.po-table-column-drag-box]=\"this.isDraggable\"\n (click)=\"sortColumn(column)\"\n cdkDrag\n cdkDragLockAxis=\"x\"\n [cdkDragDisabled]=\"column.fixed ? 'true' : 'false'\"\n [pFrozenColumn]=\"column.fixed\"\n >\n <div\n class=\"po-table-header-flex\"\n [class.po-table-header-fixed-inner]=\"height\"\n [class.po-table-header-flex-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-header-flex-center]=\"column.type === 'subtitle'\"\n >\n @if (this.isDraggable && !column.fixed) {\n @if (iconNameLib === 'AnimaliaIcon') {\n <po-icon cdkDragHandle p-icon=\"ICON_DRAG\"></po-icon>\n }\n @if (iconNameLib === 'PoIcon') {\n <svg\n cdkDragHandle\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"9\" cy=\"6\" r=\"2\" fill=\"black\" />\n <circle cx=\"15\" cy=\"6\" r=\"2\" fill=\"black\" />\n <circle cx=\"9\" cy=\"12\" r=\"2\" fill=\"black\" />\n <circle cx=\"15\" cy=\"12\" r=\"2\" fill=\"black\" />\n <circle cx=\"9\" cy=\"18\" r=\"2\" fill=\"black\" />\n <circle cx=\"15\" cy=\"18\" r=\"2\" fill=\"black\" />\n </svg>\n }\n }\n <ng-container *ngTemplateOutlet=\"contentHeaderTemplate; context: { $implicit: column }\"> </ng-container>\n </div>\n </th>\n }\n } @else {\n @for (column of mainColumns; track trackBy(i); let i = $index) {\n <th\n class=\"po-table-header-ellipsis p-element po-frozen-column\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [attr.data-po-table-column-name]=\"column.label || (column.property | titlecase) | lowercase\"\n [class.po-clickable]=\"(sort && column.sortable !== false) || hasService\"\n [ngClass]=\"{\n 'po-table-header-sorted':\n sort &&\n JSON.stringify(sortedColumn?.property) === JSON.stringify(column) &&\n (sortedColumn.ascending || !sortedColumn.ascending)\n }\"\n [ngStyle]=\"{\n 'width':\n height > 0 && !virtualScroll ? (!hasItems ? '100%' : applyFixedColumns() ? column.width : 'auto') : ''\n }\"\n [class.po-table-header-subtitle]=\"column.type === 'subtitle'\"\n (click)=\"sortColumn(column)\"\n [pFrozenColumn]=\"column.fixed\"\n >\n <div\n class=\"po-table-header-flex\"\n [class.po-table-header-fixed-inner]=\"height\"\n [class.po-table-header-flex-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-header-flex-center]=\"column.type === 'subtitle'\"\n >\n <ng-container *ngTemplateOutlet=\"contentHeaderTemplate; context: { $implicit: column }\"> </ng-container>\n </div>\n </th>\n }\n }\n\n @if (hasRowTemplateWithArrowDirectionRight && (hasVisibleActions || hideColumnsManager) && hasMainColumns) {\n <th class=\"po-table-header-column po-table-header-master-detail\"></th>\n }\n\n @if (\n hasVisibleActions &&\n actionRight &&\n hasItems &&\n hasMainColumns &&\n (visibleActions.length > 1 || isSingleAction)\n ) {\n <th\n [class.po-table-header-single-action]=\"isSingleAction\"\n [class.po-table-header-actions]=\"!isSingleAction\"\n ></th>\n }\n </tr>\n </thead>\n\n @if (!hasItems || !hasMainColumns) {\n <tbody class=\"po-table-group-row\">\n <tr class=\"po-table-row po-table-row-no-data\">\n <td [colSpan]=\"columnCount\" class=\"po-table-no-data po-text-center\">\n <span> {{ literals.noData }} </span>\n </td>\n </tr>\n </tbody>\n }\n\n @if (hasMainColumns) {\n @for (row of filteredItems; track trackBy(rowIndex); let rowIndex = $index) {\n <tbody class=\"po-table-group-row\">\n <tr\n class=\"po-table-row\"\n [class.po-table-row-active]=\"row.$selected || (row.$selected === null && selectable)\"\n >\n @if (selectable) {\n <td class=\"po-table-column-selectable\">\n <ng-container\n *ngTemplateOutlet=\"singleSelect ? inputRadio : inputCheckbox; context: { $implicit: row }\"\n >\n </ng-container>\n </td>\n }\n <!-- Valida se a origem do detail \u00E9 pelo input do po-table ou pela diretiva -->\n @if (\n (columnMasterDetail && !hideDetail && !hasRowTemplate) ||\n (hasRowTemplate && !hasRowTemplateWithArrowDirectionRight)\n ) {\n <td class=\"po-table-column-detail-toggle\" (click)=\"toggleDetail(row)\">\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n }\n <!-- Coluna com as a\u00E7\u00F5es na esquerda (padr\u00E3o)-->\n @if (!actionRight && (visibleActions.length > 1 || isSingleAction)) {\n <ng-template\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n }\n @for (column of mainColumns; track trackBy(columnIndex); let columnIndex = $index) {\n <td\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-table-column]=\"column.type !== 'icon'\"\n [class.po-table-column-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-column-center]=\"column.type === 'subtitle'\"\n [class.po-table-column-icons]=\"column.type === 'icon'\"\n [pFrozenColumn]=\"column.fixed\"\n class=\"p-element po-frozen-column\"\n [ngClass]=\"getClassColor(row, column)\"\n (click)=\"hasSelectableRow() ? selectRow(row) : 'javascript:;'\"\n >\n <div\n class=\"po-table-column-cell po-table-body-ellipsis notranslate\"\n [p-tooltip]=\"tooltipText\"\n [p-append-in-body]=\"true\"\n (mouseenter)=\"tooltipMouseEnter($event, column, row)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n @switch (column.type) {\n @case ('columnTemplate') {\n <span>\n <ng-container\n *ngTemplateOutlet=\"getTemplate(column); context: { $implicit: getCellData(row, column) }\"\n >\n </ng-container>\n </span>\n }\n @case ('cellTemplate') {\n <span>\n <ng-container\n *ngTemplateOutlet=\"tableCellTemplate?.templateRef; context: { row: row, column: column }\"\n >\n </ng-container>\n </span>\n }\n @case ('boolean') {\n <span>\n {{ getBooleanLabel(getCellData(row, column), column) }}\n </span>\n }\n @case ('currency') {\n <span>\n {{ getCellData(row, column) | currency: column.format : 'symbol' : '1.2-2' }}\n </span>\n }\n @case ('date') {\n <span>\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy' }}\n </span>\n }\n @case ('time') {\n <span>\n {{ getCellData(row, column) | po_time: column.format || 'HH:mm:ss.ffffff' }}\n </span>\n }\n @case ('dateTime') {\n <span>\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy HH:mm:ss' }}\n </span>\n }\n @case ('number') {\n <span>\n {{ formatNumber(getCellData(row, column), column.format) }}\n </span>\n }\n @case ('link') {\n <po-table-column-link\n [p-action]=\"column.action\"\n [p-disabled]=\"checkDisabled(row, column)\"\n [p-link]=\"row[column.link]\"\n [p-row]=\"row\"\n [p-value]=\"getCellData(row, column)\"\n (click)=\"onClickLink($event, row, column)\"\n >\n </po-table-column-link>\n }\n @case ('icon') {\n <po-table-column-icon [p-column]=\"column\" [p-icons]=\"getColumnIcons(row, column)\" [p-row]=\"row\">\n </po-table-column-icon>\n }\n @case ('subtitle') {\n <span>\n <po-table-subtitle-circle\n [p-subtitle]=\"getSubtitleColumn(row, column)\"\n ></po-table-subtitle-circle>\n </span>\n }\n @case ('label') {\n <span>\n <po-table-column-label [p-value]=\"getColumnLabel(row, column)\"> </po-table-column-label>\n </span>\n }\n @default {\n <span>{{ getCellData(row, column) }}</span>\n }\n }\n </div>\n </td>\n }\n @if (hasRowTemplateWithArrowDirectionRight) {\n <td class=\"po-table-column-detail-toggle\" (click)=\"toggleDetail(row)\">\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n }\n <!-- Coluna de a\u00E7oes na direita -->\n @if (actionRight) {\n <ng-template\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n }\n </tr>\n @if (hasMainColumns && hasRowTemplate && row.$showDetail && isShowRowTemplate(row, rowIndex)) {\n <tr>\n <td class=\"po-table-row-template-container\" [colSpan]=\"columnCountForMasterDetail\">\n <ng-template\n [ngTemplateOutlet]=\"tableRowTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n </tr>\n }\n @if (hasMainColumns && isShowMasterDetail(row)) {\n <tr>\n <td class=\"po-table-column-detail\" [colSpan]=\"columnCountForMasterDetail\">\n <po-table-detail\n [p-selectable]=\"selectable && !detailHideSelect\"\n [p-detail]=\"columnMasterDetail.detail\"\n [p-items]=\"row[nameColumnDetail]\"\n [p-parent-row]=\"row\"\n [p-components-size]=\"componentsSize\"\n (p-select-row)=\"selectDetailRow($event)\"\n >\n </po-table-detail>\n </td>\n </tr>\n }\n </tbody>\n }\n }\n </table>\n</ng-template>\n\n<!-- Table with virtual scroll -->\n<ng-template #tableVirtualScrollTemplate>\n <cdk-virtual-scroll-viewport\n #tableVirtualScroll\n [itemSize]=\"itemSize\"\n [style.height.px]=\"heightTableContainer\"\n [minBufferPx]=\"heightTableContainer < 100 ? 100 : heightTableContainer\"\n [maxBufferPx]=\"heightTableContainer < 200 ? 200 : heightTableContainer\"\n >\n <table\n class=\"po-table\"\n [ngClass]=\"{\n 'po-table-interactive': selectable || sort,\n 'po-table-selectable': selectable,\n 'po-table-striped': striped,\n 'po-table-data-fixed-columns': applyFixedColumns(),\n 'po-table-text-wrap-enabled': textWrap\n }\"\n [attr.p-spacing]=\"spacing\"\n >\n <thead\n class=\"po-table-header-sticky\"\n [style.top]=\"inverseOfTranslation\"\n [attr.p-spacing]=\"spacing ?? (componentsSize === 'small' ? 'extraSmall' : 'medium')\"\n >\n <tr\n [class.po-table-header]=\"!height\"\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n @if (hasSelectableColumn) {\n <th [style.pointer-events]=\"hideSelectAll ? 'none' : 'auto'\" class=\"po-table-column-selectable\">\n <div [class.po-table-header-fixed-inner]=\"height\">\n @if (!hideSelectAll) {\n <po-checkbox\n name=\"selectAll\"\n (p-change)=\"selectAllRows()\"\n [p-checkboxValue]=\"selectAll === null ? 'mixed' : selectAll\"\n [p-size]=\"componentsSize\"\n ></po-checkbox>\n }\n </div>\n </th>\n }\n\n @if ((hasMasterDetailColumn || hasRowTemplate) && hasMainColumns && !hasRowTemplateWithArrowDirectionRight) {\n <th class=\"po-table-header-column po-table-header-master-detail\"></th>\n }\n\n <!-- Coluna criada para caso as a\u00E7\u00F5es fiquem no lado esquerdo -->\n @if (!actionRight && hasItems && hasMainColumns && (visibleActions.length > 1 || isSingleAction)) {\n <th\n #columnActionLeft\n [class.po-table-header-master-detail]=\"!isSingleAction\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n ></th>\n }\n\n @if (!hasMainColumns) {\n <th #noColumnsHeader class=\"po-table-header-column po-text-center\" [attr.colspan]=\"columnCount\">\n @if (height) {\n <div class=\"po-table-header-fixed-inner\" [style.width.px]=\"hasValidColumns ? headerWidth : null\">\n {{ hasValidColumns ? literals.noVisibleColumn : literals.noColumns }}\n </div>\n } @else {\n {{ hasValidColumns ? literals.noVisibleColumn : literals.noColumns }}\n }\n </th>\n }\n\n @if (this.isDraggable || hasSomeFixed()) {\n @for (column of mainColumns; track trackBy(i); let i = $index) {\n <th\n class=\"po-table-header-ellipsis p-element po-frozen-column\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [attr.data-po-table-column-name]=\"column.label || (column.property | titlecase) | lowercase\"\n [class.po-clickable]=\"(sort && column.sortable !== false) || hasService\"\n [ngClass]=\"{\n 'po-table-header-sorted':\n sort &&\n JSON.stringify(sortedColumn?.property) === JSON.stringify(column) &&\n (sortedColumn.ascending || !sortedColumn.ascending)\n }\"\n [ngStyle]=\"{ 'width': !hasItems ? '100%' : applyFixedColumns() ? column.width : 'auto' }\"\n [class.po-table-header-subtitle]=\"column.type === 'subtitle'\"\n [class.po-table-column-drag-box]=\"this.isDraggable\"\n (click)=\"sortColumn(column)\"\n cdkDrag\n cdkDragLockAxis=\"x\"\n [cdkDragDisabled]=\"column.fixed ? 'true' : 'false'\"\n [pFrozenColumn]=\"column.fixed\"\n >\n <div\n class=\"po-table-header-flex\"\n [class.po-table-header-fixed-inner]=\"height\"\n [class.po-table-header-flex-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-header-flex-center]=\"column.type === 'subtitle'\"\n >\n @if (this.isDraggable && !column.fixed) {\n @if (iconNameLib === 'AnimaliaIcon') {\n <po-icon cdkDragHandle p-icon=\"ICON_DRAG\"></po-icon>\n }\n @if (iconNameLib === 'PoIcon') {\n <svg\n cdkDragHandle\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"9\" cy=\"6\" r=\"2\" fill=\"black\" />\n <circle cx=\"15\" cy=\"6\" r=\"2\" fill=\"black\" />\n <circle cx=\"9\" cy=\"12\" r=\"2\" fill=\"black\" />\n <circle cx=\"15\" cy=\"12\" r=\"2\" fill=\"black\" />\n <circle cx=\"9\" cy=\"18\" r=\"2\" fill=\"black\" />\n <circle cx=\"15\" cy=\"18\" r=\"2\" fill=\"black\" />\n </svg>\n }\n }\n <ng-container *ngTemplateOutlet=\"contentHeaderTemplate; context: { $implicit: column }\">\n </ng-container>\n </div>\n </th>\n }\n } @else {\n @for (column of mainColumns; track trackBy(i); let i = $index) {\n <th\n class=\"po-table-header-ellipsis p-element po-frozen-column example-box\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [attr.data-po-table-column-name]=\"column.label || (column.property | titlecase) | lowercase\"\n [class.po-clickable]=\"(sort && column.sortable !== false) || hasService\"\n [ngClass]=\"{\n 'po-table-header-sorted':\n sort &&\n JSON.stringify(sortedColumn?.property) === JSON.stringify(column) &&\n (sortedColumn.ascending || !sortedColumn.ascending)\n }\"\n [ngStyle]=\"{ 'width': !hasItems ? '100%' : applyFixedColumns() ? column.width : 'auto' }\"\n [class.po-table-header-subtitle]=\"column.type === 'subtitle'\"\n (click)=\"sortColumn(column)\"\n [pFrozenColumn]=\"column.fixed\"\n >\n <div\n class=\"po-table-header-flex\"\n [class.po-table-header-fixed-inner]=\"height\"\n [class.po-table-header-flex-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-header-flex-center]=\"column.type === 'subtitle'\"\n >\n <ng-container *ngTemplateOutlet=\"contentHeaderTemplate; context: { $implicit: column }\">\n </ng-container>\n </div>\n </th>\n }\n }\n\n @if (hasRowTemplateWithArrowDirectionRight && hasMainColumns && (hasVisibleActions || hideColumnsManager)) {\n <th class=\"po-table-header-column po-table-header-master-detail\"></th>\n }\n\n @if (\n hasVisibleActions &&\n actionRight &&\n hasItems &&\n hasMainColumns &&\n (visibleActions.length > 1 || isSingleAction)\n ) {\n <th\n [class.po-table-header-single-action]=\"isSingleAction\"\n [class.po-table-header-actions]=\"!isSingleAction\"\n ></th>\n }\n </tr>\n </thead>\n\n @if (!hasItems || !hasMainColumns) {\n <tbody class=\"po-table-group-row\">\n <tr class=\"po-table-row po-table-row-no-data\">\n <td [colSpan]=\"columnCount\" class=\"po-table-no-data po-text-center\">\n <span> {{ literals.noData }} </span>\n </td>\n </tr>\n </tbody>\n }\n\n @if (hasMainColumns) {\n <tbody\n class=\"po-table-group-row\"\n *cdkVirtualFor=\"let row of filteredItems; let rowIndex = index; trackBy: trackBy\"\n >\n <tr\n class=\"po-table-row\"\n [class.po-table-row-active]=\"row.$selected || (row.$selected === null && selectable)\"\n >\n @if (selectable) {\n <td class=\"po-table-column-selectable\">\n <ng-container\n *ngTemplateOutlet=\"singleSelect ? inputRadio : inputCheckbox; context: { $implicit: row }\"\n >\n </ng-container>\n </td>\n }\n <!-- Valida se a origem do detail \u00E9 pelo input do po-table pela diretiva -->\n @if (\n (columnMasterDetail && !hideDetail && !hasRowTemplate) ||\n (hasRowTemplate && !hasRowTemplateWithArrowDirectionRight)\n ) {\n <td class=\"po-table-column-detail-toggle\" (click)=\"toggleDetail(row)\">\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n }\n <!-- Coluna com as a\u00E7\u00F5es na esquerda (padr\u00E3o)-->\n @if (!actionRight && (visibleActions.length > 1 || isSingleAction)) {\n <ng-template\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n }\n @for (column of mainColumns; track trackBy(columnIndex); let columnIndex = $index) {\n <td\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-table-column]=\"column.type !== 'icon'\"\n [class.po-table-column-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-column-center]=\"column.type === 'subtitle'\"\n [class.po-table-column-icons]=\"column.type === 'icon'\"\n [ngClass]=\"getClassColor(row, column)\"\n [pFrozenColumn]=\"column.fixed\"\n class=\"p-element po-frozen-column\"\n (click)=\"hasSelectableRow() ? selectRow(row) : 'javascript:;'\"\n >\n <div\n class=\"po-table-column-cell po-table-body-ellipsis notranslate\"\n [p-tooltip]=\"tooltipText\"\n [p-append-in-body]=\"true\"\n (mouseenter)=\"tooltipMouseEnter($event, column, row)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n @switch (column.type) {\n @case ('columnTemplate') {\n <span>\n <ng-container\n *ngTemplateOutlet=\"getTemplate(column); context: { $implicit: getCellData(row, column) }\"\n >\n </ng-container>\n </span>\n }\n @case ('cellTemplate') {\n <span>\n <ng-container\n *ngTemplateOutlet=\"tableCellTemplate?.templateRef; context: { row: row, column: column }\"\n >\n </ng-container>\n </span>\n }\n @case ('boolean') {\n <span>\n {{ getBooleanLabel(getCellData(row, column), column) }}\n </span>\n }\n @case ('currency') {\n <span>\n {{ getCellData(row, column) | currency: column.format : 'symbol' : '1.2-2' }}\n </span>\n }\n @case ('date') {\n <span>\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy' }}\n </span>\n }\n @case ('time') {\n <span>\n {{ getCellData(row, column) | po_time: column.format || 'HH:mm:ss.ffffff' }}\n </span>\n }\n @case ('dateTime') {\n <span>\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy HH:mm:ss' }}\n </span>\n }\n @case ('number') {\n <span>\n {{ formatNumber(getCellData(row, column), column.format) }}\n </span>\n }\n @case ('link') {\n <po-table-column-link\n [p-action]=\"column.action\"\n [p-disabled]=\"checkDisabled(row, column)\"\n [p-link]=\"row[column.link]\"\n [p-row]=\"row\"\n [p-value]=\"getCellData(row, column)\"\n (click)=\"onClickLink($event, row, column)\"\n >\n </po-table-column-link>\n }\n @case ('icon') {\n <po-table-column-icon [p-column]=\"column\" [p-icons]=\"getColumnIcons(row, column)\" [p-row]=\"row\">\n </po-table-column-icon>\n }\n @case ('subtitle') {\n <span>\n <po-table-subtitle-circle\n [p-subtitle]=\"getSubtitleColumn(row, column)\"\n ></po-table-subtitle-circle>\n </span>\n }\n @case ('label') {\n <span>\n <po-table-column-label [p-value]=\"getColumnLabel(row, column)\"> </po-table-column-label>\n </span>\n }\n @default {\n <span>{{ getCellData(row, column) }}</span>\n }\n }\n </div>\n </td>\n }\n @if (hasRowTemplateWithArrowDirectionRight) {\n <td class=\"po-table-column-detail-toggle\" (click)=\"toggleDetail(row)\">\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n }\n <!-- Coluna de a\u00E7oes na direita -->\n @if (actionRight) {\n <ng-template\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n }\n </tr>\n @if (hasMainColumns && hasRowTemplate && row.$showDetail && isShowRowTemplate(row, rowIndex)) {\n <tr>\n <td class=\"po-table-row-template-container\" [colSpan]=\"columnCountForMasterDetail\">\n <ng-template\n [ngTemplateOutlet]=\"tableRowTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n </tr>\n }\n @if (hasMainColumns && isShowMasterDetail(row)) {\n <tr>\n <td class=\"po-table-column-detail\" [colSpan]=\"columnCountForMasterDetail\">\n <po-table-detail\n [p-selectable]=\"selectable && !detailHideSelect\"\n [p-detail]=\"columnMasterDetail.detail\"\n [p-items]=\"row[nameColumnDetail]\"\n [p-parent-row]=\"row\"\n [p-components-size]=\"componentsSize\"\n (p-select-row)=\"selectDetailRow($event)\"\n >\n </po-table-detail>\n </td>\n </tr>\n }\n </tbody>\n }\n </table>\n </cdk-virtual-scroll-viewport>\n</ng-template>\n\n<po-popup #popup [p-actions]=\"actions\" [p-size]=\"componentsSize\" [p-target]=\"popupTarget\"> </po-popup>\n\n<ng-template #poTableColumnDetail let-row=\"row\" let-rowIndex=\"rowIndex\">\n @if ((containsMasterDetail(row) && !hasRowTemplate) || (isShowRowTemplate(row, rowIndex) && hasRowTemplate)) {\n <po-icon [p-icon]=\"row.$showDetail ? 'ICON_ARROW_UP' : 'ICON_ARROW_DOWN'\" class=\"po-clickable\"> </po-icon>\n }\n</ng-template>\n\n<ng-template #inputRadio let-row>\n <po-radio\n [name]=\"idRadio\"\n [p-checked]=\"row.$selected\"\n [p-size]=\"componentsSize\"\n (p-change-selected)=\"selectRow(row)\"\n ></po-radio>\n</ng-template>\n\n<ng-template #inputCheckbox let-row>\n <po-checkbox\n name=\"checkbox\"\n (p-change)=\"selectable ? selectRow(row) : 'javascript:;'\"\n [p-checkboxValue]=\"row.$selected === null ? 'mixed' : row.$selected\"\n [p-size]=\"componentsSize\"\n ></po-checkbox>\n</ng-template>\n\n<ng-template #contentHeaderTemplate let-column>\n <span\n #columnHeader\n class=\"po-table-header-ellipsis\"\n [p-tooltip]=\"tooltipText\"\n [p-append-in-body]=\"true\"\n (mouseenter)=\"tooltipMouseEnter($event)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n {{ column.label || (column.property | titlecase) }}\n </span>\n\n @if (sort && column.sortable !== false) {\n <span\n [class.po-table-header-icon-unselected]=\"JSON.stringify(sortedColumn?.property) !== JSON.stringify(column)\"\n [class.po-table-header-icon-descending]=\"\n JSON.stringify(sortedColumn?.property) === JSON.stringify(column) && sortedColumn.ascending\n \"\n [class.po-table-header-icon-ascending]=\"\n JSON.stringify(sortedColumn?.property) === JSON.stringify(column) && !sortedColumn.ascending\n \"\n >\n @if (JSON.stringify(sortedColumn?.property) !== JSON.stringify(column)) {\n @if (iconNameLib === 'AnimaliaIcon') {\n <po-icon p-icon=\"ICON_SORT\"></po-icon>\n }\n @if (iconNameLib === 'PoIcon') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M18.2929 15.2929L17 16.5858L17 10C17 9.44772 16.5523 9 16 9C15.4477 9 15 9.44772 15 10L15 16.5858L13.7071 15.2929C13.3166 14.9024 12.6834 14.9024 12.2929 15.2929C11.9024 15.6834 11.9024 16.3166 12.2929 16.7071L15.2929 19.7071C15.6834 20.0976 16.3166 20.0976 16.7071 19.7071L19.7071 16.7071C20.0976 16.3166 20.0976 15.6834 19.7071 15.2929C19.3166 14.9024 18.6834 14.9024 18.2929 15.2929ZM5.70716 8.7071L7.00006 7.4142L7.00003 14C7.00002 14.5523 7.44774 15 8.00002 15C8.55231 15 9.00002 14.5523 9.00003 14L9.00006 7.41418L10.2929 8.70707C10.6835 9.09759 11.3166 9.09758 11.7072 8.70706C12.0977 8.31653 12.0977 7.68336 11.7072 7.29284L8.70718 4.29286C8.31665 3.90234 7.68349 3.90235 7.29296 4.29287L4.29295 7.29289C3.90242 7.68342 3.90242 8.31658 4.29294 8.70711C4.68347 9.09763 5.31663 9.09762 5.70716 8.7071Z\"\n fill=\"#1D1D30\"\n />\n </svg>\n }\n }\n @if (JSON.stringify(sortedColumn?.property) === JSON.stringify(column) && sortedColumn.ascending) {\n @if (iconNameLib === 'AnimaliaIcon') {\n <po-icon p-icon=\"ICON_SORT_ASC\"></po-icon>\n }\n @if (iconNameLib === 'PoIcon') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M11 9.41421L9.70711 10.7071C9.31658 11.0976 8.68342 11.0976 8.29289 10.7071C7.90237 10.3166 7.90237 9.68342 8.29289 9.29289L11.2929 6.29289C11.6834 5.90237 12.3166 5.90237 12.7071 6.29289L15.7071 9.29289C16.0976 9.68342 16.0976 10.3166 15.7071 10.7071C15.3166 11.0976 14.6834 11.0976 14.2929 10.7071L13 9.41421V16C13 16.5523 12.5523 17 12 17C11.4477 17 11 16.5523 11 16V9.41421Z\"\n fill=\"black\"\n />\n </svg>\n }\n }\n @if (JSON.stringify(sortedColumn?.property) === JSON.stringify(column) && !sortedColumn.ascending) {\n @if (iconNameLib === 'AnimaliaIcon') {\n <po-icon cdkDragHandle p-icon=\"ICON_SORT_DESC\"></po-icon>\n }\n @if (iconNameLib === 'PoIcon') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M9.70711 13.2929L11 14.5858V7C11 6.44772 11.4477 6 12 6C12.5523 6 13 6.44772 13 7V14.5858L14.2929 13.2929C14.6834 12.9024 15.3166 12.9024 15.7071 13.2929C16.0976 13.6834 16.0976 14.3166 15.7071 14.7071L12.7071 17.7071C12.3166 18.0976 11.6834 18.0976 11.2929 17.7071L8.29289 14.7071C7.90237 14.3166 7.90237 13.6834 8.29289 13.2929C8.68342 12.9024 9.31658 12.9024 9.70711 13.2929Z\"\n fill=\"black\"\n />\n </svg>\n }\n }\n </span>\n }\n</ng-template>\n\n<!-- Template de a\u00E7\u00F5es -->\n<ng-template #ActionsColumnTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n @if (isSingleAction) {\n <td\n class=\"po-table-column po-table-column-single-action\"\n [style.width.px]=\"height && actionRight ? getWidthColumnManager() : ''\"\n [style.max-width.px]=\"height && !actionRight ? getColumnWidthActionsLeft() : ''\"\n [style.width.px]=\"height && !actionRight ? getColumnWidthActionsLeft() : ''\"\n >\n @if (firstAction.visible !== false) {\n <div\n class=\"po-table-single-action po-clickable\"\n [class.po-table-action-disabled]=\"firstAction.disabled ? validateTableAction(row, firstAction) : false\"\n (click)=\"executeTableAction(row, firstAction)\"\n >\n @if (firstAction.icon) {\n <po-icon class=\"po-table-single-action-content\" [p-icon]=\"firstAction.icon\"></po-icon>\n }\n @if (firstAction.label) {\n <span>{{ firstAction.label }}</span>\n }\n </div>\n }\n </td>\n }\n\n @if (visibleActions.length > 1) {\n <td class=\"po-table-column-actions\">\n <div #popupTarget class=\"po-clickable\" (click)=\"togglePopup(row, popupTarget)\">\n <po-icon class=\"po-field-icon\" p-icon=\"ICON_MORE\"></po-icon>\n </div>\n </td>\n }\n</ng-template>\n\n@if (!hideColumnsManager) {\n <po-table-column-manager\n [p-columns]=\"columns\"\n [p-max-columns]=\"maxColumns\"\n [p-target]=\"columnManagerTarget\"\n [p-last-visible-columns-selected]=\"lastVisibleColumnsSelected\"\n [p-hide-action-fixed-columns]=\"hideActionFixedColumns\"\n (p-visible-columns-change)=\"onVisibleColumnsChange($event)\"\n (p-change-visible-columns)=\"onChangeVisibleColumns($event)\"\n [p-columns-default]=\"initialColumns\"\n [p-components-size]=\"componentsSize\"\n (p-initial-columns)=\"onColumnRestoreManager($event)\"\n >\n </po-table-column-manager>\n}\n\n<po-modal\n #modalDelete\n [p-components-size]=\"componentsSize\"\n [p-title]=\"literals.delete\"\n [p-primary-action]=\"confirm\"\n [p-secondary-action]=\"close\"\n [p-click-out]=\"true\"\n>\n <p class=\"po-font-text-large\">{{ literals.bodyDelete }}</p>\n</po-modal>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.NgPlural, selector: "[ngPlural]", inputs: ["ngPlural"] }, { kind: "directive", type: i1.NgPluralCase, selector: "[ngPluralCase]" }, { kind: "directive", type: i5.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i5.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i5.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: PoButtonComponent, selector: "po-button" }, { kind: "component", type: PoContainerComponent, selector: "po-container" }, { kind: "component", type: PoLoadingOverlayComponent, selector: "po-loading-overlay" }, { kind: "component", type: PoModalComponent, selector: "po-modal" }, { kind: "component", type: PoPopupComponent, selector: "po-popup" }, { kind: "directive", type: PoTooltipDirective, selector: "[p-tooltip]" }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoCheckboxComponent, selector: "po-checkbox" }, { kind: "component", type: PoRadioComponent, selector: "po-radio", inputs: ["p-value", "p-size", "p-required", "p-label-text-wrap", "p-checked"], outputs: ["p-blur", "p-change-selected"] }, { kind: "component", type: PoSearchComponent, selector: "po-search" }, { kind: "component", type: PoTableColumnIconComponent, selector: "po-table-column-icon", inputs: ["p-column", "p-row", "p-icons"] }, { kind: "component", type: PoTableColumnLabelComponent, selector: "po-table-column-label", inputs: ["p-value"] }, { kind: "component", type: PoTableColumnLinkComponent, selector: "po-table-column-link", inputs: ["p-action", "p-disabled", "p-link", "p-open-new-tab", "p-row", "p-value"] }, { kind: "component", type: PoTableColumnManagerComponent, selector: "po-table-column-manager", inputs: ["p-columns", "p-target", "p-columns-default", "p-last-visible-columns-selected", "p-hide-action-fixed-columns", "p-components-size", "p-max-columns"], outputs: ["p-visible-columns-change", "p-change-visible-columns", "p-initial-columns"] }, { kind: "component", type: PoTableDetailComponent, selector: "po-table-detail", inputs: ["p-components-size", "p-items", "p-parent-row", "p-selectable", "p-detail"], outputs: ["p-select-row"] }, { kind: "component", type: PoTableSubtitleCircleComponent, selector: "po-table-subtitle-circle", inputs: ["p-hide-title", "p-subtitle"] }, { kind: "component", type: PoTableSubtitleFooterComponent, selector: "po-table-subtitle-footer", inputs: ["p-components-size", "p-literals", "p-subtitles"] }, { kind: "directive", type: PoTableColumnFrozenDirective, selector: "[pFrozenColumn]", inputs: ["pFrozenColumn", "alignFrozen"] }, { kind: "pipe", type: i1.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: PoTimePipe, name: "po_time" }] });
26849
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: PoTableComponent, isStandalone: false, selector: "po-table", providers: [PoDateService, PoTableService], queries: [{ propertyName: "tableRowTemplate", first: true, predicate: PoTableRowTemplateDirective, descendants: true, static: true }, { propertyName: "tableCellTemplate", first: true, predicate: PoTableCellTemplateDirective, descendants: true }, { propertyName: "tableColumnTemplates", predicate: PoTableColumnTemplateDirective }], viewQueries: [{ propertyName: "noColumnsHeader", first: true, predicate: ["noColumnsHeader"], descendants: true, read: ElementRef }, { propertyName: "poPopupComponent", first: true, predicate: ["popup"], descendants: true }, { propertyName: "modalDelete", first: true, predicate: PoModalComponent, descendants: true, static: true }, { propertyName: "tableFooterElement", first: true, predicate: ["tableFooter"], descendants: true, read: ElementRef }, { propertyName: "tableWrapperElement", first: true, predicate: ["tableWrapper"], descendants: true, read: ElementRef }, { propertyName: "tableTemplate", first: true, predicate: ["tableTemplate"], descendants: true, read: ElementRef }, { propertyName: "tableVirtualScroll", first: true, predicate: ["tableVirtualScroll"], descendants: true, read: ElementRef }, { propertyName: "tableScrollable", first: true, predicate: ["tableScrollable"], descendants: true, read: ElementRef }, { propertyName: "columnManager", first: true, predicate: ["columnManager"], descendants: true, read: ElementRef }, { propertyName: "columnBatchActions", first: true, predicate: ["columnBatchActions"], descendants: true, read: ElementRef }, { propertyName: "columnActionLeft", first: true, predicate: ["columnActionLeft"], descendants: true, read: ElementRef }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }, { propertyName: "poSearchInput", first: true, predicate: ["poSearchInput"], descendants: true, read: ElementRef, static: true }, { propertyName: "viewPort", first: true, predicate: CdkVirtualScrollViewport, descendants: true }, { propertyName: "columnManagerTarget", first: true, predicate: ["columnManagerTarget"], descendants: true }, { propertyName: "columnManagerTargetFixed", first: true, predicate: ["columnManagerTargetFixed"], descendants: true }, { propertyName: "actionsIconElement", predicate: ["actionsIconElement"], descendants: true, read: ElementRef }, { propertyName: "actionsElement", predicate: ["actionsElement"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"po-table-actions\">\n @if (hasValidColumns && itemsSelected.length > 0 && !hideBatchActions) {\n <div #columnBatchActions class=\"po-table-actions-batch-actions\">\n <div [ngPlural]=\"itemsSelected.length\" class=\"po-table-actions-batch-actions__label\">\n <strong>\n <ng-template ngPluralCase=\"=0\">{{ literals.noItem }}</ng-template>\n <ng-template ngPluralCase=\"=1\">{{ literals.oneItem }}</ng-template>\n <ng-template ngPluralCase=\"other\">{{ itemsSelected.length }} {{ literals.multipleItems }}</ng-template>\n </strong>\n </div>\n <div class=\"po-table-actions-batch-actions__buttons\">\n <po-button\n p-icon=\"ICON_DELETE\"\n [p-danger]=\"true\"\n [p-disabled]=\"itemsSelected.length > 1 && serviceDeleteApi !== undefined\"\n [p-label]=\"literals.delete\"\n [p-size]=\"componentsSize\"\n (p-click)=\"modalDelete.open()\"\n ></po-button>\n </div>\n </div>\n }\n\n @if (hasValidColumns && !hideColumnsManager) {\n <div #columnManager class=\"po-table-actions-column-manager\">\n <po-button\n #columnManagerTarget\n p-icon=\"ICON_SETTINGS\"\n p-kind=\"tertiary\"\n p-tooltip-position=\"left\"\n [p-aria-label]=\"literals.columnsManager\"\n [p-tooltip]=\"literals.columnsManager\"\n [p-size]=\"componentsSize\"\n (p-click)=\"onOpenColumnManager()\"\n ></po-button>\n </div>\n }\n\n @if (!hideTableSearch && hasValidColumns) {\n <div class=\"po-table-search\">\n <po-search\n [p-items]=\"items\"\n [p-filter-keys]=\"filteredColumns\"\n [p-filter-type]=\"filterType\"\n [p-size]=\"componentsSize\"\n (p-filtered-items-change)=\"onFilteredItemsChange($event)\"\n >\n </po-search>\n </div>\n }\n</div>\n@if (container) {\n <po-container p-no-padding>\n <ng-container *ngTemplateOutlet=\"tableContainerTemplate\"></ng-container>\n </po-container>\n} @else {\n <div [class.po-table-container-sticky]=\"loading\">\n @if (loading) {\n <po-loading-overlay [p-text]=\"literals.loadingData\" [p-size]=\"sizeLoading\"></po-loading-overlay>\n }\n <div class=\"po-table-main-container\">\n <div\n #tableWrapper\n class=\"po-table-wrapper\"\n [class.po-table-header-fixed-columns-pixels]=\"allColumnsWidthPixels\"\n [style.opacity]=\"tableOpacity\"\n >\n @if (height) {\n <div class=\"po-table-container\" [style.height.px]=\"heightTableContainer\">\n <div #poTableTbody [class.po-table-container-fixed-inner]=\"virtualScroll\">\n @if (virtualScroll) {\n <div>\n <ng-container *ngTemplateOutlet=\"tableVirtualScrollTemplate\"></ng-container>\n </div>\n }\n @if (!virtualScroll) {\n <div class=\"po-table-container-overflow\" [style.height.px]=\"heightTableContainer\">\n <ng-container *ngTemplateOutlet=\"tableTemplate\"></ng-container>\n </div>\n }\n </div>\n </div>\n }\n @if (!height) {\n <div>\n <ng-container *ngTemplateOutlet=\"tableTemplate\"></ng-container>\n </div>\n }\n </div>\n </div>\n </div>\n @if (hasFooter) {\n <div class=\"po-table-footer\">\n @for (column of subtitleColumns; track trackBy($index)) {\n <po-table-subtitle-footer\n [p-components-size]=\"componentsSize\"\n [p-literals]=\"literals\"\n [p-subtitles]=\"column.subtitles\"\n >\n </po-table-subtitle-footer>\n }\n </div>\n }\n}\n\n<ng-template #tableContainerTemplate>\n <div [class.po-table-container-sticky]=\"loading\">\n @if (loading) {\n <po-loading-overlay [p-text]=\"literals.loadingData\" [p-size]=\"sizeLoading\"></po-loading-overlay>\n }\n <div class=\"po-table-main-container\">\n <div\n #tableWrapper\n class=\"po-table-wrapper\"\n [class.po-table-header-fixed-columns-pixels]=\"allColumnsWidthPixels\"\n [style.opacity]=\"tableOpacity\"\n >\n @if (height) {\n <div class=\"po-table-container\" [style.height.px]=\"heightTableContainer\">\n <div #poTableTbody [class.po-table-container-fixed-inner]=\"virtualScroll\">\n @if (virtualScroll) {\n <div>\n <ng-container *ngTemplateOutlet=\"tableVirtualScrollTemplate\"></ng-container>\n </div>\n }\n @if (!virtualScroll) {\n <div class=\"po-table-container-overflow\" [style.height.px]=\"heightTableContainer\">\n <ng-container *ngTemplateOutlet=\"tableTemplate\"></ng-container>\n </div>\n }\n </div>\n </div>\n }\n\n @if (!height) {\n <div>\n <ng-container *ngTemplateOutlet=\"tableTemplate\"></ng-container>\n </div>\n }\n </div>\n </div>\n </div>\n\n @if (hasFooter) {\n <div class=\"po-table-footer\">\n @for (column of subtitleColumns; track trackBy($index)) {\n <po-table-subtitle-footer\n [p-components-size]=\"componentsSize\"\n [p-literals]=\"literals\"\n [p-subtitles]=\"column.subtitles\"\n >\n </po-table-subtitle-footer>\n }\n </div>\n }\n</ng-template>\n\n<!-- Show More Button -->\n@if (!infiniteScroll) {\n <div\n class=\"po-row po-table-footer-show-more\"\n [class.po-invisible]=\"showMore.observers.length === 0 && !hasService\"\n #tableFooter\n >\n <po-button\n class=\"po-offset-xl-4 po-offset-lg-4 po-offset-md-3 po-lg-4 po-md-6\"\n [p-disabled]=\"showMoreDisabled\"\n [p-label]=\"literals.loadMoreData\"\n [p-loading]=\"loadingShowMore\"\n [p-size]=\"componentsSize\"\n (p-click)=\"onShowMore()\"\n >\n </po-button>\n </div>\n}\n\n<!-- Table default-->\n<ng-template #tableTemplate>\n <table\n #tableScrollable\n class=\"po-table\"\n [ngClass]=\"{\n 'po-table-interactive': selectable || sort,\n 'po-table-selectable': selectable,\n 'po-table-striped': striped,\n 'po-table-data-fixed-columns': applyFixedColumns(),\n 'po-table-text-wrap-enabled': textWrap\n }\"\n [attr.p-spacing]=\"spacing\"\n >\n <thead\n [class.po-table-header-sticky]=\"height > 0 && !virtualScroll\"\n [attr.p-spacing]=\"spacing ?? (componentsSize === 'small' ? 'extraSmall' : 'medium')\"\n >\n <tr\n [ngClass]=\"!height ? { 'no-hover': hideSelectAll, 'po-table-column-drag': this.isDraggable } : ''\"\n [class.po-table-header]=\"!height\"\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n @if (hasSelectableColumn) {\n <th [style.pointer-events]=\"hideSelectAll ? 'none' : 'auto'\" class=\"po-table-column-selectable\">\n <div [class.po-table-header-fixed-inner]=\"height\">\n @if (!hideSelectAll) {\n <po-checkbox\n name=\"selectAll\"\n [p-size]=\"componentsSize\"\n (p-change)=\"selectAllRows()\"\n [p-checkboxValue]=\"selectAll === null ? 'mixed' : selectAll\"\n ></po-checkbox>\n }\n </div>\n </th>\n }\n\n @if ((hasMasterDetailColumn || hasRowTemplate) && hasMainColumns && !hasRowTemplateWithArrowDirectionRight) {\n <th class=\"po-table-header-column po-table-header-master-detail\"></th>\n }\n\n <!-- Coluna criada para caso as a\u00E7\u00F5es fiquem no lado esquerdo -->\n @if (!actionRight && hasItems && hasMainColumns && (visibleActions.length > 1 || isSingleAction)) {\n <th\n #columnActionLeft\n [class.po-table-header-master-detail]=\"!isSingleAction\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n ></th>\n }\n\n @if (!hasMainColumns) {\n <th #noColumnsHeader class=\"po-table-header-column po-text-center\" [attr.colspan]=\"columnCount\">\n @if (height) {\n <div class=\"po-table-header-fixed-inner\" [style.width.px]=\"hasValidColumns ? headerWidth : null\">\n {{ hasValidColumns ? literals.noVisibleColumn : literals.noColumns }}\n </div>\n } @else {\n {{ hasValidColumns ? literals.noVisibleColumn : literals.noColumns }}\n }\n </th>\n }\n\n @if (this.isDraggable || hasSomeFixed()) {\n @for (column of mainColumns; track trackBy(i); let i = $index) {\n <th\n class=\"po-table-header-ellipsis p-element po-frozen-column\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [attr.data-po-table-column-name]=\"column.label || (column.property | titlecase) | lowercase\"\n [class.po-clickable]=\"(sort && column.sortable !== false) || hasService\"\n [ngClass]=\"{\n 'po-table-header-sorted':\n sort &&\n JSON.stringify(sortedColumn?.property) === JSON.stringify(column) &&\n (sortedColumn.ascending || !sortedColumn.ascending)\n }\"\n [ngStyle]=\"{\n 'width':\n height > 0 && !virtualScroll ? (!hasItems ? '100%' : applyFixedColumns() ? column.width : 'auto') : ''\n }\"\n [class.po-table-header-subtitle]=\"column.type === 'subtitle'\"\n [class.po-table-column-drag-box]=\"this.isDraggable\"\n (click)=\"sortColumn(column)\"\n cdkDrag\n cdkDragLockAxis=\"x\"\n [cdkDragDisabled]=\"column.fixed ? 'true' : 'false'\"\n [pFrozenColumn]=\"column.fixed\"\n >\n <div\n class=\"po-table-header-flex\"\n [class.po-table-header-fixed-inner]=\"height\"\n [class.po-table-header-flex-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-header-flex-center]=\"column.type === 'subtitle'\"\n >\n @if (this.isDraggable && !column.fixed) {\n @if (iconNameLib === 'AnimaliaIcon') {\n <po-icon cdkDragHandle p-icon=\"ICON_DRAG\"></po-icon>\n }\n @if (iconNameLib === 'PoIcon') {\n <svg\n cdkDragHandle\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"9\" cy=\"6\" r=\"2\" fill=\"black\" />\n <circle cx=\"15\" cy=\"6\" r=\"2\" fill=\"black\" />\n <circle cx=\"9\" cy=\"12\" r=\"2\" fill=\"black\" />\n <circle cx=\"15\" cy=\"12\" r=\"2\" fill=\"black\" />\n <circle cx=\"9\" cy=\"18\" r=\"2\" fill=\"black\" />\n <circle cx=\"15\" cy=\"18\" r=\"2\" fill=\"black\" />\n </svg>\n }\n }\n <ng-container *ngTemplateOutlet=\"contentHeaderTemplate; context: { $implicit: column }\"> </ng-container>\n </div>\n </th>\n }\n } @else {\n @for (column of mainColumns; track trackBy(i); let i = $index) {\n <th\n class=\"po-table-header-ellipsis p-element po-frozen-column\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [attr.data-po-table-column-name]=\"column.label || (column.property | titlecase) | lowercase\"\n [class.po-clickable]=\"(sort && column.sortable !== false) || hasService\"\n [ngClass]=\"{\n 'po-table-header-sorted':\n sort &&\n JSON.stringify(sortedColumn?.property) === JSON.stringify(column) &&\n (sortedColumn.ascending || !sortedColumn.ascending)\n }\"\n [ngStyle]=\"{\n 'width':\n height > 0 && !virtualScroll ? (!hasItems ? '100%' : applyFixedColumns() ? column.width : 'auto') : ''\n }\"\n [class.po-table-header-subtitle]=\"column.type === 'subtitle'\"\n (click)=\"sortColumn(column)\"\n [pFrozenColumn]=\"column.fixed\"\n >\n <div\n class=\"po-table-header-flex\"\n [class.po-table-header-fixed-inner]=\"height\"\n [class.po-table-header-flex-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-header-flex-center]=\"column.type === 'subtitle'\"\n >\n <ng-container *ngTemplateOutlet=\"contentHeaderTemplate; context: { $implicit: column }\"> </ng-container>\n </div>\n </th>\n }\n }\n\n @if (hasRowTemplateWithArrowDirectionRight && (hasVisibleActions || hideColumnsManager) && hasMainColumns) {\n <th class=\"po-table-header-column po-table-header-master-detail\"></th>\n }\n\n @if (\n hasVisibleActions &&\n actionRight &&\n hasItems &&\n hasMainColumns &&\n (visibleActions.length > 1 || isSingleAction)\n ) {\n <th\n [class.po-table-header-single-action]=\"isSingleAction\"\n [class.po-table-header-actions]=\"!isSingleAction\"\n ></th>\n }\n </tr>\n </thead>\n\n @if (!hasItems || !hasMainColumns) {\n <tbody class=\"po-table-group-row\">\n <tr class=\"po-table-row po-table-row-no-data\">\n <td [colSpan]=\"columnCount\" class=\"po-table-no-data po-text-center\">\n <span> {{ literals.noData }} </span>\n </td>\n </tr>\n </tbody>\n }\n\n @if (hasMainColumns) {\n @for (row of filteredItems; track trackBy(rowIndex); let rowIndex = $index) {\n <tbody class=\"po-table-group-row\">\n <tr\n class=\"po-table-row\"\n [class.po-table-row-active]=\"row.$selected || (row.$selected === null && selectable)\"\n >\n @if (selectable) {\n <td class=\"po-table-column-selectable\">\n <ng-container\n *ngTemplateOutlet=\"singleSelect ? inputRadio : inputCheckbox; context: { $implicit: row }\"\n >\n </ng-container>\n </td>\n }\n <!-- Valida se a origem do detail \u00E9 pelo input do po-table ou pela diretiva -->\n @if (\n (columnMasterDetail && !hideDetail && !hasRowTemplate) ||\n (hasRowTemplate && !hasRowTemplateWithArrowDirectionRight)\n ) {\n <td class=\"po-table-column-detail-toggle\" (click)=\"toggleDetail(row)\">\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n }\n <!-- Coluna com as a\u00E7\u00F5es na esquerda (padr\u00E3o)-->\n @if (!actionRight && (visibleActions.length > 1 || isSingleAction)) {\n <ng-template\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n }\n @for (column of mainColumns; track trackBy(columnIndex); let columnIndex = $index) {\n <td\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-table-column]=\"column.type !== 'icon'\"\n [class.po-table-column-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-column-center]=\"column.type === 'subtitle'\"\n [class.po-table-column-icons]=\"column.type === 'icon'\"\n [pFrozenColumn]=\"column.fixed\"\n class=\"p-element po-frozen-column\"\n [ngClass]=\"getClassColor(row, column)\"\n (click)=\"hasSelectableRow() ? selectRow(row) : 'javascript:;'\"\n >\n <div\n class=\"po-table-column-cell po-table-body-ellipsis notranslate\"\n [p-tooltip]=\"tooltipText\"\n [p-append-in-body]=\"true\"\n (mouseenter)=\"tooltipMouseEnter($event, column, row)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n @switch (column.type) {\n @case ('columnTemplate') {\n <span>\n <ng-container\n *ngTemplateOutlet=\"getTemplate(column); context: { $implicit: getCellData(row, column) }\"\n >\n </ng-container>\n </span>\n }\n @case ('cellTemplate') {\n <span>\n <ng-container\n *ngTemplateOutlet=\"tableCellTemplate?.templateRef; context: { row: row, column: column }\"\n >\n </ng-container>\n </span>\n }\n @case ('boolean') {\n <span>\n {{ getBooleanLabel(getCellData(row, column), column) }}\n </span>\n }\n @case ('currency') {\n <span>\n {{ getCellData(row, column) | currency: column.format : 'symbol' : '1.2-2' }}\n </span>\n }\n @case ('date') {\n <span>\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy' }}\n </span>\n }\n @case ('time') {\n <span>\n {{ getCellData(row, column) | po_time: column.format || 'HH:mm:ss.ffffff' }}\n </span>\n }\n @case ('dateTime') {\n <span>\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy HH:mm:ss' }}\n </span>\n }\n @case ('number') {\n <span>\n {{ formatNumber(getCellData(row, column), column.format) }}\n </span>\n }\n @case ('link') {\n <po-table-column-link\n [p-action]=\"column.action\"\n [p-disabled]=\"checkDisabled(row, column)\"\n [p-link]=\"row[column.link]\"\n [p-row]=\"row\"\n [p-value]=\"getCellData(row, column)\"\n (click)=\"onClickLink($event, row, column)\"\n >\n </po-table-column-link>\n }\n @case ('icon') {\n <po-table-column-icon [p-column]=\"column\" [p-icons]=\"getColumnIcons(row, column)\" [p-row]=\"row\">\n </po-table-column-icon>\n }\n @case ('subtitle') {\n <span>\n <po-table-subtitle-circle\n [p-subtitle]=\"getSubtitleColumn(row, column)\"\n ></po-table-subtitle-circle>\n </span>\n }\n @case ('label') {\n <span>\n <po-table-column-label [p-value]=\"getColumnLabel(row, column)\"> </po-table-column-label>\n </span>\n }\n @default {\n <span>{{ getCellData(row, column) }}</span>\n }\n }\n </div>\n </td>\n }\n @if (hasRowTemplateWithArrowDirectionRight) {\n <td class=\"po-table-column-detail-toggle\" (click)=\"toggleDetail(row)\">\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n }\n <!-- Coluna de a\u00E7oes na direita -->\n @if (actionRight) {\n <ng-template\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n }\n </tr>\n @if (hasMainColumns && hasRowTemplate && row.$showDetail && isShowRowTemplate(row, rowIndex)) {\n <tr>\n <td class=\"po-table-row-template-container\" [colSpan]=\"columnCountForMasterDetail\">\n <ng-template\n [ngTemplateOutlet]=\"tableRowTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n </tr>\n }\n @if (hasMainColumns && isShowMasterDetail(row)) {\n <tr>\n <td class=\"po-table-column-detail\" [colSpan]=\"columnCountForMasterDetail\">\n <po-table-detail\n [p-selectable]=\"selectable && !detailHideSelect\"\n [p-detail]=\"columnMasterDetail.detail\"\n [p-items]=\"row[nameColumnDetail]\"\n [p-parent-row]=\"row\"\n [p-components-size]=\"componentsSize\"\n (p-select-row)=\"selectDetailRow($event)\"\n >\n </po-table-detail>\n </td>\n </tr>\n }\n </tbody>\n }\n }\n </table>\n</ng-template>\n\n<!-- Table with virtual scroll -->\n<ng-template #tableVirtualScrollTemplate>\n <cdk-virtual-scroll-viewport\n #tableVirtualScroll\n [itemSize]=\"itemSize\"\n [style.height.px]=\"heightTableContainer\"\n [minBufferPx]=\"heightTableContainer < 100 ? 100 : heightTableContainer\"\n [maxBufferPx]=\"heightTableContainer < 200 ? 200 : heightTableContainer\"\n >\n <table\n class=\"po-table\"\n [ngClass]=\"{\n 'po-table-interactive': selectable || sort,\n 'po-table-selectable': selectable,\n 'po-table-striped': striped,\n 'po-table-data-fixed-columns': applyFixedColumns(),\n 'po-table-text-wrap-enabled': textWrap\n }\"\n [attr.p-spacing]=\"spacing\"\n >\n <thead\n class=\"po-table-header-sticky\"\n [style.top]=\"inverseOfTranslation\"\n [attr.p-spacing]=\"spacing ?? (componentsSize === 'small' ? 'extraSmall' : 'medium')\"\n >\n <tr\n [class.po-table-header]=\"!height\"\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n @if (hasSelectableColumn) {\n <th [style.pointer-events]=\"hideSelectAll ? 'none' : 'auto'\" class=\"po-table-column-selectable\">\n <div [class.po-table-header-fixed-inner]=\"height\">\n @if (!hideSelectAll) {\n <po-checkbox\n name=\"selectAll\"\n (p-change)=\"selectAllRows()\"\n [p-checkboxValue]=\"selectAll === null ? 'mixed' : selectAll\"\n [p-size]=\"componentsSize\"\n ></po-checkbox>\n }\n </div>\n </th>\n }\n\n @if ((hasMasterDetailColumn || hasRowTemplate) && hasMainColumns && !hasRowTemplateWithArrowDirectionRight) {\n <th class=\"po-table-header-column po-table-header-master-detail\"></th>\n }\n\n <!-- Coluna criada para caso as a\u00E7\u00F5es fiquem no lado esquerdo -->\n @if (!actionRight && hasItems && hasMainColumns && (visibleActions.length > 1 || isSingleAction)) {\n <th\n #columnActionLeft\n [class.po-table-header-master-detail]=\"!isSingleAction\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n ></th>\n }\n\n @if (!hasMainColumns) {\n <th #noColumnsHeader class=\"po-table-header-column po-text-center\" [attr.colspan]=\"columnCount\">\n @if (height) {\n <div class=\"po-table-header-fixed-inner\" [style.width.px]=\"hasValidColumns ? headerWidth : null\">\n {{ hasValidColumns ? literals.noVisibleColumn : literals.noColumns }}\n </div>\n } @else {\n {{ hasValidColumns ? literals.noVisibleColumn : literals.noColumns }}\n }\n </th>\n }\n\n @if (this.isDraggable || hasSomeFixed()) {\n @for (column of mainColumns; track trackBy(i); let i = $index) {\n <th\n class=\"po-table-header-ellipsis p-element po-frozen-column\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [attr.data-po-table-column-name]=\"column.label || (column.property | titlecase) | lowercase\"\n [class.po-clickable]=\"(sort && column.sortable !== false) || hasService\"\n [ngClass]=\"{\n 'po-table-header-sorted':\n sort &&\n JSON.stringify(sortedColumn?.property) === JSON.stringify(column) &&\n (sortedColumn.ascending || !sortedColumn.ascending)\n }\"\n [ngStyle]=\"{ 'width': !hasItems ? '100%' : applyFixedColumns() ? column.width : 'auto' }\"\n [class.po-table-header-subtitle]=\"column.type === 'subtitle'\"\n [class.po-table-column-drag-box]=\"this.isDraggable\"\n (click)=\"sortColumn(column)\"\n cdkDrag\n cdkDragLockAxis=\"x\"\n [cdkDragDisabled]=\"column.fixed ? 'true' : 'false'\"\n [pFrozenColumn]=\"column.fixed\"\n >\n <div\n class=\"po-table-header-flex\"\n [class.po-table-header-fixed-inner]=\"height\"\n [class.po-table-header-flex-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-header-flex-center]=\"column.type === 'subtitle'\"\n >\n @if (this.isDraggable && !column.fixed) {\n @if (iconNameLib === 'AnimaliaIcon') {\n <po-icon cdkDragHandle p-icon=\"ICON_DRAG\"></po-icon>\n }\n @if (iconNameLib === 'PoIcon') {\n <svg\n cdkDragHandle\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"9\" cy=\"6\" r=\"2\" fill=\"black\" />\n <circle cx=\"15\" cy=\"6\" r=\"2\" fill=\"black\" />\n <circle cx=\"9\" cy=\"12\" r=\"2\" fill=\"black\" />\n <circle cx=\"15\" cy=\"12\" r=\"2\" fill=\"black\" />\n <circle cx=\"9\" cy=\"18\" r=\"2\" fill=\"black\" />\n <circle cx=\"15\" cy=\"18\" r=\"2\" fill=\"black\" />\n </svg>\n }\n }\n <ng-container *ngTemplateOutlet=\"contentHeaderTemplate; context: { $implicit: column }\">\n </ng-container>\n </div>\n </th>\n }\n } @else {\n @for (column of mainColumns; track trackBy(i); let i = $index) {\n <th\n class=\"po-table-header-ellipsis p-element po-frozen-column example-box\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [attr.data-po-table-column-name]=\"column.label || (column.property | titlecase) | lowercase\"\n [class.po-clickable]=\"(sort && column.sortable !== false) || hasService\"\n [ngClass]=\"{\n 'po-table-header-sorted':\n sort &&\n JSON.stringify(sortedColumn?.property) === JSON.stringify(column) &&\n (sortedColumn.ascending || !sortedColumn.ascending)\n }\"\n [ngStyle]=\"{ 'width': !hasItems ? '100%' : applyFixedColumns() ? column.width : 'auto' }\"\n [class.po-table-header-subtitle]=\"column.type === 'subtitle'\"\n (click)=\"sortColumn(column)\"\n [pFrozenColumn]=\"column.fixed\"\n >\n <div\n class=\"po-table-header-flex\"\n [class.po-table-header-fixed-inner]=\"height\"\n [class.po-table-header-flex-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-header-flex-center]=\"column.type === 'subtitle'\"\n >\n <ng-container *ngTemplateOutlet=\"contentHeaderTemplate; context: { $implicit: column }\">\n </ng-container>\n </div>\n </th>\n }\n }\n\n @if (hasRowTemplateWithArrowDirectionRight && hasMainColumns && (hasVisibleActions || hideColumnsManager)) {\n <th class=\"po-table-header-column po-table-header-master-detail\"></th>\n }\n\n @if (\n hasVisibleActions &&\n actionRight &&\n hasItems &&\n hasMainColumns &&\n (visibleActions.length > 1 || isSingleAction)\n ) {\n <th\n [class.po-table-header-single-action]=\"isSingleAction\"\n [class.po-table-header-actions]=\"!isSingleAction\"\n ></th>\n }\n </tr>\n </thead>\n\n @if (!hasItems || !hasMainColumns) {\n <tbody class=\"po-table-group-row\">\n <tr class=\"po-table-row po-table-row-no-data\">\n <td [colSpan]=\"columnCount\" class=\"po-table-no-data po-text-center\">\n <span> {{ literals.noData }} </span>\n </td>\n </tr>\n </tbody>\n }\n\n @if (hasMainColumns) {\n <tbody\n class=\"po-table-group-row\"\n *cdkVirtualFor=\"let row of filteredItems; let rowIndex = index; trackBy: trackBy\"\n >\n <tr\n class=\"po-table-row\"\n [class.po-table-row-active]=\"row.$selected || (row.$selected === null && selectable)\"\n >\n @if (selectable) {\n <td class=\"po-table-column-selectable\">\n <ng-container\n *ngTemplateOutlet=\"singleSelect ? inputRadio : inputCheckbox; context: { $implicit: row }\"\n >\n </ng-container>\n </td>\n }\n <!-- Valida se a origem do detail \u00E9 pelo input do po-table pela diretiva -->\n @if (\n (columnMasterDetail && !hideDetail && !hasRowTemplate) ||\n (hasRowTemplate && !hasRowTemplateWithArrowDirectionRight)\n ) {\n <td class=\"po-table-column-detail-toggle\" (click)=\"toggleDetail(row)\">\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n }\n <!-- Coluna com as a\u00E7\u00F5es na esquerda (padr\u00E3o)-->\n @if (!actionRight && (visibleActions.length > 1 || isSingleAction)) {\n <ng-template\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n }\n @for (column of mainColumns; track trackBy(columnIndex); let columnIndex = $index) {\n <td\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-table-column]=\"column.type !== 'icon'\"\n [class.po-table-column-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-column-center]=\"column.type === 'subtitle'\"\n [class.po-table-column-icons]=\"column.type === 'icon'\"\n [ngClass]=\"getClassColor(row, column)\"\n [pFrozenColumn]=\"column.fixed\"\n class=\"p-element po-frozen-column\"\n (click)=\"hasSelectableRow() ? selectRow(row) : 'javascript:;'\"\n >\n <div\n class=\"po-table-column-cell po-table-body-ellipsis notranslate\"\n [p-tooltip]=\"tooltipText\"\n [p-append-in-body]=\"true\"\n (mouseenter)=\"tooltipMouseEnter($event, column, row)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n @switch (column.type) {\n @case ('columnTemplate') {\n <span>\n <ng-container\n *ngTemplateOutlet=\"getTemplate(column); context: { $implicit: getCellData(row, column) }\"\n >\n </ng-container>\n </span>\n }\n @case ('cellTemplate') {\n <span>\n <ng-container\n *ngTemplateOutlet=\"tableCellTemplate?.templateRef; context: { row: row, column: column }\"\n >\n </ng-container>\n </span>\n }\n @case ('boolean') {\n <span>\n {{ getBooleanLabel(getCellData(row, column), column) }}\n </span>\n }\n @case ('currency') {\n <span>\n {{ getCellData(row, column) | currency: column.format : 'symbol' : '1.2-2' }}\n </span>\n }\n @case ('date') {\n <span>\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy' }}\n </span>\n }\n @case ('time') {\n <span>\n {{ getCellData(row, column) | po_time: column.format || 'HH:mm:ss.ffffff' }}\n </span>\n }\n @case ('dateTime') {\n <span>\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy HH:mm:ss' }}\n </span>\n }\n @case ('number') {\n <span>\n {{ formatNumber(getCellData(row, column), column.format) }}\n </span>\n }\n @case ('link') {\n <po-table-column-link\n [p-action]=\"column.action\"\n [p-disabled]=\"checkDisabled(row, column)\"\n [p-link]=\"row[column.link]\"\n [p-row]=\"row\"\n [p-value]=\"getCellData(row, column)\"\n (click)=\"onClickLink($event, row, column)\"\n >\n </po-table-column-link>\n }\n @case ('icon') {\n <po-table-column-icon [p-column]=\"column\" [p-icons]=\"getColumnIcons(row, column)\" [p-row]=\"row\">\n </po-table-column-icon>\n }\n @case ('subtitle') {\n <span>\n <po-table-subtitle-circle\n [p-subtitle]=\"getSubtitleColumn(row, column)\"\n ></po-table-subtitle-circle>\n </span>\n }\n @case ('label') {\n <span>\n <po-table-column-label [p-value]=\"getColumnLabel(row, column)\"> </po-table-column-label>\n </span>\n }\n @default {\n <span>{{ getCellData(row, column) }}</span>\n }\n }\n </div>\n </td>\n }\n @if (hasRowTemplateWithArrowDirectionRight) {\n <td class=\"po-table-column-detail-toggle\" (click)=\"toggleDetail(row)\">\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n }\n <!-- Coluna de a\u00E7oes na direita -->\n @if (actionRight) {\n <ng-template\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n }\n </tr>\n @if (hasMainColumns && hasRowTemplate && row.$showDetail && isShowRowTemplate(row, rowIndex)) {\n <tr>\n <td class=\"po-table-row-template-container\" [colSpan]=\"columnCountForMasterDetail\">\n <ng-template\n [ngTemplateOutlet]=\"tableRowTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n </tr>\n }\n @if (hasMainColumns && isShowMasterDetail(row)) {\n <tr>\n <td class=\"po-table-column-detail\" [colSpan]=\"columnCountForMasterDetail\">\n <po-table-detail\n [p-selectable]=\"selectable && !detailHideSelect\"\n [p-detail]=\"columnMasterDetail.detail\"\n [p-items]=\"row[nameColumnDetail]\"\n [p-parent-row]=\"row\"\n [p-components-size]=\"componentsSize\"\n (p-select-row)=\"selectDetailRow($event)\"\n >\n </po-table-detail>\n </td>\n </tr>\n }\n </tbody>\n }\n </table>\n </cdk-virtual-scroll-viewport>\n</ng-template>\n\n<po-popup #popup [p-actions]=\"actions\" [p-size]=\"componentsSize\" [p-target]=\"popupTarget\"> </po-popup>\n\n<ng-template #poTableColumnDetail let-row=\"row\" let-rowIndex=\"rowIndex\">\n @if ((containsMasterDetail(row) && !hasRowTemplate) || (isShowRowTemplate(row, rowIndex) && hasRowTemplate)) {\n <po-icon [p-icon]=\"row.$showDetail ? 'ICON_ARROW_UP' : 'ICON_ARROW_DOWN'\" class=\"po-clickable\"> </po-icon>\n }\n</ng-template>\n\n<ng-template #inputRadio let-row>\n <po-radio\n [name]=\"idRadio\"\n [p-checked]=\"row.$selected\"\n [p-size]=\"componentsSize\"\n (p-change-selected)=\"selectRow(row)\"\n ></po-radio>\n</ng-template>\n\n<ng-template #inputCheckbox let-row>\n <po-checkbox\n name=\"checkbox\"\n (p-change)=\"selectable ? selectRow(row) : 'javascript:;'\"\n [p-checkboxValue]=\"row.$selected === null ? 'mixed' : row.$selected\"\n [p-size]=\"componentsSize\"\n ></po-checkbox>\n</ng-template>\n\n<ng-template #contentHeaderTemplate let-column>\n <span\n #columnHeader\n class=\"po-table-header-ellipsis\"\n [p-tooltip]=\"tooltipText\"\n [p-append-in-body]=\"true\"\n (mouseenter)=\"tooltipMouseEnter($event)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n {{ column.label || (column.property | titlecase) }}\n </span>\n\n @if (sort && column.sortable !== false) {\n <span\n [class.po-table-header-icon-unselected]=\"JSON.stringify(sortedColumn?.property) !== JSON.stringify(column)\"\n [class.po-table-header-icon-descending]=\"\n JSON.stringify(sortedColumn?.property) === JSON.stringify(column) && sortedColumn.ascending\n \"\n [class.po-table-header-icon-ascending]=\"\n JSON.stringify(sortedColumn?.property) === JSON.stringify(column) && !sortedColumn.ascending\n \"\n >\n @if (JSON.stringify(sortedColumn?.property) !== JSON.stringify(column)) {\n @if (iconNameLib === 'AnimaliaIcon') {\n <po-icon p-icon=\"ICON_SORT\"></po-icon>\n }\n @if (iconNameLib === 'PoIcon') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M18.2929 15.2929L17 16.5858L17 10C17 9.44772 16.5523 9 16 9C15.4477 9 15 9.44772 15 10L15 16.5858L13.7071 15.2929C13.3166 14.9024 12.6834 14.9024 12.2929 15.2929C11.9024 15.6834 11.9024 16.3166 12.2929 16.7071L15.2929 19.7071C15.6834 20.0976 16.3166 20.0976 16.7071 19.7071L19.7071 16.7071C20.0976 16.3166 20.0976 15.6834 19.7071 15.2929C19.3166 14.9024 18.6834 14.9024 18.2929 15.2929ZM5.70716 8.7071L7.00006 7.4142L7.00003 14C7.00002 14.5523 7.44774 15 8.00002 15C8.55231 15 9.00002 14.5523 9.00003 14L9.00006 7.41418L10.2929 8.70707C10.6835 9.09759 11.3166 9.09758 11.7072 8.70706C12.0977 8.31653 12.0977 7.68336 11.7072 7.29284L8.70718 4.29286C8.31665 3.90234 7.68349 3.90235 7.29296 4.29287L4.29295 7.29289C3.90242 7.68342 3.90242 8.31658 4.29294 8.70711C4.68347 9.09763 5.31663 9.09762 5.70716 8.7071Z\"\n fill=\"#1D1D30\"\n />\n </svg>\n }\n }\n @if (JSON.stringify(sortedColumn?.property) === JSON.stringify(column) && sortedColumn.ascending) {\n @if (iconNameLib === 'AnimaliaIcon') {\n <po-icon p-icon=\"ICON_SORT_ASC\"></po-icon>\n }\n @if (iconNameLib === 'PoIcon') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M11 9.41421L9.70711 10.7071C9.31658 11.0976 8.68342 11.0976 8.29289 10.7071C7.90237 10.3166 7.90237 9.68342 8.29289 9.29289L11.2929 6.29289C11.6834 5.90237 12.3166 5.90237 12.7071 6.29289L15.7071 9.29289C16.0976 9.68342 16.0976 10.3166 15.7071 10.7071C15.3166 11.0976 14.6834 11.0976 14.2929 10.7071L13 9.41421V16C13 16.5523 12.5523 17 12 17C11.4477 17 11 16.5523 11 16V9.41421Z\"\n fill=\"black\"\n />\n </svg>\n }\n }\n @if (JSON.stringify(sortedColumn?.property) === JSON.stringify(column) && !sortedColumn.ascending) {\n @if (iconNameLib === 'AnimaliaIcon') {\n <po-icon cdkDragHandle p-icon=\"ICON_SORT_DESC\"></po-icon>\n }\n @if (iconNameLib === 'PoIcon') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M9.70711 13.2929L11 14.5858V7C11 6.44772 11.4477 6 12 6C12.5523 6 13 6.44772 13 7V14.5858L14.2929 13.2929C14.6834 12.9024 15.3166 12.9024 15.7071 13.2929C16.0976 13.6834 16.0976 14.3166 15.7071 14.7071L12.7071 17.7071C12.3166 18.0976 11.6834 18.0976 11.2929 17.7071L8.29289 14.7071C7.90237 14.3166 7.90237 13.6834 8.29289 13.2929C8.68342 12.9024 9.31658 12.9024 9.70711 13.2929Z\"\n fill=\"black\"\n />\n </svg>\n }\n }\n </span>\n }\n</ng-template>\n\n<!-- Template de a\u00E7\u00F5es -->\n<ng-template #ActionsColumnTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n @if (isSingleAction) {\n <td\n class=\"po-table-column po-table-column-single-action\"\n [style.width.px]=\"height && actionRight ? getWidthColumnManager() : ''\"\n [style.max-width.px]=\"height && !actionRight ? getColumnWidthActionsLeft() : ''\"\n [style.width.px]=\"height && !actionRight ? getColumnWidthActionsLeft() : ''\"\n >\n @if (firstAction.visible !== false) {\n <div\n class=\"po-table-single-action po-clickable\"\n [class.po-table-action-disabled]=\"firstAction.disabled ? validateTableAction(row, firstAction) : false\"\n (click)=\"executeTableAction(row, firstAction)\"\n >\n @if (firstAction.icon) {\n <po-icon class=\"po-table-single-action-content\" [p-icon]=\"firstAction.icon\"></po-icon>\n }\n @if (firstAction.label) {\n <span>{{ firstAction.label }}</span>\n }\n </div>\n }\n </td>\n }\n\n @if (visibleActions.length > 1) {\n <td class=\"po-table-column-actions\">\n <div #popupTarget class=\"po-clickable\" (click)=\"togglePopup(row, popupTarget)\">\n <po-icon class=\"po-field-icon\" p-icon=\"ICON_MORE\"></po-icon>\n </div>\n </td>\n }\n</ng-template>\n\n@if (!hideColumnsManager) {\n <po-table-column-manager\n [p-columns]=\"columns\"\n [p-max-columns]=\"maxColumns\"\n [p-target]=\"columnManagerTarget\"\n [p-last-visible-columns-selected]=\"lastVisibleColumnsSelected\"\n [p-hide-action-fixed-columns]=\"hideActionFixedColumns\"\n (p-visible-columns-change)=\"onVisibleColumnsChange($event)\"\n (p-change-visible-columns)=\"onChangeVisibleColumns($event)\"\n [p-columns-default]=\"initialColumns\"\n [p-components-size]=\"componentsSize\"\n (p-initial-columns)=\"onColumnRestoreManager($event)\"\n >\n </po-table-column-manager>\n}\n\n<po-modal\n #modalDelete\n [p-components-size]=\"componentsSize\"\n [p-title]=\"literals.delete\"\n [p-primary-action]=\"confirm\"\n [p-secondary-action]=\"close\"\n [p-click-out]=\"true\"\n>\n <p class=\"po-font-text-large\">{{ literals.bodyDelete }}</p>\n</po-modal>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.NgPlural, selector: "[ngPlural]", inputs: ["ngPlural"] }, { kind: "directive", type: i1.NgPluralCase, selector: "[ngPluralCase]" }, { kind: "directive", type: i5$1.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i5$1.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i5$1.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: PoButtonComponent, selector: "po-button" }, { kind: "component", type: PoContainerComponent, selector: "po-container" }, { kind: "component", type: PoLoadingOverlayComponent, selector: "po-loading-overlay" }, { kind: "component", type: PoModalComponent, selector: "po-modal" }, { kind: "component", type: PoPopupComponent, selector: "po-popup" }, { kind: "directive", type: PoTooltipDirective, selector: "[p-tooltip]" }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoCheckboxComponent, selector: "po-checkbox" }, { kind: "component", type: PoRadioComponent, selector: "po-radio", inputs: ["p-value", "p-size", "p-required", "p-label-text-wrap", "p-checked"], outputs: ["p-blur", "p-change-selected"] }, { kind: "component", type: PoSearchComponent, selector: "po-search" }, { kind: "component", type: PoTableColumnIconComponent, selector: "po-table-column-icon", inputs: ["p-column", "p-row", "p-icons"] }, { kind: "component", type: PoTableColumnLabelComponent, selector: "po-table-column-label", inputs: ["p-value"] }, { kind: "component", type: PoTableColumnLinkComponent, selector: "po-table-column-link", inputs: ["p-action", "p-disabled", "p-link", "p-open-new-tab", "p-row", "p-value"] }, { kind: "component", type: PoTableColumnManagerComponent, selector: "po-table-column-manager", inputs: ["p-columns", "p-target", "p-columns-default", "p-last-visible-columns-selected", "p-hide-action-fixed-columns", "p-components-size", "p-max-columns"], outputs: ["p-visible-columns-change", "p-change-visible-columns", "p-initial-columns"] }, { kind: "component", type: PoTableDetailComponent, selector: "po-table-detail", inputs: ["p-components-size", "p-items", "p-parent-row", "p-selectable", "p-detail"], outputs: ["p-select-row"] }, { kind: "component", type: PoTableSubtitleCircleComponent, selector: "po-table-subtitle-circle", inputs: ["p-hide-title", "p-subtitle"] }, { kind: "component", type: PoTableSubtitleFooterComponent, selector: "po-table-subtitle-footer", inputs: ["p-components-size", "p-literals", "p-subtitles"] }, { kind: "directive", type: PoTableColumnFrozenDirective, selector: "[pFrozenColumn]", inputs: ["pFrozenColumn", "alignFrozen"] }, { kind: "pipe", type: i1.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: PoTimePipe, name: "po_time" }] });
26542
26850
  }
26543
26851
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoTableComponent, decorators: [{
26544
26852
  type: Component,
@@ -30265,6 +30573,21 @@ class PoInputBaseComponent {
30265
30573
  * @default `false`
30266
30574
  */
30267
30575
  errorLimit = false;
30576
+ /**
30577
+ * @optional
30578
+ *
30579
+ * @description
30580
+ * Exibe um ícone de carregamento no lado direito do campo para sinalizar que uma operação está em andamento.
30581
+ *
30582
+ * @default `false`
30583
+ */
30584
+ set loading(value) {
30585
+ this._loading = convertToBoolean(value);
30586
+ this.cd?.markForCheck();
30587
+ }
30588
+ get loading() {
30589
+ return this._loading;
30590
+ }
30268
30591
  /**
30269
30592
  * @optional
30270
30593
  *
@@ -30392,6 +30715,7 @@ class PoInputBaseComponent {
30392
30715
  onTouched = null;
30393
30716
  passedWriteValue = false;
30394
30717
  validatorChange;
30718
+ _loading = false;
30395
30719
  _maxlength;
30396
30720
  _minlength;
30397
30721
  _noAutocomplete = false;
@@ -30781,6 +31105,14 @@ class PoInputBaseComponent {
30781
31105
  return (this.additionalHelpEventTrigger === 'event' ||
30782
31106
  (this.additionalHelpEventTrigger === undefined && this.additionalHelp.observed));
30783
31107
  }
31108
+ //Transforma o tamanho do input para o tamanho do ícone de loading correspondente
31109
+ mapSizeToIcon(size) {
31110
+ const sizeMap = {
31111
+ small: 'xs',
31112
+ medium: 'sm'
31113
+ };
31114
+ return sizeMap[size] || 'sm';
31115
+ }
30784
31116
  // utilizado para validar o pattern na inicializacao, fazendo dessa forma o campo fica sujo (dirty).
30785
31117
  validatePatternOnWriteValue(value) {
30786
31118
  if (value && this.passedWriteValue) {
@@ -30791,7 +31123,7 @@ class PoInputBaseComponent {
30791
31123
  }
30792
31124
  }
30793
31125
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoInputBaseComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
30794
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.7", type: PoInputBaseComponent, isStandalone: true, inputs: { additionalHelpEventTrigger: { classPropertyName: "additionalHelpEventTrigger", publicName: "additionalHelpEventTrigger", isSignal: false, isRequired: false, transformFunction: null }, additionalHelpTooltip: { classPropertyName: "additionalHelpTooltip", publicName: "p-additional-help-tooltip", isSignal: false, isRequired: false, transformFunction: null }, appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, icon: { classPropertyName: "icon", publicName: "p-icon", isSignal: false, isRequired: false, transformFunction: null }, emitAllChanges: { classPropertyName: "emitAllChanges", publicName: "p-emit-all-changes", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, label: { classPropertyName: "label", publicName: "p-label", isSignal: false, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "p-help", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, errorAsyncProperties: { classPropertyName: "errorAsyncProperties", publicName: "p-error-async-properties", isSignal: false, isRequired: false, transformFunction: null }, errorPattern: { classPropertyName: "errorPattern", publicName: "p-error-pattern", isSignal: false, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: false, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: false, isRequired: false, transformFunction: null }, showErrorMessageRequired: { classPropertyName: "showErrorMessageRequired", publicName: "p-required-field-error-message", isSignal: false, isRequired: false, transformFunction: null }, upperCase: { classPropertyName: "upperCase", publicName: "p-upper-case", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, maskNoLengthValidation: { classPropertyName: "maskNoLengthValidation", publicName: "p-mask-no-length-validation", isSignal: false, isRequired: false, transformFunction: null }, noAutocomplete: { classPropertyName: "noAutocomplete", publicName: "p-no-autocomplete", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "p-placeholder", isSignal: false, isRequired: false, transformFunction: null }, setDisabled: { classPropertyName: "setDisabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: null }, setReadonly: { classPropertyName: "setReadonly", publicName: "p-readonly", isSignal: false, isRequired: false, transformFunction: null }, setRequired: { classPropertyName: "setRequired", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null }, showRequired: { classPropertyName: "showRequired", publicName: "p-show-required", isSignal: false, isRequired: false, transformFunction: null }, setClean: { classPropertyName: "setClean", publicName: "p-clean", isSignal: false, isRequired: false, transformFunction: null }, setPattern: { classPropertyName: "setPattern", publicName: "p-pattern", isSignal: false, isRequired: false, transformFunction: null }, maxlength: { classPropertyName: "maxlength", publicName: "p-maxlength", isSignal: false, isRequired: false, transformFunction: null }, minlength: { classPropertyName: "minlength", publicName: "p-minlength", isSignal: false, isRequired: false, transformFunction: null }, setMask: { classPropertyName: "setMask", publicName: "p-mask", isSignal: false, isRequired: false, transformFunction: null }, setMaskFormatModel: { classPropertyName: "setMaskFormatModel", publicName: "p-mask-format-model", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { additionalHelp: "p-additional-help", blur: "p-blur", enter: "p-enter", change: "p-change", changeModel: "p-change-model", keydown: "p-keydown" }, viewQueries: [{ propertyName: "fieldContainer", first: true, predicate: ["fieldContainer"], descendants: true, read: PoFieldContainerComponent }, { propertyName: "helperEl", first: true, predicate: ["helperEl"], descendants: true, read: PoHelperComponent }], ngImport: i0 });
31126
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.7", type: PoInputBaseComponent, isStandalone: true, inputs: { additionalHelpEventTrigger: { classPropertyName: "additionalHelpEventTrigger", publicName: "additionalHelpEventTrigger", isSignal: false, isRequired: false, transformFunction: null }, additionalHelpTooltip: { classPropertyName: "additionalHelpTooltip", publicName: "p-additional-help-tooltip", isSignal: false, isRequired: false, transformFunction: null }, appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, icon: { classPropertyName: "icon", publicName: "p-icon", isSignal: false, isRequired: false, transformFunction: null }, emitAllChanges: { classPropertyName: "emitAllChanges", publicName: "p-emit-all-changes", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, label: { classPropertyName: "label", publicName: "p-label", isSignal: false, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "p-help", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, errorAsyncProperties: { classPropertyName: "errorAsyncProperties", publicName: "p-error-async-properties", isSignal: false, isRequired: false, transformFunction: null }, errorPattern: { classPropertyName: "errorPattern", publicName: "p-error-pattern", isSignal: false, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: false, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "p-loading", isSignal: false, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: false, isRequired: false, transformFunction: null }, showErrorMessageRequired: { classPropertyName: "showErrorMessageRequired", publicName: "p-required-field-error-message", isSignal: false, isRequired: false, transformFunction: null }, upperCase: { classPropertyName: "upperCase", publicName: "p-upper-case", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, maskNoLengthValidation: { classPropertyName: "maskNoLengthValidation", publicName: "p-mask-no-length-validation", isSignal: false, isRequired: false, transformFunction: null }, noAutocomplete: { classPropertyName: "noAutocomplete", publicName: "p-no-autocomplete", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "p-placeholder", isSignal: false, isRequired: false, transformFunction: null }, setDisabled: { classPropertyName: "setDisabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: null }, setReadonly: { classPropertyName: "setReadonly", publicName: "p-readonly", isSignal: false, isRequired: false, transformFunction: null }, setRequired: { classPropertyName: "setRequired", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null }, showRequired: { classPropertyName: "showRequired", publicName: "p-show-required", isSignal: false, isRequired: false, transformFunction: null }, setClean: { classPropertyName: "setClean", publicName: "p-clean", isSignal: false, isRequired: false, transformFunction: null }, setPattern: { classPropertyName: "setPattern", publicName: "p-pattern", isSignal: false, isRequired: false, transformFunction: null }, maxlength: { classPropertyName: "maxlength", publicName: "p-maxlength", isSignal: false, isRequired: false, transformFunction: null }, minlength: { classPropertyName: "minlength", publicName: "p-minlength", isSignal: false, isRequired: false, transformFunction: null }, setMask: { classPropertyName: "setMask", publicName: "p-mask", isSignal: false, isRequired: false, transformFunction: null }, setMaskFormatModel: { classPropertyName: "setMaskFormatModel", publicName: "p-mask-format-model", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { additionalHelp: "p-additional-help", blur: "p-blur", enter: "p-enter", change: "p-change", changeModel: "p-change-model", keydown: "p-keydown" }, viewQueries: [{ propertyName: "fieldContainer", first: true, predicate: ["fieldContainer"], descendants: true, read: PoFieldContainerComponent }, { propertyName: "helperEl", first: true, predicate: ["helperEl"], descendants: true, read: PoHelperComponent }], ngImport: i0 });
30795
31127
  }
30796
31128
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoInputBaseComponent, decorators: [{
30797
31129
  type: Directive
@@ -30836,6 +31168,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
30836
31168
  }], errorLimit: [{
30837
31169
  type: Input,
30838
31170
  args: ['p-error-limit']
31171
+ }], loading: [{
31172
+ type: Input,
31173
+ args: ['p-loading']
30839
31174
  }], optional: [{
30840
31175
  type: Input,
30841
31176
  args: ['p-optional']
@@ -31555,7 +31890,7 @@ class PoDecimalComponent extends PoInputBaseComponent {
31555
31890
  useExisting: forwardRef(() => PoDecimalComponent),
31556
31891
  multi: true
31557
31892
  }
31558
- ], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["inp"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon po-icon-input\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n\n <input\n #inp\n class=\"po-input\"\n [attr.data-focused-element]=\"!disabled\"\n [attr.data-inactive-component]=\"disabled || readonly\"\n [attr.max]=\"max\"\n [attr.min]=\"min\"\n [attr.name]=\"name\"\n [autocomplete]=\"autocomplete\"\n [ngClass]=\"{\n 'po-input-icon-left': icon && size !== 'small',\n 'po-input-icon-left-aa': icon && size === 'small',\n 'po-input-icon-right': clean && size !== 'small',\n 'po-input-icon-right-aa': clean && size === 'small'\n }\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n inputmode=\"decimal\"\n type=\"text\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (input)=\"onInput($event)\"\n (keypress)=\"onKeyPress($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n @if (clean && !disabled && !readonly) {\n <po-clean class=\"po-icon-input\" [p-element-ref]=\"inputEl\" [p-size]=\"size\" (p-change-event)=\"clear($event)\">\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-limit]=\"errorLimit\"\n [p-error-pattern]=\"getErrorPatternMessage()\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size"] }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
31893
+ ], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["inp"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon po-icon-input\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n\n <input\n #inp\n class=\"po-input\"\n [attr.data-focused-element]=\"!disabled\"\n [attr.data-inactive-component]=\"disabled || readonly\"\n [attr.max]=\"max\"\n [attr.min]=\"min\"\n [attr.name]=\"name\"\n [autocomplete]=\"autocomplete\"\n [ngClass]=\"{\n 'po-input-icon-left': icon && size !== 'small',\n 'po-input-icon-left-aa': icon && size === 'small',\n 'po-input-icon-right': (clean || loading) && size !== 'small',\n 'po-input-icon-right-aa': (clean || loading) && size === 'small'\n }\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n inputmode=\"decimal\"\n type=\"text\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (input)=\"onInput($event)\"\n (keypress)=\"onKeyPress($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n }\n\n @if (!loading && clean && !disabled && !readonly) {\n <po-clean class=\"po-icon-input\" [p-element-ref]=\"inputEl\" [p-size]=\"size\" (p-change-event)=\"clear($event)\">\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-limit]=\"errorLimit\"\n [p-error-pattern]=\"getErrorPatternMessage()\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size"] }, { kind: "component", type: PoLoadingIconComponent, selector: "po-loading-icon", inputs: ["p-neutral-color", "p-size"] }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
31559
31894
  }
31560
31895
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoDecimalComponent, decorators: [{
31561
31896
  type: Component,
@@ -31570,7 +31905,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
31570
31905
  useExisting: forwardRef(() => PoDecimalComponent),
31571
31906
  multi: true
31572
31907
  }
31573
- ], standalone: false, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon po-icon-input\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n\n <input\n #inp\n class=\"po-input\"\n [attr.data-focused-element]=\"!disabled\"\n [attr.data-inactive-component]=\"disabled || readonly\"\n [attr.max]=\"max\"\n [attr.min]=\"min\"\n [attr.name]=\"name\"\n [autocomplete]=\"autocomplete\"\n [ngClass]=\"{\n 'po-input-icon-left': icon && size !== 'small',\n 'po-input-icon-left-aa': icon && size === 'small',\n 'po-input-icon-right': clean && size !== 'small',\n 'po-input-icon-right-aa': clean && size === 'small'\n }\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n inputmode=\"decimal\"\n type=\"text\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (input)=\"onInput($event)\"\n (keypress)=\"onKeyPress($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n @if (clean && !disabled && !readonly) {\n <po-clean class=\"po-icon-input\" [p-element-ref]=\"inputEl\" [p-size]=\"size\" (p-change-event)=\"clear($event)\">\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-limit]=\"errorLimit\"\n [p-error-pattern]=\"getErrorPatternMessage()\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n" }]
31908
+ ], standalone: false, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon po-icon-input\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n\n <input\n #inp\n class=\"po-input\"\n [attr.data-focused-element]=\"!disabled\"\n [attr.data-inactive-component]=\"disabled || readonly\"\n [attr.max]=\"max\"\n [attr.min]=\"min\"\n [attr.name]=\"name\"\n [autocomplete]=\"autocomplete\"\n [ngClass]=\"{\n 'po-input-icon-left': icon && size !== 'small',\n 'po-input-icon-left-aa': icon && size === 'small',\n 'po-input-icon-right': (clean || loading) && size !== 'small',\n 'po-input-icon-right-aa': (clean || loading) && size === 'small'\n }\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n inputmode=\"decimal\"\n type=\"text\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (input)=\"onInput($event)\"\n (keypress)=\"onKeyPress($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n }\n\n @if (!loading && clean && !disabled && !readonly) {\n <po-clean class=\"po-icon-input\" [p-element-ref]=\"inputEl\" [p-size]=\"size\" (p-change-event)=\"clear($event)\">\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-limit]=\"errorLimit\"\n [p-error-pattern]=\"getErrorPatternMessage()\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n" }]
31574
31909
  }], ctorParameters: () => [], propDecorators: { inputEl: [{
31575
31910
  type: ViewChild,
31576
31911
  args: ['inp', { read: ElementRef, static: true }]
@@ -31944,11 +32279,11 @@ class PoEmailComponent extends PoInputGeneric {
31944
32279
  return null;
31945
32280
  }
31946
32281
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoEmailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31947
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: PoEmailComponent, isStandalone: false, selector: "po-email", providers: providers$4, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n #fieldContainer\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n\n <input\n #inp\n class=\"po-input\"\n [attr.name]=\"name\"\n [attr.data-focused-element]=\"!disabled\"\n [attr.data-inactive-component]=\"disabled || readonly\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-left-aa]=\"icon && size === 'small'\"\n [class.po-input-icon-right]=\"clean\"\n [class.po-input-icon-right-aa]=\"clean && size === 'small'\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n <div class=\"po-field-icon-container-right\">\n @if (clean && !disabled && !readonly) {\n <po-clean\n class=\"{{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"size\"\n (p-change-event)=\"clear($event)\"\n >\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n", dependencies: [{ kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size"] }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
32282
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: PoEmailComponent, isStandalone: false, selector: "po-email", providers: providers$4, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n #fieldContainer\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n\n <input\n #inp\n class=\"po-input\"\n [attr.name]=\"name\"\n [attr.data-focused-element]=\"!disabled\"\n [attr.data-inactive-component]=\"disabled || readonly\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-left-aa]=\"icon && size === 'small'\"\n [class.po-input-icon-right]=\"clean || loading\"\n [class.po-input-icon-right-aa]=\"(clean || loading) && size === 'small'\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n <div class=\"po-field-icon-container-right\">\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n }\n\n @if (!loading && clean && !disabled && !readonly) {\n <po-clean\n class=\"{{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"size\"\n (p-change-event)=\"clear($event)\"\n >\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n", dependencies: [{ kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size"] }, { kind: "component", type: PoLoadingIconComponent, selector: "po-loading-icon", inputs: ["p-neutral-color", "p-size"] }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
31948
32283
  }
31949
32284
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoEmailComponent, decorators: [{
31950
32285
  type: Component,
31951
- args: [{ selector: 'po-email', changeDetection: ChangeDetectionStrategy.OnPush, providers: providers$4, standalone: false, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n #fieldContainer\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n\n <input\n #inp\n class=\"po-input\"\n [attr.name]=\"name\"\n [attr.data-focused-element]=\"!disabled\"\n [attr.data-inactive-component]=\"disabled || readonly\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-left-aa]=\"icon && size === 'small'\"\n [class.po-input-icon-right]=\"clean\"\n [class.po-input-icon-right-aa]=\"clean && size === 'small'\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n <div class=\"po-field-icon-container-right\">\n @if (clean && !disabled && !readonly) {\n <po-clean\n class=\"{{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"size\"\n (p-change-event)=\"clear($event)\"\n >\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n" }]
32286
+ args: [{ selector: 'po-email', changeDetection: ChangeDetectionStrategy.OnPush, providers: providers$4, standalone: false, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n #fieldContainer\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n\n <input\n #inp\n class=\"po-input\"\n [attr.name]=\"name\"\n [attr.data-focused-element]=\"!disabled\"\n [attr.data-inactive-component]=\"disabled || readonly\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-left-aa]=\"icon && size === 'small'\"\n [class.po-input-icon-right]=\"clean || loading\"\n [class.po-input-icon-right-aa]=\"(clean || loading) && size === 'small'\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n <div class=\"po-field-icon-container-right\">\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n }\n\n @if (!loading && clean && !disabled && !readonly) {\n <po-clean\n class=\"{{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"size\"\n (p-change-event)=\"clear($event)\"\n >\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n" }]
31952
32287
  }], ctorParameters: () => [] });
31953
32288
 
31954
32289
  /**
@@ -32000,7 +32335,7 @@ class PoInputComponent extends PoInputGeneric {
32000
32335
  useExisting: forwardRef(() => PoInputComponent),
32001
32336
  multi: true
32002
32337
  }
32003
- ], viewQueries: [{ propertyName: "inp", first: true, predicate: ["inp"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n #fieldContainer\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n\n <input\n #inp\n class=\"po-input\"\n [attr.name]=\"name\"\n [attr.data-focused-element]=\"!disabled\"\n [attr.data-inactive-component]=\"disabled || readonly\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-left-aa]=\"icon && size === 'small'\"\n [class.po-input-icon-right]=\"clean\"\n [class.po-input-icon-right-aa]=\"clean && size === 'small'\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n <div class=\"po-field-icon-container-right\">\n @if (clean && !disabled && !readonly) {\n <po-clean\n class=\"{{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"size\"\n (p-change-event)=\"clear($event)\"\n >\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n", dependencies: [{ kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size"] }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
32338
+ ], viewQueries: [{ propertyName: "inp", first: true, predicate: ["inp"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n #fieldContainer\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n\n <input\n #inp\n class=\"po-input\"\n [attr.name]=\"name\"\n [attr.data-focused-element]=\"!disabled\"\n [attr.data-inactive-component]=\"disabled || readonly\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-left-aa]=\"icon && size === 'small'\"\n [class.po-input-icon-right]=\"clean || loading\"\n [class.po-input-icon-right-aa]=\"(clean || loading) && size === 'small'\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n <div class=\"po-field-icon-container-right\">\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n }\n\n @if (!loading && clean && !disabled && !readonly) {\n <po-clean\n class=\"{{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"size\"\n (p-change-event)=\"clear($event)\"\n >\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n", dependencies: [{ kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size"] }, { kind: "component", type: PoLoadingIconComponent, selector: "po-loading-icon", inputs: ["p-neutral-color", "p-size"] }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
32004
32339
  }
32005
32340
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoInputComponent, decorators: [{
32006
32341
  type: Component,
@@ -32015,7 +32350,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
32015
32350
  useExisting: forwardRef(() => PoInputComponent),
32016
32351
  multi: true
32017
32352
  }
32018
- ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n #fieldContainer\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n\n <input\n #inp\n class=\"po-input\"\n [attr.name]=\"name\"\n [attr.data-focused-element]=\"!disabled\"\n [attr.data-inactive-component]=\"disabled || readonly\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-left-aa]=\"icon && size === 'small'\"\n [class.po-input-icon-right]=\"clean\"\n [class.po-input-icon-right-aa]=\"clean && size === 'small'\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n <div class=\"po-field-icon-container-right\">\n @if (clean && !disabled && !readonly) {\n <po-clean\n class=\"{{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"size\"\n (p-change-event)=\"clear($event)\"\n >\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n" }]
32353
+ ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n #fieldContainer\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n\n <input\n #inp\n class=\"po-input\"\n [attr.name]=\"name\"\n [attr.data-focused-element]=\"!disabled\"\n [attr.data-inactive-component]=\"disabled || readonly\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-left-aa]=\"icon && size === 'small'\"\n [class.po-input-icon-right]=\"clean || loading\"\n [class.po-input-icon-right-aa]=\"(clean || loading) && size === 'small'\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n <div class=\"po-field-icon-container-right\">\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n }\n\n @if (!loading && clean && !disabled && !readonly) {\n <po-clean\n class=\"{{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"size\"\n (p-change-event)=\"clear($event)\"\n >\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n" }]
32019
32354
  }], ctorParameters: () => [], propDecorators: { inp: [{
32020
32355
  type: ViewChild,
32021
32356
  args: ['inp', { static: true }]
@@ -32088,11 +32423,11 @@ class PoLoginComponent extends PoInputGeneric {
32088
32423
  return null;
32089
32424
  }
32090
32425
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoLoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32091
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: PoLoginComponent, isStandalone: false, selector: "po-login", inputs: { noAutocomplete: ["p-no-autocomplete", "noAutocomplete"] }, providers: providers$3, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n <div class=\"po-field-icon-container-left\">\n <po-icon\n p-icon=\"ICON_USER\"\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n ></po-icon>\n </div>\n\n <input\n #inp\n class=\"po-input {{ size === 'small' ? 'po-input-aa' : '' }} po-input-icon-left\"\n [class.po-input-icon-left-aa]=\"size === 'small'\"\n [attr.name]=\"name\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-right]=\"clean\"\n [class.po-input-icon-right-aa]=\"clean && size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n @if (clean && !disabled && !readonly) {\n <po-clean class=\"po-icon-input\" [p-element-ref]=\"inputEl\" [p-size]=\"size\" (p-change-event)=\"clear($event)\">\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n >\n </po-field-container-bottom>\n }\n</po-field-container>\n", dependencies: [{ kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size"] }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
32426
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: PoLoginComponent, isStandalone: false, selector: "po-login", inputs: { noAutocomplete: ["p-no-autocomplete", "noAutocomplete"] }, providers: providers$3, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n <div class=\"po-field-icon-container-left\">\n <po-icon\n p-icon=\"ICON_USER\"\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n ></po-icon>\n </div>\n\n <input\n #inp\n class=\"po-input {{ size === 'small' ? 'po-input-aa' : '' }} po-input-icon-left\"\n [class.po-input-icon-left-aa]=\"size === 'small'\"\n [attr.name]=\"name\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-right]=\"clean || loading\"\n [class.po-input-icon-right-aa]=\"(clean || loading) && size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n }\n\n @if (!loading && clean && !disabled && !readonly) {\n <po-clean class=\"po-icon-input\" [p-element-ref]=\"inputEl\" [p-size]=\"size\" (p-change-event)=\"clear($event)\">\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n >\n </po-field-container-bottom>\n }\n</po-field-container>\n", dependencies: [{ kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size"] }, { kind: "component", type: PoLoadingIconComponent, selector: "po-loading-icon", inputs: ["p-neutral-color", "p-size"] }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
32092
32427
  }
32093
32428
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoLoginComponent, decorators: [{
32094
32429
  type: Component,
32095
- args: [{ selector: 'po-login', changeDetection: ChangeDetectionStrategy.OnPush, providers: providers$3, standalone: false, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n <div class=\"po-field-icon-container-left\">\n <po-icon\n p-icon=\"ICON_USER\"\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n ></po-icon>\n </div>\n\n <input\n #inp\n class=\"po-input {{ size === 'small' ? 'po-input-aa' : '' }} po-input-icon-left\"\n [class.po-input-icon-left-aa]=\"size === 'small'\"\n [attr.name]=\"name\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-right]=\"clean\"\n [class.po-input-icon-right-aa]=\"clean && size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n @if (clean && !disabled && !readonly) {\n <po-clean class=\"po-icon-input\" [p-element-ref]=\"inputEl\" [p-size]=\"size\" (p-change-event)=\"clear($event)\">\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n >\n </po-field-container-bottom>\n }\n</po-field-container>\n" }]
32430
+ args: [{ selector: 'po-login', changeDetection: ChangeDetectionStrategy.OnPush, providers: providers$3, standalone: false, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n <div class=\"po-field-icon-container-left\">\n <po-icon\n p-icon=\"ICON_USER\"\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n ></po-icon>\n </div>\n\n <input\n #inp\n class=\"po-input {{ size === 'small' ? 'po-input-aa' : '' }} po-input-icon-left\"\n [class.po-input-icon-left-aa]=\"size === 'small'\"\n [attr.name]=\"name\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-right]=\"clean || loading\"\n [class.po-input-icon-right-aa]=\"(clean || loading) && size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n }\n\n @if (!loading && clean && !disabled && !readonly) {\n <po-clean class=\"po-icon-input\" [p-element-ref]=\"inputEl\" [p-size]=\"size\" (p-change-event)=\"clear($event)\">\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n >\n </po-field-container-bottom>\n }\n</po-field-container>\n" }]
32096
32431
  }], ctorParameters: () => [], propDecorators: { noAutocomplete: [{
32097
32432
  type: Input,
32098
32433
  args: ['p-no-autocomplete']
@@ -37285,7 +37620,7 @@ class PoNumberComponent extends PoNumberBaseComponent {
37285
37620
  useExisting: forwardRef(() => PoNumberComponent),
37286
37621
  multi: true
37287
37622
  }
37288
- ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon po-icon-input\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n <input\n #inp\n class=\"po-input\"\n type=\"number\"\n [attr.data-focused-element]=\"!disabled\"\n [attr.data-inactive-component]=\"disabled || readonly\"\n [attr.max]=\"max\"\n [attr.min]=\"min\"\n [attr.name]=\"name\"\n [attr.step]=\"step\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-left-aa]=\"icon && size === 'small'\"\n [class.po-input-icon-right]=\"clean\"\n [class.po-input-icon-right-aa]=\"clean && size === 'small'\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [tabindex]=\"disabled ? -1 : 0\"\n (blur)=\"onBlur($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n @if (clean && !disabled && !readonly) {\n <po-clean\n class=\"po-icon-input\"\n [p-default-value]=\"null\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"size\"\n (p-change-event)=\"clear($event)\"\n >\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-limit]=\"errorLimit\"\n [p-error-pattern]=\"getErrorPatternMessage()\"\n [p-size]=\"size\"\n >\n </po-field-container-bottom>\n }\n</po-field-container>\n", dependencies: [{ kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size"] }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
37623
+ ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon po-icon-input\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n <input\n #inp\n class=\"po-input\"\n type=\"number\"\n [attr.data-focused-element]=\"!disabled\"\n [attr.data-inactive-component]=\"disabled || readonly\"\n [attr.max]=\"max\"\n [attr.min]=\"min\"\n [attr.name]=\"name\"\n [attr.step]=\"step\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-left-aa]=\"icon && size === 'small'\"\n [class.po-input-icon-right]=\"clean || loading\"\n [class.po-input-icon-right-aa]=\"(clean || loading) && size === 'small'\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [tabindex]=\"disabled ? -1 : 0\"\n (blur)=\"onBlur($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n }\n\n @if (!loading && clean && !disabled && !readonly) {\n <po-clean\n class=\"po-icon-input\"\n [p-default-value]=\"null\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"size\"\n (p-change-event)=\"clear($event)\"\n >\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-limit]=\"errorLimit\"\n [p-error-pattern]=\"getErrorPatternMessage()\"\n [p-size]=\"size\"\n >\n </po-field-container-bottom>\n }\n</po-field-container>\n", dependencies: [{ kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size"] }, { kind: "component", type: PoLoadingIconComponent, selector: "po-loading-icon", inputs: ["p-neutral-color", "p-size"] }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
37289
37624
  }
37290
37625
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoNumberComponent, decorators: [{
37291
37626
  type: Component,
@@ -37300,7 +37635,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
37300
37635
  useExisting: forwardRef(() => PoNumberComponent),
37301
37636
  multi: true
37302
37637
  }
37303
- ], standalone: false, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon po-icon-input\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n <input\n #inp\n class=\"po-input\"\n type=\"number\"\n [attr.data-focused-element]=\"!disabled\"\n [attr.data-inactive-component]=\"disabled || readonly\"\n [attr.max]=\"max\"\n [attr.min]=\"min\"\n [attr.name]=\"name\"\n [attr.step]=\"step\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-left-aa]=\"icon && size === 'small'\"\n [class.po-input-icon-right]=\"clean\"\n [class.po-input-icon-right-aa]=\"clean && size === 'small'\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [tabindex]=\"disabled ? -1 : 0\"\n (blur)=\"onBlur($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n @if (clean && !disabled && !readonly) {\n <po-clean\n class=\"po-icon-input\"\n [p-default-value]=\"null\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"size\"\n (p-change-event)=\"clear($event)\"\n >\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-limit]=\"errorLimit\"\n [p-error-pattern]=\"getErrorPatternMessage()\"\n [p-size]=\"size\"\n >\n </po-field-container-bottom>\n }\n</po-field-container>\n" }]
37638
+ ], standalone: false, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon po-icon-input\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n <input\n #inp\n class=\"po-input\"\n type=\"number\"\n [attr.data-focused-element]=\"!disabled\"\n [attr.data-inactive-component]=\"disabled || readonly\"\n [attr.max]=\"max\"\n [attr.min]=\"min\"\n [attr.name]=\"name\"\n [attr.step]=\"step\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-left-aa]=\"icon && size === 'small'\"\n [class.po-input-icon-right]=\"clean || loading\"\n [class.po-input-icon-right-aa]=\"(clean || loading) && size === 'small'\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [tabindex]=\"disabled ? -1 : 0\"\n (blur)=\"onBlur($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n }\n\n @if (!loading && clean && !disabled && !readonly) {\n <po-clean\n class=\"po-icon-input\"\n [p-default-value]=\"null\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"size\"\n (p-change-event)=\"clear($event)\"\n >\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-limit]=\"errorLimit\"\n [p-error-pattern]=\"getErrorPatternMessage()\"\n [p-size]=\"size\"\n >\n </po-field-container-bottom>\n }\n</po-field-container>\n" }]
37304
37639
  }], ctorParameters: () => [], propDecorators: { step: [{
37305
37640
  type: Input,
37306
37641
  args: ['p-step']
@@ -37402,7 +37737,7 @@ class PoPasswordComponent extends PoInputGeneric {
37402
37737
  useExisting: forwardRef(() => PoPasswordComponent),
37403
37738
  multi: true
37404
37739
  }
37405
- ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n <div class=\"po-field-icon-container-left\">\n <po-icon\n p-icon=\"ICON_LOCK\"\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n >\n </po-icon>\n </div>\n\n <input\n #inp\n class=\"po-input po-input-icon-left\"\n [attr.name]=\"name\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-double-icon-right]=\"clean && inp.value && !hidePasswordPeek\"\n [class.po-input-double-icon-right-aa]=\"clean && inp.value && !hidePasswordPeek && size === 'small'\"\n [class.po-input-icon-right]=\"clean || !hidePasswordPeek\"\n [class.po-input-icon-right-aa]=\"(clean || !hidePasswordPeek) && size === 'small'\"\n [class.po-input-icon-left-aa]=\"size === 'small'\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"disabled ? 'password' : type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n @if (clean && !disabled && !readonly) {\n <po-clean class=\"po-icon-input\" [p-element-ref]=\"inputEl\" [p-size]=\"size\" (p-change-event)=\"clear($event)\">\n </po-clean>\n }\n\n @if (!hidePasswordPeek && !disabled) {\n <po-icon\n [p-icon]=\"visiblePassword ? 'ICON_EYE' : 'ICON_EYE_OFF'\"\n class=\"po-field-icon po-icon-input\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [ngClass]=\"!visiblePassword ? 'po-field-icon-disabled' : ''\"\n [class.po-field-icon-disabled-aa]=\"size === 'small'\"\n (click)=\"showPassword()\"\n >\n </po-icon>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n @if (!readonly) {\n <po-field-container-bottom\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-limit]=\"errorLimit\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-size]=\"size\"\n >\n </po-field-container-bottom>\n }\n</po-field-container>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size"] }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
37740
+ ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n <div class=\"po-field-icon-container-left\">\n <po-icon\n p-icon=\"ICON_LOCK\"\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n >\n </po-icon>\n </div>\n\n <input\n #inp\n class=\"po-input po-input-icon-left\"\n [attr.name]=\"name\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-double-icon-right]=\"!loading && clean && inp.value && !hidePasswordPeek\"\n [class.po-input-double-icon-right-aa]=\"!loading && clean && inp.value && !hidePasswordPeek && size === 'small'\"\n [class.po-input-icon-right]=\"clean || loading || !hidePasswordPeek\"\n [class.po-input-icon-right-aa]=\"(clean || loading || !hidePasswordPeek) && size === 'small'\"\n [class.po-input-icon-left-aa]=\"size === 'small'\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"disabled ? 'password' : type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"> </po-loading-icon>\n }\n\n @if (!loading && clean && !disabled && !readonly) {\n <po-clean class=\"po-icon-input\" [p-element-ref]=\"inputEl\" [p-size]=\"size\" (p-change-event)=\"clear($event)\">\n </po-clean>\n }\n\n @if (!loading && !hidePasswordPeek && !disabled) {\n <po-icon\n [p-icon]=\"visiblePassword ? 'ICON_EYE' : 'ICON_EYE_OFF'\"\n class=\"po-field-icon po-icon-input\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [ngClass]=\"!visiblePassword ? 'po-field-icon-disabled' : ''\"\n [class.po-field-icon-disabled-aa]=\"size === 'small'\"\n (click)=\"showPassword()\"\n >\n </po-icon>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n @if (!readonly) {\n <po-field-container-bottom\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-limit]=\"errorLimit\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-size]=\"size\"\n >\n </po-field-container-bottom>\n }\n</po-field-container>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size"] }, { kind: "component", type: PoLoadingIconComponent, selector: "po-loading-icon", inputs: ["p-neutral-color", "p-size"] }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
37406
37741
  }
37407
37742
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoPasswordComponent, decorators: [{
37408
37743
  type: Component,
@@ -37417,7 +37752,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
37417
37752
  useExisting: forwardRef(() => PoPasswordComponent),
37418
37753
  multi: true
37419
37754
  }
37420
- ], standalone: false, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n <div class=\"po-field-icon-container-left\">\n <po-icon\n p-icon=\"ICON_LOCK\"\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n >\n </po-icon>\n </div>\n\n <input\n #inp\n class=\"po-input po-input-icon-left\"\n [attr.name]=\"name\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-double-icon-right]=\"clean && inp.value && !hidePasswordPeek\"\n [class.po-input-double-icon-right-aa]=\"clean && inp.value && !hidePasswordPeek && size === 'small'\"\n [class.po-input-icon-right]=\"clean || !hidePasswordPeek\"\n [class.po-input-icon-right-aa]=\"(clean || !hidePasswordPeek) && size === 'small'\"\n [class.po-input-icon-left-aa]=\"size === 'small'\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"disabled ? 'password' : type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n @if (clean && !disabled && !readonly) {\n <po-clean class=\"po-icon-input\" [p-element-ref]=\"inputEl\" [p-size]=\"size\" (p-change-event)=\"clear($event)\">\n </po-clean>\n }\n\n @if (!hidePasswordPeek && !disabled) {\n <po-icon\n [p-icon]=\"visiblePassword ? 'ICON_EYE' : 'ICON_EYE_OFF'\"\n class=\"po-field-icon po-icon-input\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [ngClass]=\"!visiblePassword ? 'po-field-icon-disabled' : ''\"\n [class.po-field-icon-disabled-aa]=\"size === 'small'\"\n (click)=\"showPassword()\"\n >\n </po-icon>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n @if (!readonly) {\n <po-field-container-bottom\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-limit]=\"errorLimit\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-size]=\"size\"\n >\n </po-field-container-bottom>\n }\n</po-field-container>\n" }]
37755
+ ], standalone: false, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n <div class=\"po-field-icon-container-left\">\n <po-icon\n p-icon=\"ICON_LOCK\"\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n >\n </po-icon>\n </div>\n\n <input\n #inp\n class=\"po-input po-input-icon-left\"\n [attr.name]=\"name\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-double-icon-right]=\"!loading && clean && inp.value && !hidePasswordPeek\"\n [class.po-input-double-icon-right-aa]=\"!loading && clean && inp.value && !hidePasswordPeek && size === 'small'\"\n [class.po-input-icon-right]=\"clean || loading || !hidePasswordPeek\"\n [class.po-input-icon-right-aa]=\"(clean || loading || !hidePasswordPeek) && size === 'small'\"\n [class.po-input-icon-left-aa]=\"size === 'small'\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"disabled ? 'password' : type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"> </po-loading-icon>\n }\n\n @if (!loading && clean && !disabled && !readonly) {\n <po-clean class=\"po-icon-input\" [p-element-ref]=\"inputEl\" [p-size]=\"size\" (p-change-event)=\"clear($event)\">\n </po-clean>\n }\n\n @if (!loading && !hidePasswordPeek && !disabled) {\n <po-icon\n [p-icon]=\"visiblePassword ? 'ICON_EYE' : 'ICON_EYE_OFF'\"\n class=\"po-field-icon po-icon-input\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [ngClass]=\"!visiblePassword ? 'po-field-icon-disabled' : ''\"\n [class.po-field-icon-disabled-aa]=\"size === 'small'\"\n (click)=\"showPassword()\"\n >\n </po-icon>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n @if (!readonly) {\n <po-field-container-bottom\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-limit]=\"errorLimit\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-size]=\"size\"\n >\n </po-field-container-bottom>\n }\n</po-field-container>\n" }]
37421
37756
  }], ctorParameters: () => [], propDecorators: { hidePasswordPeek: [{
37422
37757
  type: Input,
37423
37758
  args: ['p-hide-password-peek']
@@ -40632,7 +40967,7 @@ class PoUrlComponent extends PoInputGeneric {
40632
40967
  useExisting: forwardRef(() => PoUrlComponent),
40633
40968
  multi: true
40634
40969
  }
40635
- ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n #fieldContainer\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n\n <input\n #inp\n class=\"po-input\"\n [attr.name]=\"name\"\n [attr.data-focused-element]=\"!disabled\"\n [attr.data-inactive-component]=\"disabled || readonly\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-left-aa]=\"icon && size === 'small'\"\n [class.po-input-icon-right]=\"clean\"\n [class.po-input-icon-right-aa]=\"clean && size === 'small'\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n <div class=\"po-field-icon-container-right\">\n @if (clean && !disabled && !readonly) {\n <po-clean\n class=\"{{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"size\"\n (p-change-event)=\"clear($event)\"\n >\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n", dependencies: [{ kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size"] }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
40970
+ ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n #fieldContainer\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n\n <input\n #inp\n class=\"po-input\"\n [attr.name]=\"name\"\n [attr.data-focused-element]=\"!disabled\"\n [attr.data-inactive-component]=\"disabled || readonly\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-left-aa]=\"icon && size === 'small'\"\n [class.po-input-icon-right]=\"clean || loading\"\n [class.po-input-icon-right-aa]=\"(clean || loading) && size === 'small'\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n <div class=\"po-field-icon-container-right\">\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n }\n\n @if (!loading && clean && !disabled && !readonly) {\n <po-clean\n class=\"{{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"size\"\n (p-change-event)=\"clear($event)\"\n >\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n", dependencies: [{ kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size"] }, { kind: "component", type: PoLoadingIconComponent, selector: "po-loading-icon", inputs: ["p-neutral-color", "p-size"] }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
40636
40971
  }
40637
40972
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PoUrlComponent, decorators: [{
40638
40973
  type: Component,
@@ -40647,7 +40982,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
40647
40982
  useExisting: forwardRef(() => PoUrlComponent),
40648
40983
  multi: true
40649
40984
  }
40650
- ], standalone: false, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n #fieldContainer\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n\n <input\n #inp\n class=\"po-input\"\n [attr.name]=\"name\"\n [attr.data-focused-element]=\"!disabled\"\n [attr.data-inactive-component]=\"disabled || readonly\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-left-aa]=\"icon && size === 'small'\"\n [class.po-input-icon-right]=\"clean\"\n [class.po-input-icon-right-aa]=\"clean && size === 'small'\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n <div class=\"po-field-icon-container-right\">\n @if (clean && !disabled && !readonly) {\n <po-clean\n class=\"{{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"size\"\n (p-change-event)=\"clear($event)\"\n >\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n" }]
40985
+ ], standalone: false, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n<po-field-container\n #fieldContainer\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content po-field-container-input\" [attr.p-size]=\"size\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n\n <input\n #inp\n class=\"po-input\"\n [attr.name]=\"name\"\n [attr.data-focused-element]=\"!disabled\"\n [attr.data-inactive-component]=\"disabled || readonly\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-left-aa]=\"icon && size === 'small'\"\n [class.po-input-icon-right]=\"clean || loading\"\n [class.po-input-icon-right-aa]=\"(clean || loading) && size === 'small'\"\n [class.po-input-aa]=\"size === 'small'\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n <div class=\"po-field-icon-container-right\">\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n }\n\n @if (!loading && clean && !disabled && !readonly) {\n <po-clean\n class=\"{{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"size\"\n (p-change-event)=\"clear($event)\"\n >\n </po-clean>\n }\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"disabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n" }]
40651
40986
  }], ctorParameters: () => [] });
40652
40987
 
40653
40988
  const uploadRestrictions = ['.apng', '.bmp', '.gif', '.ico', '.jpeg', '.jpg', '.png', '.svg'];