{"version":3,"file":"ngserveio-material-forms.mjs","sources":["../../../../../../libs/shared/ui/material-forms/src/lib/components/form-field/form-field.component.ts","../../../../../../libs/shared/ui/material-forms/src/lib/components/form-field/form-field.component.html","../../../../../../libs/shared/ui/material-forms/src/lib/components/form/form.component.ts","../../../../../../libs/shared/ui/material-forms/src/lib/components/form/form.component.html","../../../../../../libs/shared/ui/material-forms/src/lib/components/form-field-validation/form-field-validation.component.ts","../../../../../../libs/shared/ui/material-forms/src/lib/components/form-field-validation/form-field-validation.component.html","../../../../../../libs/shared/ui/material-forms/src/lib/components/file-upload/file-upload.component.ts","../../../../../../libs/shared/ui/material-forms/src/lib/components/file-upload/file-upload.component.html","../../../../../../libs/shared/ui/material-forms/src/lib/components/file-upload-list/injection-keys.ts","../../../../../../libs/shared/ui/material-forms/src/lib/components/file-upload-list/file-upload-list.component.ts","../../../../../../libs/shared/ui/material-forms/src/lib/components/file-upload-list/file-upload-list.component.html","../../../../../../libs/shared/ui/material-forms/src/ngserveio-material-forms.ts"],"sourcesContent":["import { Component, ContentChild, Input, OnInit, ViewChild } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { MatError, MatFormFieldAppearance, MatLabel } from '@angular/material/form-field';\nimport { MatFormField, MatFormFieldControl } from '@angular/material/form-field';\nimport { ValidationDisplayDirective } from '@ngserveio/validation-messages';\n\n@Component({\n    selector: 'ng-serve-form-field',\n    templateUrl: './form-field.component.html',\n    styleUrls: ['./form-field.component.scss'],\n    standalone: true,\n    imports: [\n        MatFormField,\n        MatLabel,\n        MatError,\n        ValidationDisplayDirective\n    ]\n})\nexport class FormFieldComponent implements OnInit {\n  @Input() public label: string;\n  @Input() public control: UntypedFormControl;\n  @Input() public appearance: MatFormFieldAppearance = 'outline';\n\n  @ContentChild(MatFormFieldControl, { static: true })\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  public formFieldControl: MatFormFieldControl<any>;\n\n  @ViewChild('materialFormField', { static: true })\n  public matFormField: MatFormField;\n\n  public ngOnInit() {\n    this.matFormField._control = this.formFieldControl;\n  }\n}\n","<mat-form-field #materialFormField class=\"w-full\" [appearance]=\"appearance\">\n  <span matPrefix>\n    <ng-content select=\"[prefix]\"></ng-content>\n  </span>\n  <mat-label>{{label}}</mat-label>\n  <ng-content></ng-content>\n  <span matSuffix>\n    <ng-content select=\"[suffix]\"></ng-content>\n  </span>\n  <mat-error [ngServeValidationDisplay]=\"control\"\n             [fieldName]=\"label\"></mat-error>\n</mat-form-field>\n","import { NgClass, NgIf } from '@angular/common';\nimport { Component, Input, EventEmitter, Output, ChangeDetectionStrategy, ViewEncapsulation, HostListener } from '@angular/core';\nimport { MatButton } from '@angular/material/button';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { FormGroupSubmit } from '@ngserveio/form-services';\n\n@Component({\n    selector: 'ng-serve-form',\n    templateUrl: './form.component.html',\n    styleUrls: ['./form.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    standalone: true,\n    imports: [\n        NgClass,\n        NgIf,\n        MatProgressSpinner,\n        MatButton\n    ]\n})\nexport class FormComponent {\n  @Input() public saveText = 'Save';\n  @Input() public cancelText = 'Cancel';\n  @Input() public formCssClass: string | { [name: string]: boolean } = '';\n  @Input() public showCancelButton = true;\n  @Input() public cancelDisabled = false;\n  @Input() public saveDisabled = false;\n  @Input() public saving = false;\n  @Input() public saveButtonColor = 'primary';\n  @Input() public saveButtonCss: string | { [name: string]: boolean } = '';\n  @Input() public formGroup: FormGroupSubmit;\n\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() public cancel = new EventEmitter<void>();\n  @Output() public save = new EventEmitter<void>();\n\n  @HostListener('document:keydown.enter')\n  public submitForm(): void {\n    this.formGroup.submit();\n\n    if (this.formGroup.valid) {\n      this.save.emit();\n    }\n  }\n}\n","<form [ngClass]=\"formCssClass\">\n  <ng-content></ng-content>\n  <div class=\"mt-4 text-right w-full\" fxLayout=\"row\">\n    <button mat-button\n          class=\"mr-1 cancel-button\"\n          type=\"button\"\n          *ngIf=\"showCancelButton\"\n          [disabled]=\"cancelDisabled\"\n          color=\"primary\"\n          (click)=\"cancel.emit()\">\n      {{ cancelText }}\n    </button>\n    <button mat-flat-button\n            type=\"button\"\n            [color]=\"saveButtonColor\"\n            class=\"ml-5\"\n            [ngClass]=\"saveButtonCss\"\n            [disabled]=\"saveDisabled || saving\"\n            (click)=\"submitForm()\">\n      <mat-spinner *ngIf=\"saving\"\n                  class=\"ng-serve-io__form__button__spinner\"\n                  [diameter]=\"25\"\n                  [strokeWidth]=\"3\">\n      </mat-spinner>\n      {{ saveText }}\n    </button>\n  </div>\n</form>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { UntilDestroy } from '@ngneat/until-destroy';\nimport { combineLatest, Observable, of } from 'rxjs';\n\nimport { FormGroupSubmit } from '@ngserveio/form-services';\nimport { isEmpty } from '@ngserveio/utilities';\nimport { map } from 'rxjs/operators';\nimport { MatError } from '@angular/material/form-field';\nimport { ValidationDisplayDirective } from '@ngserveio/validation-messages';\n\n@UntilDestroy()\n@Component({\n    selector: 'ng-serve-form-field-validation',\n    templateUrl: './form-field-validation.component.html',\n    styleUrls: ['./form-field-validation.component.scss'],\n    imports: [\n        MatError,\n        ValidationDisplayDirective\n    ]\n})\nexport class FormFieldValidationComponent implements OnInit {\n  @Input() public control: AbstractControl;\n  @Input() public fieldName: string;\n\n  public form: FormGroupSubmit = null;\n\n  public ngOnInit(): void {\n    this.form = FormGroupSubmit.getFormGroupSubmit(this.control);\n  }\n\n  public get isSubmitted$(): Observable<boolean> {\n    return isEmpty(this.form)\n      ? of(true)\n      : this.form.submitted$;\n  }\n\n  public get showErrorMessage$(): Observable<boolean> {\n    return combineLatest([\n      this.isSubmitted$,\n      this.control.statusChanges\n    ]).pipe(\n      map(([ submitted ]) => {\n        return (submitted || this.control.touched) && this.control.invalid\n      })\n    );\n  }\n}\n","<mat-error [ngServeValidationDisplay]=\"control\" [fieldName]=\"fieldName\"></mat-error>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { FileUpload } from '@ngserveio/ui-domain';\n\n@Component({\n    selector: 'ng-serve-file-upload',\n    templateUrl: './file-upload.component.html',\n    styleUrls: ['./file-upload.component.scss'],\n    standalone: true,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [\n        CommonModule,\n        MatProgressBarModule\n    ]\n})\nexport class FileUploadComponent {\n  @Input() public fileUpload: FileUpload;\n}\n","<div class=\"flex flex-row justify-evenly\">\n  <label class=\"text-left w-1/2 text-gray-700\">{{ fileUpload?.name }}</label>\n  <label class=\"text-right w-1/2\">{{ fileUpload?.percentageUploaded }}%</label>\n</div>\n<div class=\"flex flex-row\">\n  <mat-progress-bar mode=\"determinate\"\n                    color=\"primary\"\n                    [value]=\"fileUpload?.percentageUploaded || 0\">\n  </mat-progress-bar>\n</div>\n","import { InjectionToken } from \"@angular/core\";\nimport { IFileUploadService } from \"@ngserveio/ui-domain\";\n\nexport const FileUploadInjectionToken = new InjectionToken<IFileUploadService>('FILE_UPLOAD_PROVIDER');","import { ChangeDetectionStrategy, Component, ElementRef, inject, Input, ViewChild } from '@angular/core';\nimport { FileUploadStatus, IFileUploadService } from '@ngserveio/ui-domain';\nimport { FileUploadInjectionToken } from './injection-keys';\nimport { CommonModule } from '@angular/common';\nimport { FileUploadComponent } from '../file-upload/file-upload.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatRippleModule } from '@angular/material/core';\n\n@Component({\n    selector: 'ng-serve-file-upload-list',\n    templateUrl: './file-upload-list.component.html',\n    styleUrls: ['./file-upload-list.component.scss'],\n    standalone: true,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [\n        CommonModule,\n        FileUploadComponent,\n        MatButtonModule,\n        MatIconModule,\n        MatRippleModule\n    ]\n})\nexport class FileUploadListComponent {\n  protected fileUploadService: IFileUploadService = inject(FileUploadInjectionToken);\n  \n  @Input() public fileTypes: string;\n  @Input() public path: string;\n\n  @ViewChild('fileListUpload') public fileListUpload: ElementRef;\n\n  public fileUploads$ = this.fileUploadService.fileUploads$;\n  public UPLOAD_STATUS = FileUploadStatus;\n\n  public chooseFiles(): void {\n    this.fileListUpload.nativeElement.click();\n  }\n\n  public filesSelected(evt: Event): void {\n    /* istanbul ignore next */\n    const fileList: FileList = (evt?.target as HTMLInputElement)?.files;\n    if (!fileList) { return; }\n\n    this.fileUploadService.addFiles(fileList, this.path);\n  }\n\n  public uploadFile(fileId: string): void {\n    this.fileUploadService.upload(fileId);\n  }\n\n  public remove(fileId: string): void {\n    this.fileUploadService.remove(fileId);\n  }\n}\n","<div>\n  <div *ngFor=\"let fileUpload of fileUploads$ | async | keyvalue\">\n    <ng-serve-file-upload [fileUpload]=\"fileUpload.value\"></ng-serve-file-upload>\n    <div class=\"flex flex-row justify-end\">\n      <button mat-icon-button\n              color=\"accent\"\n              title=\"Remove\"\n              (click)=\"remove(fileUpload.value.id)\"\n              [disabled]=\"fileUpload.value.status === UPLOAD_STATUS.IN_PROGRESS\">\n        <mat-icon>delete</mat-icon>\n      </button>\n      <button mat-icon-button\n              color=\"accent\"\n              title=\"Upload\"\n              (click)=\"uploadFile(fileUpload.value.id)\"\n              [disabled]=\"fileUpload.value.status !== UPLOAD_STATUS.QUEUED\">\n        <mat-icon>file_upload</mat-icon>\n      </button>\n    </div>\n  </div>\n</div>\n<input (change)=\"filesSelected($event)\"\n        type=\"file\"\n        multiple\n        [attr.accept]=\"fileTypes\"\n        class=\"file-upload-list__file-input\"\n        #fileListUpload\n/>\n<button mat-button class=\"rounded bg-green-500 text-white p-1 px-2 align-middle\"\n        (click)=\"chooseFiles()\">\n  <mat-icon>file_upload</mat-icon> Choose Files\n</button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}