@po-ui/ng-components 5.13.0 → 5.16.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 (64) hide show
  1. package/bundles/po-ui-ng-components.umd.js +315 -183
  2. package/bundles/po-ui-ng-components.umd.js.map +1 -1
  3. package/esm2015/lib/components/po-calendar/po-calendar-base.component.js +2 -2
  4. package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.js +1 -1
  5. package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields-base.component.js +2 -2
  6. package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields.component.js +4 -3
  7. package/esm2015/lib/components/po-field/po-datepicker/po-datepicker.component.js +2 -1
  8. package/esm2015/lib/components/po-field/po-datepicker-range/interfaces/po-datepicker-range-literals.interface.js +1 -1
  9. package/esm2015/lib/components/po-field/po-datepicker-range/po-datepicker-range-base.component.js +48 -6
  10. package/esm2015/lib/components/po-field/po-datepicker-range/po-datepicker-range.component.js +2 -2
  11. package/esm2015/lib/components/po-field/po-datepicker-range/po-datepicker-range.literals.js +9 -5
  12. package/esm2015/lib/components/po-field/po-field.model.js +75 -0
  13. package/esm2015/lib/components/po-field/po-input/po-input-base.component.js +11 -3
  14. package/esm2015/lib/components/po-field/po-input/po-input.component.js +8 -6
  15. package/esm2015/lib/components/po-field/po-input-generic/po-input-generic.js +6 -5
  16. package/esm2015/lib/components/po-field/po-lookup/po-lookup-base.component.js +11 -5
  17. package/esm2015/lib/components/po-field/po-lookup/po-lookup.component.js +2 -2
  18. package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-base.component.js +16 -5
  19. package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-dropdown/po-multiselect-dropdown.component.js +42 -2
  20. package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-item/po-multiselect-item.component.js +3 -3
  21. package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-literals.interface.js +1 -1
  22. package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-search/po-multiselect-search.component.js +4 -1
  23. package/esm2015/lib/components/po-field/po-multiselect/po-multiselect.component.js +2 -2
  24. package/esm2015/lib/components/po-field/po-switch/po-switch.component.js +85 -9
  25. package/esm2015/lib/components/po-page/po-page-action.interface.js +1 -1
  26. package/esm2015/lib/components/po-page/po-page-header/po-page-header.component.js +2 -2
  27. package/esm2015/lib/components/po-stepper/po-stepper-circle/po-stepper-circle.component.js +2 -2
  28. package/esm2015/lib/components/po-stepper/po-stepper-step/po-stepper-step.component.js +5 -4
  29. package/esm2015/lib/components/po-stepper/po-stepper.component.js +2 -2
  30. package/esm2015/lib/components/po-table/po-table-column-label/po-table-column-label.interface.js +1 -1
  31. package/esm2015/lib/services/po-date/po-date.service.js +1 -1
  32. package/esm2015/po-ui-ng-components.js +2 -2
  33. package/fesm2015/po-ui-ng-components.js +275 -161
  34. package/fesm2015/po-ui-ng-components.js.map +1 -1
  35. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.d.ts +6 -0
  36. package/lib/components/po-field/po-datepicker-range/interfaces/po-datepicker-range-literals.interface.d.ts +2 -0
  37. package/lib/components/po-field/po-datepicker-range/po-datepicker-range-base.component.d.ts +5 -3
  38. package/lib/components/po-field/po-field.model.d.ts +50 -0
  39. package/lib/components/po-field/po-input/po-input-base.component.d.ts +3 -1
  40. package/lib/components/po-field/po-input/po-input.component.d.ts +2 -2
  41. package/lib/components/po-field/po-input-generic/po-input-generic.d.ts +2 -2
  42. package/lib/components/po-field/po-lookup/po-lookup-base.component.d.ts +3 -1
  43. package/lib/components/po-field/po-multiselect/po-multiselect-base.component.d.ts +10 -0
  44. package/lib/components/po-field/po-multiselect/po-multiselect-dropdown/po-multiselect-dropdown.component.d.ts +7 -0
  45. package/lib/components/po-field/po-multiselect/po-multiselect-item/po-multiselect-item.component.d.ts +1 -1
  46. package/lib/components/po-field/po-multiselect/po-multiselect-literals.interface.d.ts +2 -0
  47. package/lib/components/po-field/po-multiselect/po-multiselect-search/po-multiselect-search.component.d.ts +1 -0
  48. package/lib/components/po-field/po-switch/po-switch.component.d.ts +49 -3
  49. package/lib/components/po-page/po-page-action.interface.d.ts +2 -0
  50. package/lib/components/po-stepper/po-stepper-step/po-stepper-step.component.d.ts +1 -0
  51. package/lib/components/po-table/po-table-column-label/po-table-column-label.interface.d.ts +1 -1
  52. package/lib/services/po-date/po-date.service.d.ts +1 -1
  53. package/package.json +4 -4
  54. package/po-ui-ng-components-5.16.0.tgz +0 -0
  55. package/po-ui-ng-components.d.ts +1 -1
  56. package/po-ui-ng-components.metadata.json +1 -1
  57. package/schematics/ng-add/index.js +1 -1
  58. package/schematics/ng-update/v2/index.js +1 -1
  59. package/schematics/ng-update/v3/index.js +1 -1
  60. package/schematics/ng-update/v4/index.js +1 -1
  61. package/schematics/ng-update/v5/index.js +1 -1
  62. package/esm2015/lib/components/po-field/po-switch/po-switch-base.component.js +0 -158
  63. package/lib/components/po-field/po-switch/po-switch-base.component.d.ts +0 -100
  64. package/po-ui-ng-components-5.13.0.tgz +0 -0
@@ -3842,7 +3842,7 @@
3842
3842
  PoCalendarBaseComponent.prototype.setActivateDate = function (date) {
3843
3843
  var activateDate = date ? date : this.verifyActivateDate();
3844
3844
  if (this.isRange) {
3845
- var checkedStart = new Date(activateDate);
3845
+ var checkedStart = typeof activateDate === 'string' ? this.poDate.convertIsoToDate(activateDate) : new Date(activateDate);
3846
3846
  var checkedEnd = new Date(new Date(checkedStart).setMonth(checkedStart.getMonth() + 1));
3847
3847
  this.activateDate = { start: checkedStart, end: checkedEnd };
3848
3848
  }
@@ -10962,6 +10962,7 @@
10962
10962
  else if (this.inputEl) {
10963
10963
  this.inputEl.nativeElement.value = '';
10964
10964
  this.date = undefined;
10965
+ this.callOnChange(this.date, false);
10965
10966
  }
10966
10967
  this.valueBeforeChange = this.formatToDate(this.date);
10967
10968
  };
@@ -16966,19 +16967,23 @@
16966
16967
  var poDatepickerRangeLiteralsDefault = {
16967
16968
  en: {
16968
16969
  invalidFormat: 'Date in invalid format',
16969
- startDateGreaterThanEndDate: 'Start date greater than end date'
16970
+ startDateGreaterThanEndDate: 'Start date greater than end date',
16971
+ invalidDate: 'Invalid date'
16970
16972
  },
16971
16973
  es: {
16972
16974
  invalidFormat: 'Fecha en formato no válido',
16973
- startDateGreaterThanEndDate: 'Fecha de inicio mayor que fecha final'
16975
+ startDateGreaterThanEndDate: 'Fecha de inicio mayor que fecha final',
16976
+ invalidDate: 'Fecha invalida'
16974
16977
  },
16975
16978
  pt: {
16976
16979
  invalidFormat: 'Data no formato inválido',
16977
- startDateGreaterThanEndDate: 'Data inicial maior que data final'
16980
+ startDateGreaterThanEndDate: 'Data inicial maior que data final',
16981
+ invalidDate: 'Data inválida'
16978
16982
  },
16979
16983
  ru: {
16980
16984
  invalidFormat: 'Дата в неверном формате',
16981
- startDateGreaterThanEndDate: 'Дата начала больше даты окончания'
16985
+ startDateGreaterThanEndDate: 'Дата начала больше даты окончания',
16986
+ invalidDate: 'Недействительная дата'
16982
16987
  }
16983
16988
  };
16984
16989
 
@@ -17282,6 +17287,14 @@
17282
17287
  }
17283
17288
  };
17284
17289
  }
17290
+ if (!this.verifyValidDate(startDate, endDate)) {
17291
+ this.errorMessage = this.literals.invalidDate;
17292
+ return {
17293
+ date: {
17294
+ valid: false
17295
+ }
17296
+ };
17297
+ }
17285
17298
  if (this.dateRangeObjectFailed(control.value) || this.dateRangeFormatFailed(startDate, endDate)) {
17286
17299
  this.errorMessage = this.literals.invalidFormat;
17287
17300
  return {
@@ -17337,6 +17350,17 @@
17337
17350
  this.validatorChange(model);
17338
17351
  }
17339
17352
  };
17353
+ PoDatepickerRangeBaseComponent.prototype.verifyValidDate = function (startDate, endDate) {
17354
+ if (startDate !== '' && endDate !== '') {
17355
+ return this.dateIsValid(startDate) && this.dateIsValid(endDate);
17356
+ }
17357
+ else if (startDate !== '') {
17358
+ return this.dateIsValid(startDate);
17359
+ }
17360
+ else {
17361
+ return this.dateIsValid(endDate);
17362
+ }
17363
+ };
17340
17364
  PoDatepickerRangeBaseComponent.prototype.convertPatternDateFormat = function (value) {
17341
17365
  if (value instanceof Date) {
17342
17366
  return this.poDateService.convertDateToISO(value);
@@ -17360,6 +17384,29 @@
17360
17384
  requiredFailed(this.required, this.disabled, startDate) &&
17361
17385
  requiredFailed(this.required, this.disabled, endDate));
17362
17386
  };
