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