@po-ui/ng-components 21.29.0 → 21.30.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 (34) hide show
  1. package/fesm2022/po-ui-ng-components.mjs +366 -26
  2. package/fesm2022/po-ui-ng-components.mjs.map +1 -1
  3. package/lib/components/po-field/po-checkbox/po-checkbox-base.component.d.ts +16 -0
  4. package/lib/components/po-field/po-checkbox-group/po-checkbox-group-base.component.d.ts +16 -0
  5. package/lib/components/po-field/po-combo/po-combo-base.component.d.ts +16 -0
  6. package/lib/components/po-field/po-combo/po-combo.component.d.ts +1 -0
  7. package/lib/components/po-field/po-datepicker/po-datepicker-base.component.d.ts +16 -0
  8. package/lib/components/po-field/po-datepicker-range/po-datepicker-range-base.component.d.ts +16 -0
  9. package/lib/components/po-field/po-datetimepicker/po-datetimepicker-base.component.d.ts +16 -0
  10. package/lib/components/po-field/po-input/po-input-base.component.d.ts +7 -1
  11. package/lib/components/po-field/po-lookup/po-lookup-base.component.d.ts +16 -0
  12. package/lib/components/po-field/po-multiselect/po-multiselect-base.component.d.ts +16 -0
  13. package/lib/components/po-field/po-radio-group/po-radio-group-base.component.d.ts +16 -0
  14. package/lib/components/po-field/po-select/po-select.component.d.ts +16 -0
  15. package/lib/components/po-field/po-switch/po-switch.component.d.ts +17 -1
  16. package/lib/components/po-field/po-timepicker/po-timepicker-base.component.d.ts +16 -0
  17. package/package.json +4 -4
  18. package/po-ui-ng-components-21.30.0.tgz +0 -0
  19. package/schematics/ng-add/index.js +1 -1
  20. package/schematics/ng-update/v14/index.js +1 -1
  21. package/schematics/ng-update/v15/index.js +1 -1
  22. package/schematics/ng-update/v16/index.js +1 -1
  23. package/schematics/ng-update/v17/index.js +1 -1
  24. package/schematics/ng-update/v18/index.js +2 -2
  25. package/schematics/ng-update/v19/index.js +2 -2
  26. package/schematics/ng-update/v2/index.js +1 -1
  27. package/schematics/ng-update/v20/index.js +2 -2
  28. package/schematics/ng-update/v21/index.js +1 -1
  29. package/schematics/ng-update/v3/index.js +1 -1
  30. package/schematics/ng-update/v4/index.js +1 -1
  31. package/schematics/ng-update/v5/index.js +1 -1
  32. package/schematics/ng-update/v6/index.js +1 -1
  33. package/types/po-ui-ng-components.d.ts +212 -13
  34. package/po-ui-ng-components-21.29.0.tgz +0 -0
