@po-ui/ng-components 5.10.0 → 5.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/bundles/po-ui-ng-components.umd.js +326 -137
  2. package/bundles/po-ui-ng-components.umd.js.map +1 -1
  3. package/esm2015/lib/components/po-calendar/po-calendar-base.component.js +14 -3
  4. package/esm2015/lib/components/po-calendar/po-calendar-wrapper/po-calendar-wrapper.component.js +18 -7
  5. package/esm2015/lib/components/po-calendar/po-calendar.component.js +10 -2
  6. package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields.component.js +3 -2
  7. package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-base.component.js +88 -10
  8. package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-filter.service.js +50 -0
  9. package/esm2015/lib/components/po-field/po-multiselect/po-multiselect.component.js +17 -5
  10. package/esm2015/lib/components/po-page/po-page-action.interface.js +1 -1
  11. package/esm2015/lib/components/po-table/interfaces/po-table-column.interface.js +1 -1
  12. package/esm2015/lib/components/po-table/po-table-base.component.js +2 -2
  13. package/esm2015/lib/components/po-table/po-table.component.js +2 -2
  14. package/esm2015/lib/interceptors/po-http-interceptor/po-http-interceptor-base.service.js +2 -1
  15. package/esm2015/lib/interceptors/po-http-interceptor/po-http-interceptor-detail/po-http-interceptor-detail.component.js +16 -6
  16. package/esm2015/lib/interceptors/po-http-interceptor/po-http-interceptor-detail/po-http-interceptor-detail.interface.js +1 -1
  17. package/esm2015/lib/interceptors/po-http-request/po-http-request-interceptor.service.js +3 -11
  18. package/esm2015/lib/services/po-date/po-date.service.js +1 -1
  19. package/esm2015/po-ui-ng-components.js +104 -103
  20. package/fesm2015/po-ui-ng-components.js +207 -36
  21. package/fesm2015/po-ui-ng-components.js.map +1 -1
  22. package/lib/components/po-calendar/po-calendar-base.component.d.ts +1 -0
  23. package/lib/components/po-calendar/po-calendar-wrapper/po-calendar-wrapper.component.d.ts +5 -3
  24. package/lib/components/po-calendar/po-calendar.component.d.ts +5 -2
  25. package/lib/components/po-field/po-multiselect/po-multiselect-base.component.d.ts +57 -4
  26. package/lib/components/po-field/po-multiselect/po-multiselect-filter.service.d.ts +18 -0
  27. package/lib/components/po-field/po-multiselect/po-multiselect.component.d.ts +6 -3
  28. package/lib/components/po-page/po-page-action.interface.d.ts +2 -0
  29. package/lib/components/po-table/interfaces/po-table-column.interface.d.ts +11 -0
  30. package/lib/interceptors/po-http-interceptor/po-http-interceptor-base.service.d.ts +1 -0
  31. package/lib/interceptors/po-http-interceptor/po-http-interceptor-detail/po-http-interceptor-detail.interface.d.ts +2 -0
  32. package/lib/interceptors/po-http-request/po-http-request-interceptor.service.d.ts +2 -2
  33. package/lib/services/po-date/po-date.service.d.ts +1 -1
  34. package/package.json +4 -4
  35. package/po-ui-ng-components-5.13.1.tgz +0 -0
  36. package/po-ui-ng-components.d.ts +103 -102
  37. package/po-ui-ng-components.metadata.json +1 -1
  38. package/schematics/ng-add/index.js +1 -1
  39. package/schematics/ng-update/v2/index.js +1 -1
  40. package/schematics/ng-update/v3/index.js +1 -1
  41. package/schematics/ng-update/v4/index.js +1 -1
  42. package/schematics/ng-update/v5/index.js +1 -1
  43. package/po-ui-ng-components-5.10.0.tgz +0 -0
@@ -3840,15 +3840,26 @@
3840
3840
  configurable: true
3841
3841
  });
3842
3842
  PoCalendarBaseComponent.prototype.setActivateDate = function (date) {
3843
+ var activateDate = date ? date : this.verifyActivateDate();
3843
3844
  if (this.isRange) {
3844
- var checkedStart = new Date(date || this.today);
3845
+ var checkedStart = typeof activateDate === 'string' ? this.poDate.convertIsoToDate(activateDate) : new Date(activateDate);
3845
3846
  var checkedEnd = new Date(new Date(checkedStart).setMonth(checkedStart.getMonth() + 1));
3846
3847
  this.activateDate = { start: checkedStart, end: checkedEnd };
3847
3848
  }
3848
3849
  else {
3849
- this.activateDate = date instanceof Date ? new Date(date) : new Date(date || this.today);
3850
+ this.activateDate = new Date(activateDate);
3850
3851
  }
3851
3852
  };
3853
+ PoCalendarBaseComponent.prototype.verifyActivateDate = function () {
3854
+ var today = this.today;
3855
+ if (this.minDate && this.minDate > this.today) {
3856
+ today = this.minDate;
3857
+ }
3858
+ else if (this.maxDate && this.maxDate < this.today) {
3859
+ today = this.maxDate;
3860
+ }
3861
+ return today;
3862
+ };
3852
3863
  return PoCalendarBaseComponent;
3853
3864
  }());
