UNPKG

@ngx-formly/core

Version:

Formly is a dynamic (JSON powered) form library for Angular that bring unmatched maintainability to your application's forms.

66 lines 8.69 kB
import { inject, InjectionToken } from '@angular/core'; import { FieldExpressionExtension } from './extensions/field-expression/field-expression'; import { FieldExpressionExtension as FieldExpressionLegacyExtension } from './extensions/field-expression-legacy/field-expression'; import { CoreExtension } from './extensions/core/core'; import { FieldFormExtension } from './extensions/field-form/field-form'; import { FieldValidationExtension } from './extensions/field-validation/field-validation'; import { FormlyTemplateType } from './templates/field-template.type'; import { FormlyGroup } from './templates/formly.group'; import { FormlyConfig } from './services/formly.config'; /** * An InjectionToken for registering additional formly config options (types, wrappers ...). */ export const FORMLY_CONFIG = new InjectionToken('FORMLY_CONFIG'); export function withDefaultConfig(config) { return { types: [ { name: 'formly-group', component: FormlyGroup }, { name: 'formly-template', component: FormlyTemplateType }, ], extensions: [ { name: 'core', extension: new CoreExtension(config), priority: -250 }, { name: 'field-validation', extension: new FieldValidationExtension(config), priority: -200 }, { name: 'field-form', extension: new FieldFormExtension(), priority: -150 }, { name: 'field-expression', extension: new FieldExpressionLegacyExtension(), priority: -100, }, ], }; } export function withFormlyFieldExpression() { return { extensions: [ { name: 'field-expression', extension: new FieldExpressionExtension(), priority: -100, }, ], }; } export const provideFormlyCore = (configs = []) => { return [ { provide: FORMLY_CONFIG, multi: true, useFactory: withDefaultConfig, deps: [FormlyConfig] }, provideFormlyConfig(configs), ]; }; export const provideFormlyConfig = (configs = []) => { return { provide: FORMLY_CONFIG, multi: true, useFactory: () => { const currentConfig = inject(FORMLY_CONFIG, { skipSelf: true, optional: true, }); if (currentConfig) { currentConfig.push(configs); return currentConfig; } return configs; }, }; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29yZS9zcmMvbGliL2NvcmUuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSx3QkFBd0IsSUFBSSw4QkFBOEIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ25JLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXhEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFpQixlQUFlLENBQUMsQ0FBQztBQUVqRixNQUFNLFVBQVUsaUJBQWlCLENBQUMsTUFBb0I7SUFDcEQsT0FBTztRQUNMLEtBQUssRUFBRTtZQUNMLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFO1lBQ2hELEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRTtTQUMzRDtRQUNELFVBQVUsRUFBRTtZQUNWLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQ3RFLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxJQUFJLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRTtZQUM3RixFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksa0JBQWtCLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxHQUFHLEVBQUU7WUFDM0U7Z0JBQ0UsSUFBSSxFQUFFLGtCQUFrQjtnQkFDeEIsU0FBUyxFQUFFLElBQUksOEJBQThCLEVBQUU7Z0JBQy9DLFFBQVEsRUFBRSxDQUFDLEdBQUc7YUFDZjtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCO0lBQ3ZDLE9BQU87UUFDTCxVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixTQUFTLEVBQUUsSUFBSSx3QkFBd0IsRUFBRTtnQkFDekMsUUFBUSxFQUFFLENBQUMsR0FBRzthQUNmO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsVUFBeUMsRUFBRSxFQUFZLEVBQUU7SUFDekYsT0FBTztRQUNMLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRTtRQUM1RixtQkFBbUIsQ0FBQyxPQUFPLENBQUM7S0FDN0IsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsVUFBeUMsRUFBRSxFQUFZLEVBQUU7SUFDM0YsT0FBTztRQUNMLE9BQU8sRUFBRSxhQUFhO1FBQ3RCLEtBQUssRUFBRSxJQUFJO1FBQ1gsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUNmLE1BQU0sYUFBYSxHQUF5QyxNQUFNLENBQUMsYUFBYSxFQUFFO2dCQUNoRixRQUFRLEVBQUUsSUFBSTtnQkFDZCxRQUFRLEVBQUUsSUFBSTthQUNmLENBQUMsQ0FBQztZQUNILElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2xCLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzVCLE9BQU8sYUFBYSxDQUFDO1lBQ3ZCLENBQUM7WUFFRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWVsZEV4cHJlc3Npb25FeHRlbnNpb24gfSBmcm9tICcuL2V4dGVuc2lvbnMvZmllbGQtZXhwcmVzc2lvbi9maWVsZC1leHByZXNzaW9uJztcbmltcG9ydCB7IEZpZWxkRXhwcmVzc2lvbkV4dGVuc2lvbiBhcyBGaWVsZEV4cHJlc3Npb25MZWdhY3lFeHRlbnNpb24gfSBmcm9tICcuL2V4dGVuc2lvbnMvZmllbGQtZXhwcmVzc2lvbi1sZWdhY3kvZmllbGQtZXhwcmVzc2lvbic7XG5pbXBvcnQgeyBDb3JlRXh0ZW5zaW9uIH0gZnJvbSAnLi9leHRlbnNpb25zL2NvcmUvY29yZSc7XG5pbXBvcnQgeyBGaWVsZEZvcm1FeHRlbnNpb24gfSBmcm9tICcuL2V4dGVuc2lvbnMvZmllbGQtZm9ybS9maWVsZC1mb3JtJztcbmltcG9ydCB7IEZpZWxkVmFsaWRhdGlvbkV4dGVuc2lvbiB9IGZyb20gJy4vZXh0ZW5zaW9ucy9maWVsZC12YWxpZGF0aW9uL2ZpZWxkLXZhbGlkYXRpb24nO1xuaW1wb3J0IHsgRm9ybWx5VGVtcGxhdGVUeXBlIH0gZnJvbSAnLi90ZW1wbGF0ZXMvZmllbGQtdGVtcGxhdGUudHlwZSc7XG5pbXBvcnQgeyBGb3JtbHlHcm91cCB9IGZyb20gJy4vdGVtcGxhdGVzL2Zvcm1seS5ncm91cCc7XG5pbXBvcnQgeyBDb25maWdPcHRpb24gfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBGb3JtbHlDb25maWcgfSBmcm9tICcuL3NlcnZpY2VzL2Zvcm1seS5jb25maWcnO1xuXG4vKipcbiAqIEFuIEluamVjdGlvblRva2VuIGZvciByZWdpc3RlcmluZyBhZGRpdGlvbmFsIGZvcm1seSBjb25maWcgb3B0aW9ucyAodHlwZXMsIHdyYXBwZXJzIC4uLikuXG4gKi9cbmV4cG9ydCBjb25zdCBGT1JNTFlfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPENvbmZpZ09wdGlvbltdPignRk9STUxZX0NPTkZJRycpO1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aERlZmF1bHRDb25maWcoY29uZmlnOiBGb3JtbHlDb25maWcpOiBDb25maWdPcHRpb24ge1xuICByZXR1cm4ge1xuICAgIHR5cGVzOiBbXG4gICAgICB7IG5hbWU6ICdmb3JtbHktZ3JvdXAnLCBjb21wb25lbnQ6IEZvcm1seUdyb3VwIH0sXG4gICAgICB7IG5hbWU6ICdmb3JtbHktdGVtcGxhdGUnLCBjb21wb25lbnQ6IEZvcm1seVRlbXBsYXRlVHlwZSB9LFxuICAgIF0sXG4gICAgZXh0ZW5zaW9uczogW1xuICAgICAgeyBuYW1lOiAnY29yZScsIGV4dGVuc2lvbjogbmV3IENvcmVFeHRlbnNpb24oY29uZmlnKSwgcHJpb3JpdHk6IC0yNTAgfSxcbiAgICAgIHsgbmFtZTogJ2ZpZWxkLXZhbGlkYXRpb24nLCBleHRlbnNpb246IG5ldyBGaWVsZFZhbGlkYXRpb25FeHRlbnNpb24oY29uZmlnKSwgcHJpb3JpdHk6IC0yMDAgfSxcbiAgICAgIHsgbmFtZTogJ2ZpZWxkLWZvcm0nLCBleHRlbnNpb246IG5ldyBGaWVsZEZvcm1FeHRlbnNpb24oKSwgcHJpb3JpdHk6IC0xNTAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2ZpZWxkLWV4cHJlc3Npb24nLFxuICAgICAgICBleHRlbnNpb246IG5ldyBGaWVsZEV4cHJlc3Npb25MZWdhY3lFeHRlbnNpb24oKSxcbiAgICAgICAgcHJpb3JpdHk6IC0xMDAsXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoRm9ybWx5RmllbGRFeHByZXNzaW9uKCk6IENvbmZpZ09wdGlvbiB7XG4gIHJldHVybiB7XG4gICAgZXh0ZW5zaW9uczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnZmllbGQtZXhwcmVzc2lvbicsXG4gICAgICAgIGV4dGVuc2lvbjogbmV3IEZpZWxkRXhwcmVzc2lvbkV4dGVuc2lvbigpLFxuICAgICAgICBwcmlvcml0eTogLTEwMCxcbiAgICAgIH0sXG4gICAgXSxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IHByb3ZpZGVGb3JtbHlDb3JlID0gKGNvbmZpZ3M6IENvbmZpZ09wdGlvbiB8IENvbmZpZ09wdGlvbltdID0gW10pOiBQcm92aWRlciA9PiB7XG4gIHJldHVybiBbXG4gICAgeyBwcm92aWRlOiBGT1JNTFlfQ09ORklHLCBtdWx0aTogdHJ1ZSwgdXNlRmFjdG9yeTogd2l0aERlZmF1bHRDb25maWcsIGRlcHM6IFtGb3JtbHlDb25maWddIH0sXG4gICAgcHJvdmlkZUZvcm1seUNvbmZpZyhjb25maWdzKSxcbiAgXTtcbn07XG5cbmV4cG9ydCBjb25zdCBwcm92aWRlRm9ybWx5Q29uZmlnID0gKGNvbmZpZ3M6IENvbmZpZ09wdGlvbiB8IENvbmZpZ09wdGlvbltdID0gW10pOiBQcm92aWRlciA9PiB7XG4gIHJldHVybiB7XG4gICAgcHJvdmlkZTogRk9STUxZX0NPTkZJRyxcbiAgICBtdWx0aTogdHJ1ZSxcbiAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50Q29uZmlnOiBBcnJheTxDb25maWdPcHRpb24gfCBDb25maWdPcHRpb25bXT4gPSBpbmplY3QoRk9STUxZX0NPTkZJRywge1xuICAgICAgICBza2lwU2VsZjogdHJ1ZSxcbiAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIGlmIChjdXJyZW50Q29uZmlnKSB7XG4gICAgICAgIGN1cnJlbnRDb25maWcucHVzaChjb25maWdzKTtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRDb25maWc7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb25maWdzO1xuICAgIH0sXG4gIH07XG59O1xuIl19