@ngx-formly/core 5.10.26 → 5.10.30

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 (45) hide show
  1. package/README.md +10 -8
  2. package/bundles/ngx-formly-core-json-schema.umd.js +6 -2
  3. package/bundles/ngx-formly-core-json-schema.umd.js.map +1 -1
  4. package/bundles/ngx-formly-core-json-schema.umd.min.js +1 -1
  5. package/bundles/ngx-formly-core-json-schema.umd.min.js.map +1 -1
  6. package/bundles/ngx-formly-core.umd.js +67 -139
  7. package/bundles/ngx-formly-core.umd.js.map +1 -1
  8. package/bundles/ngx-formly-core.umd.min.js +1 -1
  9. package/bundles/ngx-formly-core.umd.min.js.map +1 -1
  10. package/esm2015/json-schema/formly-json-schema.service.js +8 -4
  11. package/esm2015/lib/core.js +2 -2
  12. package/esm2015/lib/extensions/core/core.js +2 -1
  13. package/esm2015/lib/extensions/field-expression/field-expression.js +16 -19
  14. package/esm2015/lib/extensions/field-form/field-form.js +16 -51
  15. package/esm2015/lib/extensions/field-form/utils.js +19 -6
  16. package/esm2015/lib/services/formly.form.builder.js +3 -6
  17. package/esm2015/lib/templates/formly.validation-message.js +14 -3
  18. package/esm2015/lib/utils.js +1 -41
  19. package/esm2015/ngx-formly-core.js +2 -2
  20. package/esm2015/public_api.js +2 -2
  21. package/esm5/json-schema/formly-json-schema.service.js +8 -4
  22. package/esm5/lib/core.js +2 -2
  23. package/esm5/lib/extensions/core/core.js +2 -1
  24. package/esm5/lib/extensions/field-expression/field-expression.js +16 -19
  25. package/esm5/lib/extensions/field-form/field-form.js +16 -51
  26. package/esm5/lib/extensions/field-form/utils.js +20 -6
  27. package/esm5/lib/services/formly.form.builder.js +3 -7
  28. package/esm5/lib/templates/formly.validation-message.js +15 -3
  29. package/esm5/lib/utils.js +4 -58
  30. package/esm5/ngx-formly-core.js +2 -2
  31. package/esm5/public_api.js +2 -2
  32. package/fesm2015/ngx-formly-core-json-schema.js +7 -3
  33. package/fesm2015/ngx-formly-core-json-schema.js.map +1 -1
  34. package/fesm2015/ngx-formly-core.js +62 -119
  35. package/fesm2015/ngx-formly-core.js.map +1 -1
  36. package/fesm5/ngx-formly-core-json-schema.js +7 -3
  37. package/fesm5/ngx-formly-core-json-schema.js.map +1 -1
  38. package/fesm5/ngx-formly-core.js +69 -139
  39. package/fesm5/ngx-formly-core.js.map +1 -1
  40. package/json-schema/ngx-formly-core-json-schema.metadata.json +1 -1
  41. package/lib/core.d.ts +1 -1
  42. package/lib/extensions/field-form/utils.d.ts +1 -1
  43. package/lib/utils.d.ts +0 -2
  44. package/ngx-formly-core.metadata.json +1 -1
  45. 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","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","forceUpdate","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) ? (v === '' ? null : v) : 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, forceUpdate?: boolean) => {\n const control = f.parent.parent.fieldGroup[0].formControl;\n if ((control.value === -1) || forceUpdate) {\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"]}
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","key","getFieldValue","total","reduce","f","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","forceUpdate","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 ɵgetFieldValue as getFieldValue,\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 && getFieldValue(field) !== undefined ? 1 : 0;\n }\n\n const total = field.fieldGroup.reduce((s, f) => totalMatchedFields(f) + s, 0);\n return total === 0\n ? field.key && getFieldValue(field) !== undefined ? 1 : 0\n : total;\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) ? (v === '' ? null : v) : 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, forceUpdate?: boolean) => {\n const control = f.parent.parent.fieldGroup[0].formControl;\n if ((control.value === -1) || forceUpdate) {\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"]}
@@ -196,50 +196,12 @@
196
196
  }
197
197
  model[paths[paths.length - 1]] = clone(value);
198
198
  }