@@ -6101,6 +6101,20 @@ class PoCheckboxBaseComponent {
6101
6101
  * Evento disparado quando o valor do *checkbox* for alterado.
6102
6102
  */
6103
6103
  change = new EventEmitter();
6104
+ /**
6105
+ * @optional
6106
+ *
6107
+ * @description
6108
+ *
6109
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
6110
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
6111
+ *
6112
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
6113
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
6114
+ *
6115
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
6116
+ */
6117
+ changeModel = new EventEmitter();
6104
6118
  /**
6105
6119
  * @optional
6106
6120
  *
@@ -6117,6 +6131,7 @@ class PoCheckboxBaseComponent {
6117
6131
  disabladTabindex = false;
6118
6132
  displayAdditionalHelp = false;
6119
6133
  id = uuid();
6134
+ modelLastUpdate;
6120
6135
  propagateChange;
6121
6136
  onTouched;
6122
6137
  _disabled = false;
@@ -6194,6 +6209,7 @@ class PoCheckboxBaseComponent {
6194
6209
  this.propagateChange(this.checkboxValue);
6195
6210
  }
6196
6211
  this.change.emit(this.checkboxValue);
6212
+ this.controlChangeModelEmitter(this.checkboxValue);
6197
6213
  }
6198
6214
  checkOption(event, value) {
6199
6215
  const target = event.target;
@@ -6221,13 +6237,22 @@ class PoCheckboxBaseComponent {
6221
6237
  if (value !== this.checkboxValue) {
6222
6238
  this.changeModelValue(value);
6223
6239
  }
6240
+ if (value != null) {
6241
+ this.controlChangeModelEmitter(this.checkboxValue);
6242
+ }
6243
+ }
6244
+ controlChangeModelEmitter(value) {
6245
+ if (this.modelLastUpdate !== value) {
6246
+ this.changeModel.emit(value);
6247
+ this.modelLastUpdate = value;
6248
+ }
6224
6249
  }
6225
6250
  applySizeBasedOnA11y() {
6226
6251
  const size = validateSizeFn(this._initialSize, PoCheckboxSize);
6227
6252
  this._size = size;
6228
6253
  }
6229
6254
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoCheckboxBaseComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
6230
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.21", type: PoCheckboxBaseComponent, isStandalone: false, selector: "po-checkbox-base", inputs: { additionalHelpEventTrigger: { classPropertyName: "additionalHelpEventTrigger", publicName: "additionalHelpEventTrigger", isSignal: false, isRequired: false, transformFunction: null }, additionalHelpTooltip: { classPropertyName: "additionalHelpTooltip", publicName: "p-additional-help-tooltip", isSignal: false, isRequired: false, transformFunction: null }, appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "p-help", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, label: { classPropertyName: "label", publicName: "p-label", isSignal: false, isRequired: false, transformFunction: null }, checkboxValue: { classPropertyName: "checkboxValue", publicName: "p-checkboxValue", isSignal: false, isRequired: false, transformFunction: null }, checkBoxRequired: { classPropertyName: "checkBoxRequired", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, disabladTabindex: { classPropertyName: "disabladTabindex", publicName: "p-disabled-tabindex", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, disabled: { classPropertyName: "disabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { additionalHelp: "p-additional-help", blur: "p-blur", change: "p-change", keydown: "p-keydown" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.size" } }, ngImport: i0, template: '', isInline: true });
6255
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.21", type: PoCheckboxBaseComponent, isStandalone: false, selector: "po-checkbox-base", inputs: { additionalHelpEventTrigger: { classPropertyName: "additionalHelpEventTrigger", publicName: "additionalHelpEventTrigger", isSignal: false, isRequired: false, transformFunction: null }, additionalHelpTooltip: { classPropertyName: "additionalHelpTooltip", publicName: "p-additional-help-tooltip", isSignal: false, isRequired: false, transformFunction: null }, appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "p-help", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, label: { classPropertyName: "label", publicName: "p-label", isSignal: false, isRequired: false, transformFunction: null }, checkboxValue: { classPropertyName: "checkboxValue", publicName: "p-checkboxValue", isSignal: false, isRequired: false, transformFunction: null }, checkBoxRequired: { classPropertyName: "checkBoxRequired", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, disabladTabindex: { classPropertyName: "disabladTabindex", publicName: "p-disabled-tabindex", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, disabled: { classPropertyName: "disabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { additionalHelp: "p-additional-help", blur: "p-blur", change: "p-change", changeModel: "p-change-model", keydown: "p-keydown" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.size" } }, ngImport: i0, template: '', isInline: true });
6231
6256
  }
6232
6257
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoCheckboxBaseComponent, decorators: [{
6233
6258
  type: Component,
@@ -6265,6 +6290,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImpo
6265
6290
  }], change: [{
6266
6291
  type: Output,
6267
6292
  args: ['p-change']
6293
+ }], changeModel: [{
6294
+ type: Output,
6295
+ args: ['p-change-model']
6268
6296
  }], keydown: [{
6269
6297
  type: Output,
6270
6298
  args: ['p-keydown']
@@ -13314,6 +13342,20 @@ class PoComboBaseComponent {
13314
13342
  * > Pode-se optar pelo recebimento do objeto selecionado ao invés do model através da propriedade `p-emit-object-value`.
13315
13343
  */
13316
13344
  change = new EventEmitter();
13345
+ /**
13346
+ * @optional
13347
+ *
13348
+ * @description
13349
+ *
13350
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
13351
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
13352
+ *
13353
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
13354
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
13355
+ *
13356
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
13357
+ */
13358
+ changeModel = new EventEmitter();
13317
13359
  /**
13318
13360
  * @optional
13319
13361
  *
@@ -13395,6 +13437,7 @@ class PoComboBaseComponent {
13395
13437
  isFirstFilter = true;
13396
13438
  isFiltering = false;
13397
13439
  keyupSubscribe;
13440
+ modelLastUpdate;
13398
13441
  onModelChange;
13399
13442
  previousSearchValue = '';
13400
13443
  selectedOption;
@@ -13863,6 +13906,12 @@ class PoComboBaseComponent {
13863
13906
  // Caso o componente estiver dentro de um form, terá acesso ao método onModelChange.
13864
13907
  return this.onModelChange ? this.onModelChange(value) : this.ngModelChange.emit(value);
13865
13908
  }
13909
+ controlChangeModelEmitter(value) {
13910
+ if (this.modelLastUpdate !== value) {
13911
+ this.changeModel.emit(value);
13912
+ this.modelLastUpdate = value;
13913
+ }
13914
+ }
13866
13915
  isEqual(value, inputValue) {
13867
13916
  if ((value || value === 0) && inputValue) {
13868
13917
  return value.toString() === inputValue.toString();
@@ -14182,14 +14231,13 @@ class PoComboBaseComponent {
14182
14231
  }
14183
14232
  }
14184
14233
  updateModel(value) {
14185
- if (value !== this.selectedValue) {
14186
- if (!this.fromWriteValue) {
14187
- this.callModelChange(this.getValueUpdate(value, this.selectedOption));
14188
- }
14234
+ if (value !== this.selectedValue && !this.fromWriteValue) {
14235
+ this.callModelChange(this.getValueUpdate(value, this.selectedOption));
14189
14236
  this.change.emit(this.emitObjectValue ? this.selectedOption : value);
14190
14237
  }
14191
14238
  this.selectedValue = value;
14192
14239
  this.fromWriteValue = false;
14240
+ this.controlChangeModelEmitter(value);
14193
14241
  }
14194
14242
  updateSelectedValueWithOldOption() {
14195
14243
  const oldOption = this.getOptionFromValue(this.selectedValue, this.comboOptionsList);
@@ -14207,7 +14255,7 @@ class PoComboBaseComponent {
14207
14255
  this._size = size;
14208
14256
  }
14209
14257
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoComboBaseComponent, deps: [{ token: PoLanguageService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
14210
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.21", type: PoComboBaseComponent, isStandalone: true, inputs: { additionalHelpEventTrigger: { classPropertyName: "additionalHelpEventTrigger", publicName: "additionalHelpEventTrigger", isSignal: false, isRequired: false, transformFunction: null }, additionalHelpTooltip: { classPropertyName: "additionalHelpTooltip", publicName: "p-additional-help-tooltip", isSignal: false, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "p-label", isSignal: false, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "p-help", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, filterService: { classPropertyName: "filterService", publicName: "p-filter-service", isSignal: false, isRequired: false, transformFunction: null }, infiniteScroll: { classPropertyName: "infiniteScroll", publicName: "p-infinite-scroll", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, infiniteScrollDistance: { classPropertyName: "infiniteScrollDistance", publicName: "p-infinite-scroll-distance", isSignal: false, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "p-icon", isSignal: false, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: false, isRequired: false, transformFunction: null }, clean: { classPropertyName: "clean", publicName: "p-clean", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, emitObjectValue: { classPropertyName: "emitObjectValue", publicName: "p-emit-object-value", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, disabledTabFilter: { classPropertyName: "disabledTabFilter", publicName: "p-disabled-tab-filter", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, removeInitialFilter: { classPropertyName: "removeInitialFilter", publicName: "p-remove-initial-filter", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, fieldErrorMessage: { classPropertyName: "fieldErrorMessage", publicName: "p-field-error-message", isSignal: false, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: false, isRequired: false, transformFunction: null }, controlValueWithLabel: { classPropertyName: "controlValueWithLabel", publicName: "p-control-value-with-label", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, listboxControlPosition: { classPropertyName: "listboxControlPosition", publicName: "p-listbox-control-position", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "p-placeholder", isSignal: false, isRequired: false, transformFunction: null }, debounceTime: { classPropertyName: "debounceTime", publicName: "p-debounce-time", isSignal: false, isRequired: false, transformFunction: null }, disabledInitFilter: { classPropertyName: "disabledInitFilter", publicName: "p-disabled-init-filter", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, fieldValue: { classPropertyName: "fieldValue", publicName: "p-field-value", isSignal: false, isRequired: false, transformFunction: null }, fieldLabel: { classPropertyName: "fieldLabel", publicName: "p-field-label", isSignal: false, isRequired: false, transformFunction: null }, filterMinlength: { classPropertyName: "filterMinlength", publicName: "p-filter-minlength", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, showRequired: { classPropertyName: "showRequired", publicName: "p-show-required", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null }, changeOnEnter: { classPropertyName: "changeOnEnter", publicName: "p-change-on-enter", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, disabled: { classPropertyName: "disabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, loading: { classPropertyName: "loading", publicName: "p-loading", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, sort: { classPropertyName: "sort", publicName: "p-sort", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, options: { classPropertyName: "options", publicName: "p-options", isSignal: false, isRequired: false, transformFunction: null }, filterMode: { classPropertyName: "filterMode", publicName: "p-filter-mode", isSignal: false, isRequired: false, transformFunction: null }, filterParams: { classPropertyName: "filterParams", publicName: "p-filter-params", isSignal: false, isRequired: false, transformFunction: null }, literals: { classPropertyName: "literals", publicName: "p-literals", isSignal: false, isRequired: false, transformFunction: null }, cache: { classPropertyName: "cache", publicName: "p-cache", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: false, isRequired: false, transformFunction: convertToBoolean } }, outputs: { blur: "p-blur", additionalHelp: "p-additional-help", change: "p-change", keydown: "p-keydown", ngModelChange: "ngModelChange", inputChange: "p-input-change" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.size", "attr.p-loading": "this.loading" } }, ngImport: i0 });
14258
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.21", type: PoComboBaseComponent, isStandalone: true, inputs: { additionalHelpEventTrigger: { classPropertyName: "additionalHelpEventTrigger", publicName: "additionalHelpEventTrigger", isSignal: false, isRequired: false, transformFunction: null }, additionalHelpTooltip: { classPropertyName: "additionalHelpTooltip", publicName: "p-additional-help-tooltip", isSignal: false, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "p-label", isSignal: false, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "p-help", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, filterService: { classPropertyName: "filterService", publicName: "p-filter-service", isSignal: false, isRequired: false, transformFunction: null }, infiniteScroll: { classPropertyName: "infiniteScroll", publicName: "p-infinite-scroll", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, infiniteScrollDistance: { classPropertyName: "infiniteScrollDistance", publicName: "p-infinite-scroll-distance", isSignal: false, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "p-icon", isSignal: false, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: false, isRequired: false, transformFunction: null }, clean: { classPropertyName: "clean", publicName: "p-clean", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, emitObjectValue: { classPropertyName: "emitObjectValue", publicName: "p-emit-object-value", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, disabledTabFilter: { classPropertyName: "disabledTabFilter", publicName: "p-disabled-tab-filter", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, removeInitialFilter: { classPropertyName: "removeInitialFilter", publicName: "p-remove-initial-filter", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, fieldErrorMessage: { classPropertyName: "fieldErrorMessage", publicName: "p-field-error-message", isSignal: false, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: false, isRequired: false, transformFunction: null }, controlValueWithLabel: { classPropertyName: "controlValueWithLabel", publicName: "p-control-value-with-label", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, listboxControlPosition: { classPropertyName: "listboxControlPosition", publicName: "p-listbox-control-position", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "p-placeholder", isSignal: false, isRequired: false, transformFunction: null }, debounceTime: { classPropertyName: "debounceTime", publicName: "p-debounce-time", isSignal: false, isRequired: false, transformFunction: null }, disabledInitFilter: { classPropertyName: "disabledInitFilter", publicName: "p-disabled-init-filter", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, fieldValue: { classPropertyName: "fieldValue", publicName: "p-field-value", isSignal: false, isRequired: false, transformFunction: null }, fieldLabel: { classPropertyName: "fieldLabel", publicName: "p-field-label", isSignal: false, isRequired: false, transformFunction: null }, filterMinlength: { classPropertyName: "filterMinlength", publicName: "p-filter-minlength", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, showRequired: { classPropertyName: "showRequired", publicName: "p-show-required", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null }, changeOnEnter: { classPropertyName: "changeOnEnter", publicName: "p-change-on-enter", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, disabled: { classPropertyName: "disabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, loading: { classPropertyName: "loading", publicName: "p-loading", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, sort: { classPropertyName: "sort", publicName: "p-sort", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, options: { classPropertyName: "options", publicName: "p-options", isSignal: false, isRequired: false, transformFunction: null }, filterMode: { classPropertyName: "filterMode", publicName: "p-filter-mode", isSignal: false, isRequired: false, transformFunction: null }, filterParams: { classPropertyName: "filterParams", publicName: "p-filter-params", isSignal: false, isRequired: false, transformFunction: null }, literals: { classPropertyName: "literals", publicName: "p-literals", isSignal: false, isRequired: false, transformFunction: null }, cache: { classPropertyName: "cache", publicName: "p-cache", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: false, isRequired: false, transformFunction: convertToBoolean } }, outputs: { blur: "p-blur", additionalHelp: "p-additional-help", change: "p-change", changeModel: "p-change-model", keydown: "p-keydown", ngModelChange: "ngModelChange", inputChange: "p-input-change" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.size", "attr.p-loading": "this.loading" } }, ngImport: i0 });
14211
14259
  }
14212
14260
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoComboBaseComponent, decorators: [{
14213
14261
  type: Directive
@@ -14270,6 +14318,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImpo
14270
14318
  }], change: [{
14271
14319
  type: Output,
14272
14320
  args: ['p-change']
14321
+ }], changeModel: [{
14322
+ type: Output,
14323
+ args: ['p-change-model']
14273
14324
  }], keydown: [{
14274
14325
  type: Output,
14275
14326
  args: ['p-keydown']
@@ -14672,6 +14723,7 @@ class PoComboComponent extends PoComboBaseComponent {
14672
14723
  outerContainer;
14673
14724
  containerElement;
14674
14725
  contentElement;
14726
+ fieldContainerInput;
14675
14727
  iconElement;
14676
14728
  inputEl;
14677
14729
  poListbox;
@@ -15216,7 +15268,7 @@ class PoComboComponent extends PoComboBaseComponent {
15216
15268
  window.removeEventListener('scroll', this.onScroll, true);
15217
15269
  }
15218
15270
  setContainerPosition() {
15219
- this.controlPosition?.setElements(this.containerElement?.nativeElement, poComboContainerOffset, this.inputEl, ['top', 'bottom'], true);
15271
+ this.controlPosition?.setElements(this.containerElement?.nativeElement, poComboContainerOffset, this.fieldContainerInput, ['top', 'bottom'], true);
15220
15272
  this.adjustContainerPosition();
15221
15273
  }
15222
15274
  setContainerWidth() {
@@ -15277,7 +15329,7 @@ class PoComboComponent extends PoComboBaseComponent {
15277
15329
  useExisting: forwardRef(() => PoComboComponent),
15278
15330
  multi: true
15279
15331
  }
15280
- ], queries: [{ propertyName: "comboOptionTemplate", first: true, predicate: PoComboOptionTemplateDirective, descendants: true, static: true }], viewQueries: [{ propertyName: "outerContainer", first: true, predicate: ["outerContainer "], descendants: true, read: ElementRef }, { propertyName: "containerElement", first: true, predicate: ["containerElement"], descendants: true, read: ElementRef }, { propertyName: "contentElement", first: true, predicate: ["contentElement"], descendants: true, read: ElementRef }, { propertyName: "iconElement", first: true, predicate: ["iconArrow"], descendants: true, read: ElementRef, static: true }, { propertyName: "inputEl", first: true, predicate: ["inp"], descendants: true, read: ElementRef, static: true }, { propertyName: "poListbox", first: true, predicate: ["poListbox"], descendants: true }, { propertyName: "helperEl", first: true, predicate: ["helperEl"], descendants: true, read: PoHelperComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n@let needsHelper = !label && (poHelperComponent() || poHelper.hideAdditionalHelp);\n<div #outerContainer>\n <po-field-container\n [p-disabled]=\"isDisabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n [p-compact-label]=\"compactLabel()\"\n >\n <div\n #searchContainer\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n class=\"po-field-container-content po-combo-container-content\"\n >\n <div class=\"po-field-container-content-helper-wrapper\">\n <div class=\"po-field-container-input\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon po-icon-input\"\n [class.po-field-icon-disabled]=\"isDisabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n\n <input\n #inp\n class=\"po-combo-input\"\n [ngClass]=\"\n clean && inp.value\n ? size === 'small'\n ? 'po-input-double-icon-right-aa'\n : 'po-input-double-icon-right'\n : size === 'small'\n ? 'po-input-icon-right-aa'\n : 'po-input-icon-right'\n \"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-left-aa]=\"icon && size === 'small'\"\n autocomplete=\"off\"\n type=\"text\"\n [attr.data-focused-element]=\"!isDisabled\"\n [attr.data-inactive-component]=\"isDisabled\"\n [attr.name]=\"name\"\n [disabled]=\"isDisabled\"\n [id]=\"id\"\n [placeholder]=\"isDisabled ? '' : placeholder\"\n [required]=\"required\"\n [attr.data-append-in-body]=\"appendBox\"\n [attr.p-size]=\"size\"\n (click)=\"!isDisabled && toggleComboVisibility()\"\n (keyup)=\"onKeyUp($event)\"\n (blur)=\"onBlur($event)\"\n (keyup)=\"searchOnEnterOrArrow($event, $event.target.value)\"\n (keydown)=\"onKeyDown($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n } @else {\n @if (!loading && isCleanVisible()) {\n <po-clean\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"literals.clean\"\n class=\"po-combo-clean po-icon-input\"\n [class.po-combo-clean-aa]=\"size === 'small'\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"size\"\n (p-change-event)=\"clear($event)\"\n (click)=\"clear(null); $event.preventDefault()\"\n (keydown.enter)=\"clearAndFocus(); $event.preventDefault()\"\n (keydown.tab)=\"handleCleanKeyboardTab($event)\"\n >\n </po-clean>\n }\n }\n <div\n #iconArrow\n class=\"po-combo-arrow po-field-icon\"\n [class.po-field-icon-disabled]=\"isDisabled\"\n [class.po-field-icon-disabled-aa]=\"isDisabled && size === 'small'\"\n (click)=\"!isDisabled && toggleComboVisibility(true)\"\n >\n <po-icon\n [p-icon]=\"comboOpen ? 'ICON_ARROW_UP po-icon-input' : 'ICON_ARROW_DOWN po-icon-input'\"\n [class.po-field-icon]=\"!isDisabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [class.po-combo-default-border]=\"!isDisabled && inp.value\"\n [class.po-combo-background-arrow-up]=\"!isDisabled && comboOpen\"\n ></po-icon>\n </div>\n </div>\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"isDisabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n </div>\n\n @if (appendBox) {\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"true\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"dropdownListbox\"></ng-container>\n </ng-template>\n } @else {\n <ng-container *ngTemplateOutlet=\"dropdownListbox\"> </ng-container>\n }\n\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"isDisabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n </po-field-container>\n\n <ng-template #dropdownListbox>\n <div #containerElement class=\"po-combo-container\" [hidden]=\"!comboOpen && !isServerSearching\">\n <po-listbox\n #poListbox\n #contentElement\n p-type=\"option\"\n [p-items]=\"visibleOptions\"\n [p-field-value]=\"dynamicValue\"\n [p-field-label]=\"dynamicLabel\"\n [p-template]=\"comboOptionTemplate\"\n [p-search-value]=\"getInputValue()\"\n [p-infinite-loading]=\"infiniteLoading\"\n [p-infinite-scroll]=\"infiniteScroll\"\n [p-filtering]=\"isFiltering\"\n [p-cache]=\"cache\"\n [p-filter-mode]=\"filterMode\"\n [p-visible]=\"comboOpen\"\n [p-is-searching]=\"isServerSearching\"\n [p-should-mark-letter]=\"shouldMarkLetters\"\n [p-compare-cache]=\"compareObjects(cacheOptions, visibleOptions)\"\n [p-combo-service]=\"service\"\n [p-infinite-scroll-distance]=\"infiniteScrollDistance\"\n [p-size]=\"size\"\n [p-container-width]=\"containerWidth\"\n (p-selectcombo-item)=\"onOptionClick($event, $event.event)\"\n (p-update-infinite-scroll)=\"showMoreInfiniteScroll()\"\n (p-close)=\"onCloseCombo()\"\n (keydown)=\"onListboxKeyDown($event)\"\n ></po-listbox>\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2$1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size", "p-compact-label"] }, { kind: "component", type: PoListBoxComponent, selector: "po-listbox" }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoLoadingIconComponent, selector: "po-loading-icon", inputs: ["p-neutral-color", "p-size", "p-in-overlay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15332
+ ], queries: [{ propertyName: "comboOptionTemplate", first: true, predicate: PoComboOptionTemplateDirective, descendants: true, static: true }], viewQueries: [{ propertyName: "outerContainer", first: true, predicate: ["outerContainer "], descendants: true, read: ElementRef }, { propertyName: "containerElement", first: true, predicate: ["containerElement"], descendants: true, read: ElementRef }, { propertyName: "contentElement", first: true, predicate: ["contentElement"], descendants: true, read: ElementRef }, { propertyName: "fieldContainerInput", first: true, predicate: ["fieldContainerInput"], descendants: true, read: ElementRef }, { propertyName: "iconElement", first: true, predicate: ["iconArrow"], descendants: true, read: ElementRef, static: true }, { propertyName: "inputEl", first: true, predicate: ["inp"], descendants: true, read: ElementRef, static: true }, { propertyName: "poListbox", first: true, predicate: ["poListbox"], descendants: true }, { propertyName: "helperEl", first: true, predicate: ["helperEl"], descendants: true, read: PoHelperComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n@let needsHelper = !label && (poHelperComponent() || poHelper.hideAdditionalHelp);\n<div #outerContainer>\n <po-field-container\n [p-disabled]=\"isDisabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n [p-compact-label]=\"compactLabel()\"\n >\n <div\n #searchContainer\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n class=\"po-field-container-content po-combo-container-content\"\n >\n <div class=\"po-field-container-content-helper-wrapper\">\n <div #fieldContainerInput class=\"po-field-container-input\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon po-icon-input\"\n [class.po-field-icon-disabled]=\"isDisabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n\n <input\n #inp\n class=\"po-combo-input\"\n [ngClass]=\"\n clean && inp.value\n ? size === 'small'\n ? 'po-input-double-icon-right-aa'\n : 'po-input-double-icon-right'\n : size === 'small'\n ? 'po-input-icon-right-aa'\n : 'po-input-icon-right'\n \"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-left-aa]=\"icon && size === 'small'\"\n autocomplete=\"off\"\n type=\"text\"\n [attr.data-focused-element]=\"!isDisabled\"\n [attr.data-inactive-component]=\"isDisabled\"\n [attr.name]=\"name\"\n [disabled]=\"isDisabled\"\n [id]=\"id\"\n [placeholder]=\"isDisabled ? '' : placeholder\"\n [required]=\"required\"\n [attr.data-append-in-body]=\"appendBox\"\n [attr.p-size]=\"size\"\n (click)=\"!isDisabled && toggleComboVisibility()\"\n (keyup)=\"onKeyUp($event)\"\n (blur)=\"onBlur($event)\"\n (keyup)=\"searchOnEnterOrArrow($event, $event.target.value)\"\n (keydown)=\"onKeyDown($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n } @else {\n @if (!loading && isCleanVisible()) {\n <po-clean\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"literals.clean\"\n class=\"po-combo-clean po-icon-input\"\n [class.po-combo-clean-aa]=\"size === 'small'\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"size\"\n (p-change-event)=\"clear($event)\"\n (click)=\"clear(null); $event.preventDefault()\"\n (keydown.enter)=\"clearAndFocus(); $event.preventDefault()\"\n (keydown.tab)=\"handleCleanKeyboardTab($event)\"\n >\n </po-clean>\n }\n }\n <div\n #iconArrow\n class=\"po-combo-arrow po-field-icon\"\n [class.po-field-icon-disabled]=\"isDisabled\"\n [class.po-field-icon-disabled-aa]=\"isDisabled && size === 'small'\"\n (click)=\"!isDisabled && toggleComboVisibility(true)\"\n >\n <po-icon\n [p-icon]=\"comboOpen ? 'ICON_ARROW_UP po-icon-input' : 'ICON_ARROW_DOWN po-icon-input'\"\n [class.po-field-icon]=\"!isDisabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [class.po-combo-default-border]=\"!isDisabled && inp.value\"\n [class.po-combo-background-arrow-up]=\"!isDisabled && comboOpen\"\n ></po-icon>\n </div>\n </div>\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"isDisabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n </div>\n\n @if (appendBox) {\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"true\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"dropdownListbox\"></ng-container>\n </ng-template>\n } @else {\n <ng-container *ngTemplateOutlet=\"dropdownListbox\"> </ng-container>\n }\n\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"isDisabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n </po-field-container>\n\n <ng-template #dropdownListbox>\n <div #containerElement class=\"po-combo-container\" [hidden]=\"!comboOpen && !isServerSearching\">\n <po-listbox\n #poListbox\n #contentElement\n p-type=\"option\"\n [p-items]=\"visibleOptions\"\n [p-field-value]=\"dynamicValue\"\n [p-field-label]=\"dynamicLabel\"\n [p-template]=\"comboOptionTemplate\"\n [p-search-value]=\"getInputValue()\"\n [p-infinite-loading]=\"infiniteLoading\"\n [p-infinite-scroll]=\"infiniteScroll\"\n [p-filtering]=\"isFiltering\"\n [p-cache]=\"cache\"\n [p-filter-mode]=\"filterMode\"\n [p-visible]=\"comboOpen\"\n [p-is-searching]=\"isServerSearching\"\n [p-should-mark-letter]=\"shouldMarkLetters\"\n [p-compare-cache]=\"compareObjects(cacheOptions, visibleOptions)\"\n [p-combo-service]=\"service\"\n [p-infinite-scroll-distance]=\"infiniteScrollDistance\"\n [p-size]=\"size\"\n [p-container-width]=\"containerWidth\"\n (p-selectcombo-item)=\"onOptionClick($event, $event.event)\"\n (p-update-infinite-scroll)=\"showMoreInfiniteScroll()\"\n (p-close)=\"onCloseCombo()\"\n (keydown)=\"onListboxKeyDown($event)\"\n ></po-listbox>\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2$1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size", "p-compact-label"] }, { kind: "component", type: PoListBoxComponent, selector: "po-listbox" }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoLoadingIconComponent, selector: "po-loading-icon", inputs: ["p-neutral-color", "p-size", "p-in-overlay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15281
15333
  }
15282
15334
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoComboComponent, decorators: [{
15283
15335
  type: Component,
@@ -15294,7 +15346,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImpo
15294
15346
  useExisting: forwardRef(() => PoComboComponent),
15295
15347
  multi: true
15296
15348
  }
15297
- ], standalone: false, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n@let needsHelper = !label && (poHelperComponent() || poHelper.hideAdditionalHelp);\n<div #outerContainer>\n <po-field-container\n [p-disabled]=\"isDisabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n [p-compact-label]=\"compactLabel()\"\n >\n <div\n #searchContainer\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n class=\"po-field-container-content po-combo-container-content\"\n >\n <div class=\"po-field-container-content-helper-wrapper\">\n <div class=\"po-field-container-input\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon po-icon-input\"\n [class.po-field-icon-disabled]=\"isDisabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n\n <input\n #inp\n class=\"po-combo-input\"\n [ngClass]=\"\n clean && inp.value\n ? size === 'small'\n ? 'po-input-double-icon-right-aa'\n : 'po-input-double-icon-right'\n : size === 'small'\n ? 'po-input-icon-right-aa'\n : 'po-input-icon-right'\n \"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-left-aa]=\"icon && size === 'small'\"\n autocomplete=\"off\"\n type=\"text\"\n [attr.data-focused-element]=\"!isDisabled\"\n [attr.data-inactive-component]=\"isDisabled\"\n [attr.name]=\"name\"\n [disabled]=\"isDisabled\"\n [id]=\"id\"\n [placeholder]=\"isDisabled ? '' : placeholder\"\n [required]=\"required\"\n [attr.data-append-in-body]=\"appendBox\"\n [attr.p-size]=\"size\"\n (click)=\"!isDisabled && toggleComboVisibility()\"\n (keyup)=\"onKeyUp($event)\"\n (blur)=\"onBlur($event)\"\n (keyup)=\"searchOnEnterOrArrow($event, $event.target.value)\"\n (keydown)=\"onKeyDown($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n } @else {\n @if (!loading && isCleanVisible()) {\n <po-clean\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"literals.clean\"\n class=\"po-combo-clean po-icon-input\"\n [class.po-combo-clean-aa]=\"size === 'small'\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"size\"\n (p-change-event)=\"clear($event)\"\n (click)=\"clear(null); $event.preventDefault()\"\n (keydown.enter)=\"clearAndFocus(); $event.preventDefault()\"\n (keydown.tab)=\"handleCleanKeyboardTab($event)\"\n >\n </po-clean>\n }\n }\n <div\n #iconArrow\n class=\"po-combo-arrow po-field-icon\"\n [class.po-field-icon-disabled]=\"isDisabled\"\n [class.po-field-icon-disabled-aa]=\"isDisabled && size === 'small'\"\n (click)=\"!isDisabled && toggleComboVisibility(true)\"\n >\n <po-icon\n [p-icon]=\"comboOpen ? 'ICON_ARROW_UP po-icon-input' : 'ICON_ARROW_DOWN po-icon-input'\"\n [class.po-field-icon]=\"!isDisabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [class.po-combo-default-border]=\"!isDisabled && inp.value\"\n [class.po-combo-background-arrow-up]=\"!isDisabled && comboOpen\"\n ></po-icon>\n </div>\n </div>\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"isDisabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n </div>\n\n @if (appendBox) {\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"true\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"dropdownListbox\"></ng-container>\n </ng-template>\n } @else {\n <ng-container *ngTemplateOutlet=\"dropdownListbox\"> </ng-container>\n }\n\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"isDisabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n </po-field-container>\n\n <ng-template #dropdownListbox>\n <div #containerElement class=\"po-combo-container\" [hidden]=\"!comboOpen && !isServerSearching\">\n <po-listbox\n #poListbox\n #contentElement\n p-type=\"option\"\n [p-items]=\"visibleOptions\"\n [p-field-value]=\"dynamicValue\"\n [p-field-label]=\"dynamicLabel\"\n [p-template]=\"comboOptionTemplate\"\n [p-search-value]=\"getInputValue()\"\n [p-infinite-loading]=\"infiniteLoading\"\n [p-infinite-scroll]=\"infiniteScroll\"\n [p-filtering]=\"isFiltering\"\n [p-cache]=\"cache\"\n [p-filter-mode]=\"filterMode\"\n [p-visible]=\"comboOpen\"\n [p-is-searching]=\"isServerSearching\"\n [p-should-mark-letter]=\"shouldMarkLetters\"\n [p-compare-cache]=\"compareObjects(cacheOptions, visibleOptions)\"\n [p-combo-service]=\"service\"\n [p-infinite-scroll-distance]=\"infiniteScrollDistance\"\n [p-size]=\"size\"\n [p-container-width]=\"containerWidth\"\n (p-selectcombo-item)=\"onOptionClick($event, $event.event)\"\n (p-update-infinite-scroll)=\"showMoreInfiniteScroll()\"\n (p-close)=\"onCloseCombo()\"\n (keydown)=\"onListboxKeyDown($event)\"\n ></po-listbox>\n </div>\n </ng-template>\n</div>\n" }]
15349
+ ], standalone: false, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n@let needsHelper = !label && (poHelperComponent() || poHelper.hideAdditionalHelp);\n<div #outerContainer>\n <po-field-container\n [p-disabled]=\"isDisabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n [p-compact-label]=\"compactLabel()\"\n >\n <div\n #searchContainer\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n class=\"po-field-container-content po-combo-container-content\"\n >\n <div class=\"po-field-container-content-helper-wrapper\">\n <div #fieldContainerInput class=\"po-field-container-input\">\n @if (icon) {\n <div class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon po-icon-input\"\n [class.po-field-icon-disabled]=\"isDisabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n }\n\n <input\n #inp\n class=\"po-combo-input\"\n [ngClass]=\"\n clean && inp.value\n ? size === 'small'\n ? 'po-input-double-icon-right-aa'\n : 'po-input-double-icon-right'\n : size === 'small'\n ? 'po-input-icon-right-aa'\n : 'po-input-icon-right'\n \"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-left-aa]=\"icon && size === 'small'\"\n autocomplete=\"off\"\n type=\"text\"\n [attr.data-focused-element]=\"!isDisabled\"\n [attr.data-inactive-component]=\"isDisabled\"\n [attr.name]=\"name\"\n [disabled]=\"isDisabled\"\n [id]=\"id\"\n [placeholder]=\"isDisabled ? '' : placeholder\"\n [required]=\"required\"\n [attr.data-append-in-body]=\"appendBox\"\n [attr.p-size]=\"size\"\n (click)=\"!isDisabled && toggleComboVisibility()\"\n (keyup)=\"onKeyUp($event)\"\n (blur)=\"onBlur($event)\"\n (keyup)=\"searchOnEnterOrArrow($event, $event.target.value)\"\n (keydown)=\"onKeyDown($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n } @else {\n @if (!loading && isCleanVisible()) {\n <po-clean\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"literals.clean\"\n class=\"po-combo-clean po-icon-input\"\n [class.po-combo-clean-aa]=\"size === 'small'\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"size\"\n (p-change-event)=\"clear($event)\"\n (click)=\"clear(null); $event.preventDefault()\"\n (keydown.enter)=\"clearAndFocus(); $event.preventDefault()\"\n (keydown.tab)=\"handleCleanKeyboardTab($event)\"\n >\n </po-clean>\n }\n }\n <div\n #iconArrow\n class=\"po-combo-arrow po-field-icon\"\n [class.po-field-icon-disabled]=\"isDisabled\"\n [class.po-field-icon-disabled-aa]=\"isDisabled && size === 'small'\"\n (click)=\"!isDisabled && toggleComboVisibility(true)\"\n >\n <po-icon\n [p-icon]=\"comboOpen ? 'ICON_ARROW_UP po-icon-input' : 'ICON_ARROW_DOWN po-icon-input'\"\n [class.po-field-icon]=\"!isDisabled\"\n [class.po-field-icon-aa]=\"size === 'small'\"\n [class.po-combo-default-border]=\"!isDisabled && inp.value\"\n [class.po-combo-background-arrow-up]=\"!isDisabled && comboOpen\"\n ></po-icon>\n </div>\n </div>\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"isDisabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n </div>\n\n @if (appendBox) {\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"true\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"dropdownListbox\"></ng-container>\n </ng-template>\n } @else {\n <ng-container *ngTemplateOutlet=\"dropdownListbox\"> </ng-container>\n }\n\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"isDisabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n </po-field-container>\n\n <ng-template #dropdownListbox>\n <div #containerElement class=\"po-combo-container\" [hidden]=\"!comboOpen && !isServerSearching\">\n <po-listbox\n #poListbox\n #contentElement\n p-type=\"option\"\n [p-items]=\"visibleOptions\"\n [p-field-value]=\"dynamicValue\"\n [p-field-label]=\"dynamicLabel\"\n [p-template]=\"comboOptionTemplate\"\n [p-search-value]=\"getInputValue()\"\n [p-infinite-loading]=\"infiniteLoading\"\n [p-infinite-scroll]=\"infiniteScroll\"\n [p-filtering]=\"isFiltering\"\n [p-cache]=\"cache\"\n [p-filter-mode]=\"filterMode\"\n [p-visible]=\"comboOpen\"\n [p-is-searching]=\"isServerSearching\"\n [p-should-mark-letter]=\"shouldMarkLetters\"\n [p-compare-cache]=\"compareObjects(cacheOptions, visibleOptions)\"\n [p-combo-service]=\"service\"\n [p-infinite-scroll-distance]=\"infiniteScrollDistance\"\n [p-size]=\"size\"\n [p-container-width]=\"containerWidth\"\n (p-selectcombo-item)=\"onOptionClick($event, $event.event)\"\n (p-update-infinite-scroll)=\"showMoreInfiniteScroll()\"\n (p-close)=\"onCloseCombo()\"\n (keydown)=\"onListboxKeyDown($event)\"\n ></po-listbox>\n </div>\n </ng-template>\n</div>\n" }]
15298
15350
  }], ctorParameters: () => [], propDecorators: { comboOptionTemplate: [{
15299
15351
  type: ContentChild,
15300
15352
  args: [PoComboOptionTemplateDirective, { static: true }]
@@ -15307,6 +15359,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImpo
15307
15359
  }], contentElement: [{
15308
15360
  type: ViewChild,
15309
15361
  args: ['contentElement', { read: ElementRef }]
15362
+ }], fieldContainerInput: [{
15363
+ type: ViewChild,
15364
+ args: ['fieldContainerInput', { read: ElementRef }]
15310
15365
  }], iconElement: [{
15311
15366
  type: ViewChild,
15312
15367
  args: ['iconArrow', { read: ElementRef, static: true }]
@@ -20662,6 +20717,20 @@ class PoCheckboxGroupBaseComponent {
20662
20717
  * Evento disparado ao alterar valor do campo
20663
20718
  */
20664
20719
  change = new EventEmitter();
20720
+ /**
20721
+ * @optional
20722
+ *
20723
+ * @description
20724
+ *
20725
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
20726
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
20727
+ *
20728
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
20729
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
20730
+ *
20731
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
20732
+ */
20733
+ changeModel = new EventEmitter();
20665
20734
  /**
20666
20735
  * @optional
20667
20736
  *
@@ -20675,6 +20744,7 @@ class PoCheckboxGroupBaseComponent {
20675
20744
  checkedOptionsList = [];
20676
20745
  displayAdditionalHelp = false;
20677
20746
  mdColumns = poCheckboxGroupColumnsDefaultLength;
20747
+ modelLastUpdate;
20678
20748
  propagateChange;
20679
20749
  validatorChange;
20680
20750
  _columns = poCheckboxGroupColumnsDefaultLength;
@@ -20814,6 +20884,7 @@ class PoCheckboxGroupBaseComponent {
20814
20884
  this.ngModelChange.emit(value);
20815
20885
  }
20816
20886
  this.change.emit(value);
20887
+ this.controlChangeModelEmitter(value);
20817
20888
  }
20818
20889
  checkIndeterminate() {
20819
20890
  return this.indeterminate ? this.checkedOptions : this.checkedOptionsList;
@@ -20841,6 +20912,17 @@ class PoCheckboxGroupBaseComponent {
20841
20912
  this.checkedOptionsList = [];
20842
20913
  this.checkedOptions = {};
20843
20914
  }
20915
+ if (optionsModel != null) {
20916
+ this.controlChangeModelEmitter(this.checkIndeterminate());
20917
+ }
20918
+ }
20919
+ controlChangeModelEmitter(value) {
20920
+ const current = JSON.stringify(this.modelLastUpdate);
20921
+ const incoming = JSON.stringify(value);
20922
+ if (current !== incoming) {
20923
+ this.changeModel.emit(value);
20924
+ this.modelLastUpdate = Array.isArray(value) ? [...value] : value;
20925
+ }
20844
20926
  }
20845
20927
  registerOnValidatorChange(fn) {
20846
20928
  this.validatorChange = fn;
@@ -20914,7 +20996,7 @@ class PoCheckboxGroupBaseComponent {
20914
20996
  this._size = size;
20915
20997
  }
20916
20998
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoCheckboxGroupBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
20917
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.21", type: PoCheckboxGroupBaseComponent, isStandalone: true, inputs: { additionalHelpEventTrigger: { classPropertyName: "additionalHelpEventTrigger", publicName: "additionalHelpEventTrigger", isSignal: false, isRequired: false, transformFunction: null }, additionalHelpTooltip: { classPropertyName: "additionalHelpTooltip", publicName: "p-additional-help-tooltip", isSignal: false, isRequired: false, transformFunction: null }, appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "p-help", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "p-label", isSignal: false, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: false, isRequired: false, transformFunction: null }, fieldErrorMessage: { classPropertyName: "fieldErrorMessage", publicName: "p-field-error-message", isSignal: false, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "p-columns", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, indeterminate: { classPropertyName: "indeterminate", publicName: "p-indeterminate", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, options: { classPropertyName: "options", publicName: "p-options", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, showRequired: { classPropertyName: "showRequired", publicName: "p-show-required", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { ngModelChange: "ngModelChange", additionalHelp: "p-additional-help", change: "p-change", keydown: "p-keydown" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.size" } }, ngImport: i0 });
20999
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.21", type: PoCheckboxGroupBaseComponent, isStandalone: true, inputs: { additionalHelpEventTrigger: { classPropertyName: "additionalHelpEventTrigger", publicName: "additionalHelpEventTrigger", isSignal: false, isRequired: false, transformFunction: null }, additionalHelpTooltip: { classPropertyName: "additionalHelpTooltip", publicName: "p-additional-help-tooltip", isSignal: false, isRequired: false, transformFunction: null }, appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "p-help", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "p-label", isSignal: false, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: false, isRequired: false, transformFunction: null }, fieldErrorMessage: { classPropertyName: "fieldErrorMessage", publicName: "p-field-error-message", isSignal: false, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "p-columns", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, indeterminate: { classPropertyName: "indeterminate", publicName: "p-indeterminate", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, options: { classPropertyName: "options", publicName: "p-options", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, showRequired: { classPropertyName: "showRequired", publicName: "p-show-required", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { ngModelChange: "ngModelChange", additionalHelp: "p-additional-help", change: "p-change", changeModel: "p-change-model", keydown: "p-keydown" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.size" } }, ngImport: i0 });
20918
21000
  }
20919
21001
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoCheckboxGroupBaseComponent, decorators: [{
20920
21002
  type: Directive
@@ -20956,6 +21038,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImpo
20956
21038
  }], change: [{
20957
21039
  type: Output,
20958
21040
  args: ['p-change']
21041
+ }], changeModel: [{
21042
+ type: Output,
21043
+ args: ['p-change-model']
20959
21044
  }], keydown: [{
20960
21045
  type: Output,
20961
21046
  args: ['p-keydown']
@@ -21424,6 +21509,20 @@ class PoRadioGroupBaseComponent {
21424
21509
  * Evento ao alterar valor do campo.
21425
21510
  */
21426
21511
  change = new EventEmitter();
21512
+ /**
21513
+ * @optional
21514
+ *
21515
+ * @description
21516
+ *
21517
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
21518
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
21519
+ *
21520
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
21521
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
21522
+ *
21523
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
21524
+ */
21525
+ changeModel = new EventEmitter();
21427
21526
  /**
21428
21527
  * @optional
21429
21528
  *
@@ -21434,6 +21533,7 @@ class PoRadioGroupBaseComponent {
21434
21533
  keydown = new EventEmitter();
21435
21534
  displayAdditionalHelp = false;
21436
21535
  mdColumns = poRadioGroupColumnsDefaultLength;
21536
+ modelLastUpdate;
21437
21537
  value;
21438
21538
  cd = inject(ChangeDetectorRef);
21439
21539
  onTouched = null;
@@ -21543,6 +21643,12 @@ class PoRadioGroupBaseComponent {
21543
21643
  onThemeChange() {
21544
21644
  this.applySizeBasedOnA11y();
21545
21645
  }
21646
+ controlChangeModelEmitter(value) {
21647
+ if (this.modelLastUpdate !== value) {
21648
+ this.changeModel.emit(value);
21649
+ this.modelLastUpdate = value;
21650
+ }
21651
+ }
21546
21652
  // Função que controla quando deve ser emitido onChange e atualiza o Model
21547
21653
  changeValue(changedValue) {
21548
21654
  if (this.onChangePropagate) {
@@ -21552,6 +21658,7 @@ class PoRadioGroupBaseComponent {
21552
21658
  this.change.emit(changedValue);
21553
21659
  }
21554
21660
  this.value = changedValue;
21661
+ this.controlChangeModelEmitter(changedValue);
21555
21662
  }
21556
21663
  // Função implementada do ControlValueAccessor
21557
21664
  // Usada para interceptar os estados de habilitado via forms api
@@ -21584,6 +21691,9 @@ class PoRadioGroupBaseComponent {
21584
21691
  this.value = undefined;
21585
21692
  this.onChangePropagate(this.value);
21586
21693
  }
21694
+ if (this.value != null) {
21695
+ this.controlChangeModelEmitter(this.value);
21696
+ }
21587
21697
  }
21588
21698
  checkColumnsRange(columns, maxColumns) {
21589
21699
  const minColumns = 1;
@@ -21603,7 +21713,7 @@ class PoRadioGroupBaseComponent {
21603
21713
  this._size = size;
21604
21714
  }
21605
21715
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoRadioGroupBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
21606
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.21", type: PoRadioGroupBaseComponent, isStandalone: true, inputs: { additionalHelpEventTrigger: { classPropertyName: "additionalHelpEventTrigger", publicName: "additionalHelpEventTrigger", isSignal: false, isRequired: false, transformFunction: null }, additionalHelpTooltip: { classPropertyName: "additionalHelpTooltip", publicName: "p-additional-help-tooltip", isSignal: false, isRequired: false, transformFunction: null }, appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: false, isRequired: false, transformFunction: null }, fieldErrorMessage: { classPropertyName: "fieldErrorMessage", publicName: "p-field-error-message", isSignal: false, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "p-columns", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, required: { classPropertyName: "required", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, showRequired: { classPropertyName: "showRequired", publicName: "p-show-required", isSignal: false, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "p-options", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { additionalHelp: "p-additional-help", change: "p-change", keydown: "p-keydown" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.size" } }, ngImport: i0 });
21716
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.21", type: PoRadioGroupBaseComponent, isStandalone: true, inputs: { additionalHelpEventTrigger: { classPropertyName: "additionalHelpEventTrigger", publicName: "additionalHelpEventTrigger", isSignal: false, isRequired: false, transformFunction: null }, additionalHelpTooltip: { classPropertyName: "additionalHelpTooltip", publicName: "p-additional-help-tooltip", isSignal: false, isRequired: false, transformFunction: null }, appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: false, isRequired: false, transformFunction: null }, fieldErrorMessage: { classPropertyName: "fieldErrorMessage", publicName: "p-field-error-message", isSignal: false, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "p-columns", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, required: { classPropertyName: "required", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, showRequired: { classPropertyName: "showRequired", publicName: "p-show-required", isSignal: false, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "p-options", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { additionalHelp: "p-additional-help", change: "p-change", changeModel: "p-change-model", keydown: "p-keydown" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.size" } }, ngImport: i0 });
21607
21717
  }
21608
21718
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoRadioGroupBaseComponent, decorators: [{
21609
21719
  type: Directive
@@ -21636,6 +21746,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImpo
21636
21746
  }], change: [{
21637
21747
  type: Output,
21638
21748
  args: ['p-change']
21749
+ }], changeModel: [{
21750
+ type: Output,
21751
+ args: ['p-change-model']
21639
21752
  }], keydown: [{
21640
21753
  type: Output,
21641
21754
  args: ['p-keydown']
@@ -23008,6 +23121,20 @@ class PoDatepickerBaseComponent {
23008
23121
  * > Essa propriedade está **depreciada** e será removida na versão `23.x.x`. Recomendamos utilizar a propriedade `p-helper` que oferece mais recursos e flexibilidade.
23009
23122
  */
23010
23123
  additionalHelp = new EventEmitter();
23124
+ /**
23125
+ * @optional
23126
+ *
23127
+ * @description
23128
+ *
23129
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
23130
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
23131
+ *
23132
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
23133
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
23134
+ *
23135
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
23136
+ */
23137
+ changeModel = new EventEmitter();
23011
23138
  /**
23012
23139
  * @optional
23013
23140
  *
@@ -23055,6 +23182,7 @@ class PoDatepickerBaseComponent {
23055
23182
  * @default `false`
23056
23183
  */
23057
23184
  labelTextWrap = input(false, { ...(ngDevMode ? { debugName: "labelTextWrap" } : /* istanbul ignore next */ {}), alias: 'p-label-text-wrap' });
23185
+ modelLastUpdate;
23058
23186
  offset;
23059
23187
  firstStart = true;
23060
23188
  hour = 'T00:00:00-00:00';
@@ -23405,11 +23533,18 @@ class PoDatepickerBaseComponent {
23405
23533
  if (this.onChangeModel && value !== this.previousValue) {
23406
23534
  this.onChangeModel(value);
23407
23535
  this.previousValue = value;
23536
+ this.controlChangeModelEmitter(value);
23408
23537
  }
23409
23538
  else if (retry) {
23410
23539
  setTimeout(() => this.callOnChange(value, false));
23411
23540
  }
23412
23541
  }
23542
+ controlChangeModelEmitter(value) {
23543
+ if (this.modelLastUpdate !== value) {
23544
+ this.changeModel.emit(value);
23545
+ this.modelLastUpdate = value;
23546
+ }
23547
+ }
23413
23548
  //Transforma o tamanho do input para o tamanho do ícone de loading correspondente
23414
23549
  mapSizeToIcon(size) {
23415
23550
  return mapInputSizeToLoadingIcon(size);
@@ -23580,7 +23715,7 @@ class PoDatepickerBaseComponent {
23580
23715
  this._size = size;
23581
23716
  }
23582
23717
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoDatepickerBaseComponent, deps: [{ token: PoLanguageService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
23583
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.21", type: PoDatepickerBaseComponent, isStandalone: true, inputs: { additionalHelpEventTrigger: { classPropertyName: "additionalHelpEventTrigger", publicName: "additionalHelpEventTrigger", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "p-label", isSignal: false, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "p-help", isSignal: false, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "p-mode", isSignal: false, isRequired: false, transformFunction: null }, yearRangeLimit: { classPropertyName: "yearRangeLimit", publicName: "p-year-range-limit", isSignal: false, isRequired: false, transformFunction: null }, additionalHelpTooltip: { classPropertyName: "additionalHelpTooltip", publicName: "p-additional-help-tooltip", isSignal: false, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, errorAsync: { classPropertyName: "errorAsync", publicName: "p-error-async", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: false, isRequired: false, transformFunction: null }, errorPattern: { classPropertyName: "errorPattern", publicName: "p-error-pattern", isSignal: false, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: false, isRequired: false, transformFunction: null }, showErrorMessageRequired: { classPropertyName: "showErrorMessageRequired", publicName: "p-required-field-error-message", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null }, noAutocomplete: { classPropertyName: "noAutocomplete", publicName: "p-no-autocomplete", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, placeholder: { classPropertyName: "placeholder", publicName: "p-placeholder", isSignal: false, isRequired: false, transformFunction: null }, setDisabled: { classPropertyName: "setDisabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, setReadonly: { classPropertyName: "setReadonly", publicName: "p-readonly", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, setRequired: { classPropertyName: "setRequired", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, showRequired: { classPropertyName: "showRequired", publicName: "p-show-required", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null }, setClean: { classPropertyName: "setClean", publicName: "p-clean", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, minDate: { classPropertyName: "minDate", publicName: "p-min-date", isSignal: false, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "p-max-date", isSignal: false, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "p-format", isSignal: false, isRequired: false, transformFunction: null }, isoFormat: { classPropertyName: "isoFormat", publicName: "p-iso-format", isSignal: false, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "p-locale", isSignal: false, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "p-loading", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: false, isRequired: false, transformFunction: convertToBoolean } }, outputs: { additionalHelp: "p-additional-help", onblur: "p-blur", onchange: "p-change", keydown: "p-keydown" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.size" } }, ngImport: i0 });
23718
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.21", type: PoDatepickerBaseComponent, isStandalone: true, inputs: { additionalHelpEventTrigger: { classPropertyName: "additionalHelpEventTrigger", publicName: "additionalHelpEventTrigger", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "p-label", isSignal: false, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "p-help", isSignal: false, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "p-mode", isSignal: false, isRequired: false, transformFunction: null }, yearRangeLimit: { classPropertyName: "yearRangeLimit", publicName: "p-year-range-limit", isSignal: false, isRequired: false, transformFunction: null }, additionalHelpTooltip: { classPropertyName: "additionalHelpTooltip", publicName: "p-additional-help-tooltip", isSignal: false, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, errorAsync: { classPropertyName: "errorAsync", publicName: "p-error-async", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: false, isRequired: false, transformFunction: null }, errorPattern: { classPropertyName: "errorPattern", publicName: "p-error-pattern", isSignal: false, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: false, isRequired: false, transformFunction: null }, showErrorMessageRequired: { classPropertyName: "showErrorMessageRequired", publicName: "p-required-field-error-message", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null }, noAutocomplete: { classPropertyName: "noAutocomplete", publicName: "p-no-autocomplete", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, placeholder: { classPropertyName: "placeholder", publicName: "p-placeholder", isSignal: false, isRequired: false, transformFunction: null }, setDisabled: { classPropertyName: "setDisabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, setReadonly: { classPropertyName: "setReadonly", publicName: "p-readonly", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, setRequired: { classPropertyName: "setRequired", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, showRequired: { classPropertyName: "showRequired", publicName: "p-show-required", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null }, setClean: { classPropertyName: "setClean", publicName: "p-clean", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, minDate: { classPropertyName: "minDate", publicName: "p-min-date", isSignal: false, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "p-max-date", isSignal: false, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "p-format", isSignal: false, isRequired: false, transformFunction: null }, isoFormat: { classPropertyName: "isoFormat", publicName: "p-iso-format", isSignal: false, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "p-locale", isSignal: false, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "p-loading", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: false, isRequired: false, transformFunction: convertToBoolean } }, outputs: { additionalHelp: "p-additional-help", changeModel: "p-change-model", onblur: "p-blur", onchange: "p-change", keydown: "p-keydown" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.size" } }, ngImport: i0 });
23584
23719
  }
23585
23720
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoDatepickerBaseComponent, decorators: [{
23586
23721
  type: Directive
@@ -23625,6 +23760,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImpo
23625
23760
  }], additionalHelp: [{
23626
23761
  type: Output,
23627
23762
  args: ['p-additional-help']
23763
+ }], changeModel: [{
23764
+ type: Output,
23765
+ args: ['p-change-model']
23628
23766
  }], onblur: [{
23629
23767
  type: Output,
23630
23768
  args: ['p-blur']
@@ -30072,6 +30210,21 @@ class PoDatetimepickerBaseComponent {
30072
30210
  * Evento disparado quando uma tecla é pressionada enquanto o foco está no componente.
30073
30211
  */
30074
30212
  keydown = new EventEmitter();
30213
+ /**
30214
+ * @optional
30215
+ *
30216
+ * @description
30217
+ *
30218
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
30219
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
30220
+ *
30221
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
30222
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
30223
+ *
30224
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
30225
+ */
30226
+ changeModel = new EventEmitter();
30227
+ modelLastUpdate;
30075
30228
  constructor(languageService) {
30076
30229
  this.languageService = languageService;
30077
30230
  // p-clean
@@ -30296,11 +30449,18 @@ class PoDatetimepickerBaseComponent {
30296
30449
  callOnChange(value, retry = true) {
30297
30450
  if (this.onChangeModel) {
30298
30451
  this.onChangeModel(value);
30452
+ this.controlChangeModelEmitter(value);
30299
30453
  }
30300
30454
  else if (retry) {
30301
30455
  setTimeout(() => this.callOnChange(value, false));
30302
30456
  }
30303
30457
  }
30458
+ controlChangeModelEmitter(value) {
30459
+ if (this.modelLastUpdate !== value) {
30460
+ this.changeModel.emit(value);
30461
+ this.modelLastUpdate = value;
30462
+ }
30463
+ }
30304
30464
  controlModel() {
30305
30465
  const modelValue = this.getModelValue();
30306
30466
  this.callOnChange(modelValue || '');
@@ -30441,7 +30601,7 @@ class PoDatetimepickerBaseComponent {
30441
30601
  this._size = size;
30442
30602
  }
30443
30603
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoDatetimepickerBaseComponent, deps: [{ token: PoLanguageService }], target: i0.ɵɵFactoryTarget.Directive });
30444
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.21", type: PoDatetimepickerBaseComponent, isStandalone: true, inputs: { appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: true, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: true, isRequired: false, transformFunction: null }, clean: { classPropertyName: "clean", publicName: "p-clean", isSignal: true, isRequired: false, transformFunction: null }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "p-disabled", isSignal: true, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: true, isRequired: false, transformFunction: null }, errorPattern: { classPropertyName: "errorPattern", publicName: "p-error-pattern", isSignal: true, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "p-help", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "p-label", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "p-loading", isSignal: true, isRequired: false, transformFunction: null }, localeInput: { classPropertyName: "localeInput", publicName: "p-locale", isSignal: true, isRequired: false, transformFunction: null }, maxDateInput: { classPropertyName: "maxDateInput", publicName: "p-max-date", isSignal: true, isRequired: false, transformFunction: null }, maxTime: { classPropertyName: "maxTime", publicName: "p-max-time", isSignal: true, isRequired: false, transformFunction: null }, minDateInput: { classPropertyName: "minDateInput", publicName: "p-min-date", isSignal: true, isRequired: false, transformFunction: null }, minTime: { classPropertyName: "minTime", publicName: "p-min-time", isSignal: true, isRequired: false, transformFunction: null }, minuteInterval: { classPropertyName: "minuteInterval", publicName: "p-minute-interval", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, noAutocomplete: { classPropertyName: "noAutocomplete", publicName: "p-no-autocomplete", isSignal: true, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "p-placeholder", isSignal: true, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "p-readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "p-required", isSignal: true, isRequired: false, transformFunction: null }, secondInterval: { classPropertyName: "secondInterval", publicName: "p-second-interval", isSignal: true, isRequired: false, transformFunction: null }, showErrorMessageRequired: { classPropertyName: "showErrorMessageRequired", publicName: "p-required-field-error-message", isSignal: true, isRequired: false, transformFunction: null }, showRequired: { classPropertyName: "showRequired", publicName: "p-show-required", isSignal: true, isRequired: false, transformFunction: null }, showSeconds: { classPropertyName: "showSeconds", publicName: "p-show-seconds", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: true, isRequired: false, transformFunction: null }, timerFormat: { classPropertyName: "timerFormat", publicName: "p-format-time", isSignal: true, isRequired: false, transformFunction: null }, dateFormat: { classPropertyName: "dateFormat", publicName: "p-format-date", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { errorPattern: "p-error-patternChange", onblur: "p-blur", onchange: "p-change", keydown: "p-keydown" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.hostSize" } }, ngImport: i0 });
30604
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.21", type: PoDatetimepickerBaseComponent, isStandalone: true, inputs: { appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: true, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: true, isRequired: false, transformFunction: null }, clean: { classPropertyName: "clean", publicName: "p-clean", isSignal: true, isRequired: false, transformFunction: null }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "p-disabled", isSignal: true, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: true, isRequired: false, transformFunction: null }, errorPattern: { classPropertyName: "errorPattern", publicName: "p-error-pattern", isSignal: true, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "p-help", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "p-label", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "p-loading", isSignal: true, isRequired: false, transformFunction: null }, localeInput: { classPropertyName: "localeInput", publicName: "p-locale", isSignal: true, isRequired: false, transformFunction: null }, maxDateInput: { classPropertyName: "maxDateInput", publicName: "p-max-date", isSignal: true, isRequired: false, transformFunction: null }, maxTime: { classPropertyName: "maxTime", publicName: "p-max-time", isSignal: true, isRequired: false, transformFunction: null }, minDateInput: { classPropertyName: "minDateInput", publicName: "p-min-date", isSignal: true, isRequired: false, transformFunction: null }, minTime: { classPropertyName: "minTime", publicName: "p-min-time", isSignal: true, isRequired: false, transformFunction: null }, minuteInterval: { classPropertyName: "minuteInterval", publicName: "p-minute-interval", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, noAutocomplete: { classPropertyName: "noAutocomplete", publicName: "p-no-autocomplete", isSignal: true, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "p-placeholder", isSignal: true, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "p-readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "p-required", isSignal: true, isRequired: false, transformFunction: null }, secondInterval: { classPropertyName: "secondInterval", publicName: "p-second-interval", isSignal: true, isRequired: false, transformFunction: null }, showErrorMessageRequired: { classPropertyName: "showErrorMessageRequired", publicName: "p-required-field-error-message", isSignal: true, isRequired: false, transformFunction: null }, showRequired: { classPropertyName: "showRequired", publicName: "p-show-required", isSignal: true, isRequired: false, transformFunction: null }, showSeconds: { classPropertyName: "showSeconds", publicName: "p-show-seconds", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: true, isRequired: false, transformFunction: null }, timerFormat: { classPropertyName: "timerFormat", publicName: "p-format-time", isSignal: true, isRequired: false, transformFunction: null }, dateFormat: { classPropertyName: "dateFormat", publicName: "p-format-date", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { errorPattern: "p-error-patternChange", onblur: "p-blur", onchange: "p-change", keydown: "p-keydown", changeModel: "p-change-model" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.hostSize" } }, ngImport: i0 });
30445
30605
  }
30446
30606
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoDatetimepickerBaseComponent, decorators: [{
30447
30607
  type: Directive
@@ -30454,6 +30614,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImpo
30454
30614
  }], keydown: [{
30455
30615
  type: Output,
30456
30616
  args: ['p-keydown']
30617
+ }], changeModel: [{
30618
+ type: Output,
30619
+ args: ['p-change-model']
30457
30620
  }], hostSize: [{
30458
30621
  type: HostBinding,
30459
30622
  args: ['attr.p-size']
@@ -31470,6 +31633,20 @@ class PoTimepickerBaseComponent {
31470
31633
  onblur = new EventEmitter();
31471
31634
  /** Evento disparado ao alterar valor do campo. */
31472
31635
  onchange = new EventEmitter();
31636
+ /**
31637
+ * @optional
31638
+ *
31639
+ * @description
31640
+ *
31641
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
31642
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
31643
+ *
31644
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
31645
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
31646
+ *
31647
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
31648
+ */
31649
+ changeModel = new EventEmitter();
31473
31650
  /** Evento disparado quando uma tecla é pressionada enquanto o foco está no componente. */
31474
31651
  keydown = new EventEmitter();
31475
31652
  /**
@@ -31510,6 +31687,7 @@ class PoTimepickerBaseComponent {
31510
31687
  required = false;
31511
31688
  /** Habilita ação para limpar o campo. */
31512
31689
  clean = false;
31690
+ modelLastUpdate;
31513
31691
  onChangeModel = null;
31514
31692
  validatorChange;
31515
31693
  onTouchedModel = null;
@@ -31905,6 +32083,13 @@ class PoTimepickerBaseComponent {
31905
32083
  else {
31906
32084
  this.pendingChangeValue = { value: formatted };
31907
32085
  }
32086
+ this.controlChangeModelEmitter(formatted);
32087
+ }
32088
+ controlChangeModelEmitter(value) {
32089
+ if (this.modelLastUpdate !== value) {
32090
+ this.changeModel.emit(value);
32091
+ this.modelLastUpdate = value;
32092
+ }
31908
32093
  }
31909
32094
  mapSizeToIcon(size) {
31910
32095
  return mapInputSizeToLoadingIcon(size);
@@ -31985,7 +32170,7 @@ class PoTimepickerBaseComponent {
31985
32170
  }
31986
32171
  }
31987
32172
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoTimepickerBaseComponent, deps: [{ token: PoLanguageService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
31988
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.21", type: PoTimepickerBaseComponent, isStandalone: true, inputs: { additionalHelpEventTrigger: { classPropertyName: "additionalHelpEventTrigger", publicName: "additionalHelpEventTrigger", isSignal: false, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: false, isRequired: false, transformFunction: null }, errorPattern: { classPropertyName: "errorPattern", publicName: "p-error-pattern", isSignal: false, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: false, isRequired: false, transformFunction: null }, showErrorMessageRequired: { classPropertyName: "showErrorMessageRequired", publicName: "p-required-field-error-message", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null }, noAutocomplete: { classPropertyName: "noAutocomplete", publicName: "p-no-autocomplete", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, placeholder: { classPropertyName: "placeholder", publicName: "p-placeholder", isSignal: false, isRequired: false, transformFunction: null }, setDisabled: { classPropertyName: "setDisabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, setReadonly: { classPropertyName: "setReadonly", publicName: "p-readonly", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, setRequired: { classPropertyName: "setRequired", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, showRequired: { classPropertyName: "showRequired", publicName: "p-show-required", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null }, setClean: { classPropertyName: "setClean", publicName: "p-clean", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, format: { classPropertyName: "format", publicName: "p-format", isSignal: false, isRequired: false, transformFunction: null }, minTime: { classPropertyName: "minTime", publicName: "p-min-time", isSignal: false, isRequired: false, transformFunction: null }, maxTime: { classPropertyName: "maxTime", publicName: "p-max-time", isSignal: false, isRequired: false, transformFunction: null }, minuteInterval: { classPropertyName: "minuteInterval", publicName: "p-minute-interval", isSignal: false, isRequired: false, transformFunction: null }, secondInterval: { classPropertyName: "secondInterval", publicName: "p-second-interval", isSignal: false, isRequired: false, transformFunction: null }, showSeconds: { classPropertyName: "showSeconds", publicName: "p-show-seconds", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, modelFormat: { classPropertyName: "modelFormat", publicName: "p-model-format", isSignal: false, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "p-locale", isSignal: false, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "p-loading", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: false, isRequired: false, transformFunction: convertToBoolean } }, outputs: { onblur: "p-blur", onchange: "p-change", keydown: "p-keydown" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.size" } }, ngImport: i0 });
32173
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.21", type: PoTimepickerBaseComponent, isStandalone: true, inputs: { additionalHelpEventTrigger: { classPropertyName: "additionalHelpEventTrigger", publicName: "additionalHelpEventTrigger", isSignal: false, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: false, isRequired: false, transformFunction: null }, errorPattern: { classPropertyName: "errorPattern", publicName: "p-error-pattern", isSignal: false, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: false, isRequired: false, transformFunction: null }, showErrorMessageRequired: { classPropertyName: "showErrorMessageRequired", publicName: "p-required-field-error-message", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null }, noAutocomplete: { classPropertyName: "noAutocomplete", publicName: "p-no-autocomplete", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, placeholder: { classPropertyName: "placeholder", publicName: "p-placeholder", isSignal: false, isRequired: false, transformFunction: null }, setDisabled: { classPropertyName: "setDisabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, setReadonly: { classPropertyName: "setReadonly", publicName: "p-readonly", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, setRequired: { classPropertyName: "setRequired", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, showRequired: { classPropertyName: "showRequired", publicName: "p-show-required", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null }, setClean: { classPropertyName: "setClean", publicName: "p-clean", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, format: { classPropertyName: "format", publicName: "p-format", isSignal: false, isRequired: false, transformFunction: null }, minTime: { classPropertyName: "minTime", publicName: "p-min-time", isSignal: false, isRequired: false, transformFunction: null }, maxTime: { classPropertyName: "maxTime", publicName: "p-max-time", isSignal: false, isRequired: false, transformFunction: null }, minuteInterval: { classPropertyName: "minuteInterval", publicName: "p-minute-interval", isSignal: false, isRequired: false, transformFunction: null }, secondInterval: { classPropertyName: "secondInterval", publicName: "p-second-interval", isSignal: false, isRequired: false, transformFunction: null }, showSeconds: { classPropertyName: "showSeconds", publicName: "p-show-seconds", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, modelFormat: { classPropertyName: "modelFormat", publicName: "p-model-format", isSignal: false, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "p-locale", isSignal: false, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "p-loading", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: false, isRequired: false, transformFunction: convertToBoolean } }, outputs: { onblur: "p-blur", onchange: "p-change", changeModel: "p-change-model", keydown: "p-keydown" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.size" } }, ngImport: i0 });
31989
32174
  }
31990
32175
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoTimepickerBaseComponent, decorators: [{
31991
32176
  type: Directive
@@ -32015,6 +32200,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImpo
32015
32200
  }], onchange: [{
32016
32201
  type: Output,
32017
32202
  args: ['p-change']
32203
+ }], changeModel: [{
32204
+ type: Output,
32205
+ args: ['p-change-model']
32018
32206
  }], keydown: [{
32019
32207
  type: Output,
32020
32208
  args: ['p-keydown']
@@ -32634,6 +32822,9 @@ class PoTimepickerComponent extends PoTimepickerBaseComponent {
32634
32822
  this.timeValue = '';
32635
32823
  }
32636
32824
  this.valueBeforeChange = this.timeValue;
32825
+ if (value != null) {
32826
+ this.controlChangeModelEmitter(this.formatOutput(this.timeValue) || this.timeValue);
32827
+ }
32637
32828
  }
32638
32829
  verifyMobile() {
32639
32830
  return isMobile();
@@ -35193,6 +35384,21 @@ class PoSwitchComponent extends PoFieldModel {
35193
35384
  * @default `false`
35194
35385
  */
35195
35386
  labelTextWrap = input(false, { ...(ngDevMode ? { debugName: "labelTextWrap" } : /* istanbul ignore next */ {}), alias: 'p-label-text-wrap' });
35387
+ /**
35388
+ * @optional
35389
+ *
35390
+ * @description
35391
+ *
35392
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
35393
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
35394
+ *
35395
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
35396
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
35397
+ *
35398
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
35399
+ */
35400
+ changeModel = new EventEmitter();
35401
+ modelLastUpdate;
35196
35402
  el = inject(ElementRef);
35197
35403
  injectOptions = {
35198
35404
  self: true
@@ -35269,6 +35475,7 @@ class PoSwitchComponent extends PoFieldModel {
35269
35475
  this.updateModel(value);
35270
35476
  }
35271
35477
  this.emitChange(this.value);
35478
+ this.controlChangeModelEmitter(this.value);
35272
35479
  }
35273
35480
  }
35274
35481
  eventClick() {
@@ -35286,6 +35493,9 @@ class PoSwitchComponent extends PoFieldModel {
35286
35493
  }
35287
35494
  this.changeDetector.markForCheck();
35288
35495
  }
35496
+ if (value != null) {
35497
+ this.controlChangeModelEmitter(this.value);
35498
+ }
35289
35499
  }
35290
35500
  validate(control) {
35291
35501
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
@@ -35356,12 +35566,18 @@ class PoSwitchComponent extends PoFieldModel {
35356
35566
  showAdditionalHelp() {
35357
35567
  return super.showAdditionalHelp(this.helperEl, this.poHelperComponent());
35358
35568
  }
35569
+ controlChangeModelEmitter(value) {
35570
+ if (this.modelLastUpdate !== value) {
35571
+ this.changeModel.emit(value);
35572
+ this.modelLastUpdate = value;
35573
+ }
35574
+ }
35359
35575
  applySizeBasedOnA11y() {
35360
35576
  const size = validateSizeFn(this._initialSize, PoFieldSize);
35361
35577
  this._size = size;
35362
35578
  }
35363
35579
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoSwitchComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
35364
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.21", type: PoSwitchComponent, isStandalone: false, selector: "po-switch", inputs: { value: { classPropertyName: "value", publicName: "p-value", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, formatModel: { classPropertyName: "formatModel", publicName: "p-format-model", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, hideLabelStatus: { classPropertyName: "hideLabelStatus", publicName: "p-hide-label-status", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, labelPosition: { classPropertyName: "labelPosition", publicName: "p-label-position", isSignal: false, isRequired: false, transformFunction: null }, labelOff: { classPropertyName: "labelOff", publicName: "p-label-off", isSignal: false, isRequired: false, transformFunction: null }, labelOn: { classPropertyName: "labelOn", publicName: "p-label-on", isSignal: false, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "p-loading", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, fieldErrorMessage: { classPropertyName: "fieldErrorMessage", publicName: "p-field-error-message", isSignal: false, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: false, isRequired: false, transformFunction: null }, invalidValue: { classPropertyName: "invalidValue", publicName: "p-invalid-value", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.size" } }, providers: [
35580
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.21", type: PoSwitchComponent, isStandalone: false, selector: "po-switch", inputs: { value: { classPropertyName: "value", publicName: "p-value", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, formatModel: { classPropertyName: "formatModel", publicName: "p-format-model", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, hideLabelStatus: { classPropertyName: "hideLabelStatus", publicName: "p-hide-label-status", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, labelPosition: { classPropertyName: "labelPosition", publicName: "p-label-position", isSignal: false, isRequired: false, transformFunction: null }, labelOff: { classPropertyName: "labelOff", publicName: "p-label-off", isSignal: false, isRequired: false, transformFunction: null }, labelOn: { classPropertyName: "labelOn", publicName: "p-label-on", isSignal: false, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "p-loading", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, fieldErrorMessage: { classPropertyName: "fieldErrorMessage", publicName: "p-field-error-message", isSignal: false, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: false, isRequired: false, transformFunction: null }, invalidValue: { classPropertyName: "invalidValue", publicName: "p-invalid-value", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changeModel: "p-change-model" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.size" } }, providers: [
35365
35581
  {
35366
35582
  provide: NG_VALUE_ACCESSOR,
35367
35583
  useExisting: forwardRef(() => PoSwitchComponent),
@@ -35440,7 +35656,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImpo
35440
35656
  }, {
35441
35657
  type: HostBinding,
35442
35658
  args: ['attr.p-size']
35443
- }], poHelperComponent: [{ type: i0.Input, args: [{ isSignal: true, alias: "p-helper", required: false }] }], labelTextWrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "p-label-text-wrap", required: false }] }], onThemeChange: [{
35659
+ }], poHelperComponent: [{ type: i0.Input, args: [{ isSignal: true, alias: "p-helper", required: false }] }], labelTextWrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "p-label-text-wrap", required: false }] }], changeModel: [{
35660
+ type: Output,
35661
+ args: ['p-change-model']
35662
+ }], onThemeChange: [{
35444
35663
  type: HostListener,
35445
35664
  args: ['window:PoUiThemeChange']
35446
35665
  }] } });
@@ -35573,7 +35792,7 @@ class PoTableListManagerComponent extends PoCheckboxGroupComponent {
35573
35792
  useExisting: forwardRef(() => PoTableListManagerComponent),
35574
35793
  multi: true
35575
35794
  }
35576
- ], usesInheritance: true, ngImport: i0, template: "@if (existedFixedItem()) {\n <section class=\"po-table-list-manager-section\">\n <p class=\"po-table-list-manager-title-group-items\">{{ literals.fixedColumns }}</p>\n @for (option of checkboxGroupOptionsView; track trackByFn($index)) {\n @if (isFixed(option)) {\n <li\n class=\"po-table-list-manager-container\"\n [class.po-checkbox-group-item-disabled]=\"option.disabled || disabled\"\n >\n <ng-container *ngTemplateOutlet=\"listItemsManagerDefault; context: { $implicit: option }\"></ng-container>\n </li>\n }\n }\n </section>\n}\n\n<section class=\"po-table-list-manager-section\">\n <p class=\"po-table-list-manager-title-group-items\">{{ literals.otherColumns }}</p>\n @for (option of checkboxGroupOptionsView; track trackByFn($index)) {\n @if (!isFixed(option)) {\n <li class=\"po-table-list-manager-container\" [class.po-checkbox-group-item-disabled]=\"option.disabled || disabled\">\n @if (!isFixed(option)) {\n <ng-container *ngTemplateOutlet=\"listItemsManagerDefault; context: { $implicit: option }\"></ng-container>\n }\n </li>\n }\n }\n</section>\n\n<ng-template #listItemsManagerDefault let-option>\n <div class=\"po-table-list-manager-item\">\n <div class=\"po-table-list-manager-item-switch\">\n <po-switch\n name=\"switch\"\n (p-change)=\"clickSwitch(option)\"\n (keydown)=\"onKeyDown($event, option)\"\n [p-disabled]=\"option.disabled || disabled || isFixed(option)\"\n [p-value]=\"checkedOptions[option.value]\"\n [p-hide-label-status]=\"true\"\n [p-size]=\"componentsSize\"\n >\n </po-switch>\n <span\n class=\"po-table-list-manager-item-text\"\n [class.po-table-list-manager-item-text-aa]=\"componentsSize === 'small'\"\n >\n {{ option.label }}\n </span>\n </div>\n\n <div class=\"po-table-list-manager-item-buttons\">\n @if (!hideActionFixedColumns) {\n <po-button\n [p-icon]=\"isFixed(option) ? 'ICON_PUSH_PIN_SLASH' : 'ICON_PUSH_PIN'\"\n (p-click)=\"emitFixed(option)\"\n [p-disabled]=\"!option.visible || checksIfHasFiveFixed(option)\"\n [p-size]=\"componentsSize\"\n >\n </po-button>\n }\n\n <po-button\n [p-tooltip]=\"literals.up\"\n p-tooltip-position=\"left\"\n p-icon=\"ICON_ARROW_UP\"\n [p-disabled]=\"verifyArrowDisabled(option, 'up') || isFixed(option)\"\n [p-size]=\"componentsSize\"\n (p-click)=\"emitChangePosition(option, 'up')\"\n >\n </po-button>\n\n <po-button\n [p-tooltip]=\"literals.down\"\n p-tooltip-position=\"top\"\n p-icon=\"ICON_ARROW_DOWN\"\n [p-disabled]=\"verifyArrowDisabled(option, 'down') || isFixed(option)\"\n [p-size]=\"componentsSize\"\n (p-click)=\"emitChangePosition(option, 'down')\"\n >\n </po-button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PoButtonComponent, selector: "po-button" }, { kind: "directive", type: PoTooltipDirective, selector: "[p-tooltip]" }, { kind: "component", type: PoSwitchComponent, selector: "po-switch", inputs: ["p-value", "p-compact-label", "p-format-model", "p-hide-label-status", "p-label-position", "p-label-off", "p-label-on", "p-loading", "p-field-error-message", "p-error-limit", "p-invalid-value", "p-size", "p-helper", "p-label-text-wrap"] }] });
35795
+ ], usesInheritance: true, ngImport: i0, template: "@if (existedFixedItem()) {\n <section class=\"po-table-list-manager-section\">\n <p class=\"po-table-list-manager-title-group-items\">{{ literals.fixedColumns }}</p>\n @for (option of checkboxGroupOptionsView; track trackByFn($index)) {\n @if (isFixed(option)) {\n <li\n class=\"po-table-list-manager-container\"\n [class.po-checkbox-group-item-disabled]=\"option.disabled || disabled\"\n >\n <ng-container *ngTemplateOutlet=\"listItemsManagerDefault; context: { $implicit: option }\"></ng-container>\n </li>\n }\n }\n </section>\n}\n\n<section class=\"po-table-list-manager-section\">\n <p class=\"po-table-list-manager-title-group-items\">{{ literals.otherColumns }}</p>\n @for (option of checkboxGroupOptionsView; track trackByFn($index)) {\n @if (!isFixed(option)) {\n <li class=\"po-table-list-manager-container\" [class.po-checkbox-group-item-disabled]=\"option.disabled || disabled\">\n @if (!isFixed(option)) {\n <ng-container *ngTemplateOutlet=\"listItemsManagerDefault; context: { $implicit: option }\"></ng-container>\n }\n </li>\n }\n }\n</section>\n\n<ng-template #listItemsManagerDefault let-option>\n <div class=\"po-table-list-manager-item\">\n <div class=\"po-table-list-manager-item-switch\">\n <po-switch\n name=\"switch\"\n (p-change)=\"clickSwitch(option)\"\n (keydown)=\"onKeyDown($event, option)\"\n [p-disabled]=\"option.disabled || disabled || isFixed(option)\"\n [p-value]=\"checkedOptions[option.value]\"\n [p-hide-label-status]=\"true\"\n [p-size]=\"componentsSize\"\n >\n </po-switch>\n <span\n class=\"po-table-list-manager-item-text\"\n [class.po-table-list-manager-item-text-aa]=\"componentsSize === 'small'\"\n >\n {{ option.label }}\n </span>\n </div>\n\n <div class=\"po-table-list-manager-item-buttons\">\n @if (!hideActionFixedColumns) {\n <po-button\n [p-icon]=\"isFixed(option) ? 'ICON_PUSH_PIN_SLASH' : 'ICON_PUSH_PIN'\"\n (p-click)=\"emitFixed(option)\"\n [p-disabled]=\"!option.visible || checksIfHasFiveFixed(option)\"\n [p-size]=\"componentsSize\"\n >\n </po-button>\n }\n\n <po-button\n [p-tooltip]=\"literals.up\"\n p-tooltip-position=\"left\"\n p-icon=\"ICON_ARROW_UP\"\n [p-disabled]=\"verifyArrowDisabled(option, 'up') || isFixed(option)\"\n [p-size]=\"componentsSize\"\n (p-click)=\"emitChangePosition(option, 'up')\"\n >\n </po-button>\n\n <po-button\n [p-tooltip]=\"literals.down\"\n p-tooltip-position=\"top\"\n p-icon=\"ICON_ARROW_DOWN\"\n [p-disabled]=\"verifyArrowDisabled(option, 'down') || isFixed(option)\"\n [p-size]=\"componentsSize\"\n (p-click)=\"emitChangePosition(option, 'down')\"\n >\n </po-button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PoButtonComponent, selector: "po-button" }, { kind: "directive", type: PoTooltipDirective, selector: "[p-tooltip]" }, { kind: "component", type: PoSwitchComponent, selector: "po-switch", inputs: ["p-value", "p-compact-label", "p-format-model", "p-hide-label-status", "p-label-position", "p-label-off", "p-label-on", "p-loading", "p-field-error-message", "p-error-limit", "p-invalid-value", "p-size", "p-helper", "p-label-text-wrap"], outputs: ["p-change-model"] }] });
35577
35796
  }
35578
35797
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoTableListManagerComponent, decorators: [{
35579
35798
  type: Component,
@@ -36308,7 +36527,13 @@ class PoInputBaseComponent {
36308
36527
  *
36309
36528
  * @description
36310
36529
  *
36311
- * Evento disparado ao alterar valor do model.
36530
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
36531
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
36532
+ *
36533
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
36534
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
36535
+ *
36536
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
36312
36537
  */
36313
36538
  changeModel = new EventEmitter();
36314
36539
  /**
@@ -43030,6 +43255,20 @@ class PoDatepickerRangeBaseComponent {
43030
43255
  * Evento disparado ao alterar valor do campo.
43031
43256
  */
43032
43257
  onChange = new EventEmitter();
43258
+ /**
43259
+ * @optional
43260
+ *
43261
+ * @description
43262
+ *
43263
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
43264
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
43265
+ *
43266
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
43267
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
43268
+ *
43269
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
43270
+ */
43271
+ changeModel = new EventEmitter();
43033
43272
  /**
43034
43273
  * @optional
43035
43274
  *
@@ -43041,6 +43280,7 @@ class PoDatepickerRangeBaseComponent {
43041
43280
  errorMessage = '';
43042
43281
  dateRange = { start: '', end: '' };
43043
43282
  displayAdditionalHelp = false;
43283
+ modelLastUpdate;
43044
43284
  format = 'dd/mm/yyyy';
43045
43285
  isDateRangeInputFormatValid = true;
43046
43286
  isStartDateRangeInputValid = true;
@@ -43475,6 +43715,15 @@ class PoDatepickerRangeBaseComponent {
43475
43715
  if (this.onChangeModel) {
43476
43716
  this.onChangeModel(model);
43477
43717
  }
43718
+ this.controlChangeModelEmitter(model);
43719
+ }
43720
+ controlChangeModelEmitter(value) {
43721
+ const current = JSON.stringify(this.modelLastUpdate);
43722
+ const incoming = JSON.stringify(value);
43723
+ if (current !== incoming) {
43724
+ this.changeModel.emit(value);
43725
+ this.modelLastUpdate = value && typeof value === 'object' ? { ...value } : value;
43726
+ }
43478
43727
  }
43479
43728
  validateModel(value) {
43480
43729
  const model = { ...value };
@@ -43544,7 +43793,7 @@ class PoDatepickerRangeBaseComponent {
43544
43793
  this._size = size;
43545
43794
  }
43546
43795
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoDatepickerRangeBaseComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: PoDateService }, { token: PoLanguageService }], target: i0.ɵɵFactoryTarget.Directive });
43547
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.21", type: PoDatepickerRangeBaseComponent, isStandalone: true, inputs: { additionalHelpEventTrigger: { classPropertyName: "additionalHelpEventTrigger", publicName: "additionalHelpEventTrigger", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, additionalHelpTooltip: { classPropertyName: "additionalHelpTooltip", publicName: "p-additional-help-tooltip", isSignal: false, isRequired: false, transformFunction: null }, appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, rangePresets: { classPropertyName: "rangePresets", publicName: "p-range-presets", isSignal: false, isRequired: false, transformFunction: null }, rangePresetOptions: { classPropertyName: "rangePresetOptions", publicName: "p-range-preset-options", isSignal: false, isRequired: false, transformFunction: null }, rangePresetsOrder: { classPropertyName: "rangePresetsOrder", publicName: "p-range-presets-order", isSignal: false, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "p-help", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "p-label", isSignal: false, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "p-placeholder", isSignal: false, isRequired: false, transformFunction: null }, fieldErrorMessage: { classPropertyName: "fieldErrorMessage", publicName: "p-field-error-message", isSignal: false, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null }, clean: { classPropertyName: "clean", publicName: "p-clean", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, disabled: { classPropertyName: "disabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, endDate: { classPropertyName: "endDate", publicName: "p-end-date", isSignal: false, isRequired: false, transformFunction: null }, literals: { classPropertyName: "literals", publicName: "p-literals", isSignal: false, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "p-loading", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, minDate: { classPropertyName: "minDate", publicName: "p-min-date", isSignal: false, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "p-max-date", isSignal: false, isRequired: false, transformFunction: null }, noAutocomplete: { classPropertyName: "noAutocomplete", publicName: "p-no-autocomplete", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, readonly: { classPropertyName: "readonly", publicName: "p-readonly", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, required: { classPropertyName: "required", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, showRequired: { classPropertyName: "showRequired", publicName: "p-show-required", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null }, startDate: { classPropertyName: "startDate", publicName: "p-start-date", isSignal: false, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "p-locale", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { additionalHelp: "p-additional-help", onChange: "p-change", keydown: "p-keydown" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.size" } }, ngImport: i0 });
43796
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.21", type: PoDatepickerRangeBaseComponent, isStandalone: true, inputs: { additionalHelpEventTrigger: { classPropertyName: "additionalHelpEventTrigger", publicName: "additionalHelpEventTrigger", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, additionalHelpTooltip: { classPropertyName: "additionalHelpTooltip", publicName: "p-additional-help-tooltip", isSignal: false, isRequired: false, transformFunction: null }, appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, rangePresets: { classPropertyName: "rangePresets", publicName: "p-range-presets", isSignal: false, isRequired: false, transformFunction: null }, rangePresetOptions: { classPropertyName: "rangePresetOptions", publicName: "p-range-preset-options", isSignal: false, isRequired: false, transformFunction: null }, rangePresetsOrder: { classPropertyName: "rangePresetsOrder", publicName: "p-range-presets-order", isSignal: false, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "p-help", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "p-label", isSignal: false, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "p-placeholder", isSignal: false, isRequired: false, transformFunction: null }, fieldErrorMessage: { classPropertyName: "fieldErrorMessage", publicName: "p-field-error-message", isSignal: false, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null }, clean: { classPropertyName: "clean", publicName: "p-clean", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, disabled: { classPropertyName: "disabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, endDate: { classPropertyName: "endDate", publicName: "p-end-date", isSignal: false, isRequired: false, transformFunction: null }, literals: { classPropertyName: "literals", publicName: "p-literals", isSignal: false, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "p-loading", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, minDate: { classPropertyName: "minDate", publicName: "p-min-date", isSignal: false, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "p-max-date", isSignal: false, isRequired: false, transformFunction: null }, noAutocomplete: { classPropertyName: "noAutocomplete", publicName: "p-no-autocomplete", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, readonly: { classPropertyName: "readonly", publicName: "p-readonly", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, required: { classPropertyName: "required", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, showRequired: { classPropertyName: "showRequired", publicName: "p-show-required", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null }, startDate: { classPropertyName: "startDate", publicName: "p-start-date", isSignal: false, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "p-locale", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { additionalHelp: "p-additional-help", onChange: "p-change", changeModel: "p-change-model", keydown: "p-keydown" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.size" } }, ngImport: i0 });
43548
43797
  }
43549
43798
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoDatepickerRangeBaseComponent, decorators: [{
43550
43799
  type: Directive
@@ -43595,6 +43844,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImpo
43595
43844
  }], poHelperComponent: [{ type: i0.Input, args: [{ isSignal: true, alias: "p-helper", required: false }] }], labelTextWrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "p-label-text-wrap", required: false }] }], onChange: [{
43596
43845
  type: Output,
43597
43846
  args: ['p-change']
43847
+ }], changeModel: [{
43848
+ type: Output,
43849
+ args: ['p-change-model']
43598
43850
  }], keydown: [{
43599
43851
  type: Output,
43600
43852
  args: ['p-keydown']
@@ -47029,6 +47281,20 @@ class PoLookupBaseComponent {
47029
47281
  * Por parâmetro será passado o novo valor.
47030
47282
  */
47031
47283
  change = new EventEmitter();
47284
+ /**
47285
+ * @optional
47286
+ *
47287
+ * @description
47288
+ *
47289
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
47290
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
47291
+ *
47292
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
47293
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
47294
+ *
47295
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
47296
+ */
47297
+ changeModel = new EventEmitter();
47032
47298
  /**
47033
47299
  * @optional
47034
47300
  *
@@ -47051,6 +47317,7 @@ class PoLookupBaseComponent {
47051
47317
  columnRestoreManager = new EventEmitter();
47052
47318
  displayAdditionalHelp = false;
47053
47319
  service;
47320
+ modelLastUpdate;
47054
47321
  selectedOptions = [];
47055
47322
  getSubscription;
47056
47323
  keysDescription;
@@ -47289,6 +47556,13 @@ class PoLookupBaseComponent {
47289
47556
  this.updateLookupInputHeight();
47290
47557
  }
47291
47558
  });
47559
+ this.controlChangeModelEmitter(value);
47560
+ }
47561
+ controlChangeModelEmitter(value) {
47562
+ if (this.modelLastUpdate !== value) {
47563
+ this.changeModel.emit(value);
47564
+ this.modelLastUpdate = value;
47565
+ }
47292
47566
  }
47293
47567
  //Transforma o tamanho do input para o tamanho do ícone de loading correspondente
47294
47568
  mapSizeToIcon(size) {
@@ -47352,6 +47626,7 @@ class PoLookupBaseComponent {
47352
47626
  }
47353
47627
  else {
47354
47628
  this.cleanViewValue();
47629
+ this.controlChangeModelEmitter(undefined);
47355
47630
  }
47356
47631
  }
47357
47632
  // Retorna o Subscriber da propriedade getSubscription que ocorre
@@ -47430,7 +47705,7 @@ class PoLookupBaseComponent {
47430
47705
  this._size = size;
47431
47706
  }
47432
47707
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoLookupBaseComponent, deps: [{ token: PoLookupFilterService }, { token: Injector }, { token: PoLookupModalService }, { token: PoLanguageService }], target: i0.ɵɵFactoryTarget.Directive });
47433
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.21", type: PoLookupBaseComponent, isStandalone: true, inputs: { additionalHelpEventTrigger: { classPropertyName: "additionalHelpEventTrigger", publicName: "additionalHelpEventTrigger", isSignal: false, isRequired: false, transformFunction: null }, additionalHelpTooltip: { classPropertyName: "additionalHelpTooltip", publicName: "p-additional-help-tooltip", isSignal: false, isRequired: false, transformFunction: null }, appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, label: { classPropertyName: "label", publicName: "p-label", isSignal: false, isRequired: false, transformFunction: null }, literals: { classPropertyName: "literals", publicName: "p-literals", isSignal: false, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "p-help", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "p-placeholder", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, fieldValue: { classPropertyName: "fieldValue", publicName: "p-field-value", isSignal: false, isRequired: false, transformFunction: null }, fieldLabel: { classPropertyName: "fieldLabel", publicName: "p-field-label", isSignal: false, isRequired: false, transformFunction: null }, filterParams: { classPropertyName: "filterParams", publicName: "p-filter-params", isSignal: false, isRequired: false, transformFunction: null }, fieldFormat: { classPropertyName: "fieldFormat", publicName: "p-field-format", isSignal: false, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "p-columns", isSignal: false, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: false, isRequired: false, transformFunction: null }, advancedFilters: { classPropertyName: "advancedFilters", publicName: "p-advanced-filters", isSignal: false, isRequired: false, transformFunction: null }, hideColumnsManager: { classPropertyName: "hideColumnsManager", publicName: "p-hide-columns-manager", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, infiniteScroll: { classPropertyName: "infiniteScroll", publicName: "p-infinite-scroll", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, clean: { classPropertyName: "clean", publicName: "p-clean", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, multiple: { classPropertyName: "multiple", publicName: "p-multiple", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, autoHeight: { classPropertyName: "autoHeight", publicName: "p-auto-height", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, fieldErrorMessage: { classPropertyName: "fieldErrorMessage", publicName: "p-field-error-message", isSignal: false, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null }, spacing: { classPropertyName: "spacing", publicName: "p-spacing", isSignal: false, isRequired: false, transformFunction: null }, textWrap: { classPropertyName: "textWrap", publicName: "p-text-wrap", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "p-virtual-scroll", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, filterService: { classPropertyName: "filterService", publicName: "p-filter-service", isSignal: false, isRequired: false, transformFunction: null }, noAutocomplete: { classPropertyName: "noAutocomplete", publicName: "p-no-autocomplete", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, required: { classPropertyName: "required", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, showRequired: { classPropertyName: "showRequired", publicName: "p-show-required", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, loading: { classPropertyName: "loading", publicName: "p-loading", isSignal: false, isRequired: false, transformFunction: convertToBoolean } }, outputs: { additionalHelp: "p-additional-help", onError: "p-error", keydown: "p-keydown", selected: "p-selected", change: "p-change", changeVisibleColumns: "p-change-visible-columns", columnRestoreManager: "p-restore-column-manager" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.size", "attr.p-disabled": "this.disabled", "attr.p-loading": "this.loading" } }, viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["inp"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0 });
47708
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.21", type: PoLookupBaseComponent, isStandalone: true, inputs: { additionalHelpEventTrigger: { classPropertyName: "additionalHelpEventTrigger", publicName: "additionalHelpEventTrigger", isSignal: false, isRequired: false, transformFunction: null }, additionalHelpTooltip: { classPropertyName: "additionalHelpTooltip", publicName: "p-additional-help-tooltip", isSignal: false, isRequired: false, transformFunction: null }, appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, label: { classPropertyName: "label", publicName: "p-label", isSignal: false, isRequired: false, transformFunction: null }, literals: { classPropertyName: "literals", publicName: "p-literals", isSignal: false, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "p-help", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "p-placeholder", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, fieldValue: { classPropertyName: "fieldValue", publicName: "p-field-value", isSignal: false, isRequired: false, transformFunction: null }, fieldLabel: { classPropertyName: "fieldLabel", publicName: "p-field-label", isSignal: false, isRequired: false, transformFunction: null }, filterParams: { classPropertyName: "filterParams", publicName: "p-filter-params", isSignal: false, isRequired: false, transformFunction: null }, fieldFormat: { classPropertyName: "fieldFormat", publicName: "p-field-format", isSignal: false, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "p-columns", isSignal: false, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: false, isRequired: false, transformFunction: null }, advancedFilters: { classPropertyName: "advancedFilters", publicName: "p-advanced-filters", isSignal: false, isRequired: false, transformFunction: null }, hideColumnsManager: { classPropertyName: "hideColumnsManager", publicName: "p-hide-columns-manager", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, infiniteScroll: { classPropertyName: "infiniteScroll", publicName: "p-infinite-scroll", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, clean: { classPropertyName: "clean", publicName: "p-clean", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, multiple: { classPropertyName: "multiple", publicName: "p-multiple", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, autoHeight: { classPropertyName: "autoHeight", publicName: "p-auto-height", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, fieldErrorMessage: { classPropertyName: "fieldErrorMessage", publicName: "p-field-error-message", isSignal: false, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null }, spacing: { classPropertyName: "spacing", publicName: "p-spacing", isSignal: false, isRequired: false, transformFunction: null }, textWrap: { classPropertyName: "textWrap", publicName: "p-text-wrap", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "p-virtual-scroll", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, filterService: { classPropertyName: "filterService", publicName: "p-filter-service", isSignal: false, isRequired: false, transformFunction: null }, noAutocomplete: { classPropertyName: "noAutocomplete", publicName: "p-no-autocomplete", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, required: { classPropertyName: "required", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, showRequired: { classPropertyName: "showRequired", publicName: "p-show-required", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, loading: { classPropertyName: "loading", publicName: "p-loading", isSignal: false, isRequired: false, transformFunction: convertToBoolean } }, outputs: { additionalHelp: "p-additional-help", onError: "p-error", keydown: "p-keydown", selected: "p-selected", change: "p-change", changeModel: "p-change-model", changeVisibleColumns: "p-change-visible-columns", columnRestoreManager: "p-restore-column-manager" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.size", "attr.p-disabled": "this.disabled", "attr.p-loading": "this.loading" } }, viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["inp"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0 });
47434
47709
  }
47435
47710
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoLookupBaseComponent, decorators: [{
47436
47711
  type: Directive
@@ -47538,6 +47813,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImpo
47538
47813
  }], change: [{
47539
47814
  type: Output,
47540
47815
  args: ['p-change']
47816
+ }], changeModel: [{
47817
+ type: Output,
47818
+ args: ['p-change-model']
47541
47819
  }], changeVisibleColumns: [{
47542
47820
  type: Output,
47543
47821
  args: ['p-change-visible-columns']
@@ -48361,6 +48639,20 @@ class PoMultiselectBaseComponent {
48361
48639
  * Pode ser informada uma função que será disparada quando houver alterações no ngModel.
48362
48640
  */
48363
48641
  change = new EventEmitter();
48642
+ /**
48643
+ * @optional
48644
+ *
48645
+ * @description
48646
+ *
48647
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
48648
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
48649
+ *
48650
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
48651
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
48652
+ *
48653
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
48654
+ */
48655
+ changeModel = new EventEmitter();
48364
48656
  /**
48365
48657
  * @optional
48366
48658
  *
@@ -48434,6 +48726,7 @@ class PoMultiselectBaseComponent {
48434
48726
  service;
48435
48727
  defaultService;
48436
48728
  displayAdditionalHelp = false;
48729
+ modelLastUpdate;
48437
48730
  // eslint-disable-next-line
48438
48731
  onModelTouched = null;
48439
48732
  clickOutListener;
@@ -48853,8 +49146,10 @@ class PoMultiselectBaseComponent {
48853
49146
  }
48854
49147
  callOnChange(selectedOptions) {
48855
49148
  if (this.onModelChange) {
48856
- this.onModelChange(this.getValueUpdate(selectedOptions));
49149
+ const value = this.getValueUpdate(selectedOptions);
49150
+ this.onModelChange(value);
48857
49151
  this.eventChange(selectedOptions);
49152
+ this.controlChangeModelEmitter(value);
48858
49153
  }
48859
49154
  setTimeout(() => {
48860
49155
  if (this.autoHeight) {
@@ -48868,6 +49163,14 @@ class PoMultiselectBaseComponent {
48868
49163
  }
48869
49164
  this.lastLengthModel = selectedOptions ? selectedOptions.length : null;
48870
49165
  }
49166
+ controlChangeModelEmitter(value) {
49167
+ const current = JSON.stringify(this.modelLastUpdate);
49168
+ const incoming = JSON.stringify(value);
49169
+ if (current !== incoming) {
49170
+ this.changeModel.emit(value);
49171
+ this.modelLastUpdate = Array.isArray(value) ? [...value] : value;
49172
+ }
49173
+ }
48871
49174
  getValuesFromOptions(selectedOptions) {
48872
49175
  return selectedOptions && selectedOptions.length ? selectedOptions.map(option => option[this.fieldValue]) : [];
48873
49176
  }
@@ -48943,6 +49246,7 @@ class PoMultiselectBaseComponent {
48943
49246
  this.updateVisibleItems();
48944
49247
  }
48945
49248
  writeValue(values) {
49249
+ const originalValues = values;
48946
49250
  values = this.getValueWrite(values);
48947
49251
  if (values !== null && values !== undefined && !Array.isArray(values)) {
48948
49252
  values = [values];
@@ -48960,6 +49264,9 @@ class PoMultiselectBaseComponent {
48960
49264
  if (this.selectedOptions && this.selectedOptions.length < values.length) {
48961
49265
  this.callOnChange(this.selectedOptions);
48962
49266
  }
49267
+ else if (originalValues != null && (!Array.isArray(originalValues) || originalValues.length > 0)) {
49268
+ this.controlChangeModelEmitter(this.getValuesFromOptions(this.selectedOptions));
49269
+ }
48963
49270
  }
48964
49271
  }
48965
49272
  // Função implementada do ControlValueAccessor
@@ -49023,7 +49330,7 @@ class PoMultiselectBaseComponent {
49023
49330
  this._size = size;
49024
49331
  }
49025
49332
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoMultiselectBaseComponent, deps: [{ token: PoLanguageService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
49026
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.21", type: PoMultiselectBaseComponent, isStandalone: true, inputs: { additionalHelpEventTrigger: { classPropertyName: "additionalHelpEventTrigger", publicName: "additionalHelpEventTrigger", isSignal: false, isRequired: false, transformFunction: null }, additionalHelpTooltip: { classPropertyName: "additionalHelpTooltip", publicName: "p-additional-help-tooltip", isSignal: false, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "p-label", isSignal: false, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "p-help", isSignal: false, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "p-placeholder", isSignal: false, isRequired: false, transformFunction: null }, placeholderSearch: { classPropertyName: "placeholderSearch", publicName: "p-placeholder-search", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, hideSelectAll: { classPropertyName: "hideSelectAll", publicName: "p-hide-select-all", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, fieldErrorMessage: { classPropertyName: "fieldErrorMessage", publicName: "p-field-error-message", isSignal: false, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: false, isRequired: false, transformFunction: null }, appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, controlValueWithLabel: { classPropertyName: "controlValueWithLabel", publicName: "p-control-value-with-label", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, listboxControlPosition: { classPropertyName: "listboxControlPosition", publicName: "p-listbox-control-position", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null }, filterService: { classPropertyName: "filterService", publicName: "p-filter-service", isSignal: false, isRequired: false, transformFunction: null }, autoHeight: { classPropertyName: "autoHeight", publicName: "p-auto-height", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, debounceTime: { classPropertyName: "debounceTime", publicName: "p-debounce-time", isSignal: false, isRequired: false, transformFunction: null }, literals: { classPropertyName: "literals", publicName: "p-literals", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, showRequired: { classPropertyName: "showRequired", publicName: "p-show-required", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, loading: { classPropertyName: "loading", publicName: "p-loading", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, hideSearch: { classPropertyName: "hideSearch", publicName: "p-hide-search", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, options: { classPropertyName: "options", publicName: "p-options", isSignal: false, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "p-sort", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, filterMode: { classPropertyName: "filterMode", publicName: "p-filter-mode", isSignal: false, isRequired: false, transformFunction: null }, fieldLabel: { classPropertyName: "fieldLabel", publicName: "p-field-label", isSignal: false, isRequired: false, transformFunction: null }, fieldValue: { classPropertyName: "fieldValue", publicName: "p-field-value", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { blur: "p-blur", additionalHelp: "p-additional-help", change: "p-change", keydown: "p-keydown" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.size", "attr.p-loading": "this.loading" } }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, read: ElementRef, static: true }], ngImport: i0 });
49333
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.21", type: PoMultiselectBaseComponent, isStandalone: true, inputs: { additionalHelpEventTrigger: { classPropertyName: "additionalHelpEventTrigger", publicName: "additionalHelpEventTrigger", isSignal: false, isRequired: false, transformFunction: null }, additionalHelpTooltip: { classPropertyName: "additionalHelpTooltip", publicName: "p-additional-help-tooltip", isSignal: false, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "p-auto-focus", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "p-label", isSignal: false, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "p-help", isSignal: false, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "p-placeholder", isSignal: false, isRequired: false, transformFunction: null }, placeholderSearch: { classPropertyName: "placeholderSearch", publicName: "p-placeholder-search", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, hideSelectAll: { classPropertyName: "hideSelectAll", publicName: "p-hide-select-all", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, fieldErrorMessage: { classPropertyName: "fieldErrorMessage", publicName: "p-field-error-message", isSignal: false, isRequired: false, transformFunction: null }, errorLimit: { classPropertyName: "errorLimit", publicName: "p-error-limit", isSignal: false, isRequired: false, transformFunction: null }, appendBox: { classPropertyName: "appendBox", publicName: "p-append-in-body", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, controlValueWithLabel: { classPropertyName: "controlValueWithLabel", publicName: "p-control-value-with-label", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, listboxControlPosition: { classPropertyName: "listboxControlPosition", publicName: "p-listbox-control-position", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null }, filterService: { classPropertyName: "filterService", publicName: "p-filter-service", isSignal: false, isRequired: false, transformFunction: null }, autoHeight: { classPropertyName: "autoHeight", publicName: "p-auto-height", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, debounceTime: { classPropertyName: "debounceTime", publicName: "p-debounce-time", isSignal: false, isRequired: false, transformFunction: null }, literals: { classPropertyName: "literals", publicName: "p-literals", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, showRequired: { classPropertyName: "showRequired", publicName: "p-show-required", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, loading: { classPropertyName: "loading", publicName: "p-loading", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, hideSearch: { classPropertyName: "hideSearch", publicName: "p-hide-search", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, options: { classPropertyName: "options", publicName: "p-options", isSignal: false, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "p-sort", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, filterMode: { classPropertyName: "filterMode", publicName: "p-filter-mode", isSignal: false, isRequired: false, transformFunction: null }, fieldLabel: { classPropertyName: "fieldLabel", publicName: "p-field-label", isSignal: false, isRequired: false, transformFunction: null }, fieldValue: { classPropertyName: "fieldValue", publicName: "p-field-value", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { blur: "p-blur", additionalHelp: "p-additional-help", change: "p-change", changeModel: "p-change-model", keydown: "p-keydown" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-size": "this.size", "attr.p-loading": "this.loading" } }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, read: ElementRef, static: true }], ngImport: i0 });
49027
49334
  }
49028
49335
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoMultiselectBaseComponent, decorators: [{
49029
49336
  type: Directive
@@ -49074,6 +49381,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImpo
49074
49381
  }], change: [{
49075
49382
  type: Output,
49076
49383
  args: ['p-change']
49384
+ }], changeModel: [{
49385
+ type: Output,
49386
+ args: ['p-change-model']
49077
49387
  }], keydown: [{
49078
49388
  type: Output,
49079
49389
  args: ['p-keydown']
@@ -54829,6 +55139,20 @@ class PoSelectComponent extends PoFieldValidateModel {
54829
55139
  * Evento disparado ao sair do campo.
54830
55140
  */
54831
55141
  blur = new EventEmitter();
55142
+ /**
55143
+ * @optional
55144
+ *
55145
+ * @description
55146
+ *
55147
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
55148
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
55149
+ *
55150
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
55151
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
55152
+ *
55153
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
55154
+ */
55155
+ changeModel = new EventEmitter();
54832
55156
  /**
54833
55157
  * @optional
54834
55158
  *
@@ -54896,6 +55220,7 @@ class PoSelectComponent extends PoFieldValidateModel {
54896
55220
  displayValue;
54897
55221
  id = `po-select[${uuid()}]`;
54898
55222
  modelValue;
55223
+ modelLastUpdate;
54899
55224
  selectedValue;
54900
55225
  optionsDefault = [];
54901
55226
  listGroupOptions = [];
@@ -55152,6 +55477,7 @@ class PoSelectComponent extends PoFieldValidateModel {
55152
55477
  this.updateModel(this.getValueUpdate(option));
55153
55478
  this.displayValue = option[this.fieldLabel];
55154
55479
  this.emitChange(option[this.fieldValue]);
55480
+ this.controlChangeModelEmitter(option[this.fieldValue]);
55155
55481
  }
55156
55482
  }
55157
55483
  // Recebe as alterações do model
@@ -55171,6 +55497,7 @@ class PoSelectComponent extends PoFieldValidateModel {
55171
55497
  }
55172
55498
  this.modelValue = value;
55173
55499
  this.changeDetector.detectChanges();
55500
+ this.controlChangeModelEmitter(this.selectedValue);
55174
55501
  }
55175
55502
  extraValidation(c) {
55176
55503
  return null;
@@ -55220,6 +55547,12 @@ class PoSelectComponent extends PoFieldValidateModel {
55220
55547
  setHelper(label, additionalHelpTooltip) {
55221
55548
  return setHelperSettings(label, additionalHelpTooltip, this.poHelperComponent(), this.size, this.isAdditionalHelpEventTriggered() ? this.additionalHelp : undefined);
55222
55549
  }
55550
+ controlChangeModelEmitter(value) {
55551
+ if (this.modelLastUpdate !== value) {
55552
+ this.changeModel.emit(value);
55553
+ this.modelLastUpdate = value;
55554
+ }
55555
+ }
55223
55556
  isEqual(value, inputValue) {
55224
55557
  if ((value || value === 0) && inputValue) {
55225
55558
  return value.toString() === inputValue.toString();
@@ -55283,7 +55616,7 @@ class PoSelectComponent extends PoFieldValidateModel {
55283
55616
  this._size = size;
55284
55617
  }
55285
55618
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
55286
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.21", type: PoSelectComponent, isStandalone: false, selector: "po-select", inputs: { readonly: { classPropertyName: "readonly", publicName: "p-readonly", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "p-placeholder", isSignal: false, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "p-options", isSignal: false, isRequired: false, transformFunction: null }, fieldLabel: { classPropertyName: "fieldLabel", publicName: "p-field-label", isSignal: false, isRequired: false, transformFunction: null }, fieldValue: { classPropertyName: "fieldValue", publicName: "p-field-value", isSignal: false, isRequired: false, transformFunction: null }, controlValueWithLabel: { classPropertyName: "controlValueWithLabel", publicName: "p-control-value-with-label", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, loading: { classPropertyName: "loading", publicName: "p-loading", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { blur: "p-blur", ngModelChange: "ngModelChange" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-loading": "this.loading", "attr.p-size": "this.size" } }, providers: [
55619
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.21", type: PoSelectComponent, isStandalone: false, selector: "po-select", inputs: { readonly: { classPropertyName: "readonly", publicName: "p-readonly", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, compactLabel: { classPropertyName: "compactLabel", publicName: "p-compact-label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "p-placeholder", isSignal: false, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "p-options", isSignal: false, isRequired: false, transformFunction: null }, fieldLabel: { classPropertyName: "fieldLabel", publicName: "p-field-label", isSignal: false, isRequired: false, transformFunction: null }, fieldValue: { classPropertyName: "fieldValue", publicName: "p-field-value", isSignal: false, isRequired: false, transformFunction: null }, controlValueWithLabel: { classPropertyName: "controlValueWithLabel", publicName: "p-control-value-with-label", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, loading: { classPropertyName: "loading", publicName: "p-loading", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, size: { classPropertyName: "size", publicName: "p-size", isSignal: false, isRequired: false, transformFunction: null }, poHelperComponent: { classPropertyName: "poHelperComponent", publicName: "p-helper", isSignal: true, isRequired: false, transformFunction: null }, labelTextWrap: { classPropertyName: "labelTextWrap", publicName: "p-label-text-wrap", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { blur: "p-blur", changeModel: "p-change-model", ngModelChange: "ngModelChange" }, host: { listeners: { "window:PoUiThemeChange": "onThemeChange()" }, properties: { "attr.p-loading": "this.loading", "attr.p-size": "this.size" } }, providers: [
55287
55620
  {
55288
55621
  provide: NG_VALUE_ACCESSOR,
55289
55622
  useExisting: forwardRef(() => PoSelectComponent),
@@ -55319,6 +55652,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImpo
55319
55652
  }], blur: [{
55320
55653
  type: Output,
55321
55654
  args: ['p-blur']
55655
+ }], changeModel: [{
55656
+ type: Output,
55657
+ args: ['p-change-model']
55322
55658
  }], ngModelChange: [{
55323
55659
  type: Output,
55324
55660
  args: ['ngModelChange']
@@ -57702,7 +58038,11 @@ class PoDynamicFormFieldsComponent extends PoDynamicFormFieldsBaseComponent {
57702
58038
  if (changedField.validate) {
57703
58039
  await this.validateField(changedField, changedFieldIndex, visibleField);
57704
58040
  }
57705
- this.triggerValidationOnForm(changedFieldIndex);
58041
+ // Quando validateOnInput está ativo, o onChangeFieldModel já disparou o triggerValidationOnForm.
58042
+ // Evita disparo duplicado para componentes onde p-change e p-change-model ocorrem no mesmo ciclo.
58043
+ if (!this.validateOnInput) {
58044
+ this.triggerValidationOnForm(changedFieldIndex);
58045
+ }
57706
58046
  }
57707
58047
  this.updatePreviousValue();
57708
58048
  }
@@ -57903,11 +58243,11 @@ class PoDynamicFormFieldsComponent extends PoDynamicFormFieldsBaseComponent {
57903
58243
  }
57904
58244
  }
57905
58245
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoDynamicFormFieldsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
57906
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.21", type: PoDynamicFormFieldsComponent, isStandalone: false, selector: "po-dynamic-form-fields", providers: [PoDynamicFormValidationService], viewQueries: [{ propertyName: "components", predicate: ["component"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (visibleFields && visibleFields.length > 0) {\n <div class=\"po-row\" [class.po-dynamic]=\"hasContainers\">\n <ng-container\n *ngTemplateOutlet=\"\n hasContainers ? poContentContainer : poContent;\n context: { $implicit: hasContainers ? containerFields : visibleFields }\n \"\n ></ng-container>\n </div>\n}\n\n<ng-template #poContent let-fields>\n @for (field of fields; track trackBy($index, field)) {\n @if (field?.divider?.trim()) {\n <po-divider class=\"po-sm-12\" [p-label]=\"field.divider\"> </po-divider>\n }\n @if (compareTo(field.control, 'datepicker')) {\n <po-datepicker\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-clean]=\"field.clean\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-error-async]=\"field.errorAsyncFunction\"\n [p-auto-focus]=\"field.focus\"\n [p-format]=\"field.format\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-iso-format]=\"field.isoFormat\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-locale]=\"field.locale\"\n [p-max-date]=\"field.maxValue\"\n [p-min-date]=\"field.minValue\"\n [p-mode]=\"field.mode\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-size]=\"field.size || componentsSize\"\n [p-show-required]=\"field.showRequired\"\n [p-year-range-limit]=\"field.yearRangeLimit\"\n (p-change)=\"onChangeField(field)\"\n [p-placeholder]=\"field.placeholder\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-datepicker>\n }\n @if (compareTo(field.control, 'datetimepicker')) {\n <po-datetimepicker\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [p-append-in-body]=\"field.appendInBody\"\n [p-clean]=\"field.clean\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-format-date]=\"field.format\"\n [p-format-time]=\"field.formatTime\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-locale]=\"field.locale\"\n [p-max-date]=\"field.maxValue\"\n [p-max-time]=\"field.maxTime\"\n [p-min-date]=\"field.minValue\"\n [p-min-time]=\"field.minTime\"\n [p-minute-interval]=\"field.minuteInterval\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-placeholder]=\"field.placeholder\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-second-interval]=\"field.secondInterval\"\n [p-show-seconds]=\"field.showSeconds\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-change)=\"onChangeField(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-datetimepicker>\n }\n @if (compareTo(field.control, 'datepickerrange')) {\n <po-datepicker-range\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-clean]=\"field.clean\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\n [p-loading]=\"field.loading\"\n [p-max-date]=\"field.maxValue\"\n [p-min-date]=\"field.minValue\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-placeholder]=\"field.placeholder\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n [p-range-presets]=\"field.rangePresets\"\n [p-range-preset-options]=\"field.rangePresetOptions\"\n [p-range-presets-order]=\"field.rangePresetsOrder\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-datepicker-range>\n }\n @if (compareTo(field.control, 'timepicker')) {\n <po-timepicker\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [p-append-in-body]=\"field.appendBox\"\n [p-compact-label]=\"field.compactLabel\"\n [p-clean]=\"field.clean\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-auto-focus]=\"field.focus\"\n [p-format]=\"field.format\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-model-format]=\"field.modelFormat\"\n [p-label]=\"field.label\"\n [p-locale]=\"field.locale\"\n [p-max-time]=\"field.maxValue\"\n [p-min-time]=\"field.minValue\"\n [p-minute-interval]=\"field.minuteInterval\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-placeholder]=\"field.placeholder\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-second-interval]=\"field.secondInterval\"\n [p-show-required]=\"field.showRequired\"\n [p-show-seconds]=\"field.showSeconds\"\n [p-size]=\"field.size || componentsSize\"\n (p-change)=\"onChangeField(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-timepicker>\n }\n @if (compareTo(field.control, 'input')) {\n <po-input\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-clean]=\"field.clean\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-error-async-properties]=\"field.errorAsyncProperties\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-mask-format-model]=\"field.maskFormatModel\"\n [p-mask-no-length-validation]=\"field.maskNoLengthValidation\"\n [p-mask]=\"field.mask\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-pattern]=\"field.pattern\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-icon]=\"field.icon\"\n [p-placeholder]=\"field.placeholder\"\n [p-readonly]=\"field.readonly\"\n >\n </po-input>\n }\n @if (compareTo(field.control, 'number')) {\n <po-number\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-clean]=\"field.clean\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-error-async-properties]=\"field.errorAsyncProperties\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-min]=\"field.minValue\"\n [p-max]=\"field.maxValue\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-step]=\"field.step\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-icon]=\"field.icon\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-number>\n }\n @if (compareTo(field.control, 'decimal')) {\n <po-decimal\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-clean]=\"field.clean\"\n [p-compact-label]=\"field.compactLabel\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-error-async-properties]=\"field.errorAsyncProperties\"\n [p-disabled]=\"isDisabled(field)\"\n [p-decimals-length]=\"field.decimalsLength\"\n [p-display-format]=\"field.displayFormat\"\n [p-thousand-maxlength]=\"field.thousandMaxlength\"\n [p-icon]=\"field.icon\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-locale]=\"field.locale\"\n [p-mask-no-length-validation]=\"field.maskNoLengthValidation\"\n [p-min]=\"field.minValue\"\n [p-max]=\"field.maxValue\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-decimal>\n }\n @if (compareTo(field.control, 'select')) {\n <po-select\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-field-label]=\"field.fieldLabel\"\n [p-field-value]=\"field.fieldValue\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-placeholder]=\"field.placeholder\"\n [p-readonly]=\"field.readonly\"\n >\n </po-select>\n }\n @if (compareTo(field.control, 'radioGroup')) {\n <po-radio-group\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-columns]=\"field.columns || 3\"\n [p-compact-label]=\"field.compactLabel\"\n [p-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-radio-group>\n }\n @if (compareTo(field.control, 'switch')) {\n <po-switch\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-limit]=\"field.errorLimit\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-format-model]=\"field.formatModel\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-label-off]=\"field.booleanFalse\"\n [p-label-on]=\"field.booleanTrue\"\n [p-label-position]=\"field.labelPosition\"\n [p-loading]=\"field.loading\"\n [p-hide-label-status]=\"field.hideLabelStatus\"\n [p-invalid-value]=\"field.invalidValue\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-switch>\n }\n @if (compareTo(field.control, 'checkbox')) {\n <po-checkbox\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-auto-focus]=\"field.focus\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-checkbox>\n }\n @if (compareTo(field.control, 'combo')) {\n <po-combo\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-emit-object-value\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-auto-focus]=\"field.focus\"\n [p-compact-label]=\"field.compactLabel\"\n [p-clean]=\"field.clean\"\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-helper]=\"field.helper\"\n [p-infinite-scroll]=\"field.infiniteScroll\"\n [p-infinite-scroll-distance]=\"field.infiniteScrollDistance || 100\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\n [p-loading]=\"field.loading\"\n [p-options]=\"field.options\"\n [p-optional]=\"field.optional\"\n [p-sort]=\"field.sort\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n (p-change)=\"onChangeField(field, $event)\"\n [p-icon]=\"field.icon\"\n [p-placeholder]=\"field.placeholder\"\n [p-filter-minlength]=\"field.filterMinlength\"\n [p-filter-mode]=\"field.filterMode\"\n [p-disabled-init-filter]=\"field.disabledInitFilter\"\n [p-disabled-tab-filter]=\"field.disabledTabFilter\"\n [p-debounce-time]=\"field.debounceTime\"\n [p-change-on-enter]=\"field.changeOnEnter\"\n [p-remove-initial-filter]=\"field.removeInitialFilter\"\n [p-size]=\"field.size || componentsSize\"\n (p-keydown)=\"field.keydown?.($event)\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n [p-listbox-control-position]=\"field.listboxControlPosition\"\n >\n </po-combo>\n }\n @if (compareTo(field.control, 'lookup')) {\n <po-lookup\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n p-field-label=\"label\"\n p-field-value=\"value\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-clean]=\"field.clean\"\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-auto-height]=\"field.autoHeight\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-field-format]=\"field.format\"\n [p-infinite-scroll]=\"field.infiniteScroll\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\n [p-loading]=\"field.loading\"\n [p-multiple]=\"field.multiple\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-change)=\"onChangeField(field)\"\n [p-placeholder]=\"field.placeholder\"\n [p-advanced-filters]=\"field.advancedFilters\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change-visible-columns)=\"field.changeVisibleColumns?.($event)\"\n (p-keydown)=\"field.keydown?.($event)\"\n (p-restore-column-manager)=\"field.columnRestoreManager?.($event)\"\n >\n </po-lookup>\n }\n @if (compareTo(field.control, 'checkboxGroup')) {\n <po-checkbox-group\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-columns]=\"field.columns || 3\"\n [p-compact-label]=\"field.compactLabel\"\n [p-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-show-required]=\"field.showRequired\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-checkbox-group>\n }\n @if (compareTo(field.control, 'multiselect')) {\n <po-multiselect\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-auto-height]=\"field.autoHeight\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\n [p-loading]=\"field.loading\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n (p-change)=\"onChangeField(field)\"\n [p-placeholder]=\"field.placeholder\"\n [p-field-label]=\"field.fieldLabel\"\n [p-field-value]=\"field.fieldValue\"\n [p-filter-service]=\"field.optionsService\"\n [p-filter-mode]=\"field.filterMode\"\n [p-debounce-time]=\"field.debounceTime\"\n [p-sort]=\"field.sort\"\n [p-placeholder-search]=\"field.placeholderSearch\"\n [p-hide-search]=\"field.hideSearch\"\n [p-hide-select-all]=\"field.hideSelectAll\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-listbox-control-position]=\"field.listboxControlPosition\"\n >\n </po-multiselect>\n }\n @if (compareTo(field.control, 'textarea')) {\n <po-textarea\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-optional]=\"field.optional\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n [p-rows]=\"field.rows\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-textarea>\n }\n @if (compareTo(field.control, 'password')) {\n <po-password\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-clean]=\"field.clean\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-error-async-properties]=\"field.errorAsyncProperties\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-hide-password-peek]=\"field.hidePasswordPeek\"\n [p-icon]=\"field.icon\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-pattern]=\"field.pattern\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-password>\n }\n @if (compareTo(field.control, 'upload')) {\n <po-upload\n #component\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-auto-upload]=\"field.autoUpload\"\n [p-compact-label]=\"field.compactLabel\"\n [p-directory]=\"field.directory\"\n [p-disabled]=\"isDisabled(field)\"\n [p-drag-drop]=\"field.dragDrop\"\n [p-drag-drop-height]=\"field.dragDropHeight\"\n [p-restrictions]=\"field.restrictions\"\n [p-form-field]=\"field.formField\"\n [p-headers]=\"field.headers\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-hide-restrictions-info]=\"field.hideRestrictionsInfo\"\n [p-hide-select-button]=\"field.hideSelectButton\"\n [p-hide-send-button]=\"field.hideSendButton\"\n [p-multiple]=\"field.multiple\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\n [p-loading]=\"field.loading\"\n [name]=\"field.property\"\n [p-custom-action]=\"field.customAction\"\n (p-custom-action-click)=\"field.customActionClick($event)\"\n (p-error)=\"field.onError($event)\"\n (p-success)=\"field.onSuccess($event)\"\n (p-upload)=\"field.onUpload($event)\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n [p-show-required]=\"field.showRequired\"\n [p-show-thumbnail]=\"field.showThumbnail ?? true\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-url]=\"field.url\"\n >\n </po-upload>\n }\n }\n</ng-template>\n\n<ng-template #poContentContainer let-fields>\n <po-dynamic-container [p-fields]=\"fields\" [p-content]=\"poContent\"></po-dynamic-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PoDividerComponent, selector: "po-divider" }, { kind: "component", type: PoCheckboxGroupComponent, selector: "po-checkbox-group" }, { kind: "component", type: PoCheckboxComponent, selector: "po-checkbox" }, { kind: "component", type: PoComboComponent, selector: "po-combo" }, { kind: "component", type: PoDatepickerComponent, selector: "po-datepicker" }, { kind: "component", type: PoDatepickerRangeComponent, selector: "po-datepicker-range" }, { kind: "component", type: PoDatetimepickerComponent, selector: "po-datetimepicker" }, { kind: "component", type: PoDecimalComponent, selector: "po-decimal", inputs: ["p-decimals-length", "p-thousand-maxlength", "p-locale", "p-display-format", "p-min", "p-max"] }, { kind: "component", type: PoInputComponent, selector: "po-input" }, { kind: "component", type: PoLookupComponent, selector: "po-lookup" }, { kind: "component", type: PoMultiselectComponent, selector: "po-multiselect" }, { kind: "component", type: PoNumberComponent, selector: "po-number", inputs: ["p-step", "p-min", "p-max"] }, { kind: "component", type: PoPasswordComponent, selector: "po-password", inputs: ["p-hide-password-peek", "p-no-autocomplete"] }, { kind: "component", type: PoRadioGroupComponent, selector: "po-radio-group", inputs: ["p-label", "p-help"] }, { kind: "component", type: PoSelectComponent, selector: "po-select", inputs: ["p-readonly", "p-compact-label", "p-placeholder", "p-options", "p-field-label", "p-field-value", "p-control-value-with-label", "p-loading", "p-size", "p-helper", "p-label-text-wrap"], outputs: ["p-blur", "ngModelChange"] }, { kind: "component", type: PoSwitchComponent, selector: "po-switch", inputs: ["p-value", "p-compact-label", "p-format-model", "p-hide-label-status", "p-label-position", "p-label-off", "p-label-on", "p-loading", "p-field-error-message", "p-error-limit", "p-invalid-value", "p-size", "p-helper", "p-label-text-wrap"] }, { kind: "component", type: PoTextareaComponent, selector: "po-textarea" }, { kind: "component", type: PoTimepickerComponent, selector: "po-timepicker", inputs: ["p-label", "p-help"] }, { kind: "component", type: PoUploadComponent, selector: "po-upload" }, { kind: "component", type: PoDynamicContainerComponent, selector: "po-dynamic-container", inputs: ["p-content", "p-fields"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] });
58246
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.21", type: PoDynamicFormFieldsComponent, isStandalone: false, selector: "po-dynamic-form-fields", providers: [PoDynamicFormValidationService], viewQueries: [{ propertyName: "components", predicate: ["component"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (visibleFields && visibleFields.length > 0) {\n <div class=\"po-row\" [class.po-dynamic]=\"hasContainers\">\n <ng-container\n *ngTemplateOutlet=\"\n hasContainers ? poContentContainer : poContent;\n context: { $implicit: hasContainers ? containerFields : visibleFields }\n \"\n ></ng-container>\n </div>\n}\n\n<ng-template #poContent let-fields>\n @for (field of fields; track trackBy($index, field)) {\n @if (field?.divider?.trim()) {\n <po-divider class=\"po-sm-12\" [p-label]=\"field.divider\"> </po-divider>\n }\n @if (compareTo(field.control, 'datepicker')) {\n <po-datepicker\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-clean]=\"field.clean\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-error-async]=\"field.errorAsyncFunction\"\n [p-auto-focus]=\"field.focus\"\n [p-format]=\"field.format\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-iso-format]=\"field.isoFormat\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-locale]=\"field.locale\"\n [p-max-date]=\"field.maxValue\"\n [p-min-date]=\"field.minValue\"\n [p-mode]=\"field.mode\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-size]=\"field.size || componentsSize\"\n [p-show-required]=\"field.showRequired\"\n [p-year-range-limit]=\"field.yearRangeLimit\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n [p-placeholder]=\"field.placeholder\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-datepicker>\n }\n @if (compareTo(field.control, 'datetimepicker')) {\n <po-datetimepicker\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [p-append-in-body]=\"field.appendInBody\"\n [p-clean]=\"field.clean\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-format-date]=\"field.format\"\n [p-format-time]=\"field.formatTime\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-locale]=\"field.locale\"\n [p-max-date]=\"field.maxValue\"\n [p-max-time]=\"field.maxTime\"\n [p-min-date]=\"field.minValue\"\n [p-min-time]=\"field.minTime\"\n [p-minute-interval]=\"field.minuteInterval\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-placeholder]=\"field.placeholder\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-second-interval]=\"field.secondInterval\"\n [p-show-seconds]=\"field.showSeconds\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-datetimepicker>\n }\n @if (compareTo(field.control, 'datepickerrange')) {\n <po-datepicker-range\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-clean]=\"field.clean\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\n [p-loading]=\"field.loading\"\n [p-max-date]=\"field.maxValue\"\n [p-min-date]=\"field.minValue\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-placeholder]=\"field.placeholder\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n [p-range-presets]=\"field.rangePresets\"\n [p-range-preset-options]=\"field.rangePresetOptions\"\n [p-range-presets-order]=\"field.rangePresetsOrder\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-datepicker-range>\n }\n @if (compareTo(field.control, 'timepicker')) {\n <po-timepicker\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [p-append-in-body]=\"field.appendBox\"\n [p-compact-label]=\"field.compactLabel\"\n [p-clean]=\"field.clean\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-auto-focus]=\"field.focus\"\n [p-format]=\"field.format\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-model-format]=\"field.modelFormat\"\n [p-label]=\"field.label\"\n [p-locale]=\"field.locale\"\n [p-max-time]=\"field.maxValue\"\n [p-min-time]=\"field.minValue\"\n [p-minute-interval]=\"field.minuteInterval\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-placeholder]=\"field.placeholder\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-second-interval]=\"field.secondInterval\"\n [p-show-required]=\"field.showRequired\"\n [p-show-seconds]=\"field.showSeconds\"\n [p-size]=\"field.size || componentsSize\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-timepicker>\n }\n @if (compareTo(field.control, 'input')) {\n <po-input\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-clean]=\"field.clean\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-error-async-properties]=\"field.errorAsyncProperties\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-mask-format-model]=\"field.maskFormatModel\"\n [p-mask-no-length-validation]=\"field.maskNoLengthValidation\"\n [p-mask]=\"field.mask\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-pattern]=\"field.pattern\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-icon]=\"field.icon\"\n [p-placeholder]=\"field.placeholder\"\n [p-readonly]=\"field.readonly\"\n >\n </po-input>\n }\n @if (compareTo(field.control, 'number')) {\n <po-number\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-clean]=\"field.clean\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-error-async-properties]=\"field.errorAsyncProperties\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-min]=\"field.minValue\"\n [p-max]=\"field.maxValue\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-step]=\"field.step\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-icon]=\"field.icon\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-number>\n }\n @if (compareTo(field.control, 'decimal')) {\n <po-decimal\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-clean]=\"field.clean\"\n [p-compact-label]=\"field.compactLabel\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-error-async-properties]=\"field.errorAsyncProperties\"\n [p-disabled]=\"isDisabled(field)\"\n [p-decimals-length]=\"field.decimalsLength\"\n [p-display-format]=\"field.displayFormat\"\n [p-thousand-maxlength]=\"field.thousandMaxlength\"\n [p-icon]=\"field.icon\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-locale]=\"field.locale\"\n [p-mask-no-length-validation]=\"field.maskNoLengthValidation\"\n [p-min]=\"field.minValue\"\n [p-max]=\"field.maxValue\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-decimal>\n }\n @if (compareTo(field.control, 'select')) {\n <po-select\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-field-label]=\"field.fieldLabel\"\n [p-field-value]=\"field.fieldValue\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-placeholder]=\"field.placeholder\"\n [p-readonly]=\"field.readonly\"\n >\n </po-select>\n }\n @if (compareTo(field.control, 'radioGroup')) {\n <po-radio-group\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-columns]=\"field.columns || 3\"\n [p-compact-label]=\"field.compactLabel\"\n [p-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-radio-group>\n }\n @if (compareTo(field.control, 'switch')) {\n <po-switch\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-limit]=\"field.errorLimit\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-format-model]=\"field.formatModel\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-label-off]=\"field.booleanFalse\"\n [p-label-on]=\"field.booleanTrue\"\n [p-label-position]=\"field.labelPosition\"\n [p-loading]=\"field.loading\"\n [p-hide-label-status]=\"field.hideLabelStatus\"\n [p-invalid-value]=\"field.invalidValue\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-switch>\n }\n @if (compareTo(field.control, 'checkbox')) {\n <po-checkbox\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-auto-focus]=\"field.focus\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-checkbox>\n }\n @if (compareTo(field.control, 'combo')) {\n <po-combo\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-emit-object-value\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-auto-focus]=\"field.focus\"\n [p-compact-label]=\"field.compactLabel\"\n [p-clean]=\"field.clean\"\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-helper]=\"field.helper\"\n [p-infinite-scroll]=\"field.infiniteScroll\"\n [p-infinite-scroll-distance]=\"field.infiniteScrollDistance || 100\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\n [p-loading]=\"field.loading\"\n [p-options]=\"field.options\"\n [p-optional]=\"field.optional\"\n [p-sort]=\"field.sort\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n (p-change)=\"onChangeField(field, $event)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n [p-icon]=\"field.icon\"\n [p-placeholder]=\"field.placeholder\"\n [p-filter-minlength]=\"field.filterMinlength\"\n [p-filter-mode]=\"field.filterMode\"\n [p-disabled-init-filter]=\"field.disabledInitFilter\"\n [p-disabled-tab-filter]=\"field.disabledTabFilter\"\n [p-debounce-time]=\"field.debounceTime\"\n [p-change-on-enter]=\"field.changeOnEnter\"\n [p-remove-initial-filter]=\"field.removeInitialFilter\"\n [p-size]=\"field.size || componentsSize\"\n (p-keydown)=\"field.keydown?.($event)\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n [p-listbox-control-position]=\"field.listboxControlPosition\"\n >\n </po-combo>\n }\n @if (compareTo(field.control, 'lookup')) {\n <po-lookup\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n p-field-label=\"label\"\n p-field-value=\"value\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-clean]=\"field.clean\"\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-auto-height]=\"field.autoHeight\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-field-format]=\"field.format\"\n [p-infinite-scroll]=\"field.infiniteScroll\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\n [p-loading]=\"field.loading\"\n [p-multiple]=\"field.multiple\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n [p-placeholder]=\"field.placeholder\"\n [p-advanced-filters]=\"field.advancedFilters\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change-visible-columns)=\"field.changeVisibleColumns?.($event)\"\n (p-keydown)=\"field.keydown?.($event)\"\n (p-restore-column-manager)=\"field.columnRestoreManager?.($event)\"\n >\n </po-lookup>\n }\n @if (compareTo(field.control, 'checkboxGroup')) {\n <po-checkbox-group\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-columns]=\"field.columns || 3\"\n [p-compact-label]=\"field.compactLabel\"\n [p-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-show-required]=\"field.showRequired\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-checkbox-group>\n }\n @if (compareTo(field.control, 'multiselect')) {\n <po-multiselect\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-auto-height]=\"field.autoHeight\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\n [p-loading]=\"field.loading\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n [p-placeholder]=\"field.placeholder\"\n [p-field-label]=\"field.fieldLabel\"\n [p-field-value]=\"field.fieldValue\"\n [p-filter-service]=\"field.optionsService\"\n [p-filter-mode]=\"field.filterMode\"\n [p-debounce-time]=\"field.debounceTime\"\n [p-sort]=\"field.sort\"\n [p-placeholder-search]=\"field.placeholderSearch\"\n [p-hide-search]=\"field.hideSearch\"\n [p-hide-select-all]=\"field.hideSelectAll\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-listbox-control-position]=\"field.listboxControlPosition\"\n >\n </po-multiselect>\n }\n @if (compareTo(field.control, 'textarea')) {\n <po-textarea\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-optional]=\"field.optional\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n [p-rows]=\"field.rows\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-textarea>\n }\n @if (compareTo(field.control, 'password')) {\n <po-password\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-clean]=\"field.clean\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-error-async-properties]=\"field.errorAsyncProperties\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-hide-password-peek]=\"field.hidePasswordPeek\"\n [p-icon]=\"field.icon\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-pattern]=\"field.pattern\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-password>\n }\n @if (compareTo(field.control, 'upload')) {\n <po-upload\n #component\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-auto-upload]=\"field.autoUpload\"\n [p-compact-label]=\"field.compactLabel\"\n [p-directory]=\"field.directory\"\n [p-disabled]=\"isDisabled(field)\"\n [p-drag-drop]=\"field.dragDrop\"\n [p-drag-drop-height]=\"field.dragDropHeight\"\n [p-restrictions]=\"field.restrictions\"\n [p-form-field]=\"field.formField\"\n [p-headers]=\"field.headers\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-hide-restrictions-info]=\"field.hideRestrictionsInfo\"\n [p-hide-select-button]=\"field.hideSelectButton\"\n [p-hide-send-button]=\"field.hideSendButton\"\n [p-multiple]=\"field.multiple\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\n [p-loading]=\"field.loading\"\n [name]=\"field.property\"\n [p-custom-action]=\"field.customAction\"\n (p-custom-action-click)=\"field.customActionClick($event)\"\n (p-error)=\"field.onError($event)\"\n (p-success)=\"field.onSuccess($event)\"\n (p-upload)=\"field.onUpload($event)\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n [p-show-required]=\"field.showRequired\"\n [p-show-thumbnail]=\"field.showThumbnail ?? true\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-url]=\"field.url\"\n >\n </po-upload>\n }\n }\n</ng-template>\n\n<ng-template #poContentContainer let-fields>\n <po-dynamic-container [p-fields]=\"fields\" [p-content]=\"poContent\"></po-dynamic-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PoDividerComponent, selector: "po-divider" }, { kind: "component", type: PoCheckboxGroupComponent, selector: "po-checkbox-group" }, { kind: "component", type: PoCheckboxComponent, selector: "po-checkbox" }, { kind: "component", type: PoComboComponent, selector: "po-combo" }, { kind: "component", type: PoDatepickerComponent, selector: "po-datepicker" }, { kind: "component", type: PoDatepickerRangeComponent, selector: "po-datepicker-range" }, { kind: "component", type: PoDatetimepickerComponent, selector: "po-datetimepicker" }, { kind: "component", type: PoDecimalComponent, selector: "po-decimal", inputs: ["p-decimals-length", "p-thousand-maxlength", "p-locale", "p-display-format", "p-min", "p-max"] }, { kind: "component", type: PoInputComponent, selector: "po-input" }, { kind: "component", type: PoLookupComponent, selector: "po-lookup" }, { kind: "component", type: PoMultiselectComponent, selector: "po-multiselect" }, { kind: "component", type: PoNumberComponent, selector: "po-number", inputs: ["p-step", "p-min", "p-max"] }, { kind: "component", type: PoPasswordComponent, selector: "po-password", inputs: ["p-hide-password-peek", "p-no-autocomplete"] }, { kind: "component", type: PoRadioGroupComponent, selector: "po-radio-group", inputs: ["p-label", "p-help"] }, { kind: "component", type: PoSelectComponent, selector: "po-select", inputs: ["p-readonly", "p-compact-label", "p-placeholder", "p-options", "p-field-label", "p-field-value", "p-control-value-with-label", "p-loading", "p-size", "p-helper", "p-label-text-wrap"], outputs: ["p-blur", "p-change-model", "ngModelChange"] }, { kind: "component", type: PoSwitchComponent, selector: "po-switch", inputs: ["p-value", "p-compact-label", "p-format-model", "p-hide-label-status", "p-label-position", "p-label-off", "p-label-on", "p-loading", "p-field-error-message", "p-error-limit", "p-invalid-value", "p-size", "p-helper", "p-label-text-wrap"], outputs: ["p-change-model"] }, { kind: "component", type: PoTextareaComponent, selector: "po-textarea" }, { kind: "component", type: PoTimepickerComponent, selector: "po-timepicker", inputs: ["p-label", "p-help"] }, { kind: "component", type: PoUploadComponent, selector: "po-upload" }, { kind: "component", type: PoDynamicContainerComponent, selector: "po-dynamic-container", inputs: ["p-content", "p-fields"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] });
57907
58247
  }
57908
58248
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: PoDynamicFormFieldsComponent, decorators: [{
57909
58249
  type: Component,
57910
- args: [{ selector: 'po-dynamic-form-fields', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], providers: [PoDynamicFormValidationService], standalone: false, template: "@if (visibleFields && visibleFields.length > 0) {\n <div class=\"po-row\" [class.po-dynamic]=\"hasContainers\">\n <ng-container\n *ngTemplateOutlet=\"\n hasContainers ? poContentContainer : poContent;\n context: { $implicit: hasContainers ? containerFields : visibleFields }\n \"\n ></ng-container>\n </div>\n}\n\n<ng-template #poContent let-fields>\n @for (field of fields; track trackBy($index, field)) {\n @if (field?.divider?.trim()) {\n <po-divider class=\"po-sm-12\" [p-label]=\"field.divider\"> </po-divider>\n }\n @if (compareTo(field.control, 'datepicker')) {\n <po-datepicker\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-clean]=\"field.clean\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-error-async]=\"field.errorAsyncFunction\"\n [p-auto-focus]=\"field.focus\"\n [p-format]=\"field.format\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-iso-format]=\"field.isoFormat\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-locale]=\"field.locale\"\n [p-max-date]=\"field.maxValue\"\n [p-min-date]=\"field.minValue\"\n [p-mode]=\"field.mode\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-size]=\"field.size || componentsSize\"\n [p-show-required]=\"field.showRequired\"\n [p-year-range-limit]=\"field.yearRangeLimit\"\n (p-change)=\"onChangeField(field)\"\n [p-placeholder]=\"field.placeholder\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-datepicker>\n }\n @if (compareTo(field.control, 'datetimepicker')) {\n <po-datetimepicker\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [p-append-in-body]=\"field.appendInBody\"\n [p-clean]=\"field.clean\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-format-date]=\"field.format\"\n [p-format-time]=\"field.formatTime\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-locale]=\"field.locale\"\n [p-max-date]=\"field.maxValue\"\n [p-max-time]=\"field.maxTime\"\n [p-min-date]=\"field.minValue\"\n [p-min-time]=\"field.minTime\"\n [p-minute-interval]=\"field.minuteInterval\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-placeholder]=\"field.placeholder\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-second-interval]=\"field.secondInterval\"\n [p-show-seconds]=\"field.showSeconds\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-change)=\"onChangeField(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-datetimepicker>\n }\n @if (compareTo(field.control, 'datepickerrange')) {\n <po-datepicker-range\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-clean]=\"field.clean\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\n [p-loading]=\"field.loading\"\n [p-max-date]=\"field.maxValue\"\n [p-min-date]=\"field.minValue\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-placeholder]=\"field.placeholder\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n [p-range-presets]=\"field.rangePresets\"\n [p-range-preset-options]=\"field.rangePresetOptions\"\n [p-range-presets-order]=\"field.rangePresetsOrder\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-datepicker-range>\n }\n @if (compareTo(field.control, 'timepicker')) {\n <po-timepicker\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [p-append-in-body]=\"field.appendBox\"\n [p-compact-label]=\"field.compactLabel\"\n [p-clean]=\"field.clean\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-auto-focus]=\"field.focus\"\n [p-format]=\"field.format\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-model-format]=\"field.modelFormat\"\n [p-label]=\"field.label\"\n [p-locale]=\"field.locale\"\n [p-max-time]=\"field.maxValue\"\n [p-min-time]=\"field.minValue\"\n [p-minute-interval]=\"field.minuteInterval\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-placeholder]=\"field.placeholder\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-second-interval]=\"field.secondInterval\"\n [p-show-required]=\"field.showRequired\"\n [p-show-seconds]=\"field.showSeconds\"\n [p-size]=\"field.size || componentsSize\"\n (p-change)=\"onChangeField(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-timepicker>\n }\n @if (compareTo(field.control, 'input')) {\n <po-input\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-clean]=\"field.clean\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-error-async-properties]=\"field.errorAsyncProperties\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-mask-format-model]=\"field.maskFormatModel\"\n [p-mask-no-length-validation]=\"field.maskNoLengthValidation\"\n [p-mask]=\"field.mask\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-pattern]=\"field.pattern\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-icon]=\"field.icon\"\n [p-placeholder]=\"field.placeholder\"\n [p-readonly]=\"field.readonly\"\n >\n </po-input>\n }\n @if (compareTo(field.control, 'number')) {\n <po-number\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-clean]=\"field.clean\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-error-async-properties]=\"field.errorAsyncProperties\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-min]=\"field.minValue\"\n [p-max]=\"field.maxValue\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-step]=\"field.step\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-icon]=\"field.icon\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-number>\n }\n @if (compareTo(field.control, 'decimal')) {\n <po-decimal\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-clean]=\"field.clean\"\n [p-compact-label]=\"field.compactLabel\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-error-async-properties]=\"field.errorAsyncProperties\"\n [p-disabled]=\"isDisabled(field)\"\n [p-decimals-length]=\"field.decimalsLength\"\n [p-display-format]=\"field.displayFormat\"\n [p-thousand-maxlength]=\"field.thousandMaxlength\"\n [p-icon]=\"field.icon\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-locale]=\"field.locale\"\n [p-mask-no-length-validation]=\"field.maskNoLengthValidation\"\n [p-min]=\"field.minValue\"\n [p-max]=\"field.maxValue\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-decimal>\n }\n @if (compareTo(field.control, 'select')) {\n <po-select\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-field-label]=\"field.fieldLabel\"\n [p-field-value]=\"field.fieldValue\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-placeholder]=\"field.placeholder\"\n [p-readonly]=\"field.readonly\"\n >\n </po-select>\n }\n @if (compareTo(field.control, 'radioGroup')) {\n <po-radio-group\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-columns]=\"field.columns || 3\"\n [p-compact-label]=\"field.compactLabel\"\n [p-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-radio-group>\n }\n @if (compareTo(field.control, 'switch')) {\n <po-switch\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-limit]=\"field.errorLimit\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-format-model]=\"field.formatModel\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-label-off]=\"field.booleanFalse\"\n [p-label-on]=\"field.booleanTrue\"\n [p-label-position]=\"field.labelPosition\"\n [p-loading]=\"field.loading\"\n [p-hide-label-status]=\"field.hideLabelStatus\"\n [p-invalid-value]=\"field.invalidValue\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-switch>\n }\n @if (compareTo(field.control, 'checkbox')) {\n <po-checkbox\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-auto-focus]=\"field.focus\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-checkbox>\n }\n @if (compareTo(field.control, 'combo')) {\n <po-combo\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-emit-object-value\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-auto-focus]=\"field.focus\"\n [p-compact-label]=\"field.compactLabel\"\n [p-clean]=\"field.clean\"\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-helper]=\"field.helper\"\n [p-infinite-scroll]=\"field.infiniteScroll\"\n [p-infinite-scroll-distance]=\"field.infiniteScrollDistance || 100\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\n [p-loading]=\"field.loading\"\n [p-options]=\"field.options\"\n [p-optional]=\"field.optional\"\n [p-sort]=\"field.sort\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n (p-change)=\"onChangeField(field, $event)\"\n [p-icon]=\"field.icon\"\n [p-placeholder]=\"field.placeholder\"\n [p-filter-minlength]=\"field.filterMinlength\"\n [p-filter-mode]=\"field.filterMode\"\n [p-disabled-init-filter]=\"field.disabledInitFilter\"\n [p-disabled-tab-filter]=\"field.disabledTabFilter\"\n [p-debounce-time]=\"field.debounceTime\"\n [p-change-on-enter]=\"field.changeOnEnter\"\n [p-remove-initial-filter]=\"field.removeInitialFilter\"\n [p-size]=\"field.size || componentsSize\"\n (p-keydown)=\"field.keydown?.($event)\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n [p-listbox-control-position]=\"field.listboxControlPosition\"\n >\n </po-combo>\n }\n @if (compareTo(field.control, 'lookup')) {\n <po-lookup\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n p-field-label=\"label\"\n p-field-value=\"value\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-clean]=\"field.clean\"\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-auto-height]=\"field.autoHeight\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-field-format]=\"field.format\"\n [p-infinite-scroll]=\"field.infiniteScroll\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\n [p-loading]=\"field.loading\"\n [p-multiple]=\"field.multiple\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-change)=\"onChangeField(field)\"\n [p-placeholder]=\"field.placeholder\"\n [p-advanced-filters]=\"field.advancedFilters\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change-visible-columns)=\"field.changeVisibleColumns?.($event)\"\n (p-keydown)=\"field.keydown?.($event)\"\n (p-restore-column-manager)=\"field.columnRestoreManager?.($event)\"\n >\n </po-lookup>\n }\n @if (compareTo(field.control, 'checkboxGroup')) {\n <po-checkbox-group\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-columns]=\"field.columns || 3\"\n [p-compact-label]=\"field.compactLabel\"\n [p-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-show-required]=\"field.showRequired\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-checkbox-group>\n }\n @if (compareTo(field.control, 'multiselect')) {\n <po-multiselect\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-auto-height]=\"field.autoHeight\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\n [p-loading]=\"field.loading\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n (p-change)=\"onChangeField(field)\"\n [p-placeholder]=\"field.placeholder\"\n [p-field-label]=\"field.fieldLabel\"\n [p-field-value]=\"field.fieldValue\"\n [p-filter-service]=\"field.optionsService\"\n [p-filter-mode]=\"field.filterMode\"\n [p-debounce-time]=\"field.debounceTime\"\n [p-sort]=\"field.sort\"\n [p-placeholder-search]=\"field.placeholderSearch\"\n [p-hide-search]=\"field.hideSearch\"\n [p-hide-select-all]=\"field.hideSelectAll\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-listbox-control-position]=\"field.listboxControlPosition\"\n >\n </po-multiselect>\n }\n @if (compareTo(field.control, 'textarea')) {\n <po-textarea\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-optional]=\"field.optional\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n [p-rows]=\"field.rows\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-textarea>\n }\n @if (compareTo(field.control, 'password')) {\n <po-password\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-clean]=\"field.clean\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-error-async-properties]=\"field.errorAsyncProperties\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-hide-password-peek]=\"field.hidePasswordPeek\"\n [p-icon]=\"field.icon\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-pattern]=\"field.pattern\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-password>\n }\n @if (compareTo(field.control, 'upload')) {\n <po-upload\n #component\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-auto-upload]=\"field.autoUpload\"\n [p-compact-label]=\"field.compactLabel\"\n [p-directory]=\"field.directory\"\n [p-disabled]=\"isDisabled(field)\"\n [p-drag-drop]=\"field.dragDrop\"\n [p-drag-drop-height]=\"field.dragDropHeight\"\n [p-restrictions]=\"field.restrictions\"\n [p-form-field]=\"field.formField\"\n [p-headers]=\"field.headers\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-hide-restrictions-info]=\"field.hideRestrictionsInfo\"\n [p-hide-select-button]=\"field.hideSelectButton\"\n [p-hide-send-button]=\"field.hideSendButton\"\n [p-multiple]=\"field.multiple\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\n [p-loading]=\"field.loading\"\n [name]=\"field.property\"\n [p-custom-action]=\"field.customAction\"\n (p-custom-action-click)=\"field.customActionClick($event)\"\n (p-error)=\"field.onError($event)\"\n (p-success)=\"field.onSuccess($event)\"\n (p-upload)=\"field.onUpload($event)\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n [p-show-required]=\"field.showRequired\"\n [p-show-thumbnail]=\"field.showThumbnail ?? true\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-url]=\"field.url\"\n >\n </po-upload>\n }\n }\n</ng-template>\n\n<ng-template #poContentContainer let-fields>\n <po-dynamic-container [p-fields]=\"fields\" [p-content]=\"poContent\"></po-dynamic-container>\n</ng-template>\n" }]
58250
+ args: [{ selector: 'po-dynamic-form-fields', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], providers: [PoDynamicFormValidationService], standalone: false, template: "@if (visibleFields && visibleFields.length > 0) {\n <div class=\"po-row\" [class.po-dynamic]=\"hasContainers\">\n <ng-container\n *ngTemplateOutlet=\"\n hasContainers ? poContentContainer : poContent;\n context: { $implicit: hasContainers ? containerFields : visibleFields }\n \"\n ></ng-container>\n </div>\n}\n\n<ng-template #poContent let-fields>\n @for (field of fields; track trackBy($index, field)) {\n @if (field?.divider?.trim()) {\n <po-divider class=\"po-sm-12\" [p-label]=\"field.divider\"> </po-divider>\n }\n @if (compareTo(field.control, 'datepicker')) {\n <po-datepicker\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-clean]=\"field.clean\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-error-async]=\"field.errorAsyncFunction\"\n [p-auto-focus]=\"field.focus\"\n [p-format]=\"field.format\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-iso-format]=\"field.isoFormat\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-locale]=\"field.locale\"\n [p-max-date]=\"field.maxValue\"\n [p-min-date]=\"field.minValue\"\n [p-mode]=\"field.mode\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-size]=\"field.size || componentsSize\"\n [p-show-required]=\"field.showRequired\"\n [p-year-range-limit]=\"field.yearRangeLimit\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n [p-placeholder]=\"field.placeholder\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-datepicker>\n }\n @if (compareTo(field.control, 'datetimepicker')) {\n <po-datetimepicker\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [p-append-in-body]=\"field.appendInBody\"\n [p-clean]=\"field.clean\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-format-date]=\"field.format\"\n [p-format-time]=\"field.formatTime\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-locale]=\"field.locale\"\n [p-max-date]=\"field.maxValue\"\n [p-max-time]=\"field.maxTime\"\n [p-min-date]=\"field.minValue\"\n [p-min-time]=\"field.minTime\"\n [p-minute-interval]=\"field.minuteInterval\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-placeholder]=\"field.placeholder\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-second-interval]=\"field.secondInterval\"\n [p-show-seconds]=\"field.showSeconds\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-datetimepicker>\n }\n @if (compareTo(field.control, 'datepickerrange')) {\n <po-datepicker-range\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-clean]=\"field.clean\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\n [p-loading]=\"field.loading\"\n [p-max-date]=\"field.maxValue\"\n [p-min-date]=\"field.minValue\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-placeholder]=\"field.placeholder\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n [p-range-presets]=\"field.rangePresets\"\n [p-range-preset-options]=\"field.rangePresetOptions\"\n [p-range-presets-order]=\"field.rangePresetsOrder\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-datepicker-range>\n }\n @if (compareTo(field.control, 'timepicker')) {\n <po-timepicker\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [p-append-in-body]=\"field.appendBox\"\n [p-compact-label]=\"field.compactLabel\"\n [p-clean]=\"field.clean\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-auto-focus]=\"field.focus\"\n [p-format]=\"field.format\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-model-format]=\"field.modelFormat\"\n [p-label]=\"field.label\"\n [p-locale]=\"field.locale\"\n [p-max-time]=\"field.maxValue\"\n [p-min-time]=\"field.minValue\"\n [p-minute-interval]=\"field.minuteInterval\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-placeholder]=\"field.placeholder\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-second-interval]=\"field.secondInterval\"\n [p-show-required]=\"field.showRequired\"\n [p-show-seconds]=\"field.showSeconds\"\n [p-size]=\"field.size || componentsSize\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-timepicker>\n }\n @if (compareTo(field.control, 'input')) {\n <po-input\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-clean]=\"field.clean\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-error-async-properties]=\"field.errorAsyncProperties\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-mask-format-model]=\"field.maskFormatModel\"\n [p-mask-no-length-validation]=\"field.maskNoLengthValidation\"\n [p-mask]=\"field.mask\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-pattern]=\"field.pattern\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-icon]=\"field.icon\"\n [p-placeholder]=\"field.placeholder\"\n [p-readonly]=\"field.readonly\"\n >\n </po-input>\n }\n @if (compareTo(field.control, 'number')) {\n <po-number\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-clean]=\"field.clean\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-error-async-properties]=\"field.errorAsyncProperties\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-min]=\"field.minValue\"\n [p-max]=\"field.maxValue\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-step]=\"field.step\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-icon]=\"field.icon\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-number>\n }\n @if (compareTo(field.control, 'decimal')) {\n <po-decimal\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-clean]=\"field.clean\"\n [p-compact-label]=\"field.compactLabel\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-error-async-properties]=\"field.errorAsyncProperties\"\n [p-disabled]=\"isDisabled(field)\"\n [p-decimals-length]=\"field.decimalsLength\"\n [p-display-format]=\"field.displayFormat\"\n [p-thousand-maxlength]=\"field.thousandMaxlength\"\n [p-icon]=\"field.icon\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-locale]=\"field.locale\"\n [p-mask-no-length-validation]=\"field.maskNoLengthValidation\"\n [p-min]=\"field.minValue\"\n [p-max]=\"field.maxValue\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-decimal>\n }\n @if (compareTo(field.control, 'select')) {\n <po-select\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-field-label]=\"field.fieldLabel\"\n [p-field-value]=\"field.fieldValue\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-placeholder]=\"field.placeholder\"\n [p-readonly]=\"field.readonly\"\n >\n </po-select>\n }\n @if (compareTo(field.control, 'radioGroup')) {\n <po-radio-group\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-columns]=\"field.columns || 3\"\n [p-compact-label]=\"field.compactLabel\"\n [p-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-radio-group>\n }\n @if (compareTo(field.control, 'switch')) {\n <po-switch\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-limit]=\"field.errorLimit\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-format-model]=\"field.formatModel\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-label-off]=\"field.booleanFalse\"\n [p-label-on]=\"field.booleanTrue\"\n [p-label-position]=\"field.labelPosition\"\n [p-loading]=\"field.loading\"\n [p-hide-label-status]=\"field.hideLabelStatus\"\n [p-invalid-value]=\"field.invalidValue\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-switch>\n }\n @if (compareTo(field.control, 'checkbox')) {\n <po-checkbox\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-auto-focus]=\"field.focus\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-checkbox>\n }\n @if (compareTo(field.control, 'combo')) {\n <po-combo\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n p-emit-object-value\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-auto-focus]=\"field.focus\"\n [p-compact-label]=\"field.compactLabel\"\n [p-clean]=\"field.clean\"\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-helper]=\"field.helper\"\n [p-infinite-scroll]=\"field.infiniteScroll\"\n [p-infinite-scroll-distance]=\"field.infiniteScrollDistance || 100\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\n [p-loading]=\"field.loading\"\n [p-options]=\"field.options\"\n [p-optional]=\"field.optional\"\n [p-sort]=\"field.sort\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n (p-change)=\"onChangeField(field, $event)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n [p-icon]=\"field.icon\"\n [p-placeholder]=\"field.placeholder\"\n [p-filter-minlength]=\"field.filterMinlength\"\n [p-filter-mode]=\"field.filterMode\"\n [p-disabled-init-filter]=\"field.disabledInitFilter\"\n [p-disabled-tab-filter]=\"field.disabledTabFilter\"\n [p-debounce-time]=\"field.debounceTime\"\n [p-change-on-enter]=\"field.changeOnEnter\"\n [p-remove-initial-filter]=\"field.removeInitialFilter\"\n [p-size]=\"field.size || componentsSize\"\n (p-keydown)=\"field.keydown?.($event)\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n [p-listbox-control-position]=\"field.listboxControlPosition\"\n >\n </po-combo>\n }\n @if (compareTo(field.control, 'lookup')) {\n <po-lookup\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n p-field-label=\"label\"\n p-field-value=\"value\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-clean]=\"field.clean\"\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-auto-height]=\"field.autoHeight\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-field-format]=\"field.format\"\n [p-infinite-scroll]=\"field.infiniteScroll\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\n [p-loading]=\"field.loading\"\n [p-multiple]=\"field.multiple\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n [p-placeholder]=\"field.placeholder\"\n [p-advanced-filters]=\"field.advancedFilters\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change-visible-columns)=\"field.changeVisibleColumns?.($event)\"\n (p-keydown)=\"field.keydown?.($event)\"\n (p-restore-column-manager)=\"field.columnRestoreManager?.($event)\"\n >\n </po-lookup>\n }\n @if (compareTo(field.control, 'checkboxGroup')) {\n <po-checkbox-group\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-columns]=\"field.columns || 3\"\n [p-compact-label]=\"field.compactLabel\"\n [p-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-show-required]=\"field.showRequired\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n >\n </po-checkbox-group>\n }\n @if (compareTo(field.control, 'multiselect')) {\n <po-multiselect\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-auto-height]=\"field.autoHeight\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\n [p-loading]=\"field.loading\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n [p-placeholder]=\"field.placeholder\"\n [p-field-label]=\"field.fieldLabel\"\n [p-field-value]=\"field.fieldValue\"\n [p-filter-service]=\"field.optionsService\"\n [p-filter-mode]=\"field.filterMode\"\n [p-debounce-time]=\"field.debounceTime\"\n [p-sort]=\"field.sort\"\n [p-placeholder-search]=\"field.placeholderSearch\"\n [p-hide-search]=\"field.hideSearch\"\n [p-hide-select-all]=\"field.hideSelectAll\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-listbox-control-position]=\"field.listboxControlPosition\"\n >\n </po-multiselect>\n }\n @if (compareTo(field.control, 'textarea')) {\n <po-textarea\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-optional]=\"field.optional\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-field-error-message]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-show-required]=\"field.showRequired\"\n [p-rows]=\"field.rows\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-textarea>\n }\n @if (compareTo(field.control, 'password')) {\n <po-password\n #component\n [name]=\"field.property\"\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-compact-label]=\"field.compactLabel\"\n [p-clean]=\"field.clean\"\n [p-disabled]=\"isDisabled(field)\"\n [p-error-pattern]=\"field.errorMessage\"\n [p-error-limit]=\"field.errorLimit\"\n [p-error-async-properties]=\"field.errorAsyncProperties\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-hide-password-peek]=\"field.hidePasswordPeek\"\n [p-icon]=\"field.icon\"\n [p-label]=\"field.label\"\n [p-loading]=\"field.loading\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-no-autocomplete]=\"field.noAutocomplete\"\n [p-optional]=\"field.optional\"\n [p-pattern]=\"field.pattern\"\n [p-readonly]=\"field.readonly\"\n [p-required]=\"field.required\"\n [p-required-field-error-message]=\"field.requiredFieldErrorMessage\"\n [p-show-required]=\"field.showRequired\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-placeholder]=\"field.placeholder\"\n >\n </po-password>\n }\n @if (compareTo(field.control, 'upload')) {\n <po-upload\n #component\n [(ngModel)]=\"value[field.property]\"\n [ngClass]=\"field.componentClass\"\n [additionalHelpEventTrigger]=\"field.additionalHelp ? 'event' : 'noEvent'\"\n [p-additional-help-tooltip]=\"field.additionalHelpTooltip\"\n [p-auto-upload]=\"field.autoUpload\"\n [p-compact-label]=\"field.compactLabel\"\n [p-directory]=\"field.directory\"\n [p-disabled]=\"isDisabled(field)\"\n [p-drag-drop]=\"field.dragDrop\"\n [p-drag-drop-height]=\"field.dragDropHeight\"\n [p-restrictions]=\"field.restrictions\"\n [p-form-field]=\"field.formField\"\n [p-headers]=\"field.headers\"\n [p-help]=\"field.help\"\n [p-helper]=\"field.helper\"\n [p-hide-restrictions-info]=\"field.hideRestrictionsInfo\"\n [p-hide-select-button]=\"field.hideSelectButton\"\n [p-hide-send-button]=\"field.hideSendButton\"\n [p-multiple]=\"field.multiple\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\n [p-loading]=\"field.loading\"\n [name]=\"field.property\"\n [p-custom-action]=\"field.customAction\"\n (p-custom-action-click)=\"field.customActionClick($event)\"\n (p-error)=\"field.onError($event)\"\n (p-success)=\"field.onSuccess($event)\"\n (p-upload)=\"field.onUpload($event)\"\n [p-optional]=\"field.optional\"\n [p-required]=\"field.required\"\n [p-show-required]=\"field.showRequired\"\n [p-show-thumbnail]=\"field.showThumbnail ?? true\"\n [p-size]=\"field.size || componentsSize\"\n (p-additional-help)=\"field.additionalHelp?.($event)\"\n (p-change)=\"onChangeField(field)\"\n (p-change-model)=\"onChangeFieldModel(field)\"\n (p-keydown)=\"field.keydown?.($event)\"\n [p-url]=\"field.url\"\n >\n </po-upload>\n }\n }\n</ng-template>\n\n<ng-template #poContentContainer let-fields>\n <po-dynamic-container [p-fields]=\"fields\" [p-content]=\"poContent\"></po-dynamic-container>\n</ng-template>\n" }]
57911
58251
  }], ctorParameters: () => [], propDecorators: { components: [{
57912
58252
  type: ViewChildren,
57913
58253
  args: ['component']