17387
+ PoDatepickerRangeBaseComponent.prototype.dateIsValid = function (date) {
17388
+ var _a = __read(date.split('-'), 3), strYear = _a[0], strMonth = _a[1], strDay = _a[2];
17389
+ var year = Number(strYear);
17390
+ var month = Number(strMonth);
17391
+ var day = Number(strDay);
17392
+ //verificação dos meses com 31 dias
17393
+ if (month === 1 || month === 3 || month === 5 || month === 7 || month === 8 || month === 10 || month === 12) {
17394
+ return day < 1 || day > 31 ? false : true;
17395
+ }
17396
+ else if (month === 4 || month === 6 || month === 9 || month === 11) {
17397
+ //verificação dos meses com 30 dias
17398
+ return day < 1 || day > 30 ? false : true;
17399
+ }
17400
+ else {
17401
+ //verificacao de ano bissexto para verificar até qual dia irá o mês de fevereiro
17402
+ if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {
17403
+ return day < 1 || day > 29 ? false : true;
17404
+ }
17405
+ else {
17406
+ return day < 1 || day > 28 ? false : true;
17407
+ }
17408
+ }
17409
+ };
17363
17410
  return PoDatepickerRangeBaseComponent;
17364
17411
  }());
17365
17412
  PoDatepickerRangeBaseComponent.decorators = [
@@ -17677,7 +17724,7 @@
17677
17724
  PoDatepickerRangeComponent.prototype.getDateRangeFormatValidation = function (startDate, endDate, isStartDateTargetEvent) {
17678
17725
  this.setDateRangeInputValidation(startDate, endDate);
17679
17726
  return {
17680
- isValid: this.isDateRangeInputFormatValid && this.isStartDateRangeInputValid,
17727
+ isValid: this.isDateRangeInputFormatValid && this.isStartDateRangeInputValid && this.verifyValidDate(startDate, endDate),
17681
17728
  dateRangeModel: this.getValidatedModel(startDate, endDate, isStartDateTargetEvent)
17682
17729
  };
17683
17730
  };
@@ -17878,7 +17925,8 @@
17878
17925
  *
17879
17926
  */
17880
17927
  var PoInputBaseComponent = /** @class */ (function () {
17881
- function PoInputBaseComponent() {
17928
+ function PoInputBaseComponent(cd) {
17929
+ this.cd = cd;
17882
17930
  /**
17883
17931
  * @optional
17884
17932
  *
@@ -18146,7 +18194,9 @@
18146
18194
  // Função implementada do ControlValueAccessor
18147
18195
  // Usada para interceptar os estados de habilitado via forms api
18148
18196
  PoInputBaseComponent.prototype.setDisabledState = function (isDisabled) {
18197
+ var _a;
18149
18198
  this.disabled = isDisabled;
18199
+ (_a = this.cd) === null || _a === void 0 ? void 0 : _a.markForCheck();
18150
18200
  };
18151
18201
  // Função implementada do ControlValueAccessor
18152
18202
  // Usada para interceptar as mudanças e não atualizar automaticamente o Model
@@ -18201,7 +18251,9 @@
18201
18251
  };
18202
18252
  // Função implementada do ControlValueAccessor
18203
18253
  PoInputBaseComponent.prototype.writeValue = function (value) {
18254
+ var _a;
18204
18255
  this.writeValueModel(value);
18256
+ (_a = this.cd) === null || _a === void 0 ? void 0 : _a.markForCheck();
18205
18257
  };
18206
18258
  PoInputBaseComponent.prototype.validateModel = function () {
18207
18259
  if (this.validatorChange) {
@@ -18223,6 +18275,9 @@
18223
18275
  PoInputBaseComponent.decorators = [
18224
18276
  { type: i0.Directive }
18225
18277
  ];
18278
+ PoInputBaseComponent.ctorParameters = function () { return [
18279
+ { type: i0.ChangeDetectorRef }
18280
+ ]; };
18226
18281
  PoInputBaseComponent.propDecorators = {
18227
18282
  autoFocus: [{ type: i0.Input, args: ['p-auto-focus',] }],
18228
18283
  icon: [{ type: i0.Input, args: ['p-icon',] }],
@@ -18879,8 +18934,8 @@
18879
18934
  /* eslint-disable @angular-eslint/directive-class-suffix */
18880
18935
  var PoInputGeneric = /** @class */ (function (_super) {
18881
18936
  __extends(PoInputGeneric, _super);
18882
- function PoInputGeneric(el) {
18883
- var _this = _super.call(this) || this;
18937
+ function PoInputGeneric(el, cd) {
18938
+ var _this = _super.call(this, cd) || this;
18884
18939
  _this.type = 'text';
18885
18940
  _this.el = el;
18886
18941
  return _this;
@@ -19061,7 +19116,8 @@
19061
19116
  { type: i0.Directive }
19062
19117
  ];
19063
19118
  PoInputGeneric.ctorParameters = function () { return [
19064
- { type: i0.ElementRef }
19119
+ { type: i0.ElementRef },
19120
+ { type: i0.ChangeDetectorRef }
19065
19121
  ]; };
19066
19122
  PoInputGeneric.propDecorators = {
19067
19123
  inputEl: [{ type: i0.ViewChild, args: ['inp', { read: i0.ElementRef, static: true },] }],
@@ -19320,6 +19376,8 @@
19320
19376
  * @default `false`
19321
19377
  */
19322
19378
  this.infiniteScroll = false;
19379
+ /** Exibe um ícone que permite limpar o campo. */
19380
+ this.clean = false;
19323
19381
  /**
19324
19382
  * Evento será disparado quando ocorrer algum erro na requisição de busca do item.
19325
19383
  * Será passado por parâmetro o objeto de erro retornado.
@@ -19495,6 +19553,10 @@
19495
19553
  PoLookupBaseComponent.prototype.ngAfterViewInit = function () {
19496
19554
  this.setControl();
19497
19555
  };
19556
+ PoLookupBaseComponent.prototype.cleanModel = function () {
19557
+ this.cleanViewValue();
19558
+ this.callOnChange(undefined);
19559
+ };
19498
19560
  // Função implementada do ControlValueAccessor
19499
19561
  // Usada para interceptar os estados de habilitado via forms api
19500
19562
  PoLookupBaseComponent.prototype.setDisabledState = function (isDisabled) {
@@ -19595,10 +19657,6 @@
19595
19657
  this.cleanViewValue();
19596
19658
  }
19597
19659
  };
19598
- PoLookupBaseComponent.prototype.cleanModel = function () {
19599
- this.cleanViewValue();
19600
- this.callOnChange(undefined);
19601
- };
19602
19660
  PoLookupBaseComponent.prototype.cleanViewValue = function () {
19603
19661
  this.setViewValue('', {});
19604
19662
  this.oldValue = '';
@@ -19668,6 +19726,7 @@
19668
19726
  optional: [{ type: i0.Input, args: ['p-optional',] }],
19669
19727
  advancedFilters: [{ type: i0.Input, args: ['p-advanced-filters',] }],
19670
19728
  infiniteScroll: [{ type: i0.Input, args: ['p-infinite-scroll',] }],
19729
+ clean: [{ type: i0.Input, args: ['p-clean',] }],
19671
19730
  onError: [{ type: i0.Output, args: ['p-error',] }],
19672
19731
  selected: [{ type: i0.Output, args: ['p-selected',] }],
19673
19732
  change: [{ type: i0.Output, args: ['p-change',] }],
@@ -19682,6 +19741,9 @@
19682
19741
  __decorate([
19683
19742
  InputBoolean()
19684
19743
  ], PoLookupBaseComponent.prototype, "infiniteScroll", void 0);
19744
+ __decorate([
19745
+ InputBoolean()
19746
+ ], PoLookupBaseComponent.prototype, "clean", void 0);
19685
19747
 
19686
19748
  /**
19687
19749
  *
@@ -20746,7 +20808,7 @@
20746
20808
  PoLookupComponent.decorators = [
20747
20809
  { type: i0.Component, args: [{
20748
20810
  selector: 'po-lookup',
20749
- template: "<po-field-container [p-label]=\"label\" [p-help]=\"help\" [p-optional]=\"!required && optional\">\n <div class=\"po-field-container-content\">\n <input\n #inp\n class=\"po-input po-input-icon-right\"\n type=\"text\"\n [autocomplete]=\"autocomplete\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n (blur)=\"searchEvent()\"\n />\n\n <div class=\"po-field-icon-container-right\">\n <span\n #iconLookup\n class=\"po-icon po-field-icon po-icon-search\"\n tabindex=\"-1\"\n [class.po-field-icon]=\"!disabled\"\n [class.po-field-icon-disabled]=\"disabled\"\n (click)=\"openLookup()\"\n (focus)=\"inp.focus()\"\n >\n </span>\n </div>\n </div>\n\n <po-field-container-bottom></po-field-container-bottom>\n</po-field-container>\n",
20811
+ template: "<po-field-container [p-label]=\"label\" [p-help]=\"help\" [p-optional]=\"!required && optional\">\n <div class=\"po-field-container-content\">\n <input\n #inp\n class=\"po-input\"\n type=\"text\"\n [ngClass]=\"clean && inp.value ? 'po-input-double-icon-right' : 'po-input-icon-right'\"\n [autocomplete]=\"autocomplete\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n (blur)=\"searchEvent()\"\n />\n\n <div class=\"po-field-icon-container-right\">\n <po-clean *ngIf=\"clean && !disabled\" [p-element-ref]=\"inputEl\" (p-change-event)=\"cleanModel()\"> </po-clean>\n\n <span\n #iconLookup\n class=\"po-icon po-field-icon po-icon-search\"\n tabindex=\"-1\"\n [class.po-field-icon]=\"!disabled\"\n [class.po-field-icon-disabled]=\"disabled\"\n (click)=\"openLookup()\"\n (focus)=\"inp.focus()\"\n >\n </span>\n </div>\n </div>\n\n <po-field-container-bottom></po-field-container-bottom>\n</po-field-container>\n",
20750
20812
  providers: providers$2
20751
20813
  },] }
20752
20814
  ];
@@ -20778,6 +20840,8 @@
20778
20840
  this.options = [];
20779
20841
  /** Propriedade que recebe a lista de opções que deverão ser criadas no dropdown. */
20780
20842
  this.visibleOptions = [];
20843
+ /** Propriedade que indica se o campo "Selecionar todos" deverá ser escondido. */
20844
+ this.hideSelectAll = false;
20781
20845
  /** Evento disparado a cada tecla digitada na pesquisa. */
20782
20846
  this.changeSearch = new i0.EventEmitter();
20783
20847
  /** Evento disparado a cada alteração na lista das opções selecionadas. */
@@ -20816,6 +20880,19 @@
20816
20880
  this.searchElement.setFocus();
20817
20881
  }
20818
20882
  };
20883
+ PoMultiselectDropdownComponent.prototype.onClickSelectAll = function () {
20884
+ var selectedValues = this.selectedOptions.map(function (_b) {
20885
+ var value = _b.value;
20886
+ return value;
20887
+ });
20888
+ if (this.everyVisibleOptionsSelected(selectedValues)) {
20889
+ this.selectedOptions = [];
20890
+ }
20891
+ else {
20892
+ this.selectedOptions = this.uniqueSelectedOptions(selectedValues);
20893
+ }
20894
+ this.change.emit(this.selectedOptions);
20895
+ };
20819
20896
  PoMultiselectDropdownComponent.prototype.updateSelectedValues = function (checked, option) {
20820
20897
  if (checked) {
20821
20898
  this.selectedOptions.push(option);
@@ -20825,6 +20902,27 @@
20825
20902
  }
20826
20903
  this.change.emit(this.selectedOptions);
20827
20904
  };
20905
+ PoMultiselectDropdownComponent.prototype.everyVisibleOptionsSelected = function (selectedValues) {
20906
+ return this.visibleOptions.every(function (visibleOption) { return selectedValues.includes(visibleOption.value); });
20907
+ };
20908
+ PoMultiselectDropdownComponent.prototype.someVisibleOptionsSelected = function (selectedValues) {
20909
+ return this.visibleOptions.some(function (visibleOption) { return selectedValues.includes(visibleOption.value); });
20910
+ };
20911
+ PoMultiselectDropdownComponent.prototype.getStateSelectAll = function () {
20912
+ var selectedValues = this.selectedOptions.map(function (_b) {
20913
+ var value = _b.value;
20914
+ return value;
20915
+ });
20916
+ if (this.everyVisibleOptionsSelected(selectedValues)) {
20917
+ return true;
20918
+ }
20919
+ else if (this.someVisibleOptionsSelected(selectedValues)) {
20920
+ return null;
20921
+ }
20922
+ else {
20923
+ return false;
20924
+ }
20925
+ };
20828
20926
  PoMultiselectDropdownComponent.prototype.callChangeSearch = function (event) {
20829
20927
  this.changeSearch.emit(event);
20830
20928
  };
@@ -20838,12 +20936,32 @@
20838
20936
  }
20839
20937
  });
20840
20938
  };
20939
+ PoMultiselectDropdownComponent.prototype.uniqueSelectedOptions = function (selectedValues) {
20940
+ var e_1, _b;
20941
+ var newSelectedOptions = __spreadArray([], __read(this.selectedOptions));
20942
+ try {
20943
+ for (var _c = __values(this.visibleOptions), _d = _c.next(); !_d.done; _d = _c.next()) {
20944
+ var visibleOption = _d.value;
20945
+ if (!selectedValues.includes(visibleOption.value)) {
20946
+ newSelectedOptions.push(visibleOption);
20947
+ }
20948
+ }
20949
+ }
20950
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
20951
+ finally {
20952
+ try {
20953
+ if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
20954
+ }
20955
+ finally { if (e_1) throw e_1.error; }
20956
+ }
20957
+ return newSelectedOptions;
20958
+ };
20841
20959
  return PoMultiselectDropdownComponent;
20842
20960
  }());
20843
20961
  PoMultiselectDropdownComponent.decorators = [
20844
20962
  { type: i0.Component, args: [{
20845
20963
  selector: 'po-multiselect-dropdown',
20846
- template: "<div #container class=\"po-multiselect-container\" [hidden]=\"!show\">\n <po-multiselect-search\n #searchElement\n *ngIf=\"!hideSearch\"\n [p-literals]=\"literals\"\n [p-placeholder]=\"placeholderSearch\"\n (p-change)=\"callChangeSearch($event)\"\n >\n </po-multiselect-search>\n\n <ul class=\"po-multiselect-items-container\" [scrollTop]=\"scrollTop\" #ulElement>\n <div *ngIf=\"!visibleOptions.length && !isServerSearching\" class=\"po-multiselect-container-no-data po-text-center\">\n <span> {{ literals.noData }}</span>\n </div>\n\n <div *ngIf=\"isServerSearching\" class=\"po-multiselect-container-loading po-text-center\">\n <po-loading></po-loading>\n </div>\n\n <ng-container *ngIf=\"!isServerSearching\">\n <po-multiselect-item\n *ngFor=\"let option of visibleOptions\"\n [p-label]=\"option.label\"\n [p-selected]=\"isSelectedItem(option)\"\n (p-change)=\"clickItem($event, option)\"\n >\n </po-multiselect-item>\n </ng-container>\n </ul>\n</div>\n"
20964
+ template: "<div #container class=\"po-multiselect-container\" [hidden]=\"!show\">\n <po-multiselect-search\n #searchElement\n *ngIf=\"!hideSearch\"\n [p-literals]=\"literals\"\n [p-placeholder]=\"placeholderSearch\"\n (p-change)=\"callChangeSearch($event)\"\n >\n </po-multiselect-search>\n\n <ul class=\"po-multiselect-items-container\" [scrollTop]=\"scrollTop\" #ulElement>\n <div *ngIf=\"!visibleOptions.length && !isServerSearching\" class=\"po-multiselect-container-no-data po-text-center\">\n <span> {{ literals.noData }}</span>\n </div>\n\n <div *ngIf=\"isServerSearching\" class=\"po-multiselect-container-loading po-text-center\">\n <po-loading></po-loading>\n </div>\n\n <ng-container *ngIf=\"!isServerSearching\">\n <po-multiselect-item\n *ngIf=\"!searchElement?.inputValue && visibleOptions.length && !hideSelectAll\"\n [p-label]=\"literals?.selectAll\"\n [p-selected]=\"getStateSelectAll()\"\n (p-change)=\"onClickSelectAll()\"\n >\n </po-multiselect-item>\n\n <po-multiselect-item\n *ngFor=\"let option of visibleOptions\"\n [p-label]=\"option.label\"\n [p-selected]=\"isSelectedItem(option)\"\n (p-change)=\"clickItem($event, option)\"\n >\n </po-multiselect-item>\n </ng-container>\n </ul>\n</div>\n"
20847
20965
  },] }
20848
20966
  ];
20849
20967
  PoMultiselectDropdownComponent.propDecorators = {
@@ -20854,6 +20972,7 @@
20854
20972
  selectedOptions: [{ type: i0.Input, args: ['p-selected-options',] }],
20855
20973
  options: [{ type: i0.Input, args: ['p-options',] }],
20856
20974
  visibleOptions: [{ type: i0.Input, args: ['p-visible-options',] }],
20975
+ hideSelectAll: [{ type: i0.Input, args: ['p-hide-select-all',] }],
20857
20976
  changeSearch: [{ type: i0.Output, args: ['p-change-search',] }],
20858
20977
  change: [{ type: i0.Output, args: ['p-change',] }],
20859
20978
  closeDropdown: [{ type: i0.Output, args: ['p-close-dropdown',] }],
@@ -20886,19 +21005,23 @@
20886
21005
  var poMultiselectLiteralsDefault = {
20887
21006
  en: {
20888
21007
  noData: 'No data found',
20889
- placeholderSearch: 'Search'
21008
+ placeholderSearch: 'Search',
21009
+ selectAll: 'Select all'
20890
21010
  },
20891
21011
  es: {
20892
21012
  noData: 'Datos no encontrados',
20893
- placeholderSearch: 'Busca'
21013
+ placeholderSearch: 'Busca',
21014
+ selectAll: 'Seleccionar todo'
20894
21015
  },
20895
21016
  pt: {
20896
21017
  noData: 'Nenhum dado encontrado',
20897
- placeholderSearch: 'Buscar'
21018
+ placeholderSearch: 'Buscar',
21019
+ selectAll: 'Selecionar todos'
20898
21020
  },
20899
21021
  ru: {
20900
21022
  noData: 'Данные не найдены',
20901
- placeholderSearch: 'искать'
21023
+ placeholderSearch: 'искать',
21024
+ selectAll: 'Выбрать все'
20902
21025
  }
20903
21026
  };
20904
21027
  /**
@@ -21363,6 +21486,9 @@
21363
21486
  });
21364
21487
  this.visibleOptionsDropdown = newOptions_1;
21365
21488
  }
21489
+ else {
21490
+ this.visibleOptionsDropdown = __spreadArray([], __read(options));
21491
+ }
21366
21492
  };
21367
21493
  PoMultiselectBaseComponent.prototype.compareMethod = function (search, option, filterMode) {
21368
21494
  switch (filterMode) {
@@ -21463,6 +21589,7 @@
21463
21589
  placeholder: [{ type: i0.Input, args: ['p-placeholder',] }],
21464
21590
  placeholderSearch: [{ type: i0.Input, args: ['p-placeholder-search',] }],
21465
21591
  name: [{ type: i0.Input, args: ['name',] }],
21592
+ hideSelectAll: [{ type: i0.Input, args: ['p-hide-select-all',] }],
21466
21593
  change: [{ type: i0.Output, args: ['p-change',] }],
21467
21594
  filterService: [{ type: i0.Input, args: ['p-filter-service',] }],
21468
21595
  autoHeight: [{ type: i0.Input, args: ['p-auto-height',] }],
@@ -21480,6 +21607,9 @@
21480
21607
  __decorate([
21481
21608
  InputBoolean()
21482
21609
  ], PoMultiselectBaseComponent.prototype, "autoFocus", void 0);
21610
+ __decorate([
21611
+ InputBoolean()
21612
+ ], PoMultiselectBaseComponent.prototype, "hideSelectAll", void 0);
21483
21613
  __decorate([
21484
21614
  InputBoolean()
21485
21615
  ], PoMultiselectBaseComponent.prototype, "autoHeight", null);
@@ -21879,7 +22009,7 @@
21879
22009
  PoMultiselectComponent.decorators = [
21880
22010
  { type: i0.Component, args: [{
21881
22011
  selector: 'po-multiselect',
21882
- template: "<po-field-container [p-label]=\"label\" [p-help]=\"help\" [p-optional]=\"!required && optional\">\n <div class=\"po-field-container-content\" [class.po-multiselect-show]=\"dropdownOpen\">\n <div\n #inputElement\n [tabindex]=\"disabled ? -1 : 0\"\n class=\"po-input po-input-icon-right po-multiselect-input po-clickable\"\n [class.po-multiselect-input-auto]=\"autoHeight\"\n [class.po-multiselect-input-static]=\"!autoHeight\"\n [class.po-multiselect-input-disabled]=\"disabled\"\n (keyup.enter)=\"toggleDropdownVisibility()\"\n (keydown)=\"onKeyDown($event)\"\n (click)=\"toggleDropdownVisibility()\"\n (blur)=\"onBlur()\"\n >\n <span *ngIf=\"placeholder && !visibleDisclaimers?.length\" class=\"po-multiselect-input-placeholder\">\n {{ placeholder }}\n </span>\n\n <po-disclaimer\n *ngFor=\"let disclaimer of visibleDisclaimers\"\n class=\"po-multiselect-input-disclaimer\"\n [p-label]=\"disclaimer.label\"\n [p-value]=\"disclaimer.value\"\n [p-hide-close]=\"disclaimer.value === '' || disabled\"\n [class.po-clickable]=\"disclaimer.value === '' && !disabled\"\n (click)=\"openDropdown(disclaimer.value === '')\"\n (p-close-action)=\"closeDisclaimer(disclaimer.value)\"\n >\n </po-disclaimer>\n\n <div class=\"po-field-icon-container-right\">\n <span\n #iconElement\n class=\"po-icon po-field-icon {{ dropdownIcon }}\"\n [ngClass]=\"disabled ? 'po-field-icon-disabled' : ''\"\n >\n </span>\n </div>\n </div>\n </div>\n\n <po-multiselect-dropdown\n #dropdownElement\n [p-searching]=\"isServerSearching\"\n [p-hide-search]=\"hideSearch\"\n [p-literals]=\"literals\"\n [p-options]=\"options\"\n [p-visible-options]=\"visibleOptionsDropdown\"\n [p-selected-options]=\"selectedOptions\"\n [p-placeholder-search]=\"placeholderSearch\"\n (p-change)=\"changeItems($event)\"\n (p-change-search)=\"changeSearch($event)\"\n (p-close-dropdown)=\"controlDropdownVisibility(false)\"\n >\n </po-multiselect-dropdown>\n\n <po-field-container-bottom></po-field-container-bottom>\n</po-field-container>\n",
22012
+ template: "<po-field-container [p-label]=\"label\" [p-help]=\"help\" [p-optional]=\"!required && optional\">\n <div class=\"po-field-container-content\" [class.po-multiselect-show]=\"dropdownOpen\">\n <div\n #inputElement\n [tabindex]=\"disabled ? -1 : 0\"\n class=\"po-input po-input-icon-right po-multiselect-input po-clickable\"\n [class.po-multiselect-input-auto]=\"autoHeight\"\n [class.po-multiselect-input-static]=\"!autoHeight\"\n [class.po-multiselect-input-disabled]=\"disabled\"\n (keyup.enter)=\"toggleDropdownVisibility()\"\n (keydown)=\"onKeyDown($event)\"\n (click)=\"toggleDropdownVisibility()\"\n (blur)=\"onBlur()\"\n >\n <span *ngIf=\"placeholder && !visibleDisclaimers?.length\" class=\"po-multiselect-input-placeholder\">\n {{ placeholder }}\n </span>\n\n <po-disclaimer\n *ngFor=\"let disclaimer of visibleDisclaimers\"\n class=\"po-multiselect-input-disclaimer\"\n [p-label]=\"disclaimer.label\"\n [p-value]=\"disclaimer.value\"\n [p-hide-close]=\"disclaimer.value === '' || disabled\"\n [class.po-clickable]=\"disclaimer.value === '' && !disabled\"\n (click)=\"openDropdown(disclaimer.value === '')\"\n (p-close-action)=\"closeDisclaimer(disclaimer.value)\"\n >\n </po-disclaimer>\n\n <div class=\"po-field-icon-container-right\">\n <span\n #iconElement\n class=\"po-icon po-field-icon {{ dropdownIcon }}\"\n [ngClass]=\"disabled ? 'po-field-icon-disabled' : ''\"\n >\n </span>\n </div>\n </div>\n </div>\n\n <po-multiselect-dropdown\n #dropdownElement\n [p-searching]=\"isServerSearching\"\n [p-hide-search]=\"hideSearch\"\n [p-hide-select-all]=\"hideSelectAll\"\n [p-literals]=\"literals\"\n [p-options]=\"options\"\n [p-visible-options]=\"visibleOptionsDropdown\"\n [p-selected-options]=\"selectedOptions\"\n [p-placeholder-search]=\"placeholderSearch\"\n (p-change)=\"changeItems($event)\"\n (p-change-search)=\"changeSearch($event)\"\n (p-close-dropdown)=\"controlDropdownVisibility(false)\"\n >\n </po-multiselect-dropdown>\n\n <po-field-container-bottom></po-field-container-bottom>\n</po-field-container>\n",
21883
22013
  providers: providers$1
21884
22014
  },] }
21885
22015
  ];
@@ -21907,7 +22037,7 @@
21907
22037
  */
21908
22038
  var PoMultiselectItemComponent = /** @class */ (function () {
21909
22039
  function PoMultiselectItemComponent() {
21910
- /** Esta propriedade indica se o campo está selecionado ou não. */
22040
+ /** Esta propriedade indica se o campo está selecionado, indenterminate ou não. */
21911
22041
  this.selected = false;
21912
22042
  /** Evento que será disparado toda vez que o usuário marcar ou desmarcar um item. */
21913
22043
  this.change = new i0.EventEmitter();
@@ -21921,7 +22051,7 @@
21921
22051
  PoMultiselectItemComponent.decorators = [
21922
22052
  { type: i0.Component, args: [{
21923
22053
  selector: 'po-multiselect-item',
21924
- template: "<li [class.po-multiselect-item-selected]=\"selected\" (click)=\"itemClicked()\">\n <a class=\"po-multiselect-item\">\n <input\n [checked]=\"selected\"\n class=\"po-multiselect-checkbox-input\"\n [class.po-multiselect-checkbox-input-checked]=\"selected\"\n type=\"checkbox\"\n />\n\n <label class=\"po-multiselect-checkbox-label po-clickable\">\n {{ label }}\n </label>\n </a>\n</li>\n",
22054
+ template: "<li [class.po-multiselect-item-selected]=\"selected\" (click)=\"itemClicked()\">\n <a class=\"po-multiselect-item\">\n <input\n [checked]=\"selected\"\n class=\"po-multiselect-checkbox-input\"\n [class.po-multiselect-checkbox-input-indeterminate]=\"selected === null\"\n [class.po-multiselect-checkbox-input-checked]=\"selected\"\n type=\"checkbox\"\n />\n\n <label class=\"po-multiselect-checkbox-label po-clickable\">\n {{ label }}\n </label>\n </a>\n</li>\n",
21925
22055
  changeDetection: i0.ChangeDetectionStrategy.OnPush
21926
22056
  },] }
21927
22057
  ];
@@ -21964,6 +22094,13 @@
21964
22094
  enumerable: false,
21965
22095
  configurable: true
21966
22096
  });
22097
+ Object.defineProperty(PoMultiselectSearchComponent.prototype, "inputValue", {
22098
+ get: function () {
22099
+ return this.inputElement.nativeElement.value;
22100
+ },
22101
+ enumerable: false,
22102
+ configurable: true
22103
+ });
21967
22104
  PoMultiselectSearchComponent.prototype.onChange = function (event) {
21968
22105
  this.change.emit({ event: event, value: this.inputElement.nativeElement.value });
21969
22106
  };
@@ -23192,8 +23329,8 @@
23192
23329
  var PoInputComponent = /** @class */ (function (_super) {
23193
23330
  __extends(PoInputComponent, _super);
23194
23331
  /* istanbul ignore next */
23195
- function PoInputComponent(el) {
23196
- return _super.call(this, el) || this;
23332
+ function PoInputComponent(el, cd) {
23333
+ return _super.call(this, el, cd) || this;
23197
23334
  }
23198
23335
  PoInputComponent.prototype.extraValidation = function (c) {
23199
23336
  return null;
@@ -23215,11 +23352,13 @@
23215
23352
  useExisting: i0.forwardRef(function () { return PoInputComponent; }),
23216
23353
  multi: true
23217
23354
  }
23218
- ]
23355
+ ],
23356
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
23219
23357
  },] }
23220
23358
  ];
