Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | 1x 8x 8x 1x 4x 8x 8x 8x 8x 8x 8x 8x 8x | import { Directive, OnInit, ViewChild } from '@angular/core'; import { DynamicFormAction } from '../../dynamic-form-action/dynamic-form-action'; import { DynamicFormActionDefinition } from '../../dynamic-form-action/dynamic-form-action-definition'; import { DynamicFormActionTemplate } from '../../dynamic-form-action/dynamic-form-action-template'; import { DynamicFormIconDefinition } from '../../dynamic-form-action/dynamic-form-icon/dynamic-form-icon-definition'; import { DynamicFormValidationService } from '../../dynamic-form-validation/dynamic-form-validation.service'; import { mergeObject } from '../../dynamic-form/dynamic-form-helpers'; import { DynamicFormBuilder } from '../../dynamic-form/dynamic-form.builder'; import { DynamicFormInputBase } from '../dynamic-form-input-base'; import { DynamicFormFile, DynamicFormFileDefinition, DynamicFormFileTemplate } from './dynamic-form-file'; import { DynamicFormFileDirective } from './dynamic-form-file.directive'; @Directive() export abstract class DynamicFormFileBase extends DynamicFormInputBase<DynamicFormFile, DynamicFormFileTemplate, DynamicFormFileDefinition> implements OnInit { private _uploadAction: DynamicFormAction; @ViewChild(DynamicFormFileDirective) protected _fileInput: DynamicFormFileDirective; readonly defaultUploadActionDefinition: DynamicFormActionDefinition = { type: 'icon', template: { type: 'button', icon: 'attach_file', color: 'inputAction', }, } as DynamicFormIconDefinition; readonly requiredUploadActionDefinition: Partial<DynamicFormActionDefinition> = { template: { action: () => this._fileInput.openFileExplorer() } as DynamicFormActionTemplate, expressions: { disabled: _ => this.field.control.disabled || this.field.readonly }, }; constructor(protected builder: DynamicFormBuilder, protected override validationService: DynamicFormValidationService) { super(validationService); } get uploadAction(): DynamicFormAction { return this._uploadAction; } ngOnInit(): void { const definition = this.getDefinition(); this._uploadAction = this.builder.createFormAction(this.field.root, this.field, definition); } private getDefinition(): DynamicFormActionDefinition { const definitionBase = this.definition.uploadActionDefinition ? mergeObject(this.defaultUploadActionDefinition, this.definition.uploadActionDefinition) : this.defaultUploadActionDefinition; const definition = this.builder.getDefinition(definitionBase, this.field.root); return mergeObject(definition, this.requiredUploadActionDefinition); } } |