199
- /**
200
- * @param {?} field
201
- * @return {?}
202
- */
203
- function getFieldInitialValue(field) {
204
- var e_1, _a;
205
- /** @type {?} */
206
- var value = field.options['_initialModel'];
207
- /** @type {?} */
208
- var paths = getKeyPath(field);
209
- while (field.parent) {
210
- field = field.parent;
211
- paths = __spread(getKeyPath(field), paths);
212
- }
213
- try {
214
- for (var paths_1 = __values(paths), paths_1_1 = paths_1.next(); !paths_1_1.done; paths_1_1 = paths_1.next()) {
215
- var path = paths_1_1.value;
216
- if (!value) {
217
- return undefined;
218
- }
219
- value = value[path];
220
- }
221
- }
222
- catch (e_1_1) {
223
- e_1 = { error: e_1_1 };
224
- }
225
- finally {
226
- try {
227
- if (paths_1_1 && !paths_1_1.done && (_a = paths_1.return))
228
- _a.call(paths_1);
229
- }
230
- finally {
231
- if (e_1)
232
- throw e_1.error;
233
- }
234
- }
235
- return value;
236
- }
237
199
  /**
238
200
  * @param {?} field
239
201
  * @return {?}
240
202
  */
241
203
  function getFieldValue(field) {
242
- var e_2, _a;
204
+ var e_1, _a;
243
205
  /** @type {?} */
244
206
  var model = field.parent.model;
245
207
  try {
@@ -251,8 +213,8 @@
251
213
  model = model[path];
252
214
  }
253
215
  }
254
- catch (e_2_1) {
255
- e_2 = { error: e_2_1 };
216
+ catch (e_1_1) {
217
+ e_1 = { error: e_1_1 };
256
218
  }
257
219
  finally {
258
220
  try {
@@ -260,8 +222,8 @@
260
222
  _a.call(_b);
261
223
  }
262
224
  finally {
263
- if (e_2)
264
- throw e_2.error;
225
+ if (e_1)
226
+ throw e_1.error;
265
227
  }
266
228
  }
267
229
  return model;
@@ -459,27 +421,6 @@
459
421
  * @return {?}
460
422
  */function () { return fns.splice(fns.indexOf(setFn), 1); });
461
423
  }
462
- /**
463
- * @param {?} form
464
- * @param {?} action
465
- * @return {?}
466
- */
467
- function reduceFormUpdateValidityCalls(form, action) {
468
- /** @type {?} */
469
- var updateValidity = form._updateTreeValidity.bind(form);
470
- /** @type {?} */
471
- var updateValidityArgs = { called: false, emitEvent: false };
472
- form._updateTreeValidity = ( /**
473
- * @param {?=} __0
474
- * @return {?}
475
- */function (_a) {
476
- var emitEvent = (_a === void 0 ? { emitEvent: true } : _a).emitEvent;
477
- return updateValidityArgs = { called: true, emitEvent: emitEvent || updateValidityArgs.emitEvent };
478
- });
479
- action();
480
- updateValidityArgs.called && updateValidity({ emitEvent: updateValidityArgs.emitEvent });
481
- form._updateTreeValidity = updateValidity;
482
- }
483
424
 
484
425
  /**
485
426
  * @fileoverview added by tsickle
@@ -854,7 +795,6 @@
854
795
  * @return {?}
855
796
  */
856
797
  function (formControl, fieldGroup, model, options) {
857
- var _this = this;
858
798
  if (fieldGroup === void 0) {
859
799
  fieldGroup = [];
860
800
  }
@@ -863,9 +803,7 @@
863
803
  }
864
804
  /** @type {?} */
865
805
  var field = { fieldGroup: fieldGroup, model: model, formControl: formControl, options: this._setOptions(options) };
866
- reduceFormUpdateValidityCalls(formControl, ( /**
867
- * @return {?}
868
- */function () { return _this._buildForm(field); }));
806
+ this._buildForm(field);
869
807
  field.options._checkField(field, true);
870
808
  };
871
809
  /**
@@ -1007,13 +945,18 @@
1007
945
  emitEvent = false;
1008
946
  }
1009
947
  /** @type {?} */
1010
- var form = ( /** @type {?} */(field.formControl.parent));
948
+ var control = field.formControl;
949
+ /** @type {?} */
950
+ var fieldIndex = control['_fields'] ? control['_fields'].indexOf(field) : -1;
951
+ if (fieldIndex !== -1) {
952
+ control['_fields'].splice(fieldIndex, 1);
953
+ }
954
+ /** @type {?} */
955
+ var form = ( /** @type {?} */(control.parent));
1011
956
  if (!form) {
1012
957
  return;
1013
958
  }
1014
959
  /** @type {?} */
1015
- var control = field.formControl;
1016
- /** @type {?} */
1017
960
  var opts = { emitEvent: emitEvent };
1018
961
  if (form instanceof forms.FormArray) {
1019
962
  /** @type {?} */
@@ -1134,15 +1077,24 @@
1134
1077
  }
1135
1078
  /**
1136
1079
  * @param {?} c
1080
+ * @param {?=} onlySelf
1137
1081
  * @return {?}
1138
1082
  */