3854
3865
  PoCalendarBaseComponent.decorators = [
@@ -3919,6 +3930,11 @@
3919
3930
  PoCalendarComponent.prototype.ngOnInit = function () {
3920
3931
  this.setActivateDate();
3921
3932
  };
3933
+ PoCalendarComponent.prototype.ngOnChanges = function (changes) {
3934
+ if (changes.minDate || changes.maxDate) {
3935
+ this.setActivateDate();
3936
+ }
3937
+ };
3922
3938
  PoCalendarComponent.prototype.getActivateDate = function (partType) {
3923
3939
  if (this.isRange && this.activateDate) {
3924
3940
  return this.activateDate[partType];
@@ -3952,6 +3968,9 @@
3952
3968
  this.updateModel(newModel);
3953
3969
  this.change.emit(newModel);
3954
3970
  };
3971
+ PoCalendarComponent.prototype.onHoverDate = function (date) {
3972
+ this.hoverValue = date;
3973
+ };
3955
3974
  PoCalendarComponent.prototype.onHeaderChange = function (_b, partType) {
3956
3975
  var month = _b.month, year = _b.year;
3957
3976
  if (this.isRange) {
@@ -4048,7 +4067,7 @@
4048
4067
  PoCalendarComponent.decorators = [
4049
4068
  { type: i0.Component, args: [{
4050
4069
  selector: 'po-calendar',
4051
- template: "<ng-container *ngIf=\"isRange; then rangeTemplate; else calendarTemplate\"></ng-container>\n\n<ng-template #rangeTemplate>\n <div class=\"po-calendar-range\">\n <ng-container *ngTemplateOutlet=\"calendarWrapper; context: { partType: 'start' }\"></ng-container>\n <ng-container *ngIf=\"!isResponsive\">\n <ng-container *ngTemplateOutlet=\"calendarWrapper; context: { partType: 'end' }\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n<ng-template #calendarTemplate>\n <div class=\"po-calendar\">\n <ng-template [ngTemplateOutlet]=\"calendarWrapper\"></ng-template>\n </div>\n</ng-template>\n\n<ng-template #calendarWrapper let-partType=\"partType\">\n <po-calendar-wrapper\n [p-value]=\"getValue(partType)\"\n [p-activate-date]=\"getActivateDate(partType)\"\n [p-locale]=\"locale\"\n [p-min-date]=\"minDate\"\n [p-max-date]=\"maxDate\"\n [p-part-type]=\"partType\"\n [p-range]=\"isRange\"\n [p-responsive]=\"isResponsive\"\n [p-selected-value]=\"value\"\n (p-header-change)=\"onHeaderChange($event, partType)\"\n (p-select-date)=\"onSelectDate($event, partType)\"\n >\n </po-calendar-wrapper>\n</ng-template>\n",
4070
+ template: "<ng-container *ngIf=\"isRange; then rangeTemplate; else calendarTemplate\"></ng-container>\n\n<ng-template #rangeTemplate>\n <div class=\"po-calendar-range\">\n <ng-container *ngTemplateOutlet=\"calendarWrapper; context: { partType: 'start' }\"></ng-container>\n <ng-container *ngIf=\"!isResponsive\">\n <ng-container *ngTemplateOutlet=\"calendarWrapper; context: { partType: 'end' }\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n<ng-template #calendarTemplate>\n <div class=\"po-calendar\">\n <ng-template [ngTemplateOutlet]=\"calendarWrapper\"></ng-template>\n </div>\n</ng-template>\n\n<ng-template #calendarWrapper let-partType=\"partType\">\n <po-calendar-wrapper\n [p-value]=\"getValue(partType)\"\n [p-activate-date]=\"getActivateDate(partType)\"\n [p-locale]=\"locale\"\n [p-min-date]=\"minDate\"\n [p-max-date]=\"maxDate\"\n [p-part-type]=\"partType\"\n [p-range]=\"isRange\"\n [p-responsive]=\"isResponsive\"\n [p-selected-value]=\"value\"\n [p-hover-value]=\"hoverValue\"\n (p-header-change)=\"onHeaderChange($event, partType)\"\n (p-select-date)=\"onSelectDate($event, partType)\"\n (p-hover-date)=\"onHoverDate($event)\"\n >\n </po-calendar-wrapper>\n</ng-template>\n",
4052
4071
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
4053
4072
  providers: providers$6
4054
4073
  },] }
@@ -4308,17 +4327,17 @@
4308
4327
  ];
4309
4328
 
4310
4329
  var PoCalendarWrapperComponent = /** @class */ (function () {
4311
- function PoCalendarWrapperComponent(poCalendarService, poCalendarLangService, poDate, languageService) {
4330
+ function PoCalendarWrapperComponent(poCalendarService, poCalendarLangService, poDate) {
4312
4331
  this.poCalendarService = poCalendarService;
4313
4332
  this.poCalendarLangService = poCalendarLangService;
4314
4333
  this.poDate = poDate;
4315
- this.languageService = languageService;
4316
4334
  this.mode = 'day';
4317
4335
  this.responsive = false;
4318
4336
  this.range = false;
4319
4337
  this.activateDate = new Date();
4320
4338
  this.headerChange = new i0.EventEmitter();
4321
4339
  this.selectDate = new i0.EventEmitter();
4340
+ this.hoverDate = new rxjs.Subject().pipe(operators.debounceTime(100));
4322
4341
  this.displayMonths = Array();
4323
4342
  this.displayWeekDays = Array();
4324
4343
  this.today = new Date();
@@ -4419,6 +4438,12 @@
4419
4438
  }
4420
4439
  this.headerChange.emit({ month: this.displayMonthNumber, year: this.displayYear });
4421
4440
  };
4441
+ PoCalendarWrapperComponent.prototype.onMouseEnter = function (day) {
4442
+ this.hoverDate.next(day);
4443
+ };
4444
+ PoCalendarWrapperComponent.prototype.onMouseLeave = function () {
4445
+ this.hoverDate.next(null);
4446
+ };
4422
4447
  // Ao selecionar uma data
4423
4448
  PoCalendarWrapperComponent.prototype.onSelectDate = function (date) {
4424
4449
  this.selectDate.emit(date);
@@ -4500,6 +4525,9 @@
4500
4525
  else if (this.range && start && end && date > start && date < end) {
4501
4526
  return this.getColorForDateRange(date, local);
4502
4527
  }
4528
+ else if (this.range && start && !end && date > start && date < this.hoverValue) {
4529
+ return "po-calendar-box-" + local + "-hover";
4530
+ }
4503
4531
  else if (!this.range && this.equalsDate(date, this.value)) {
4504
4532
  return this.getColorForDate(date, local);
4505
4533
  }
@@ -4546,7 +4574,7 @@
4546
4574
  PoCalendarWrapperComponent.decorators = [
4547
4575
  { type: i0.Component, args: [{
4548
4576
  selector: 'po-calendar-wrapper',
4549
- template: "<div class=\"po-calendar-wrapper\">\n <ng-container *ngIf=\"isDayVisible\">\n <po-calendar-header\n [p-hide-previous]=\"isEndPart\"\n [p-hide-next]=\"isStartPart && !responsive\"\n (p-previous)=\"onPreviousMonth()\"\n (p-next)=\"onNextMonth()\"\n >\n <span class=\"po-clickable po-mr-1\" (click)=\"selectDisplayMode('month')\">{{ displayMonth }}</span>\n <span class=\"po-clickable\" (click)=\"selectDisplayMode('year')\">{{ displayYear }}</span>\n </po-calendar-header>\n\n <div class=\"po-calendar-content\">\n <div class=\"po-calendar-labels\">\n <div class=\"po-calendar-label\" *ngFor=\"let weekDay of displayWeekDays\">\n {{ weekDay }}\n </div>\n </div>\n\n <div class=\"po-calendar-content-list-day\">\n <div\n *ngFor=\"let day of displayDays\"\n class=\"po-calendar-day\"\n [ngClass]=\"getDayBackgroundColor(day)\"\n (click)=\"onSelectDate(day)\"\n attr-calendar\n >\n <span *ngIf=\"day !== 0\" [ngClass]=\"getDayForegroundColor(day)\">\n {{ day.getDate() }}\n </span>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isMonthVisible\">\n <po-calendar-header (p-previous)=\"updateYear(-1)\" (p-next)=\"updateYear(1)\">\n <span class=\"po-clickable\" (click)=\"selectDisplayMode('year')\">\n {{ displayYear }}\n </span>\n </po-calendar-header>\n\n <div class=\"po-calendar-content\">\n <div class=\"po-calendar-labels\">\n <div class=\"po-calendar-label\">\n {{ monthLabel }}\n </div>\n </div>\n <div class=\"po-calendar-content-list-month\">\n <div\n *ngFor=\"let month of displayMonths; let i = index\"\n class=\"po-calendar-month\"\n [ngClass]=\"getBackgroundColor(i, displayMonthNumber)\"\n (click)=\"onSelectMonth(displayYear, i)\"\n attr-calendar\n >\n <span [ngClass]=\"getForegroundColor(i, displayMonthNumber)\">\n {{ month }}\n </span>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isYearVisible\">\n <po-calendar-header (p-previous)=\"updateYear(-10)\" (p-next)=\"updateYear(10)\">\n {{ displayStartDecade }} - {{ displayFinalDecade }}\n </po-calendar-header>\n\n <div class=\"po-calendar-content\">\n <div class=\"po-calendar-labels\">\n <div class=\"po-calendar-label\">\n {{ yearLabel }}\n </div>\n </div>\n\n <div class=\"po-calendar-content-list-year\">\n <div\n *ngFor=\"let year of displayDecade; let i = index\"\n class=\"po-calendar-year\"\n [ngClass]=\"getBackgroundColor(year, currentYear)\"\n (click)=\"onSelectYear(year, displayMonthNumber)\"\n attr-calendar\n >\n <span [ngClass]=\"getForegroundColor(year, currentYear)\">\n {{ year }}\n </span>\n </div>\n </div>\n </div>\n </ng-container>\n</div>\n",
4577
+ template: "<div class=\"po-calendar-wrapper\">\n <ng-container *ngIf=\"isDayVisible\">\n <po-calendar-header\n [p-hide-previous]=\"isEndPart\"\n [p-hide-next]=\"isStartPart && !responsive\"\n (p-previous)=\"onPreviousMonth()\"\n (p-next)=\"onNextMonth()\"\n >\n <span class=\"po-clickable po-mr-1\" (click)=\"selectDisplayMode('month')\">{{ displayMonth }}</span>\n <span class=\"po-clickable\" (click)=\"selectDisplayMode('year')\">{{ displayYear }}</span>\n </po-calendar-header>\n\n <div class=\"po-calendar-content\">\n <div class=\"po-calendar-labels\">\n <div class=\"po-calendar-label\" *ngFor=\"let weekDay of displayWeekDays\">\n {{ weekDay }}\n </div>\n </div>\n\n <div class=\"po-calendar-content-list-day\">\n <div\n *ngFor=\"let day of displayDays\"\n class=\"po-calendar-day\"\n [ngClass]=\"getDayBackgroundColor(day)\"\n (click)=\"onSelectDate(day)\"\n (mouseenter)=\"onMouseEnter(day)\"\n (mouseleave)=\"onMouseLeave()\"\n attr-calendar\n >\n <span *ngIf=\"day !== 0\" [ngClass]=\"getDayForegroundColor(day)\">\n {{ day.getDate() }}\n </span>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isMonthVisible\">\n <po-calendar-header (p-previous)=\"updateYear(-1)\" (p-next)=\"updateYear(1)\">\n <span class=\"po-clickable\" (click)=\"selectDisplayMode('year')\">\n {{ displayYear }}\n </span>\n </po-calendar-header>\n\n <div class=\"po-calendar-content\">\n <div class=\"po-calendar-labels\">\n <div class=\"po-calendar-label\">\n {{ monthLabel }}\n </div>\n </div>\n <div class=\"po-calendar-content-list-month\">\n <div\n *ngFor=\"let month of displayMonths; let i = index\"\n class=\"po-calendar-month\"\n [ngClass]=\"getBackgroundColor(i, displayMonthNumber)\"\n (click)=\"onSelectMonth(displayYear, i)\"\n attr-calendar\n >\n <span [ngClass]=\"getForegroundColor(i, displayMonthNumber)\">\n {{ month }}\n </span>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isYearVisible\">\n <po-calendar-header (p-previous)=\"updateYear(-10)\" (p-next)=\"updateYear(10)\">\n {{ displayStartDecade }} - {{ displayFinalDecade }}\n </po-calendar-header>\n\n <div class=\"po-calendar-content\">\n <div class=\"po-calendar-labels\">\n <div class=\"po-calendar-label\">\n {{ yearLabel }}\n </div>\n </div>\n\n <div class=\"po-calendar-content-list-year\">\n <div\n *ngFor=\"let year of displayDecade; let i = index\"\n class=\"po-calendar-year\"\n [ngClass]=\"getBackgroundColor(year, currentYear)\"\n (click)=\"onSelectYear(year, displayMonthNumber)\"\n attr-calendar\n >\n <span [ngClass]=\"getForegroundColor(year, currentYear)\">\n {{ year }}\n </span>\n </div>\n </div>\n </div>\n </ng-container>\n</div>\n",
4550
4578
  providers: [PoCalendarService],
4551
4579
  changeDetection: i0.ChangeDetectionStrategy.OnPush
4552
4580
  },] }
@@ -4554,8 +4582,7 @@
4554
4582
  PoCalendarWrapperComponent.ctorParameters = function () { return [
4555
4583
  { type: PoCalendarService },
4556
4584
  { type: PoCalendarLangService },
4557
- { type: PoDateService },
4558
- { type: PoLanguageService }
4585
+ { type: PoDateService }
4559
4586
  ]; };
4560
4587
  PoCalendarWrapperComponent.propDecorators = {
4561
4588
  value: [{ type: i0.Input, args: ['p-value',] }],
@@ -4567,8 +4594,10 @@
4567
4594
  selectedValue: [{ type: i0.Input, args: ['p-selected-value',] }],
4568
4595
  minDate: [{ type: i0.Input, args: ['p-min-date',] }],
4569
4596
  maxDate: [{ type: i0.Input, args: ['p-max-date',] }],
4597
+ hoverValue: [{ type: i0.Input, args: ['p-hover-value',] }],
4570
4598
  headerChange: [{ type: i0.Output, args: ['p-header-change',] }],
4571
4599
  selectDate: [{ type: i0.Output, args: ['p-select-date',] }],
4600
+ hoverDate: [{ type: i0.Output, args: ['p-hover-date',] }],
4572
4601
  locale: [{ type: i0.Input, args: ['p-locale',] }]
4573
4602
  };
4574
4603
 
@@ -13722,7 +13751,7 @@
13722
13751
  row.$showAction = !toggleShowAction;
13723
13752
  };
13724
13753
  PoTableBaseComponent.prototype.sortColumn = function (column) {
13725
- if (!this.sort || column.type === 'detail') {
13754
+ if (!this.sort || column.type === 'detail' || column.sortable === false) {
13726
13755
  return;
13727
13756
  }
13728
13757
  this.sortedColumn.ascending = this.sortedColumn.property === column ? !this.sortedColumn.ascending : true;
@@ -14821,7 +14850,7 @@
14821
14850
  PoTableComponent.decorators = [
14822
14851
  { type: i0.Component, args: [{
14823
14852
  selector: 'po-table',
14824
- template: "<po-container *ngIf=\"container; else tableContainerTemplate\" p-no-padding [p-no-shadow]=\"container === 'border'\">\n <ng-container *ngTemplateOutlet=\"tableContainerTemplate\"></ng-container>\n</po-container>\n\n<ng-template #tableContainerTemplate>\n <div [class.po-table-container-relative]=\"loading\">\n <div *ngIf=\"loading\" class=\"po-table-overlay\">\n <po-loading class=\"po-table-overlay-content\" [p-text]=\"literals.loadingData\"></po-loading>\n </div>\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 <div *ngIf=\"height\" class=\"po-table-container\" [style.height.px]=\"heightTableContainer\">\n <div class=\"po-table-header-fixed po-table-header\"></div>\n <div #poTableTbody class=\"po-table-container-fixed-inner\">\n <ng-container *ngTemplateOutlet=\"tableTemplate\"></ng-container>\n </div>\n </div>\n\n <div *ngIf=\"!height\">\n <ng-container *ngTemplateOutlet=\"tableTemplate\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"po-table-footer\" *ngIf=\"hasFooter\">\n <ng-container *ngFor=\"let column of subtitleColumns; trackBy: trackBy\">\n <po-table-subtitle-footer [p-literals]=\"literals\" [p-subtitles]=\"column.subtitles\"> </po-table-subtitle-footer>\n </ng-container>\n </div>\n</ng-template>\n\n<div\n *ngIf=\"!infiniteScroll\"\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-click)=\"onShowMore()\"\n >\n </po-button>\n</div>\n\n<ng-template #tableTemplate>\n <table class=\"po-table\" [class.po-table-striped]=\"striped\" [class.po-table-layout-fixed]=\"hideTextOverflow\">\n <thead>\n <tr [class.po-table-header]=\"!height\">\n <th *ngIf=\"hasSelectableColumn\" class=\"po-table-column-selectable\">\n <div [class.po-table-header-fixed-inner]=\"height\">\n <input\n *ngIf=\"!hideSelectAll\"\n type=\"checkbox\"\n class=\"po-table-checkbox\"\n [class.po-table-checkbox-checked]=\"selectAll\"\n [class.po-table-checkbox-indeterminate]=\"selectAll === null\"\n />\n <label *ngIf=\"!hideSelectAll\" class=\"po-table-checkbox-label po-clickable\" (click)=\"selectAllRows()\">\n </label>\n </div>\n </th>\n\n <th\n *ngIf=\"(hasMasterDetailColumn || hasRowTemplate) && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-header-column po-table-header-master-detail\"\n ></th>\n\n <th *ngIf=\"!hasMainColumns\" #noColumnsHeader class=\"po-table-header-column po-text-center\">\n <ng-container *ngIf=\"height; then noColumnsWithHeight; else noColumnsWithoutHeight\"> </ng-container>\n </th>\n\n <th\n *ngFor=\"let column of mainColumns; let i = index; trackBy: trackBy\"\n #headersTable\n class=\"po-table-header-ellipsis\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-clickable]=\"sort || hasService\"\n [class.po-table-header-subtitle]=\"column.type === 'subtitle'\"\n (click)=\"sortColumn(column)\"\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 <th\n *ngIf=\"hasRowTemplateWithArrowDirectionRight && (hasVisibleActions || hideColumnsManager)\"\n class=\"po-table-header-column po-table-header-master-detail\"\n ></th>\n\n <th\n *ngIf=\"hasVisibleActions && hideColumnsManager\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n [class.po-table-header-actions]=\"!isSingleAction\"\n ></th>\n\n <th\n #columnManager\n *ngIf=\"hasValidColumns && !hideColumnsManager\"\n [class.po-table-header-column-manager]=\"!isSingleAction\"\n [class.po-table-header-column-manager-border]=\"!height && container\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n >\n <div\n [class.po-table-header-column-manager-border]=\"height && container\"\n [class.po-table-header-column-manager-fixed-inner]=\"height\"\n [style.width.px]=\"height && visibleActions.length ? columnManager.offsetWidth : undefined\"\n >\n <button\n #columnManagerTarget\n class=\"po-table-header-column-manager-button po-icon po-icon-settings po-clickable\"\n p-tooltip-position=\"left\"\n [p-tooltip]=\"literals.columnsManager\"\n (click)=\"onOpenColumnManager()\"\n ></button>\n </div>\n </th>\n </tr>\n </thead>\n\n <tbody class=\"po-table-group-row\" *ngIf=\"!hasItems || !hasMainColumns\">\n <tr class=\"po-table-row\">\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 <ng-container *ngIf=\"hasMainColumns\">\n <tbody class=\"po-table-group-row\" *ngFor=\"let row of items; let rowIndex = index; trackBy: trackBy\">\n <tr class=\"po-table-row\" [class.po-table-row-active]=\"row.$selected || (row.$selected === null && selectable)\">\n <td *ngIf=\"selectable\" class=\"po-table-column po-table-column-selectable\">\n <ng-container *ngTemplateOutlet=\"singleSelect ? inputRadio : inputCheckbox; context: { $implicit: row }\">\n </ng-container>\n </td>\n\n <!-- Valida se a origem do detail \u00E9 pelo input do po-table -->\n <td\n *ngIf=\"columnMasterDetail && !hideDetail && !hasRowTemplate\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <!-- Valida se a origem do detail \u00E9 pela diretiva -->\n <td\n *ngIf=\"hasRowTemplate && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <td\n *ngFor=\"let column of mainColumns; let columnIndex = index; trackBy: trackBy\"\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 (click)=\"selectable ? selectRow(row) : 'javascript:;'\"\n >\n <div\n class=\"po-table-column-cell notranslate\"\n [class.po-table-body-ellipsis]=\"hideTextOverflow\"\n [ngSwitch]=\"column.type\"\n [p-tooltip]=\"tooltipText\"\n (mouseenter)=\"tooltipMouseEnter($event, column, row)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n <span *ngSwitchCase=\"'columnTemplate'\">\n <ng-container *ngTemplateOutlet=\"getTemplate(column); context: { $implicit: row[column.property] }\">\n </ng-container>\n </span>\n\n <span *ngSwitchCase=\"'cellTemplate'\">\n <ng-container *ngTemplateOutlet=\"tableCellTemplate?.templateRef; context: { row: row, column: column }\">\n </ng-container>\n </span>\n\n <span *ngSwitchCase=\"'boolean'\">\n {{ getBooleanLabel(row[column.property], column) }}\n </span>\n\n <span *ngSwitchCase=\"'currency'\">\n {{ row[column.property] | currency: column.format:'symbol':'1.2-2' }}\n </span>\n\n <span *ngSwitchCase=\"'date'\">\n {{ row[column.property] | date: column.format || 'dd/MM/yyyy' }}\n </span>\n\n <span *ngSwitchCase=\"'time'\">\n {{ row[column.property] | po_time: column.format || 'HH:mm:ss.ffffff' }}\n </span>\n\n <span *ngSwitchCase=\"'dateTime'\">\n {{ row[column.property] | date: column.format || 'dd/MM/yyyy HH:mm:ss' }}\n </span>\n\n <span *ngSwitchCase=\"'number'\">\n {{ formatNumber(row[column.property], column.format) }}\n </span>\n\n <po-table-column-link\n *ngSwitchCase=\"'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]=\"row[column.property]\"\n (click)=\"onClickLink($event, row, column)\"\n >\n </po-table-column-link>\n\n <po-table-column-icon\n *ngSwitchCase=\"'icon'\"\n [p-column]=\"column\"\n [p-icons]=\"getColumnIcons(row, column)\"\n [p-row]=\"row\"\n >\n </po-table-column-icon>\n\n <span *ngSwitchCase=\"'subtitle'\">\n <po-table-subtitle-circle [p-subtitle]=\"getSubtitleColumn(row, column)\"></po-table-subtitle-circle>\n </span>\n <span *ngSwitchCase=\"'label'\">\n <po-table-column-label [p-value]=\"getColumnLabel(row, column)\"></po-table-column-label>\n </span>\n <span *ngSwitchDefault>{{ row[column.property] }}</span>\n </div>\n </td>\n\n <td\n *ngIf=\"hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <td *ngIf=\"isSingleAction\" class=\"po-table-column po-table-column-single-action\">\n <div\n *ngIf=\"firstAction.visible !== false\"\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 <po-icon\n *ngIf=\"firstAction.icon\"\n class=\"po-table-single-action-content\"\n [p-icon]=\"firstAction.icon\"\n ></po-icon>\n {{ firstAction.label }}\n </div>\n </td>\n\n <td *ngIf=\"visibleActions.length > 1\" class=\"po-table-column-actions\">\n <span #popupTarget class=\"po-icon po-icon-more po-clickable\" (click)=\"togglePopup(row, popupTarget)\"></span>\n </td>\n <!-- Column Manager -->\n <td\n *ngIf=\"!hasVisibleActions && !hideColumnsManager && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column\"\n ></td>\n </tr>\n\n <tr *ngIf=\"hasMainColumns && hasRowTemplate && row.$showDetail && isShowRowTemplate(row, rowIndex)\">\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 <tr *ngIf=\"hasMainColumns && isShowMasterDetail(row)\">\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-select-row)=\"selectDetailRow($event)\"\n >\n </po-table-detail>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</ng-template>\n\n<po-popup #popup [p-actions]=\"actions\" [p-target]=\"popupTarget\"> </po-popup>\n\n<ng-template #poTableColumnDetail let-row=\"row\" let-rowIndex=\"rowIndex\">\n <span\n *ngIf=\"(containsMasterDetail(row) && !hasRowTemplate) || (isShowRowTemplate(row, rowIndex) && hasRowTemplate)\"\n class=\"po-icon po-clickable\"\n [class.po-icon-arrow-up]=\"row.$showDetail\"\n [class.po-icon-arrow-down]=\"!row.$showDetail\"\n >\n </span>\n</ng-template>\n\n<ng-template #inputRadio let-row>\n <input type=\"radio\" class=\"po-table-radio\" [class.po-table-radio-checked]=\"row.$selected\" />\n <label class=\"po-table-radio-label po-clickable\" (click)=\"selectable ? selectRow(row) : 'javascript:;'\"></label>\n</ng-template>\n\n<ng-template #inputCheckbox let-row>\n <input type=\"checkbox\" class=\"po-table-checkbox\" [class.po-table-checkbox-checked]=\"row.$selected\" />\n <label class=\"po-table-checkbox-label po-clickable\" (click)=\"selectable ? selectRow(row) : 'javascript:;'\"></label>\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 (mouseenter)=\"tooltipMouseEnter($event)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n {{ column.label || (column.property | titlecase) }}\n </span>\n <span\n *ngIf=\"sort\"\n [class.po-table-header-icon-unselected]=\"sortedColumn?.property !== column\"\n [class.po-table-header-icon-descending]=\"sortedColumn?.property === column && sortedColumn.ascending\"\n [class.po-table-header-icon-ascending]=\"sortedColumn?.property === column && !sortedColumn.ascending\"\n >\n </span>\n</ng-template>\n\n<ng-template #noColumnsWithHeight>\n <div class=\"po-table-header-fixed-inner\" [style.width.px]=\"noColumnsHeader?.nativeElement.offsetWidth\">\n {{ hasValidColumns ? literals.noVisibleColumn : literals.noColumns }}\n </div>\n</ng-template>\n\n<ng-template #noColumnsWithoutHeight>\n {{ hasValidColumns ? literals.noVisibleColumn : literals.noColumns }}\n</ng-template>\n\n<po-table-column-manager\n *ngIf=\"!hideColumnsManager\"\n [p-columns]=\"columns\"\n [p-max-columns]=\"maxColumns\"\n [p-target]=\"columnManagerTarget\"\n [p-last-visible-columns-selected]=\"lastVisibleColumnsSelected\"\n (p-visible-columns-change)=\"onVisibleColumnsChange($event)\"\n (p-change-visible-columns)=\"onChangeVisibleColumns($event)\"\n>\n</po-table-column-manager>\n",
14853
+ template: "<po-container *ngIf=\"container; else tableContainerTemplate\" p-no-padding [p-no-shadow]=\"container === 'border'\">\n <ng-container *ngTemplateOutlet=\"tableContainerTemplate\"></ng-container>\n</po-container>\n\n<ng-template #tableContainerTemplate>\n <div [class.po-table-container-relative]=\"loading\">\n <div *ngIf=\"loading\" class=\"po-table-overlay\">\n <po-loading class=\"po-table-overlay-content\" [p-text]=\"literals.loadingData\"></po-loading>\n </div>\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 <div *ngIf=\"height\" class=\"po-table-container\" [style.height.px]=\"heightTableContainer\">\n <div class=\"po-table-header-fixed po-table-header\"></div>\n <div #poTableTbody class=\"po-table-container-fixed-inner\">\n <ng-container *ngTemplateOutlet=\"tableTemplate\"></ng-container>\n </div>\n </div>\n\n <div *ngIf=\"!height\">\n <ng-container *ngTemplateOutlet=\"tableTemplate\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"po-table-footer\" *ngIf=\"hasFooter\">\n <ng-container *ngFor=\"let column of subtitleColumns; trackBy: trackBy\">\n <po-table-subtitle-footer [p-literals]=\"literals\" [p-subtitles]=\"column.subtitles\"> </po-table-subtitle-footer>\n </ng-container>\n </div>\n</ng-template>\n\n<div\n *ngIf=\"!infiniteScroll\"\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-click)=\"onShowMore()\"\n >\n </po-button>\n</div>\n\n<ng-template #tableTemplate>\n <table class=\"po-table\" [class.po-table-striped]=\"striped\" [class.po-table-layout-fixed]=\"hideTextOverflow\">\n <thead>\n <tr [class.po-table-header]=\"!height\">\n <th *ngIf=\"hasSelectableColumn\" class=\"po-table-column-selectable\">\n <div [class.po-table-header-fixed-inner]=\"height\">\n <input\n *ngIf=\"!hideSelectAll\"\n type=\"checkbox\"\n class=\"po-table-checkbox\"\n [class.po-table-checkbox-checked]=\"selectAll\"\n [class.po-table-checkbox-indeterminate]=\"selectAll === null\"\n />\n <label *ngIf=\"!hideSelectAll\" class=\"po-table-checkbox-label po-clickable\" (click)=\"selectAllRows()\">\n </label>\n </div>\n </th>\n\n <th\n *ngIf=\"(hasMasterDetailColumn || hasRowTemplate) && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-header-column po-table-header-master-detail\"\n ></th>\n\n <th *ngIf=\"!hasMainColumns\" #noColumnsHeader class=\"po-table-header-column po-text-center\">\n <ng-container *ngIf=\"height; then noColumnsWithHeight; else noColumnsWithoutHeight\"> </ng-container>\n </th>\n\n <th\n *ngFor=\"let column of mainColumns; let i = index; trackBy: trackBy\"\n #headersTable\n class=\"po-table-header-ellipsis\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-clickable]=\"(sort && column.sortable !== false) || hasService\"\n [class.po-table-header-subtitle]=\"column.type === 'subtitle'\"\n (click)=\"sortColumn(column)\"\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 <th\n *ngIf=\"hasRowTemplateWithArrowDirectionRight && (hasVisibleActions || hideColumnsManager)\"\n class=\"po-table-header-column po-table-header-master-detail\"\n ></th>\n\n <th\n *ngIf=\"hasVisibleActions && hideColumnsManager\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n [class.po-table-header-actions]=\"!isSingleAction\"\n ></th>\n\n <th\n #columnManager\n *ngIf=\"hasValidColumns && !hideColumnsManager\"\n [class.po-table-header-column-manager]=\"!isSingleAction\"\n [class.po-table-header-column-manager-border]=\"!height && container\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n >\n <div\n [class.po-table-header-column-manager-border]=\"height && container\"\n [class.po-table-header-column-manager-fixed-inner]=\"height\"\n [style.width.px]=\"height && visibleActions.length ? columnManager.offsetWidth : undefined\"\n >\n <button\n #columnManagerTarget\n class=\"po-table-header-column-manager-button po-icon po-icon-settings po-clickable\"\n p-tooltip-position=\"left\"\n [p-tooltip]=\"literals.columnsManager\"\n (click)=\"onOpenColumnManager()\"\n ></button>\n </div>\n </th>\n </tr>\n </thead>\n\n <tbody class=\"po-table-group-row\" *ngIf=\"!hasItems || !hasMainColumns\">\n <tr class=\"po-table-row\">\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 <ng-container *ngIf=\"hasMainColumns\">\n <tbody class=\"po-table-group-row\" *ngFor=\"let row of items; let rowIndex = index; trackBy: trackBy\">\n <tr class=\"po-table-row\" [class.po-table-row-active]=\"row.$selected || (row.$selected === null && selectable)\">\n <td *ngIf=\"selectable\" class=\"po-table-column po-table-column-selectable\">\n <ng-container *ngTemplateOutlet=\"singleSelect ? inputRadio : inputCheckbox; context: { $implicit: row }\">\n </ng-container>\n </td>\n\n <!-- Valida se a origem do detail \u00E9 pelo input do po-table -->\n <td\n *ngIf=\"columnMasterDetail && !hideDetail && !hasRowTemplate\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <!-- Valida se a origem do detail \u00E9 pela diretiva -->\n <td\n *ngIf=\"hasRowTemplate && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <td\n *ngFor=\"let column of mainColumns; let columnIndex = index; trackBy: trackBy\"\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 (click)=\"selectable ? selectRow(row) : 'javascript:;'\"\n >\n <div\n class=\"po-table-column-cell notranslate\"\n [class.po-table-body-ellipsis]=\"hideTextOverflow\"\n [ngSwitch]=\"column.type\"\n [p-tooltip]=\"tooltipText\"\n (mouseenter)=\"tooltipMouseEnter($event, column, row)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n <span *ngSwitchCase=\"'columnTemplate'\">\n <ng-container *ngTemplateOutlet=\"getTemplate(column); context: { $implicit: row[column.property] }\">\n </ng-container>\n </span>\n\n <span *ngSwitchCase=\"'cellTemplate'\">\n <ng-container *ngTemplateOutlet=\"tableCellTemplate?.templateRef; context: { row: row, column: column }\">\n </ng-container>\n </span>\n\n <span *ngSwitchCase=\"'boolean'\">\n {{ getBooleanLabel(row[column.property], column) }}\n </span>\n\n <span *ngSwitchCase=\"'currency'\">\n {{ row[column.property] | currency: column.format:'symbol':'1.2-2' }}\n </span>\n\n <span *ngSwitchCase=\"'date'\">\n {{ row[column.property] | date: column.format || 'dd/MM/yyyy' }}\n </span>\n\n <span *ngSwitchCase=\"'time'\">\n {{ row[column.property] | po_time: column.format || 'HH:mm:ss.ffffff' }}\n </span>\n\n <span *ngSwitchCase=\"'dateTime'\">\n {{ row[column.property] | date: column.format || 'dd/MM/yyyy HH:mm:ss' }}\n </span>\n\n <span *ngSwitchCase=\"'number'\">\n {{ formatNumber(row[column.property], column.format) }}\n </span>\n\n <po-table-column-link\n *ngSwitchCase=\"'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]=\"row[column.property]\"\n (click)=\"onClickLink($event, row, column)\"\n >\n </po-table-column-link>\n\n <po-table-column-icon\n *ngSwitchCase=\"'icon'\"\n [p-column]=\"column\"\n [p-icons]=\"getColumnIcons(row, column)\"\n [p-row]=\"row\"\n >\n </po-table-column-icon>\n\n <span *ngSwitchCase=\"'subtitle'\">\n <po-table-subtitle-circle [p-subtitle]=\"getSubtitleColumn(row, column)\"></po-table-subtitle-circle>\n </span>\n <span *ngSwitchCase=\"'label'\">\n <po-table-column-label [p-value]=\"getColumnLabel(row, column)\"></po-table-column-label>\n </span>\n <span *ngSwitchDefault>{{ row[column.property] }}</span>\n </div>\n </td>\n\n <td\n *ngIf=\"hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <td *ngIf=\"isSingleAction\" class=\"po-table-column po-table-column-single-action\">\n <div\n *ngIf=\"firstAction.visible !== false\"\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 <po-icon\n *ngIf=\"firstAction.icon\"\n class=\"po-table-single-action-content\"\n [p-icon]=\"firstAction.icon\"\n ></po-icon>\n {{ firstAction.label }}\n </div>\n </td>\n\n <td *ngIf=\"visibleActions.length > 1\" class=\"po-table-column-actions\">\n <span #popupTarget class=\"po-icon po-icon-more po-clickable\" (click)=\"togglePopup(row, popupTarget)\"></span>\n </td>\n <!-- Column Manager -->\n <td\n *ngIf=\"!hasVisibleActions && !hideColumnsManager && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column\"\n ></td>\n </tr>\n\n <tr *ngIf=\"hasMainColumns && hasRowTemplate && row.$showDetail && isShowRowTemplate(row, rowIndex)\">\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 <tr *ngIf=\"hasMainColumns && isShowMasterDetail(row)\">\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-select-row)=\"selectDetailRow($event)\"\n >\n </po-table-detail>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</ng-template>\n\n<po-popup #popup [p-actions]=\"actions\" [p-target]=\"popupTarget\"> </po-popup>\n\n<ng-template #poTableColumnDetail let-row=\"row\" let-rowIndex=\"rowIndex\">\n <span\n *ngIf=\"(containsMasterDetail(row) && !hasRowTemplate) || (isShowRowTemplate(row, rowIndex) && hasRowTemplate)\"\n class=\"po-icon po-clickable\"\n [class.po-icon-arrow-up]=\"row.$showDetail\"\n [class.po-icon-arrow-down]=\"!row.$showDetail\"\n >\n </span>\n</ng-template>\n\n<ng-template #inputRadio let-row>\n <input type=\"radio\" class=\"po-table-radio\" [class.po-table-radio-checked]=\"row.$selected\" />\n <label class=\"po-table-radio-label po-clickable\" (click)=\"selectable ? selectRow(row) : 'javascript:;'\"></label>\n</ng-template>\n\n<ng-template #inputCheckbox let-row>\n <input type=\"checkbox\" class=\"po-table-checkbox\" [class.po-table-checkbox-checked]=\"row.$selected\" />\n <label class=\"po-table-checkbox-label po-clickable\" (click)=\"selectable ? selectRow(row) : 'javascript:;'\"></label>\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 (mouseenter)=\"tooltipMouseEnter($event)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n {{ column.label || (column.property | titlecase) }}\n </span>\n <span\n *ngIf=\"sort && column.sortable !== false\"\n [class.po-table-header-icon-unselected]=\"sortedColumn?.property !== column\"\n [class.po-table-header-icon-descending]=\"sortedColumn?.property === column && sortedColumn.ascending\"\n [class.po-table-header-icon-ascending]=\"sortedColumn?.property === column && !sortedColumn.ascending\"\n >\n </span>\n</ng-template>\n\n<ng-template #noColumnsWithHeight>\n <div class=\"po-table-header-fixed-inner\" [style.width.px]=\"noColumnsHeader?.nativeElement.offsetWidth\">\n {{ hasValidColumns ? literals.noVisibleColumn : literals.noColumns }}\n </div>\n</ng-template>\n\n<ng-template #noColumnsWithoutHeight>\n {{ hasValidColumns ? literals.noVisibleColumn : literals.noColumns }}\n</ng-template>\n\n<po-table-column-manager\n *ngIf=\"!hideColumnsManager\"\n [p-columns]=\"columns\"\n [p-max-columns]=\"maxColumns\"\n [p-target]=\"columnManagerTarget\"\n [p-last-visible-columns-selected]=\"lastVisibleColumnsSelected\"\n (p-visible-columns-change)=\"onVisibleColumnsChange($event)\"\n (p-change-visible-columns)=\"onChangeVisibleColumns($event)\"\n>\n</po-table-column-manager>\n",
14825
14854
  providers: [PoDateService]
14826
14855
  },] }
14827
14856
  ];
@@ -20852,6 +20881,8 @@
20852
20881
  })(exports.PoMultiselectFilterMode || (exports.PoMultiselectFilterMode = {}));
20853
20882
 
20854
20883
  var PO_MULTISELECT_DEBOUNCE_TIME_DEFAULT = 400;
20884
+ var PO_MULTISELECT_FIELD_LABEL_DEFAULT = 'label';
20885
+ var PO_MULTISELECT_FIELD_VALUE_DEFAULT = 'value';
20855
20886
  var poMultiselectLiteralsDefault = {
20856
20887
  en: {
20857
20888
  noData: 'No data found',
@@ -20933,6 +20964,8 @@
20933
20964
  this._required = false;
20934
20965
  this._sort = false;
20935
20966
  this._autoHeight = false;
20967
+ this._fieldLabel = PO_MULTISELECT_FIELD_LABEL_DEFAULT;
20968
+ this._fieldValue = PO_MULTISELECT_FIELD_VALUE_DEFAULT;
20936
20969
  this.language = languageService.getShortLanguage();
20937
20970
  }
20938
20971
  Object.defineProperty(PoMultiselectBaseComponent.prototype, "filterService", {
@@ -20943,9 +20976,28 @@
20943
20976
  * @optional
20944
20977
  *
20945
20978
  * @description
20946
- * Nesta propriedade deve ser informado um serviço implementando a interface PoMultiselectFilter.
20979
+ * Nesta propriedade pode ser informada a URL do serviço em que será realizado o filtro para carregamento da lista de itens no componente.
20980
+ *
20981
+ *Também existe a possibilidade de informar um serviço implementando a interface `PoMultiselectFilter`.
20982
+ *
20983
+ *Caso utilizado uma URL, o serviço deve ser retornado no padrão [API PO UI](https://po-ui.io/guides/api) e utilizar as propriedades `p-field-label` e `p-field-value` para a construção da lista de itens.
20984
+ *
20985
+ *Quando utilizada uma URL de serviço, então será concatenada nesta URL o valor que deseja-se filtrar da seguinte forma:
20986
+ *
20987
+ *```
20988
+ * // caso filtrar por "Peter"
20989
+ * https://localhost:8080/api/heroes?filter=Peter
20990
+ *```
20991
+ *
20992
+ *E caso iniciar o campo com valor, os itens serão buscados da seguinte forma:
20993
+ *
20994
+ *```
20995
+ * // caso o valor do campo for [1234, 5678];
20996
+ * https://localhost:8080/api/heroes?value=1234,5678
20997
+ *
20998
+ * //O *value* é referente ao `fieldValue`.
20999
+ *```
20947
21000
  *
20948
- * > Definirá por padrão a propriedade `p-auto-height` como `true`, mas a mesma pode ser redefinida caso necessário.
20949
21001
  */
20950
21002
  set: function (value) {
20951
21003
  this._filterService = value;
@@ -21189,15 +21241,76 @@
21189
21241
  enumerable: false,
21190
21242
  configurable: true
21191
21243
  });
21244
+ Object.defineProperty(PoMultiselectBaseComponent.prototype, "fieldLabel", {
21245
+ get: function () {
21246
+ return this._fieldLabel;
21247
+ },
21248
+ /**
21249
+ * @optional
21250
+ *
21251
+ * @description
21252
+ * Deve ser informado o nome da propriedade do objeto que será utilizado para a conversão dos itens apresentados na lista do componente
21253
+ * (`p-options`), esta propriedade será responsável pelo texto de apresentação de cada item da lista.
21254
+ *
21255
+ * Necessário quando informar o serviço como URL e o mesmo não estiver retornando uma lista de objetos no padrão da interface
21256
+ * `PoMultiSelectOption`.
21257
+ *
21258
+ * @default `label`
21259
+ */
21260
+ set: function (value) {
21261
+ this._fieldLabel = value || PO_MULTISELECT_FIELD_LABEL_DEFAULT;
21262
+ if (isTypeof(this.filterService, 'string') && this.service) {
21263
+ this.service.fieldLabel = this._fieldLabel;
21264
+ }
21265
+ },
21266
+ enumerable: false,
21267
+ configurable: true
21268
+ });
21269
+ Object.defineProperty(PoMultiselectBaseComponent.prototype, "fieldValue", {
21270
+ get: function () {
21271
+ return this._fieldValue;
21272
+ },
21273
+ /**
21274
+ * @optional
21275
+ *
21276
+ * @description
21277
+ * Deve ser informado o nome da propriedade do objeto que será utilizado para a conversão dos itens apresentados na lista do componente
21278
+ * (`p-options`), esta propriedade será responsável pelo valor de cada item da lista.
21279
+ *
21280
+ * Necessário quando informar o serviço como URL e o mesmo não estiver retornando uma lista de objetos no padrão da interface
21281
+ * `PoMultiSelectOption`.
21282
+ *
21283
+ * @default `value`
21284
+ */
21285
+ set: function (value) {
21286
+ this._fieldValue = value || PO_MULTISELECT_FIELD_VALUE_DEFAULT;
21287
+ if (isTypeof(this.filterService, 'string') && this.service) {
21288
+ this.service.fieldValue = this._fieldValue;
21289
+ }
21290
+ },
21291
+ enumerable: false,
21292
+ configurable: true
21293
+ });
21192
21294
  PoMultiselectBaseComponent.prototype.ngOnInit = function () {
21193
21295
  var _this = this;
21194
21296
  if (this.filterService) {
21195
- this.filterSubject
21196
- .pipe(operators.debounceTime(this.debounceTime), operators.distinctUntilChanged(), operators.tap(function () { return (_this.isServerSearching = true); }), operators.switchMap(function (search) { return _this.applyFilter(search); }), operators.tap(function () { return (_this.isServerSearching = false); }))
21197
- .subscribe();
21297
+ this.setService(this.filterService);
21198
21298
  }
21299
+ this.filterSubject
21300
+ .pipe(operators.debounceTime(this.debounceTime), operators.distinctUntilChanged(), operators.tap(function () { return (_this.isServerSearching = true); }), operators.switchMap(function (search) { return _this.applyFilter(search); }), operators.tap(function () { return (_this.isServerSearching = false); }))
21301
+ .subscribe();
21199
21302
  this.updateList(this.options);
21200
21303
  };
21304
+ PoMultiselectBaseComponent.prototype.setService = function (service) {
21305
+ if (isTypeof(service, 'object')) {
21306
+ this.service = service;
21307
+ }
21308
+ else {
21309
+ this.service = this.defaultService;
21310
+ this.service.configProperties(service, this.fieldLabel, this.fieldValue);
21311
+ }
21312
+ this.isFirstFilter = true;
21313
+ };
21201
21314
  PoMultiselectBaseComponent.prototype.validAndSortOptions = function () {
21202
21315
  if (this.options && this.options.length) {
21203
21316
  removeUndefinedAndNullOptions(this.options);
@@ -21301,8 +21414,8 @@
21301
21414
  PoMultiselectBaseComponent.prototype.writeValue = function (values) {
21302
21415
  var _this = this;
21303
21416
  values = values || [];
21304
- if (this.filterService && values.length) {
21305
- this.getObjectsByValuesSubscription = this.filterService.getObjectsByValues(values).subscribe(function (options) {
21417
+ if (this.service && values.length) {
21418
+ this.getObjectsByValuesSubscription = this.service.getObjectsByValues(values).subscribe(function (options) {
21306
21419
  _this.updateSelectedOptions(options);
21307
21420
  _this.callOnChange(_this.selectedOptions);
21308
21421
  });
@@ -21360,7 +21473,9 @@
21360
21473
  hideSearch: [{ type: i0.Input, args: ['p-hide-search',] }],
21361
21474
  options: [{ type: i0.Input, args: ['p-options',] }],
21362
21475
  sort: [{ type: i0.Input, args: ['p-sort',] }],
21363
- filterMode: [{ type: i0.Input, args: ['p-filter-mode',] }]
21476
+ filterMode: [{ type: i0.Input, args: ['p-filter-mode',] }],
21477
+ fieldLabel: [{ type: i0.Input, args: ['p-field-label',] }],
21478
+ fieldValue: [{ type: i0.Input, args: ['p-field-value',] }]
21364
21479
  };
21365
21480
  __decorate([
21366
21481
  InputBoolean()
@@ -21369,10 +21484,67 @@
21369
21484
  InputBoolean()
21370
21485
  ], PoMultiselectBaseComponent.prototype, "autoHeight", null);
21371
21486
 
21487
+ var PoMultiselectFilterService = /** @class */ (function () {
21488
+ function PoMultiselectFilterService(http) {
21489
+ this.http = http;
21490
+ this.fieldLabel = 'label';
21491
+ this.fieldValue = 'value';
21492
+ this.messages = [];
21493
+ }
21494
+ Object.defineProperty(PoMultiselectFilterService.prototype, "url", {
21495
+ get: function () {
21496
+ return this._url;
21497
+ },
21498
+ enumerable: false,
21499
+ configurable: true
21500
+ });
21501
+ PoMultiselectFilterService.prototype.getFilteredData = function (_a) {
21502
+ var _this = this;
21503
+ var value = _a.value;
21504
+ var params = value ? { filter: value } : {};
21505
+ return this.http
21506
+ .get(this.url, {
21507
+ params: params
21508
+ })
21509
+ .pipe(operators.map(function (response) { return _this.parseToArrayMultiselectOptions(response['items']); }));
21510
+ };
21511
+ PoMultiselectFilterService.prototype.getObjectsByValues = function (value) {
21512
+ var _this = this;
21513
+ return this.http
21514
+ .get(this.url + "?" + this.fieldValue + "=" + value.toString())
21515
+ .pipe(operators.map(function (response) { return _this.parseToArrayMultiselectOptions(response['items']); }));
21516
+ };
21517
+ PoMultiselectFilterService.prototype.configProperties = function (url, fieldLabel, fieldValue) {
21518
+ this._url = url;
21519
+ this.fieldLabel = fieldLabel;
21520
+ this.fieldValue = fieldValue;
21521
+ };
21522
+ PoMultiselectFilterService.prototype.parseToArrayMultiselectOptions = function (items) {
21523
+ var _this = this;
21524
+ if (items && items.length > 0) {
21525
+ return items.map(function (item) { return _this.parseToMultiselectOption(item); });
21526
+ }
21527
+ return [];
21528
+ };
21529
+ PoMultiselectFilterService.prototype.parseToMultiselectOption = function (item) {
21530
+ var label = item[this.fieldLabel];
21531
+ var value = item[this.fieldValue];
21532
+ return { label: label, value: value };
21533
+ };
21534
+ return PoMultiselectFilterService;
21535
+ }());
21536
+ PoMultiselectFilterService.decorators = [
21537
+ { type: i0.Injectable }
21538
+ ];
21539
+ PoMultiselectFilterService.ctorParameters = function () { return [
21540
+ { type: i1.HttpClient }
21541
+ ]; };
21542
+
21372
21543
  var poMultiselectContainerOffset = 8;
21373
21544
  var poMultiselectContainerPositionDefault = 'bottom';
21374
21545
  /* istanbul ignore next */
21375
21546
  var providers$1 = [
21547
+ PoMultiselectFilterService,
21376
21548
  PoControlPositionService,
21377
21549
  {
21378
21550
  provide: forms.NG_VALUE_ACCESSOR,
@@ -21420,12 +21592,13 @@
21420
21592
  */
21421
21593
  var PoMultiselectComponent = /** @class */ (function (_super) {
21422
21594
  __extends(PoMultiselectComponent, _super);
21423
- function PoMultiselectComponent(renderer, changeDetector, el, controlPosition, languageService) {
21595
+ function PoMultiselectComponent(renderer, changeDetector, el, controlPosition, defaultService, languageService) {
21424
21596
  var _this = _super.call(this, languageService) || this;
21425
21597
  _this.renderer = renderer;
21426
21598
  _this.changeDetector = changeDetector;
21427
21599
  _this.el = el;
21428
21600
  _this.controlPosition = controlPosition;
21601
+ _this.defaultService = defaultService;
21429
21602
  _this.disclaimerOffset = 0;
21430
21603
  _this.dropdownIcon = 'po-icon-arrow-down';
21431
21604
  _this.dropdownOpen = false;
@@ -21443,6 +21616,11 @@
21443
21616
  }
21444
21617
  this.initialized = true;
21445
21618
  };
21619
+ PoMultiselectComponent.prototype.ngOnChanges = function (changes) {
21620
+ if (changes.filterService || changes.fieldValue || changes.fieldLabel) {
21621
+ this.setService(this.filterService);
21622
+ }
21623
+ };
21446
21624
  PoMultiselectComponent.prototype.ngDoCheck = function () {
21447
21625
  var inputWidth = this.inputElement.nativeElement.offsetWidth;
21448
21626
  // Permite que os disclaimers sejam calculados na primeira vez que o componente torna-se visível,
@@ -21625,7 +21803,7 @@
21625
21803
  var _this = this;
21626
21804
  if (value === void 0) { value = ''; }
21627
21805
  var param = { property: 'label', value: value };
21628
- return this.filterService.getFilteredData(param).pipe(operators.catchError(function (err) {
21806
+ return this.service.getFilteredData(param).pipe(operators.catchError(function (err) {
21629
21807
  _this.isServerSearching = false;
21630
21808
  return rxjs.of([]);
21631
21809
  }), operators.tap(function (options) {
@@ -21635,7 +21813,10 @@
21635
21813
  PoMultiselectComponent.prototype.applyFilterInFirstClick = function () {
21636
21814
  if (this.isFirstFilter) {
21637
21815
  this.isServerSearching = true;
21638
- this.filterSubject.next();
21816
+ // necessario enviar um objeto string vazia para refazer a busca, quando alterar filterService, fieldValue e fieldLabel
21817
+ // pois temos o distinctUntilChange no pipe do filterSubject
21818
+ /* eslint-disable no-new-wrappers */
21819
+ this.filterSubject.next(new String());
21639
21820
  }
21640
21821
  else {
21641
21822
  this.options = __spreadArray([], __read(this.cacheOptions));
@@ -21707,6 +21888,7 @@
21707
21888
  { type: i0.ChangeDetectorRef },
21708
21889
  { type: i0.ElementRef },
21709
21890
  { type: PoControlPositionService },
21891
+ { type: PoMultiselectFilterService },
21710
21892
  { type: PoLanguageService }
21711
21893
  ]; };
21712
21894
  PoMultiselectComponent.propDecorators = {
@@ -27693,16 +27875,17 @@
27693
27875
  };
27694
27876
  PoDynamicFormFieldsComponent.prototype.onChangeField = function (visibleField, objectValue) {
27695
27877
  return __awaiter(this, void 0, void 0, function () {
27696
- var property, isChangedValueField, _b, changedField, changedFieldIndex;
27878
+ var property, isBooleanType, isChangedValueField, _b, changedField, changedFieldIndex;
27697
27879
  return __generator(this, function (_c) {
27698
27880
  switch (_c.label) {
27699
27881
  case 0:
27700
27882
  property = visibleField.property;
27883
+ isBooleanType = visibleField.type === 'boolean';
27701
27884
  isChangedValueField = this.previousValue[property] !== this.value[property];
27702
27885
  if (visibleField.optionsService) {
27703
27886
  this.objectValue.emit(objectValue);
27704
27887
  }
27705
- if (!(this.form.touched && isChangedValueField)) return [3 /*break*/, 3];
27888
+ if (!((this.form.touched || isBooleanType) && isChangedValueField)) return [3 /*break*/, 3];
27706
27889
  _b = this.getField(property), changedField = _b.changedField, changedFieldIndex = _b.changedFieldIndex;
27707
27890
  if (!changedField.validate) return [3 /*break*/, 2];
27708
27891
  return [4 /*yield*/, this.validateField(changedField, changedFieldIndex, visibleField)];
@@ -36932,7 +37115,11 @@
36932
37115
  this.closed.emit();
36933
37116
  };
36934
37117
  PoHttpInterceptorDetailComponent.prototype.formatDetailItemTitle = function (detail) {
36935
- return detail.code ? detail.code + " - " + detail.message : detail.message;
37118
+ return detail.detailTitle
37119
+ ? detail.detailTitle
37120
+ : detail.code
37121
+ ? detail.code + " - " + detail.message
37122
+ : detail.message;
36936
37123
  };
36937
37124
  PoHttpInterceptorDetailComponent.prototype.open = function () {
36938
37125
  this.modal.open();
@@ -36947,22 +37134,28 @@
36947
37134
  return detail.message ? newDetails.concat(this.getValidDetailProperties(detail)) : newDetails;
36948
37135
  };
36949
37136
  PoHttpInterceptorDetailComponent.prototype.getValidDetailProperties = function (_a) {
36950
- var code = _a.code, message = _a.message, detailedMessage = _a.detailedMessage, type = _a.type;
36951
- return { code: code, message: message, detailedMessage: detailedMessage, type: type };
37137
+ var code = _a.code, message = _a.message, detailedMessage = _a.detailedMessage, type = _a.type, detailTitle = _a.detailTitle;
37138
+ return detailTitle
37139
+ ? { code: code, message: message, detailedMessage: detailedMessage, type: type, detailTitle: detailTitle }
37140
+ : { code: code, message: message, detailedMessage: detailedMessage, type: type };
36952
37141
  };
36953
37142
  PoHttpInterceptorDetailComponent.prototype.filterByValidDetails = function (details) {
36954
37143
  var _this = this;
36955
37144
  return details.reduce(function (newDetails, detail) { return _this.addValidDetail(newDetails, detail); }, []);
36956
37145
  };
36957
37146
  PoHttpInterceptorDetailComponent.prototype.formatTitle = function (details) {
36958
- return details.length > 1 ? this.literals.details + " (" + details.length + ")" : this.literals.detail;
37147
+ return details.length > 1
37148
+ ? this.literals.details + " (" + details.length + ")"
37149
+ : details.length === 1
37150
+ ? this.formatDetailItemTitle(details[0])
37151
+ : this.literals.detail;
36959
37152
  };
36960
37153
  return PoHttpInterceptorDetailComponent;
36961
37154
  }());
36962
37155
  PoHttpInterceptorDetailComponent.decorators = [
36963
37156
  { type: i0.Component, args: [{
36964
37157
  selector: 'po-http-interceptor-detail',
36965
- template: "<po-modal p-hide-close p-size=\"lg\" [p-primary-action]=\"primaryAction\" [p-title]=\"title\">\n <div class=\"po-row\">\n <po-accordion class=\"po-md-12 po-mt-1 po-mb-1\">\n <po-accordion-item *ngFor=\"let detail of details\" [p-label]=\"formatDetailItemTitle(detail)\">\n <div *ngIf=\"detail.type\" class=\"po-row po-mb-1\">\n <po-tag [p-color]=\"typeColor(detail.type)\" [p-value]=\"typeValue(detail.type)\"></po-tag>\n </div>\n\n <div class=\"po-row\">\n <p>{{ detail.detailedMessage }}</p>\n </div>\n </po-accordion-item>\n </po-accordion>\n </div>\n</po-modal>\n"
37158
+ template: "<po-modal p-hide-close p-size=\"lg\" [p-primary-action]=\"primaryAction\" [p-title]=\"title\">\n <div class=\"po-row\">\n <po-accordion class=\"po-md-12 po-mt-1 po-mb-1\" *ngIf=\"details.length > 1; else elseBlock\">\n <po-accordion-item *ngFor=\"let detail of details\" [p-label]=\"formatDetailItemTitle(detail)\">\n <ng-template [ngTemplateOutlet]=\"body\" [ngTemplateOutletContext]=\"{detail}\"></ng-template>\n </po-accordion-item>\n </po-accordion>\n </div>\n</po-modal>\n\n<ng-template #elseBlock>\n <ng-container [ngTemplateOutlet]=\"body\" [ngTemplateOutletContext]=\"{ detail: details[0] || {} }\"></ng-container>\n</ng-template>\n\n<ng-template #body let-detail=\"detail\">\n <div *ngIf=\"detail.type\" class=\"po-row po-mb-1\">\n <po-tag [p-color]=\"typeColor(detail.type)\" [p-value]=\"typeValue(detail.type)\"></po-tag>\n </div>\n\n <p *ngIf=\"detail.detailTitle\">\n <strong>{{ detail.code }}</strong>\n </p>\n\n <div class=\"po-row\">\n <p>{{ detail.detailedMessage }}</p>\n </div>\n</ng-template>\n"
36966
37159
  },] }
36967
37160
  ];
36968
37161
  PoHttpInterceptorDetailComponent.ctorParameters = function () { return [
@@ -37099,6 +37292,7 @@
37099
37292
  * - Caso for informado, será exibido uma ação de "Ajuda" na notificação, para isso não deverá ter a propriedade `detailedMessage`.
37100
37293
  * - `type`: É possível informar `error`, `warning` e `information`, sendo `error` o valor padrão.
37101
37294
  * - `details`: Uma lista de objetos de mensagem (recursiva) com mais detalhes sobre a mensagem principal.
37295
+ * - `detailTitle`: caso for informado, será apresentado como título dos detalhes substituindo o padrão `code - message`
37102
37296
  *
37103
37297
  * > Veja o [Guia de implementação de APIs](guides/api) para mais detalhes sobre a estrutura das mensagens.
37104
37298
  *
@@ -37412,15 +37606,9 @@
37412
37606
  request = this.requestCloneWithoutHeaderParam([noCountPendingRequests, screenLock], request);
37413
37607
  this.setCountPendingRequests(true, requestClone);
37414
37608
  this.setCountOverlayRequests(true, requestClone);
37415
- return next.handle(request).pipe(operators.tap(function (response) {
37416
- if (response instanceof i1.HttpResponse) {
37417
- _this.setCountPendingRequests(false, requestClone);
37418
- _this.setCountOverlayRequests(false, requestClone);
37419
- }
37420
- }), operators.catchError(function (error) {
37609
+ return next.handle(request).pipe(operators.finalize(function () {
37421
37610
  _this.setCountPendingRequests(false, requestClone);
37422
37611
  _this.setCountOverlayRequests(false, requestClone);
37423
- return rxjs.throwError(error);
37424
37612
  }));
37425
37613
  };
37426
37614
  PoHttpRequestInterceptorService.prototype.getCountPendingRequests = function () {
@@ -38486,112 +38674,113 @@
38486
38674
  exports.ɵdr = PoLookupModalService;
38487
38675
  exports.ɵds = PoLookupModalBaseComponent;
38488
38676
  exports.ɵdt = PoMultiselectBaseComponent;
38489
- exports.ɵdu = PoNumberBaseComponent;
38490
- exports.ɵdv = PoRadioGroupBaseComponent;
38491
- exports.ɵdw = PoRichTextBaseComponent;
38492
- exports.ɵdx = PoRichTextService;
38493
- exports.ɵdy = PoRichTextBodyComponent;
38494
- exports.ɵdz = PoSelectBaseComponent;
38677
+ exports.ɵdu = PoMultiselectFilterService;
38678
+ exports.ɵdv = PoNumberBaseComponent;
38679
+ exports.ɵdw = PoRadioGroupBaseComponent;
38680
+ exports.ɵdx = PoRichTextBaseComponent;
38681
+ exports.ɵdy = PoRichTextService;
38682
+ exports.ɵdz = PoRichTextBodyComponent;
38495
38683
  exports.ɵe = PoAvatarBaseComponent;
38496
- exports.ɵea = PoSwitchBaseComponent;
38497
- exports.ɵeb = PoTextareaBaseComponent;
38498
- exports.ɵec = PoUploadBaseComponent;
38499
- exports.ɵed = PoUploadService;
38500
- exports.ɵee = PoUploadBaseService;
38501
- exports.ɵef = PoUploadDragDropComponent;
38502
- exports.ɵeg = PoUploadDragDropAreaComponent;
38503
- exports.ɵeh = PoNotificationBaseService;
38504
- exports.ɵei = PoMultiselectDropdownComponent;
38505
- exports.ɵej = PoMultiselectItemComponent;
38506
- exports.ɵek = PoMultiselectSearchComponent;
38507
- exports.ɵel = PoRichTextImageModalComponent;
38508
- exports.ɵem = PoRichTextLinkModalComponent;
38509
- exports.ɵen = PoRichTextToolbarComponent;
38510
- exports.ɵeo = PoUploadDragDropDirective;
38511
- exports.ɵep = PoUploadDragDropAreaOverlayComponent;
38512
- exports.ɵeq = PoUploadFileRestrictionsComponent;
38513
- exports.ɵer = PoTagBaseComponent;
38514
- exports.ɵes = PoDynamicFormBaseComponent;
38515
- exports.ɵet = PoDynamicFormLoadService;
38516
- exports.ɵeu = PoDynamicFormOperation;
38517
- exports.ɵev = PoDynamicFormValidationService;
38518
- exports.ɵew = PoDynamicFormFieldsComponent;
38519
- exports.ɵex = PoDynamicFormFieldsBaseComponent;
38520
- exports.ɵey = PoDynamicViewBaseComponent;
38521
- exports.ɵez = PoDynamicViewService;
38684
+ exports.ɵea = PoSelectBaseComponent;
38685
+ exports.ɵeb = PoSwitchBaseComponent;
38686
+ exports.ɵec = PoTextareaBaseComponent;
38687
+ exports.ɵed = PoUploadBaseComponent;
38688
+ exports.ɵee = PoUploadService;
38689
+ exports.ɵef = PoUploadBaseService;
38690
+ exports.ɵeg = PoUploadDragDropComponent;
38691
+ exports.ɵeh = PoUploadDragDropAreaComponent;
38692
+ exports.ɵei = PoNotificationBaseService;
38693
+ exports.ɵej = PoMultiselectDropdownComponent;
38694
+ exports.ɵek = PoMultiselectItemComponent;
38695
+ exports.ɵel = PoMultiselectSearchComponent;
38696
+ exports.ɵem = PoRichTextImageModalComponent;
38697
+ exports.ɵen = PoRichTextLinkModalComponent;
38698
+ exports.ɵeo = PoRichTextToolbarComponent;
38699
+ exports.ɵep = PoUploadDragDropDirective;
38700
+ exports.ɵeq = PoUploadDragDropAreaOverlayComponent;
38701
+ exports.ɵer = PoUploadFileRestrictionsComponent;
38702
+ exports.ɵes = PoTagBaseComponent;
38703
+ exports.ɵet = PoDynamicFormBaseComponent;
38704
+ exports.ɵeu = PoDynamicFormLoadService;
38705
+ exports.ɵev = PoDynamicFormOperation;
38706
+ exports.ɵew = PoDynamicFormValidationService;
38707
+ exports.ɵex = PoDynamicFormFieldsComponent;
38708
+ exports.ɵey = PoDynamicFormFieldsBaseComponent;
38709
+ exports.ɵez = PoDynamicViewBaseComponent;
38522
38710
  exports.ɵf = PoBreadcrumbBaseComponent;
38523
- exports.ɵfa = PoGaugeBaseComponent;
38524
- exports.ɵfb = PoGaugeTitleComponent;
38525
- exports.ɵfc = PoGaugeLegendComponent;
38526
- exports.ɵfd = PoGaugeSvgComponent;
38527
- exports.ɵfe = PoGaugePathComponent;
38528
- exports.ɵff = PoGaugeDescriptionComponent;
38529
- exports.ɵfg = PoGaugePointerComponent;
38530
- exports.ɵfh = PoGridCellActionComponent;
38531
- exports.ɵfi = PoGridCellComponent;
38532
- exports.ɵfj = PoGridHeadComponent;
38533
- exports.ɵfk = PoListViewBaseComponent;
38534
- exports.ɵfl = PoBadgeModule;
38535
- exports.ɵfm = PoBadgeComponent;
38536
- exports.ɵfn = PoBadgeBaseComponent;
38537
- exports.ɵfo = PoMenuBaseComponent;
38538
- exports.ɵfp = PoMenuService;
38539
- exports.ɵfq = PoMenuItemsService;
38540
- exports.ɵfr = PoMenuFilterComponent;
38541
- exports.ɵfs = PoMenuItemComponent;
38542
- exports.ɵft = PoMenuPanelBaseComponent;
38543
- exports.ɵfu = PoMenuPanelItemsService;
38544
- exports.ɵfv = PoMenuPanelItemComponent;
38545
- exports.ɵfw = PoNavbarActionsModule;
38546
- exports.ɵfx = PoNavbarActionComponent;
38547
- exports.ɵfy = PoNavbarActionPopupComponent;
38548
- exports.ɵfz = PoNavbarActionsComponent;
38711
+ exports.ɵfa = PoDynamicViewService;
38712
+ exports.ɵfb = PoGaugeBaseComponent;
38713
+ exports.ɵfc = PoGaugeTitleComponent;
38714
+ exports.ɵfd = PoGaugeLegendComponent;
38715
+ exports.ɵfe = PoGaugeSvgComponent;
38716
+ exports.ɵff = PoGaugePathComponent;
38717
+ exports.ɵfg = PoGaugeDescriptionComponent;
38718
+ exports.ɵfh = PoGaugePointerComponent;
38719
+ exports.ɵfi = PoGridCellActionComponent;
38720
+ exports.ɵfj = PoGridCellComponent;
38721
+ exports.ɵfk = PoGridHeadComponent;
38722
+ exports.ɵfl = PoListViewBaseComponent;
38723
+ exports.ɵfm = PoBadgeModule;
38724
+ exports.ɵfn = PoBadgeComponent;
38725
+ exports.ɵfo = PoBadgeBaseComponent;
38726
+ exports.ɵfp = PoMenuBaseComponent;
38727
+ exports.ɵfq = PoMenuService;
38728
+ exports.ɵfr = PoMenuItemsService;
38729
+ exports.ɵfs = PoMenuFilterComponent;
38730
+ exports.ɵft = PoMenuItemComponent;
38731
+ exports.ɵfu = PoMenuPanelBaseComponent;
38732
+ exports.ɵfv = PoMenuPanelItemsService;
38733
+ exports.ɵfw = PoMenuPanelItemComponent;
38734
+ exports.ɵfx = PoNavbarActionsModule;
38735
+ exports.ɵfy = PoNavbarActionComponent;
38736
+ exports.ɵfz = PoNavbarActionPopupComponent;
38549
38737
  exports.ɵg = PoBreadcrumbDropdownComponent;
38550
- exports.ɵga = PoNavbarItemsModule;
38551
- exports.ɵgb = PoNavbarItemComponent;
38552
- exports.ɵgc = PoNavbarItemsComponent;
38553
- exports.ɵgd = PoNavbarItemNavigationModule;
38554
- exports.ɵge = PoNavbarItemNavigationComponent;
38555
- exports.ɵgf = PoNavbarItemNavigationIconComponent;
38556
- exports.ɵgg = PoNavbarBaseComponent;
38557
- exports.ɵgh = PoNavbarLogoComponent;
38558
- exports.ɵgi = PoPageComponent;
38559
- exports.ɵgj = PoPageBaseComponent;
38560
- exports.ɵgk = PoPageContentComponent;
38561
- exports.ɵgl = PoPageContentBaseComponent;
38562
- exports.ɵgm = PoPageDefaultBaseComponent;
38563
- exports.ɵgn = PoPageDetailBaseComponent;
38564
- exports.ɵgo = PoPageEditBaseComponent;
38565
- exports.ɵgp = PoPageHeaderComponent;
38566
- exports.ɵgq = PoPageHeaderBaseComponent;
38567
- exports.ɵgr = PoPageListBaseComponent;
38568
- exports.ɵgs = PoPageSlideBaseComponent;
38569
- exports.ɵgt = PoSlideCirclesComponent;
38570
- exports.ɵgu = PoSlideBaseComponent;
38571
- exports.ɵgv = PoSlideItemComponent;
38572
- exports.ɵgw = PoSlideControlComponent;
38573
- exports.ɵgx = PoStepperCircleComponent;
38574
- exports.ɵgy = PoStepperBaseComponent;
38575
- exports.ɵgz = PoStepperLabelComponent;
38738
+ exports.ɵga = PoNavbarActionsComponent;
38739
+ exports.ɵgb = PoNavbarItemsModule;
38740
+ exports.ɵgc = PoNavbarItemComponent;
38741
+ exports.ɵgd = PoNavbarItemsComponent;
38742
+ exports.ɵge = PoNavbarItemNavigationModule;
38743
+ exports.ɵgf = PoNavbarItemNavigationComponent;
38744
+ exports.ɵgg = PoNavbarItemNavigationIconComponent;
38745
+ exports.ɵgh = PoNavbarBaseComponent;
38746
+ exports.ɵgi = PoNavbarLogoComponent;
38747
+ exports.ɵgj = PoPageComponent;
38748
+ exports.ɵgk = PoPageBaseComponent;
38749
+ exports.ɵgl = PoPageContentComponent;
38750
+ exports.ɵgm = PoPageContentBaseComponent;
38751
+ exports.ɵgn = PoPageDefaultBaseComponent;
38752
+ exports.ɵgo = PoPageDetailBaseComponent;
38753
+ exports.ɵgp = PoPageEditBaseComponent;
38754
+ exports.ɵgq = PoPageHeaderComponent;
38755
+ exports.ɵgr = PoPageHeaderBaseComponent;
38756
+ exports.ɵgs = PoPageListBaseComponent;
38757
+ exports.ɵgt = PoPageSlideBaseComponent;
38758
+ exports.ɵgu = PoSlideCirclesComponent;
38759
+ exports.ɵgv = PoSlideBaseComponent;
38760
+ exports.ɵgw = PoSlideItemComponent;
38761
+ exports.ɵgx = PoSlideControlComponent;
38762
+ exports.ɵgy = PoStepperCircleComponent;
38763
+ exports.ɵgz = PoStepperBaseComponent;
38576
38764
  exports.ɵh = PoBreadcrumbFavoriteComponent;
38577
- exports.ɵha = PoStepperStepComponent;
38578
- exports.ɵhb = PoTabButtonComponent;
38579
- exports.ɵhc = PoTabBaseComponent;
38580
- exports.ɵhd = PoTabDropdownComponent;
38581
- exports.ɵhe = PoTabsBaseComponent;
38582
- exports.ɵhf = PoToolbarActionsComponent;
38583
- exports.ɵhg = PoToolbarBaseComponent;
38584
- exports.ɵhh = PoToolbarNotificationComponent;
38585
- exports.ɵhi = PoToolbarProfileComponent;
38586
- exports.ɵhj = PoTreeViewBaseComponent;
38587
- exports.ɵhk = PoTreeViewService;
38588
- exports.ɵhl = PoTreeViewItemComponent;
38589
- exports.ɵhm = PoTreeViewItemHeaderComponent;
38590
- exports.ɵhn = PoWidgetBaseComponent;
38591
- exports.ɵho = PoHttpInterceptorDetailComponent;
38592
- exports.ɵhp = PoHttpInterceptorBaseService;
38593
- exports.ɵhq = PoHttpRequesControltService;
38594
- exports.ɵhr = PoI18nBaseService;
38765
+ exports.ɵha = PoStepperLabelComponent;
38766
+ exports.ɵhb = PoStepperStepComponent;
38767
+ exports.ɵhc = PoTabButtonComponent;
38768
+ exports.ɵhd = PoTabBaseComponent;
38769
+ exports.ɵhe = PoTabDropdownComponent;
38770
+ exports.ɵhf = PoTabsBaseComponent;
38771
+ exports.ɵhg = PoToolbarActionsComponent;
38772
+ exports.ɵhh = PoToolbarBaseComponent;
38773
+ exports.ɵhi = PoToolbarNotificationComponent;
38774
+ exports.ɵhj = PoToolbarProfileComponent;
38775
+ exports.ɵhk = PoTreeViewBaseComponent;
38776
+ exports.ɵhl = PoTreeViewService;
38777
+ exports.ɵhm = PoTreeViewItemComponent;
38778
+ exports.ɵhn = PoTreeViewItemHeaderComponent;
38779
+ exports.ɵho = PoWidgetBaseComponent;
38780
+ exports.ɵhp = PoHttpInterceptorDetailComponent;
38781
+ exports.ɵhq = PoHttpInterceptorBaseService;
38782
+ exports.ɵhr = PoHttpRequesControltService;
38783
+ exports.ɵhs = PoI18nBaseService;
38595
38784
  exports.ɵi = PoBreadcrumbFavoriteService;
38596
38785
  exports.ɵj = PoBreadcrumbItemComponent;
38597
38786
  exports.ɵk = PoLoadingBaseComponent;