@ngx-formly/core 6.3.7 → 6.3.8

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.
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRjb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29yZS9zcmMvbGliL21vZGVscy9maWVsZGNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRm9ybUdyb3VwLFxuICBGb3JtQXJyYXksXG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICBWYWxpZGF0b3JGbixcbiAgQXN5bmNWYWxpZGF0b3JGbixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi4vdGVtcGxhdGVzL2ZpZWxkLnR5cGUnO1xuaW1wb3J0IHsgRmllbGRXcmFwcGVyIH0gZnJvbSAnLi4vdGVtcGxhdGVzL2ZpZWxkLndyYXBwZXInO1xuaW1wb3J0IHsgVmFsaWRhdGlvbk1lc3NhZ2VPcHRpb24gfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1seUZpZWxkQ29uZmlnPFByb3BzID0gRm9ybWx5RmllbGRQcm9wcyAmIHsgW2FkZGl0aW9uYWxQcm9wZXJ0aWVzOiBzdHJpbmddOiBhbnkgfT4ge1xuICAvKipcbiAgICogVGhlIGtleSB0aGF0IHJlbGF0ZXMgdG8gdGhlIG1vZGVsLiBUaGlzIHdpbGwgbGluayB0aGUgZmllbGQgdmFsdWUgdG8gdGhlIG1vZGVsXG4gICAqL1xuICBrZXk/OiBzdHJpbmcgfCBudW1iZXIgfCAoc3RyaW5nIHwgbnVtYmVyKVtdO1xuXG4gIC8qKlxuICAgKiBUaGlzIHNob3VsZCBiZSBhIGZvcm1seS1maWVsZCB0eXBlIGFkZGVkIGVpdGhlciBieSB5b3Ugb3IgYSBwbHVnaW4uIE1vcmUgaW5mb3JtYXRpb24gb3ZlciBhdCBDcmVhdGluZyBGb3JtbHkgRmllbGRzLlxuICAgKi9cbiAgdHlwZT86IHN0cmluZyB8IFR5cGU8RmllbGRUeXBlPjtcblxuICAvKipcbiAgICogVXNlIGBkZWZhdWx0VmFsdWVgIHRvIGluaXRpYWxpemUgaXQgdGhlIG1vZGVsLiBJZiB0aGlzIGlzIHByb3ZpZGVkIGFuZCB0aGUgdmFsdWUgb2YgdGhlIG1vZGVsIGF0IGNvbXBpbGUtdGltZSBpcyB1bmRlZmluZWQsIHRoZW4gdGhlIHZhbHVlIG9mIHRoZSBtb2RlbCB3aWxsIGJlIGFzc2lnbmVkIHRvIGBkZWZhdWx0VmFsdWVgLlxuICAgKi9cbiAgZGVmYXVsdFZhbHVlPzogYW55O1xuXG4gIC8qKlxuICAgKiBUaGlzIGFsbG93cyB5b3UgdG8gc3BlY2lmeSB0aGUgYGlkYCBvZiB5b3VyIGZpZWxkLiBOb3RlLCB0aGUgYGlkYCBpcyBnZW5lcmF0ZWQgaWYgbm90IHNldC5cbiAgICovXG4gIGlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2lzaCwgeW91IGNhbiBzcGVjaWZ5IGEgc3BlY2lmaWMgYG5hbWVgIGZvciB5b3VyIGZpZWxkLiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UncmUgcG9zdGluZyB0aGUgZm9ybSB0byBhIHNlcnZlciB1c2luZyB0ZWNobmlxdWVzIG9mIHllc3Rlci15ZWFyLlxuICAgKi9cbiAgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhpcyBpcyByZXNlcnZlZCBmb3IgdGhlIHRlbXBsYXRlcy4gQW55IHRlbXBsYXRlLXNwZWNpZmljIG9wdGlvbnMgZ28gaW4gaGVyZS4gTG9vayBhdCB5b3VyIHNwZWNpZmljIHRlbXBsYXRlIGltcGxlbWVudGF0aW9uIHRvIGtub3cgdGhlIG9wdGlvbnMgcmVxdWlyZWQgZm9yIHRoaXMuXG4gICAqL1xuICBwcm9wcz86IFByb3BzO1xuXG4gIC8qKiBAZGVwcmVjYXRlZCBVc2UgYHByb3BzYCBpbnN0ZWFkLiAqL1xuICB0ZW1wbGF0ZU9wdGlvbnM/OiBGb3JtbHlUZW1wbGF0ZU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIEFuIG9iamVjdCB3aXRoIGEgZmV3IHVzZWZ1bCBwcm9wZXJ0aWVzXG4gICAqIC0gYHZhbGlkYXRpb24ubWVzc2FnZXNgOiBBIG1hcCBvZiBtZXNzYWdlIG5hbWVzIHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQgd2hlbiB0aGUgZmllbGQgaGFzIGVycm9ycy5cbiAgICogLSBgdmFsaWRhdGlvbi5zaG93YDogQSBib29sZWFuIHlvdSBhcyB0aGUgZGV2ZWxvcGVyIGNhbiBzZXQgdG8gZm9yY2UgZGlzcGxheWluZyBlcnJvcnMgd2hhdGV2ZXIgdGhlIHN0YXRlIG9mIGZpZWxkLiBUaGlzIGlzIHVzZWZ1bCB3aGVuIHlvdSdyZSB0cnlpbmcgdG8gY2FsbCB0aGUgdXNlcidzIGF0dGVudGlvbiB0byBzb21lIGZpZWxkcyBmb3Igc29tZSByZWFzb24uXG4gICAqL1xuICB2YWxpZGF0aW9uPzoge1xuICAgIG1lc3NhZ2VzPzogeyBbbWVzc2FnZVByb3BlcnRpZXM6IHN0cmluZ106IFZhbGlkYXRpb25NZXNzYWdlT3B0aW9uWydtZXNzYWdlJ10gfSAmIHtcbiAgICAgIC8qKiBAZGVwcmVjYXRlZCB1c2UgYG1pbkxlbmd0aGAgKi9cbiAgICAgIG1pbmxlbmd0aD86IFZhbGlkYXRpb25NZXNzYWdlT3B0aW9uWydtZXNzYWdlJ107XG5cbiAgICAgIC8qKiBAZGVwcmVjYXRlZCB1c2UgYG1heExlbmd0aGAgKi9cbiAgICAgIG1heGxlbmd0aD86IFZhbGlkYXRpb25NZXNzYWdlT3B0aW9uWydtZXNzYWdlJ107XG4gICAgfTtcbiAgICBzaG93PzogYm9vbGVhbjtcbiAgICBbYWRkaXRpb25hbFByb3BlcnRpZXM6IHN0cmluZ106IGFueTtcbiAgfTtcblxuICAvKipcbiAgICogVXNlZCB0byBzZXQgdmFsaWRhdGlvbiBydWxlcyBmb3IgYSBwYXJ0aWN1bGFyIGZpZWxkLlxuICAgKiBTaG91bGQgYmUgYW4gb2JqZWN0IG9mIGtleSAtIHZhbHVlIHBhaXJzLiBUaGUgdmFsdWUgY2FuIGVpdGhlciBiZSBhbiBleHByZXNzaW9uIHRvIGV2YWx1YXRlIG9yIGEgZnVuY3Rpb24gdG8gcnVuLlxuICAgKiBFYWNoIHNob3VsZCByZXR1cm4gYSBib29sZWFuIHZhbHVlLCByZXR1cm5pbmcgdHJ1ZSB3aGVuIHRoZSBmaWVsZCBpcyB2YWxpZC4gU2VlIFZhbGlkYXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gICAqL1xuICB2YWxpZGF0b3JzPzogRm9ybWx5VmFsaWRhdGlvbjxWYWxpZGF0b3JGbiwgYm9vbGVhbj47XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIG9uZSBmb3IgYW55dGhpbmcgdGhhdCBuZWVkcyB0byB2YWxpZGF0ZSBhc3luY2hyb25vdXNseS5cbiAgICogUHJldHR5IG11Y2ggZXhhY3RseSB0aGUgc2FtZSBhcyB0aGUgdmFsaWRhdG9ycyBhcGksIGV4Y2VwdCBpdCBtdXN0IGJlIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZS5cbiAgICovXG4gIGFzeW5jVmFsaWRhdG9ycz86IEZvcm1seVZhbGlkYXRpb248QXN5bmNWYWxpZGF0b3JGbiwgUHJvbWlzZTxib29sZWFuPiB8IE9ic2VydmFibGU8Ym9vbGVhbj4+O1xuXG4gIC8qKlxuICAgKiBDYW4gYmUgc2V0IGluc3RlYWQgb2YgYHR5cGVgIHRvIHJlbmRlciBjdXN0b20gaHRtbCBjb250ZW50LlxuICAgKi9cbiAgdGVtcGxhdGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBJdCBpcyBleHBlY3RlZCB0byBiZSB0aGUgbmFtZSBvZiB0aGUgd3JhcHBlcnMuXG4gICAqICBUaGUgZm9ybWx5IGZpZWxkIHRlbXBsYXRlIHdpbGwgYmUgd3JhcHBlZCBieSB0aGUgZmlyc3Qgd3JhcHBlciwgdGhlbiB0aGUgc2Vjb25kLCB0aGVuIHRoZSB0aGlyZCwgZXRjLlxuICAgKiAgWW91IGNhbiBhbHNvIHNwZWNpZnkgdGhlc2UgYXMgcGFydCBvZiBhIHR5cGUgKHdoaWNoIGlzIHRoZSByZWNvbW1lbmRlZCBhcHByb2FjaCkuXG4gICAqL1xuICB3cmFwcGVycz86IChzdHJpbmcgfCBUeXBlPEZpZWxkV3JhcHBlcj4pW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaGlkZSB0aGUgZmllbGQuIERlZmF1bHRzIHRvIGZhbHNlLiBJZiB5b3Ugd2lzaCB0aGlzIHRvIGJlIGNvbmRpdGlvbmFsIHVzZSBgZXhwcmVzc2lvbnM6IHsgaGlkZTogLi4uIH1gXG4gICAqL1xuICBoaWRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byByZXNldCB0aGUgdmFsdWUgb24gaGlkZSBvciBub3QuIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICovXG4gIHJlc2V0T25IaWRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29uZGl0aW9uYWxseSBoaWRpbmcgRmllbGQgYmFzZWQgb24gdmFsdWVzIGZyb20gb3RoZXIgRmllbGRzXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgZXhwcmVzc2lvbnM6IHsgaGlkZTogLi4uIH1gXG4gICAqL1xuICBoaWRlRXhwcmVzc2lvbj86IGJvb2xlYW4gfCBzdHJpbmcgfCAoKG1vZGVsOiBhbnksIGZvcm1TdGF0ZTogYW55LCBmaWVsZD86IEZvcm1seUZpZWxkQ29uZmlnKSA9PiBib29sZWFuKTtcblxuICAvKipcbiAgICogQW4gb2JqZWN0IHdoZXJlIHRoZSBrZXkgaXMgYSBwcm9wZXJ0eSB0byBiZSBzZXQgb24gdGhlIG1haW4gZmllbGQgY29uZmlnIGFuZCB0aGUgdmFsdWUgaXMgYW4gZXhwcmVzc2lvbiB1c2VkIHRvIGFzc2lnbiB0aGF0IHByb3BlcnR5LlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYGV4cHJlc3Npb25zYFxuICAgKi9cbiAgZXhwcmVzc2lvblByb3BlcnRpZXM/OiB7XG4gICAgW3Byb3BlcnR5OiBzdHJpbmddOiBzdHJpbmcgfCAoKG1vZGVsOiBhbnksIGZvcm1TdGF0ZTogYW55LCBmaWVsZD86IEZvcm1seUZpZWxkQ29uZmlnKSA9PiBhbnkpIHwgT2JzZXJ2YWJsZTxhbnk+O1xuICB9O1xuXG4gIC8qKlxuICAgKiBBbiBvYmplY3Qgd2hlcmUgdGhlIGtleSBpcyBhIHByb3BlcnR5IHRvIGJlIHNldCBvbiB0aGUgbWFpbiBmaWVsZCBjb25maWcgYW5kIHRoZSB2YWx1ZSBpcyBhbiBleHByZXNzaW9uIHVzZWQgdG8gYXNzaWduIHRoYXQgcHJvcGVydHkuXG4gICAqL1xuICBleHByZXNzaW9ucz86IHtcbiAgICBbcHJvcGVydHk6IHN0cmluZ106IHN0cmluZyB8ICgoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiBhbnkpIHwgT2JzZXJ2YWJsZTxhbnk+O1xuICB9O1xuXG4gIC8qKlxuICAgKiBZb3UgY2FuIHNwZWNpZnkgeW91ciBvd24gY2xhc3MgdGhhdCB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIGBmb3JtbHktZmllbGRgIGNvbXBvbmVudC5cbiAgICovXG4gIGNsYXNzTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmeSB5b3VyIG93biBjbGFzcyB0aGF0IHdpbGwgYmUgYXBwbGllZCB0byB0aGUgYGZvcm1seS1ncm91cGAgY29tcG9uZW50LlxuICAgKi9cbiAgZmllbGRHcm91cENsYXNzTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBmaWVsZCBncm91cCBpcyBhIHdheSB0byBncm91cCBmaWVsZHMgdG9nZXRoZXIsIG1ha2luZyBhZHZhbmNlZCBsYXlvdXQgdmVyeSBzaW1wbGUuXG4gICAqIEl0IGNhbiBhbHNvIGJlIHVzZWQgdG8gZ3JvdXAgZmllbGRzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2FtZSBtb2RlbCAodXNlZnVsIGlmIGl0J3MgZGlmZmVyZW50IHRoYW4gdGhlIG1vZGVsIGZvciB0aGUgcmVzdCBvZiB0aGUgZmllbGRzKS5cbiAgICovXG4gIGZpZWxkR3JvdXA/OiBGb3JtbHlGaWVsZENvbmZpZ1tdO1xuXG4gIGZpZWxkQXJyYXk/OiBGb3JtbHlGaWVsZENvbmZpZyB8ICgoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiBGb3JtbHlGaWVsZENvbmZpZyk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZm9jdXMgb3IgYmx1ciB0aGUgZWxlbWVudCBmaWVsZC4gRGVmYXVsdHMgdG8gZmFsc2UuIElmIHlvdSB3aXNoIHRoaXMgdG8gYmUgY29uZGl0aW9uYWwgdXNlIGBleHByZXNzaW9uc2BcbiAgICovXG4gIGZvY3VzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQW4gb2JqZWN0IHdpdGggYSBmZXcgdXNlZnVsIHByb3BlcnRpZXMgdG8gY29udHJvbCB0aGUgbW9kZWwgY2hhbmdlc1xuICAgKiAtIGBkZWJvdW5jZWA6IGludGVnZXIgdmFsdWUgd2hpY2ggY29udGFpbnMgdGhlIGRlYm91bmNlIG1vZGVsIHVwZGF0ZSB2YWx1ZSBpbiBtaWxsaXNlY29uZHMuIEEgdmFsdWUgb2YgMCB0cmlnZ2VycyBhbiBpbW1lZGlhdGUgdXBkYXRlLlxuICAgKiAtIGB1cGRhdGVPbmA6IHN0cmluZyBldmVudCB2YWx1ZSB0aGF0IGluc3RydWN0cyB3aGVuIHRoZSBjb250cm9sIHNob3VsZCBiZSB1cGRhdGVkXG4gICAqL1xuICBtb2RlbE9wdGlvbnM/OiB7XG4gICAgZGVib3VuY2U/OiB7XG4gICAgICBkZWZhdWx0OiBudW1iZXI7XG4gICAgfTtcbiAgICAvLyBAc2VlIGh0dHBzOi8vYW5ndWxhci5pby9hcGkvZm9ybXMvQWJzdHJhY3RDb250cm9sI3VwZGF0ZU9uXG4gICAgdXBkYXRlT24/OiAnY2hhbmdlJyB8ICdibHVyJyB8ICdzdWJtaXQnO1xuICB9O1xuXG4gIGhvb2tzPzogRm9ybWx5SG9va0NvbmZpZztcblxuICAvKipcbiAgICogQXJyYXkgb2YgZnVuY3Rpb25zIHRvIGV4ZWN1dGUsIGFzIGEgcGlwZWxpbmUsIHdoZW5ldmVyIHRoZSBtb2RlbCB1cGRhdGVzLCB1c3VhbGx5IHZpYSB1c2VyIGlucHV0LlxuICAgKi9cbiAgcGFyc2Vycz86ICgodmFsdWU6IGFueSkgPT4gYW55KVtdO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGNoaWxkIGZpZWxkIGJ5IGtleSBuYW1lXG4gICAqL1xuICBnZXQ/OiAoa2V5OiBGb3JtbHlGaWVsZENvbmZpZ1sna2V5J10pID0+IEZvcm1seUZpZWxkQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9kZWwgdGhhdCBzdG9yZXMgYWxsIHRoZSBkYXRhLCB3aGVyZSB0aGUgbW9kZWxba2V5XSBpcyB0aGUgdmFsdWUgb2YgdGhlIGZpZWxkXG4gICAqL1xuICByZWFkb25seSBtb2RlbD86IGFueTtcblxuICAvKipcbiAgICogVGhlIHBhcmVudCBmaWVsZC5cbiAgICovXG4gIHJlYWRvbmx5IHBhcmVudD86IEZvcm1seUZpZWxkQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9ybSBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgb3B0aW9ucz86IEZvcm1seUZvcm1PcHRpb25zO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyZW50IGZvcm0uXG4gICAqL1xuICByZWFkb25seSBmb3JtPzogRm9ybUdyb3VwIHwgRm9ybUFycmF5O1xuXG4gIC8qKlxuICAgKiBUaGlzIGlzIHRoZSBbRm9ybUNvbnRyb2xdKGh0dHBzOi8vYW5ndWxhci5pby9hcGkvZm9ybXMvRm9ybUNvbnRyb2wpIGZvciB0aGUgZmllbGQuXG4gICAqIEl0IHByb3ZpZGVzIHlvdSBtb3JlIGNvbnRyb2wgbGlrZSBydW5uaW5nIHZhbGlkYXRvcnMsIGNhbGN1bGF0aW5nIHN0YXR1cywgYW5kIHJlc2V0dGluZyBzdGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGZvcm1Db250cm9sPzogQWJzdHJhY3RDb250cm9sO1xuXG4gIC8qKiBAZGVwcmVjYXRlZCAqL1xuICBvcHRpb25zVHlwZXM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IHR5cGUgRm9ybWx5QXR0cmlidXRlRXZlbnQgPSAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnLCBldmVudD86IGFueSkgPT4gdm9pZDtcblxuLyoqICBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3JtbHlUZW1wbGF0ZU9wdGlvbnMgZXh0ZW5kcyBGb3JtbHlGaWVsZFByb3BzIHtcbiAgW2FkZGl0aW9uYWxQcm9wZXJ0aWVzOiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybWx5RmllbGRQcm9wcyB7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBvcHRpb25zPzogYW55W10gfCBPYnNlcnZhYmxlPGFueVtdPjtcbiAgcm93cz86IG51bWJlcjtcbiAgY29scz86IG51bWJlcjtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIG1heD86IG51bWJlcjtcbiAgbWluPzogbnVtYmVyO1xuXG4gIG1pbkxlbmd0aD86IG51bWJlcjtcbiAgLyoqIEBkZXByZWNhdGVkIHVzZSBgbWluTGVuZ3RoYCAqL1xuICBtaW5sZW5ndGg/OiBudW1iZXI7XG5cbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogQGRlcHJlY2F0ZWQgdXNlIGBtYXhMZW5ndGhgICovXG4gIG1heGxlbmd0aD86IG51bWJlcjtcblxuICBwYXR0ZXJuPzogc3RyaW5nIHwgUmVnRXhwO1xuICByZXF1aXJlZD86IGJvb2xlYW47XG4gIHRhYmluZGV4PzogbnVtYmVyO1xuICByZWFkb25seT86IGJvb2xlYW47XG4gIGF0dHJpYnV0ZXM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB9O1xuICBzdGVwPzogbnVtYmVyO1xuICBmb2N1cz86IEZvcm1seUF0dHJpYnV0ZUV2ZW50O1xuICBibHVyPzogRm9ybWx5QXR0cmlidXRlRXZlbnQ7XG4gIGtleXVwPzogRm9ybWx5QXR0cmlidXRlRXZlbnQ7XG4gIGtleWRvd24/OiBGb3JtbHlBdHRyaWJ1dGVFdmVudDtcbiAgY2xpY2s/OiBGb3JtbHlBdHRyaWJ1dGVFdmVudDtcbiAgY2hhbmdlPzogRm9ybWx5QXR0cmlidXRlRXZlbnQ7XG4gIGtleXByZXNzPzogRm9ybWx5QXR0cmlidXRlRXZlbnQ7XG59XG5cbmV4cG9ydCB0eXBlIEZvcm1seUhvb2tGbiA9IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IHZvaWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybWx5SG9va0NvbmZpZyB7XG4gIG9uSW5pdD86IEZvcm1seUhvb2tGbiB8ICgoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiBPYnNlcnZhYmxlPGFueT4pO1xuICBvbkNoYW5nZXM/OiBGb3JtbHlIb29rRm47XG4gIGFmdGVyQ29udGVudEluaXQ/OiBGb3JtbHlIb29rRm47XG4gIGFmdGVyVmlld0luaXQ/OiBGb3JtbHlIb29rRm47XG4gIG9uRGVzdHJveT86IEZvcm1seUhvb2tGbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtbHlGb3JtT3B0aW9ucyB7XG4gIHVwZGF0ZUluaXRpYWxWYWx1ZT86IChtb2RlbD86IGFueSkgPT4gdm9pZDtcbiAgcmVzZXRNb2RlbD86IChtb2RlbD86IGFueSkgPT4gdm9pZDtcbiAgZm9ybVN0YXRlPzogYW55O1xuICBmaWVsZENoYW5nZXM/OiBTdWJqZWN0PEZvcm1seVZhbHVlQ2hhbmdlRXZlbnQ+O1xuICBzaG93RXJyb3I/OiAoZmllbGQ6IEZpZWxkVHlwZSkgPT4gYm9vbGVhbjtcbiAgYnVpbGQ/OiAoZmllbGQ/OiBGb3JtbHlGaWVsZENvbmZpZykgPT4gRm9ybWx5RmllbGRDb25maWc7XG4gIGNoZWNrRXhwcmVzc2lvbnM/OiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB2b2lkO1xuICBkZXRlY3RDaGFuZ2VzPzogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4gdm9pZDtcbiAgcGFyZW50Rm9ybT86IEZvcm1Hcm91cERpcmVjdGl2ZSB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybWx5VmFsdWVDaGFuZ2VFdmVudCB7XG4gIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZztcbiAgdHlwZTogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xuICBbbWV0YTogc3RyaW5nXTogYW55O1xufVxuXG5pbnRlcmZhY2UgRm9ybWx5VmFsaWRhdGlvbjxULCBSPiB7XG4gIHZhbGlkYXRpb24/OiAoc3RyaW5nIHwgVClbXSB8IGFueTtcbiAgW2tleTogc3RyaW5nXTogRm9ybWx5VmFsaWRhdG9yRm48Uj4gfCBGb3JtbHlWYWxpZGF0b3JFeHByZXNzaW9uRm48Uj4gfCBhbnk7XG59XG50eXBlIEZvcm1seVZhbGlkYXRvckZuPFQ+ID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiBUO1xuXG5pbnRlcmZhY2UgRm9ybWx5VmFsaWRhdG9yRXhwcmVzc2lvbkZuPFQ+IHtcbiAgZXhwcmVzc2lvbjogRm9ybWx5VmFsaWRhdG9yRm48VD47XG4gIG1lc3NhZ2U6IHN0cmluZyB8ICgoZXJyb3I6IGFueSwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiBzdHJpbmcgfCBPYnNlcnZhYmxlPHN0cmluZz4pO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRjb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29yZS9zcmMvbGliL21vZGVscy9maWVsZGNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRm9ybUdyb3VwLFxuICBGb3JtQXJyYXksXG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICBWYWxpZGF0b3JGbixcbiAgQXN5bmNWYWxpZGF0b3JGbixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi4vdGVtcGxhdGVzL2ZpZWxkLnR5cGUnO1xuaW1wb3J0IHsgRmllbGRXcmFwcGVyIH0gZnJvbSAnLi4vdGVtcGxhdGVzL2ZpZWxkLndyYXBwZXInO1xuaW1wb3J0IHsgVmFsaWRhdGlvbk1lc3NhZ2VPcHRpb24gfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG50eXBlIEV4cHJlc3Npb25UeXBlPFQgPSBhbnk+ID0gc3RyaW5nIHwgKChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IFQpIHwgT2JzZXJ2YWJsZTxUPjtcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtbHlGaWVsZENvbmZpZzxQcm9wcyA9IEZvcm1seUZpZWxkUHJvcHMgJiB7IFthZGRpdGlvbmFsUHJvcGVydGllczogc3RyaW5nXTogYW55IH0+IHtcbiAgLyoqXG4gICAqIFRoZSBrZXkgdGhhdCByZWxhdGVzIHRvIHRoZSBtb2RlbC4gVGhpcyB3aWxsIGxpbmsgdGhlIGZpZWxkIHZhbHVlIHRvIHRoZSBtb2RlbFxuICAgKi9cbiAga2V5Pzogc3RyaW5nIHwgbnVtYmVyIHwgKHN0cmluZyB8IG51bWJlcilbXTtcblxuICAvKipcbiAgICogVGhpcyBzaG91bGQgYmUgYSBmb3JtbHktZmllbGQgdHlwZSBhZGRlZCBlaXRoZXIgYnkgeW91IG9yIGEgcGx1Z2luLiBNb3JlIGluZm9ybWF0aW9uIG92ZXIgYXQgQ3JlYXRpbmcgRm9ybWx5IEZpZWxkcy5cbiAgICovXG4gIHR5cGU/OiBzdHJpbmcgfCBUeXBlPEZpZWxkVHlwZT47XG5cbiAgLyoqXG4gICAqIFVzZSBgZGVmYXVsdFZhbHVlYCB0byBpbml0aWFsaXplIGl0IHRoZSBtb2RlbC4gSWYgdGhpcyBpcyBwcm92aWRlZCBhbmQgdGhlIHZhbHVlIG9mIHRoZSBtb2RlbCBhdCBjb21waWxlLXRpbWUgaXMgdW5kZWZpbmVkLCB0aGVuIHRoZSB2YWx1ZSBvZiB0aGUgbW9kZWwgd2lsbCBiZSBhc3NpZ25lZCB0byBgZGVmYXVsdFZhbHVlYC5cbiAgICovXG4gIGRlZmF1bHRWYWx1ZT86IGFueTtcblxuICAvKipcbiAgICogVGhpcyBhbGxvd3MgeW91IHRvIHNwZWNpZnkgdGhlIGBpZGAgb2YgeW91ciBmaWVsZC4gTm90ZSwgdGhlIGBpZGAgaXMgZ2VuZXJhdGVkIGlmIG5vdCBzZXQuXG4gICAqL1xuICBpZD86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgeW91IHdpc2gsIHlvdSBjYW4gc3BlY2lmeSBhIHNwZWNpZmljIGBuYW1lYCBmb3IgeW91ciBmaWVsZC4gVGhpcyBpcyB1c2VmdWwgaWYgeW91J3JlIHBvc3RpbmcgdGhlIGZvcm0gdG8gYSBzZXJ2ZXIgdXNpbmcgdGVjaG5pcXVlcyBvZiB5ZXN0ZXIteWVhci5cbiAgICovXG4gIG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoaXMgaXMgcmVzZXJ2ZWQgZm9yIHRoZSB0ZW1wbGF0ZXMuIEFueSB0ZW1wbGF0ZS1zcGVjaWZpYyBvcHRpb25zIGdvIGluIGhlcmUuIExvb2sgYXQgeW91ciBzcGVjaWZpYyB0ZW1wbGF0ZSBpbXBsZW1lbnRhdGlvbiB0byBrbm93IHRoZSBvcHRpb25zIHJlcXVpcmVkIGZvciB0aGlzLlxuICAgKi9cbiAgcHJvcHM/OiBQcm9wcztcblxuICAvKiogQGRlcHJlY2F0ZWQgVXNlIGBwcm9wc2AgaW5zdGVhZC4gKi9cbiAgdGVtcGxhdGVPcHRpb25zPzogRm9ybWx5VGVtcGxhdGVPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBBbiBvYmplY3Qgd2l0aCBhIGZldyB1c2VmdWwgcHJvcGVydGllc1xuICAgKiAtIGB2YWxpZGF0aW9uLm1lc3NhZ2VzYDogQSBtYXAgb2YgbWVzc2FnZSBuYW1lcyB0aGF0IHdpbGwgYmUgZGlzcGxheWVkIHdoZW4gdGhlIGZpZWxkIGhhcyBlcnJvcnMuXG4gICAqIC0gYHZhbGlkYXRpb24uc2hvd2A6IEEgYm9vbGVhbiB5b3UgYXMgdGhlIGRldmVsb3BlciBjYW4gc2V0IHRvIGZvcmNlIGRpc3BsYXlpbmcgZXJyb3JzIHdoYXRldmVyIHRoZSBzdGF0ZSBvZiBmaWVsZC4gVGhpcyBpcyB1c2VmdWwgd2hlbiB5b3UncmUgdHJ5aW5nIHRvIGNhbGwgdGhlIHVzZXIncyBhdHRlbnRpb24gdG8gc29tZSBmaWVsZHMgZm9yIHNvbWUgcmVhc29uLlxuICAgKi9cbiAgdmFsaWRhdGlvbj86IHtcbiAgICBtZXNzYWdlcz86IHsgW21lc3NhZ2VQcm9wZXJ0aWVzOiBzdHJpbmddOiBWYWxpZGF0aW9uTWVzc2FnZU9wdGlvblsnbWVzc2FnZSddIH0gJiB7XG4gICAgICAvKiogQGRlcHJlY2F0ZWQgdXNlIGBtaW5MZW5ndGhgICovXG4gICAgICBtaW5sZW5ndGg/OiBWYWxpZGF0aW9uTWVzc2FnZU9wdGlvblsnbWVzc2FnZSddO1xuXG4gICAgICAvKiogQGRlcHJlY2F0ZWQgdXNlIGBtYXhMZW5ndGhgICovXG4gICAgICBtYXhsZW5ndGg/OiBWYWxpZGF0aW9uTWVzc2FnZU9wdGlvblsnbWVzc2FnZSddO1xuICAgIH07XG4gICAgc2hvdz86IGJvb2xlYW47XG4gICAgW2FkZGl0aW9uYWxQcm9wZXJ0aWVzOiBzdHJpbmddOiBhbnk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gc2V0IHZhbGlkYXRpb24gcnVsZXMgZm9yIGEgcGFydGljdWxhciBmaWVsZC5cbiAgICogU2hvdWxkIGJlIGFuIG9iamVjdCBvZiBrZXkgLSB2YWx1ZSBwYWlycy4gVGhlIHZhbHVlIGNhbiBlaXRoZXIgYmUgYW4gZXhwcmVzc2lvbiB0byBldmFsdWF0ZSBvciBhIGZ1bmN0aW9uIHRvIHJ1bi5cbiAgICogRWFjaCBzaG91bGQgcmV0dXJuIGEgYm9vbGVhbiB2YWx1ZSwgcmV0dXJuaW5nIHRydWUgd2hlbiB0aGUgZmllbGQgaXMgdmFsaWQuIFNlZSBWYWxpZGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgKi9cbiAgdmFsaWRhdG9ycz86IEZvcm1seVZhbGlkYXRpb248VmFsaWRhdG9yRm4sIGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBvbmUgZm9yIGFueXRoaW5nIHRoYXQgbmVlZHMgdG8gdmFsaWRhdGUgYXN5bmNocm9ub3VzbHkuXG4gICAqIFByZXR0eSBtdWNoIGV4YWN0bHkgdGhlIHNhbWUgYXMgdGhlIHZhbGlkYXRvcnMgYXBpLCBleGNlcHQgaXQgbXVzdCBiZSBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb21pc2UuXG4gICAqL1xuICBhc3luY1ZhbGlkYXRvcnM/OiBGb3JtbHlWYWxpZGF0aW9uPEFzeW5jVmFsaWRhdG9yRm4sIFByb21pc2U8Ym9vbGVhbj4gfCBPYnNlcnZhYmxlPGJvb2xlYW4+PjtcblxuICAvKipcbiAgICogQ2FuIGJlIHNldCBpbnN0ZWFkIG9mIGB0eXBlYCB0byByZW5kZXIgY3VzdG9tIGh0bWwgY29udGVudC5cbiAgICovXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiAgSXQgaXMgZXhwZWN0ZWQgdG8gYmUgdGhlIG5hbWUgb2YgdGhlIHdyYXBwZXJzLlxuICAgKiAgVGhlIGZvcm1seSBmaWVsZCB0ZW1wbGF0ZSB3aWxsIGJlIHdyYXBwZWQgYnkgdGhlIGZpcnN0IHdyYXBwZXIsIHRoZW4gdGhlIHNlY29uZCwgdGhlbiB0aGUgdGhpcmQsIGV0Yy5cbiAgICogIFlvdSBjYW4gYWxzbyBzcGVjaWZ5IHRoZXNlIGFzIHBhcnQgb2YgYSB0eXBlICh3aGljaCBpcyB0aGUgcmVjb21tZW5kZWQgYXBwcm9hY2gpLlxuICAgKi9cbiAgd3JhcHBlcnM/OiAoc3RyaW5nIHwgVHlwZTxGaWVsZFdyYXBwZXI+KVtdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGhpZGUgdGhlIGZpZWxkLiBEZWZhdWx0cyB0byBmYWxzZS4gSWYgeW91IHdpc2ggdGhpcyB0byBiZSBjb25kaXRpb25hbCB1c2UgYGV4cHJlc3Npb25zOiB7IGhpZGU6IC4uLiB9YFxuICAgKi9cbiAgaGlkZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVzZXQgdGhlIHZhbHVlIG9uIGhpZGUgb3Igbm90LiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICByZXNldE9uSGlkZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbmRpdGlvbmFsbHkgaGlkaW5nIEZpZWxkIGJhc2VkIG9uIHZhbHVlcyBmcm9tIG90aGVyIEZpZWxkc1xuICAgKiBAZGVwcmVjYXRlZCB1c2UgYGV4cHJlc3Npb25zOiB7IGhpZGU6IC4uLiB9YFxuICAgKi9cbiAgaGlkZUV4cHJlc3Npb24/OiBib29sZWFuIHwgc3RyaW5nIHwgKChtb2RlbDogYW55LCBmb3JtU3RhdGU6IGFueSwgZmllbGQ/OiBGb3JtbHlGaWVsZENvbmZpZykgPT4gYm9vbGVhbik7XG5cbiAgLyoqXG4gICAqIEFuIG9iamVjdCB3aGVyZSB0aGUga2V5IGlzIGEgcHJvcGVydHkgdG8gYmUgc2V0IG9uIHRoZSBtYWluIGZpZWxkIGNvbmZpZyBhbmQgdGhlIHZhbHVlIGlzIGFuIGV4cHJlc3Npb24gdXNlZCB0byBhc3NpZ24gdGhhdCBwcm9wZXJ0eS5cbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBleHByZXNzaW9uc2BcbiAgICovXG4gIGV4cHJlc3Npb25Qcm9wZXJ0aWVzPzoge1xuICAgIFtwcm9wZXJ0eTogc3RyaW5nXTogc3RyaW5nIHwgKChtb2RlbDogYW55LCBmb3JtU3RhdGU6IGFueSwgZmllbGQ/OiBGb3JtbHlGaWVsZENvbmZpZykgPT4gYW55KSB8IE9ic2VydmFibGU8YW55PjtcbiAgfTtcblxuICAvKipcbiAgICogQW4gb2JqZWN0IHdoZXJlIHRoZSBrZXkgaXMgYSBwcm9wZXJ0eSB0byBiZSBzZXQgb24gdGhlIG1haW4gZmllbGQgY29uZmlnIGFuZCB0aGUgdmFsdWUgaXMgYW4gZXhwcmVzc2lvbiB1c2VkIHRvIGFzc2lnbiB0aGF0IHByb3BlcnR5LlxuICAgKi9cbiAgZXhwcmVzc2lvbnM/OiB7XG4gICAgY2xhc3NOYW1lPzogRXhwcmVzc2lvblR5cGU8c3RyaW5nPjtcbiAgICBoaWRlPzogRXhwcmVzc2lvblR5cGU8Ym9vbGVhbj47XG4gICAgJ3Byb3BzLmRpc2FibGVkJz86IEV4cHJlc3Npb25UeXBlPGJvb2xlYW4+O1xuICAgICdwcm9wcy5yZXF1aXJlZCc/OiBFeHByZXNzaW9uVHlwZTxib29sZWFuPjtcbiAgICBbcHJvcGVydHk6IHN0cmluZ106IEV4cHJlc3Npb25UeXBlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBZb3UgY2FuIHNwZWNpZnkgeW91ciBvd24gY2xhc3MgdGhhdCB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIGBmb3JtbHktZmllbGRgIGNvbXBvbmVudC5cbiAgICovXG4gIGNsYXNzTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmeSB5b3VyIG93biBjbGFzcyB0aGF0IHdpbGwgYmUgYXBwbGllZCB0byB0aGUgYGZvcm1seS1ncm91cGAgY29tcG9uZW50LlxuICAgKi9cbiAgZmllbGRHcm91cENsYXNzTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBmaWVsZCBncm91cCBpcyBhIHdheSB0byBncm91cCBmaWVsZHMgdG9nZXRoZXIsIG1ha2luZyBhZHZhbmNlZCBsYXlvdXQgdmVyeSBzaW1wbGUuXG4gICAqIEl0IGNhbiBhbHNvIGJlIHVzZWQgdG8gZ3JvdXAgZmllbGRzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2FtZSBtb2RlbCAodXNlZnVsIGlmIGl0J3MgZGlmZmVyZW50IHRoYW4gdGhlIG1vZGVsIGZvciB0aGUgcmVzdCBvZiB0aGUgZmllbGRzKS5cbiAgICovXG4gIGZpZWxkR3JvdXA/OiBGb3JtbHlGaWVsZENvbmZpZ1tdO1xuXG4gIGZpZWxkQXJyYXk/OiBGb3JtbHlGaWVsZENvbmZpZyB8ICgoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiBGb3JtbHlGaWVsZENvbmZpZyk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZm9jdXMgb3IgYmx1ciB0aGUgZWxlbWVudCBmaWVsZC4gRGVmYXVsdHMgdG8gZmFsc2UuIElmIHlvdSB3aXNoIHRoaXMgdG8gYmUgY29uZGl0aW9uYWwgdXNlIGBleHByZXNzaW9uc2BcbiAgICovXG4gIGZvY3VzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQW4gb2JqZWN0IHdpdGggYSBmZXcgdXNlZnVsIHByb3BlcnRpZXMgdG8gY29udHJvbCB0aGUgbW9kZWwgY2hhbmdlc1xuICAgKiAtIGBkZWJvdW5jZWA6IGludGVnZXIgdmFsdWUgd2hpY2ggY29udGFpbnMgdGhlIGRlYm91bmNlIG1vZGVsIHVwZGF0ZSB2YWx1ZSBpbiBtaWxsaXNlY29uZHMuIEEgdmFsdWUgb2YgMCB0cmlnZ2VycyBhbiBpbW1lZGlhdGUgdXBkYXRlLlxuICAgKiAtIGB1cGRhdGVPbmA6IHN0cmluZyBldmVudCB2YWx1ZSB0aGF0IGluc3RydWN0cyB3aGVuIHRoZSBjb250cm9sIHNob3VsZCBiZSB1cGRhdGVkXG4gICAqL1xuICBtb2RlbE9wdGlvbnM/OiB7XG4gICAgZGVib3VuY2U/OiB7XG4gICAgICBkZWZhdWx0OiBudW1iZXI7XG4gICAgfTtcbiAgICAvLyBAc2VlIGh0dHBzOi8vYW5ndWxhci5pby9hcGkvZm9ybXMvQWJzdHJhY3RDb250cm9sI3VwZGF0ZU9uXG4gICAgdXBkYXRlT24/OiAnY2hhbmdlJyB8ICdibHVyJyB8ICdzdWJtaXQnO1xuICB9O1xuXG4gIGhvb2tzPzogRm9ybWx5SG9va0NvbmZpZztcblxuICAvKipcbiAgICogQXJyYXkgb2YgZnVuY3Rpb25zIHRvIGV4ZWN1dGUsIGFzIGEgcGlwZWxpbmUsIHdoZW5ldmVyIHRoZSBtb2RlbCB1cGRhdGVzLCB1c3VhbGx5IHZpYSB1c2VyIGlucHV0LlxuICAgKi9cbiAgcGFyc2Vycz86ICgodmFsdWU6IGFueSkgPT4gYW55KVtdO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGNoaWxkIGZpZWxkIGJ5IGtleSBuYW1lXG4gICAqL1xuICBnZXQ/OiAoa2V5OiBGb3JtbHlGaWVsZENvbmZpZ1sna2V5J10pID0+IEZvcm1seUZpZWxkQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9kZWwgdGhhdCBzdG9yZXMgYWxsIHRoZSBkYXRhLCB3aGVyZSB0aGUgbW9kZWxba2V5XSBpcyB0aGUgdmFsdWUgb2YgdGhlIGZpZWxkXG4gICAqL1xuICByZWFkb25seSBtb2RlbD86IGFueTtcblxuICAvKipcbiAgICogVGhlIHBhcmVudCBmaWVsZC5cbiAgICovXG4gIHJlYWRvbmx5IHBhcmVudD86IEZvcm1seUZpZWxkQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9ybSBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgb3B0aW9ucz86IEZvcm1seUZvcm1PcHRpb25zO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyZW50IGZvcm0uXG4gICAqL1xuICByZWFkb25seSBmb3JtPzogRm9ybUdyb3VwIHwgRm9ybUFycmF5O1xuXG4gIC8qKlxuICAgKiBUaGlzIGlzIHRoZSBbRm9ybUNvbnRyb2xdKGh0dHBzOi8vYW5ndWxhci5pby9hcGkvZm9ybXMvRm9ybUNvbnRyb2wpIGZvciB0aGUgZmllbGQuXG4gICAqIEl0IHByb3ZpZGVzIHlvdSBtb3JlIGNvbnRyb2wgbGlrZSBydW5uaW5nIHZhbGlkYXRvcnMsIGNhbGN1bGF0aW5nIHN0YXR1cywgYW5kIHJlc2V0dGluZyBzdGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGZvcm1Db250cm9sPzogQWJzdHJhY3RDb250cm9sO1xuXG4gIC8qKiBAZGVwcmVjYXRlZCAqL1xuICBvcHRpb25zVHlwZXM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IHR5cGUgRm9ybWx5QXR0cmlidXRlRXZlbnQgPSAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnLCBldmVudD86IGFueSkgPT4gdm9pZDtcblxuLyoqICBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3JtbHlUZW1wbGF0ZU9wdGlvbnMgZXh0ZW5kcyBGb3JtbHlGaWVsZFByb3BzIHtcbiAgW2FkZGl0aW9uYWxQcm9wZXJ0aWVzOiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybWx5RmllbGRQcm9wcyB7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBvcHRpb25zPzogYW55W10gfCBPYnNlcnZhYmxlPGFueVtdPjtcbiAgcm93cz86IG51bWJlcjtcbiAgY29scz86IG51bWJlcjtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIG1heD86IG51bWJlcjtcbiAgbWluPzogbnVtYmVyO1xuXG4gIG1pbkxlbmd0aD86IG51bWJlcjtcbiAgLyoqIEBkZXByZWNhdGVkIHVzZSBgbWluTGVuZ3RoYCAqL1xuICBtaW5sZW5ndGg/OiBudW1iZXI7XG5cbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogQGRlcHJlY2F0ZWQgdXNlIGBtYXhMZW5ndGhgICovXG4gIG1heGxlbmd0aD86IG51bWJlcjtcblxuICBwYXR0ZXJuPzogc3RyaW5nIHwgUmVnRXhwO1xuICByZXF1aXJlZD86IGJvb2xlYW47XG4gIHRhYmluZGV4PzogbnVtYmVyO1xuICByZWFkb25seT86IGJvb2xlYW47XG4gIGF0dHJpYnV0ZXM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB9O1xuICBzdGVwPzogbnVtYmVyO1xuICBmb2N1cz86IEZvcm1seUF0dHJpYnV0ZUV2ZW50O1xuICBibHVyPzogRm9ybWx5QXR0cmlidXRlRXZlbnQ7XG4gIGtleXVwPzogRm9ybWx5QXR0cmlidXRlRXZlbnQ7XG4gIGtleWRvd24/OiBGb3JtbHlBdHRyaWJ1dGVFdmVudDtcbiAgY2xpY2s/OiBGb3JtbHlBdHRyaWJ1dGVFdmVudDtcbiAgY2hhbmdlPzogRm9ybWx5QXR0cmlidXRlRXZlbnQ7XG4gIGtleXByZXNzPzogRm9ybWx5QXR0cmlidXRlRXZlbnQ7XG59XG5cbmV4cG9ydCB0eXBlIEZvcm1seUhvb2tGbiA9IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IHZvaWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybWx5SG9va0NvbmZpZyB7XG4gIG9uSW5pdD86IEZvcm1seUhvb2tGbiB8ICgoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiBPYnNlcnZhYmxlPGFueT4pO1xuICBvbkNoYW5nZXM/OiBGb3JtbHlIb29rRm47XG4gIGFmdGVyQ29udGVudEluaXQ/OiBGb3JtbHlIb29rRm47XG4gIGFmdGVyVmlld0luaXQ/OiBGb3JtbHlIb29rRm47XG4gIG9uRGVzdHJveT86IEZvcm1seUhvb2tGbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtbHlGb3JtT3B0aW9ucyB7XG4gIHVwZGF0ZUluaXRpYWxWYWx1ZT86IChtb2RlbD86IGFueSkgPT4gdm9pZDtcbiAgcmVzZXRNb2RlbD86IChtb2RlbD86IGFueSkgPT4gdm9pZDtcbiAgZm9ybVN0YXRlPzogYW55O1xuICBmaWVsZENoYW5nZXM/OiBTdWJqZWN0PEZvcm1seVZhbHVlQ2hhbmdlRXZlbnQ+O1xuICBzaG93RXJyb3I/OiAoZmllbGQ6IEZpZWxkVHlwZSkgPT4gYm9vbGVhbjtcbiAgYnVpbGQ/OiAoZmllbGQ/OiBGb3JtbHlGaWVsZENvbmZpZykgPT4gRm9ybWx5RmllbGRDb25maWc7XG4gIGNoZWNrRXhwcmVzc2lvbnM/OiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB2b2lkO1xuICBkZXRlY3RDaGFuZ2VzPzogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4gdm9pZDtcbiAgcGFyZW50Rm9ybT86IEZvcm1Hcm91cERpcmVjdGl2ZSB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybWx5VmFsdWVDaGFuZ2VFdmVudCB7XG4gIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZztcbiAgdHlwZTogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xuICBbbWV0YTogc3RyaW5nXTogYW55O1xufVxuXG5pbnRlcmZhY2UgRm9ybWx5VmFsaWRhdGlvbjxULCBSPiB7XG4gIHZhbGlkYXRpb24/OiAoc3RyaW5nIHwgVClbXSB8IGFueTtcbiAgW2tleTogc3RyaW5nXTogRm9ybWx5VmFsaWRhdG9yRm48Uj4gfCBGb3JtbHlWYWxpZGF0b3JFeHByZXNzaW9uRm48Uj4gfCBhbnk7XG59XG50eXBlIEZvcm1seVZhbGlkYXRvckZuPFQ+ID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiBUO1xuXG5pbnRlcmZhY2UgRm9ybWx5VmFsaWRhdG9yRXhwcmVzc2lvbkZuPFQ+IHtcbiAgZXhwcmVzc2lvbjogRm9ybWx5VmFsaWRhdG9yRm48VD47XG4gIG1lc3NhZ2U6IHN0cmluZyB8ICgoZXJyb3I6IGFueSwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiBzdHJpbmcgfCBPYnNlcnZhYmxlPHN0cmluZz4pO1xufVxuIl19
@@ -27,6 +27,7 @@ export class FieldArrayType extends FieldType {
27
27
  }
