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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | 1x 1x 8x 2x 2x 2x 2x 1x 2x 8x 1x 3x 3x 1x 2x 2x 1x 2x 2x 1x 1x 1x 1x 1x | import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { ReactiveFormsModule } from '@angular/forms';
import { DynamicFormAction } from '../dynamic-form-action/dynamic-form-action';
import { DynamicFormActionHandler } from '../dynamic-form-action/dynamic-form-action-handler';
import { DynamicFormActionModule } from '../dynamic-form-action/dynamic-form-action.module';
import { DynamicFormConfigModule } from '../dynamic-form-config/dynamic-form-config.module';
import { DynamicFormElementModule } from '../dynamic-form-element/dynamic-form-element.module';
import { DynamicFormField } from '../dynamic-form-field/dynamic-form-field';
import { DynamicFormFieldType } from '../dynamic-form-field/dynamic-form-field-type';
import { DynamicFormFieldModule } from '../dynamic-form-field/dynamic-form-field.module';
import { dynamicFormLibrary } from '../dynamic-form-library/dynamic-form-library';
import { DynamicFormValidationModule } from '../dynamic-form-validation/dynamic-form-validation.module';
import { DynamicFormBuilder } from '../dynamic-form/dynamic-form.builder';
import { DynamicFormDictionary } from './dynamic-form-dictionary';
import { dynamicFormDictionaryFactory } from './dynamic-form-dictionary-factory';
import { dynamicFormDictionaryValidatorTypes } from './dynamic-form-dictionary-validator-type';
import { DynamicFormDictionaryComponent } from './dynamic-form-dictionary.component';
export const dynamicFormDictionaryType: DynamicFormFieldType = {
type: 'dictionary',
factory: dynamicFormDictionaryFactory,
component: DynamicFormDictionaryComponent,
libraryName: dynamicFormLibrary.name,
};
export const dynamicFormDictionaryRegisterFieldHandlerFactory = (
formBuilder: DynamicFormBuilder,
): DynamicFormActionHandler<DynamicFormDictionary> => {
const func = (field: DynamicFormDictionary, action: DynamicFormAction) => {
const parent = action.parent as DynamicFormAction;
const key = parent.dialog ? parent.dialog.model.key : formBuilder.createId();
const element = formBuilder.createFormDictionaryField(field, key);
if (parent.dialog) {
parent.closeDialog();
}
return field.registerField(element);
};
return {
type: 'registerDictionaryField',
elementFunc: getDynamicFormDictionary,
func,
libraryName: dynamicFormLibrary.name,
};
};
export const getDynamicFormDictionary = (action: DynamicFormAction): DynamicFormDictionary => {
const field = action.parent as DynamicFormField;
if (field.fieldClassType === 'dictionary') {
return field as DynamicFormDictionary;
}
const parentField = field.parent as DynamicFormField;
return parentField && parentField.fieldClassType === 'dictionary'
? parentField as DynamicFormDictionary
: undefined;
};
export const dynamicFormDictionaryRemoveField = (field: DynamicFormDictionary, action: DynamicFormAction): void => {
const childField = action.parent as DynamicFormField;
if (field && childField && childField.key) {
field.removeField(childField.key);
}
};
export const dynamicFormDictionaryRemoveFieldHandler: DynamicFormActionHandler<DynamicFormDictionary> = {
type: 'removeDictionaryField',
elementFunc: getDynamicFormDictionary,
func: dynamicFormDictionaryRemoveField,
libraryName: dynamicFormLibrary.name,
};
export const dynamicFormDictionaryClearFields = (field: DynamicFormDictionary): void => field.clearFields();
export const dynamicFormDictionaryClearFieldsHandler: DynamicFormActionHandler<DynamicFormDictionary> = {
type: 'clearDictionaryFields',
func: dynamicFormDictionaryClearFields,
libraryName: dynamicFormLibrary.name,
};
@NgModule({
imports: [
CommonModule,
ReactiveFormsModule,
DynamicFormElementModule,
DynamicFormFieldModule,
DynamicFormConfigModule.withField(dynamicFormDictionaryType),
DynamicFormValidationModule.withDictionaryValidators(dynamicFormDictionaryValidatorTypes),
DynamicFormActionModule.withHandlers([
dynamicFormDictionaryRemoveFieldHandler,
dynamicFormDictionaryClearFieldsHandler,
]),
DynamicFormActionModule.withHandlerFactory(dynamicFormDictionaryRegisterFieldHandlerFactory, [
DynamicFormBuilder,
]),
],
declarations: [
DynamicFormDictionaryComponent,
],
exports: [
DynamicFormConfigModule,
DynamicFormActionModule,
DynamicFormDictionaryComponent,
],
})
export class DynamicFormDictionaryModule {}
|