1139
- function updateValidity(c) {
1083
+ function updateValidity(c, onlySelf) {
1084
+ if (onlySelf === void 0) {
1085
+ onlySelf = false;
1086
+ }
1140
1087
  /** @type {?} */
1141
1088
  var status = c.status;
1142
- c.updateValueAndValidity({ emitEvent: false });
1089
+ /** @type {?} */
1090
+ var value = c.value;
1091
+ c.updateValueAndValidity({ emitEvent: false, onlySelf: onlySelf });
1143
1092
  if (status !== c.status) {
1144
1093
  (( /** @type {?} */(c.statusChanges))).emit(c.status);
1145
1094
  }
1095
+ if (value !== c.value) {
1096
+ (( /** @type {?} */(c.valueChanges))).emit(c.value);
1097
+ }
1146
1098
  }
1147
1099
  /**
1148
1100
  * @param {?} form
@@ -1192,6 +1144,8 @@
1192
1144
  */
1193
1145
  function clearControl(form) {
1194
1146
  form['_fields'] && delete form['_fields'];
1147
+ form.setValidators(null);
1148
+ form.setAsyncValidators(null);
1195
1149
  if (form instanceof forms.FormGroup || form instanceof forms.FormArray) {
1196
1150
  Object.keys(form.controls)
1197
1151
  .forEach(( /**
@@ -2563,9 +2517,19 @@
2563
2517
  */
2564
2518
  function () {
2565
2519
  var _this = this;
2566
- this.errorMessage$ = this.field.formControl.statusChanges.pipe(operators.startWith(null), operators.switchMap(( /**
2567
- * @return {?}
2568
- */function () {
2520
+ this.errorMessage$ = rxjs.merge(this.field.formControl.statusChanges, (!this.field.options
2521
+ ? rxjs.of(null)
2522
+ : this.field.options.fieldChanges.pipe(operators.filter(( /**
2523
+ * @param {?} __0
2524
+ * @return {?}
2525
+ */function (_a) {
2526
+ var field = _a.field, type = _a.type, property = _a.property;
2527
+ return (field === _this.field)
2528
+ && (type === 'expressionChanges')
2529
+ && (property.indexOf('validation') !== -1);
2530
+ }))))).pipe(operators.startWith(null), operators.switchMap(( /**
2531
+ * @return {?}
2532
+ */function () {
2569
2533
  return rxjs.isObservable(_this.errorMessage)
2570
2534
  ? _this.errorMessage
2571
2535
  : rxjs.of(_this.errorMessage);
@@ -2740,9 +2704,7 @@
2740
2704
  */function (f, ignoreCache) {
2741
2705
  if (!checkLocked) {
2742
2706
  checkLocked = true;
2743
- reduceFormUpdateValidityCalls(f.formControl, ( /**
2744
- * @return {?}
2745
- */function () { return _this.checkField(f, ignoreCache); }));
2707
+ _this.checkField(f, ignoreCache);
2746
2708
  checkLocked = false;
2747
2709
  }
2748
2710
  });
@@ -3083,6 +3045,17 @@
3083
3045
  */
3084
3046
  function (field, hide, resetOnHide) {
3085
3047
  var _this = this;
3048
+ if (field.fieldGroup) {
3049
+ field.fieldGroup
3050
+ .filter(( /**
3051
+ * @param {?} f
3052
+ * @return {?}
3053
+ */function (f) { return !f.hideExpression; }))
3054
+ .forEach(( /**
3055
+ * @param {?} f
3056
+ * @return {?}
3057
+ */function (f) { return _this.toggleFormControl(f, hide, resetOnHide); }));
3058
+ }
3086
3059
  if (field.formControl && field.key) {
3087
3060
  defineHiddenProp(field, '_hide', !!(hide || field.hide));
3088
3061
  /** @type {?} */
@@ -3115,17 +3088,6 @@
3115
3088
  }
3116
3089
  }
3117
3090
  }
3118
- if (field.fieldGroup) {
3119
- field.fieldGroup
3120
- .filter(( /**
3121
- * @param {?} f
3122
- * @return {?}
3123
- */function (f) { return !f.hideExpression; }))
3124
- .forEach(( /**
3125
- * @param {?} f
3126
- * @return {?}
3127
- */function (f) { return _this.toggleFormControl(f, hide, resetOnHide); }));
3128
- }
3129
3091
  if (field.options.fieldChanges) {
3130
3092
  field.options.fieldChanges.next(( /** @type {?} */({ field: field, type: 'hidden', value: hide })));
3131
3093
  }
@@ -3520,22 +3482,7 @@
3520
3482
  if (field.parent) {
3521
3483
  return;
3522
3484
  }
3523
- /** @type {?} */
3524
- var fieldsToUpdate = this.setValidators(field);
3525
- if (fieldsToUpdate.length === 0) {
3526
- return;
3527
- }
3528
- if (fieldsToUpdate.length === 1) {
3529
- /** @type {?} */
3530
- var control = fieldsToUpdate[0].formControl;
3531
- while (control) {
3532
- (( /** @type {?} */(control)))._updateTreeValidity({ onlySelf: true });
3533
- control = control.parent;
3534
- }
3535
- }
3536
- else {
3537
- (( /** @type {?} */(field.formControl)))._updateTreeValidity();
3538
- }
3485
+ this.setValidators(field);
3539
3486
  };
3540
3487
  /**
3541
3488
  * @private
@@ -3586,7 +3533,11 @@
3586
3533
  function (field) {
3587
3534
  var _this = this;
3588
3535
  /** @type {?} */
3589
- var updateValidity$$1 = false;
3536
+ var markForCheck = false;
3537
+ (field.fieldGroup || []).forEach(( /**
3538
+ * @param {?} f
3539
+ * @return {?}
3540
+ */function (f) { return _this.setValidators(f) && (markForCheck = true); }));
3590
3541
  if (field.key || !field.parent || (!field.key && !field.fieldGroup)) {
3591
3542
  var c_1 = field.formControl;
3592
3543
  /** @type {?} */
@@ -3594,21 +3545,11 @@
3594
3545
  if (field.key && c_1) {
3595
3546
  if (disabled && c_1.enabled) {
3596
3547
  c_1.disable({ emitEvent: false, onlySelf: true });
3597
- if (!c_1.parent) {
3598
- updateValidity(c_1);
3599
- }
3600
- else {
3601
- updateValidity$$1 = true;
3602
- }
3548
+ markForCheck = true;
3603
3549
  }
3604
3550
  if (!disabled && c_1.disabled) {
3605
3551
  c_1.enable({ emitEvent: false, onlySelf: true });
3606
- if (!c_1.parent) {
3607
- updateValidity(c_1);
3608
- }
3609
- else {
3610
- updateValidity$$1 = true;
3611
- }
3552
+ markForCheck = true;
3612
3553
  }
3613
3554
  }
3614
3555
  if (c_1 && (null === c_1.validator || null === c_1.asyncValidator)) {
@@ -3626,27 +3567,13 @@
3626
3567
  var v = forms.Validators.composeAsync(_this.mergeValidators(field, '_asyncValidators'));
3627
3568
  return v ? v(c_1) : rxjs.of(null);
3628
3569
  }));
3629
- if (!c_1.parent) {
3630
- updateValidity(c_1);
3631
- }
3632
- else {
3633
- updateValidity$$1 = true;
3634
- }
3570
+ markForCheck = true;
3635
3571
  }
3636
- }
3637
- /** @type {?} */
3638
- var fieldsToUpdate = updateValidity$$1 ? [field] : [];
3639
- (field.fieldGroup || []).forEach(( /**
3640
- * @param {?} f
3641
- * @return {?}
3642
- */function (f) {
3643
- /** @type {?} */
3644
- var childrenToUpdate = _this.setValidators(f);
3645
- if (!updateValidity$$1) {
3646
- fieldsToUpdate.push.apply(fieldsToUpdate, __spread(childrenToUpdate));
3572
+ if (markForCheck) {
3573
+ updateValidity(c_1, true);
3647
3574
  }
3648
- }));
3649
- return fieldsToUpdate;
3575
+ }
3576
+ return markForCheck;
3650
3577
  };
3651
3578
  /**
3652
3579
  * @private
@@ -3812,6 +3739,7 @@
3812
3739
  id: getFieldId("formly_" + this.formId, field, field['index']),
3813
3740
  hooks: {},
3814
3741
  modelOptions: {},
3742
+ validation: { messages: {} },
3815
3743
  templateOptions: !field.type || !field.key ? {} : {
3816
3744
  label: '',
3817
3745
  placeholder: '',
@@ -4056,7 +3984,7 @@
4056
3984
  exports.FormlyModule = FormlyModule;
4057
3985
  exports.ɵdefineHiddenProp = defineHiddenProp;
4058
3986
  exports.ɵreverseDeepMerge = reverseDeepMerge;
4059
- exports.ɵgetFieldInitialValue = getFieldInitialValue;
3987
+ exports.ɵgetFieldValue = getFieldValue;
4060
3988
  exports.ɵclone = clone;
4061
3989
  exports.ɵwrapProperty = wrapProperty;
4062
3990
  exports.ɵa = defaultFormlyConfig;