@alfresco/adf-core 7.0.0-alpha.9-13515854716 → 7.0.0-alpha.9-13516847399

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.
@@ -33,7 +33,9 @@ export class RequiredFieldValidator {
33
33
  FormFieldTypes.DYNAMIC_TABLE,
34
34
  FormFieldTypes.ATTACH_FOLDER,
35
35
  FormFieldTypes.DECIMAL,
36
- FormFieldTypes.DISPLAY_EXTERNAL_PROPERTY
36
+ FormFieldTypes.DISPLAY_EXTERNAL_PROPERTY,
37
+ FormFieldTypes.ALFRESCO_FILE_VIEWER,
38
+ FormFieldTypes.PROPERTIES_VIEWER
37
39
  ];
38
40
  }
39
41
  isSupported(field) {
@@ -263,4 +265,4 @@ export const FORM_FIELD_VALIDATORS = [
263
265
  new FixedValueFieldValidator(),
264
266
  new DecimalFieldValidator()
265
267
  ];
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2NvcmUvZm9ybS1maWVsZC12YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFRbkQsTUFBTSxPQUFPLHNCQUFzQjtJQUFuQztRQUNZLG1CQUFjLEdBQUc7WUFDckIsY0FBYyxDQUFDLElBQUk7WUFDbkIsY0FBYyxDQUFDLGNBQWM7WUFDN0IsY0FBYyxDQUFDLE1BQU07WUFDckIsY0FBYyxDQUFDLE9BQU87WUFDdEIsY0FBYyxDQUFDLFNBQVM7WUFDeEIsY0FBYyxDQUFDLE1BQU07WUFDckIsY0FBYyxDQUFDLGdCQUFnQjtZQUMvQixjQUFjLENBQUMsYUFBYTtZQUM1QixjQUFjLENBQUMsTUFBTTtZQUNyQixjQUFjLENBQUMsTUFBTTtZQUNyQixjQUFjLENBQUMsYUFBYTtZQUM1QixjQUFjLENBQUMsYUFBYTtZQUM1QixjQUFjLENBQUMsT0FBTztZQUN0QixjQUFjLENBQUMseUJBQXlCO1NBQzNDLENBQUM7SUErQk4sQ0FBQztJQTdCRyxXQUFXLENBQUMsS0FBcUI7UUFDN0IsT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDbkYsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFxQjtRQUMxQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxD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dCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cblxuaW1wb3J0IHsgRm9ybUZpZWxkVHlwZXMgfSBmcm9tICcuL2Zvcm0tZmllbGQtdHlwZXMnO1xuaW1wb3J0IHsgaXNOdW1iZXJWYWx1ZSB9IGZyb20gJy4vZm9ybS1maWVsZC11dGlscyc7XG5pbXBvcnQgeyBGb3JtRmllbGRNb2RlbCB9IGZyb20gJy4vZm9ybS1maWVsZC5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybUZpZWxkVmFsaWRhdG9yIHtcbiAgICBpc1N1cHBvcnRlZChmaWVsZDogRm9ybUZpZWxkTW9kZWwpOiBib29sZWFuO1xuICAgIHZhbGlkYXRlKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBSZXF1aXJlZEZpZWxkVmFsaWRhdG9yIGltcGxlbWVudHMgRm9ybUZpZWxkVmFsaWRhdG9yIHtcbiAgICBwcml2YXRlIHN1cHBvcnRlZFR5cGVzID0gW1xuICAgICAgICBGb3JtRmllbGRUeXBlcy5URVhULFxuICAgICAgICBGb3JtRmllbGRUeXBlcy5NVUxUSUxJTkVfVEVYVCxcbiAgICAgICAgRm9ybUZpZWxkVHlwZXMuTlVNQkVSLFxuICAgICAgICBGb3JtRmllbGRUeXBlcy5CT09MRUFOLFxuICAgICAgICBGb3JtRmllbGRUeXBlcy5UWVBFQUhFQUQsXG4gICAgICAgIEZvcm1GaWVsZFR5cGVzLlBFT1BMRSxcbiAgICAgICAgRm9ybUZpZWxkVHlwZXMuRlVOQ1RJT05BTF9HUk9VUCxcbiAgICAgICAgRm9ybUZpZWxkVHlwZXMuUkFESU9fQlVUVE9OUyxcbiAgICAgICAgRm9ybUZpZWxkVHlwZXMuVVBMT0FELFxuICAgICAgICBGb3JtRmllbGRUeXBlcy5BTU9VTlQsXG4gICAgICAgIEZvcm1GaWVsZFR5cGVzLkRZTkFNSUNfVEFCTEUsXG4gICAgICAgIEZvcm1GaWVsZFR5cGVzLkFUVEFDSF9GT0xERVIsXG4gICAgICAgIEZvcm1GaWVsZFR5cGVzLkRFQ0lNQUwsXG4gICAgICAgIEZvcm1GaWVsZFR5cGVzLkRJU1BMQVlfRVhURVJOQUxfUFJPUEVSVFlcbiAgICBdO1xuXG4gICAgaXNTdXBwb3J0ZWQoZmllbGQ6IEZvcm1GaWVsZE1vZGVsKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmaWVsZCAmJiB0aGlzLnN1cHBvcnRlZFR5cGVzLmluZGV4T2YoZmllbGQudHlwZSkgPiAtMSAmJiBmaWVsZC5yZXF1aXJlZDtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZShmaWVsZDogRm9ybUZpZWxkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdXBwb3J0ZWQoZmllbGQpICYmIGZpZWxkLmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IEZvcm1GaWVsZFR5cGVzLlJBRElPX0JVVFRPTlMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBmaWVsZC5vcHRpb25zLmZpbmQoKG9wdCkgPT4gb3B0LmlkID09PSBmaWVsZC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhb3B0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gRm9ybUZpZWxkVHlwZXMuVVBMT0FEKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhZmllbGQudmFsdWUgJiYgZmllbGQudmFsdWUubGVuZ3RoID4gMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IEZvcm1GaWVsZFR5cGVzLkRZTkFNSUNfVEFCTEUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISFmaWVsZC52YWx1ZSAmJiBmaWVsZC52YWx1ZSBpbnN0YW5jZW9mIEFycmF5ICYmIGZpZWxkLnZhbHVlLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSBGb3JtRmllbGRUeXBlcy5CT09MRUFOKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhZmllbGQudmFsdWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmaWVsZC52YWx1ZSA9PT0gbnVsbCB8fCBmaWVsZC52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGZpZWxkLnZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOdW1iZXJGaWVsZFZhbGlkYXRvciBpbXBsZW1lbnRzIEZvcm1GaWVsZFZhbGlkYXRvciB7XG4gICAgcHJpdmF0ZSBzdXBwb3J0ZWRUeXBlcyA9IFtGb3JtRmllbGRUeXBlcy5OVU1CRVIsIEZvcm1GaWVsZFR5cGVzLkFNT1VOVF07XG5cbiAgICBzdGF0aWMgaXNOdW1iZXIodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNOdW1iZXJWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaXNTdXBwb3J0ZWQoZmllbGQ6IEZvcm1GaWVsZE1vZGVsKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmaWVsZCAmJiB0aGlzLnN1cHBvcnRlZFR5cGVzLmluZGV4T2YoZmllbGQudHlwZSkgPiAtMTtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZShmaWVsZDogRm9ybUZpZWxkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdXBwb3J0ZWQoZmllbGQpICYmIGZpZWxkLmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgaWYgKGZpZWxkLnZhbHVlID09PSBudWxsIHx8IGZpZWxkLnZhbHVlID09PSB1bmRlZmluZWQgfHwgZmllbGQudmFsdWUgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB2YWx1ZVN0ciA9ICcnICsgZmllbGQudmFsdWU7XG4gICAgICAgICAgICBsZXQgcGF0dGVybiA9IG5ldyBSZWdFeHAoL14tP1xcZCskLyk7XG4gICAgICAgICAgICBpZiAoZmllbGQuZW5hYmxlRnJhY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgcGF0dGVybiA9IG5ldyBSZWdFeHAoL14tP1swLTldKyhcXC5bMC05XXsxLDJ9KT8kLyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWVTdHIubWF0Y2gocGF0dGVybikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5Lm1lc3NhZ2UgPSAnRk9STS5GSUVMRC5WQUxJREFUT1IuSU5WQUxJRF9OVU1CRVInO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1pbkxlbmd0aEZpZWxkVmFsaWRhdG9yIGltcGxlbWVudHMgRm9ybUZpZWxkVmFsaWRhdG9yIHtcbiAgICBwcml2YXRlIHN1cHBvcnRlZFR5cGVzID0gW0Zvcm1GaWVsZFR5cGVzLlRFWFQsIEZvcm1GaWVsZFR5cGVzLk1VTFRJTElORV9URVhUXTtcblxuICAgIGlzU3VwcG9ydGVkKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmllbGQgJiYgdGhpcy5zdXBwb3J0ZWRUeXBlcy5pbmRleE9mKGZpZWxkLnR5cGUpID4gLTEgJiYgZmllbGQubWluTGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZShmaWVsZDogRm9ybUZpZWxkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdXBwb3J0ZWQoZmllbGQpICYmIGZpZWxkLnZhbHVlICYmIGZpZWxkLmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgaWYgKGZpZWxkLnZhbHVlLmxlbmd0aCA+PSBmaWVsZC5taW5MZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5Lm1lc3NhZ2UgPSBgRk9STS5GSUVMRC5WQUxJREFUT1IuQVRfTEVBU1RfTE9OR2A7XG4gICAgICAgICAgICBmaWVsZC52YWxpZGF0aW9uU3VtbWFyeS5hdHRyaWJ1dGVzLnNldCgnbWluTGVuZ3RoJywgZmllbGQubWluTGVuZ3RoLnRvTG9jYWxlU3RyaW5nKCkpO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1heExlbmd0aEZpZWxkVmFsaWRhdG9yIGltcGxlbWVudHMgRm9ybUZpZWxkVmFsaWRhdG9yIHtcbiAgICBwcml2YXRlIHN1cHBvcnRlZFR5cGVzID0gW0Zvcm1GaWVsZFR5cGVzLlRFWFQsIEZvcm1GaWVsZFR5cGVzLk1VTFRJTElORV9URVhUXTtcblxuICAgIGlzU3VwcG9ydGVkKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmllbGQgJiYgdGhpcy5zdXBwb3J0ZWRUeXBlcy5pbmRleE9mKGZpZWxkLnR5cGUpID4gLTEgJiYgZmllbGQubWF4TGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZShmaWVsZDogRm9ybUZpZWxkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdXBwb3J0ZWQoZmllbGQpICYmIGZpZWxkLnZhbHVlICYmIGZpZWxkLmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgaWYgKGZpZWxkLnZhbHVlLmxlbmd0aCA8PSBmaWVsZC5tYXhMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5Lm1lc3NhZ2UgPSBgRk9STS5GSUVMRC5WQUxJREFUT1IuTk9fTE9OR0VSX1RIQU5gO1xuICAgICAgICAgICAgZmllbGQudmFsaWRhdGlvblN1bW1hcnkuYXR0cmlidXRlcy5zZXQoJ21heExlbmd0aCcsIGZpZWxkLm1heExlbmd0aC50b0xvY2FsZVN0cmluZygpKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNaW5WYWx1ZUZpZWxkVmFsaWRhdG9yIGltcGxlbWVudHMgRm9ybUZpZWxkVmFsaWRhdG9yIHtcbiAgICBwcml2YXRlIHN1cHBvcnRlZFR5cGVzID0gW0Zvcm1GaWVsZFR5cGVzLk5VTUJFUiwgRm9ybUZpZWxkVHlwZXMuREVDSU1BTCwgRm9ybUZpZWxkVHlwZXMuQU1PVU5UXTtcblxuICAgIGlzU3VwcG9ydGVkKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmllbGQgJiYgdGhpcy5zdXBwb3J0ZWRUeXBlcy5pbmRleE9mKGZpZWxkLnR5cGUpID4gLTEgJiYgTnVtYmVyRmllbGRWYWxpZGF0b3IuaXNOdW1iZXIoZmllbGQubWluVmFsdWUpO1xuICAgIH1cblxuICAgIHZhbGlkYXRlKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5pc1N1cHBvcnRlZChmaWVsZCkgJiYgZmllbGQudmFsdWUgJiYgZmllbGQuaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZTogbnVtYmVyID0gK2ZpZWxkLnZhbHVlO1xuICAgICAgICAgICAgY29uc3QgbWluVmFsdWU6IG51bWJlciA9ICtmaWVsZC5taW5WYWx1ZTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlID49IG1pblZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaWVsZC52YWxpZGF0aW9uU3VtbWFyeS5tZXNzYWdlID0gYEZPUk0uRklFTEQuVkFMSURBVE9SLk5PVF9MRVNTX1RIQU5gO1xuICAgICAgICAgICAgZmllbGQudmFsaWRhdGlvblN1bW1hcnkuYXR0cmlidXRlcy5zZXQoJ21pblZhbHVlJywgZmllbGQubWluVmFsdWUudG9Mb2NhbGVTdHJpbmcoKSk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNYXhWYWx1ZUZpZWxkVmFsaWRhdG9yIGltcGxlbWVudHMgRm9ybUZpZWxkVmFsaWRhdG9yIHtcbiAgICBwcml2YXRlIHN1cHBvcnRlZFR5cGVzID0gW0Zvcm1GaWVsZFR5cGVzLk5VTUJFUiwgRm9ybUZpZWxkVHlwZXMuREVDSU1BTCwgRm9ybUZpZWxkVHlwZXMuQU1PVU5UXTtcblxuICAgIGlzU3VwcG9ydGVkKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmllbGQgJiYgdGhpcy5zdXBwb3J0ZWRUeXBlcy5pbmRleE9mKGZpZWxkLnR5cGUpID4gLTEgJiYgTnVtYmVyRmllbGRWYWxpZGF0b3IuaXNOdW1iZXIoZmllbGQubWF4VmFsdWUpO1xuICAgIH1cblxuICAgIHZhbGlkYXRlKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5pc1N1cHBvcnRlZChmaWVsZCkgJiYgZmllbGQudmFsdWUgJiYgZmllbGQuaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZTogbnVtYmVyID0gK2ZpZWxkLnZhbHVlO1xuICAgICAgICAgICAgY29uc3QgbWF4VmFsdWU6IG51bWJlciA9ICtmaWVsZC5tYXhWYWx1ZTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlIDw9IG1heFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaWVsZC52YWxpZGF0aW9uU3VtbWFyeS5tZXNzYWdlID0gYEZPUk0uRklFTEQuVkFMSURBVE9SLk5PVF9HUkVBVEVSX1RIQU5gO1xuICAgICAgICAgICAgZmllbGQudmFsaWRhdGlvblN1bW1hcnkuYXR0cmlidXRlcy5zZXQoJ21heFZhbHVlJywgZmllbGQubWF4VmFsdWUudG9Mb2NhbGVTdHJpbmcoKSk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZWdFeEZpZWxkVmFsaWRhdG9yIGltcGxlbWVudHMgRm9ybUZpZWxkVmFsaWRhdG9yIHtcbiAgICBwcml2YXRlIHN1cHBvcnRlZFR5cGVzID0gW0Zvcm1GaWVsZFR5cGVzLlRFWFQsIEZvcm1GaWVsZFR5cGVzLk1VTFRJTElORV9URVhUXTtcblxuICAgIGlzU3VwcG9ydGVkKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmllbGQgJiYgdGhpcy5zdXBwb3J0ZWRUeXBlcy5pbmRleE9mKGZpZWxkLnR5cGUpID4gLTEgJiYgISFmaWVsZC5yZWdleFBhdHRlcm47XG4gICAgfVxuXG4gICAgdmFsaWRhdGUoZmllbGQ6IEZvcm1GaWVsZE1vZGVsKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmlzU3VwcG9ydGVkKGZpZWxkKSAmJiBmaWVsZC52YWx1ZSAmJiBmaWVsZC5pc1Zpc2libGUpIHtcbiAgICAgICAgICAgIGlmIChmaWVsZC52YWx1ZS5sZW5ndGggPiAwICYmIGZpZWxkLnZhbHVlLm1hdGNoKG5ldyBSZWdFeHAoJ14nICsgZmllbGQucmVnZXhQYXR0ZXJuICsgJyQnKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5Lm1lc3NhZ2UgPSAnRk9STS5GSUVMRC5WQUxJREFUT1IuSU5WQUxJRF9WQUxVRSc7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRml4ZWRWYWx1ZUZpZWxkVmFsaWRhdG9yIGltcGxlbWVudHMgRm9ybUZpZWxkVmFsaWRhdG9yIHtcbiAgICBwcml2YXRlIHN1cHBvcnRlZFR5cGVzID0gW0Zvcm1GaWVsZFR5cGVzLlRZUEVBSEVBRF07XG5cbiAgICBpc1N1cHBvcnRlZChmaWVsZDogRm9ybUZpZWxkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkICYmIHRoaXMuc3VwcG9ydGVkVHlwZXMuaW5kZXhPZihmaWVsZC50eXBlKSA+IC0xO1xuICAgIH1cblxuICAgIGhhc1ZhbGlkTmFtZU9yVmFsaWRJZChmaWVsZDogRm9ybUZpZWxkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzVmFsaWROYW1lKGZpZWxkKSB8fCB0aGlzLmhhc1ZhbGlkSWQoZmllbGQpO1xuICAgIH1cblxuICAgIGhhc1ZhbGlkTmFtZShmaWVsZDogRm9ybUZpZWxkTW9kZWwpIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkLm9wdGlvbnMuZmluZCgoaXRlbSkgPT4gaXRlbS5uYW1lICYmIGl0ZW0ubmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBmaWVsZC52YWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpKSA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBoYXNWYWxpZElkKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmllbGQub3B0aW9ucy5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09PSBmaWVsZC52YWx1ZSkgPyB0cnVlIDogZmFsc2U7XG4gICAgfVxuXG4gICAgaGFzU3RyaW5nVmFsdWUoZmllbGQ6IEZvcm1GaWVsZE1vZGVsKSB7XG4gICAgICAgIHJldHVybiBmaWVsZC52YWx1ZSAmJiB0eXBlb2YgZmllbGQudmFsdWUgPT09ICdzdHJpbmcnO1xuICAgIH1cblxuICAgIGhhc09wdGlvbnMoZmllbGQ6IEZvcm1GaWVsZE1vZGVsKSB7XG4gICAgICAgIHJldHVybiBmaWVsZC5vcHRpb25zICYmIGZpZWxkLm9wdGlvbnMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZShmaWVsZDogRm9ybUZpZWxkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdXBwb3J0ZWQoZmllbGQpICYmIGZpZWxkLmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaGFzU3RyaW5nVmFsdWUoZmllbGQpICYmIHRoaXMuaGFzT3B0aW9ucyhmaWVsZCkgJiYgIXRoaXMuaGFzVmFsaWROYW1lT3JWYWxpZElkKGZpZWxkKSkge1xuICAgICAgICAgICAgICAgIGZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5Lm1lc3NhZ2UgPSAnRk9STS5GSUVMRC5WQUxJREFUT1IuSU5WQUxJRF9WQUxVRSc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERlY2ltYWxGaWVsZFZhbGlkYXRvciBpbXBsZW1lbnRzIEZvcm1GaWVsZFZhbGlkYXRvciB7XG4gICAgcHJpdmF0ZSBzdXBwb3J0ZWRUeXBlcyA9IFtGb3JtRmllbGRUeXBlcy5ERUNJTUFMXTtcblxuICAgIGlzU3VwcG9ydGVkKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmllbGQgJiYgdGhpcy5zdXBwb3J0ZWRUeXBlcy5pbmRleE9mKGZpZWxkLnR5cGUpID4gLTEgJiYgISFmaWVsZC52YWx1ZTtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZShmaWVsZDogRm9ybUZpZWxkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qgc2hvdWxkVmFsaWRhdGVGaWVsZCA9IHRoaXMuaXNTdXBwb3J0ZWQoZmllbGQpICYmIGZpZWxkLmlzVmlzaWJsZTtcblxuICAgICAgICBpZiAoIXNob3VsZFZhbGlkYXRlRmllbGQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHJlY2lzaW9uID0gZmllbGQucHJlY2lzaW9uO1xuICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gZmllbGQudmFsdWU7XG5cbiAgICAgICAgaWYgKCFpc051bWJlclZhbHVlKGZpZWxkVmFsdWUpKSB7XG4gICAgICAgICAgICBmaWVsZC52YWxpZGF0aW9uU3VtbWFyeS5tZXNzYWdlID0gJ0ZPUk0uRklFTEQuVkFMSURBVE9SLklOVkFMSURfREVDSU1BTF9OVU1CRVInO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWUgPSB0eXBlb2YgZmllbGRWYWx1ZSA9PT0gJ3N0cmluZycgPyBmaWVsZFZhbHVlIDogZmllbGRWYWx1ZS50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB2YWx1ZVBhcnRzID0gdmFsdWUuc3BsaXQoJy4nKTtcbiAgICAgICAgY29uc3QgZGVjaW1hbFBhcnQgPSB2YWx1ZVBhcnRzWzFdO1xuXG4gICAgICAgIGlmIChkZWNpbWFsUGFydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkZWNpbWFsUGFydC5sZW5ndGggPiBwcmVjaXNpb24pIHtcbiAgICAgICAgICAgIGZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5Lm1lc3NhZ2UgPSAnRk9STS5GSUVMRC5WQUxJREFUT1IuSU5WQUxJRF9ERUNJTUFMX1BSRUNJU0lPTic7XG4gICAgICAgICAgICBmaWVsZC52YWxpZGF0aW9uU3VtbWFyeS5hdHRyaWJ1dGVzLnNldCgncHJlY2lzaW9uJywgcHJlY2lzaW9uLnRvU3RyaW5nKCkpO1xuXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBGT1JNX0ZJRUxEX1ZBTElEQVRPUlMgPSBbXG4gICAgbmV3IFJlcXVpcmVkRmllbGRWYWxpZGF0b3IoKSxcbiAgICBuZXcgTnVtYmVyRmllbGRWYWxpZGF0b3IoKSxcbiAgICBuZXcgTWluTGVuZ3RoRmllbGRWYWxpZGF0b3IoKSxcbiAgICBuZXcgTWF4TGVuZ3RoRmllbGRWYWxpZGF0b3IoKSxcbiAgICBuZXcgTWluVmFsdWVGaWVsZFZhbGlkYXRvcigpLFxuICAgIG5ldyBNYXhWYWx1ZUZpZWxkVmFsaWRhdG9yKCksXG4gICAgbmV3IFJlZ0V4RmllbGRWYWxpZGF0b3IoKSxcbiAgICBuZXcgRml4ZWRWYWx1ZUZpZWxkVmFsaWRhdG9yKCksXG4gICAgbmV3IERlY2ltYWxGaWVsZFZhbGlkYXRvcigpXG5dO1xuIl19
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2NvcmUvZm9ybS1maWVsZC12YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFRbkQsTUFBTSxPQUFPLHNCQUFzQjtJQUFuQztRQUNZLG1CQUFjLEdBQUc7WUFDckIsY0FBYyxDQUFDLElBQUk7WUFDbkIsY0FBYyxDQUFDLGNBQWM7WUFDN0IsY0FBYyxDQUFDLE1BQU07WUFDckIsY0FBYyxDQUFDLE9BQU87WUFDdEIsY0FBYyxDQUFDLFNBQVM7WUFDeEIsY0FBYyxDQUFDLE1BQU07WUFDckIsY0FBYyxDQUFDLGdCQUFnQjtZQUMvQixjQUFjLENBQUMsYUFBYTtZQUM1QixjQUFjLENBQUMsTUFBTTtZQUNyQixjQUFjLENBQUMsTUFBTTtZQUNyQixjQUFjLENBQUMsYUFBYTtZQUM1QixjQUFjLENBQUMsYUFBYTtZQUM1QixjQUFjLENBQUMsT0FBTztZQUN0QixjQUFjLENBQUMseUJBQXlCO1lBQ3hDLGNBQWMsQ0FBQyxvQkFBb0I7WUFDbkMsY0FBYyxDQUFDLGlCQUFpQjtTQUNuQyxDQUFDO0lBK0JOLENBQUM7SUE3QkcsV0FBVyxDQUFDLEtBQXFCO1FBQzdCLE9BQU8sS0FBSyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ25GLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBcUI7UUFDMUIs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OUIsSUFBSSxxQkFBcUIsRUFBRTtDQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXG5cbmltcG9ydCB7IEZvcm1GaWVsZFR5cGVzIH0gZnJvbSAnLi9mb3JtLWZpZWxkLXR5cGVzJztcbmltcG9ydCB7IGlzTnVtYmVyVmFsdWUgfSBmcm9tICcuL2Zvcm0tZmllbGQtdXRpbHMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkTW9kZWwgfSBmcm9tICcuL2Zvcm0tZmllbGQubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1GaWVsZFZhbGlkYXRvciB7XG4gICAgaXNTdXBwb3J0ZWQoZmllbGQ6IEZvcm1GaWVsZE1vZGVsKTogYm9vbGVhbjtcbiAgICB2YWxpZGF0ZShmaWVsZDogRm9ybUZpZWxkTW9kZWwpOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgUmVxdWlyZWRGaWVsZFZhbGlkYXRvciBpbXBsZW1lbnRzIEZvcm1GaWVsZFZhbGlkYXRvciB7XG4gICAgcHJpdmF0ZSBzdXBwb3J0ZWRUeXBlcyA9IFtcbiAgICAgICAgRm9ybUZpZWxkVHlwZXMuVEVYVCxcbiAgICAgICAgRm9ybUZpZWxkVHlwZXMuTVVMVElMSU5FX1RFWFQsXG4gICAgICAgIEZvcm1GaWVsZFR5cGVzLk5VTUJFUixcbiAgICAgICAgRm9ybUZpZWxkVHlwZXMuQk9PTEVBTixcbiAgICAgICAgRm9ybUZpZWxkVHlwZXMuVFlQRUFIRUFELFxuICAgICAgICBGb3JtRmllbGRUeXBlcy5QRU9QTEUsXG4gICAgICAgIEZvcm1GaWVsZFR5cGVzLkZVTkNUSU9OQUxfR1JPVVAsXG4gICAgICAgIEZvcm1GaWVsZFR5cGVzLlJBRElPX0JVVFRPTlMsXG4gICAgICAgIEZvcm1GaWVsZFR5cGVzLlVQTE9BRCxcbiAgICAgICAgRm9ybUZpZWxkVHlwZXMuQU1PVU5ULFxuICAgICAgICBGb3JtRmllbGRUeXBlcy5EWU5BTUlDX1RBQkxFLFxuICAgICAgICBGb3JtRmllbGRUeXBlcy5BVFRBQ0hfRk9MREVSLFxuICAgICAgICBGb3JtRmllbGRUeXBlcy5ERUNJTUFMLFxuICAgICAgICBGb3JtRmllbGRUeXBlcy5ESVNQTEFZX0VYVEVSTkFMX1BST1BFUlRZLFxuICAgICAgICBGb3JtRmllbGRUeXBlcy5BTEZSRVNDT19GSUxFX1ZJRVdFUixcbiAgICAgICAgRm9ybUZpZWxkVHlwZXMuUFJPUEVSVElFU19WSUVXRVJcbiAgICBdO1xuXG4gICAgaXNTdXBwb3J0ZWQoZmllbGQ6IEZvcm1GaWVsZE1vZGVsKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmaWVsZCAmJiB0aGlzLnN1cHBvcnRlZFR5cGVzLmluZGV4T2YoZmllbGQudHlwZSkgPiAtMSAmJiBmaWVsZC5yZXF1aXJlZDtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZShmaWVsZDogRm9ybUZpZWxkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdXBwb3J0ZWQoZmllbGQpICYmIGZpZWxkLmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IEZvcm1GaWVsZFR5cGVzLlJBRElPX0JVVFRPTlMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBmaWVsZC5vcHRpb25zLmZpbmQoKG9wdCkgPT4gb3B0LmlkID09PSBmaWVsZC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhb3B0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gRm9ybUZpZWxkVHlwZXMuVVBMT0FEKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhZmllbGQudmFsdWUgJiYgZmllbGQudmFsdWUubGVuZ3RoID4gMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IEZvcm1GaWVsZFR5cGVzLkRZTkFNSUNfVEFCTEUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISFmaWVsZC52YWx1ZSAmJiBmaWVsZC52YWx1ZSBpbnN0YW5jZW9mIEFycmF5ICYmIGZpZWxkLnZhbHVlLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSBGb3JtRmllbGRUeXBlcy5CT09MRUFOKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhZmllbGQudmFsdWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmaWVsZC52YWx1ZSA9PT0gbnVsbCB8fCBmaWVsZC52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGZpZWxkLnZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOdW1iZXJGaWVsZFZhbGlkYXRvciBpbXBsZW1lbnRzIEZvcm1GaWVsZFZhbGlkYXRvciB7XG4gICAgcHJpdmF0ZSBzdXBwb3J0ZWRUeXBlcyA9IFtGb3JtRmllbGRUeXBlcy5OVU1CRVIsIEZvcm1GaWVsZFR5cGVzLkFNT1VOVF07XG5cbiAgICBzdGF0aWMgaXNOdW1iZXIodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNOdW1iZXJWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaXNTdXBwb3J0ZWQoZmllbGQ6IEZvcm1GaWVsZE1vZGVsKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmaWVsZCAmJiB0aGlzLnN1cHBvcnRlZFR5cGVzLmluZGV4T2YoZmllbGQudHlwZSkgPiAtMTtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZShmaWVsZDogRm9ybUZpZWxkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdXBwb3J0ZWQoZmllbGQpICYmIGZpZWxkLmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgaWYgKGZpZWxkLnZhbHVlID09PSBudWxsIHx8IGZpZWxkLnZhbHVlID09PSB1bmRlZmluZWQgfHwgZmllbGQudmFsdWUgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB2YWx1ZVN0ciA9ICcnICsgZmllbGQudmFsdWU7XG4gICAgICAgICAgICBsZXQgcGF0dGVybiA9IG5ldyBSZWdFeHAoL14tP1xcZCskLyk7XG4gICAgICAgICAgICBpZiAoZmllbGQuZW5hYmxlRnJhY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgcGF0dGVybiA9IG5ldyBSZWdFeHAoL14tP1swLTldKyhcXC5bMC05XXsxLDJ9KT8kLyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWVTdHIubWF0Y2gocGF0dGVybikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5Lm1lc3NhZ2UgPSAnRk9STS5GSUVMRC5WQUxJREFUT1IuSU5WQUxJRF9OVU1CRVInO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1pbkxlbmd0aEZpZWxkVmFsaWRhdG9yIGltcGxlbWVudHMgRm9ybUZpZWxkVmFsaWRhdG9yIHtcbiAgICBwcml2YXRlIHN1cHBvcnRlZFR5cGVzID0gW0Zvcm1GaWVsZFR5cGVzLlRFWFQsIEZvcm1GaWVsZFR5cGVzLk1VTFRJTElORV9URVhUXTtcblxuICAgIGlzU3VwcG9ydGVkKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmllbGQgJiYgdGhpcy5zdXBwb3J0ZWRUeXBlcy5pbmRleE9mKGZpZWxkLnR5cGUpID4gLTEgJiYgZmllbGQubWluTGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZShmaWVsZDogRm9ybUZpZWxkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdXBwb3J0ZWQoZmllbGQpICYmIGZpZWxkLnZhbHVlICYmIGZpZWxkLmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgaWYgKGZpZWxkLnZhbHVlLmxlbmd0aCA+PSBmaWVsZC5taW5MZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5Lm1lc3NhZ2UgPSBgRk9STS5GSUVMRC5WQUxJREFUT1IuQVRfTEVBU1RfTE9OR2A7XG4gICAgICAgICAgICBmaWVsZC52YWxpZGF0aW9uU3VtbWFyeS5hdHRyaWJ1dGVzLnNldCgnbWluTGVuZ3RoJywgZmllbGQubWluTGVuZ3RoLnRvTG9jYWxlU3RyaW5nKCkpO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1heExlbmd0aEZpZWxkVmFsaWRhdG9yIGltcGxlbWVudHMgRm9ybUZpZWxkVmFsaWRhdG9yIHtcbiAgICBwcml2YXRlIHN1cHBvcnRlZFR5cGVzID0gW0Zvcm1GaWVsZFR5cGVzLlRFWFQsIEZvcm1GaWVsZFR5cGVzLk1VTFRJTElORV9URVhUXTtcblxuICAgIGlzU3VwcG9ydGVkKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmllbGQgJiYgdGhpcy5zdXBwb3J0ZWRUeXBlcy5pbmRleE9mKGZpZWxkLnR5cGUpID4gLTEgJiYgZmllbGQubWF4TGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZShmaWVsZDogRm9ybUZpZWxkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdXBwb3J0ZWQoZmllbGQpICYmIGZpZWxkLnZhbHVlICYmIGZpZWxkLmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgaWYgKGZpZWxkLnZhbHVlLmxlbmd0aCA8PSBmaWVsZC5tYXhMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5Lm1lc3NhZ2UgPSBgRk9STS5GSUVMRC5WQUxJREFUT1IuTk9fTE9OR0VSX1RIQU5gO1xuICAgICAgICAgICAgZmllbGQudmFsaWRhdGlvblN1bW1hcnkuYXR0cmlidXRlcy5zZXQoJ21heExlbmd0aCcsIGZpZWxkLm1heExlbmd0aC50b0xvY2FsZVN0cmluZygpKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNaW5WYWx1ZUZpZWxkVmFsaWRhdG9yIGltcGxlbWVudHMgRm9ybUZpZWxkVmFsaWRhdG9yIHtcbiAgICBwcml2YXRlIHN1cHBvcnRlZFR5cGVzID0gW0Zvcm1GaWVsZFR5cGVzLk5VTUJFUiwgRm9ybUZpZWxkVHlwZXMuREVDSU1BTCwgRm9ybUZpZWxkVHlwZXMuQU1PVU5UXTtcblxuICAgIGlzU3VwcG9ydGVkKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmllbGQgJiYgdGhpcy5zdXBwb3J0ZWRUeXBlcy5pbmRleE9mKGZpZWxkLnR5cGUpID4gLTEgJiYgTnVtYmVyRmllbGRWYWxpZGF0b3IuaXNOdW1iZXIoZmllbGQubWluVmFsdWUpO1xuICAgIH1cblxuICAgIHZhbGlkYXRlKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5pc1N1cHBvcnRlZChmaWVsZCkgJiYgZmllbGQudmFsdWUgJiYgZmllbGQuaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZTogbnVtYmVyID0gK2ZpZWxkLnZhbHVlO1xuICAgICAgICAgICAgY29uc3QgbWluVmFsdWU6IG51bWJlciA9ICtmaWVsZC5taW5WYWx1ZTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlID49IG1pblZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaWVsZC52YWxpZGF0aW9uU3VtbWFyeS5tZXNzYWdlID0gYEZPUk0uRklFTEQuVkFMSURBVE9SLk5PVF9MRVNTX1RIQU5gO1xuICAgICAgICAgICAgZmllbGQudmFsaWRhdGlvblN1bW1hcnkuYXR0cmlidXRlcy5zZXQoJ21pblZhbHVlJywgZmllbGQubWluVmFsdWUudG9Mb2NhbGVTdHJpbmcoKSk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNYXhWYWx1ZUZpZWxkVmFsaWRhdG9yIGltcGxlbWVudHMgRm9ybUZpZWxkVmFsaWRhdG9yIHtcbiAgICBwcml2YXRlIHN1cHBvcnRlZFR5cGVzID0gW0Zvcm1GaWVsZFR5cGVzLk5VTUJFUiwgRm9ybUZpZWxkVHlwZXMuREVDSU1BTCwgRm9ybUZpZWxkVHlwZXMuQU1PVU5UXTtcblxuICAgIGlzU3VwcG9ydGVkKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmllbGQgJiYgdGhpcy5zdXBwb3J0ZWRUeXBlcy5pbmRleE9mKGZpZWxkLnR5cGUpID4gLTEgJiYgTnVtYmVyRmllbGRWYWxpZGF0b3IuaXNOdW1iZXIoZmllbGQubWF4VmFsdWUpO1xuICAgIH1cblxuICAgIHZhbGlkYXRlKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5pc1N1cHBvcnRlZChmaWVsZCkgJiYgZmllbGQudmFsdWUgJiYgZmllbGQuaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZTogbnVtYmVyID0gK2ZpZWxkLnZhbHVlO1xuICAgICAgICAgICAgY29uc3QgbWF4VmFsdWU6IG51bWJlciA9ICtmaWVsZC5tYXhWYWx1ZTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlIDw9IG1heFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaWVsZC52YWxpZGF0aW9uU3VtbWFyeS5tZXNzYWdlID0gYEZPUk0uRklFTEQuVkFMSURBVE9SLk5PVF9HUkVBVEVSX1RIQU5gO1xuICAgICAgICAgICAgZmllbGQudmFsaWRhdGlvblN1bW1hcnkuYXR0cmlidXRlcy5zZXQoJ21heFZhbHVlJywgZmllbGQubWF4VmFsdWUudG9Mb2NhbGVTdHJpbmcoKSk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZWdFeEZpZWxkVmFsaWRhdG9yIGltcGxlbWVudHMgRm9ybUZpZWxkVmFsaWRhdG9yIHtcbiAgICBwcml2YXRlIHN1cHBvcnRlZFR5cGVzID0gW0Zvcm1GaWVsZFR5cGVzLlRFWFQsIEZvcm1GaWVsZFR5cGVzLk1VTFRJTElORV9URVhUXTtcblxuICAgIGlzU3VwcG9ydGVkKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmllbGQgJiYgdGhpcy5zdXBwb3J0ZWRUeXBlcy5pbmRleE9mKGZpZWxkLnR5cGUpID4gLTEgJiYgISFmaWVsZC5yZWdleFBhdHRlcm47XG4gICAgfVxuXG4gICAgdmFsaWRhdGUoZmllbGQ6IEZvcm1GaWVsZE1vZGVsKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmlzU3VwcG9ydGVkKGZpZWxkKSAmJiBmaWVsZC52YWx1ZSAmJiBmaWVsZC5pc1Zpc2libGUpIHtcbiAgICAgICAgICAgIGlmIChmaWVsZC52YWx1ZS5sZW5ndGggPiAwICYmIGZpZWxkLnZhbHVlLm1hdGNoKG5ldyBSZWdFeHAoJ14nICsgZmllbGQucmVnZXhQYXR0ZXJuICsgJyQnKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5Lm1lc3NhZ2UgPSAnRk9STS5GSUVMRC5WQUxJREFUT1IuSU5WQUxJRF9WQUxVRSc7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRml4ZWRWYWx1ZUZpZWxkVmFsaWRhdG9yIGltcGxlbWVudHMgRm9ybUZpZWxkVmFsaWRhdG9yIHtcbiAgICBwcml2YXRlIHN1cHBvcnRlZFR5cGVzID0gW0Zvcm1GaWVsZFR5cGVzLlRZUEVBSEVBRF07XG5cbiAgICBpc1N1cHBvcnRlZChmaWVsZDogRm9ybUZpZWxkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkICYmIHRoaXMuc3VwcG9ydGVkVHlwZXMuaW5kZXhPZihmaWVsZC50eXBlKSA+IC0xO1xuICAgIH1cblxuICAgIGhhc1ZhbGlkTmFtZU9yVmFsaWRJZChmaWVsZDogRm9ybUZpZWxkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzVmFsaWROYW1lKGZpZWxkKSB8fCB0aGlzLmhhc1ZhbGlkSWQoZmllbGQpO1xuICAgIH1cblxuICAgIGhhc1ZhbGlkTmFtZShmaWVsZDogRm9ybUZpZWxkTW9kZWwpIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkLm9wdGlvbnMuZmluZCgoaXRlbSkgPT4gaXRlbS5uYW1lICYmIGl0ZW0ubmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBmaWVsZC52YWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpKSA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBoYXNWYWxpZElkKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmllbGQub3B0aW9ucy5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09PSBmaWVsZC52YWx1ZSkgPyB0cnVlIDogZmFsc2U7XG4gICAgfVxuXG4gICAgaGFzU3RyaW5nVmFsdWUoZmllbGQ6IEZvcm1GaWVsZE1vZGVsKSB7XG4gICAgICAgIHJldHVybiBmaWVsZC52YWx1ZSAmJiB0eXBlb2YgZmllbGQudmFsdWUgPT09ICdzdHJpbmcnO1xuICAgIH1cblxuICAgIGhhc09wdGlvbnMoZmllbGQ6IEZvcm1GaWVsZE1vZGVsKSB7XG4gICAgICAgIHJldHVybiBmaWVsZC5vcHRpb25zICYmIGZpZWxkLm9wdGlvbnMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZShmaWVsZDogRm9ybUZpZWxkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdXBwb3J0ZWQoZmllbGQpICYmIGZpZWxkLmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaGFzU3RyaW5nVmFsdWUoZmllbGQpICYmIHRoaXMuaGFzT3B0aW9ucyhmaWVsZCkgJiYgIXRoaXMuaGFzVmFsaWROYW1lT3JWYWxpZElkKGZpZWxkKSkge1xuICAgICAgICAgICAgICAgIGZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5Lm1lc3NhZ2UgPSAnRk9STS5GSUVMRC5WQUxJREFUT1IuSU5WQUxJRF9WQUxVRSc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERlY2ltYWxGaWVsZFZhbGlkYXRvciBpbXBsZW1lbnRzIEZvcm1GaWVsZFZhbGlkYXRvciB7XG4gICAgcHJpdmF0ZSBzdXBwb3J0ZWRUeXBlcyA9IFtGb3JtRmllbGRUeXBlcy5ERUNJTUFMXTtcblxuICAgIGlzU3VwcG9ydGVkKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmllbGQgJiYgdGhpcy5zdXBwb3J0ZWRUeXBlcy5pbmRleE9mKGZpZWxkLnR5cGUpID4gLTEgJiYgISFmaWVsZC52YWx1ZTtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZShmaWVsZDogRm9ybUZpZWxkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qgc2hvdWxkVmFsaWRhdGVGaWVsZCA9IHRoaXMuaXNTdXBwb3J0ZWQoZmllbGQpICYmIGZpZWxkLmlzVmlzaWJsZTtcblxuICAgICAgICBpZiAoIXNob3VsZFZhbGlkYXRlRmllbGQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHJlY2lzaW9uID0gZmllbGQucHJlY2lzaW9uO1xuICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gZmllbGQudmFsdWU7XG5cbiAgICAgICAgaWYgKCFpc051bWJlclZhbHVlKGZpZWxkVmFsdWUpKSB7XG4gICAgICAgICAgICBmaWVsZC52YWxpZGF0aW9uU3VtbWFyeS5tZXNzYWdlID0gJ0ZPUk0uRklFTEQuVkFMSURBVE9SLklOVkFMSURfREVDSU1BTF9OVU1CRVInO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWUgPSB0eXBlb2YgZmllbGRWYWx1ZSA9PT0gJ3N0cmluZycgPyBmaWVsZFZhbHVlIDogZmllbGRWYWx1ZS50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB2YWx1ZVBhcnRzID0gdmFsdWUuc3BsaXQoJy4nKTtcbiAgICAgICAgY29uc3QgZGVjaW1hbFBhcnQgPSB2YWx1ZVBhcnRzWzFdO1xuXG4gICAgICAgIGlmIChkZWNpbWFsUGFydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkZWNpbWFsUGFydC5sZW5ndGggPiBwcmVjaXNpb24pIHtcbiAgICAgICAgICAgIGZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5Lm1lc3NhZ2UgPSAnRk9STS5GSUVMRC5WQUxJREFUT1IuSU5WQUxJRF9ERUNJTUFMX1BSRUNJU0lPTic7XG4gICAgICAgICAgICBmaWVsZC52YWxpZGF0aW9uU3VtbWFyeS5hdHRyaWJ1dGVzLnNldCgncHJlY2lzaW9uJywgcHJlY2lzaW9uLnRvU3RyaW5nKCkpO1xuXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBGT1JNX0ZJRUxEX1ZBTElEQVRPUlMgPSBbXG4gICAgbmV3IFJlcXVpcmVkRmllbGRWYWxpZGF0b3IoKSxcbiAgICBuZXcgTnVtYmVyRmllbGRWYWxpZGF0b3IoKSxcbiAgICBuZXcgTWluTGVuZ3RoRmllbGRWYWxpZGF0b3IoKSxcbiAgICBuZXcgTWF4TGVuZ3RoRmllbGRWYWxpZGF0b3IoKSxcbiAgICBuZXcgTWluVmFsdWVGaWVsZFZhbGlkYXRvcigpLFxuICAgIG5ldyBNYXhWYWx1ZUZpZWxkVmFsaWRhdG9yKCksXG4gICAgbmV3IFJlZ0V4RmllbGRWYWxpZGF0b3IoKSxcbiAgICBuZXcgRml4ZWRWYWx1ZUZpZWxkVmFsaWRhdG9yKCksXG4gICAgbmV3IERlY2ltYWxGaWVsZFZhbGlkYXRvcigpXG5dO1xuIl19
@@ -21000,7 +21000,9 @@ class RequiredFieldValidator {
21000
21000
  FormFieldTypes.DYNAMIC_TABLE,
21001
21001
  FormFieldTypes.ATTACH_FOLDER,
21002
21002
  FormFieldTypes.DECIMAL,
21003
- FormFieldTypes.DISPLAY_EXTERNAL_PROPERTY
21003
+ FormFieldTypes.DISPLAY_EXTERNAL_PROPERTY,
21004
+ FormFieldTypes.ALFRESCO_FILE_VIEWER,
21005
+ FormFieldTypes.PROPERTIES_VIEWER
21004
21006
  ];
21005
21007
  }
21006
21008
  isSupported(field) {