@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
JavaScript
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