angular-dynamic-forms-lite
Version:
Efficient dynamic and customizable Angular 7+ forms.
82 lines • 6.24 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { SubType } from "../../form-settings/sub-type";
/** @type {?} */
const ArrayResolver = (/**
* @param {?} valueOrType
* @return {?}
*/
(valueOrType) => {
return {
match: Array.isArray(valueOrType),
value: []
};
});
const ɵ0 = ArrayResolver;
/** @type {?} */
const GroupResolver = (/**
* @param {?} valueOrType
* @param {?} factory
* @return {?}
*/
(valueOrType, factory) => {
if (typeof valueOrType !== "object" || valueOrType instanceof SubType) {
return {
match: false
};
}
return {
match: true,
value: Object.entries(valueOrType).reduce((/**
* @param {?} formModel
* @param {?} __1
* @return {?}
*/
(formModel, [id, options]) => (Object.assign({}, formModel, { [id]: factory(options) }))), {})
};
});
const ɵ1 = GroupResolver;
/**
* Given an inline form it will resolve the model. No default values are used.
*
* Note: InlineOptions might have a default value in the future
*/
export class InlineModelResolver {
constructor() {
this.resolvers = [ArrayResolver, GroupResolver];
}
/**
* @param {?} inlineForm
* @return {?}
*/
resolve(inlineForm) {
return this.resolveInlineOptions([null, inlineForm]);
}
/**
* @private
* @param {?} __0
* @return {?}
*/
resolveInlineOptions([, child]) {
return (((/** @type {?} */ (this.resolvers.reduce((/**
* @param {?} prev
* @param {?} curr
* @return {?}
*/
(prev, curr) => (prev.match ? prev : curr(child, this.resolveInlineOptions.bind(this)))), {
match: false,
value: null
}).value))) || null);
}
}
if (false) {
/**
* @type {?}
* @private
*/
InlineModelResolver.prototype.resolvers;
}
export { ɵ0, ɵ1 };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWZvcm0tbW9kZWwtcmVzb2x2ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLWR5bmFtaWMtZm9ybXMtbGl0ZS8iLCJzb3VyY2VzIjpbImxpYi9mb3JtL2lubGluZS9pbmxpbmUtZm9ybS1tb2RlbC1yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDOztNQUtqRCxhQUFhOzs7O0FBQWtCLENBQUMsV0FBOEIsRUFBRSxFQUFFO0lBQ3RFLE9BQU87UUFDTCxLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDakMsS0FBSyxFQUFFLEVBQUU7S0FDVixDQUFDO0FBQ0osQ0FBQyxDQUFBOzs7TUFFSyxhQUFhOzs7OztBQUFrQixDQUFDLFdBQThCLEVBQUUsT0FBaUIsRUFBRSxFQUFFO0lBQ3pGLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxJQUFJLFdBQVcsWUFBWSxPQUFPLEVBQUU7UUFDckUsT0FBTztZQUNMLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQztLQUNIO0lBRUQsT0FBTztRQUNMLEtBQUssRUFBRSxJQUFJO1FBQ1gsS0FBSyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTTs7Ozs7UUFDdkMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLG1CQUFNLFNBQVMsSUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBRyxHQUN4RSxFQUFFLENBQ0g7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFBOzs7Ozs7O0FBT0QsTUFBTSxPQUFPLG1CQUFtQjtJQUFoQztRQUNtQixjQUFTLEdBQW9CLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBZ0IvRSxDQUFDOzs7OztJQWZRLE9BQU8sQ0FBQyxVQUFzQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Ozs7OztJQUVPLG9CQUFvQixDQUFDLENBQUMsRUFBRSxLQUFLLENBQWdCO1FBQ25ELE9BQU8sQ0FDTCxDQUFDLG1CQUFBLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTTs7Ozs7UUFDcEIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FDdkY7WUFDRSxLQUFLLEVBQUUsS0FBSztZQUNaLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FDRixDQUFDLEtBQUssRUFBYSxDQUFDLElBQUksSUFBSSxDQUM5QixDQUFDO0lBQ0osQ0FBQztDQUNGOzs7Ozs7SUFoQkMsd0NBQTZFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5saW5lRm9ybSwgSW5saW5lVmFsdWVPclR5cGUsIElubGluZU9wdGlvbnMgfSBmcm9tIFwiLi9pbmxpbmUtZm9ybVwiO1xuaW1wb3J0IHsgRm9ybU1vZGVsLCBCYXNpY0Zvcm1GaWVsZFZhbHVlIH0gZnJvbSBcIi4uL2Zvcm0tbW9kZWxcIjtcbmltcG9ydCB7IFN1YlR5cGUgfSBmcm9tIFwiLi4vLi4vZm9ybS1zZXR0aW5ncy9zdWItdHlwZVwiO1xuXG50eXBlIFZhbHVlUmVzb2x2ZXJSZXN1bHQgPSB7IG1hdGNoOiBib29sZWFuOyB2YWx1ZT86IEJhc2ljRm9ybUZpZWxkVmFsdWUgfTtcbnR5cGUgVmFsdWVSZXNvbHZlciA9ICh2YWx1ZU9yVHlwZTogSW5saW5lVmFsdWVPclR5cGUsIGZhY3Rvcnk6IEZ1bmN0aW9uKSA9PiBWYWx1ZVJlc29sdmVyUmVzdWx0O1xuXG5jb25zdCBBcnJheVJlc29sdmVyOiBWYWx1ZVJlc29sdmVyID0gKHZhbHVlT3JUeXBlOiBJbmxpbmVWYWx1ZU9yVHlwZSkgPT4ge1xuICByZXR1cm4ge1xuICAgIG1hdGNoOiBBcnJheS5pc0FycmF5KHZhbHVlT3JUeXBlKSxcbiAgICB2YWx1ZTogW11cbiAgfTtcbn07XG5cbmNvbnN0IEdyb3VwUmVzb2x2ZXI6IFZhbHVlUmVzb2x2ZXIgPSAodmFsdWVPclR5cGU6IElubGluZVZhbHVlT3JUeXBlLCBmYWN0b3J5OiBGdW5jdGlvbikgPT4ge1xuICBpZiAodHlwZW9mIHZhbHVlT3JUeXBlICE9PSBcIm9iamVjdFwiIHx8IHZhbHVlT3JUeXBlIGluc3RhbmNlb2YgU3ViVHlwZSkge1xuICAgIHJldHVybiB7XG4gICAgICBtYXRjaDogZmFsc2VcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBtYXRjaDogdHJ1ZSxcbiAgICB2YWx1ZTogT2JqZWN0LmVudHJpZXModmFsdWVPclR5cGUpLnJlZHVjZShcbiAgICAgIChmb3JtTW9kZWwsIFtpZCwgb3B0aW9uc10pID0+ICh7IC4uLmZvcm1Nb2RlbCwgW2lkXTogZmFjdG9yeShvcHRpb25zKSB9KSxcbiAgICAgIHt9XG4gICAgKVxuICB9O1xufTtcblxuLyoqXG4gKiBHaXZlbiBhbiBpbmxpbmUgZm9ybSBpdCB3aWxsIHJlc29sdmUgdGhlIG1vZGVsLiBObyBkZWZhdWx0IHZhbHVlcyBhcmUgdXNlZC5cbiAqXG4gKiBOb3RlOiBJbmxpbmVPcHRpb25zIG1pZ2h0IGhhdmUgYSBkZWZhdWx0IHZhbHVlIGluIHRoZSBmdXR1cmVcbiAqL1xuZXhwb3J0IGNsYXNzIElubGluZU1vZGVsUmVzb2x2ZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc29sdmVyczogVmFsdWVSZXNvbHZlcltdID0gW0FycmF5UmVzb2x2ZXIsIEdyb3VwUmVzb2x2ZXJdO1xuICBwdWJsaWMgcmVzb2x2ZShpbmxpbmVGb3JtOiBJbmxpbmVGb3JtKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZUlubGluZU9wdGlvbnMoW251bGwsIGlubGluZUZvcm1dKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUlubGluZU9wdGlvbnMoWywgY2hpbGRdOiBJbmxpbmVPcHRpb25zKTogRm9ybU1vZGVsIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHRoaXMucmVzb2x2ZXJzLnJlZHVjZTxWYWx1ZVJlc29sdmVyUmVzdWx0PihcbiAgICAgICAgKHByZXYsIGN1cnIpID0+IChwcmV2Lm1hdGNoID8gcHJldiA6IGN1cnIoY2hpbGQsIHRoaXMucmVzb2x2ZUlubGluZU9wdGlvbnMuYmluZCh0aGlzKSkpLFxuICAgICAgICB7XG4gICAgICAgICAgbWF0Y2g6IGZhbHNlLFxuICAgICAgICAgIHZhbHVlOiBudWxsXG4gICAgICAgIH1cbiAgICAgICkudmFsdWUgYXMgRm9ybU1vZGVsKSB8fCBudWxsXG4gICAgKTtcbiAgfVxufVxuIl19