28
28
  }
29
29
  add(i, initialModel, { markAsDirty } = { markAsDirty: true }) {
30
+ markAsDirty && this.formControl.markAsDirty();
30
31
  i = i == null ? this.field.fieldGroup.length : i;
31
32
  if (!this.model) {
32
33
  assignFieldValue(this.field, []);
@@ -34,16 +35,15 @@ export class FieldArrayType extends FieldType {
34
35
  this.model.splice(i, 0, initialModel ? clone(initialModel) : undefined);
35
36
  this.markFieldForCheck(this.field.fieldGroup[i]);
36
37
  this._build();
37
- markAsDirty && this.formControl.markAsDirty();
38
38
  }
39
39
  remove(i, { markAsDirty } = { markAsDirty: true }) {
40
+ markAsDirty && this.formControl.markAsDirty();
40
41
  this.model.splice(i, 1);
41
42
  const field = this.field.fieldGroup[i];
42
43
  this.field.fieldGroup.splice(i, 1);
43
44
  this.field.fieldGroup.forEach((f, key) => this.updateArrayElementKey(f, `${key}`));
44
45
  unregisterControl(field, true);
45
46
  this._build();
46
- markAsDirty && this.formControl.markAsDirty();
47
47
  }
48
48
  _build() {
49
49
  const fields = this.field.formControl._fields ?? [this.field];
@@ -81,4 +81,4 @@ FieldArrayType.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version
81
81
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FieldArrayType, decorators: [{
82
82
  type: Directive
83
83
  }] });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtYXJyYXkudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb3JlL3NyYy9saWIvdGVtcGxhdGVzL2ZpZWxkLWFycmF5LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFRakcsTUFBTSxPQUFnQixjQUNwQixTQUFRLFNBQVk7SUFHcEIsVUFBVSxDQUFDLEtBQVE7UUFDakIsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakIsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLGVBQWUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMxRztRQUVELEtBQUssQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFFMUMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFD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LENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFO1lBQ25CLElBQUksQ0FBQyxPQUFlLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQzs7NEdBdkZtQixjQUFjO2dHQUFkLGNBQWM7NEZBQWQsY0FBYztrQkFEbkMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi9maWVsZC50eXBlJztcbmltcG9ydCB7IGNsb25lLCBhc3NpZ25GaWVsZFZhbHVlLCBnZXRGaWVsZFZhbHVlLCBoYXNLZXkgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5RXh0ZW5zaW9uLCBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IHJlZ2lzdGVyQ29udHJvbCwgdW5yZWdpc3RlckNvbnRyb2wsIGZpbmRDb250cm9sIH0gZnJvbSAnLi4vZXh0ZW5zaW9ucy9maWVsZC1mb3JtL3V0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBGaWVsZEFycmF5VHlwZUNvbmZpZzxUID0gRm9ybWx5RmllbGRDb25maWdbJ3Byb3BzJ10+IGV4dGVuZHMgRm9ybWx5RmllbGRDb25maWc8VD4ge1xuICBmb3JtQ29udHJvbDogRm9ybUFycmF5O1xuICBwcm9wczogTm9uTnVsbGFibGU8VD47XG59XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZpZWxkQXJyYXlUeXBlPEYgZXh0ZW5kcyBGb3JtbHlGaWVsZENvbmZpZyA9IEZpZWxkQXJyYXlUeXBlQ29uZmlnPlxuICBleHRlbmRzIEZpZWxkVHlwZTxGPlxuICBpbXBsZW1lbnRzIEZvcm1seUV4dGVuc2lvbjxGPlxue1xuICBvblBvcHVsYXRlKGZpZWxkOiBGKSB7XG4gICAgaWYgKGhhc0tleShmaWVsZCkpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmaW5kQ29udHJvbChmaWVsZCk7XG4gICAgICByZWdpc3RlckNvbnRyb2woZmllbGQsIGNvbnRyb2wgPyBjb250cm9sIDogbmV3IEZvcm1BcnJheShbXSwgeyB1cGRhdGVPbjogZmllbGQubW9kZWxPcHRpb25zLnVwZGF0ZU9uIH0pKTtcbiAgICB9XG5cbiAgICBmaWVsZC5maWVsZEdyb3VwID0gZmllbGQuZmllbGRHcm91cCB8fCBbXTtcblxuICAgIGNvbnN0IGxlbmd0aCA9IEFycmF5LmlzQXJyYXkoZmllbGQubW9kZWwpID8gZmllbGQubW9kZWwubGVuZ3RoIDogMDtcbiAgICBpZiAoZmllbGQuZmllbGRHcm91cC5sZW5ndGggPiBsZW5ndGgpIHtcbiAgICAgIGZvciAobGV0IGkgPSBmaWVsZC5maWVsZEdyb3VwLmxlbmd0aCAtIDE7IGkgPj0gbGVuZ3RoOyAtLWkpIHtcbiAgICAgICAgdW5yZWdpc3RlckNvbnRyb2woZmllbGQuZmllbGRHcm91cFtpXSwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkLmZpZWxkR3JvdXAuc3BsaWNlKGksIDEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSBmaWVsZC5maWVsZEdyb3VwLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBmID0geyAuLi5jbG9uZSh0eXBlb2YgZmllbGQuZmllbGRBcnJheSA9PT0gJ2Z1bmN0aW9uJyA/IGZpZWxkLmZpZWxkQXJyYXkoZmllbGQpIDogZmllbGQuZmllbGRBcnJheSkgfTtcbiAgICAgIGlmIChmLmtleSAhPT0gbnVsbCkge1xuICAgICAgICBmLmtleSA9IGAke2l9YDtcbiAgICAgIH1cblxuICAgICAgZmllbGQuZmllbGRHcm91cC5wdXNoKGYpO1xuICAgIH1cbiAgfVxuXG4gIGFkZChpPzogbnVtYmVyLCBpbml0aWFsTW9kZWw/OiBhbnksIHsgbWFya0FzRGlydHkgfSA9IHsgbWFya0FzRGlydHk6IHRydWUgfSkge1xuICAgIGkgPSBpID09IG51bGwgPyB0aGlzLmZpZWxkLmZpZWxkR3JvdXAubGVuZ3RoIDogaTtcbiAgICBpZiAoIXRoaXMubW9kZWwpIHtcbiAgICAgIGFzc2lnbkZpZWxkVmFsdWUodGhpcy5maWVsZCwgW10pO1xuICAgIH1cblxuICAgIHRoaXMubW9kZWwuc3BsaWNlKGksIDAsIGluaXRpYWxNb2RlbCA/IGNsb25lKGluaXRpYWxNb2RlbCkgOiB1bmRlZmluZWQpO1xuICAgIHRoaXMubWFya0ZpZWxkRm9yQ2hlY2sodGhpcy5maWVsZC5maWVsZEdyb3VwW2ldKTtcbiAgICB0aGlzLl9idWlsZCgpO1xuICAgIG1hcmtBc0RpcnR5ICYmIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIHJlbW92ZShpOiBudW1iZXIsIHsgbWFya0FzRGlydHkgfSA9IHsgbWFya0FzRGlydHk6IHRydWUgfSkge1xuICAgIHRoaXMubW9kZWwuc3BsaWNlKGksIDEpO1xuXG4gICAgY29uc3QgZmllbGQgPSB0aGlzLmZpZWxkLmZpZWxkR3JvdXBbaV07XG4gICAgdGhpcy5maWVsZC5maWVsZEdyb3VwLnNwbGljZShpLCAxKTtcbiAgICB0aGlzLmZpZWxkLmZpZWxkR3JvdXAuZm9yRWFjaCgoZiwga2V5KSA9PiB0aGlzLnVwZGF0ZUFycmF5RWxlbWVudEtleShmLCBgJHtrZXl9YCkpO1xuICAgIHVucmVnaXN0ZXJDb250cm9sKGZpZWxkLCB0cnVlKTtcbiAgICB0aGlzLl9idWlsZCgpO1xuICAgIG1hcmtBc0RpcnR5ICYmIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2J1aWxkKCkge1xuICAgIGNvbnN0IGZpZWxkcyA9ICh0aGlzLmZpZWxkIGFzIEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUpLmZvcm1Db250cm9sLl9maWVsZHMgPz8gW3RoaXMuZmllbGRdO1xuICAgIGZpZWxkcy5mb3JFYWNoKChmKSA9PiAodGhpcy5vcHRpb25zIGFzIGFueSkuYnVpbGQoZikpO1xuICAgIHRoaXMub3B0aW9ucy5maWVsZENoYW5nZXMubmV4dCh7XG4gICAgICBmaWVsZDogdGhpcy5maWVsZCxcbiAgICAgIHZhbHVlOiBnZXRGaWVsZFZhbHVlKHRoaXMuZmllbGQpLFxuICAgICAgdHlwZTogJ3ZhbHVlQ2hhbmdlcycsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUFycmF5RWxlbWVudEtleShmOiBGb3JtbHlGaWVsZENvbmZpZywgbmV3S2V5OiBzdHJpbmcpIHtcbiAgICBpZiAoaGFzS2V5KGYpKSB7XG4gICAgICBmLmtleSA9IG5ld0tleTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWYuZmllbGRHcm91cD8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmLmZpZWxkR3JvdXAubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMudXBkYXRlQXJyYXlFbGVtZW50S2V5KGYuZmllbGRHcm91cFtpXSwgbmV3S2V5KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1hcmtGaWVsZEZvckNoZWNrKGY6IEZvcm1seUZpZWxkQ29uZmlnKSB7XG4gICAgaWYgKCFmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZi5maWVsZEdyb3VwPy5mb3JFYWNoKChjOiBhbnkpID0+IHRoaXMubWFya0ZpZWxkRm9yQ2hlY2soYykpO1xuICAgIGlmIChmLmhpZGUgPT09IGZhbHNlKSB7XG4gICAgICAodGhpcy5vcHRpb25zIGFzIGFueSkuX2hpZGRlbkZpZWxkc0ZvckNoZWNrLnB1c2goZik7XG4gICAgfVxuICB9XG59XG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtYXJyYXkudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb3JlL3NyYy9saWIvdGVtcGxhdGVzL2ZpZWxkLWFycmF5LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFRakcsTUFBTSxPQUFnQixjQUNwQixTQUFRLFNBQVk7SUFHcEIsVUFBVSxDQUFDLEtBQVE7UUFDakIsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakIsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLGVBQWUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMxRztRQUVELEtBQUssQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFFMUMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFD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aUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE9BQWUsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckQ7SUFDSCxDQUFDOzs0R0F2Rm1CLGNBQWM7Z0dBQWQsY0FBYzs0RkFBZCxjQUFjO2tCQURuQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXkgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICcuL2ZpZWxkLnR5cGUnO1xuaW1wb3J0IHsgY2xvbmUsIGFzc2lnbkZpZWxkVmFsdWUsIGdldEZpZWxkVmFsdWUsIGhhc0tleSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnLCBGb3JtbHlFeHRlbnNpb24sIEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgcmVnaXN0ZXJDb250cm9sLCB1bnJlZ2lzdGVyQ29udHJvbCwgZmluZENvbnRyb2wgfSBmcm9tICcuLi9leHRlbnNpb25zL2ZpZWxkLWZvcm0vdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkQXJyYXlUeXBlQ29uZmlnPFQgPSBGb3JtbHlGaWVsZENvbmZpZ1sncHJvcHMnXT4gZXh0ZW5kcyBGb3JtbHlGaWVsZENvbmZpZzxUPiB7XG4gIGZvcm1Db250cm9sOiBGb3JtQXJyYXk7XG4gIHByb3BzOiBOb25OdWxsYWJsZTxUPjtcbn1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmllbGRBcnJheVR5cGU8RiBleHRlbmRzIEZvcm1seUZpZWxkQ29uZmlnID0gRmllbGRBcnJheVR5cGVDb25maWc+XG4gIGV4dGVuZHMgRmllbGRUeXBlPEY+XG4gIGltcGxlbWVudHMgRm9ybWx5RXh0ZW5zaW9uPEY+XG57XG4gIG9uUG9wdWxhdGUoZmllbGQ6IEYpIHtcbiAgICBpZiAoaGFzS2V5KGZpZWxkKSkge1xuICAgICAgY29uc3QgY29udHJvbCA9IGZpbmRDb250cm9sKGZpZWxkKTtcbiAgICAgIHJlZ2lzdGVyQ29udHJvbChmaWVsZCwgY29udHJvbCA/IGNvbnRyb2wgOiBuZXcgRm9ybUFycmF5KFtdLCB7IHVwZGF0ZU9uOiBmaWVsZC5tb2RlbE9wdGlvbnMudXBkYXRlT24gfSkpO1xuICAgIH1cblxuICAgIGZpZWxkLmZpZWxkR3JvdXAgPSBmaWVsZC5maWVsZEdyb3VwIHx8IFtdO1xuXG4gICAgY29uc3QgbGVuZ3RoID0gQXJyYXkuaXNBcnJheShmaWVsZC5tb2RlbCkgPyBmaWVsZC5tb2RlbC5sZW5ndGggOiAwO1xuICAgIGlmIChmaWVsZC5maWVsZEdyb3VwLmxlbmd0aCA+IGxlbmd0aCkge1xuICAgICAgZm9yIChsZXQgaSA9IGZpZWxkLmZpZWxkR3JvdXAubGVuZ3RoIC0gMTsgaSA+PSBsZW5ndGg7IC0taSkge1xuICAgICAgICB1bnJlZ2lzdGVyQ29udHJvbChmaWVsZC5maWVsZEdyb3VwW2ldLCB0cnVlKTtcbiAgICAgICAgZmllbGQuZmllbGRHcm91cC5zcGxpY2UoaSwgMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IGZpZWxkLmZpZWxkR3JvdXAubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGYgPSB7IC4uLmNsb25lKHR5cGVvZiBmaWVsZC5maWVsZEFycmF5ID09PSAnZnVuY3Rpb24nID8gZmllbGQuZmllbGRBcnJheShmaWVsZCkgOiBmaWVsZC5maWVsZEFycmF5KSB9O1xuICAgICAgaWYgKGYua2V5ICE9PSBudWxsKSB7XG4gICAgICAgIGYua2V5ID0gYCR7aX1gO1xuICAgICAgfVxuXG4gICAgICBmaWVsZC5maWVsZEdyb3VwLnB1c2goZik7XG4gICAgfVxuICB9XG5cbiAgYWRkKGk/OiBudW1iZXIsIGluaXRpYWxNb2RlbD86IGFueSwgeyBtYXJrQXNEaXJ0eSB9ID0geyBtYXJrQXNEaXJ0eTogdHJ1ZSB9KSB7XG4gICAgbWFya0FzRGlydHkgJiYgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgIGkgPSBpID09IG51bGwgPyB0aGlzLmZpZWxkLmZpZWxkR3JvdXAubGVuZ3RoIDogaTtcbiAgICBpZiAoIXRoaXMubW9kZWwpIHtcbiAgICAgIGFzc2lnbkZpZWxkVmFsdWUodGhpcy5maWVsZCwgW10pO1xuICAgIH1cblxuICAgIHRoaXMubW9kZWwuc3BsaWNlKGksIDAsIGluaXRpYWxNb2RlbCA/IGNsb25lKGluaXRpYWxNb2RlbCkgOiB1bmRlZmluZWQpO1xuICAgIHRoaXMubWFya0ZpZWxkRm9yQ2hlY2sodGhpcy5maWVsZC5maWVsZEdyb3VwW2ldKTtcbiAgICB0aGlzLl9idWlsZCgpO1xuICB9XG5cbiAgcmVtb3ZlKGk6IG51bWJlciwgeyBtYXJrQXNEaXJ0eSB9ID0geyBtYXJrQXNEaXJ0eTogdHJ1ZSB9KSB7XG4gICAgbWFya0FzRGlydHkgJiYgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgIHRoaXMubW9kZWwuc3BsaWNlKGksIDEpO1xuXG4gICAgY29uc3QgZmllbGQgPSB0aGlzLmZpZWxkLmZpZWxkR3JvdXBbaV07XG4gICAgdGhpcy5maWVsZC5maWVsZEdyb3VwLnNwbGljZShpLCAxKTtcbiAgICB0aGlzLmZpZWxkLmZpZWxkR3JvdXAuZm9yRWFjaCgoZiwga2V5KSA9PiB0aGlzLnVwZGF0ZUFycmF5RWxlbWVudEtleShmLCBgJHtrZXl9YCkpO1xuICAgIHVucmVnaXN0ZXJDb250cm9sKGZpZWxkLCB0cnVlKTtcbiAgICB0aGlzLl9idWlsZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYnVpbGQoKSB7XG4gICAgY29uc3QgZmllbGRzID0gKHRoaXMuZmllbGQgYXMgRm9ybWx5RmllbGRDb25maWdDYWNoZSkuZm9ybUNvbnRyb2wuX2ZpZWxkcyA/PyBbdGhpcy5maWVsZF07XG4gICAgZmllbGRzLmZvckVhY2goKGYpID0+ICh0aGlzLm9wdGlvbnMgYXMgYW55KS5idWlsZChmKSk7XG4gICAgdGhpcy5vcHRpb25zLmZpZWxkQ2hhbmdlcy5uZXh0KHtcbiAgICAgIGZpZWxkOiB0aGlzLmZpZWxkLFxuICAgICAgdmFsdWU6IGdldEZpZWxkVmFsdWUodGhpcy5maWVsZCksXG4gICAgICB0eXBlOiAndmFsdWVDaGFuZ2VzJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQXJyYXlFbGVtZW50S2V5KGY6IEZvcm1seUZpZWxkQ29uZmlnLCBuZXdLZXk6IHN0cmluZykge1xuICAgIGlmIChoYXNLZXkoZikpIHtcbiAgICAgIGYua2V5ID0gbmV3S2V5O1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghZi5maWVsZEdyb3VwPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGYuZmllbGRHcm91cC5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy51cGRhdGVBcnJheUVsZW1lbnRLZXkoZi5maWVsZEdyb3VwW2ldLCBuZXdLZXkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbWFya0ZpZWxkRm9yQ2hlY2soZjogRm9ybWx5RmllbGRDb25maWcpIHtcbiAgICBpZiAoIWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmLmZpZWxkR3JvdXA/LmZvckVhY2goKGM6IGFueSkgPT4gdGhpcy5tYXJrRmllbGRGb3JDaGVjayhjKSk7XG4gICAgaWYgKGYuaGlkZSA9PT0gZmFsc2UpIHtcbiAgICAgICh0aGlzLm9wdGlvbnMgYXMgYW55KS5faGlkZGVuRmllbGRzRm9yQ2hlY2sucHVzaChmKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -365,10 +365,10 @@ class FormlyJsonschema {
365
365
  this.resolveMultiSchema('oneOf', schema.oneOf, Object.assign(Object.assign({}, options), { key, shareFormControl: false })),
366
366
  ];
367
367
  }