23221
23359
  PoInputComponent.ctorParameters = function () { return [
23222
- { type: i0.ElementRef }
23360
+ { type: i0.ElementRef },
23361
+ { type: i0.ChangeDetectorRef }
23223
23362
  ]; };
23224
23363
 
23225
23364
  var PoNumberBaseComponent = /** @class */ (function (_super) {
@@ -24426,37 +24565,8 @@
24426
24565
  onKeydown: [{ type: i0.HostListener, args: ['keydown', ['$event'],] }]
24427
24566
  };
24428
24567
 
24429
- /**
24430
- * @usedBy PoSwitchComponent
24431
- *
24432
- * @description
24433
- *
24434
- * Enum para posicionar o label do valor do po-switch.
24435
- */
24436
- exports.PoSwitchLabelPosition = void 0;
24437
- (function (PoSwitchLabelPosition) {
24438
- /** Posiciona o label do lado esquerdo do switch. */
24439
- PoSwitchLabelPosition[PoSwitchLabelPosition["Right"] = 0] = "Right";
24440
- /** Posiciona o label do lado direito do switch. */
24441
- PoSwitchLabelPosition[PoSwitchLabelPosition["Left"] = 1] = "Left";
24442
- })(exports.PoSwitchLabelPosition || (exports.PoSwitchLabelPosition = {}));
24443
-
24444
- /**
24445
- * @description
24446
- *
24447
- * O componente `po-switch` é um [checkbox](/documentation/po-checkbox-group) mais intuitivo, pois faz analogia a um interruptor.
24448
- * Deve ser usado quando deseja-se transmitir a ideia de ligar / desligar uma funcionalidade específica.
24449
- *
24450
- * Pode-se ligar ou deligar o botão utilizando a tecla de espaço ou o clique do mouse.
24451
- *
24452
- * O texto exibido pode ser alterado de acordo com o valor setado aumentando as possibilidades de uso do componente,
24453
- * portanto, recomenda-se informar textos que contextualizem seu uso para que facilite a compreensão do usuário.
24454
- *
24455
- * > O componente não altera o valor incial informado no *model*, portanto indica-se inicializa-lo caso ter necessidade.
24456
- */
24457
- var PoSwitchBaseComponent = /** @class */ (function () {
24458
- function PoSwitchBaseComponent(changeDetector) {
24459
- this.changeDetector = changeDetector;
24568
+ var PoFieldModel = /** @class */ (function () {
24569
+ function PoFieldModel() {
24460
24570
  /**
24461
24571
  * @optional
24462
24572
  *
@@ -24474,145 +24584,89 @@
24474
24584
  *
24475
24585
  * @description
24476
24586
  *
24477
- * Evento disparado ao alterar valor do campo.
24478
- */
24479
- this.change = new i0.EventEmitter();
24480
- /**
24481
- * @optional
24482
- *
24483
- * @description
24484
- *
24485
- * Função para atualizar o ngModel do componente, necessário quando não for utilizado dentro da tag form.
24486
- */
24487
- this.ngModelChange = new i0.EventEmitter();
24488
- this.switchValue = false;
24489
- this._disabled = false;
24490
- /**
24491
- * Texto exibido quando o valor do componente for `true`.
24492
- *
24493
- * @default `true`
24494
- */
24495
- // eslint-disable-next-line @typescript-eslint/member-ordering
24496
- this.labelOn = 'true';
24497
- /**
24498
- * Texto exibido quando o valor do componente for `false`.
24587
+ * Indica se o campo será desabilitado.
24499
24588
  *
24500
24589
  * @default `false`
24501
24590
  */
24502
- // eslint-disable-next-line @typescript-eslint/member-ordering
24503
- this.labelOff = 'false';
24591
+ this.disabled = false;
24504
24592
  /**
24505
24593
  * @optional
24506
24594
  *
24507
24595
  * @description
24508
24596
  *
24509
- * Posição de exibição do rótulo.
24510
- *
24511
- * > Por padrão exibe à direita.
24597
+ * Evento disparado ao alterar valor do campo.
24512
24598
  */
24513
- // eslint-disable-next-line @typescript-eslint/member-ordering
24514
- this.labelPosition = exports.PoSwitchLabelPosition.Right;
24599
+ this.change = new i0.EventEmitter();
24515
24600
  }
24516
- Object.defineProperty(PoSwitchBaseComponent.prototype, "setLabelOn", {
24517
- set: function (label) {
24518
- this.labelOn = label || 'true';
24519
- },
24520
- enumerable: false,
24521
- configurable: true
24522
- });
24523
- Object.defineProperty(PoSwitchBaseComponent.prototype, "setLabelOff", {
24524
- set: function (label) {
24525
- this.labelOff = label || 'false';
24526
- },
24527
- enumerable: false,
24528
- configurable: true
24529
- });
24530
- Object.defineProperty(PoSwitchBaseComponent.prototype, "setLabelPosition", {
24531
- set: function (position) {
24532
- this.labelPosition = position in exports.PoSwitchLabelPosition ? parseInt(position, 10) : exports.PoSwitchLabelPosition.Right;
24533
- },
24534
- enumerable: false,
24535
- configurable: true
24536
- });
24537
- Object.defineProperty(PoSwitchBaseComponent.prototype, "disabled", {
24538
- get: function () {
24539
- return this._disabled;
24540
- },
24541
- /**
24542
- * @optional
24543
- *
24544
- * @description
24545
- *
24546
- * Indica se o campo será desabilitado.
24547
- *
24548
- * @default `false`
24549
- */
24550
- set: function (disabled) {
24551
- this._disabled = convertToBoolean(disabled);
24552
- },
24553
- enumerable: false,
24554
- configurable: true
24555
- });
24556
- PoSwitchBaseComponent.prototype.changeValue = function (value) {
24557
- if (this.switchValue !== value) {
24558
- this.switchValue = value;
24559
- if (this.propagateChange) {
24560
- this.propagateChange(value);
24561
- }
24562
- else {
24563
- this.ngModelChange.emit(value);
24564
- }
24565
- this.change.emit(this.switchValue);
24566
- }
24567
- };
24568
- PoSwitchBaseComponent.prototype.eventClick = function () {
24569
- if (!this.disabled) {
24570
- this.changeValue(!this.switchValue);
24571
- }
24572
- };
24573
24601
  // Função implementada do ControlValueAccessor
24574
24602
  // Usada para interceptar os estados de habilitado via forms api
24575
- PoSwitchBaseComponent.prototype.setDisabledState = function (isDisabled) {
24603
+ PoFieldModel.prototype.setDisabledState = function (isDisabled) {
24576
24604
  this.disabled = isDisabled;
24577
24605
  };
24578
- PoSwitchBaseComponent.prototype.registerOnChange = function (fn) {
24606
+ PoFieldModel.prototype.registerOnChange = function (fn) {
24579
24607
  this.propagateChange = fn;
24580
24608
  };
24581
- PoSwitchBaseComponent.prototype.registerOnTouched = function (fn) {
24609
+ PoFieldModel.prototype.registerOnTouched = function (fn) {
24582
24610
  this.onTouched = fn;
24583
24611
  };
24584
- PoSwitchBaseComponent.prototype.writeValue = function (value) {
24585
- if (value !== this.switchValue) {
24586
- this.switchValue = !!value;
24587
- this.changeDetector.markForCheck();
24612
+ PoFieldModel.prototype.writeValue = function (value) {
24613
+ this.onWriteValue(value);
24614
+ };
24615
+ PoFieldModel.prototype.updateModel = function (value) {
24616
+ if (this.propagateChange) {
24617
+ this.propagateChange(value);
24588
24618
  }
24589
24619
  };
24590
- return PoSwitchBaseComponent;
24620
+ return PoFieldModel;
24591
24621
  }());
24592
- PoSwitchBaseComponent.decorators = [
24622
+ PoFieldModel.decorators = [
24593
24623
  { type: i0.Directive }
24594
24624
  ];
24595
- PoSwitchBaseComponent.ctorParameters = function () { return [
24596
- { type: i0.ChangeDetectorRef }
24597
- ]; };
24598
- PoSwitchBaseComponent.propDecorators = {
24599
- name: [{ type: i0.Input, args: ['name',] }],
24600
- autoFocus: [{ type: i0.Input, args: ['p-auto-focus',] }],
24625
+ PoFieldModel.ctorParameters = function () { return []; };
24626
+ PoFieldModel.propDecorators = {
24601
24627
  label: [{ type: i0.Input, args: ['p-label',] }],
24628
+ name: [{ type: i0.Input, args: ['name',] }],
24602
24629
  help: [{ type: i0.Input, args: ['p-help',] }],
24603
- change: [{ type: i0.Output, args: ['p-change',] }],
24604
- ngModelChange: [{ type: i0.Output, args: ['ngModelChange',] }],
24605
- setLabelOn: [{ type: i0.Input, args: ['p-label-on',] }],
24606
- setLabelOff: [{ type: i0.Input, args: ['p-label-off',] }],
24607
- setLabelPosition: [{ type: i0.Input, args: ['p-label-position',] }],
24608
- disabled: [{ type: i0.Input, args: ['p-disabled',] }]
24630
+ autoFocus: [{ type: i0.Input, args: ['p-auto-focus',] }],
24631
+ disabled: [{ type: i0.Input, args: ['p-disabled',] }],
24632
+ change: [{ type: i0.Output, args: ['p-change',] }]
24609
24633
  };
24610
24634
  __decorate([
24611
24635
  InputBoolean()
24612
- ], PoSwitchBaseComponent.prototype, "autoFocus", void 0);
24636
+ ], PoFieldModel.prototype, "autoFocus", void 0);
24637
+ __decorate([
24638
+ InputBoolean()
24639
+ ], PoFieldModel.prototype, "disabled", void 0);
24640
+
24641
+ /**
24642
+ * @usedBy PoSwitchComponent
24643
+ *
24644
+ * @description
24645
+ *
24646
+ * Enum para posicionar o label do valor do po-switch.
24647
+ */
24648
+ exports.PoSwitchLabelPosition = void 0;
24649
+ (function (PoSwitchLabelPosition) {
24650
+ /** Posiciona o label do lado esquerdo do switch. */
24651
+ PoSwitchLabelPosition[PoSwitchLabelPosition["Right"] = 0] = "Right";
24652
+ /** Posiciona o label do lado direito do switch. */
24653
+ PoSwitchLabelPosition[PoSwitchLabelPosition["Left"] = 1] = "Left";
24654
+ })(exports.PoSwitchLabelPosition || (exports.PoSwitchLabelPosition = {}));
24613
24655
 
24614
24656
  /**
24615
- * @docsExtends PoSwitchBaseComponent
24657
+ * @docsExtends PoFieldModel
24658
+ *
24659
+ * @description
24660
+ *
24661
+ * O componente `po-switch` é um [checkbox](/documentation/po-checkbox-group) mais intuitivo, pois faz analogia a um interruptor.
24662
+ * Deve ser usado quando deseja-se transmitir a ideia de ligar / desligar uma funcionalidade específica.
24663
+ *
24664
+ * Pode-se ligar ou deligar o botão utilizando a tecla de espaço ou o clique do mouse.
24665
+ *
24666
+ * O texto exibido pode ser alterado de acordo com o valor setado aumentando as possibilidades de uso do componente,
24667
+ * portanto, recomenda-se informar textos que contextualizem seu uso para que facilite a compreensão do usuário.
24668
+ *
24669
+ * > O componente não altera o valor incial informado no *model*, portanto indica-se inicializa-lo caso ter necessidade.
24616
24670
  *
24617
24671
  * @example
24618
24672
  *
@@ -24641,8 +24695,63 @@
24641
24695
  var PoSwitchComponent = /** @class */ (function (_super) {
24642
24696
  __extends(PoSwitchComponent, _super);
24643
24697
  function PoSwitchComponent(changeDetector) {
24644
- return _super.call(this, changeDetector) || this;
24698
+ var _this = _super.call(this) || this;
24699
+ _this.changeDetector = changeDetector;
24700
+ _this.value = false;
24701
+ _this._labelOff = 'false';
24702
+ _this._labelOn = 'true';
24703
+ _this._labelPosition = exports.PoSwitchLabelPosition.Right;
24704
+ return _this;
24645
24705
  }
24706
+ Object.defineProperty(PoSwitchComponent.prototype, "labelPosition", {
24707
+ get: function () {
24708
+ return this._labelPosition;
24709
+ },
24710
+ /**
24711
+ * @optional
24712
+ *
24713
+ * @description
24714
+ *
24715
+ * Posição de exibição do rótulo.
24716
+ *
24717
+ * > Por padrão exibe à direita.
24718
+ */
24719
+ set: function (position) {
24720
+ this._labelPosition = position in exports.PoSwitchLabelPosition ? parseInt(position, 10) : exports.PoSwitchLabelPosition.Right;
24721
+ },
24722
+ enumerable: false,
24723
+ configurable: true
24724
+ });
24725
+ Object.defineProperty(PoSwitchComponent.prototype, "labelOff", {
24726
+ get: function () {
24727
+ return this._labelOff;
24728
+ },
24729
+ /**
24730
+ * Texto exibido quando o valor do componente for `false`.
24731
+ *
24732
+ * @default `false`
24733
+ */
24734
+ set: function (label) {
24735
+ this._labelOff = label || 'false';
24736
+ },
24737
+ enumerable: false,
24738
+ configurable: true
24739
+ });
24740
+ Object.defineProperty(PoSwitchComponent.prototype, "labelOn", {
24741
+ get: function () {
24742
+ return this._labelOn;
24743
+ },
24744
+ /**
24745
+ * Texto exibido quando o valor do componente for `true`.
24746
+ *
24747
+ * @default `true`
24748
+ */
24749
+ set: function (label) {
24750
+ this._labelOn = label || 'true';
24751
+ },
24752
+ enumerable: false,
24753
+ configurable: true
24754
+ });
24646
24755
  PoSwitchComponent.prototype.ngAfterViewInit = function () {
24647
24756
  if (this.autoFocus) {
24648
24757
  this.focus();
@@ -24695,17 +24804,35 @@
24695
24804
  }
24696
24805
  };
24697
24806
  PoSwitchComponent.prototype.onKeyDown = function (event) {
24698
- if (event.which === 32 || event.keyCode === 32) {
24807
+ if (event.which === PoKeyCodeEnum.space || event.keyCode === PoKeyCodeEnum.space) {
24699
24808
  event.preventDefault();
24700
24809
  this.eventClick();
24701
24810
  }
24702
24811
  };
24812
+ PoSwitchComponent.prototype.changeValue = function (value) {
24813
+ if (this.value !== value) {
24814
+ this.value = value;
24815
+ this.updateModel(value);
24816
+ this.change.emit(this.value);
24817
+ }
24818
+ };
24819
+ PoSwitchComponent.prototype.eventClick = function () {
24820
+ if (!this.disabled) {
24821
+ this.changeValue(!this.value);
24822
+ }
24823
+ };
24824
+ PoSwitchComponent.prototype.onWriteValue = function (value) {
24825
+ if (value !== this.value) {
24826
+ this.value = !!value;
24827
+ this.changeDetector.markForCheck();
24828
+ }
24829
+ };
24703
24830
  return PoSwitchComponent;
24704
- }(PoSwitchBaseComponent));
24831
+ }(PoFieldModel));
24705
24832
  PoSwitchComponent.decorators = [
24706
24833
  { type: i0.Component, args: [{
24707
24834
  selector: 'po-switch',
24708
- template: "<po-field-container [p-label]=\"label\" [p-help]=\"help\">\n <div class=\"po-field-container-content po-switch-content\" [attr.name]=\"name\">\n <div\n class=\"po-switch-container po-clickable\"\n #switchContainer\n [class.po-switch-container-disabled]=\"disabled\"\n [class.po-switch-container-off]=\"switchValue === false && !disabled\"\n [class.po-switch-container-on]=\"switchValue === true && !disabled\"\n [class.po-switch-container-right]=\"getSwitchPosition() === 'right'\"\n [tabindex]=\"disabled ? -1 : 0\"\n (click)=\"eventClick()\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"onBlur()\"\n >\n <div\n class=\"po-switch-button\"\n [class.po-switch-button-on]=\"switchValue === true\"\n [class.po-switch-button-off]=\"switchValue === false\"\n [class.po-switch-button-disabled]=\"disabled\"\n >\n <span class=\"po-icon po-icon-{{ switchValue === true ? 'ok' : 'close' }}\"></span>\n </div>\n </div>\n\n <span class=\"po-switch-label po-clickable po-switch-label-{{ getLabelPosition() }}\" (click)=\"eventClick()\">\n {{ switchValue === true ? labelOn : labelOff }}\n </span>\n </div>\n\n <po-field-container-bottom></po-field-container-bottom>\n</po-field-container>\n",
24835
+ template: "<po-field-container [p-label]=\"label\" [p-help]=\"help\">\n <div class=\"po-field-container-content po-switch-content\" [attr.name]=\"name\">\n <div\n class=\"po-switch-container po-clickable\"\n #switchContainer\n [class.po-switch-container-disabled]=\"disabled\"\n [class.po-switch-container-off]=\"value === false && !disabled\"\n [class.po-switch-container-on]=\"value === true && !disabled\"\n [class.po-switch-container-right]=\"getSwitchPosition() === 'right'\"\n [tabindex]=\"disabled ? -1 : 0\"\n (click)=\"eventClick()\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"onBlur()\"\n >\n <div\n class=\"po-switch-button\"\n [class.po-switch-button-on]=\"value === true\"\n [class.po-switch-button-off]=\"value === false\"\n [class.po-switch-button-disabled]=\"disabled\"\n >\n <span class=\"po-icon po-icon-{{ value === true ? 'ok' : 'close' }}\"></span>\n </div>\n </div>\n\n <span class=\"po-switch-label po-clickable po-switch-label-{{ getLabelPosition() }}\" (click)=\"eventClick()\">\n {{ value === true ? labelOn : labelOff }}\n </span>\n </div>\n\n <po-field-container-bottom></po-field-container-bottom>\n</po-field-container>\n",
24709
24836
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
24710
24837
  providers: [
24711
24838
  {
@@ -24720,7 +24847,10 @@
24720
24847
  { type: i0.ChangeDetectorRef }
24721
24848
  ]; };
24722
24849
  PoSwitchComponent.propDecorators = {
24723
- switchContainer: [{ type: i0.ViewChild, args: ['switchContainer', { static: true },] }]
24850
+ switchContainer: [{ type: i0.ViewChild, args: ['switchContainer', { static: true },] }],
24851
+ labelPosition: [{ type: i0.Input, args: ['p-label-position',] }],
24852
+ labelOff: [{ type: i0.Input, args: ['p-label-off',] }],
24853
+ labelOn: [{ type: i0.Input, args: ['p-label-on',] }]
24724
24854
  };
24725
24855
 
24726
24856
  /**
@@ -27750,7 +27880,7 @@
27750
27880
  return 'switch';
27751
27881
  }
27752
27882
  else if (this.compareTo(type, exports.PoDynamicFieldType.Date) || this.compareTo(type, exports.PoDynamicFieldType.DateTime)) {
27753
- return 'datepicker';
27883
+ return field.range ? 'datepickerrange' : 'datepicker';
27754
27884
  }
27755
27885
  else if (this.compareTo(type, exports.PoDynamicFieldType.Time)) {
27756
27886
  field.mask = field.mask || '99:99';
@@ -27875,16 +28005,17 @@
27875
28005
  };
27876
28006
  PoDynamicFormFieldsComponent.prototype.onChangeField = function (visibleField, objectValue) {
27877
28007
  return __awaiter(this, void 0, void 0, function () {
27878
- var property, isChangedValueField, _b, changedField, changedFieldIndex;
28008
+ var property, isBooleanType, isChangedValueField, _b, changedField, changedFieldIndex;
27879
28009
  return __generator(this, function (_c) {
27880
28010
  switch (_c.label) {
27881
28011
  case 0:
27882
28012
  property = visibleField.property;
28013
+ isBooleanType = visibleField.type === 'boolean';
27883
28014
  isChangedValueField = this.previousValue[property] !== this.value[property];
27884
28015
  if (visibleField.optionsService) {
27885
28016
  this.objectValue.emit(objectValue);
27886
28017
  }
27887
- if (!(this.form.touched && isChangedValueField)) return [3 /*break*/, 3];
28018
+ if (!((this.form.touched || isBooleanType) && isChangedValueField)) return [3 /*break*/, 3];
27888
28019
  _b = this.getField(property), changedField = _b.changedField, changedFieldIndex = _b.changedFieldIndex;
27889
28020
  if (!changedField.validate) return [3 /*break*/, 2];
27890
28021
  return [4 /*yield*/, this.validateField(changedField, changedFieldIndex, visibleField)];
@@ -27974,7 +28105,7 @@
27974
28105
  PoDynamicFormFieldsComponent.decorators = [
27975
28106
  { type: i0.Component, args: [{
27976
28107
  selector: 'po-dynamic-form-fields',
27977
- template: "<div class=\"po-row\" *ngIf=\"visibleFields && visibleFields.length > 0\">\n <ng-container *ngFor=\"let field of visibleFields; trackBy: trackBy\">\n <po-divider *ngIf=\"field?.divider?.trim()\" class=\"po-sm-12\" [p-label]=\"field.divider\"> </po-divider>\n\n <po-datepicker\n #component\n *ngIf=\"compareTo(field.control, 'datepicker')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-clean\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-auto-focus]=\"field.focus\"\n [p-format]=\"field.format\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-locale]=\"field.locale\"\n [p-max-date]=\"field.maxValue\"\n [p-min-date]=\"field.minValue\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-datepicker>\n\n <po-input\n #component\n *ngIf=\"compareTo(field.control, 'input')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-clean\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-mask-format-model]=\"field.maskFormatModel\"\n [p-mask]=\"field.mask\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-optional]=\"field.optional\"\n [p-pattern]=\"field.pattern\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n [p-icon]=\"field.icon\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-input>\n\n <po-number\n #component\n *ngIf=\"compareTo(field.control, 'number')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-clean\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-min]=\"field.minValue\"\n [p-max]=\"field.maxValue\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n [p-icon]=\"field.icon\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-number>\n\n <po-decimal\n #component\n *ngIf=\"compareTo(field.control, 'decimal')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-clean\n [p-disabled]=\"isDisabled(field)\"\n [p-decimals-length]=\"field.decimalsLength\"\n [p-thousand-maxlength]=\"field.thousandMaxlength\"\n [p-icon]=\"field.icon\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-locale]=\"field.locale\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-decimal>\n\n <po-select\n #component\n *ngIf=\"compareTo(field.control, 'select')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [p-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-select>\n\n <po-radio-group\n #component\n *ngIf=\"compareTo(field.control, 'radioGroup')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-columns=\"3\"\n [p-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n >\n </po-radio-group>\n\n <po-switch\n #component\n *ngIf=\"compareTo(field.control, 'switch')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [p-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-label-off]=\"field.booleanFalse\"\n [p-label-on]=\"field.booleanTrue\"\n (p-change)=\"onChangeField(field)\"\n >\n </po-switch>\n\n <po-combo\n #component\n *ngIf=\"compareTo(field.control, 'combo')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-emit-object-value\n [p-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-field-label]=\"field.fieldLabel\"\n [p-field-value]=\"field.fieldValue\"\n [p-filter-params]=\"field.params\"\n [p-filter-service]=\"field.optionsService\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field, $event)\"\n [p-icon]=\"field.icon\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-combo>\n\n <po-lookup\n #component\n *ngIf=\"compareTo(field.control, 'lookup')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n p-field-label=\"label\"\n p-field-value=\"value\"\n [ngClass]=\"field.componentClass\"\n [p-columns]=\"field.columns\"\n [p-disabled]=\"isDisabled(field)\"\n [p-field-label]=\"field.fieldLabel || 'label'\"\n [p-field-value]=\"field.fieldValue || 'value'\"\n [p-filter-params]=\"field.params\"\n [p-filter-service]=\"field.searchService\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-field-format]=\"field.format\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-lookup>\n\n <po-checkbox-group\n #component\n *ngIf=\"compareTo(field.control, 'checkboxGroup')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-columns=\"3\"\n [p-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n >\n </po-checkbox-group>\n\n <po-multiselect\n #component\n *ngIf=\"compareTo(field.control, 'multiselect')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [p-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-multiselect>\n\n <po-textarea\n #component\n *ngIf=\"compareTo(field.control, 'textarea')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [p-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n [p-rows]=\"field.rows\"\n (p-change)=\"onChangeField(field)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-textarea>\n\n <po-password\n #component\n *ngIf=\"compareTo(field.control, 'password')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-clean\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-optional]=\"field.optional\"\n [p-pattern]=\"field.pattern\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-password>\n </ng-container>\n</div>\n",
28108
+ template: "<div class=\"po-row\" *ngIf=\"visibleFields && visibleFields.length > 0\">\n <ng-container *ngFor=\"let field of visibleFields; trackBy: trackBy\">\n <po-divider *ngIf=\"field?.divider?.trim()\" class=\"po-sm-12\" [p-label]=\"field.divider\"> </po-divider>\n\n <po-datepicker\n #component\n *ngIf=\"compareTo(field.control, 'datepicker')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-clean\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-auto-focus]=\"field.focus\"\n [p-format]=\"field.format\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-locale]=\"field.locale\"\n [p-max-date]=\"field.maxValue\"\n [p-min-date]=\"field.minValue\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-datepicker>\n\n <po-datepicker-range\n #component\n *ngIf=\"compareTo(field.control, 'datepickerrange')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-clean\n [p-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n >\n </po-datepicker-range>\n\n <po-input\n #component\n *ngIf=\"compareTo(field.control, 'input')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-clean\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-mask-format-model]=\"field.maskFormatModel\"\n [p-mask]=\"field.mask\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-optional]=\"field.optional\"\n [p-pattern]=\"field.pattern\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n [p-icon]=\"field.icon\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-input>\n\n <po-number\n #component\n *ngIf=\"compareTo(field.control, 'number')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-clean\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-min]=\"field.minValue\"\n [p-max]=\"field.maxValue\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n [p-icon]=\"field.icon\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-number>\n\n <po-decimal\n #component\n *ngIf=\"compareTo(field.control, 'decimal')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-clean\n [p-disabled]=\"isDisabled(field)\"\n [p-decimals-length]=\"field.decimalsLength\"\n [p-thousand-maxlength]=\"field.thousandMaxlength\"\n [p-icon]=\"field.icon\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-locale]=\"field.locale\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-decimal>\n\n <po-select\n #component\n *ngIf=\"compareTo(field.control, 'select')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [p-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-select>\n\n <po-radio-group\n #component\n *ngIf=\"compareTo(field.control, 'radioGroup')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-columns=\"3\"\n [p-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n >\n </po-radio-group>\n\n <po-switch\n #component\n *ngIf=\"compareTo(field.control, 'switch')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [p-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-label-off]=\"field.booleanFalse\"\n [p-label-on]=\"field.booleanTrue\"\n (p-change)=\"onChangeField(field)\"\n >\n </po-switch>\n\n <po-combo\n #component\n *ngIf=\"compareTo(field.control, 'combo')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-emit-object-value\n [p-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-field-label]=\"field.fieldLabel\"\n [p-field-value]=\"field.fieldValue\"\n [p-filter-params]=\"field.params\"\n [p-filter-service]=\"field.optionsService\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field, $event)\"\n [p-icon]=\"field.icon\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-combo>\n\n <po-lookup\n #component\n *ngIf=\"compareTo(field.control, 'lookup')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n p-field-label=\"label\"\n p-field-value=\"value\"\n [ngClass]=\"field.componentClass\"\n [p-columns]=\"field.columns\"\n [p-disabled]=\"isDisabled(field)\"\n [p-field-label]=\"field.fieldLabel || 'label'\"\n [p-field-value]=\"field.fieldValue || 'value'\"\n [p-filter-params]=\"field.params\"\n [p-filter-service]=\"field.searchService\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-field-format]=\"field.format\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-lookup>\n\n <po-checkbox-group\n #component\n *ngIf=\"compareTo(field.control, 'checkboxGroup')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-columns=\"3\"\n [p-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n >\n </po-checkbox-group>\n\n <po-multiselect\n #component\n *ngIf=\"compareTo(field.control, 'multiselect')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [p-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-multiselect>\n\n <po-textarea\n #component\n *ngIf=\"compareTo(field.control, 'textarea')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [p-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n [p-rows]=\"field.rows\"\n (p-change)=\"onChangeField(field)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-textarea>\n\n <po-password\n #component\n *ngIf=\"compareTo(field.control, 'password')\"\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-clean\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-optional]=\"field.optional\"\n [p-pattern]=\"field.pattern\"\n [p-required]=\"field.required\"\n (p-change)=\"onChangeField(field)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-password>\n </ng-container>\n</div>\n",
27978
28109
  viewProviders: [{ provide: forms.ControlContainer, useExisting: forms.NgForm }],
27979
28110
  providers: [PoDynamicFormValidationService]
27980
28111
  },] }
@@ -33368,7 +33499,7 @@
33368
33499
  PoPageHeaderComponent.decorators = [
33369
33500
  { type: i0.Component, args: [{
33370
33501
  selector: 'po-page-header',
33371
- template: "<div class=\"po-page-header\">\n <!-- Breadcrumb -->\n <div class=\"po-page-header-breadcrumb\" *ngIf=\"breadcrumb && breadcrumb.items.length\">\n <po-breadcrumb\n [p-favorite-service]=\"breadcrumb.favorite\"\n [p-items]=\"breadcrumb.items\"\n [p-params-service]=\"breadcrumb.params\"\n >\n </po-breadcrumb>\n </div>\n\n <!-- Titulo -->\n <h1 class=\"po-page-header-title\" *ngIf=\"title\">\n {{ title }}\n </h1>\n\n <!-- Opera\u00E7\u00F5es -->\n <ng-content></ng-content>\n</div>\n"
33502
+ template: "<div class=\"po-page-header\">\n <!-- Breadcrumb -->\n <div class=\"po-page-header-breadcrumb\" *ngIf=\"breadcrumb && breadcrumb.items.length\">\n <po-breadcrumb\n [p-favorite-service]=\"breadcrumb.favorite\"\n [p-items]=\"breadcrumb.items\"\n [p-params-service]=\"breadcrumb.params\"\n >\n </po-breadcrumb>\n </div>\n\n <div class=\"po-pt-1\">\n <!-- Titulo -->\n <h1 class=\"po-page-header-title\" *ngIf=\"title\">\n {{ title }}\n </h1>\n\n <!-- Opera\u00E7\u00F5es -->\n <ng-content></ng-content>\n </div>\n</div>\n"
33372
33503
  },] }
33373
33504
  ];
33374
33505
 
@@ -34808,7 +34939,7 @@
34808
34939
  PoStepperCircleComponent.decorators = [
34809
34940
  { type: i0.Component, args: [{
34810
34941
  selector: 'po-stepper-circle',
34811
- template: "<div\n class=\"po-stepper-circle\"\n [class.po-stepper-circle-with-icon]=\"icons\"\n [style.height.px]=\"size\"\n [style.width.px]=\"size\"\n [tabindex]=\"isDisabled ? -1 : 0\"\n>\n <span\n class=\"po-stepper-circle-content\"\n [class.po-icon]=\"icons\"\n [class.po-icon-exclamation]=\"icons && isError\"\n [class.po-icon-info]=\"icons && (isActive || isDefault || isDisabled)\"\n [class.po-icon-ok]=\"icons && isDone\"\n [class.po-stepper-circle-content-lg]=\"isLargeStep\"\n [class.po-stepper-circle-content-md]=\"isMediumStep\"\n >\n {{ !icons ? content : '' }}\n </span>\n</div>\n"
34942
+ template: "<div class=\"po-stepper-circle\" [style.height.px]=\"size\" [style.width.px]=\"size\" [tabindex]=\"isDisabled ? -1 : 0\">\n <span\n *ngIf=\"!isActive\"\n class=\"po-stepper-circle-content\"\n [class.po-icon]=\"icons || isDone\"\n [class.po-icon-exclamation]=\"icons && isError\"\n [class.po-icon-info]=\"icons && (isActive || isDefault || isDisabled)\"\n [class.po-icon-ok]=\"isDone\"\n [class.po-stepper-circle-content-lg]=\"isLargeStep\"\n [class.po-stepper-circle-content-md]=\"isMediumStep\"\n >\n {{ !icons && !isDone ? content : '' }}\n </span>\n\n <div *ngIf=\"isActive || isError\" class=\"po-stepper-circle-active\"></div>\n</div>\n"
34812
34943
  },] }
34813
34944
  ];
34814
34945
  PoStepperCircleComponent.propDecorators = {
@@ -35216,7 +35347,7 @@
35216
35347
  PoStepperComponent.decorators = [
35217
35348
  { type: i0.Component, args: [{
35218
35349
  selector: 'po-stepper',
35219
- template: "<div class=\"po-stepper po-stepper-{{ orientation }}\">\n <div class=\"po-stepper-container\">\n <po-stepper-step\n *ngFor=\"let step of stepList; let index = index; trackBy: trackByFn\"\n class=\"po-stepper-step-position\"\n [p-circle-content]=\"index + 1\"\n [p-label]=\"step.label\"\n [p-orientation]=\"orientation\"\n [p-status]=\"step.status\"\n [p-step-icons]=\"stepIcons\"\n [p-step-size]=\"stepSize\"\n (p-activated)=\"onStepActive(step)\"\n (p-click)=\"changeStep(index, step)\"\n (p-enter)=\"changeStep(index, step)\"\n >\n </po-stepper-step>\n </div>\n\n <div *ngIf=\"usePoSteps\" class=\"po-stepper-content\">\n <ng-content></ng-content>\n </div>\n</div>\n"
35350
+ template: "<div class=\"po-stepper po-stepper-{{ orientation }}\">\n <div class=\"po-stepper-container\">\n <po-stepper-step\n *ngFor=\"let step of stepList; let index = index; trackBy: trackByFn\"\n class=\"po-stepper-step-position\"\n [p-circle-content]=\"index + 1\"\n [p-label]=\"step.label\"\n [p-orientation]=\"orientation\"\n [p-status]=\"step.status\"\n [p-step-icons]=\"stepIcons\"\n [p-step-size]=\"stepSize\"\n [p-next-status]=\"poSteps.get(index + 1)?.status\"\n (p-activated)=\"onStepActive(step)\"\n (p-click)=\"changeStep(index, step)\"\n (p-enter)=\"changeStep(index, step)\"\n >\n </po-stepper-step>\n </div>\n\n <div *ngIf=\"usePoSteps\" class=\"po-stepper-content\">\n <ng-content></ng-content>\n </div>\n</div>\n"
35220
35351
  },] }
35221
35352
  ];
35222
35353
  PoStepperComponent.ctorParameters = function () { return [
@@ -35346,11 +35477,11 @@
35346
35477
  PoStepperStepComponent.prototype.getStatusClass = function (status) {
35347
35478
  switch (status) {
35348
35479
  case exports.PoStepperStatus.Active:
35349
- return 'po-stepper-step-active';
35480
+ return 'po-stepper-step-default';
35350
35481
  case exports.PoStepperStatus.Disabled:
35351
35482
  return 'po-stepper-step-disabled';
35352
35483
  case exports.PoStepperStatus.Done:
35353
- return 'po-stepper-step-done';
35484
+ return 'po-stepper-step-default';
35354
35485
  case exports.PoStepperStatus.Error:
35355
35486
  return 'po-stepper-step-error';
35356
35487
  default:
@@ -35372,12 +35503,13 @@
35372
35503
  PoStepperStepComponent.decorators = [
35373
35504
  { type: i0.Component, args: [{
35374
35505
  selector: 'po-stepper-step',
35375
- template: "<div class=\"po-stepper-step\" [ngClass]=\"getStatusClass(status)\" (click)=\"onClick()\" (keydown.enter)=\"onEnter()\">\n <div class=\"po-stepper-step-container\" [style.width.px]=\"isVerticalOrientation ? stepSize : undefined\">\n <div\n [class.po-stepper-step-bar-top]=\"isVerticalOrientation\"\n [class.po-stepper-step-bar-left]=\"!isVerticalOrientation\"\n [style.margin-right.px]=\"marginHorizontalBar\"\n ></div>\n\n <po-stepper-circle [p-content]=\"circleContent\" [p-icons]=\"stepIcons\" [p-size]=\"stepSize\" [p-status]=\"status\">\n </po-stepper-circle>\n\n <div\n [class.po-stepper-step-bar-bottom]=\"isVerticalOrientation\"\n [class.po-stepper-step-bar-right]=\"!isVerticalOrientation\"\n [style.margin-left.px]=\"marginHorizontalBar\"\n ></div>\n </div>\n\n <po-stepper-label class=\"po-stepper-step-label-position\" [p-content]=\"label\"> </po-stepper-label>\n</div>\n"
35506
+ template: "<div class=\"po-stepper-step\" [ngClass]=\"getStatusClass(status)\" (click)=\"onClick()\" (keydown.enter)=\"onEnter()\">\n <div class=\"po-stepper-step-container\" [style.width.px]=\"isVerticalOrientation ? stepSize : undefined\">\n <div\n [class.po-stepper-step-bar-top]=\"isVerticalOrientation\"\n [class.po-stepper-step-bar-left]=\"!isVerticalOrientation\"\n [style.margin-right.px]=\"marginHorizontalBar\"\n ></div>\n\n <po-stepper-circle [p-content]=\"circleContent\" [p-icons]=\"stepIcons\" [p-size]=\"stepSize\" [p-status]=\"status\">\n </po-stepper-circle>\n\n <div\n [class.po-stepper-step-bar-bottom]=\"isVerticalOrientation\"\n [class.po-stepper-step-bar-right]=\"!isVerticalOrientation\"\n [class.po-stepper-step-dashed-border]=\"nextStatus === 'disabled' && !isVerticalOrientation\"\n [class.po-stepper-step-dashed-border-vertical]=\"nextStatus === 'disabled' && isVerticalOrientation\"\n [style.margin-left.px]=\"marginHorizontalBar\"\n ></div>\n </div>\n\n <po-stepper-label class=\"po-stepper-step-label-position\" [p-content]=\"label\"> </po-stepper-label>\n</div>\n"
35376
35507
  },] }
35377
35508
  ];
35378
35509
  PoStepperStepComponent.propDecorators = {
35379
35510
  circleContent: [{ type: i0.Input, args: ['p-circle-content',] }],
35380
35511
  orientation: [{ type: i0.Input, args: ['p-orientation',] }],
35512
+ nextStatus: [{ type: i0.Input, args: ['p-next-status',] }],
35381
35513
  activated: [{ type: i0.Output, args: ['p-activated',] }],
35382
35514
  click: [{ type: i0.Output, args: ['p-click',] }],
35383
35515
  enter: [{ type: i0.Output, args: ['p-enter',] }],
@@ -38681,7 +38813,7 @@
38681
38813
  exports.ɵdz = PoRichTextBodyComponent;
38682
38814
  exports.ɵe = PoAvatarBaseComponent;
38683
38815
  exports.ɵea = PoSelectBaseComponent;
38684
- exports.ɵeb = PoSwitchBaseComponent;
38816
+ exports.ɵeb = PoFieldModel;
38685
38817
  exports.ɵec = PoTextareaBaseComponent;
38686
38818
  exports.ɵed = PoUploadBaseComponent;
38687
38819
  exports.ɵee = PoUploadService;