@po-ui/ng-components 20.4.0 → 20.6.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.
@@ -387,6 +387,7 @@ const AnimaliaIconDictionary = {
387
387
  ICON_OK: 'an an-check',
388
388
  ICON_PARAMETERS: 'an an-sliders-horizontal',
389
389
  ICON_PICTURE: 'an an-image',
390
+ ICON_PICTURE_BROKEN: 'an an-image-broken',
390
391
  ICON_PUSH_PIN: 'an an-push-pin',
391
392
  ICON_PUSH_PIN_SLASH: 'an an-push-pin-slash',
392
393
  ICON_REFRESH: 'an an-arrow-clockwise',
@@ -7551,11 +7552,13 @@ class PoCheckboxComponent extends PoCheckboxBaseComponent {
7551
7552
  if (this.autoFocus) {
7552
7553
  this.focus();
7553
7554
  }
7554
- setTimeout(() => {
7555
- if (this.checkboxLabel?.nativeElement?.classList?.contains('enable-append-box')) {
7556
- this.appendBox = true;
7557
- }
7558
- }, 300);
7555
+ if (this.checkboxLabel?.nativeElement?.closest('.components-form-custom-template')) {
7556
+ setTimeout(() => {
7557
+ if (this.checkboxLabel?.nativeElement?.classList?.contains('enable-append-box')) {
7558
+ this.appendBox = true;
7559
+ }
7560
+ }, 300);
7561
+ }
7559
7562
  }
7560
7563
  ngOnChanges(changes) {
7561
7564
  if (changes.label || changes.additionalHelpTooltip || changes.helper || changes.size) {
@@ -16194,12 +16197,13 @@ class PoDatepickerComponent extends PoDatepickerBaseComponent {
16194
16197
  this.focus();
16195
16198
  }
16196
16199
  this.renderer.setAttribute(this.iconDatepicker.buttonElement.nativeElement, 'aria-label', this.literals.open);
16197
- // Necessário para edição fluída
16198
- setTimeout(() => {
16199
- if (this.inputEl?.nativeElement?.classList?.contains('enable-append-box')) {
16200
- this.appendBox = true;
16201
- }
16202
- }, 300);
16200
+ if (this.inputEl?.nativeElement?.closest('.components-form-custom-template')) {
16201
+ setTimeout(() => {
16202
+ if (this.inputEl?.nativeElement?.classList?.contains('enable-append-box')) {
16203
+ this.appendBox = true;
16204
+ }
16205
+ }, 300);
16206
+ }
16203
16207
  }
16204
16208
  ngOnDestroy() {
16205
16209
  this.subscriptionValidator?.unsubscribe();
@@ -21051,11 +21055,13 @@ class PoSwitchComponent extends PoFieldModel {
21051
21055
  }
21052
21056
  ngAfterViewInit() {
21053
21057
  this.setControl();
21054
- setTimeout(() => {
21055
- if (this.switchContainer?.nativeElement?.classList?.contains('enable-append-box')) {
21056
- this.appendBox = true;
21057
- }
21058
- }, 300);
21058
+ if (this.switchContainer?.nativeElement?.closest('.components-form-custom-template')) {
21059
+ setTimeout(() => {
21060
+ if (this.switchContainer?.nativeElement?.classList?.contains('enable-append-box')) {
21061
+ this.appendBox = true;
21062
+ }
21063
+ }, 300);
21064
+ }
21059
21065
  }
21060
21066
  setControl() {
21061
21067
  const ngControl = this.injector.get(NgControl, null, this.injectOptions);
@@ -27603,12 +27609,13 @@ class PoComboComponent extends PoComboBaseComponent {
27603
27609
  this.focus();
27604
27610
  }
27605
27611
  this.setContainerWidth();
27606
- // Necessário para edição fluída
27607
- setTimeout(() => {
27608
- if (this.inputEl?.nativeElement?.classList?.contains('enable-append-box')) {
27609
- this.appendBox = true;
27610
- }
27611
- }, 300);
27612
+ if (this.inputEl?.nativeElement?.closest('.components-form-custom-template')) {
27613
+ setTimeout(() => {
27614
+ if (this.inputEl?.nativeElement?.classList?.contains('enable-append-box')) {
27615
+ this.appendBox = true;
27616
+ }
27617
+ }, 300);
27618
+ }
27612
27619
  }
27613
27620
  ngOnChanges(changes) {
27614
27621
  if (changes.debounceTime) {
@@ -30497,11 +30504,13 @@ class PoDecimalComponent extends PoInputBaseComponent {
30497
30504
  ngAfterViewInit() {
30498
30505
  this.helperSettings = this.setHelper(this.label, this.additionalHelpTooltip).helperSettings;
30499
30506
  this.verifyAutoFocus();
30500
- setTimeout(() => {
30501
- if (this.inputEl?.nativeElement?.classList?.contains('enable-append-box')) {
30502
- this.appendBox = true;
30503
- }
30504
- }, 300);
30507
+ if (this.inputEl?.nativeElement?.closest('.components-form-custom-template')) {
30508
+ setTimeout(() => {
30509
+ if (this.inputEl?.nativeElement?.classList?.contains('enable-append-box')) {
30510
+ this.appendBox = true;
30511
+ }
30512
+ }, 300);
30513
+ }
30505
30514
  }
30506
30515
  ngOnDestroy() {
30507
30516
  this.subscriptionValidator?.unsubscribe();
@@ -31018,11 +31027,13 @@ class PoInputGeneric extends PoInputBaseComponent {
31018
31027
  afterViewInit() {
31019
31028
  this.helperSettings = this.setHelper(this.label, this.additionalHelpTooltip).helperSettings;
31020
31029
  this.verifyAutoFocus();
31021
- setTimeout(() => {
31022
- if (this.inputEl?.nativeElement?.classList?.contains('enable-append-box')) {
31023
- this.appendBox = true;
31024
- }
31025
- }, 300);
31030
+ if (this.inputEl?.nativeElement?.closest('.components-form-custom-template')) {
31031
+ setTimeout(() => {
31032
+ if (this.inputEl?.nativeElement?.classList?.contains('enable-append-box')) {
31033
+ this.appendBox = true;
31034
+ }
31035
+ }, 300);
31036
+ }
31026
31037
  }
31027
31038
  ngOnDestroy() {
31028
31039
  this.subscriptionValidator?.unsubscribe();
@@ -35063,12 +35074,13 @@ class PoMultiselectComponent extends PoMultiselectBaseComponent {
35063
35074
  this.focus();
35064
35075
  }
35065
35076
  this.initialized = true;
35066
- // Necessário para edição fluída
35067
- setTimeout(() => {
35068
- if (this.inputElement?.nativeElement?.classList?.contains('enable-append-box')) {
35069
- this.appendBox = true;
35070
- }
35071
- }, 300);
35077
+ if (this.inputElement?.nativeElement?.closest('.components-form-custom-template')) {
35078
+ setTimeout(() => {
35079
+ if (this.inputElement?.nativeElement?.classList?.contains('enable-append-box')) {
35080
+ this.appendBox = true;
35081
+ }
35082
+ }, 300);
35083
+ }
35072
35084
  }
35073
35085
  ngOnChanges(changes) {
35074
35086
  if (this.filterService && (changes.filterService || changes.fieldValue || changes.fieldLabel)) {
@@ -35792,11 +35804,13 @@ class PoNumberComponent extends PoNumberBaseComponent {
35792
35804
  event.preventDefault();
35793
35805
  }
35794
35806
  ngAfterViewInit() {
35795
- setTimeout(() => {
35796
- if (this.inputEl?.nativeElement?.classList?.contains('enable-append-box')) {
35797
- this.appendBox = true;
35798
- }
35799
- }, 300);
35807
+ if (this.inputEl?.nativeElement?.closest('.components-form-custom-template')) {
35808
+ setTimeout(() => {
35809
+ if (this.inputEl?.nativeElement?.classList?.contains('enable-append-box')) {
35810
+ this.appendBox = true;
35811
+ }
35812
+ }, 300);
35813
+ }
35800
35814
  }
35801
35815
  extraValidation(abstractControl) {
35802
35816
  // Verifica se já possui algum error pattern padrão.
@@ -36916,6 +36930,18 @@ class PoUploadFile {
36916
36930
  displayName;
36917
36931
  // porcentagem utilizada para repassar ao componente progress
36918
36932
  percent;
36933
+ // indica que o tamanho do arquivo não é permitido
36934
+ sizeNotAllowed;
36935
+ // indica que a extensão do arquivo não é permitida
36936
+ extensionNotAllowed;
36937
+ // Propriedade interna que indica que o status de sucesso deve estar oculto
36938
+ hideDoneContent;
36939
+ // Propriedade interna para mensagem de erro
36940
+ errorMessage;
36941
+ // Propriedade interna para url da thumbnail
36942
+ thumbnailUrl;
36943
+ // Propriedade interna para controlar se houve erro ao carregar a imagem da thumbnail.
36944
+ imageError;
36919
36945
  constructor(file) {
36920
36946
  if (file) {
36921
36947
  this.name = file.name;
@@ -37083,7 +37109,14 @@ const poUploadLiteralsDefault = {
37083
37109
  maxFileSizeAllowed: 'Size limit per file: {0} maximum',
37084
37110
  minFileSizeAllowed: 'Size limit per file: {0} minimum',
37085
37111
  errorOccurred: 'An error has occurred',
37086
- sentWithSuccess: 'Sent with success'
37112
+ sentWithSuccess: 'Sent with success',
37113
+ doneText: 'Done',
37114
+ uploadingText: 'Uploading',
37115
+ tryAgain: 'Try again',
37116
+ close: 'Close file',
37117
+ preview: 'Preview',
37118
+ thumbnail: 'thumbnail',
37119
+ continue: 'Continue'
37087
37120
  },
37088
37121
  es: {
37089
37122
  files: 'archivos',
@@ -37109,7 +37142,14 @@ const poUploadLiteralsDefault = {
37109
37142
  maxFileSizeAllowed: 'Limite de tamaño de archivo: hasta {0}',
37110
37143
  minFileSizeAllowed: 'Limite de tamaño de archivo: minimo {0}',
37111
37144
  errorOccurred: 'Ocurrio un error',
37112
- sentWithSuccess: 'Enviado con éxito'
37145
+ sentWithSuccess: 'Enviado con éxito',
37146
+ doneText: 'Hecho',
37147
+ uploadingText: 'Subiendo',
37148
+ tryAgain: 'Inténtalo de nuevo',
37149
+ close: 'Cerrar archivo',
37150
+ preview: 'Vista previa',
37151
+ thumbnail: 'miniatura',
37152
+ continue: 'Continuar'
37113
37153
  },
37114
37154
  pt: {
37115
37155
  files: 'arquivos',
@@ -37135,7 +37175,14 @@ const poUploadLiteralsDefault = {
37135
37175
  maxFileSizeAllowed: 'Limite de tamanho por arquivo: até {0}',
37136
37176
  minFileSizeAllowed: 'Limite de tamanho por arquivo: no mínimo {0}',
37137
37177
  errorOccurred: 'Ocorreu um erro',
37138
- sentWithSuccess: 'Enviado com sucesso'
37178
+ sentWithSuccess: 'Enviado com sucesso',
37179
+ doneText: 'Concluido',
37180
+ uploadingText: 'Enviando',
37181
+ tryAgain: 'Tente novamente',
37182
+ close: 'Fechar arquivo',
37183
+ preview: 'Pré-visualizar',
37184
+ thumbnail: 'miniatura',
37185
+ continue: 'Continuar'
37139
37186
  },
37140
37187
  ru: {
37141
37188
  files: 'файлы',
@@ -37161,7 +37208,14 @@ const poUploadLiteralsDefault = {
37161
37208
  maxFileSizeAllowed: 'Ограничение размера файла: до {0}',
37162
37209
  minFileSizeAllowed: 'Ограничение размера файла: не менее {0}',
37163
37210
  errorOccurred: 'Произошла ошибка.',
37164
- sentWithSuccess: 'Успешно отправлено'
37211
+ sentWithSuccess: 'Успешно отправлено',
37212
+ doneText: 'Сделанный',
37213
+ uploadingText: 'Загрузка',
37214
+ tryAgain: 'Попробуйте еще раз',
37215
+ close: 'Закрыть файл',
37216
+ preview: 'Просмотр',
37217
+ thumbnail: 'миниатюра',
37218
+ continue: 'Продолжить'
37165
37219
  }
37166
37220
  };
37167
37221
  const poUploadFormFieldDefault = 'files';
@@ -37180,6 +37234,44 @@ const poUploadMinFileSize = 0;
37180
37234
  * - Função de sucesso que será disparada quando os arquivos forem enviados com sucesso.
37181
37235
  * - Função de erro que será disparada quando houver erro no envio dos arquivos.
37182
37236
  * - Permite habilitar uma área onde os arquivos podem ser arrastados.
37237
+ *
37238
+ * #### Tokens customizáveis
37239
+ *
37240
+ * É possível alterar o estilo do componente usando os seguintes tokens (CSS):
37241
+ *
37242
+ * > Para maiores informações, acesse o guia [Personalizando o Tema Padrão com Tokens CSS](https://po-ui.io/guides/theme-customization).
37243
+ *
37244
+ * | Propriedade | Descrição | Valor Padrão |
37245
+ * |----------------------------------------|-------------------------------------------------------|---------------------------------------------------|
37246
+ * | **TEXT SUPPORT** | | |
37247
+ * | `--font-family-text-support` | Família tipográfica usada no texto de suporte | `var(--font-family-theme)` |
37248
+ * | `--text-color-text-support` | Cor da fonte no texto de suporte | `var(--color-neutral-dark-90)` |
37249
+ * | **UPLOAD CONTENT** | | |
37250
+ * | `--background-color-content`   | Cor de fundo | `var(--color-neutral-light-10)` |
37251
+ * | `--border-color-content` | Cor da borda | `var(--color-neutral-light-20)` |
37252
+ * | `--border-radius-content` | Contém o valor do raio dos cantos do elemento | `var(--border-radius-md)` |
37253
+ * | `--text-color-file-name` | Cor do texto do nome do arquivo | `var(--color-neutral-dark-90)` |
37254
+ * | `--font-family-file-name` | Família tipográfica usada no texto do arquivo | `var(--font-family-theme)` |
37255
+ * | `--text-color-info-bar` | Cor do texto de informação | `var(--color-neutral-mid-60)` |
37256
+ * | `--font-family-info-bar` | Família tipográfica usada no texto de informação | `var(--font-family-theme)` |
37257
+ * | **ERROR STATE** | | |
37258
+ * | `--background-color-content-error` | Cor de fundo do container de erro | `var(--color-neutral-light-00)` |
37259
+ * | `--border-color-content-error` | Cor da borda do container de erro | `var(--color-feedback-negative-base)` |
37260
+ * | `--text-color-error` | Cor do texto do container de erro | `var(--color-feedback-negative-dark)` |
37261
+ * | `--color-icon-error` | Cor do ícone no estado de erro | `var(--color-feedback-negative-base)` |
37262
+ * | `--font-family-error` | Família tipográfica usada no texto de erro | `var(--font-family-theme)` |
37263
+ * | **UPLOADED STATE** | | |
37264
+ * | `--background-color-content-uploaded` | Cor de fundo do container com status de enviado | `var(--color-neutral-light-00)` |
37265
+ * | `--border-color-content-uploaded` | Cor da borda do container com status de enviado | `var(--color-neutral-light-20)` |
37266
+ * | **INTERACTIVE STATE** | | |
37267
+ * | `--text-color-file-name-interactive` | Cor do texto do nome do arquivo quando interativo | `var(--color-action-default)` |
37268
+ * | **THUMBNAIL** | | |
37269
+ * | `--color-icon-thumbnail` | Cor do ícone na thumbnail | `var(--color-action-default)` |
37270
+ * | `--border-width-thumbnail` | Tamanho da fonte na thumbnail | `var(--border-width-sm)` |
37271
+ * | `--border-radius-thumbnail` | Contém o valor do raio dos cantos na thumbnail | `var(--border-radius-md)` |
37272
+ * | `--background-color-thumbnail` | Cor de fundo na thumbnail | `var(--color-neutral-light-05)` |
37273
+ * | **Focused** | | |
37274
+ * | `--outline-color-focused` | Cor do outline do estado de focus | `var(--color-action-focus)` |
37183
37275
  */
37184
37276
  class PoUploadBaseComponent {
37185
37277
  uploadService;
@@ -37283,6 +37375,19 @@ class PoUploadBaseComponent {
37283
37375
  * @default `false`
37284
37376
  */
37285
37377
  optional;
37378
+ /**
37379
+ * @optional
37380
+ *
37381
+ * @description
37382
+ *
37383
+ * Exibe a pré-visualização de imagens ao anexá-las.
37384
+ *
37385
+ * > Propriedade funciona apenas em arquivos de formato de imagem (`.png`, `.jpg`, `.jpeg` e `.gif`).
37386
+ * Será ignorada em outros tipos de arquivo.
37387
+ *
37388
+ * @default `true`
37389
+ */
37390
+ showThumbnail = true;
37286
37391
  /** Objeto que contém os cabeçalhos que será enviado na requisição dos arquivos. */
37287
37392
  headers;
37288
37393
  /**
@@ -37379,6 +37484,38 @@ class PoUploadBaseComponent {
37379
37484
  * ```
37380
37485
  */
37381
37486
  customAction;
37487
+ /**
37488
+ * @optional
37489
+ *
37490
+ * @description
37491
+ *
37492
+ * Define uma ou duas ações personalizadas do modal de pré-visualização, adicionando um botão ou dois botões no canto inferior direito
37493
+ * do modal.
37494
+ *
37495
+ * A ação deve implementar a interface **PoModalAction**, permitindo configurar propriedades como:
37496
+ * - `label`: Texto do botão.
37497
+ * - `action`: Ícone a ser exibido no botão.
37498
+ * - `danger`: Define a propriedade `p-danger` do botão.
37499
+ * - `disabled`: Indica se o botão deve estar desabilitado.
37500
+ * - `visible`: Indica se o botão deve estar visível.
37501
+ *
37502
+ * **Exemplo de uso:**
37503
+ *
37504
+ * ```html
37505
+ * <po-upload
37506
+ * [p-custom-modal-actions]="customActions"
37507
+ * </po-upload>
37508
+ * ```
37509
+ *
37510
+ * ```typescript
37511
+ * customActions: Array<PoModalAction> = [
37512
+ * { label: 'Confirmar', action: this.confirmModal.bind(this) },
37513
+ * { label: 'Cancelar', action: this.closeModal.bind(this) }
37514
+ *];
37515
+ *
37516
+ * ```
37517
+ */
37518
+ customModalActions;
37382
37519
  /**
37383
37520
  * @optional
37384
37521
  *
@@ -37449,6 +37586,33 @@ class PoUploadBaseComponent {
37449
37586
  * ```
37450
37587
  */
37451
37588
  onUpload = new EventEmitter();
37589
+ /**
37590
+ * @optional
37591
+ *
37592
+ * @description
37593
+ *
37594
+ * Evento será disparado ao clicar no ícone de fechar.
37595
+ * > Por parâmetro será passado o objeto do arquivo.
37596
+ */
37597
+ onCancel = new EventEmitter();
37598
+ /**
37599
+ * @optional
37600
+ *
37601
+ * @description
37602
+ *
37603
+ * Evento será disparado ao abrir o modal de pré-visualização.
37604
+ * > Por parâmetro será passado o objeto do arquivo.
37605
+ */
37606
+ onOpenModalPreview = new EventEmitter();
37607
+ /**
37608
+ * @optional
37609
+ *
37610
+ * @description
37611
+ *
37612
+ * Evento será disparado ao clicar no ícone de remover.
37613
+ * > Por parâmetro será passado o objeto do arquivo.
37614
+ */
37615
+ onRemove = new EventEmitter();
37452
37616
  /**
37453
37617
  * @optional
37454
37618
  *
@@ -37798,9 +37962,28 @@ class PoUploadBaseComponent {
37798
37962
  break;
37799
37963
  }
37800
37964
  const file = new PoUploadFile(files[i]);
37801
- if (this.checkRestrictions(file)) {
37802
- poUploadFiles = this.insertFileInFiles(file, poUploadFiles);
37965
+ let currentFile = file;
37966
+ if (!this.checkRestrictions(file)) {
37967
+ currentFile = {
37968
+ uid: file.uid,
37969
+ displayName: file.displayName,
37970
+ name: file.name,
37971
+ extension: file.extension,
37972
+ size: file.size,
37973
+ status: 2,
37974
+ sizeNotAllowed: file.sizeNotAllowed,
37975
+ extensionNotAllowed: file.extensionNotAllowed,
37976
+ errorMessage: ''
37977
+ };
37803
37978
  }
37979
+ if (this.showThumbnail && currentFile.rawFile?.type?.startsWith('image/')) {
37980
+ convertImageToBase64(currentFile.rawFile).then(base64 => {
37981
+ currentFile.thumbnailUrl = base64;
37982
+ this.cd.detectChanges();
37983
+ });
37984
+ }
37985
+ poUploadFiles = this.insertFileInFiles(currentFile, poUploadFiles);
37986
+ this.sendFeedback(currentFile);
37804
37987
  }
37805
37988
  this.sendFeedback();
37806
37989
  return poUploadFiles;
@@ -37820,8 +38003,12 @@ class PoUploadBaseComponent {
37820
38003
  const isAccept = allowedExtensions ? this.isAllowedExtension(file.extension, allowedExtensions) : true;
37821
38004
  const isAcceptSize = file.size >= minFileSize && file.size <= maxFileSize;
37822
38005
  if (!isAcceptSize) {
38006
+ file.sizeNotAllowed = true;
37823
38007
  this.sizeNotAllowed = this.sizeNotAllowed + 1;
37824
38008
  }
38009
+ if (!isAccept) {
38010
+ file.extensionNotAllowed = true;
38011
+ }
37825
38012
  return isAccept && isAcceptSize;
37826
38013
  }
37827
38014
  return true;
@@ -37875,7 +38062,7 @@ class PoUploadBaseComponent {
37875
38062
  return files;
37876
38063
  }
37877
38064
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoUploadBaseComponent, deps: [{ token: PoUploadService }, { token: PoLanguageService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
37878
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.7", type: PoUploadBaseComponent, 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 }, dragDropHeight: { classPropertyName: "dragDropHeight", publicName: "p-drag-drop-height", 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 }, url: { classPropertyName: "url", publicName: "p-url", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, autoUpload: { classPropertyName: "autoUpload", publicName: "p-auto-upload", isSignal: false, isRequired: false, transformFunction: null }, disabledRemoveFile: { classPropertyName: "disabledRemoveFile", publicName: "p-disabled-remove-file", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: false, isRequired: false, transformFunction: null }, headers: { classPropertyName: "headers", publicName: "p-headers", isSignal: false, isRequired: false, transformFunction: null }, requiredUrl: { classPropertyName: "requiredUrl", publicName: "p-required-url", 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 }, customAction: { classPropertyName: "customAction", publicName: "p-custom-action", isSignal: false, isRequired: false, transformFunction: null }, directory: { classPropertyName: "directory", publicName: "p-directory", isSignal: false, isRequired: false, transformFunction: null }, dragDrop: { classPropertyName: "dragDrop", publicName: "p-drag-drop", isSignal: false, isRequired: false, transformFunction: null }, hideRestrictionsInfo: { classPropertyName: "hideRestrictionsInfo", publicName: "p-hide-restrictions-info", isSignal: false, isRequired: false, transformFunction: null }, hideSelectButton: { classPropertyName: "hideSelectButton", publicName: "p-hide-select-button", isSignal: false, isRequired: false, transformFunction: null }, hideSendButton: { classPropertyName: "hideSendButton", publicName: "p-hide-send-button", isSignal: false, isRequired: false, transformFunction: null }, literals: { classPropertyName: "literals", publicName: "p-literals", isSignal: false, isRequired: false, transformFunction: null }, fileRestrictions: { classPropertyName: "fileRestrictions", publicName: "p-restrictions", isSignal: false, isRequired: false, transformFunction: null }, formField: { classPropertyName: "formField", publicName: "p-form-field", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: null }, isMultiple: { classPropertyName: "isMultiple", publicName: "p-multiple", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: null }, 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: { additionalHelp: "p-additional-help", customActionClick: "p-custom-action-click", keydown: "p-keydown", onUpload: "p-upload", onError: "p-error", onSuccess: "p-success", ngModelChange: "ngModelChange" }, host: { properties: { "attr.p-required-url": "this.requiredUrl" } }, ngImport: i0 });
38065
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.7", type: PoUploadBaseComponent, 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 }, dragDropHeight: { classPropertyName: "dragDropHeight", publicName: "p-drag-drop-height", 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 }, url: { classPropertyName: "url", publicName: "p-url", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, autoUpload: { classPropertyName: "autoUpload", publicName: "p-auto-upload", isSignal: false, isRequired: false, transformFunction: null }, disabledRemoveFile: { classPropertyName: "disabledRemoveFile", publicName: "p-disabled-remove-file", isSignal: false, isRequired: false, transformFunction: convertToBoolean }, optional: { classPropertyName: "optional", publicName: "p-optional", isSignal: false, isRequired: false, transformFunction: null }, showThumbnail: { classPropertyName: "showThumbnail", publicName: "p-show-thumbnail", isSignal: false, isRequired: false, transformFunction: null }, headers: { classPropertyName: "headers", publicName: "p-headers", isSignal: false, isRequired: false, transformFunction: null }, requiredUrl: { classPropertyName: "requiredUrl", publicName: "p-required-url", 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 }, customAction: { classPropertyName: "customAction", publicName: "p-custom-action", isSignal: false, isRequired: false, transformFunction: null }, customModalActions: { classPropertyName: "customModalActions", publicName: "p-custom-modal-actions", isSignal: false, isRequired: false, transformFunction: null }, directory: { classPropertyName: "directory", publicName: "p-directory", isSignal: false, isRequired: false, transformFunction: null }, dragDrop: { classPropertyName: "dragDrop", publicName: "p-drag-drop", isSignal: false, isRequired: false, transformFunction: null }, hideRestrictionsInfo: { classPropertyName: "hideRestrictionsInfo", publicName: "p-hide-restrictions-info", isSignal: false, isRequired: false, transformFunction: null }, hideSelectButton: { classPropertyName: "hideSelectButton", publicName: "p-hide-select-button", isSignal: false, isRequired: false, transformFunction: null }, hideSendButton: { classPropertyName: "hideSendButton", publicName: "p-hide-send-button", isSignal: false, isRequired: false, transformFunction: null }, literals: { classPropertyName: "literals", publicName: "p-literals", isSignal: false, isRequired: false, transformFunction: null }, fileRestrictions: { classPropertyName: "fileRestrictions", publicName: "p-restrictions", isSignal: false, isRequired: false, transformFunction: null }, formField: { classPropertyName: "formField", publicName: "p-form-field", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "p-disabled", isSignal: false, isRequired: false, transformFunction: null }, isMultiple: { classPropertyName: "isMultiple", publicName: "p-multiple", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "p-required", isSignal: false, isRequired: false, transformFunction: null }, 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: { additionalHelp: "p-additional-help", customActionClick: "p-custom-action-click", keydown: "p-keydown", onUpload: "p-upload", onCancel: "p-cancel", onOpenModalPreview: "p-open-modal-preview", onRemove: "p-remove", onError: "p-error", onSuccess: "p-success", ngModelChange: "ngModelChange" }, host: { properties: { "attr.p-required-url": "this.requiredUrl" } }, ngImport: i0 });
37879
38066
  }
37880
38067
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoUploadBaseComponent, decorators: [{
37881
38068
  type: Directive
@@ -37914,6 +38101,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
37914
38101
  }], optional: [{
37915
38102
  type: Input,
37916
38103
  args: ['p-optional']
38104
+ }], showThumbnail: [{
38105
+ type: Input,
38106
+ args: ['p-show-thumbnail']
37917
38107
  }], headers: [{
37918
38108
  type: Input,
37919
38109
  args: ['p-headers']
@@ -37929,6 +38119,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
37929
38119
  }], customAction: [{
37930
38120
  type: Input,
37931
38121
  args: ['p-custom-action']
38122
+ }], customModalActions: [{
38123
+ type: Input,
38124
+ args: ['p-custom-modal-actions']
37932
38125
  }], customActionClick: [{
37933
38126
  type: Output,
37934
38127
  args: ['p-custom-action-click']
@@ -37938,6 +38131,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
37938
38131
  }], onUpload: [{
37939
38132
  type: Output,
37940
38133
  args: ['p-upload']
38134
+ }], onCancel: [{
38135
+ type: Output,
38136
+ args: ['p-cancel']
38137
+ }], onOpenModalPreview: [{
38138
+ type: Output,
38139
+ args: ['p-open-modal-preview']
38140
+ }], onRemove: [{
38141
+ type: Output,
38142
+ args: ['p-remove']
37941
38143
  }], onError: [{
37942
38144
  type: Output,
37943
38145
  args: ['p-error']
@@ -38376,11 +38578,11 @@ class PoUploadFileRestrictionsComponent {
38376
38578
  this.changeDetector.detectChanges();
38377
38579
  }
38378
38580
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoUploadFileRestrictionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38379
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: PoUploadFileRestrictionsComponent, isStandalone: false, selector: "po-upload-file-restrictions", inputs: { maxFiles: ["p-max-files", "maxFiles"], allowedExtensions: ["p-allowed-extensions", "allowedExtensions"], maxFileSize: ["p-max-file-size", "maxFileSize"], minFileSize: ["p-min-file-size", "minFileSize"] }, ngImport: i0, template: "@if (maxFiles > 1) {\n <p class=\"po-font-text-small\">\n {{ literals?.numberOfFilesAllowed | poI18n: maxFiles }}\n </p>\n}\n\n@if (allowedExtensions) {\n <p class=\"po-font-text-small\">\n {{ literals?.allowedFormats | poI18n: allowedExtensions }}\n </p>\n}\n\n@if (minFileSize || maxFileSize) {\n <p class=\"po-font-text-small\">\n <span>{{ literals?.allowedSizes }}</span>\n @if (minFileSize && maxFileSize) {\n <span>\n {{ literals?.allowedFileSizeRange | poI18n: [minFileSize, maxFileSize] }}\n </span>\n }\n @if (minFileSize && !maxFileSize) {\n <span>\n {{ literals?.minFileSizeAllowed | poI18n: minFileSize }}\n </span>\n }\n @if (maxFileSize && !minFileSize) {\n <span>\n {{ literals?.maxFileSizeAllowed | poI18n: maxFileSize }}\n </span>\n }\n </p>\n}\n", dependencies: [{ kind: "pipe", type: PoI18nPipe, name: "poI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
38581
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: PoUploadFileRestrictionsComponent, isStandalone: false, selector: "po-upload-file-restrictions", inputs: { maxFiles: ["p-max-files", "maxFiles"], allowedExtensions: ["p-allowed-extensions", "allowedExtensions"], maxFileSize: ["p-max-file-size", "maxFileSize"], minFileSize: ["p-min-file-size", "minFileSize"] }, ngImport: i0, template: "@if (maxFiles > 1) {\n <p>\n {{ literals?.numberOfFilesAllowed | poI18n: maxFiles }}\n </p>\n}\n\n@if (allowedExtensions) {\n <p>\n {{ literals?.allowedFormats | poI18n: allowedExtensions }}\n </p>\n}\n\n@if (minFileSize || maxFileSize) {\n <p>\n <span>{{ literals?.allowedSizes }}</span>\n @if (minFileSize && maxFileSize) {\n <span>\n {{ literals?.allowedFileSizeRange | poI18n: [minFileSize, maxFileSize] }}\n </span>\n }\n @if (minFileSize && !maxFileSize) {\n <span>\n {{ literals?.minFileSizeAllowed | poI18n: minFileSize }}\n </span>\n }\n @if (maxFileSize && !minFileSize) {\n <span>\n {{ literals?.maxFileSizeAllowed | poI18n: maxFileSize }}\n </span>\n }\n </p>\n}\n", dependencies: [{ kind: "pipe", type: PoI18nPipe, name: "poI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
38380
38582
  }
38381
38583
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoUploadFileRestrictionsComponent, decorators: [{
38382
38584
  type: Component,
38383
- args: [{ selector: 'po-upload-file-restrictions', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (maxFiles > 1) {\n <p class=\"po-font-text-small\">\n {{ literals?.numberOfFilesAllowed | poI18n: maxFiles }}\n </p>\n}\n\n@if (allowedExtensions) {\n <p class=\"po-font-text-small\">\n {{ literals?.allowedFormats | poI18n: allowedExtensions }}\n </p>\n}\n\n@if (minFileSize || maxFileSize) {\n <p class=\"po-font-text-small\">\n <span>{{ literals?.allowedSizes }}</span>\n @if (minFileSize && maxFileSize) {\n <span>\n {{ literals?.allowedFileSizeRange | poI18n: [minFileSize, maxFileSize] }}\n </span>\n }\n @if (minFileSize && !maxFileSize) {\n <span>\n {{ literals?.minFileSizeAllowed | poI18n: minFileSize }}\n </span>\n }\n @if (maxFileSize && !minFileSize) {\n <span>\n {{ literals?.maxFileSizeAllowed | poI18n: maxFileSize }}\n </span>\n }\n </p>\n}\n" }]
38585
+ args: [{ selector: 'po-upload-file-restrictions', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (maxFiles > 1) {\n <p>\n {{ literals?.numberOfFilesAllowed | poI18n: maxFiles }}\n </p>\n}\n\n@if (allowedExtensions) {\n <p>\n {{ literals?.allowedFormats | poI18n: allowedExtensions }}\n </p>\n}\n\n@if (minFileSize || maxFileSize) {\n <p>\n <span>{{ literals?.allowedSizes }}</span>\n @if (minFileSize && maxFileSize) {\n <span>\n {{ literals?.allowedFileSizeRange | poI18n: [minFileSize, maxFileSize] }}\n </span>\n }\n @if (minFileSize && !maxFileSize) {\n <span>\n {{ literals?.minFileSizeAllowed | poI18n: minFileSize }}\n </span>\n }\n @if (maxFileSize && !minFileSize) {\n <span>\n {{ literals?.maxFileSizeAllowed | poI18n: maxFileSize }}\n </span>\n }\n </p>\n}\n" }]
38384
38586
  }], ctorParameters: () => [], propDecorators: { maxFiles: [{
38385
38587
  type: Input,
38386
38588
  args: ['p-max-files']
@@ -38424,6 +38626,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
38424
38626
  * <file name="sample-po-upload-download/sample-po-upload-download.component.html"> </file>
38425
38627
  * <file name="sample-po-upload-download/sample-po-upload-download.component.ts"> </file>
38426
38628
  * </example>
38629
+ *
38630
+ * <example name="po-upload-preview" title="PO Upload - with Preview">
38631
+ * <file name="sample-po-upload-preview/sample-po-upload-preview.component.html"> </file>
38632
+ * <file name="sample-po-upload-preview/sample-po-upload-preview.component.ts"> </file>
38633
+ * </example>
38427
38634
  */
38428
38635
  class PoUploadComponent extends PoUploadBaseComponent {
38429
38636
  renderer = inject(Renderer2);
@@ -38432,6 +38639,7 @@ class PoUploadComponent extends PoUploadBaseComponent {
38432
38639
  inputFile;
38433
38640
  poUploadDragDropComponent;
38434
38641
  uploadButton;
38642
+ modalComponent;
38435
38643
  id = `po-upload[${uuid()}]`;
38436
38644
  infoByUploadStatus = {
38437
38645
  [PoUploadStatus.Uploaded]: {
@@ -38450,6 +38658,12 @@ class PoUploadComponent extends PoUploadBaseComponent {
38450
38658
  [PoUploadStatus.Error]: PoProgressStatus.Error
38451
38659
  };
38452
38660
  calledByCleanInputValue = false;
38661
+ modalPrimaryAction;
38662
+ modalSecondaryAction;
38663
+ errorMessage;
38664
+ tooltipTitle = '';
38665
+ modalImageUrl = '';
38666
+ errorModalImage = false;
38453
38667
  constructor() {
38454
38668
  const uploadService = inject(PoUploadService);
38455
38669
  const languageService = inject(PoLanguageService);
@@ -38482,7 +38696,7 @@ class PoUploadComponent extends PoUploadBaseComponent {
38482
38696
  }
38483
38697
  get hasFileNotUploaded() {
38484
38698
  if (Array.isArray(this.currentFiles)) {
38485
- return this.currentFiles.some(file => file.status !== PoUploadStatus.Uploaded);
38699
+ return this.currentFiles.some(file => file.status !== PoUploadStatus.Uploaded && file.status !== PoUploadStatus.Error);
38486
38700
  }
38487
38701
  return false;
38488
38702
  }
@@ -38501,13 +38715,35 @@ class PoUploadComponent extends PoUploadBaseComponent {
38501
38715
  get maxFiles() {
38502
38716
  return this.isMultiple && this.fileRestrictions && this.fileRestrictions.maxFiles;
38503
38717
  }
38504
- cancel(file) {
38718
+ cancel(file, keydown) {
38719
+ if (this.disabledRemoveFile || (keydown && keydown.code !== 'Enter' && keydown.code !== 'Space'))
38720
+ return;
38505
38721
  if (file.status === PoUploadStatus.Uploading) {
38506
38722
  return this.stopUpload(file);
38507
38723
  }
38508
38724
  this.removeFile(file);
38725
+ if (file.status !== PoUploadStatus.Uploaded) {
38726
+ this.onCancel.emit(file);
38727
+ }
38728
+ else {
38729
+ this.onRemove.emit(file);
38730
+ }
38731
+ }
38732
+ ngOnChanges(changes) {
38733
+ if (changes['customModalActions']) {
38734
+ if (this.customModalActions?.length > 0) {
38735
+ this.modalPrimaryAction = this.customModalActions[0];
38736
+ this.modalSecondaryAction = this.customModalActions[1] || undefined;
38737
+ }
38738
+ else {
38739
+ this.setPrimaryActionModal();
38740
+ }
38741
+ }
38509
38742
  }
38510
38743
  ngAfterViewInit() {
38744
+ if (!this.customModalActions?.length) {
38745
+ this.setPrimaryActionModal();
38746
+ }
38511
38747
  if (this.autoFocus) {
38512
38748
  this.focus();
38513
38749
  }
@@ -38587,9 +38823,30 @@ class PoUploadComponent extends PoUploadBaseComponent {
38587
38823
  this.keydown.emit(event);
38588
38824
  }
38589
38825
  }
38826
+ /**
38827
+ * Método responsável por fechar o modal.
38828
+ */
38829
+ closeModal() {
38830
+ this.errorModalImage = false;
38831
+ this.modalComponent.close();
38832
+ this.modalImageUrl = '';
38833
+ }
38834
+ openModal(file, keydown) {
38835
+ if (keydown && keydown.code !== 'Enter' && keydown.code !== 'Space')
38836
+ return;
38837
+ if (file?.thumbnailUrl && !file.errorMessage) {
38838
+ this.errorModalImage = false;
38839
+ this.modalComponent.open();
38840
+ this.modalImageUrl = file.thumbnailUrl;
38841
+ this.onOpenModalPreview.emit(file);
38842
+ }
38843
+ }
38844
+ // Remove o arquivo passado por parâmetro da lista dos arquivos correntes.
38590
38845
  removeFile(file) {
38591
- const index = this.currentFiles.indexOf(file);
38592
- this.currentFiles.splice(index, 1);
38846
+ const index = this.currentFiles.findIndex(f => f.uid === file.uid);
38847
+ if (index !== -1) {
38848
+ this.currentFiles.splice(index, 1);
38849
+ }
38593
38850
  this.updateModel([...this.currentFiles]);
38594
38851
  }
38595
38852
  /** Método responsável por **abrir** a janela para seleção de arquivo(s). */
@@ -38598,21 +38855,29 @@ class PoUploadComponent extends PoUploadBaseComponent {
38598
38855
  this.calledByCleanInputValue = false;
38599
38856
  this.inputFile.nativeElement.click();
38600
38857
  }
38601
- sendFeedback() {
38602
- if (this.sizeNotAllowed > 0) {
38858
+ sendFeedback(file) {
38859
+ let sizeNotAllowed = this.sizeNotAllowed;
38860
+ let extensionNotAllowed = this.extensionNotAllowed;
38861
+ let quantityNotAllowed = this.quantityNotAllowed;
38862
+ if (file) {
38863
+ sizeNotAllowed = file.sizeNotAllowed ? 1 : undefined;
38864
+ extensionNotAllowed = file.extensionNotAllowed ? 1 : undefined;
38865
+ quantityNotAllowed = undefined;
38866
+ }
38867
+ if (sizeNotAllowed > 0) {
38603
38868
  const minFileSize = formatBytes(this.fileRestrictions.minFileSize);
38604
38869
  const maxFileSize = formatBytes(this.fileRestrictions.maxFileSize);
38605
38870
  const args = [this.sizeNotAllowed, minFileSize || '0', maxFileSize];
38606
- this.setPipeArguments('invalidSize', args);
38871
+ this.setPipeArguments('invalidSize', args, file);
38607
38872
  this.sizeNotAllowed = 0;
38608
38873
  }
38609
- if (this.extensionNotAllowed > 0) {
38874
+ if (extensionNotAllowed > 0) {
38610
38875
  const allowedExtensionsFormatted = this.fileRestrictions.allowedExtensions.join(', ').toUpperCase();
38611
38876
  const args = [this.extensionNotAllowed, allowedExtensionsFormatted];
38612
- this.setPipeArguments('invalidFormat', args);
38877
+ this.setPipeArguments('invalidFormat', args, file);
38613
38878
  this.extensionNotAllowed = 0;
38614
38879
  }
38615
- if (this.quantityNotAllowed > 0) {
38880
+ if (quantityNotAllowed > 0) {
38616
38881
  const args = [this.quantityNotAllowed];
38617
38882
  this.setPipeArguments('invalidAmount', args);
38618
38883
  this.quantityNotAllowed = 0;
@@ -38686,7 +38951,9 @@ class PoUploadComponent extends PoUploadBaseComponent {
38686
38951
  return file.uid;
38687
38952
  }
38688
38953
  uploadFiles(files) {
38689
- const filesFiltered = files.filter(file => file.status !== PoUploadStatus.Uploaded);
38954
+ const filesFiltered = files.filter(file => file.status !== PoUploadStatus.Uploaded && !file.sizeNotAllowed && !file.extensionNotAllowed);
38955
+ if (files.length === 0)
38956
+ return;
38690
38957
  this.uploadService.upload(this.url, filesFiltered, this.headers, this.onUpload, (file, percent) => {
38691
38958
  // UPLOADING
38692
38959
  this.uploadingHandler(file, percent);
@@ -38694,6 +38961,14 @@ class PoUploadComponent extends PoUploadBaseComponent {
38694
38961
  // SUCCESS
38695
38962
  this.responseHandler(file, PoUploadStatus.Uploaded);
38696
38963
  this.onSuccess.emit(eventResponse);
38964
+ // esconde o status de sucesso após 500ms
38965
+ setTimeout(() => {
38966
+ const currentFile = this.currentFiles.find(f => f.uid === file.uid);
38967
+ if (currentFile) {
38968
+ currentFile.hideDoneContent = true;
38969
+ this.cd.detectChanges();
38970
+ }
38971
+ }, 500);
38697
38972
  }, (file, eventError) => {
38698
38973
  // Error
38699
38974
  this.responseHandler(file, PoUploadStatus.Error);
@@ -38708,6 +38983,33 @@ class PoUploadComponent extends PoUploadBaseComponent {
38708
38983
  setHelper(label, additionalHelpTooltip) {
38709
38984
  return setHelperSettings(label, additionalHelpTooltip, this.poHelperComponent(), this.size, this.isAdditionalHelpEventTriggered() ? this.additionalHelp : undefined);
38710
38985
  }
38986
+ actionIsDisabled(action) {
38987
+ return isTypeof(action.disabled, 'function') ? action.disabled(action) : action.disabled;
38988
+ }
38989
+ isActionVisible(action) {
38990
+ if (!action || (!action.label && !action.icon)) {
38991
+ return false;
38992
+ }
38993
+ if (action.visible === undefined) {
38994
+ return true;
38995
+ }
38996
+ if (isTypeof(action.visible, 'function')) {
38997
+ return action.visible();
38998
+ }
38999
+ return !!action.visible;
39000
+ }
39001
+ onImageError(file) {
39002
+ file.imageError = true;
39003
+ }
39004
+ showTooltipText(e, text) {
39005
+ const element = e.target;
39006
+ if (element.offsetWidth < element.scrollWidth) {
39007
+ this.tooltipTitle = text;
39008
+ }
39009
+ else {
39010
+ this.tooltipTitle = undefined;
39011
+ }
39012
+ }
38711
39013
  cleanInputValue() {
38712
39014
  this.calledByCleanInputValue = true;
38713
39015
  this.inputFile.nativeElement.value = '';
@@ -38725,10 +39027,25 @@ class PoUploadComponent extends PoUploadBaseComponent {
38725
39027
  file.percent = 100;
38726
39028
  this.cd.markForCheck();
38727
39029
  }
38728
- setPipeArguments(literalAttributes, literalArguments) {
39030
+ // método responsável por setar os argumentos do i18nPipe de acordo com a restrição.
39031
+ setPipeArguments(literalAttributes, literalArguments, file) {
38729
39032
  const pipeArguments = this.i18nPipe.transform(this.literals[literalAttributes], literalArguments);
38730
- this.notification.information(pipeArguments);
39033
+ this.errorMessage = pipeArguments;
39034
+ if (literalAttributes === 'invalidAmount') {
39035
+ this.notification.information(pipeArguments);
39036
+ }
39037
+ if (file) {
39038
+ file.errorMessage = pipeArguments;
39039
+ }
39040
+ }
39041
+ setPrimaryActionModal() {
39042
+ this.modalPrimaryAction = {
39043
+ label: this.literals.continue,
39044
+ action: this.closeModal.bind(this)
39045
+ };
39046
+ this.modalSecondaryAction = undefined;
38731
39047
  }
39048
+ // Função disparada ao parar um envio de arquivo.
38732
39049
  stopUploadHandler(file) {
38733
39050
  file.status = PoUploadStatus.None;
38734
39051
  file.percent = 0;
@@ -38753,6 +39070,7 @@ class PoUploadComponent extends PoUploadBaseComponent {
38753
39070
  mapCleanUploadFiles(files) {
38754
39071
  const mapedByUploadFile = progressFile => {
38755
39072
  const { percent, displayName, ...uploadFile } = progressFile;
39073
+ delete uploadFile.thumbnailUrl;
38756
39074
  return uploadFile;
38757
39075
  };
38758
39076
  return files.map(mapedByUploadFile);
@@ -38771,7 +39089,7 @@ class PoUploadComponent extends PoUploadBaseComponent {
38771
39089
  useExisting: forwardRef(() => PoUploadComponent),
38772
39090
  multi: true
38773
39091
  }
38774
- ], viewQueries: [{ propertyName: "inputFile", first: true, predicate: ["inputFile"], descendants: true, read: ElementRef, static: true }, { propertyName: "poUploadDragDropComponent", first: true, predicate: PoUploadDragDropComponent, descendants: true }, { propertyName: "uploadButton", first: true, predicate: ["uploadButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<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-show-helper]=\"displayAdditionalHelp\"\n [p-helper]=\"setHelper(this.label, this.additionalHelpTooltip).helperSettings\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content\">\n <div class=\"po-upload\">\n <input\n #inputFile\n class=\"po-upload-input\"\n type=\"file\"\n [accept]=\"allowedExtensions\"\n [attr.name]=\"name\"\n [id]=\"id\"\n [disabled]=\"isDisabled\"\n [multiple]=\"isMultiple\"\n [required]=\"required\"\n (change)=\"onFileChange($event)\"\n />\n\n @if (displayDragDrop) {\n <po-upload-drag-drop\n [p-directory-compatible]=\"canHandleDirectory\"\n [p-disabled]=\"isDisabled\"\n [p-drag-drop-height]=\"dragDropHeight\"\n [p-literals]=\"literals\"\n (p-file-change)=\"onFileChangeDragDrop($event)\"\n (p-select-files)=\"selectFiles()\"\n >\n </po-upload-drag-drop>\n }\n\n @if (!hideSelectButton && !displayDragDrop) {\n <po-button\n #uploadButton\n class=\"po-upload-button\"\n for=\"file\"\n [p-disabled]=\"isDisabled\"\n [p-label]=\"selectFileButtonLabel\"\n [p-size]=\"size\"\n (p-blur)=\"onBlur()\"\n (p-click)=\"selectFiles()\"\n (keydown)=\"onKeyDown($event)\"\n >\n </po-button>\n }\n\n @if (fileRestrictions && !hideRestrictionsInfo) {\n <po-upload-file-restrictions\n class=\"po-upload-file-restrictions\"\n [ngClass]=\"{ 'po-upload-file-restrictions-drag-drop': displayDragDrop }\"\n [p-allowed-extensions]=\"fileRestrictions?.allowedExtensions\"\n [p-max-files]=\"maxFiles\"\n [p-max-file-size]=\"fileRestrictions?.maxFileSize\"\n [p-min-file-size]=\"fileRestrictions?.minFileSize\"\n >\n </po-upload-file-restrictions>\n }\n\n @if (currentFiles && currentFiles.length) {\n <div class=\"po-upload-progress-container\">\n <po-container\n [p-height]=\"hasMoreThanFourItems ? 280 : 'auto'\"\n [p-no-border]=\"!hasMoreThanFourItems\"\n [p-no-padding]=\"!hasMoreThanFourItems\"\n >\n <div [ngClass]=\"{ 'po-upload-progress-container-area po-pt-2 po-pl-1': hasMoreThanFourItems }\">\n @for (file of currentFiles; track trackByFn($index, file)) {\n <po-progress\n [p-disabled-cancel]=\"disabledRemoveFile\"\n [p-info]=\"infoByUploadStatus[file.status]?.text(file.percent)\"\n [p-info-icon]=\"infoByUploadStatus[file.status]?.icon\"\n [p-status]=\"progressStatusByFileStatus[file.status]\"\n [p-text]=\"file.displayName\"\n [p-value]=\"file.percent\"\n [p-custom-action]=\"customAction\"\n (p-custom-action-click)=\"customClick(file)\"\n (p-cancel)=\"cancel(file)\"\n (p-retry)=\"uploadFiles([file])\"\n [p-size-actions]=\"size\"\n >\n </po-progress>\n }\n </div>\n </po-container>\n </div>\n }\n\n @if (displaySendButton) {\n <po-button\n class=\"po-upload-send-button\"\n [class.po-mt-3]=\"hasMoreThanFourItems\"\n p-kind=\"primary\"\n [p-disabled]=\"hasAnyFileUploading(currentFiles)\"\n [p-label]=\"literals.startSending\"\n [p-size]=\"size\"\n (p-click)=\"uploadFiles(currentFiles)\"\n ></po-button>\n }\n </div>\n </div>\n <po-field-container-bottom\n [p-additional-help-tooltip]=\"getAdditionalHelpTooltip()\"\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-hide-additional-help-by-label]=\"setHelper(this.label, this.additionalHelpTooltip).hideAdditionalHelp\"\n [p-show-additional-help]=\"displayAdditionalHelp\"\n [p-show-additional-help-icon]=\"showAdditionalHelpIcon()\"\n (p-additional-help)=\"emitAdditionalHelp()\"\n ></po-field-container-bottom>\n</po-field-container>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PoButtonComponent, selector: "po-button" }, { kind: "component", type: PoContainerComponent, selector: "po-container" }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-additional-help-tooltip", "p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-show-additional-help", "p-show-additional-help-icon", "p-hide-additional-help-by-label"], outputs: ["p-additional-help"] }, { 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"] }, { kind: "component", type: PoProgressComponent, selector: "po-progress" }, { kind: "component", type: PoUploadDragDropComponent, selector: "po-upload-drag-drop", inputs: ["p-directory-compatible", "p-disabled", "p-literals", "p-drag-drop-height"], outputs: ["p-file-change", "p-select-files"] }, { kind: "component", type: PoUploadFileRestrictionsComponent, selector: "po-upload-file-restrictions", inputs: ["p-max-files", "p-allowed-extensions", "p-max-file-size", "p-min-file-size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
39092
+ ], viewQueries: [{ propertyName: "inputFile", first: true, predicate: ["inputFile"], descendants: true, read: ElementRef, static: true }, { propertyName: "poUploadDragDropComponent", first: true, predicate: PoUploadDragDropComponent, descendants: true }, { propertyName: "uploadButton", first: true, predicate: ["uploadButton"], descendants: true }, { propertyName: "modalComponent", first: true, predicate: ["modal"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<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-show-helper]=\"displayAdditionalHelp\"\n [p-helper]=\"setHelper(this.label, this.additionalHelpTooltip).helperSettings\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content\">\n <div class=\"po-upload\">\n <input\n #inputFile\n class=\"po-upload-input\"\n type=\"file\"\n [accept]=\"allowedExtensions\"\n [attr.name]=\"name\"\n [id]=\"id\"\n [disabled]=\"isDisabled\"\n [multiple]=\"isMultiple\"\n [required]=\"required\"\n (change)=\"onFileChange($event)\"\n />\n\n @if (displayDragDrop) {\n <po-upload-drag-drop\n [p-directory-compatible]=\"canHandleDirectory\"\n [p-disabled]=\"isDisabled\"\n [p-drag-drop-height]=\"dragDropHeight\"\n [p-literals]=\"literals\"\n (p-file-change)=\"onFileChangeDragDrop($event)\"\n (p-select-files)=\"selectFiles()\"\n >\n </po-upload-drag-drop>\n }\n\n @if (fileRestrictions && !hideRestrictionsInfo) {\n <po-upload-file-restrictions\n class=\"po-upload-file-restrictions\"\n [ngClass]=\"{ 'po-upload-file-restrictions-drag-drop': displayDragDrop }\"\n [class.po-pb-1]=\"!displayDragDrop\"\n [p-allowed-extensions]=\"fileRestrictions?.allowedExtensions\"\n [p-max-files]=\"maxFiles\"\n [p-max-file-size]=\"fileRestrictions?.maxFileSize\"\n [p-min-file-size]=\"fileRestrictions?.minFileSize\"\n >\n </po-upload-file-restrictions>\n }\n\n @if (!hideSelectButton && !displayDragDrop) {\n <po-button\n #uploadButton\n class=\"po-upload-button\"\n for=\"file\"\n [p-disabled]=\"isDisabled\"\n [p-label]=\"selectFileButtonLabel\"\n [p-size]=\"size\"\n (p-blur)=\"onBlur()\"\n (p-click)=\"selectFiles()\"\n (keydown)=\"onKeyDown($event)\"\n >\n </po-button>\n }\n\n @if (currentFiles && currentFiles.length) {\n <div class=\"po-upload-files-content\">\n @for (file of currentFiles; track trackByFn($index, file)) {\n <div\n class=\"po-upload-progress-container\"\n [class.po-upload-container-error]=\"file.status === 2\"\n [class.po-upload-progress-container-aa]=\"size === 'small'\"\n [class.po-upload-status-uploaded]=\"file.hideDoneContent\"\n >\n <po-container>\n <div\n [ngClass]=\"showThumbnail && file.thumbnailUrl ? 'po-upload-content-thumbnail' : 'po-upload-content'\"\n class=\"po-upload-content\"\n >\n <div class=\"po-upload-file-name\" [class.po-upload-file-name-aa]=\"size === 'small'\">\n <div class=\"po-upload-file-name-display\">\n @if (showThumbnail && file.thumbnailUrl) {\n <div class=\"po-upload-thumbnail\" (click)=\"openModal(file)\" (keydown)=\"openModal(file, $event)\">\n @if (!file.imageError) {\n <div class=\"po-upload-thumbnail-icon\">\n <po-icon p-icon=\"ICON_PICTURE\"></po-icon>\n </div>\n <img\n class=\"po-upload-thumbnail-img\"\n [src]=\"file.thumbnailUrl\"\n [alt]=\"literals.thumbnail\"\n (error)=\"onImageError(file)\"\n />\n } @else {\n <div class=\"po-upload-thumbnail-broken\">\n <po-icon p-icon=\"ICON_PICTURE_BROKEN\"></po-icon>\n </div>\n }\n </div>\n }\n <span\n class=\"po-upload-display-name\"\n [class.po-upload-name-interactive]=\"showThumbnail && file.thumbnailUrl\"\n [p-tooltip]=\"tooltipTitle\"\n (keydown)=\"openModal(file, $event)\"\n (click)=\"openModal(file)\"\n (mouseover)=\"showTooltipText($event, file?.displayName)\"\n (focus)=\"showTooltipText($event, file?.displayName)\"\n >{{ file.displayName }}</span\n >\n </div>\n <div class=\"po-upload-buttons-content\">\n @if (isActionVisible(customAction)) {\n <po-button\n class=\"po-upload-custom-action-button\"\n [p-danger]=\"customAction.type === 'danger'\"\n [p-disabled]=\"actionIsDisabled(customAction)\"\n [p-label]=\"customAction.label || ''\"\n [p-icon]=\"customAction.icon\"\n [p-size]=\"size\"\n (p-click)=\"customClick(file)\"\n >\n </po-button>\n }\n @if (file.status !== 0 || onRemove?.observers?.length > 0) {\n <div\n class=\"po-upload-icon-focus\"\n [class.po-upload-cancel-disabled]=\"disabledRemoveFile\"\n [class.po-upload-icon-focus-aa]=\"size === 'small'\"\n [attr.aria-label]=\"literals.close\"\n [tabindex]=\"disabledRemoveFile ? -1 : 0\"\n (keydown)=\"cancel(file, $event)\"\n (click)=\"cancel(file)\"\n >\n <po-icon\n class=\"po-upload-icon-close\"\n [class.po-upload-icon-remove]=\"file.status === 0\"\n [p-icon]=\"file.status === 0 ? 'ICON_DELETE' : 'ICON_CLOSE'\"\n >\n </po-icon>\n </div>\n }\n </div>\n </div>\n @if (!file.hideDoneContent) {\n <div class=\"po-upload-info-bar\" [class.fade-out]=\"file.status === 0\">\n @if (file.status === 0) {\n <span> {{ literals.doneText }} </span>\n } @else if (file.status === 2) {\n <div class=\"po-upload-content-error\">\n <po-icon class=\"po-upload-icon-error\" p-icon=\"ICON_EXCLAMATION\"></po-icon\n ><span class=\"po-upload-content-error-text\">\n {{ file?.errorMessage || literals?.errorOccurred }}\n </span>\n @if (!file.errorMessage) {\n <po-link\n class=\"po-upload-retry-link\"\n [p-label]=\"literals.tryAgain\"\n (p-action)=\"uploadFiles([file])\"\n ></po-link>\n }\n </div>\n } @else if (file.status === 1) {\n <span>{{ literals.uploadingText }}</span>\n } @else if (file.status === 3) {\n <span>{{ literals.startSending }}</span>\n }\n @if (file.status !== 2) {\n <span class=\"po-upload-value-percent\">{{ file.percent || 0 }}%</span>\n }\n </div>\n }\n </div>\n @if (file.status !== 2 && !file.hideDoneContent) {\n <po-progress\n [class.fade-out]=\"file.status === 0\"\n class=\"po-upload-progress\"\n p-size=\"medium\"\n [p-disabled-cancel]=\"disabledRemoveFile\"\n [p-value]=\"file.percent\"\n [p-status]=\"progressStatusByFileStatus[file.status]\"\n [p-size-actions]=\"size\"\n >\n </po-progress>\n }\n </po-container>\n </div>\n }\n </div>\n }\n\n @if (displaySendButton) {\n <po-button\n class=\"po-upload-send-button\"\n [class.po-mt-3]=\"hasMoreThanFourItems\"\n p-kind=\"primary\"\n [p-disabled]=\"hasAnyFileUploading(currentFiles)\"\n [p-label]=\"literals.startSending\"\n [p-size]=\"size\"\n (p-click)=\"uploadFiles(currentFiles)\"\n ></po-button>\n }\n </div>\n </div>\n <po-field-container-bottom\n [p-additional-help-tooltip]=\"getAdditionalHelpTooltip()\"\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-hide-additional-help-by-label]=\"setHelper(this.label, this.additionalHelpTooltip).hideAdditionalHelp\"\n [p-show-additional-help]=\"displayAdditionalHelp\"\n [p-show-additional-help-icon]=\"showAdditionalHelpIcon()\"\n (p-additional-help)=\"emitAdditionalHelp()\"\n ></po-field-container-bottom>\n</po-field-container>\n\n<po-modal\n #modal\n [p-components-size]=\"size\"\n [p-primary-action]=\"modalPrimaryAction\"\n [p-secondary-action]=\"modalSecondaryAction\"\n [p-title]=\"literals.preview\"\n [p-click-out]=\"true\"\n (p-close)=\"closeModal.bind(this)\"\n>\n @if (!errorModalImage) {\n <img [src]=\"modalImageUrl\" [alt]=\"literals.thumbnail\" (error)=\"errorModalImage = true\" />\n } @else {\n <div class=\"po-upload-thumbnail-broken\">\n <po-icon p-icon=\"ICON_PICTURE_BROKEN\"></po-icon>\n </div>\n }\n</po-modal>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PoButtonComponent, selector: "po-button" }, { kind: "component", type: PoContainerComponent, selector: "po-container" }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-additional-help-tooltip", "p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-show-additional-help", "p-show-additional-help-icon", "p-hide-additional-help-by-label"], outputs: ["p-additional-help"] }, { 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"] }, { kind: "component", type: PoModalComponent, selector: "po-modal" }, { kind: "component", type: PoProgressComponent, selector: "po-progress" }, { kind: "directive", type: PoTooltipDirective, selector: "[p-tooltip]" }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoLinkComponent, selector: "po-link" }, { kind: "component", type: PoUploadDragDropComponent, selector: "po-upload-drag-drop", inputs: ["p-directory-compatible", "p-disabled", "p-literals", "p-drag-drop-height"], outputs: ["p-file-change", "p-select-files"] }, { kind: "component", type: PoUploadFileRestrictionsComponent, selector: "po-upload-file-restrictions", inputs: ["p-max-files", "p-allowed-extensions", "p-max-file-size", "p-min-file-size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
38775
39093
  }
38776
39094
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoUploadComponent, decorators: [{
38777
39095
  type: Component,
@@ -38788,7 +39106,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
38788
39106
  useExisting: forwardRef(() => PoUploadComponent),
38789
39107
  multi: true
38790
39108
  }
38791
- ], standalone: false, template: "<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-show-helper]=\"displayAdditionalHelp\"\n [p-helper]=\"setHelper(this.label, this.additionalHelpTooltip).helperSettings\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content\">\n <div class=\"po-upload\">\n <input\n #inputFile\n class=\"po-upload-input\"\n type=\"file\"\n [accept]=\"allowedExtensions\"\n [attr.name]=\"name\"\n [id]=\"id\"\n [disabled]=\"isDisabled\"\n [multiple]=\"isMultiple\"\n [required]=\"required\"\n (change)=\"onFileChange($event)\"\n />\n\n @if (displayDragDrop) {\n <po-upload-drag-drop\n [p-directory-compatible]=\"canHandleDirectory\"\n [p-disabled]=\"isDisabled\"\n [p-drag-drop-height]=\"dragDropHeight\"\n [p-literals]=\"literals\"\n (p-file-change)=\"onFileChangeDragDrop($event)\"\n (p-select-files)=\"selectFiles()\"\n >\n </po-upload-drag-drop>\n }\n\n @if (!hideSelectButton && !displayDragDrop) {\n <po-button\n #uploadButton\n class=\"po-upload-button\"\n for=\"file\"\n [p-disabled]=\"isDisabled\"\n [p-label]=\"selectFileButtonLabel\"\n [p-size]=\"size\"\n (p-blur)=\"onBlur()\"\n (p-click)=\"selectFiles()\"\n (keydown)=\"onKeyDown($event)\"\n >\n </po-button>\n }\n\n @if (fileRestrictions && !hideRestrictionsInfo) {\n <po-upload-file-restrictions\n class=\"po-upload-file-restrictions\"\n [ngClass]=\"{ 'po-upload-file-restrictions-drag-drop': displayDragDrop }\"\n [p-allowed-extensions]=\"fileRestrictions?.allowedExtensions\"\n [p-max-files]=\"maxFiles\"\n [p-max-file-size]=\"fileRestrictions?.maxFileSize\"\n [p-min-file-size]=\"fileRestrictions?.minFileSize\"\n >\n </po-upload-file-restrictions>\n }\n\n @if (currentFiles && currentFiles.length) {\n <div class=\"po-upload-progress-container\">\n <po-container\n [p-height]=\"hasMoreThanFourItems ? 280 : 'auto'\"\n [p-no-border]=\"!hasMoreThanFourItems\"\n [p-no-padding]=\"!hasMoreThanFourItems\"\n >\n <div [ngClass]=\"{ 'po-upload-progress-container-area po-pt-2 po-pl-1': hasMoreThanFourItems }\">\n @for (file of currentFiles; track trackByFn($index, file)) {\n <po-progress\n [p-disabled-cancel]=\"disabledRemoveFile\"\n [p-info]=\"infoByUploadStatus[file.status]?.text(file.percent)\"\n [p-info-icon]=\"infoByUploadStatus[file.status]?.icon\"\n [p-status]=\"progressStatusByFileStatus[file.status]\"\n [p-text]=\"file.displayName\"\n [p-value]=\"file.percent\"\n [p-custom-action]=\"customAction\"\n (p-custom-action-click)=\"customClick(file)\"\n (p-cancel)=\"cancel(file)\"\n (p-retry)=\"uploadFiles([file])\"\n [p-size-actions]=\"size\"\n >\n </po-progress>\n }\n </div>\n </po-container>\n </div>\n }\n\n @if (displaySendButton) {\n <po-button\n class=\"po-upload-send-button\"\n [class.po-mt-3]=\"hasMoreThanFourItems\"\n p-kind=\"primary\"\n [p-disabled]=\"hasAnyFileUploading(currentFiles)\"\n [p-label]=\"literals.startSending\"\n [p-size]=\"size\"\n (p-click)=\"uploadFiles(currentFiles)\"\n ></po-button>\n }\n </div>\n </div>\n <po-field-container-bottom\n [p-additional-help-tooltip]=\"getAdditionalHelpTooltip()\"\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-hide-additional-help-by-label]=\"setHelper(this.label, this.additionalHelpTooltip).hideAdditionalHelp\"\n [p-show-additional-help]=\"displayAdditionalHelp\"\n [p-show-additional-help-icon]=\"showAdditionalHelpIcon()\"\n (p-additional-help)=\"emitAdditionalHelp()\"\n ></po-field-container-bottom>\n</po-field-container>\n" }]
39109
+ ], standalone: false, template: "<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-show-helper]=\"displayAdditionalHelp\"\n [p-helper]=\"setHelper(this.label, this.additionalHelpTooltip).helperSettings\"\n [p-text-wrap]=\"labelTextWrap()\"\n>\n <div class=\"po-field-container-content\">\n <div class=\"po-upload\">\n <input\n #inputFile\n class=\"po-upload-input\"\n type=\"file\"\n [accept]=\"allowedExtensions\"\n [attr.name]=\"name\"\n [id]=\"id\"\n [disabled]=\"isDisabled\"\n [multiple]=\"isMultiple\"\n [required]=\"required\"\n (change)=\"onFileChange($event)\"\n />\n\n @if (displayDragDrop) {\n <po-upload-drag-drop\n [p-directory-compatible]=\"canHandleDirectory\"\n [p-disabled]=\"isDisabled\"\n [p-drag-drop-height]=\"dragDropHeight\"\n [p-literals]=\"literals\"\n (p-file-change)=\"onFileChangeDragDrop($event)\"\n (p-select-files)=\"selectFiles()\"\n >\n </po-upload-drag-drop>\n }\n\n @if (fileRestrictions && !hideRestrictionsInfo) {\n <po-upload-file-restrictions\n class=\"po-upload-file-restrictions\"\n [ngClass]=\"{ 'po-upload-file-restrictions-drag-drop': displayDragDrop }\"\n [class.po-pb-1]=\"!displayDragDrop\"\n [p-allowed-extensions]=\"fileRestrictions?.allowedExtensions\"\n [p-max-files]=\"maxFiles\"\n [p-max-file-size]=\"fileRestrictions?.maxFileSize\"\n [p-min-file-size]=\"fileRestrictions?.minFileSize\"\n >\n </po-upload-file-restrictions>\n }\n\n @if (!hideSelectButton && !displayDragDrop) {\n <po-button\n #uploadButton\n class=\"po-upload-button\"\n for=\"file\"\n [p-disabled]=\"isDisabled\"\n [p-label]=\"selectFileButtonLabel\"\n [p-size]=\"size\"\n (p-blur)=\"onBlur()\"\n (p-click)=\"selectFiles()\"\n (keydown)=\"onKeyDown($event)\"\n >\n </po-button>\n }\n\n @if (currentFiles && currentFiles.length) {\n <div class=\"po-upload-files-content\">\n @for (file of currentFiles; track trackByFn($index, file)) {\n <div\n class=\"po-upload-progress-container\"\n [class.po-upload-container-error]=\"file.status === 2\"\n [class.po-upload-progress-container-aa]=\"size === 'small'\"\n [class.po-upload-status-uploaded]=\"file.hideDoneContent\"\n >\n <po-container>\n <div\n [ngClass]=\"showThumbnail && file.thumbnailUrl ? 'po-upload-content-thumbnail' : 'po-upload-content'\"\n class=\"po-upload-content\"\n >\n <div class=\"po-upload-file-name\" [class.po-upload-file-name-aa]=\"size === 'small'\">\n <div class=\"po-upload-file-name-display\">\n @if (showThumbnail && file.thumbnailUrl) {\n <div class=\"po-upload-thumbnail\" (click)=\"openModal(file)\" (keydown)=\"openModal(file, $event)\">\n @if (!file.imageError) {\n <div class=\"po-upload-thumbnail-icon\">\n <po-icon p-icon=\"ICON_PICTURE\"></po-icon>\n </div>\n <img\n class=\"po-upload-thumbnail-img\"\n [src]=\"file.thumbnailUrl\"\n [alt]=\"literals.thumbnail\"\n (error)=\"onImageError(file)\"\n />\n } @else {\n <div class=\"po-upload-thumbnail-broken\">\n <po-icon p-icon=\"ICON_PICTURE_BROKEN\"></po-icon>\n </div>\n }\n </div>\n }\n <span\n class=\"po-upload-display-name\"\n [class.po-upload-name-interactive]=\"showThumbnail && file.thumbnailUrl\"\n [p-tooltip]=\"tooltipTitle\"\n (keydown)=\"openModal(file, $event)\"\n (click)=\"openModal(file)\"\n (mouseover)=\"showTooltipText($event, file?.displayName)\"\n (focus)=\"showTooltipText($event, file?.displayName)\"\n >{{ file.displayName }}</span\n >\n </div>\n <div class=\"po-upload-buttons-content\">\n @if (isActionVisible(customAction)) {\n <po-button\n class=\"po-upload-custom-action-button\"\n [p-danger]=\"customAction.type === 'danger'\"\n [p-disabled]=\"actionIsDisabled(customAction)\"\n [p-label]=\"customAction.label || ''\"\n [p-icon]=\"customAction.icon\"\n [p-size]=\"size\"\n (p-click)=\"customClick(file)\"\n >\n </po-button>\n }\n @if (file.status !== 0 || onRemove?.observers?.length > 0) {\n <div\n class=\"po-upload-icon-focus\"\n [class.po-upload-cancel-disabled]=\"disabledRemoveFile\"\n [class.po-upload-icon-focus-aa]=\"size === 'small'\"\n [attr.aria-label]=\"literals.close\"\n [tabindex]=\"disabledRemoveFile ? -1 : 0\"\n (keydown)=\"cancel(file, $event)\"\n (click)=\"cancel(file)\"\n >\n <po-icon\n class=\"po-upload-icon-close\"\n [class.po-upload-icon-remove]=\"file.status === 0\"\n [p-icon]=\"file.status === 0 ? 'ICON_DELETE' : 'ICON_CLOSE'\"\n >\n </po-icon>\n </div>\n }\n </div>\n </div>\n @if (!file.hideDoneContent) {\n <div class=\"po-upload-info-bar\" [class.fade-out]=\"file.status === 0\">\n @if (file.status === 0) {\n <span> {{ literals.doneText }} </span>\n } @else if (file.status === 2) {\n <div class=\"po-upload-content-error\">\n <po-icon class=\"po-upload-icon-error\" p-icon=\"ICON_EXCLAMATION\"></po-icon\n ><span class=\"po-upload-content-error-text\">\n {{ file?.errorMessage || literals?.errorOccurred }}\n </span>\n @if (!file.errorMessage) {\n <po-link\n class=\"po-upload-retry-link\"\n [p-label]=\"literals.tryAgain\"\n (p-action)=\"uploadFiles([file])\"\n ></po-link>\n }\n </div>\n } @else if (file.status === 1) {\n <span>{{ literals.uploadingText }}</span>\n } @else if (file.status === 3) {\n <span>{{ literals.startSending }}</span>\n }\n @if (file.status !== 2) {\n <span class=\"po-upload-value-percent\">{{ file.percent || 0 }}%</span>\n }\n </div>\n }\n </div>\n @if (file.status !== 2 && !file.hideDoneContent) {\n <po-progress\n [class.fade-out]=\"file.status === 0\"\n class=\"po-upload-progress\"\n p-size=\"medium\"\n [p-disabled-cancel]=\"disabledRemoveFile\"\n [p-value]=\"file.percent\"\n [p-status]=\"progressStatusByFileStatus[file.status]\"\n [p-size-actions]=\"size\"\n >\n </po-progress>\n }\n </po-container>\n </div>\n }\n </div>\n }\n\n @if (displaySendButton) {\n <po-button\n class=\"po-upload-send-button\"\n [class.po-mt-3]=\"hasMoreThanFourItems\"\n p-kind=\"primary\"\n [p-disabled]=\"hasAnyFileUploading(currentFiles)\"\n [p-label]=\"literals.startSending\"\n [p-size]=\"size\"\n (p-click)=\"uploadFiles(currentFiles)\"\n ></po-button>\n }\n </div>\n </div>\n <po-field-container-bottom\n [p-additional-help-tooltip]=\"getAdditionalHelpTooltip()\"\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-hide-additional-help-by-label]=\"setHelper(this.label, this.additionalHelpTooltip).hideAdditionalHelp\"\n [p-show-additional-help]=\"displayAdditionalHelp\"\n [p-show-additional-help-icon]=\"showAdditionalHelpIcon()\"\n (p-additional-help)=\"emitAdditionalHelp()\"\n ></po-field-container-bottom>\n</po-field-container>\n\n<po-modal\n #modal\n [p-components-size]=\"size\"\n [p-primary-action]=\"modalPrimaryAction\"\n [p-secondary-action]=\"modalSecondaryAction\"\n [p-title]=\"literals.preview\"\n [p-click-out]=\"true\"\n (p-close)=\"closeModal.bind(this)\"\n>\n @if (!errorModalImage) {\n <img [src]=\"modalImageUrl\" [alt]=\"literals.thumbnail\" (error)=\"errorModalImage = true\" />\n } @else {\n <div class=\"po-upload-thumbnail-broken\">\n <po-icon p-icon=\"ICON_PICTURE_BROKEN\"></po-icon>\n </div>\n }\n</po-modal>\n" }]
38792
39110
  }], ctorParameters: () => [], propDecorators: { inputFile: [{
38793
39111
  type: ViewChild,
38794
39112
  args: ['inputFile', { read: ElementRef, static: true }]
@@ -38798,6 +39116,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
38798
39116
  }], uploadButton: [{
38799
39117
  type: ViewChild,
38800
39118
  args: ['uploadButton']
39119
+ }], modalComponent: [{
39120
+ type: ViewChild,
39121
+ args: ['modal']
38801
39122
  }] } });
38802
39123
 
38803
39124
  /**
@@ -40004,11 +40325,13 @@ class PoSelectComponent extends PoFieldValidateModel {
40004
40325
  }
40005
40326
  }
40006
40327
  ngAfterViewInit() {
40007
- setTimeout(() => {
40008
- if (this.selectElement?.nativeElement?.classList?.contains('enable-append-box')) {
40009
- this.appendBox = true;
40010
- }
40011
- }, 300);
40328
+ if (this.selectElement?.nativeElement?.closest('.components-form-custom-template')) {
40329
+ setTimeout(() => {
40330
+ if (this.selectElement?.nativeElement?.classList?.contains('enable-append-box')) {
40331
+ this.appendBox = true;
40332
+ }
40333
+ }, 300);
40334
+ }
40012
40335
  }
40013
40336
  /**
40014
40337
  * Função que atribui foco ao componente.
@@ -41199,6 +41522,7 @@ class PoFieldModule {
41199
41522
  PoCheckboxModule,
41200
41523
  PoRadioModule,
41201
41524
  PoLabelModule,
41525
+ PoLinkModule,
41202
41526
  PoListBoxModule,
41203
41527
  PoSwitchModule,
41204
41528
  PoTagModule,
@@ -41257,6 +41581,7 @@ class PoFieldModule {
41257
41581
  PoCheckboxModule,
41258
41582
  PoRadioModule,
41259
41583
  PoLabelModule,
41584
+ PoLinkModule,
41260
41585
  PoListBoxModule,
41261
41586
  PoSwitchModule,
41262
41587
  PoTagModule,
@@ -41302,6 +41627,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
41302
41627
  PoCheckboxModule,
41303
41628
  PoRadioModule,
41304
41629
  PoLabelModule,
41630
+ PoLinkModule,
41305
41631
  PoListBoxModule,
41306
41632
  PoSwitchModule,
41307
41633
  PoTagModule,
@@ -42533,11 +42859,11 @@ class PoDynamicFormFieldsComponent extends PoDynamicFormFieldsBaseComponent {
42533
42859
  }
42534
42860
  }
42535
42861
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoDynamicFormFieldsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
42536
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", 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-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-iso-format]=\"field.isoFormat\"\n [p-label]=\"field.label\"\n [p-locale]=\"field.locale\"\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-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-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, '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-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\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-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-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, '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-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-label]=\"field.label\"\n [p-mask-format-model]=\"field.maskFormatModel\"\n [p-mask]=\"field.mask\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-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-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-label]=\"field.label\"\n [p-min]=\"field.minValue\"\n [p-max]=\"field.maxValue\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-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-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-thousand-maxlength]=\"field.thousandMaxlength\"\n [p-icon]=\"field.icon\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-locale]=\"field.locale\"\n [p-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-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-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-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-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-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-label]=\"field.label\"\n [p-label-off]=\"field.booleanFalse\"\n [p-label-on]=\"field.booleanTrue\"\n [p-label-position]=\"field.labelPosition\"\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-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\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-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-infinite-scroll]=\"field.infiniteScroll\"\n [p-infinite-scroll-distance]=\"field.infiniteScrollDistance || 100\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\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-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-field-format]=\"field.format\"\n [p-infinite-scroll]=\"field.infiniteScroll\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\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-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-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-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-auto-height]=\"field.autoHeight\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\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-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-optional]=\"field.optional\"\n [p-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-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-hide-password-peek]=\"field.hidePasswordPeek\"\n [p-icon]=\"field.icon\"\n [p-label]=\"field.label\"\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-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-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 [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-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: PoRadioGroupComponent, selector: "po-radio-group", inputs: ["p-label", "p-help"] }, { kind: "component", type: PoDatepickerComponent, selector: "po-datepicker", inputs: ["p-label", "p-help"] }, { kind: "component", type: PoComboComponent, selector: "po-combo" }, { kind: "component", type: PoDecimalComponent, selector: "po-decimal", inputs: ["p-decimals-length", "p-thousand-maxlength", "p-locale", "p-min", "p-max"] }, { kind: "component", type: PoDatepickerRangeComponent, selector: "po-datepicker-range" }, { 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: PoSelectComponent, selector: "po-select", inputs: ["p-readonly", "p-placeholder", "p-options", "p-field-label", "p-field-value", "p-control-value-with-label", "p-size", "p-helper", "p-label-text-wrap"], outputs: ["p-blur", "ngModelChange"] }, { kind: "component", type: PoTextareaComponent, selector: "po-textarea" }, { kind: "component", type: PoUploadComponent, selector: "po-upload" }, { kind: "component", type: PoCheckboxComponent, selector: "po-checkbox" }, { kind: "component", type: PoSwitchComponent, selector: "po-switch", inputs: ["p-value", "p-format-model", "p-hide-label-status", "p-label-position", "p-label-off", "p-label-on", "p-field-error-message", "p-error-limit", "p-invalid-value", "p-size", "p-helper", "p-label-text-wrap"] }, { kind: "component", type: PoDynamicContainerComponent, selector: "po-dynamic-container", inputs: ["p-content", "p-fields"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] });
42862
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", 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-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-iso-format]=\"field.isoFormat\"\n [p-label]=\"field.label\"\n [p-locale]=\"field.locale\"\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-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-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, '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-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\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-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-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, '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-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-label]=\"field.label\"\n [p-mask-format-model]=\"field.maskFormatModel\"\n [p-mask]=\"field.mask\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-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-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-label]=\"field.label\"\n [p-min]=\"field.minValue\"\n [p-max]=\"field.maxValue\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-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-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-thousand-maxlength]=\"field.thousandMaxlength\"\n [p-icon]=\"field.icon\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-locale]=\"field.locale\"\n [p-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-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-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-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-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-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-label]=\"field.label\"\n [p-label-off]=\"field.booleanFalse\"\n [p-label-on]=\"field.booleanTrue\"\n [p-label-position]=\"field.labelPosition\"\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-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\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-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-infinite-scroll]=\"field.infiniteScroll\"\n [p-infinite-scroll-distance]=\"field.infiniteScrollDistance || 100\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\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-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-field-format]=\"field.format\"\n [p-infinite-scroll]=\"field.infiniteScroll\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\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-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-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-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-auto-height]=\"field.autoHeight\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\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-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-optional]=\"field.optional\"\n [p-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-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-hide-password-peek]=\"field.hidePasswordPeek\"\n [p-icon]=\"field.icon\"\n [p-label]=\"field.label\"\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-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-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 [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: PoRadioGroupComponent, selector: "po-radio-group", inputs: ["p-label", "p-help"] }, { kind: "component", type: PoDatepickerComponent, selector: "po-datepicker", inputs: ["p-label", "p-help"] }, { kind: "component", type: PoComboComponent, selector: "po-combo" }, { kind: "component", type: PoDecimalComponent, selector: "po-decimal", inputs: ["p-decimals-length", "p-thousand-maxlength", "p-locale", "p-min", "p-max"] }, { kind: "component", type: PoDatepickerRangeComponent, selector: "po-datepicker-range" }, { 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: PoSelectComponent, selector: "po-select", inputs: ["p-readonly", "p-placeholder", "p-options", "p-field-label", "p-field-value", "p-control-value-with-label", "p-size", "p-helper", "p-label-text-wrap"], outputs: ["p-blur", "ngModelChange"] }, { kind: "component", type: PoTextareaComponent, selector: "po-textarea" }, { kind: "component", type: PoUploadComponent, selector: "po-upload" }, { kind: "component", type: PoCheckboxComponent, selector: "po-checkbox" }, { kind: "component", type: PoSwitchComponent, selector: "po-switch", inputs: ["p-value", "p-format-model", "p-hide-label-status", "p-label-position", "p-label-off", "p-label-on", "p-field-error-message", "p-error-limit", "p-invalid-value", "p-size", "p-helper", "p-label-text-wrap"] }, { kind: "component", type: PoDynamicContainerComponent, selector: "po-dynamic-container", inputs: ["p-content", "p-fields"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] });
42537
42863
  }
42538
42864
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PoDynamicFormFieldsComponent, decorators: [{
42539
42865
  type: Component,
42540
- 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-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-iso-format]=\"field.isoFormat\"\n [p-label]=\"field.label\"\n [p-locale]=\"field.locale\"\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-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-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, '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-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\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-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-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, '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-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-label]=\"field.label\"\n [p-mask-format-model]=\"field.maskFormatModel\"\n [p-mask]=\"field.mask\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-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-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-label]=\"field.label\"\n [p-min]=\"field.minValue\"\n [p-max]=\"field.maxValue\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-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-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-thousand-maxlength]=\"field.thousandMaxlength\"\n [p-icon]=\"field.icon\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-locale]=\"field.locale\"\n [p-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-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-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-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-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-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-label]=\"field.label\"\n [p-label-off]=\"field.booleanFalse\"\n [p-label-on]=\"field.booleanTrue\"\n [p-label-position]=\"field.labelPosition\"\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-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\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-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-infinite-scroll]=\"field.infiniteScroll\"\n [p-infinite-scroll-distance]=\"field.infiniteScrollDistance || 100\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\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-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-field-format]=\"field.format\"\n [p-infinite-scroll]=\"field.infiniteScroll\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\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-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-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-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-auto-height]=\"field.autoHeight\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\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-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-optional]=\"field.optional\"\n [p-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-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-hide-password-peek]=\"field.hidePasswordPeek\"\n [p-icon]=\"field.icon\"\n [p-label]=\"field.label\"\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-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-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 [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-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" }]
42866
+ 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-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-iso-format]=\"field.isoFormat\"\n [p-label]=\"field.label\"\n [p-locale]=\"field.locale\"\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-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-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, '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-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\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-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-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, '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-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-label]=\"field.label\"\n [p-mask-format-model]=\"field.maskFormatModel\"\n [p-mask]=\"field.mask\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-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-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-label]=\"field.label\"\n [p-min]=\"field.minValue\"\n [p-max]=\"field.maxValue\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-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-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-thousand-maxlength]=\"field.thousandMaxlength\"\n [p-icon]=\"field.icon\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-locale]=\"field.locale\"\n [p-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-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-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-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-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-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-label]=\"field.label\"\n [p-label-off]=\"field.booleanFalse\"\n [p-label-on]=\"field.booleanTrue\"\n [p-label-position]=\"field.labelPosition\"\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-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\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-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-infinite-scroll]=\"field.infiniteScroll\"\n [p-infinite-scroll-distance]=\"field.infiniteScrollDistance || 100\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\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-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-field-format]=\"field.format\"\n [p-infinite-scroll]=\"field.infiniteScroll\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\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-auto-focus]=\"field.focus\"\n [p-disabled]=\"isDisabled(field)\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-optional]=\"field.optional\"\n [p-options]=\"field.options\"\n [p-required]=\"field.required\"\n [p-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-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-auto-height]=\"field.autoHeight\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-literals]=\"field.literals\"\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-disabled]=\"isDisabled(field)\"\n [p-auto-focus]=\"field.focus\"\n [p-help]=\"field.help\"\n [p-label]=\"field.label\"\n [p-maxlength]=\"field.maxLength\"\n [p-minlength]=\"field.minLength\"\n [p-optional]=\"field.optional\"\n [p-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-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-hide-password-peek]=\"field.hidePasswordPeek\"\n [p-icon]=\"field.icon\"\n [p-label]=\"field.label\"\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-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-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 [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" }]
42541
42867
  }], ctorParameters: () => [], propDecorators: { components: [{
42542
42868
  type: ViewChildren,
42543
42869
  args: ['component']