368
- if (schema.oneOf && !field.type) {
368
+ if (schema.anyOf && !field.type) {
369
369
  delete field.key;
370
370
  field.fieldGroup = [
371
- this.resolveMultiSchema('oneOf', schema.oneOf, Object.assign(Object.assign({}, options), { key, shareFormControl: false })),
371
+ this.resolveMultiSchema('oneOf', schema.anyOf, Object.assign(Object.assign({}, options), { key, shareFormControl: false })),
372
372
  ];
373
373
  }
374
374
  // map in possible formlyConfig options from the widget property
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-formly-core-json-schema.mjs","sources":["../../../../src/core/json-schema/src/formly-json-schema.service.ts","../../../../src/core/json-schema/src/ngx-formly-core-json-schema.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { JSONSchema7, JSONSchema7Definition } from 'json-schema';\nimport { AbstractControl, FormArray, FormGroup } from '@angular/forms';\nimport {\n ɵreverseDeepMerge as reverseDeepMerge,\n ɵgetFieldValue as getFieldValue,\n ɵclone as clone,\n ɵhasKey as hasKey,\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\ninterface FormlyJSONSchema7 extends JSONSchema7 {\n widget?: { formlyConfig: 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,\n p = 0;\n while (Math.round(a * e) / e !== a) {\n e *= 10;\n p++;\n }\n\n return p;\n}\n\nfunction isEmpty(v: any) {\n return v === '' || v == null;\n}\n\nfunction isObject(v: any) {\n return v != null && typeof v === 'object' && !Array.isArray(v);\n}\n\nfunction isInteger(value: any) {\n return Number.isInteger ? Number.isInteger(value) : typeof value === 'number' && Math.floor(value) === value;\n}\n\nfunction isConst(schema: JSONSchema7Definition) {\n return typeof schema === 'object' && (schema.hasOwnProperty('const') || (schema.enum && schema.enum.length === 1));\n}\n\nfunction toNumber(value: string | number | null) {\n if (value === '' || value === undefined) {\n return undefined;\n }\n\n if (value === null) {\n return null;\n }\n\n if (typeof value === 'number') {\n return value;\n }\n\n const val = parseFloat(value);\n return !isNaN(val) ? val : value;\n}\n\nfunction totalMatchedFields(field: FormlyFieldConfig): number {\n if (!field.fieldGroup) {\n return hasKey(field) && getFieldValue(field) !== undefined ? 1 : 0;\n }\n\n const total = field.fieldGroup.reduce((s, f) => totalMatchedFields(f) + s, 0);\n if (total === 0 && hasKey(field)) {\n const value = getFieldValue(field);\n if (\n value === null ||\n (value !== undefined && ((field.fieldArray && Array.isArray(value)) || (!field.fieldArray && isObject(value))))\n ) {\n return 1;\n }\n }\n\n return total;\n}\n\ninterface IOptions extends FormlyJsonschemaOptions {\n schema: FormlyJSONSchema7;\n resetOnHide?: boolean;\n shareFormControl?: boolean;\n ignoreDefault?: boolean;\n strict?: boolean;\n readOnly?: boolean;\n key?: FormlyFieldConfig['key'];\n isOptional?: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FormlyJsonschema {\n toFieldConfig(schema: JSONSchema7, options?: FormlyJsonschemaOptions): FormlyFieldConfig {\n schema = clone(schema);\n return this._toFieldConfig(schema, { schema, ...(options || {}) });\n }\n\n private _toFieldConfig(schema: FormlyJSONSchema7, { key, isOptional, ...options }: IOptions): FormlyFieldConfig {\n schema = this.resolveSchema(schema, options);\n const types = this.guessSchemaType(schema);\n\n let field: FormlyFieldConfig & { shareFormControl?: boolean } = {\n type: types[0],\n defaultValue: schema.default,\n props: {\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.props.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 (field.defaultValue === undefined && types.length === 1 && isOptional === false) {\n switch (types[0]) {\n case 'null': {\n field.defaultValue = null;\n break;\n }\n case 'string': {\n field.defaultValue = '';\n break;\n }\n case 'object': {\n field.defaultValue = {};\n break;\n }\n case 'array': {\n field.defaultValue = schema.minItems > 0 ? Array.from(new Array(schema.minItems)) : [];\n break;\n }\n }\n }\n\n if (options.ignoreDefault) {\n delete field.defaultValue;\n }\n\n this.addValidator(field, 'type', {\n schemaType: types,\n expression: ({ value }: AbstractControl) => {\n if (value === undefined) {\n return true;\n }\n\n if (value === null && types.indexOf('null') !== -1) {\n return true;\n }\n\n switch (types[0]) {\n case 'null': {\n return typeof value === null;\n }\n case 'string': {\n return typeof value === 'string';\n }\n case 'integer': {\n return isInteger(value);\n }\n case 'number': {\n return typeof value === 'number';\n }\n case 'object': {\n return isObject(value);\n }\n case 'array': {\n return Array.isArray(value);\n }\n }\n\n return true;\n },\n });\n\n switch (field.type) {\n case 'number':\n case 'integer': {\n field.parsers = [\n (v: string | number, f: FormlyFieldConfig) => {\n v = toNumber(v);\n\n if (v === null && f) {\n const input =\n typeof document !== 'undefined' && f.id\n ? document.querySelector<HTMLInputElement>(`#${f.id}`)\n : undefined;\n if (input && !input.validity.badInput) {\n v = undefined;\n }\n\n if (v !== f.formControl.value) {\n f.formControl.setValue(v, { emitModelToViewChange: false });\n }\n }\n\n return v;\n },\n ] as ((value: any, f?: FormlyFieldConfig) => any)[];\n\n if (schema.hasOwnProperty('minimum')) {\n field.props.min = schema.minimum;\n }\n\n if (schema.hasOwnProperty('maximum')) {\n field.props.max = schema.maximum;\n }\n\n if (schema.hasOwnProperty('exclusiveMinimum')) {\n field.props.exclusiveMinimum = schema.exclusiveMinimum;\n this.addValidator(\n field,\n 'exclusiveMinimum',\n ({ value }: AbstractControl) => isEmpty(value) || value > schema.exclusiveMinimum,\n );\n }\n\n if (schema.hasOwnProperty('exclusiveMaximum')) {\n field.props.exclusiveMaximum = schema.exclusiveMaximum;\n this.addValidator(\n field,\n 'exclusiveMaximum',\n ({ value }: AbstractControl) => isEmpty(value) || value < schema.exclusiveMaximum,\n );\n }\n\n if (schema.hasOwnProperty('multipleOf')) {\n field.props.step = schema.multipleOf;\n this.addValidator(field, 'multipleOf', ({ value }: AbstractControl) => {\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 field.parsers = [\n (v, f: FormlyFieldConfig) => {\n if (types.indexOf('null') !== -1) {\n v = isEmpty(v) ? null : v;\n } else if (f && !f.props.required) {\n v = v === '' ? undefined : v;\n }\n\n return v;\n },\n ] as ((value: any, f?: FormlyFieldConfig) => any)[];\n\n ['minLength', 'maxLength', 'pattern'].forEach((prop) => {\n if (schema.hasOwnProperty(prop)) {\n field.props[prop] = (schema as any)[prop];\n }\n });\n break;\n }\n case 'object': {\n if (!field.fieldGroup) {\n field.fieldGroup = [];\n }\n\n const { propDeps, schemaDeps } = this.resolveDependencies(schema);\n Object.keys(schema.properties || {}).forEach((property) => {\n const isRequired = Array.isArray(schema.required) && schema.required.indexOf(property) !== -1;\n const f = this._toFieldConfig(<JSONSchema7>schema.properties[property], {\n ...options,\n key: property,\n isOptional: isOptional || !isRequired,\n });\n\n field.fieldGroup.push(f);\n if (isRequired || propDeps[property]) {\n f.expressions = {\n ...(f.expressions || {}),\n 'props.required': (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.props ? parent.props.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] && f.model && propDeps[property].some((k) => !isEmpty(f.model[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 as JSONSchema7[];\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(\n { ...oneOfSchemaItem, properties },\n { ...options, shareFormControl: false, resetOnHide: true },\n ),\n expressions: {\n hide: (f) => !f.model || getConstValue(constSchema as JSONSchema7) !== f.model[property],\n },\n });\n });\n } else {\n field.fieldGroup.push({\n ...this._toFieldConfig(schemaDeps[property], options),\n expressions: {\n hide: (f) => !f.model || isEmpty(f.model[property]),\n },\n });\n }\n }\n });\n\n if (schema.oneOf) {\n field.fieldGroup.push(\n this.resolveMultiSchema('oneOf', <JSONSchema7[]>schema.oneOf, { ...options, shareFormControl: false }),\n );\n }\n\n if (schema.anyOf) {\n field.fieldGroup.push(this.resolveMultiSchema('anyOf', <JSONSchema7[]>schema.anyOf, options));\n }\n break;\n }\n case 'array': {\n if (schema.hasOwnProperty('minItems')) {\n field.props.minItems = schema.minItems;\n this.addValidator(field, 'minItems', ({ value }: AbstractControl) => {\n return isEmpty(value) || value.length >= schema.minItems;\n });\n if (!isOptional && schema.minItems > 0 && field.defaultValue === undefined) {\n field.defaultValue = Array.from(new Array(schema.minItems));\n }\n }\n if (schema.hasOwnProperty('maxItems')) {\n field.props.maxItems = schema.maxItems;\n this.addValidator(field, 'maxItems', ({ value }: AbstractControl) => {\n return isEmpty(value) || value.length <= schema.maxItems;\n });\n }\n if (schema.hasOwnProperty('uniqueItems')) {\n field.props.uniqueItems = schema.uniqueItems;\n this.addValidator(field, 'uniqueItems', ({ value }: AbstractControl) => {\n if (isEmpty(value) || !schema.uniqueItems) {\n return true;\n }\n\n const uniqueItems = Array.from(\n new Set(\n value.map((v: any) =>\n JSON.stringify(v, (k, o) => {\n if (isObject(o)) {\n return Object.keys(o)\n .sort()\n .reduce((obj: any, key) => {\n obj[key] = o[key];\n return obj;\n }, {});\n }\n\n return o;\n }),\n ),\n ),\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 field.fieldArray = (root: FormlyFieldConfig) => {\n const length = root.fieldGroup ? root.fieldGroup.length : 0;\n const items = schema.items as JSONSchema7 | JSONSchema7[];\n if (!Array.isArray(items)) {\n if (!items) {\n return {};\n }\n\n const isMultiSchema = items.oneOf || items.anyOf;\n\n // When items is a single schema, the additionalItems keyword is meaningless, and it should not be used.\n const f = this._toFieldConfig(\n items,\n isMultiSchema ? { ...options, key: `${length}`, isOptional: false } : { ...options, isOptional: false },\n );\n\n if (isMultiSchema && !hasKey(f)) {\n f.key = null;\n }\n\n return f;\n }\n\n const itemSchema = items[length] ? items[length] : schema.additionalItems;\n const f = itemSchema ? this._toFieldConfig(<JSONSchema7>itemSchema, options) : {};\n if (f.props) {\n f.props.required = true;\n }\n if (items[length]) {\n f.props.removable = false;\n }\n\n return f;\n };\n }\n break;\n }\n }\n\n if (schema.hasOwnProperty('const')) {\n field.props.const = schema.const;\n this.addValidator(field, 'const', ({ value }: AbstractControl) => value === schema.const);\n if (!field.type) {\n field.defaultValue = schema.const;\n }\n }\n\n if (this.isEnum(schema)) {\n const enumOptions = this.toEnumOptions(schema);\n const multiple = field.type === 'array';\n\n field.type = 'enum';\n field.props.multiple = multiple;\n field.props.options = enumOptions;\n\n const enumValues = enumOptions.map((o) => o.value);\n this.addValidator(field, 'enum', ({ value }: AbstractControl) => {\n if (value === undefined) {\n return true;\n }\n\n if (multiple) {\n return Array.isArray(value) ? value.every((o) => enumValues.includes(o)) : false;\n }\n\n return enumValues.includes(value);\n });\n }\n\n if (schema.oneOf && !field.type) {\n delete field.key;\n field.fieldGroup = [\n this.resolveMultiSchema('oneOf', <JSONSchema7[]>schema.oneOf, { ...options, key, shareFormControl: false }),\n ];\n }\n\n if (schema.oneOf && !field.type) {\n delete field.key;\n field.fieldGroup = [\n this.resolveMultiSchema('oneOf', <JSONSchema7[]>schema.oneOf, { ...options, key, shareFormControl: false }),\n ];\n }\n\n // map in possible formlyConfig options from the widget property\n if (schema.widget?.formlyConfig) {\n field = this.mergeFields(field, schema.widget.formlyConfig);\n }\n\n field.templateOptions = field.props;\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): JSONSchema7 {\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 }: FormlyJSONSchema7, options: IOptions) {\n if (!allOf.length) {\n throw Error(`allOf array can not be empty ${allOf}.`);\n }\n\n return (allOf as FormlyJSONSchema7[]).reduce((base: FormlyJSONSchema7, schema: FormlyJSONSchema7) => {\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 (\n ['maxLength', 'maximum', 'exclusiveMaximum', 'maxItems', 'maxProperties'] as (keyof FormlyJSONSchema7)[]\n ).forEach((prop) => {\n if (!isEmpty(base[prop]) && !isEmpty(schema[prop])) {\n (base as any)[prop] = base[prop] < schema[prop] ? base[prop] : schema[prop];\n }\n });\n\n // resolve to max value\n (\n ['minLength', 'minimum', 'exclusiveMinimum', 'minItems', 'minProperties'] as (keyof FormlyJSONSchema7)[]\n ).forEach((prop) => {\n if (!isEmpty(base[prop]) && !isEmpty(schema[prop])) {\n (base as any)[prop] = base[prop] > schema[prop] ? base[prop] : schema[prop];\n }\n });\n\n return reverseDeepMerge(base, schema);\n }, baseSchema);\n }\n\n private resolveMultiSchema(mode: 'oneOf' | 'anyOf', schemas: JSONSchema7[], options: IOptions): FormlyFieldConfig {\n return {\n type: 'multischema',\n fieldGroup: [\n {\n type: 'enum',\n defaultValue: -1,\n props: {\n multiple: mode === 'anyOf',\n options: schemas.map((s, i) => ({ label: s.title, value: i, disabled: s.readOnly })),\n },\n hooks: {\n onInit: (f) => f.formControl.valueChanges.pipe(tap(() => f.options.detectChanges(f.parent))),\n },\n },\n {\n fieldGroup: schemas.map((s, i) => ({\n ...this._toFieldConfig(s, { ...options, resetOnHide: true }),\n expressions: {\n hide: (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(\n (f, i) =>\n [f, i, this.isFieldValid(f, i, schemas, options)] as [FormlyFieldConfig, number, boolean],\n )\n .sort(([f1, , f1Valid], [f2, , f2Valid]) => {\n if (f1Valid !== f2Valid) {\n return f2Valid ? 1 : -1;\n }\n\n const matchedFields1 = totalMatchedFields(f1);\n const matchedFields2 = totalMatchedFields(f2);\n if (matchedFields1 === matchedFields2) {\n if (f1.props.disabled === f2.props.disabled) {\n return 0;\n }\n\n return matchedFields2 > matchedFields1 ? 1 : -1;\n }\n\n return matchedFields2 > matchedFields1 ? 1 : -1;\n })\n .map(([, i]) => i);\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) ? control.value.indexOf(i) === -1 : control.value !== i;\n },\n },\n })),\n },\n ],\n };\n }\n\n private resolveDefinition(schema: FormlyJSONSchema7, options: IOptions): FormlyJSONSchema7 {\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\n ? null\n : pointer\n .split('/')\n .reduce((def, path) => (def?.hasOwnProperty(path) ? (def as any)[path] : null), options.schema);\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 as any)[p];\n }\n\n return annotation;\n }, {} as any),\n };\n }\n\n private resolveDependencies(schema: JSONSchema7) {\n const propDeps: { [id: string]: string[] } = {};\n const schemaDeps: { [id: string]: JSONSchema7 } = {};\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 (!propDeps[dep]) {\n propDeps[dep] = [prop];\n } else {\n propDeps[dep].push(prop);\n }\n });\n } else {\n // schema dependencies\n schemaDeps[prop] = dependency;\n }\n });\n\n return { propDeps, schemaDeps };\n }\n\n private guessSchemaType(schema: JSONSchema7) {\n const type = schema?.type;\n if (!type && schema?.properties) {\n return ['object'];\n }\n\n if (Array.isArray(type)) {\n if (type.length === 1) {\n return type;\n }\n\n if (type.length === 2 && type.indexOf('null') !== -1) {\n return type.sort((t1) => (t1 == 'null' ? 1 : -1));\n }\n\n return type;\n }\n\n return type ? [type] : [];\n }\n\n private addValidator(field: FormlyFieldConfig, name: string, validator: FormlyFieldConfig['validators']) {\n field.validators = field.validators || {};\n field.validators[name] = validator;\n }\n\n private isEnum(schema: JSONSchema7): boolean {\n return (\n !!schema.enum ||\n (schema.anyOf && (schema.anyOf as JSONSchema7[]).every(isConst)) ||\n (schema.oneOf && (schema.oneOf as JSONSchema7[]).every(isConst)) ||\n (schema.uniqueItems && schema.items && !Array.isArray(schema.items) && this.isEnum(<JSONSchema7>schema.items))\n );\n }\n\n private toEnumOptions(schema: JSONSchema7): { value: any; label: any }[] {\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, 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 as JSONSchema7[]).map(toEnum);\n }\n\n if (schema.oneOf) {\n return (schema.oneOf as JSONSchema7[]).map(toEnum);\n }\n\n return this.toEnumOptions(<JSONSchema7>schema.items);\n }\n\n private isFieldValid(\n root: FormlyFieldConfig & { _schemasFields?: { [key: number]: FormlyFieldConfig } },\n i: number,\n schemas: JSONSchema7[],\n options: IOptions,\n ): boolean {\n const schema = schemas[i] as JSONSchema7 & { _field?: FormlyFieldConfig };\n if (!schema._field) {\n Object.defineProperty(schema, '_field', { enumerable: false, writable: true, configurable: true });\n }\n\n let field = schema._field;\n let model = root.model ? root.model : root.fieldArray ? [] : {};\n if (root.model && hasKey(root)) {\n model = { [Array.isArray(root.key) ? root.key.join('.') : root.key]: getFieldValue(root) };\n }\n\n model = clone(model);\n if (!field) {\n field = schema._field = root.options.build({\n form: Array.isArray(model) ? new FormArray([]) : new FormGroup({}),\n fieldGroup: [\n this._toFieldConfig(schema, {\n ...options,\n resetOnHide: true,\n ignoreDefault: true,\n map: null,\n }),\n ],\n model,\n options: {},\n });\n } else {\n (field as any).model = model;\n root.options.build(field);\n }\n\n return field.form.valid;\n }\n\n private mergeFields(f1: any, f2: any) {\n for (let prop in f2) {\n const f1Prop = prop === 'templateOptions' ? 'props' : prop;\n if (isObject(f1[f1Prop]) && isObject(f2[prop])) {\n f1[f1Prop] = this.mergeFields(f1[f1Prop], f2[prop]);\n } else if (f2[prop] != null) {\n f1[f1Prop] = f2[prop];\n }\n }\n\n return f1;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["hasKey","getFieldValue","clone","reverseDeepMerge"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-formly-core-json-schema.mjs","sources":["../../../../src/core/json-schema/src/formly-json-schema.service.ts","../../../../src/core/json-schema/src/ngx-formly-core-json-schema.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { JSONSchema7, JSONSchema7Definition } from 'json-schema';\nimport { AbstractControl, FormArray, FormGroup } from '@angular/forms';\nimport {\n ɵreverseDeepMerge as reverseDeepMerge,\n ɵgetFieldValue as getFieldValue,\n ɵclone as clone,\n ɵhasKey as hasKey,\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\ninterface FormlyJSONSchema7 extends JSONSchema7 {\n widget?: { formlyConfig: 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,\n p = 0;\n while (Math.round(a * e) / e !== a) {\n e *= 10;\n p++;\n }\n\n return p;\n}\n\nfunction isEmpty(v: any) {\n return v === '' || v == null;\n}\n\nfunction isObject(v: any) {\n return v != null && typeof v === 'object' && !Array.isArray(v);\n}\n\nfunction isInteger(value: any) {\n return Number.isInteger ? Number.isInteger(value) : typeof value === 'number' && Math.floor(value) === value;\n}\n\nfunction isConst(schema: JSONSchema7Definition) {\n return typeof schema === 'object' && (schema.hasOwnProperty('const') || (schema.enum && schema.enum.length === 1));\n}\n\nfunction toNumber(value: string | number | null) {\n if (value === '' || value === undefined) {\n return undefined;\n }\n\n if (value === null) {\n return null;\n }\n\n if (typeof value === 'number') {\n return value;\n }\n\n const val = parseFloat(value);\n return !isNaN(val) ? val : value;\n}\n\nfunction totalMatchedFields(field: FormlyFieldConfig): number {\n if (!field.fieldGroup) {\n return hasKey(field) && getFieldValue(field) !== undefined ? 1 : 0;\n }\n\n const total = field.fieldGroup.reduce((s, f) => totalMatchedFields(f) + s, 0);\n if (total === 0 && hasKey(field)) {\n const value = getFieldValue(field);\n if (\n value === null ||\n (value !== undefined && ((field.fieldArray && Array.isArray(value)) || (!field.fieldArray && isObject(value))))\n ) {\n return 1;\n }\n }\n\n return total;\n}\n\ninterface IOptions extends FormlyJsonschemaOptions {\n schema: FormlyJSONSchema7;\n resetOnHide?: boolean;\n shareFormControl?: boolean;\n ignoreDefault?: boolean;\n strict?: boolean;\n readOnly?: boolean;\n key?: FormlyFieldConfig['key'];\n isOptional?: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FormlyJsonschema {\n toFieldConfig(schema: JSONSchema7, options?: FormlyJsonschemaOptions): FormlyFieldConfig {\n schema = clone(schema);\n return this._toFieldConfig(schema, { schema, ...(options || {}) });\n }\n\n private _toFieldConfig(schema: FormlyJSONSchema7, { key, isOptional, ...options }: IOptions): FormlyFieldConfig {\n schema = this.resolveSchema(schema, options);\n const types = this.guessSchemaType(schema);\n\n let field: FormlyFieldConfig & { shareFormControl?: boolean } = {\n type: types[0],\n defaultValue: schema.default,\n props: {\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.props.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 (field.defaultValue === undefined && types.length === 1 && isOptional === false) {\n switch (types[0]) {\n case 'null': {\n field.defaultValue = null;\n break;\n }\n case 'string': {\n field.defaultValue = '';\n break;\n }\n case 'object': {\n field.defaultValue = {};\n break;\n }\n case 'array': {\n field.defaultValue = schema.minItems > 0 ? Array.from(new Array(schema.minItems)) : [];\n break;\n }\n }\n }\n\n if (options.ignoreDefault) {\n delete field.defaultValue;\n }\n\n this.addValidator(field, 'type', {\n schemaType: types,\n expression: ({ value }: AbstractControl) => {\n if (value === undefined) {\n return true;\n }\n\n if (value === null && types.indexOf('null') !== -1) {\n return true;\n }\n\n switch (types[0]) {\n case 'null': {\n return typeof value === null;\n }\n case 'string': {\n return typeof value === 'string';\n }\n case 'integer': {\n return isInteger(value);\n }\n case 'number': {\n return typeof value === 'number';\n }\n case 'object': {\n return isObject(value);\n }\n case 'array': {\n return Array.isArray(value);\n }\n }\n\n return true;\n },\n });\n\n switch (field.type) {\n case 'number':\n case 'integer': {\n field.parsers = [\n (v: string | number, f: FormlyFieldConfig) => {\n v = toNumber(v);\n\n if (v === null && f) {\n const input =\n typeof document !== 'undefined' && f.id\n ? document.querySelector<HTMLInputElement>(`#${f.id}`)\n : undefined;\n if (input && !input.validity.badInput) {\n v = undefined;\n }\n\n if (v !== f.formControl.value) {\n f.formControl.setValue(v, { emitModelToViewChange: false });\n }\n }\n\n return v;\n },\n ] as ((value: any, f?: FormlyFieldConfig) => any)[];\n\n if (schema.hasOwnProperty('minimum')) {\n field.props.min = schema.minimum;\n }\n\n if (schema.hasOwnProperty('maximum')) {\n field.props.max = schema.maximum;\n }\n\n if (schema.hasOwnProperty('exclusiveMinimum')) {\n field.props.exclusiveMinimum = schema.exclusiveMinimum;\n this.addValidator(\n field,\n 'exclusiveMinimum',\n ({ value }: AbstractControl) => isEmpty(value) || value > schema.exclusiveMinimum,\n );\n }\n\n if (schema.hasOwnProperty('exclusiveMaximum')) {\n field.props.exclusiveMaximum = schema.exclusiveMaximum;\n this.addValidator(\n field,\n 'exclusiveMaximum',\n ({ value }: AbstractControl) => isEmpty(value) || value < schema.exclusiveMaximum,\n );\n }\n\n if (schema.hasOwnProperty('multipleOf')) {\n field.props.step = schema.multipleOf;\n this.addValidator(field, 'multipleOf', ({ value }: AbstractControl) => {\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 field.parsers = [\n (v, f: FormlyFieldConfig) => {\n if (types.indexOf('null') !== -1) {\n v = isEmpty(v) ? null : v;\n } else if (f && !f.props.required) {\n v = v === '' ? undefined : v;\n }\n\n return v;\n },\n ] as ((value: any, f?: FormlyFieldConfig) => any)[];\n\n ['minLength', 'maxLength', 'pattern'].forEach((prop) => {\n if (schema.hasOwnProperty(prop)) {\n field.props[prop] = (schema as any)[prop];\n }\n });\n break;\n }\n case 'object': {\n if (!field.fieldGroup) {\n field.fieldGroup = [];\n }\n\n const { propDeps, schemaDeps } = this.resolveDependencies(schema);\n Object.keys(schema.properties || {}).forEach((property) => {\n const isRequired = Array.isArray(schema.required) && schema.required.indexOf(property) !== -1;\n const f = this._toFieldConfig(<JSONSchema7>schema.properties[property], {\n ...options,\n key: property,\n isOptional: isOptional || !isRequired,\n });\n\n field.fieldGroup.push(f);\n if (isRequired || propDeps[property]) {\n f.expressions = {\n ...(f.expressions || {}),\n 'props.required': (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.props ? parent.props.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] && f.model && propDeps[property].some((k) => !isEmpty(f.model[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 as JSONSchema7[];\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(\n { ...oneOfSchemaItem, properties },\n { ...options, shareFormControl: false, resetOnHide: true },\n ),\n expressions: {\n hide: (f) => !f.model || getConstValue(constSchema as JSONSchema7) !== f.model[property],\n },\n });\n });\n } else {\n field.fieldGroup.push({\n ...this._toFieldConfig(schemaDeps[property], options),\n expressions: {\n hide: (f) => !f.model || isEmpty(f.model[property]),\n },\n });\n }\n }\n });\n\n if (schema.oneOf) {\n field.fieldGroup.push(\n this.resolveMultiSchema('oneOf', <JSONSchema7[]>schema.oneOf, { ...options, shareFormControl: false }),\n );\n }\n\n if (schema.anyOf) {\n field.fieldGroup.push(this.resolveMultiSchema('anyOf', <JSONSchema7[]>schema.anyOf, options));\n }\n break;\n }\n case 'array': {\n if (schema.hasOwnProperty('minItems')) {\n field.props.minItems = schema.minItems;\n this.addValidator(field, 'minItems', ({ value }: AbstractControl) => {\n return isEmpty(value) || value.length >= schema.minItems;\n });\n if (!isOptional && schema.minItems > 0 && field.defaultValue === undefined) {\n field.defaultValue = Array.from(new Array(schema.minItems));\n }\n }\n if (schema.hasOwnProperty('maxItems')) {\n field.props.maxItems = schema.maxItems;\n this.addValidator(field, 'maxItems', ({ value }: AbstractControl) => {\n return isEmpty(value) || value.length <= schema.maxItems;\n });\n }\n if (schema.hasOwnProperty('uniqueItems')) {\n field.props.uniqueItems = schema.uniqueItems;\n this.addValidator(field, 'uniqueItems', ({ value }: AbstractControl) => {\n if (isEmpty(value) || !schema.uniqueItems) {\n return true;\n }\n\n const uniqueItems = Array.from(\n new Set(\n value.map((v: any) =>\n JSON.stringify(v, (k, o) => {\n if (isObject(o)) {\n return Object.keys(o)\n .sort()\n .reduce((obj: any, key) => {\n obj[key] = o[key];\n return obj;\n }, {});\n }\n\n return o;\n }),\n ),\n ),\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 field.fieldArray = (root: FormlyFieldConfig) => {\n const length = root.fieldGroup ? root.fieldGroup.length : 0;\n const items = schema.items as JSONSchema7 | JSONSchema7[];\n if (!Array.isArray(items)) {\n if (!items) {\n return {};\n }\n\n const isMultiSchema = items.oneOf || items.anyOf;\n\n // When items is a single schema, the additionalItems keyword is meaningless, and it should not be used.\n const f = this._toFieldConfig(\n items,\n isMultiSchema ? { ...options, key: `${length}`, isOptional: false } : { ...options, isOptional: false },\n );\n\n if (isMultiSchema && !hasKey(f)) {\n f.key = null;\n }\n\n return f;\n }\n\n const itemSchema = items[length] ? items[length] : schema.additionalItems;\n const f = itemSchema ? this._toFieldConfig(<JSONSchema7>itemSchema, options) : {};\n if (f.props) {\n f.props.required = true;\n }\n if (items[length]) {\n f.props.removable = false;\n }\n\n return f;\n };\n }\n break;\n }\n }\n\n if (schema.hasOwnProperty('const')) {\n field.props.const = schema.const;\n this.addValidator(field, 'const', ({ value }: AbstractControl) => value === schema.const);\n if (!field.type) {\n field.defaultValue = schema.const;\n }\n }\n\n if (this.isEnum(schema)) {\n const enumOptions = this.toEnumOptions(schema);\n const multiple = field.type === 'array';\n\n field.type = 'enum';\n field.props.multiple = multiple;\n field.props.options = enumOptions;\n\n const enumValues = enumOptions.map((o) => o.value);\n this.addValidator(field, 'enum', ({ value }: AbstractControl) => {\n if (value === undefined) {\n return true;\n }\n\n if (multiple) {\n return Array.isArray(value) ? value.every((o) => enumValues.includes(o)) : false;\n }\n\n return enumValues.includes(value);\n });\n }\n\n if (schema.oneOf && !field.type) {\n delete field.key;\n field.fieldGroup = [\n this.resolveMultiSchema('oneOf', <JSONSchema7[]>schema.oneOf, { ...options, key, shareFormControl: false }),\n ];\n }\n\n if (schema.anyOf && !field.type) {\n delete field.key;\n field.fieldGroup = [\n this.resolveMultiSchema('oneOf', <JSONSchema7[]>schema.anyOf, { ...options, key, shareFormControl: false }),\n ];\n }\n\n // map in possible formlyConfig options from the widget property\n if (schema.widget?.formlyConfig) {\n field = this.mergeFields(field, schema.widget.formlyConfig);\n }\n\n field.templateOptions = field.props;\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): JSONSchema7 {\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 }: FormlyJSONSchema7, options: IOptions) {\n if (!allOf.length) {\n throw Error(`allOf array can not be empty ${allOf}.`);\n }\n\n return (allOf as FormlyJSONSchema7[]).reduce((base: FormlyJSONSchema7, schema: FormlyJSONSchema7) => {\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 (\n ['maxLength', 'maximum', 'exclusiveMaximum', 'maxItems', 'maxProperties'] as (keyof FormlyJSONSchema7)[]\n ).forEach((prop) => {\n if (!isEmpty(base[prop]) && !isEmpty(schema[prop])) {\n (base as any)[prop] = base[prop] < schema[prop] ? base[prop] : schema[prop];\n }\n });\n\n // resolve to max value\n (\n ['minLength', 'minimum', 'exclusiveMinimum', 'minItems', 'minProperties'] as (keyof FormlyJSONSchema7)[]\n ).forEach((prop) => {\n if (!isEmpty(base[prop]) && !isEmpty(schema[prop])) {\n (base as any)[prop] = base[prop] > schema[prop] ? base[prop] : schema[prop];\n }\n });\n\n return reverseDeepMerge(base, schema);\n }, baseSchema);\n }\n\n private resolveMultiSchema(mode: 'oneOf' | 'anyOf', schemas: JSONSchema7[], options: IOptions): FormlyFieldConfig {\n return {\n type: 'multischema',\n fieldGroup: [\n {\n type: 'enum',\n defaultValue: -1,\n props: {\n multiple: mode === 'anyOf',\n options: schemas.map((s, i) => ({ label: s.title, value: i, disabled: s.readOnly })),\n },\n hooks: {\n onInit: (f) => f.formControl.valueChanges.pipe(tap(() => f.options.detectChanges(f.parent))),\n },\n },\n {\n fieldGroup: schemas.map((s, i) => ({\n ...this._toFieldConfig(s, { ...options, resetOnHide: true }),\n expressions: {\n hide: (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(\n (f, i) =>\n [f, i, this.isFieldValid(f, i, schemas, options)] as [FormlyFieldConfig, number, boolean],\n )\n .sort(([f1, , f1Valid], [f2, , f2Valid]) => {\n if (f1Valid !== f2Valid) {\n return f2Valid ? 1 : -1;\n }\n\n const matchedFields1 = totalMatchedFields(f1);\n const matchedFields2 = totalMatchedFields(f2);\n if (matchedFields1 === matchedFields2) {\n if (f1.props.disabled === f2.props.disabled) {\n return 0;\n }\n\n return matchedFields2 > matchedFields1 ? 1 : -1;\n }\n\n return matchedFields2 > matchedFields1 ? 1 : -1;\n })\n .map(([, i]) => i);\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) ? control.value.indexOf(i) === -1 : control.value !== i;\n },\n },\n })),\n },\n ],\n };\n }\n\n private resolveDefinition(schema: FormlyJSONSchema7, options: IOptions): FormlyJSONSchema7 {\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\n ? null\n : pointer\n .split('/')\n .reduce((def, path) => (def?.hasOwnProperty(path) ? (def as any)[path] : null), options.schema);\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 as any)[p];\n }\n\n return annotation;\n }, {} as any),\n };\n }\n\n private resolveDependencies(schema: JSONSchema7) {\n const propDeps: { [id: string]: string[] } = {};\n const schemaDeps: { [id: string]: JSONSchema7 } = {};\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 (!propDeps[dep]) {\n propDeps[dep] = [prop];\n } else {\n propDeps[dep].push(prop);\n }\n });\n } else {\n // schema dependencies\n schemaDeps[prop] = dependency;\n }\n });\n\n return { propDeps, schemaDeps };\n }\n\n private guessSchemaType(schema: JSONSchema7) {\n const type = schema?.type;\n if (!type && schema?.properties) {\n return ['object'];\n }\n\n if (Array.isArray(type)) {\n if (type.length === 1) {\n return type;\n }\n\n if (type.length === 2 && type.indexOf('null') !== -1) {\n return type.sort((t1) => (t1 == 'null' ? 1 : -1));\n }\n\n return type;\n }\n\n return type ? [type] : [];\n }\n\n private addValidator(field: FormlyFieldConfig, name: string, validator: FormlyFieldConfig['validators']) {\n field.validators = field.validators || {};\n field.validators[name] = validator;\n }\n\n private isEnum(schema: JSONSchema7): boolean {\n return (\n !!schema.enum ||\n (schema.anyOf && (schema.anyOf as JSONSchema7[]).every(isConst)) ||\n (schema.oneOf && (schema.oneOf as JSONSchema7[]).every(isConst)) ||\n (schema.uniqueItems && schema.items && !Array.isArray(schema.items) && this.isEnum(<JSONSchema7>schema.items))\n );\n }\n\n private toEnumOptions(schema: JSONSchema7): { value: any; label: any }[] {\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, 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 as JSONSchema7[]).map(toEnum);\n }\n\n if (schema.oneOf) {\n return (schema.oneOf as JSONSchema7[]).map(toEnum);\n }\n\n return this.toEnumOptions(<JSONSchema7>schema.items);\n }\n\n private isFieldValid(\n root: FormlyFieldConfig & { _schemasFields?: { [key: number]: FormlyFieldConfig } },\n i: number,\n schemas: JSONSchema7[],\n options: IOptions,\n ): boolean {\n const schema = schemas[i] as JSONSchema7 & { _field?: FormlyFieldConfig };\n if (!schema._field) {\n Object.defineProperty(schema, '_field', { enumerable: false, writable: true, configurable: true });\n }\n\n let field = schema._field;\n let model = root.model ? root.model : root.fieldArray ? [] : {};\n if (root.model && hasKey(root)) {\n model = { [Array.isArray(root.key) ? root.key.join('.') : root.key]: getFieldValue(root) };\n }\n\n model = clone(model);\n if (!field) {\n field = schema._field = root.options.build({\n form: Array.isArray(model) ? new FormArray([]) : new FormGroup({}),\n fieldGroup: [\n this._toFieldConfig(schema, {\n ...options,\n resetOnHide: true,\n ignoreDefault: true,\n map: null,\n }),\n ],\n model,\n options: {},\n });\n } else {\n (field as any).model = model;\n root.options.build(field);\n }\n\n return field.form.valid;\n }\n\n private mergeFields(f1: any, f2: any) {\n for (let prop in f2) {\n const f1Prop = prop === 'templateOptions' ? 'props' : prop;\n if (isObject(f1[f1Prop]) && isObject(f2[prop])) {\n f1[f1Prop] = this.mergeFields(f1[f1Prop], f2[prop]);\n } else if (f2[prop] != null) {\n f1[f1Prop] = f2[prop];\n }\n }\n\n return f1;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["hasKey","getFieldValue","clone","reverseDeepMerge"],"mappings":"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"}
@@ -950,10 +950,12 @@ class FormlyField {
950
950
  if (!field) {
951
951
  return () => { };
952
952
  }
953
- const subscribes = [observeDeep(field, ['props'], () => field.options.detectChanges(field))];
954
- if (field.options) {
955
- subscribes.push(observeDeep(field.options, ['formState'], () => field.options.detectChanges(field)));
956
- }
953
+ const propsObserver = observeDeep(field, ['props'], () => field.options.detectChanges(field));
954
+ let subscribes = [
955
+ () => {
956
+ propsObserver();
957
+ },
958
+ ];
957
959
  for (const key of Object.keys(field._expressions || {})) {
958
960
  const expressionObserver = observe(field, ['_expressions', key], ({ currentValue, previousValue }) => {
959
961
  if (previousValue === null || previousValue === void 0 ? void 0 : previousValue.subscription) {
@@ -1125,15 +1127,20 @@ class FormlyForm {
1125
1127
  }
1126
1128
  });
1127
1129
  }
1130
+ let fieldChangesDetection = [];
1128
1131
  const valueChanges = this.field.options.fieldChanges
1129
1132
  .pipe(filter(({ field, type }) => hasKey(field) && type === 'valueChanges'), switchMap(() => (isNoopNgZone(this.ngZone) ? of(null) : this.ngZone.onStable.asObservable().pipe(take(1)))))
1130
1133
  .subscribe(() => this.ngZone.runGuarded(() => {
1131
1134
  // runGuarded is used to keep in sync the expression changes
1132
1135
  // https://github.com/ngx-formly/ngx-formly/issues/2095
1133
1136
  this.checkExpressionChange();
1137
+ if (this.field.options) {
1138
+ fieldChangesDetection.push(observeDeep(this.field.options, ['formState'], () => this.field.options.detectChanges(this.field)));
1139
+ }
1134
1140
  this.modelChange.emit((this._modelChangeValue = clone(this.model)));
1135
1141
  }));
1136
1142
  return () => {
1143
+ fieldChangesDetection.forEach((fnc) => fnc());
1137
1144
  formEvents === null || formEvents === void 0 ? void 0 : formEvents.unsubscribe();
1138
1145
  valueChanges.unsubscribe();
1139
1146
  };
@@ -1528,6 +1535,7 @@ class FieldArrayType extends FieldType {
1528
1535
  }
1529
1536
  }
1530
1537
  add(i, initialModel, { markAsDirty } = { markAsDirty: true }) {
1538
+ markAsDirty && this.formControl.markAsDirty();
1531
1539
  i = i == null ? this.field.fieldGroup.length : i;
1532
1540
  if (!this.model) {
1533
1541
  assignFieldValue(this.field, []);
@@ -1535,16 +1543,15 @@ class FieldArrayType extends FieldType {
1535
1543
  this.model.splice(i, 0, initialModel ? clone(initialModel) : undefined);
1536
1544
  this.markFieldForCheck(this.field.fieldGroup[i]);
1537
1545
  this._build();
1538
- markAsDirty && this.formControl.markAsDirty();
1539
1546
  }
1540
1547
  remove(i, { markAsDirty } = { markAsDirty: true }) {
1548
+ markAsDirty && this.formControl.markAsDirty();
1541
1549
  this.model.splice(i, 1);
1542
1550
  const field = this.field.fieldGroup[i];
1543
1551
  this.field.fieldGroup.splice(i, 1);
1544
1552
  this.field.fieldGroup.forEach((f, key) => this.updateArrayElementKey(f, `${key}`));
1545
1553
  unregisterControl(field, true);
1546
1554
  this._build();
1547
- markAsDirty && this.formControl.markAsDirty();
1548
1555
  }
1549
1556
  _build() {
1550
1557
  var _a;