@ngx-formly/core 5.10.20 → 5.10.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/bundles/ngx-formly-core-json-schema.umd.js +35 -20
  2. package/bundles/ngx-formly-core-json-schema.umd.js.map +1 -1
  3. package/bundles/ngx-formly-core-json-schema.umd.min.js +1 -1
  4. package/bundles/ngx-formly-core-json-schema.umd.min.js.map +1 -1
  5. package/bundles/ngx-formly-core.umd.js +76 -34
  6. package/bundles/ngx-formly-core.umd.js.map +1 -1
  7. package/bundles/ngx-formly-core.umd.min.js +1 -1
  8. package/bundles/ngx-formly-core.umd.min.js.map +1 -1
  9. package/esm2015/json-schema/formly-json-schema.service.js +36 -21
  10. package/esm2015/lib/components/formly.attributes.js +8 -3
  11. package/esm2015/lib/components/formly.field.js +24 -2
  12. package/esm2015/lib/components/formly.form.js +2 -2
  13. package/esm2015/lib/extensions/field-expression/field-expression.js +35 -16
  14. package/esm2015/lib/extensions/field-form/field-form.js +19 -17
  15. package/esm5/json-schema/formly-json-schema.service.js +36 -21
  16. package/esm5/lib/components/formly.attributes.js +8 -3
  17. package/esm5/lib/components/formly.field.js +24 -2
  18. package/esm5/lib/components/formly.form.js +2 -2
  19. package/esm5/lib/extensions/field-expression/field-expression.js +35 -16
  20. package/esm5/lib/extensions/field-form/field-form.js +19 -17
  21. package/fesm2015/ngx-formly-core-json-schema.js +35 -20
  22. package/fesm2015/ngx-formly-core-json-schema.js.map +1 -1
  23. package/fesm2015/ngx-formly-core.js +78 -35
  24. package/fesm2015/ngx-formly-core.js.map +1 -1
  25. package/fesm5/ngx-formly-core-json-schema.js +35 -20
  26. package/fesm5/ngx-formly-core-json-schema.js.map +1 -1
  27. package/fesm5/ngx-formly-core.js +77 -34
  28. package/fesm5/ngx-formly-core.js.map +1 -1
  29. package/json-schema/ngx-formly-core-json-schema.metadata.json +1 -1
  30. package/lib/components/formly.field.d.ts +1 -0
  31. package/ngx-formly-core.metadata.json +1 -1
  32. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["node_modules/tslib/tslib.es6.js","ng://@ngx-formly/core/json-schema/formly-json-schema.service.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__read","o","m","Symbol","iterator","r","ar","next","done","push","value","error","isEmpty","v","undefined","isObject","Array","isArray","isConst","schema","enum","totalMatchedFields","field","fieldGroup","reduce","f","key","getFieldInitialValue","FormlyJsonschema","toFieldConfig","options","_toFieldConfig","_a","_this_1","resolveSchema","type","guessType","defaultValue","default","templateOptions","label","title","readonly","readOnly","description","ignoreDefault","disabled","resetOnHide","shareFormControl","addValidator","parsers","Number","min","minimum","max","maximum","exclusiveMinimum","exclusiveMaximum","step","multipleOf","isInteger","Math","floor","schemaType","forEach","prop","_b","resolveDependencies","propDeps_1","schemaDeps_1","keys","properties","property","required","expressionProperties","templateOptions.required","parent","model","some","k","oneOfSchema","oneOf","every","oneOfSchemaItem","constSchema","hideExpression","const","resolveMultiSchema","anyOf","minItems","maxItems","uniqueItems","from","Set","map","JSON","stringify","items","isEnum","_this_2","defineProperty","get","itemSchema","additionalItems","enumerable","configurable","multiple","toEnumOptions","formlyConfig","mergeFields","$ref","resolveDefinition","allOf","resolveAllOf","baseSchema","Error","base","__spread","concat","reverseDeepMerge","mode","schemas","hooks","onInit","formControl","valueChanges","pipe","tap","_checkField","fs","control","filter","isFieldValid","sort","f1","f2","matchedFields1","matchedFields2","definedValue","setValue","split","uri","pointer","definition","def","path","annotation","deps","schemaDeps","dependencies","dependency","dep","name","validator","validators","toEnum","option","_buildField","valid","Injectable","args","providedIn"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { JSONSchema7, JSONSchema7TypeName } from 'json-schema';\nimport { AbstractControl, FormGroup } from '@angular/forms';\nimport {\n ɵreverseDeepMerge as reverseDeepMerge,\n ɵgetFieldInitialValue as getFieldInitialValue,\n ɵclone as clone,\n} from '@ngx-formly/core';\nimport { tap } from 'rxjs/operators';\n\nexport interface FormlyJsonschemaOptions {\n /**\n * allows to intercept the mapping, taking the already mapped\n * formly field and the original JSONSchema source from which it\n * was mapped.\n */\n map?: (mappedField: FormlyFieldConfig, mapSource: JSONSchema7) => FormlyFieldConfig;\n}\n\nfunction isInteger(value: any) {\n return Number.isInteger\n ? Number.isInteger(value)\n : typeof value === 'number' && Math.floor(value) === value;\n}\n\nfunction isEmpty(v: any) {\n return v === '' || v === undefined || v === null;\n}\n\nfunction isObject(v: any) {\n return v != null && typeof v === 'object' && !Array.isArray(v);\n}\n\nfunction isConst(schema: JSONSchema7) {\n return schema.hasOwnProperty('const') || (schema.enum && schema.enum.length === 1);\n}\n\nfunction totalMatchedFields(field: FormlyFieldConfig): number {\n if (!field.fieldGroup) {\n return field.key && getFieldInitialValue(field) !== undefined ? 1 : 0;\n }\n\n return field.fieldGroup.reduce((s, f) => totalMatchedFields(f) + s, 0);\n}\n\ninterface IOptions extends FormlyJsonschemaOptions {\n schema: JSONSchema7;\n resetOnHide?: boolean;\n shareFormControl?: boolean;\n ignoreDefault?: boolean;\n readOnly?: boolean;\n key?: FormlyFieldConfig['key'];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FormlyJsonschema {\n toFieldConfig(schema: JSONSchema7, options?: FormlyJsonschemaOptions): FormlyFieldConfig {\n return this._toFieldConfig(schema, { schema, ...(options || {}) });\n }\n\n private _toFieldConfig(schema: JSONSchema7, { key, ...options }: IOptions): FormlyFieldConfig {\n schema = this.resolveSchema(schema, options);\n\n let field: FormlyFieldConfig = {\n type: this.guessType(schema),\n defaultValue: schema.default,\n templateOptions: {\n label: schema.title,\n readonly: schema.readOnly,\n description: schema.description,\n },\n };\n\n if (key != null) {\n field.key = key;\n }\n\n if (!options.ignoreDefault && (schema.readOnly || options.readOnly)) {\n field.templateOptions.disabled = true;\n options = { ...options, readOnly: true };\n }\n\n if (options.resetOnHide) {\n field['resetOnHide'] = true;\n }\n\n if (options.shareFormControl === false) {\n field['shareFormControl'] = false;\n }\n\n if (options.ignoreDefault) {\n delete field.defaultValue;\n }\n\n switch (field.type) {\n case 'null': {\n this.addValidator(field, 'null', ({ value }) => value === null);\n break;\n }\n case 'number':\n case 'integer': {\n field.parsers = [v => isEmpty(v) ? null : Number(v)];\n if (schema.hasOwnProperty('minimum')) {\n field.templateOptions.min = schema.minimum;\n }\n\n if (schema.hasOwnProperty('maximum')) {\n field.templateOptions.max = schema.maximum;\n }\n\n if (schema.hasOwnProperty('exclusiveMinimum')) {\n field.templateOptions.exclusiveMinimum = schema.exclusiveMinimum;\n this.addValidator(field, 'exclusiveMinimum', ({ value }) => isEmpty(value) || (value > schema.exclusiveMinimum));\n }\n\n if (schema.hasOwnProperty('exclusiveMaximum')) {\n field.templateOptions.exclusiveMaximum = schema.exclusiveMaximum;\n this.addValidator(field, 'exclusiveMaximum', ({ value }) => isEmpty(value) || (value < schema.exclusiveMaximum));\n }\n\n if (schema.hasOwnProperty('multipleOf')) {\n field.templateOptions.step = schema.multipleOf;\n this.addValidator(field, 'multipleOf', ({ value }) => {\n if (isEmpty(value) || typeof value !== 'number' || value === 0 || schema.multipleOf <= 0) {\n return true;\n }\n\n return isInteger(value / schema.multipleOf);\n });\n }\n break;\n }\n case 'string': {\n const schemaType = schema.type as JSONSchema7TypeName;\n if (Array.isArray(schemaType) && (schemaType.indexOf('null') !== -1)) {\n field.parsers = [v => isEmpty(v) ? null : v];\n }\n\n ['minLength', 'maxLength', 'pattern'].forEach(prop => {\n if (schema.hasOwnProperty(prop)) {\n field.templateOptions[prop] = schema[prop];\n }\n });\n break;\n }\n case 'object': {\n field.fieldGroup = [];\n\n const [propDeps, schemaDeps] = this.resolveDependencies(schema);\n Object.keys(schema.properties || {}).forEach(property => {\n const f = this._toFieldConfig(<JSONSchema7> schema.properties[property], { ...options, key: property });\n field.fieldGroup.push(f);\n if (\n (Array.isArray(schema.required) && schema.required.indexOf(property) !== -1)\n || propDeps[property]\n ) {\n f.expressionProperties = {\n ...(f.expressionProperties || {}),\n 'templateOptions.required': (m, s, f) => {\n let parent = f.parent;\n const model = f.fieldGroup && f.key != null ? parent.model : f.model;\n while (parent.key == null && parent.parent) {\n parent = parent.parent;\n }\n\n const required = parent && parent.templateOptions ? parent.templateOptions.required : false;\n if (!model && !required) {\n return false;\n }\n\n if (Array.isArray(schema.required) && schema.required.indexOf(property) !== -1) {\n return true;\n }\n\n return propDeps[property] && propDeps[property].some(k => !isEmpty(m[k]));\n },\n };\n }\n\n if (schemaDeps[property]) {\n const getConstValue = (s: JSONSchema7) => {\n return s.hasOwnProperty('const') ? s.const : s.enum[0];\n };\n\n const oneOfSchema = schemaDeps[property].oneOf;\n if (\n oneOfSchema\n && oneOfSchema.every(o => o.properties && o.properties[property] && isConst(o.properties[property]))\n ) {\n oneOfSchema.forEach(oneOfSchemaItem => {\n const { [property]: constSchema, ...properties } = oneOfSchemaItem.properties;\n field.fieldGroup.push({\n ...this._toFieldConfig({ ...oneOfSchemaItem, properties }, { ...options, resetOnHide: true }),\n hideExpression: m => !m || getConstValue(constSchema) !== m[property],\n });\n });\n } else {\n field.fieldGroup.push({\n ...this._toFieldConfig(schemaDeps[property], options),\n hideExpression: m => !m || isEmpty(m[property]),\n });\n }\n\n }\n });\n\n if (schema.oneOf) {\n field.fieldGroup.push(this.resolveMultiSchema(\n 'oneOf',\n <JSONSchema7[]> schema.oneOf,\n { ...options, shareFormControl: false },\n ));\n }\n\n if (schema.anyOf) {\n field.fieldGroup.push(this.resolveMultiSchema(\n 'anyOf',\n <JSONSchema7[]> schema.anyOf,\n options,\n ));\n }\n break;\n }\n case 'array': {\n if (schema.hasOwnProperty('minItems')) {\n field.templateOptions.minItems = schema.minItems;\n this.addValidator(field, 'minItems', ({ value }) => isEmpty(value) || (value.length >= schema.minItems));\n }\n if (schema.hasOwnProperty('maxItems')) {\n field.templateOptions.maxItems = schema.maxItems;\n this.addValidator(field, 'maxItems', ({ value }) => isEmpty(value) || (value.length <= schema.maxItems));\n }\n if (schema.hasOwnProperty('uniqueItems')) {\n field.templateOptions.uniqueItems = schema.uniqueItems;\n this.addValidator(field, 'uniqueItems', ({ value }) => {\n if (isEmpty(value) || !schema.uniqueItems) {\n return true;\n }\n\n const uniqueItems = Array.from(\n new Set(value.map((v: any) => JSON.stringify(v))),\n );\n\n return uniqueItems.length === value.length;\n });\n }\n\n // resolve items schema needed for isEnum check\n if (schema.items && !Array.isArray(schema.items)) {\n schema.items = this.resolveSchema(<JSONSchema7> schema.items, options);\n }\n\n // TODO: remove isEnum check once adding an option to skip extension\n if (!this.isEnum(schema)) {\n const _this = this;\n Object.defineProperty(field, 'fieldArray', {\n get: function () {\n if (!Array.isArray(schema.items)) {\n // When items is a single schema, the additionalItems keyword is meaningless, and it should not be used.\n return _this._toFieldConfig(<JSONSchema7> schema.items, options);\n }\n\n const length = this.fieldGroup ? this.fieldGroup.length : 0;\n const itemSchema = schema.items[length]\n ? schema.items[length]\n : schema.additionalItems;\n\n return itemSchema\n ? _this._toFieldConfig(<JSONSchema7> itemSchema, options)\n : {};\n },\n enumerable: true,\n configurable: true,\n });\n }\n\n break;\n }\n }\n\n if (schema.hasOwnProperty('const')) {\n field.templateOptions.const = schema.const;\n this.addValidator(field, 'const', ({ value }) => value === schema.const);\n if (!field.type) {\n field.defaultValue = schema.const;\n }\n }\n\n if (this.isEnum(schema)) {\n field.templateOptions.multiple = field.type === 'array';\n field.type = 'enum';\n field.templateOptions.options = this.toEnumOptions(schema);\n }\n\n // map in possible formlyConfig options from the widget property\n if (schema['widget'] && schema['widget'].formlyConfig) {\n field = this.mergeFields(field, schema['widget'].formlyConfig);\n }\n\n // if there is a map function passed in, use it to allow the user to\n // further customize how fields are being mapped\n return options.map ? options.map(field, schema) : field;\n }\n\n private resolveSchema(schema: JSONSchema7, options: IOptions) {\n if (schema.$ref) {\n schema = this.resolveDefinition(schema, options);\n }\n\n if (schema.allOf) {\n schema = this.resolveAllOf(schema, options);\n }\n\n return schema;\n }\n\n private resolveAllOf({ allOf, ...baseSchema }: JSONSchema7, options: IOptions) {\n if (!allOf.length) {\n throw Error(`allOf array can not be empty ${allOf}.`);\n }\n\n return allOf.reduce((base: JSONSchema7, schema: JSONSchema7) => {\n schema = this.resolveSchema(schema, options);\n if (base.required && schema.required) {\n base.required = [...base.required, ...schema.required];\n }\n\n if (schema.uniqueItems) {\n base.uniqueItems = schema.uniqueItems;\n }\n\n // resolve to min value\n ['maxLength', 'maximum', 'exclusiveMaximum', 'maxItems', 'maxProperties']\n .forEach(prop => {\n if (!isEmpty(base[prop]) && !isEmpty(schema[prop])) {\n base[prop] = base[prop] < schema[prop] ? base[prop] : schema[prop];\n }\n });\n\n // resolve to max value\n ['minLength', 'minimum', 'exclusiveMinimum', 'minItems', 'minProperties']\n .forEach(prop => {\n if (!isEmpty(base[prop]) && !isEmpty(schema[prop])) {\n base[prop] = base[prop] > schema[prop] ? base[prop] : schema[prop];\n }\n });\n\n return reverseDeepMerge(base, schema);\n }, baseSchema);\n }\n\n private resolveMultiSchema(\n mode: 'oneOf' | 'anyOf',\n schemas: JSONSchema7[],\n options: IOptions,\n ): FormlyFieldConfig {\n return {\n type: 'multischema',\n fieldGroup: [\n {\n type: 'enum',\n defaultValue: -1,\n templateOptions: {\n multiple: mode === 'anyOf',\n options: schemas\n .map((s, i) => ({ label: s.title, value: i, disabled: s.readOnly })),\n },\n hooks: {\n onInit: f => f.formControl.valueChanges.pipe(\n tap(() => (f.options as any)._checkField(f.parent)),\n ),\n },\n },\n {\n fieldGroup: schemas.map((s, i) => ({\n ...this._toFieldConfig(s, { ...options, resetOnHide: true }),\n hideExpression: (m, fs, f) => {\n const control = f.parent.parent.fieldGroup[0].formControl;\n if (control.value === -1) {\n let value = f.parent.fieldGroup\n .map((f, i) => [f, i] as [FormlyFieldConfig, number])\n .filter(([f, i]) => {\n return this.isFieldValid(f, schemas[i], options);\n })\n .sort(([f1], [f2]) => {\n const matchedFields1 = totalMatchedFields(f1);\n const matchedFields2 = totalMatchedFields(f2);\n if (matchedFields1 === matchedFields2) {\n if (f1.templateOptions.disabled === f2.templateOptions.disabled) {\n return 0;\n }\n\n return f1.templateOptions.disabled ? 1 : -1;\n }\n\n return matchedFields2 > matchedFields1 ? 1 : -1;\n })\n .map(([, i]) => i)\n ;\n\n if (mode === 'anyOf') {\n const definedValue = value.filter(i => totalMatchedFields(f.parent.fieldGroup[i]));\n value = definedValue.length > 0 ? definedValue : [value[0] || 0];\n }\n\n value = value.length > 0 ? value : [0];\n control.setValue(mode === 'anyOf' ? value : value[0]);\n }\n\n return Array.isArray(control.value)\n ? control.value.indexOf(i) === -1\n : control.value !== i;\n },\n })),\n },\n ],\n };\n }\n\n private resolveDefinition(schema: JSONSchema7, options: IOptions): JSONSchema7 {\n const [uri, pointer] = schema.$ref.split('#/');\n if (uri) {\n throw Error(`Remote schemas for ${schema.$ref} not supported yet.`);\n }\n\n const definition = !pointer ? null : pointer.split('/').reduce(\n (def, path) => def && def.hasOwnProperty(path) ? def[path] : null,\n options.schema,\n );\n\n if (!definition) {\n throw Error(`Cannot find a definition for ${schema.$ref}.`);\n }\n\n if (definition.$ref) {\n return this.resolveDefinition(definition, options);\n }\n\n return {\n ...definition,\n ...['title', 'description', 'default'].reduce((annotation, p) => {\n if (schema.hasOwnProperty(p)) {\n annotation[p] = schema[p];\n }\n\n return annotation;\n }, {}),\n };\n }\n\n private resolveDependencies(schema: JSONSchema7) {\n const deps = {};\n const schemaDeps = {};\n\n Object.keys(schema.dependencies || {}).forEach(prop => {\n const dependency = schema.dependencies[prop] as JSONSchema7;\n if (Array.isArray(dependency)) {\n // Property dependencies\n dependency.forEach(dep => {\n if (!deps[dep]) {\n deps[dep] = [prop];\n } else {\n deps[dep].push(prop);\n }\n });\n } else {\n // schema dependencies\n schemaDeps[prop] = dependency;\n }\n });\n\n return [deps, schemaDeps];\n }\n\n private guessType(schema: JSONSchema7) {\n const type = schema.type as JSONSchema7TypeName;\n if (!type && schema.properties) {\n return 'object';\n }\n\n if (Array.isArray(type)) {\n if (type.length === 1) {\n return type[0];\n }\n\n if (type.length === 2 && type.indexOf('null') !== -1) {\n return type[type[0] === 'null' ? 1 : 0];\n }\n }\n\n return type;\n }\n\n private addValidator(field: FormlyFieldConfig, name: string, validator: (control: AbstractControl) => boolean) {\n field.validators = field.validators || {};\n field.validators[name] = validator;\n }\n\n private isEnum(schema: JSONSchema7) {\n return schema.enum\n || (schema.anyOf && schema.anyOf.every(isConst))\n || (schema.oneOf && schema.oneOf.every(isConst))\n || schema.uniqueItems && schema.items && !Array.isArray(schema.items) && this.isEnum(<JSONSchema7> schema.items);\n }\n\n private toEnumOptions(schema: JSONSchema7) {\n if (schema.enum) {\n return schema.enum.map(value => ({ value, label: value }));\n }\n\n const toEnum = (s: JSONSchema7) => {\n const value = s.hasOwnProperty('const') ? s.const : s.enum[0];\n const option: any = { value: value, label: s.title || value };\n if (s.readOnly) {\n option.disabled = true;\n }\n\n return option;\n };\n\n if (schema.anyOf) {\n return schema.anyOf.map(toEnum);\n }\n\n if (schema.oneOf) {\n return schema.oneOf.map(toEnum);\n }\n\n return this.toEnumOptions(<JSONSchema7> schema.items);\n }\n\n private isFieldValid(field: FormlyFieldConfig, schema: JSONSchema7, options: IOptions): boolean {\n const { form } = (field.options as any)._buildField({\n form: new FormGroup({}),\n fieldGroup: [this._toFieldConfig(schema, { ...options, resetOnHide: true, ignoreDefault: true, map: null })],\n model: field.model ? clone(field.model) : (field.fieldArray ? [] : {}),\n });\n\n return form.valid;\n }\n\n private mergeFields(f1: FormlyFieldConfig, f2: FormlyFieldConfig) {\n for (let prop in f2) {\n if (isObject(f1[prop]) && isObject(f2[prop])) {\n f1[prop] = this.mergeFields(f1[prop], f2[prop]);\n } else if (f2[prop] != null) {\n f1[prop] = f2[prop];\n }\n }\n\n return f1;\n }\n}\n"]}
1
+ {"version":3,"sources":["node_modules/tslib/tslib.es6.js","ng://@ngx-formly/core/json-schema/formly-json-schema.service.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__read","o","m","Symbol","iterator","r","ar","next","done","push","value","error","isEmpty","v","undefined","isObject","Array","isArray","isConst","schema","enum","totalMatchedFields","field","fieldGroup","reduce","f","key","getFieldInitialValue","FormlyJsonschema","toFieldConfig","options","_toFieldConfig","_a","_this_1","resolveSchema","type","guessType","defaultValue","default","templateOptions","label","title","readonly","readOnly","description","ignoreDefault","disabled","resetOnHide","shareFormControl","addValidator","parsers","Number","min","minimum","max","maximum","exclusiveMinimum","exclusiveMaximum","step","multipleOf","multiplier","Math","pow","decimalPlaces","a","isFinite","round","schemaType","forEach","prop","_b","resolveDependencies","propDeps_1","schemaDeps_1","keys","properties","property","required","expressionProperties","templateOptions.required","parent","model","some","k","oneOfSchema","oneOf","every","oneOfSchemaItem","constSchema","hideExpression","const","resolveMultiSchema","anyOf","minItems","maxItems","uniqueItems","from","Set","map","JSON","stringify","items","isEnum","_this_2","defineProperty","get","removable","additionalItems","enumerable","configurable","multiple","toEnumOptions","formlyConfig","mergeFields","$ref","resolveDefinition","allOf","resolveAllOf","baseSchema","Error","base","__spread","concat","reverseDeepMerge","mode","schemas","hooks","onInit","formControl","valueChanges","pipe","tap","_checkField","fs","control","filter","isFieldValid","sort","f1","f2","matchedFields1","matchedFields2","definedValue","setValue","split","uri","pointer","definition","def","path","annotation","deps","schemaDeps","dependencies","dependency","dep","name","validator","validators","toEnum","option","_buildField","valid","Injectable","args","providedIn"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { JSONSchema7, JSONSchema7TypeName } from 'json-schema';\nimport { AbstractControl, FormGroup } from '@angular/forms';\nimport {\n ɵreverseDeepMerge as reverseDeepMerge,\n ɵgetFieldInitialValue as getFieldInitialValue,\n ɵclone as clone,\n} from '@ngx-formly/core';\nimport { tap } from 'rxjs/operators';\n\nexport interface FormlyJsonschemaOptions {\n /**\n * allows to intercept the mapping, taking the already mapped\n * formly field and the original JSONSchema source from which it\n * was mapped.\n */\n map?: (mappedField: FormlyFieldConfig, mapSource: JSONSchema7) => FormlyFieldConfig;\n}\n\n// https://stackoverflow.com/a/27865285\nfunction decimalPlaces(a: number) {\n if (!isFinite(a)) {\n return 0;\n }\n\n let e = 1, p = 0;\n while (Math.round(a * e) / e !== a) { e *= 10; p++; }\n\n return p;\n}\n\nfunction isEmpty(v: any) {\n return v === '' || v === undefined || v === null;\n}\n\nfunction isObject(v: any) {\n return v != null && typeof v === 'object' && !Array.isArray(v);\n}\n\nfunction isConst(schema: JSONSchema7) {\n return schema.hasOwnProperty('const') || (schema.enum && schema.enum.length === 1);\n}\n\nfunction totalMatchedFields(field: FormlyFieldConfig): number {\n if (!field.fieldGroup) {\n return field.key && getFieldInitialValue(field) !== undefined ? 1 : 0;\n }\n\n return field.fieldGroup.reduce((s, f) => totalMatchedFields(f) + s, 0);\n}\n\ninterface IOptions extends FormlyJsonschemaOptions {\n schema: JSONSchema7;\n resetOnHide?: boolean;\n shareFormControl?: boolean;\n ignoreDefault?: boolean;\n readOnly?: boolean;\n key?: FormlyFieldConfig['key'];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FormlyJsonschema {\n toFieldConfig(schema: JSONSchema7, options?: FormlyJsonschemaOptions): FormlyFieldConfig {\n return this._toFieldConfig(schema, { schema, ...(options || {}) });\n }\n\n private _toFieldConfig(schema: JSONSchema7, { key, ...options }: IOptions): FormlyFieldConfig {\n schema = this.resolveSchema(schema, options);\n\n let field: FormlyFieldConfig = {\n type: this.guessType(schema),\n defaultValue: schema.default,\n templateOptions: {\n label: schema.title,\n readonly: schema.readOnly,\n description: schema.description,\n },\n };\n\n if (key != null) {\n field.key = key;\n }\n\n if (!options.ignoreDefault && (schema.readOnly || options.readOnly)) {\n field.templateOptions.disabled = true;\n options = { ...options, readOnly: true };\n }\n\n if (options.resetOnHide) {\n field['resetOnHide'] = true;\n }\n\n if (options.shareFormControl === false) {\n field['shareFormControl'] = false;\n }\n\n if (options.ignoreDefault) {\n delete field.defaultValue;\n }\n\n switch (field.type) {\n case 'null': {\n this.addValidator(field, 'null', ({ value }) => value === null);\n break;\n }\n case 'number':\n case 'integer': {\n field.parsers = [v => isEmpty(v) ? null : Number(v)];\n if (schema.hasOwnProperty('minimum')) {\n field.templateOptions.min = schema.minimum;\n }\n\n if (schema.hasOwnProperty('maximum')) {\n field.templateOptions.max = schema.maximum;\n }\n\n if (schema.hasOwnProperty('exclusiveMinimum')) {\n field.templateOptions.exclusiveMinimum = schema.exclusiveMinimum;\n this.addValidator(field, 'exclusiveMinimum', ({ value }) => isEmpty(value) || (value > schema.exclusiveMinimum));\n }\n\n if (schema.hasOwnProperty('exclusiveMaximum')) {\n field.templateOptions.exclusiveMaximum = schema.exclusiveMaximum;\n this.addValidator(field, 'exclusiveMaximum', ({ value }) => isEmpty(value) || (value < schema.exclusiveMaximum));\n }\n\n if (schema.hasOwnProperty('multipleOf')) {\n field.templateOptions.step = schema.multipleOf;\n this.addValidator(field, 'multipleOf', ({ value }) => {\n if (isEmpty(value) || typeof value !== 'number' || value === 0 || schema.multipleOf <= 0) {\n return true;\n }\n\n // https://github.com/ajv-validator/ajv/issues/652#issue-283610859\n const multiplier = Math.pow(10, decimalPlaces(schema.multipleOf));\n return Math.round(value * multiplier) % Math.round(schema.multipleOf * multiplier) === 0;\n });\n }\n break;\n }\n case 'string': {\n const schemaType = schema.type as JSONSchema7TypeName;\n if (Array.isArray(schemaType) && (schemaType.indexOf('null') !== -1)) {\n field.parsers = [v => isEmpty(v) ? null : v];\n }\n\n ['minLength', 'maxLength', 'pattern'].forEach(prop => {\n if (schema.hasOwnProperty(prop)) {\n field.templateOptions[prop] = schema[prop];\n }\n });\n break;\n }\n case 'object': {\n field.fieldGroup = [];\n\n const [propDeps, schemaDeps] = this.resolveDependencies(schema);\n Object.keys(schema.properties || {}).forEach(property => {\n const f = this._toFieldConfig(<JSONSchema7> schema.properties[property], { ...options, key: property });\n field.fieldGroup.push(f);\n if (\n (Array.isArray(schema.required) && schema.required.indexOf(property) !== -1)\n || propDeps[property]\n ) {\n f.expressionProperties = {\n ...(f.expressionProperties || {}),\n 'templateOptions.required': (m, s, f) => {\n let parent = f.parent;\n const model = f.fieldGroup && f.key != null ? parent.model : f.model;\n while (parent.key == null && parent.parent) {\n parent = parent.parent;\n }\n\n const required = parent && parent.templateOptions ? parent.templateOptions.required : false;\n if (!model && !required) {\n return false;\n }\n\n if (Array.isArray(schema.required) && schema.required.indexOf(property) !== -1) {\n return true;\n }\n\n return propDeps[property] && (m && propDeps[property].some(k => !isEmpty(m[k])));\n },\n };\n }\n\n if (schemaDeps[property]) {\n const getConstValue = (s: JSONSchema7) => {\n return s.hasOwnProperty('const') ? s.const : s.enum[0];\n };\n\n const oneOfSchema = schemaDeps[property].oneOf;\n if (\n oneOfSchema\n && oneOfSchema.every(o => o.properties && o.properties[property] && isConst(o.properties[property]))\n ) {\n oneOfSchema.forEach(oneOfSchemaItem => {\n const { [property]: constSchema, ...properties } = oneOfSchemaItem.properties;\n field.fieldGroup.push({\n ...this._toFieldConfig({ ...oneOfSchemaItem, properties }, { ...options, resetOnHide: true }),\n hideExpression: m => !m || getConstValue(constSchema) !== m[property],\n });\n });\n } else {\n field.fieldGroup.push({\n ...this._toFieldConfig(schemaDeps[property], options),\n hideExpression: m => !m || isEmpty(m[property]),\n });\n }\n\n }\n });\n\n if (schema.oneOf) {\n field.fieldGroup.push(this.resolveMultiSchema(\n 'oneOf',\n <JSONSchema7[]> schema.oneOf,\n { ...options, shareFormControl: false },\n ));\n }\n\n if (schema.anyOf) {\n field.fieldGroup.push(this.resolveMultiSchema(\n 'anyOf',\n <JSONSchema7[]> schema.anyOf,\n options,\n ));\n }\n break;\n }\n case 'array': {\n if (schema.hasOwnProperty('minItems')) {\n field.templateOptions.minItems = schema.minItems;\n this.addValidator(field, 'minItems', ({ value }) => isEmpty(value) || (value.length >= schema.minItems));\n }\n if (schema.hasOwnProperty('maxItems')) {\n field.templateOptions.maxItems = schema.maxItems;\n this.addValidator(field, 'maxItems', ({ value }) => isEmpty(value) || (value.length <= schema.maxItems));\n }\n if (schema.hasOwnProperty('uniqueItems')) {\n field.templateOptions.uniqueItems = schema.uniqueItems;\n this.addValidator(field, 'uniqueItems', ({ value }) => {\n if (isEmpty(value) || !schema.uniqueItems) {\n return true;\n }\n\n const uniqueItems = Array.from(\n new Set(value.map((v: any) => JSON.stringify(v))),\n );\n\n return uniqueItems.length === value.length;\n });\n }\n\n // resolve items schema needed for isEnum check\n if (schema.items && !Array.isArray(schema.items)) {\n schema.items = this.resolveSchema(<JSONSchema7> schema.items, options);\n }\n\n // TODO: remove isEnum check once adding an option to skip extension\n if (!this.isEnum(schema)) {\n const _this = this;\n Object.defineProperty(field, 'fieldArray', {\n get: function () {\n if (schema.items && !Array.isArray(schema.items)) {\n // When items is a single schema, the additionalItems keyword is meaningless, and it should not be used.\n return _this._toFieldConfig(<JSONSchema7> schema.items, options);\n }\n\n const length = this.fieldGroup ? this.fieldGroup.length : 0;\n if (schema.items && schema.items[length]) {\n const f = _this._toFieldConfig(<JSONSchema7> schema.items[length], { ...options});\n f.templateOptions.removable = false;\n\n return f;\n }\n\n return schema.additionalItems\n ? _this._toFieldConfig(<JSONSchema7> schema.additionalItems, options)\n : {};\n },\n enumerable: true,\n configurable: true,\n });\n }\n\n break;\n }\n }\n\n if (schema.hasOwnProperty('const')) {\n field.templateOptions.const = schema.const;\n this.addValidator(field, 'const', ({ value }) => value === schema.const);\n if (!field.type) {\n field.defaultValue = schema.const;\n }\n }\n\n if (this.isEnum(schema)) {\n field.templateOptions.multiple = field.type === 'array';\n field.type = 'enum';\n field.templateOptions.options = this.toEnumOptions(schema);\n }\n\n // map in possible formlyConfig options from the widget property\n if (schema['widget'] && schema['widget'].formlyConfig) {\n field = this.mergeFields(field, schema['widget'].formlyConfig);\n }\n\n // if there is a map function passed in, use it to allow the user to\n // further customize how fields are being mapped\n return options.map ? options.map(field, schema) : field;\n }\n\n private resolveSchema(schema: JSONSchema7, options: IOptions) {\n if (schema && schema.$ref) {\n schema = this.resolveDefinition(schema, options);\n }\n\n if (schema && schema.allOf) {\n schema = this.resolveAllOf(schema, options);\n }\n\n return schema;\n }\n\n private resolveAllOf({ allOf, ...baseSchema }: JSONSchema7, options: IOptions) {\n if (!allOf.length) {\n throw Error(`allOf array can not be empty ${allOf}.`);\n }\n\n return allOf.reduce((base: JSONSchema7, schema: JSONSchema7) => {\n schema = this.resolveSchema(schema, options);\n if (base.required && schema.required) {\n base.required = [...base.required, ...schema.required];\n }\n\n if (schema.uniqueItems) {\n base.uniqueItems = schema.uniqueItems;\n }\n\n // resolve to min value\n ['maxLength', 'maximum', 'exclusiveMaximum', 'maxItems', 'maxProperties']\n .forEach(prop => {\n if (!isEmpty(base[prop]) && !isEmpty(schema[prop])) {\n base[prop] = base[prop] < schema[prop] ? base[prop] : schema[prop];\n }\n });\n\n // resolve to max value\n ['minLength', 'minimum', 'exclusiveMinimum', 'minItems', 'minProperties']\n .forEach(prop => {\n if (!isEmpty(base[prop]) && !isEmpty(schema[prop])) {\n base[prop] = base[prop] > schema[prop] ? base[prop] : schema[prop];\n }\n });\n\n return reverseDeepMerge(base, schema);\n }, baseSchema);\n }\n\n private resolveMultiSchema(\n mode: 'oneOf' | 'anyOf',\n schemas: JSONSchema7[],\n options: IOptions,\n ): FormlyFieldConfig {\n return {\n type: 'multischema',\n fieldGroup: [\n {\n type: 'enum',\n defaultValue: -1,\n templateOptions: {\n multiple: mode === 'anyOf',\n options: schemas\n .map((s, i) => ({ label: s.title, value: i, disabled: s.readOnly })),\n },\n hooks: {\n onInit: f => f.formControl.valueChanges.pipe(\n tap(() => (f.options as any)._checkField(f.parent)),\n ),\n },\n },\n {\n fieldGroup: schemas.map((s, i) => ({\n ...this._toFieldConfig(s, { ...options, resetOnHide: true }),\n hideExpression: (m, fs, f) => {\n const control = f.parent.parent.fieldGroup[0].formControl;\n if (control.value === -1) {\n let value = f.parent.fieldGroup\n .map((f, i) => [f, i] as [FormlyFieldConfig, number])\n .filter(([f, i]) => {\n return this.isFieldValid(f, schemas[i], options);\n })\n .sort(([f1], [f2]) => {\n const matchedFields1 = totalMatchedFields(f1);\n const matchedFields2 = totalMatchedFields(f2);\n if (matchedFields1 === matchedFields2) {\n if (f1.templateOptions.disabled === f2.templateOptions.disabled) {\n return 0;\n }\n\n return f1.templateOptions.disabled ? 1 : -1;\n }\n\n return matchedFields2 > matchedFields1 ? 1 : -1;\n })\n .map(([, i]) => i)\n ;\n\n if (mode === 'anyOf') {\n const definedValue = value.filter(i => totalMatchedFields(f.parent.fieldGroup[i]));\n value = definedValue.length > 0 ? definedValue : [value[0] || 0];\n }\n\n value = value.length > 0 ? value : [0];\n control.setValue(mode === 'anyOf' ? value : value[0]);\n }\n\n return Array.isArray(control.value)\n ? control.value.indexOf(i) === -1\n : control.value !== i;\n },\n })),\n },\n ],\n };\n }\n\n private resolveDefinition(schema: JSONSchema7, options: IOptions): JSONSchema7 {\n const [uri, pointer] = schema.$ref.split('#/');\n if (uri) {\n throw Error(`Remote schemas for ${schema.$ref} not supported yet.`);\n }\n\n const definition = !pointer ? null : pointer.split('/').reduce(\n (def, path) => def && def.hasOwnProperty(path) ? def[path] : null,\n options.schema,\n );\n\n if (!definition) {\n throw Error(`Cannot find a definition for ${schema.$ref}.`);\n }\n\n if (definition.$ref) {\n return this.resolveDefinition(definition, options);\n }\n\n return {\n ...definition,\n ...['title', 'description', 'default', 'widget'].reduce((annotation, p) => {\n if (schema.hasOwnProperty(p)) {\n annotation[p] = schema[p];\n }\n\n return annotation;\n }, {}),\n };\n }\n\n private resolveDependencies(schema: JSONSchema7) {\n const deps = {};\n const schemaDeps = {};\n\n Object.keys(schema.dependencies || {}).forEach(prop => {\n const dependency = schema.dependencies[prop] as JSONSchema7;\n if (Array.isArray(dependency)) {\n // Property dependencies\n dependency.forEach(dep => {\n if (!deps[dep]) {\n deps[dep] = [prop];\n } else {\n deps[dep].push(prop);\n }\n });\n } else {\n // schema dependencies\n schemaDeps[prop] = dependency;\n }\n });\n\n return [deps, schemaDeps];\n }\n\n private guessType(schema: JSONSchema7) {\n const type = schema ? schema.type as JSONSchema7TypeName : null;\n if (!type && schema && schema.properties) {\n return 'object';\n }\n\n if (Array.isArray(type)) {\n if (type.length === 1) {\n return type[0];\n }\n\n if (type.length === 2 && type.indexOf('null') !== -1) {\n return type[type[0] === 'null' ? 1 : 0];\n }\n }\n\n return type;\n }\n\n private addValidator(field: FormlyFieldConfig, name: string, validator: (control: AbstractControl) => boolean) {\n field.validators = field.validators || {};\n field.validators[name] = validator;\n }\n\n private isEnum(schema: JSONSchema7) {\n return schema.enum\n || (schema.anyOf && schema.anyOf.every(isConst))\n || (schema.oneOf && schema.oneOf.every(isConst))\n || schema.uniqueItems && schema.items && !Array.isArray(schema.items) && this.isEnum(<JSONSchema7> schema.items);\n }\n\n private toEnumOptions(schema: JSONSchema7) {\n if (schema.enum) {\n return schema.enum.map(value => ({ value, label: value }));\n }\n\n const toEnum = (s: JSONSchema7) => {\n const value = s.hasOwnProperty('const') ? s.const : s.enum[0];\n const option: any = { value: value, label: s.title || value };\n if (s.readOnly) {\n option.disabled = true;\n }\n\n return option;\n };\n\n if (schema.anyOf) {\n return schema.anyOf.map(toEnum);\n }\n\n if (schema.oneOf) {\n return schema.oneOf.map(toEnum);\n }\n\n return this.toEnumOptions(<JSONSchema7> schema.items);\n }\n\n private isFieldValid(field: FormlyFieldConfig, schema: JSONSchema7, options: IOptions): boolean {\n const { form } = (field.options as any)._buildField({\n form: new FormGroup({}),\n fieldGroup: [this._toFieldConfig(schema, { ...options, resetOnHide: true, ignoreDefault: true, map: null })],\n model: field.model ? clone(field.model) : (field.fieldArray ? [] : {}),\n });\n\n return form.valid;\n }\n\n private mergeFields(f1: FormlyFieldConfig, f2: FormlyFieldConfig) {\n for (let prop in f2) {\n if (isObject(f1[prop]) && isObject(f2[prop])) {\n f1[prop] = this.mergeFields(f1[prop], f2[prop]);\n } else if (f2[prop] != null) {\n f1[prop] = f2[prop];\n }\n }\n\n return f1;\n }\n}\n"]}
@@ -1473,7 +1473,7 @@
1473
1473
  * @param {?} field
1474
1474
  * @return {?}
1475
1475
  */function (field) {
1476
- if (field.key && !field.fieldGroup) {
1476
+ if (field.key && !field.fieldGroup && field.formControl) {
1477
1477
  /** @type {?} */
1478
1478
  var control_1 = field.formControl;
1479
1479
  /** @type {?} */
@@ -1589,6 +1589,7 @@
1589
1589
  this.hostObservers = [];
1590
1590
  this.componentRefs = [];
1591
1591
  this.hooksObservers = [];
1592
+ this.detectFieldBuild = false;
1592
1593
  this.warnDeprecation = hideDeprecation === null;
1593
1594
  }
1594
1595
  Object.defineProperty(FormlyField.prototype, "model", {
@@ -1665,6 +1666,9 @@
1665
1666
  */
1666
1667
  function () {
1667
1668
  this.triggerHook('doCheck');
1669
+ if (this.detectFieldBuild && (this.field && this.field.options)) {
1670
+ this.render();
1671
+ }
1668
1672
  };
1669
1673
  /**
1670
1674
  * @return {?}
@@ -1828,6 +1832,12 @@
1828
1832
  if (!this.field) {
1829
1833
  return;
1830
1834
  }
1835
+ // require Formly build
1836
+ if (!this.field.options) {
1837
+ this.detectFieldBuild = true;
1838
+ return;
1839
+ }
1840
+ this.detectFieldBuild = false;
1831
1841
  this.hostObservers.forEach(( /**
1832
1842
  * @param {?} unsubscribe
1833
1843
  * @return {?}
@@ -1847,9 +1857,15 @@
1847
1857
  else {
1848
1858
  if (currentValue) {
1849
1859
  _this.containerRef.clear();
1860
+ if (_this.field.className) {
1861
+ _this.renderer.removeAttribute(_this.elementRef.nativeElement, 'class');
1862
+ }
1850
1863
  }
1851
1864
  else {
1852
1865
  _this.renderField(_this.containerRef, _this.field);
1866
+ if (_this.field.className) {
1867
+ _this.renderer.setAttribute(_this.elementRef.nativeElement, 'class', _this.field.className);
1868
+ }
1853
1869
  }
1854
1870
  }
1855
1871
  })),
@@ -1858,7 +1874,8 @@
1858
1874
  * @return {?}
1859
1875
  */function (_a) {
1860
1876
  var firstChange = _a.firstChange, currentValue = _a.currentValue;
1861
- if (!firstChange || (firstChange && currentValue)) {
1877
+ if ((!firstChange || (firstChange && currentValue))
1878
+ && (!_this.formlyConfig.extras.lazyRender || (_this.field.hide !== true))) {
1862
1879
  _this.renderer.setAttribute(_this.elementRef.nativeElement, 'class', currentValue);
1863
1880
  }
1864
1881
  })),
@@ -2006,7 +2023,11 @@
2006
2023
  Object.keys(currentValue).forEach(( /**
2007
2024
  * @param {?} attr
2008
2025
  * @return {?}
2009
- */function (attr) { return _this.setAttribute(attr, currentValue[attr]); }));
2026
+ */function (attr) {
2027
+ if (currentValue[attr] != null) {
2028
+ _this.setAttribute(attr, currentValue[attr]);
2029
+ }
2030
+ }));
2010
2031
  }
2011
2032
  }));
2012
2033
  }
@@ -2061,7 +2082,8 @@
2061
2082
  */function (attr) {
2062
2083
  /** @type {?} */
2063
2084
  var value = _this.to[attr];
2064
- if (_this.uiAttributesCache[attr] !== value) {
2085
+ if (_this.uiAttributesCache[attr] !== value
2086
+ && (!_this.to.attributes || !_this.to.attributes.hasOwnProperty(attr.toLowerCase()))) {
2065
2087
  _this.uiAttributesCache[attr] = value;
2066
2088
  if (value || value === 0) {
2067
2089
  _this.setAttribute(attr, value === true ? attr : "" + value);
@@ -2890,7 +2912,8 @@
2890
2912
  if (ignoreCache === void 0) {
2891
2913
  ignoreCache = false;
2892
2914
  }
2893
- this._checkField(field, ignoreCache);
2915
+ /** @type {?} */
2916
+ var fieldChanged = this._checkField(field, ignoreCache);
2894
2917
  field.options._hiddenFieldsForCheck
2895
2918
  .sort(( /**
2896
2919
  * @param {?} f
@@ -2901,6 +2924,12 @@
2901
2924
  * @return {?}
2902
2925
  */function (f) { return _this.toggleFormControl(f, !!f.hide, !ignoreCache); }));
2903
2926
  field.options._hiddenFieldsForCheck = [];
2927
+ if (fieldChanged) {
2928
+ this.checkField(field);
2929
+ if (field.options && field.options._markForCheck) {
2930
+ field.options._markForCheck(field);
2931
+ }
2932
+ }
2904
2933
  };
2905
2934
  /**
2906
2935
  * @private
@@ -2920,23 +2949,24 @@
2920
2949
  ignoreCache = false;
2921
2950
  }
2922
2951
  /** @type {?} */
2923
- var markForCheck = false;
2952
+ var fieldChanged = false;
2924
2953
  field.fieldGroup.forEach(( /**
2925
2954
  * @param {?} f
2926
2955
  * @return {?}
2927
2956
  */function (f) {
2928
- _this.checkFieldExpressionChange(f, ignoreCache) && (markForCheck = true);
2957
+ if (!f.options) {
2958
+ return;
2959
+ }
2960
+ _this.checkFieldExpressionChange(f, ignoreCache) && (fieldChanged = true);
2929
2961
  if (_this.checkFieldVisibilityChange(f, ignoreCache)) {
2930
2962
  field.options._hiddenFieldsForCheck.push(f);
2931
- markForCheck = true;
2963
+ fieldChanged = true;
2932
2964
  }
2933
2965
  if (f.fieldGroup && f.fieldGroup.length > 0) {
2934
- _this._checkField(f, ignoreCache);
2966
+ _this._checkField(f, ignoreCache) && (fieldChanged = true);
2935
2967
  }
2936
2968
  }));
2937
- if (markForCheck && field.options && field.options._markForCheck) {
2938
- field.options._markForCheck(field);
2939
- }
2969
+ return fieldChanged;
2940
2970
  };
2941
2971
  /**
2942
2972
  * @private
@@ -2965,7 +2995,9 @@
2965
2995
  expressionValue = !!expressionValue;
2966
2996
  }
2967
2997
  if (ignoreCache || (expressionProperties[key].expressionValue !== expressionValue
2968
- && (!isObject(expressionValue) || JSON.stringify(expressionValue) !== JSON.stringify(expressionProperties[key].expressionValue)))) {
2998
+ && (!isObject(expressionValue)
2999
+ || rxjs.isObservable(expressionValue)
3000
+ || JSON.stringify(expressionValue) !== JSON.stringify(expressionProperties[key].expressionValue)))) {
2969
3001
  markForCheck = true;
2970
3002
  expressionProperties[key].expressionValue = expressionValue;
2971
3003
  this.setExprValue(field, key, expressionValue);
@@ -3050,13 +3082,13 @@
3050
3082
  defineHiddenProp(field, '_hide', !!(hide || field.hide));
3051
3083
  /** @type {?} */
3052
3084
  var c = field.formControl;
3053
- if (c['_fields'].length > 1) {
3085
+ if (c['_fields'] && c['_fields'].length > 1) {
3054
3086
  updateValidity(c);
3055
3087
  }
3056
- if (hide === true && c['_fields'].every(( /**
3088
+ if (hide === true && (!c['_fields'] || c['_fields'].every(( /**
3057
3089
  * @param {?} f
3058
3090
  * @return {?}
3059
- */function (f) { return !!f._hide; }))) {
3091
+ */function (f) { return !!f._hide; })))) {
3060
3092
  unregisterControl(field, true);
3061
3093
  if (resetOnHide && field.resetOnHide) {
3062
3094
  field.formControl.reset({ value: undefined, disabled: field.formControl.disabled });
@@ -3112,7 +3144,15 @@
3112
3144
  /** @type {?} */
3113
3145
  var target = field;
3114
3146
  /** @type {?} */
3115
- var paths = (prop.indexOf('[') === -1 ? prop : prop.replace(/\[(\w+)\]/g, '.$1')).split('.');
3147
+ var paths = prop.indexOf('[') === -1
3148
+ ? prop.split('.')
3149
+ : prop
3150
+ .replace(/\'|\"/g, '')
3151
+ .split(/[[\]]{1,2}/) // https://stackoverflow.com/a/20198206
3152
+ .filter(( /**
3153
+ * @param {?} v
3154
+ * @return {?}
3155
+ */function (v) { return v; }));
3116
3156
  /** @type {?} */
3117
3157
  var lastIndex = paths.length - 1;
3118
3158
  for (var i = 0; i < lastIndex; i++) {
@@ -3135,7 +3175,7 @@
3135
3175
  if (control
3136
3176
  && !(isNullOrUndefined(control.value) && isNullOrUndefined(value))
3137
3177
  && control.value !== value) {
3138
- control.patchValue(value, { emitEvent: false });
3178
+ control.patchValue(value);
3139
3179
  }
3140
3180
  }
3141
3181
  this.emitExpressionChanges(field, prop, value);
@@ -3546,25 +3586,27 @@
3546
3586
  var c_1 = field.formControl;
3547
3587
  /** @type {?} */
3548
3588
  var disabled = field.templateOptions ? field.templateOptions.disabled : false;
3549
- if (disabled && c_1.enabled) {
3550
- c_1.disable({ emitEvent: false, onlySelf: true });
3551
- if (!c_1.parent) {
3552
- updateValidity(c_1);
3553
- }
3554
- else {
3555
- updateValidity$$1 = true;
3556
- }
3557
- }
3558
- if (!disabled && c_1.disabled) {
3559
- c_1.enable({ emitEvent: false, onlySelf: true });
3560
- if (!c_1.parent) {
3561
- updateValidity(c_1);
3589
+ if (field.key && c_1) {
3590
+ if (disabled && c_1.enabled) {
3591
+ c_1.disable({ emitEvent: false, onlySelf: true });
3592
+ if (!c_1.parent) {
3593
+ updateValidity(c_1);
3594
+ }
3595
+ else {
3596
+ updateValidity$$1 = true;
3597
+ }
3562
3598
  }
3563
- else {
3564
- updateValidity$$1 = true;
3599
+ if (!disabled && c_1.disabled) {
3600
+ c_1.enable({ emitEvent: false, onlySelf: true });
3601
+ if (!c_1.parent) {
3602
+ updateValidity(c_1);
3603
+ }
3604
+ else {
3605
+ updateValidity$$1 = true;
3606
+ }
3565
3607
  }
3566
3608
  }
3567
- if (null === c_1.validator || null === c_1.asyncValidator) {
3609
+ if (c_1 && (null === c_1.validator || null === c_1.asyncValidator)) {
3568
3610
  c_1.setValidators(( /**
3569
3611
  * @return {?}
3570
3612
  */function () {