@gravitee/ui-particles-angular 13.3.1 → 13.4.0-apim-7242-flowphase-f02a23a

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.
@@ -35,9 +35,14 @@ export class ExpressionLanguageBuilder {
35
35
  let el = '';
36
36
  for (const condition of conditionGroup.conditions) {
37
37
  if (condition instanceof ConditionGroup) {
38
- el += '( ';
38
+ const hasMultipleConditions = condition.conditions.length > 1;
39
+ if (hasMultipleConditions) {
40
+ el += '( ';
41
+ }
39
42
  el += ExpressionLanguageBuilder.buildConditionGroup(condition);
40
- el += ' )';
43
+ if (hasMultipleConditions) {
44
+ el += ' )';
45
+ }
41
46
  }
42
47
  else {
43
48
  el += ExpressionLanguageBuilder.buildCondition(condition);
@@ -76,4 +81,4 @@ export class ExpressionLanguageBuilder {
76
81
  return `{ ${el} }`;
77
82
  }
78
83
  }
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwcmVzc2lvbkxhbmd1YWdlQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBhcnRpY2xlcy1hbmd1bGFyL2dpby1lbC9tb2RlbHMvRXhwcmVzc2lvbkxhbmd1YWdlQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUlsRCxNQUFNLE9BQU8seUJBQXlCO2FBQ3JCLGtCQUFhLEdBQUc7UUFDN0IsRUFBRSxFQUFFLElBQUk7UUFDUixHQUFHLEVBQUUsSUFBSTtLQUNWLENBQUM7YUFDYSxpQkFBWSxHQUFnRTtRQUN6RixNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssT0FBTyxLQUFLLEVBQUU7UUFDakQsVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLE9BQU8sS0FBSyxFQUFFO1FBQ3JELFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxNQUFNLEtBQUssRUFBRTtRQUNuRCxtQkFBbUIsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxPQUFPLEtBQUssRUFBRTtRQUM5RCxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssTUFBTSxLQUFLLEVBQUU7UUFDdEQsc0JBQXNCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssT0FBTyxLQUFLLEVBQUU7UUFDakUsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLGFBQWEsS0FBSyxHQUFHO1FBQzFELFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxhQUFhLEtBQUssR0FBRztRQUMvRCxXQUFXLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssY0FBYyxLQUFLLEdBQUc7UUFDOUQsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLGFBQWEsS0FBSyxJQUFJO0tBQzdELENBQUM7SUFFTSxNQUFNLENBQUMsbUJBQW1CLENBQUMsY0FBOEI7UUFDL0QsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ1osS0FBSyxNQUFNLFNBQVMsSUFBSSxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEQsSUFBSSxTQUFTLFlBQVksY0FBYyxFQUFFLENBQUM7Z0JBQ3hDLEVBQUUsSUFBSSxJQUFJLENBQUM7Z0JBQ1gsRUFBRSxJQUFJLHlCQUF5QixDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMvRCxFQUFFLElBQUksSUFBSSxDQUFDO1lBQ2IsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEVBQUUsSUFBSSx5QkFBeUIsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUQsQ0FBQztZQUVELElBQUksU0FBUyxLQUFLLGNBQWMsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbEYsRUFBRSxJQUFJLElBQUkseUJBQXlCLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQ2pGLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDZCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTyxNQUFNLENBQUMsY0FBYyxDQUFDLFNBQThEO1FBQzFGLE1BQU0sUUFBUSxHQUFHLHlCQUF5QixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUUsT0FBTyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRU8sTUFBTSxDQUFDLGFBQWEsQ0FBcUQsSUFBTyxFQUFFLEtBQWM7UUFDdEcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssUUFBUTtnQkFDWCxPQUFPLElBQUksS0FBSyxHQUFHLENBQUM7WUFDdEIsS0FBSyxNQUFNO2dCQUNULE9BQU8sR0FBSSxLQUFjLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQztZQUN6QztnQkFDRSxPQUFPLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBRyxDQUFDO0lBRS9DLEtBQUs7UUFDVixNQUFNLEVBQUUsR0FBRyx5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFOUUsT0FBTyxLQUFLLEVBQUUsSUFBSSxDQUFDO0lBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDI0IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29uZGl0aW9uR3JvdXAgfSBmcm9tICcuL0NvbmRpdGlvbkdyb3VwJztcbmltcG9ydCB7IE9wZXJhdG9yIH0gZnJvbSAnLi9PcGVyYXRvcic7XG5pbXBvcnQgeyBDb25kaXRpb24gfSBmcm9tICcuL0NvbmRpdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBFeHByZXNzaW9uTGFuZ3VhZ2VCdWlsZGVyIHtcbiAgcHJpdmF0ZSBzdGF0aWMgQ09ORElUSU9OX01BUCA9IHtcbiAgICBPUjogJ3x8JyxcbiAgICBBTkQ6ICcmJicsXG4gIH07XG4gIHByaXZhdGUgc3RhdGljIE9QRVJBVE9SX01BUDogUmVjb3JkPE9wZXJhdG9yLCAoZmllbGQ6IHN0cmluZywgdmFsdWU6IHVua25vd24pID0+IHN0cmluZz4gPSB7XG4gICAgRVFVQUxTOiAoZmllbGQsIHZhbHVlKSA9PiBgIyR7ZmllbGR9ID09ICR7dmFsdWV9YCxcbiAgICBOT1RfRVFVQUxTOiAoZmllbGQsIHZhbHVlKSA9PiBgIyR7ZmllbGR9ICE9ICR7dmFsdWV9YCxcbiAgICBMRVNTX1RIQU46IChmaWVsZCwgdmFsdWUpID0+IGAjJHtmaWVsZH0gPCAke3ZhbHVlfWAsXG4gICAgTEVTU19USEFOX09SX0VRVUFMUzogKGZpZWxkLCB2YWx1ZSkgPT4gYCMke2ZpZWxkfSA8PSAke3ZhbHVlfWAsXG4gICAgR1JFQVRFUl9USEFOOiAoZmllbGQsIHZhbHVlKSA9PiBgIyR7ZmllbGR9ID4gJHt2YWx1ZX1gLFxuICAgIEdSRUFURVJfVEhBTl9PUl9FUVVBTFM6IChmaWVsZCwgdmFsdWUpID0+IGAjJHtmaWVsZH0gPj0gJHt2YWx1ZX1gLFxuICAgIENPTlRBSU5TOiAoZmllbGQsIHZhbHVlKSA9PiBgIyR7ZmllbGR9IG1hdGNoZXMgXCIke3ZhbHVlfVwiYCxcbiAgICBOT1RfQ09OVEFJTlM6IChmaWVsZCwgdmFsdWUpID0+IGAhIyR7ZmllbGR9IG1hdGNoZXMgXCIke3ZhbHVlfVwiYCxcbiAgICBTVEFSVFNfV0lUSDogKGZpZWxkLCB2YWx1ZSkgPT4gYCMke2ZpZWxkfSBtYXRjaGVzIFwiXiR7dmFsdWV9XCJgLFxuICAgIEVORFNfV0lUSDogKGZpZWxkLCB2YWx1ZSkgPT4gYCMke2ZpZWxkfSBtYXRjaGVzIFwiJHt2YWx1ZX0kXCJgLFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIGJ1aWxkQ29uZGl0aW9uR3JvdXAoY29uZGl0aW9uR3JvdXA6IENvbmRpdGlvbkdyb3VwKTogc3RyaW5nIHtcbiAgICBsZXQgZWwgPSAnJztcbiAgICBmb3IgKGNvbnN0IGNvbmRpdGlvbiBvZiBjb25kaXRpb25Hcm91cC5jb25kaXRpb25zKSB7XG4gICAgICBpZiAoY29uZGl0aW9uIGluc3RhbmNlb2YgQ29uZGl0aW9uR3JvdXApIHtcbiAgICAgICAgZWwgKz0gJyggJztcbiAgICAgICAgZWwgKz0gRXhwcmVzc2lvbkxhbmd1YWdlQnVpbGRlci5idWlsZENvbmRpdGlvbkdyb3VwKGNvbmRpdGlvbik7XG4gICAgICAgIGVsICs9ICcgKSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbCArPSBFeHByZXNzaW9uTGFuZ3VhZ2VCdWlsZGVyLmJ1aWxkQ29uZGl0aW9uKGNvbmRpdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGlmIChjb25kaXRpb24gIT09IGNvbmRpdGlvbkdyb3VwLmNvbmRpdGlvbnNbY29uZGl0aW9uR3JvdXAuY29uZGl0aW9ucy5sZW5ndGggLSAxXSkge1xuICAgICAgICBlbCArPSBgICR7RXhwcmVzc2lvbkxhbmd1YWdlQnVpbGRlci5DT05ESVRJT05fTUFQW2NvbmRpdGlvbkdyb3VwLmNvbmRpdGlvbl19IGA7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChlbCA9PT0gJycpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgcmV0dXJuIGVsO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRDb25kaXRpb24oY29uZGl0aW9uOiBDb25kaXRpb248J3N0cmluZycgfCAnbnVtYmVyJyB8ICdkYXRlJyB8ICdib29sZWFuJz4pOiBzdHJpbmcge1xuICAgIGNvbnN0IG9wZXJhdG9yID0gRXhwcmVzc2lvbkxhbmd1YWdlQnVpbGRlci5PUEVSQVRPUl9NQVBbY29uZGl0aW9uLm9wZXJhdG9yXTtcbiAgICByZXR1cm4gb3BlcmF0b3IoY29uZGl0aW9uLmZpZWxkLCBFeHByZXNzaW9uTGFuZ3VhZ2VCdWlsZGVyLnZhbHVlVG9TdHJpbmcoY29uZGl0aW9uLnR5cGUsIGNvbmRpdGlvbi52YWx1ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgdmFsdWVUb1N0cmluZzxUIGV4dGVuZHMgJ3N0cmluZycgfCAnbnVtYmVyJyB8ICdkYXRlJyB8ICdib29sZWFuJz4odHlwZTogVCwgdmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICAgIGlmICghdHlwZSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgcmV0dXJuIGBcIiR7dmFsdWV9XCJgO1xuICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgIHJldHVybiBgJHsodmFsdWUgYXMgRGF0ZSkuZ2V0VGltZSgpfWxgO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGAke3ZhbHVlfWA7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25kaXRpb25Hcm91cDogQ29uZGl0aW9uR3JvdXApIHt9XG5cbiAgcHVibGljIGJ1aWxkKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZWwgPSBFeHByZXNzaW9uTGFuZ3VhZ2VCdWlsZGVyLmJ1aWxkQ29uZGl0aW9uR3JvdXAodGhpcy5jb25kaXRpb25Hcm91cCk7XG5cbiAgICByZXR1cm4gYHsgJHtlbH0gfWA7XG4gIH1cbn1cbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwcmVzc2lvbkxhbmd1YWdlQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBhcnRpY2xlcy1hbmd1bGFyL2dpby1lbC9tb2RlbHMvRXhwcmVzc2lvbkxhbmd1YWdlQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUlsRCxNQUFNLE9BQU8seUJBQXlCO2FBQ3JCLGtCQUFhLEdBQUc7UUFDN0IsRUFBRSxFQUFFLElBQUk7UUFDUixHQUFHLEVBQUUsSUFBSTtLQUNWLENBQUM7YUFDYSxpQkFBWSxHQUFnRTtRQUN6RixNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssT0FBTyxLQUFLLEVBQUU7UUFDakQsVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLE9BQU8sS0FBSyxFQUFFO1FBQ3JELFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxNQUFNLEtBQUssRUFBRTtRQUNuRCxtQkFBbUIsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxPQUFPLEtBQUssRUFBRTtRQUM5RCxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssTUFBTSxLQUFLLEVBQUU7UUFDdEQsc0JBQXNCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssT0FBTyxLQUFLLEVBQUU7UUFDakUsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLGFBQWEsS0FBSyxHQUFHO1FBQzFELFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxhQUFhLEtBQUssR0FBRztRQUMvRCxXQUFXLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssY0FBYyxLQUFLLEdBQUc7UUFDOUQsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLGFBQWEsS0FBSyxJQUFJO0tBQzdELENBQUM7SUFFTSxNQUFNLENBQUMsbUJBQW1CLENBQUMsY0FBOEI7UUFDL0QsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ1osS0FBSyxNQUFNLFNBQVMsSUFBSSxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEQsSUFBSSxTQUFTLFlBQVksY0FBYyxFQUFFLENBQUM7Z0JBQ3hDLE1BQU0scUJBQXFCLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2dCQUU5RCxJQUFJLHFCQUFxQixFQUFFLENBQUM7b0JBQzFCLEVBQUUsSUFBSSxJQUFJLENBQUM7Z0JBQ2IsQ0FBQztnQkFDRCxFQUFFLElBQUkseUJBQXlCLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQy9ELElBQUkscUJBQXFCLEVBQUUsQ0FBQztvQkFDMUIsRUFBRSxJQUFJLElBQUksQ0FBQztnQkFDYixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEVBQUUsSUFBSSx5QkFBeUIsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUQsQ0FBQztZQUVELElBQUksU0FBUyxLQUFLLGNBQWMsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbEYsRUFBRSxJQUFJLElBQUkseUJBQXlCLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQ2pGLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDZCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTyxNQUFNLENBQUMsY0FBYyxDQUFDLFNBQThEO1FBQzFGLE1BQU0sUUFBUSxHQUFHLHlCQUF5QixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUUsT0FBTyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRU8sTUFBTSxDQUFDLGFBQWEsQ0FBcUQsSUFBTyxFQUFFLEtBQWM7UUFDdEcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssUUFBUTtnQkFDWCxPQUFPLElBQUksS0FBSyxHQUFHLENBQUM7WUFDdEIsS0FBSyxNQUFNO2dCQUNULE9BQU8sR0FBSSxLQUFjLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQztZQUN6QztnQkFDRSxPQUFPLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBRyxDQUFDO0lBRS9DLEtBQUs7UUFDVixNQUFNLEVBQUUsR0FBRyx5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFOUUsT0FBTyxLQUFLLEVBQUUsSUFBSSxDQUFDO0lBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDI0IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29uZGl0aW9uR3JvdXAgfSBmcm9tICcuL0NvbmRpdGlvbkdyb3VwJztcbmltcG9ydCB7IE9wZXJhdG9yIH0gZnJvbSAnLi9PcGVyYXRvcic7XG5pbXBvcnQgeyBDb25kaXRpb24gfSBmcm9tICcuL0NvbmRpdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBFeHByZXNzaW9uTGFuZ3VhZ2VCdWlsZGVyIHtcbiAgcHJpdmF0ZSBzdGF0aWMgQ09ORElUSU9OX01BUCA9IHtcbiAgICBPUjogJ3x8JyxcbiAgICBBTkQ6ICcmJicsXG4gIH07XG4gIHByaXZhdGUgc3RhdGljIE9QRVJBVE9SX01BUDogUmVjb3JkPE9wZXJhdG9yLCAoZmllbGQ6IHN0cmluZywgdmFsdWU6IHVua25vd24pID0+IHN0cmluZz4gPSB7XG4gICAgRVFVQUxTOiAoZmllbGQsIHZhbHVlKSA9PiBgIyR7ZmllbGR9ID09ICR7dmFsdWV9YCxcbiAgICBOT1RfRVFVQUxTOiAoZmllbGQsIHZhbHVlKSA9PiBgIyR7ZmllbGR9ICE9ICR7dmFsdWV9YCxcbiAgICBMRVNTX1RIQU46IChmaWVsZCwgdmFsdWUpID0+IGAjJHtmaWVsZH0gPCAke3ZhbHVlfWAsXG4gICAgTEVTU19USEFOX09SX0VRVUFMUzogKGZpZWxkLCB2YWx1ZSkgPT4gYCMke2ZpZWxkfSA8PSAke3ZhbHVlfWAsXG4gICAgR1JFQVRFUl9USEFOOiAoZmllbGQsIHZhbHVlKSA9PiBgIyR7ZmllbGR9ID4gJHt2YWx1ZX1gLFxuICAgIEdSRUFURVJfVEhBTl9PUl9FUVVBTFM6IChmaWVsZCwgdmFsdWUpID0+IGAjJHtmaWVsZH0gPj0gJHt2YWx1ZX1gLFxuICAgIENPTlRBSU5TOiAoZmllbGQsIHZhbHVlKSA9PiBgIyR7ZmllbGR9IG1hdGNoZXMgXCIke3ZhbHVlfVwiYCxcbiAgICBOT1RfQ09OVEFJTlM6IChmaWVsZCwgdmFsdWUpID0+IGAhIyR7ZmllbGR9IG1hdGNoZXMgXCIke3ZhbHVlfVwiYCxcbiAgICBTVEFSVFNfV0lUSDogKGZpZWxkLCB2YWx1ZSkgPT4gYCMke2ZpZWxkfSBtYXRjaGVzIFwiXiR7dmFsdWV9XCJgLFxuICAgIEVORFNfV0lUSDogKGZpZWxkLCB2YWx1ZSkgPT4gYCMke2ZpZWxkfSBtYXRjaGVzIFwiJHt2YWx1ZX0kXCJgLFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIGJ1aWxkQ29uZGl0aW9uR3JvdXAoY29uZGl0aW9uR3JvdXA6IENvbmRpdGlvbkdyb3VwKTogc3RyaW5nIHtcbiAgICBsZXQgZWwgPSAnJztcbiAgICBmb3IgKGNvbnN0IGNvbmRpdGlvbiBvZiBjb25kaXRpb25Hcm91cC5jb25kaXRpb25zKSB7XG4gICAgICBpZiAoY29uZGl0aW9uIGluc3RhbmNlb2YgQ29uZGl0aW9uR3JvdXApIHtcbiAgICAgICAgY29uc3QgaGFzTXVsdGlwbGVDb25kaXRpb25zID0gY29uZGl0aW9uLmNvbmRpdGlvbnMubGVuZ3RoID4gMTtcblxuICAgICAgICBpZiAoaGFzTXVsdGlwbGVDb25kaXRpb25zKSB7XG4gICAgICAgICAgZWwgKz0gJyggJztcbiAgICAgICAgfVxuICAgICAgICBlbCArPSBFeHByZXNzaW9uTGFuZ3VhZ2VCdWlsZGVyLmJ1aWxkQ29uZGl0aW9uR3JvdXAoY29uZGl0aW9uKTtcbiAgICAgICAgaWYgKGhhc011bHRpcGxlQ29uZGl0aW9ucykge1xuICAgICAgICAgIGVsICs9ICcgKSc7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVsICs9IEV4cHJlc3Npb25MYW5ndWFnZUJ1aWxkZXIuYnVpbGRDb25kaXRpb24oY29uZGl0aW9uKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbmRpdGlvbiAhPT0gY29uZGl0aW9uR3JvdXAuY29uZGl0aW9uc1tjb25kaXRpb25Hcm91cC5jb25kaXRpb25zLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgIGVsICs9IGAgJHtFeHByZXNzaW9uTGFuZ3VhZ2VCdWlsZGVyLkNPTkRJVElPTl9NQVBbY29uZGl0aW9uR3JvdXAuY29uZGl0aW9uXX0gYDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVsID09PSAnJykge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gZWw7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBidWlsZENvbmRpdGlvbihjb25kaXRpb246IENvbmRpdGlvbjwnc3RyaW5nJyB8ICdudW1iZXInIHwgJ2RhdGUnIHwgJ2Jvb2xlYW4nPik6IHN0cmluZyB7XG4gICAgY29uc3Qgb3BlcmF0b3IgPSBFeHByZXNzaW9uTGFuZ3VhZ2VCdWlsZGVyLk9QRVJBVE9SX01BUFtjb25kaXRpb24ub3BlcmF0b3JdO1xuICAgIHJldHVybiBvcGVyYXRvcihjb25kaXRpb24uZmllbGQsIEV4cHJlc3Npb25MYW5ndWFnZUJ1aWxkZXIudmFsdWVUb1N0cmluZyhjb25kaXRpb24udHlwZSwgY29uZGl0aW9uLnZhbHVlKSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyB2YWx1ZVRvU3RyaW5nPFQgZXh0ZW5kcyAnc3RyaW5nJyB8ICdudW1iZXInIHwgJ2RhdGUnIHwgJ2Jvb2xlYW4nPih0eXBlOiBULCB2YWx1ZTogdW5rbm93bik6IHN0cmluZyB7XG4gICAgaWYgKCF0eXBlKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICByZXR1cm4gYFwiJHt2YWx1ZX1cImA7XG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgcmV0dXJuIGAkeyh2YWx1ZSBhcyBEYXRlKS5nZXRUaW1lKCl9bGA7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gYCR7dmFsdWV9YDtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmRpdGlvbkdyb3VwOiBDb25kaXRpb25Hcm91cCkge31cblxuICBwdWJsaWMgYnVpbGQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBlbCA9IEV4cHJlc3Npb25MYW5ndWFnZUJ1aWxkZXIuYnVpbGRDb25kaXRpb25Hcm91cCh0aGlzLmNvbmRpdGlvbkdyb3VwKTtcblxuICAgIHJldHVybiBgeyAke2VsfSB9YDtcbiAgfVxufVxuIl19
@@ -31,7 +31,7 @@ export class GioFjsCodeEditorTypeComponent extends FieldType {
31
31
  [formControl]="formControl"
32
32
  [languageConfig]="languageConfig"
33
33
  ></gio-monaco-editor>
34
- `, isInline: true, styles: ["gio-monaco-editor{min-height:38px}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2.GioMonacoEditorComponent, selector: "gio-monaco-editor", inputs: ["languageConfig", "options", "disableMiniMap", "disableAutoFormat"] }, { kind: "directive", type: i3.GioMonacoEditorFormFieldDirective, selector: "[gioMonacoEditorFormField]", inputs: ["placeholder", "required", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34
+ `, isInline: true, styles: ["gio-monaco-editor{min-height:38px}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2.GioMonacoEditorComponent, selector: "gio-monaco-editor", inputs: ["languageConfig", "options", "disableMiniMap", "disableAutoFormat", "singleLineMode"] }, { kind: "directive", type: i3.GioMonacoEditorFormFieldDirective, selector: "[gioMonacoEditorFormField]", inputs: ["placeholder", "required", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
35
35
  }
36
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GioFjsCodeEditorTypeComponent, decorators: [{
37
37
  type: Component,
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { ChangeDetectionStrategy, Component, Inject, Input, Optional, Self, } from '@angular/core';
16
+ import { ChangeDetectionStrategy, Component, HostBinding, Inject, Input, Optional, Self, } from '@angular/core';
17
17
  import { isEqual, isString, uniqueId } from 'lodash';
18
18
  import { ReplaySubject, Subject } from 'rxjs';
19
19
  import { takeUntil } from 'rxjs/operators';
@@ -37,6 +37,7 @@ export class GioMonacoEditorComponent {
37
37
  this.options = {};
38
38
  this.disableMiniMap = false;
39
39
  this.disableAutoFormat = false;
40
+ this.singleLineMode = false;
40
41
  this.loaded$ = new ReplaySubject(1);
41
42
  this.defaultOptions = {
42
43
  contextmenu: false,
@@ -135,18 +136,88 @@ export class GioMonacoEditorComponent {
135
136
  this.standaloneCodeEditor?.getAction('editor.action.formatDocument')?.run();
136
137
  }, 80);
137
138
  }
139
+ if (this.singleLineMode) {
140
+ this.standaloneCodeEditor?.addAction({
141
+ id: 'custom.action',
142
+ label: 'custom action',
143
+ keybindings: [monaco.KeyCode.Enter],
144
+ precondition: '!suggestWidgetVisible && !renameInputVisible && !inSnippetMode && !quickFixWidgetVisible',
145
+ run: () => {
146
+ // Ignore Enter key in single line mode when writing
147
+ return;
148
+ },
149
+ });
150
+ }
138
151
  const onDidChangeContent = this.textModel?.onDidChangeContent(() => {
139
- const newValue = this.textModel?.getValue();
152
+ const textModelValue = this.textModel?.getValue() ?? '';
153
+ if (this.singleLineMode) {
154
+ // If value has \n, \r or \r\n, remove them
155
+ // Useful to clear line breaks when pasting text
156
+ const hasLineBreak = new RegExp(/(\r\n|\n|\r)/gm);
157
+ if (hasLineBreak.test(textModelValue)) {
158
+ const currentPosition = this.standaloneCodeEditor?.getPosition();
159
+ setTimeout(() => {
160
+ this.standaloneCodeEditor?.pushUndoStop();
161
+ this.textModel?.setValue(textModelValue.replace(/(\r\n|\n|\r)/gm, ''));
162
+ if (currentPosition) {
163
+ this.standaloneCodeEditor?.setPosition(currentPosition);
164
+ }
165
+ this.standaloneCodeEditor?.popUndoStop();
166
+ }, 0);
167
+ return;
168
+ }
169
+ }
140
170
  this.ngZone.run(() => {
141
- if (!this.readOnly && !isEqual(this.value, newValue)) {
171
+ if (!this.readOnly && !isEqual(this.value, textModelValue)) {
142
172
  setTimeout(() => {
143
- this.value = newValue ?? '';
144
- this._onChange(newValue ?? '');
173
+ this.value = textModelValue;
174
+ this._onChange(textModelValue);
145
175
  this._onTouched();
146
176
  }, 0);
147
177
  }
148
178
  });
149
179
  });
180
+ if (this.singleLineMode) {
181
+ // Source : https://farzadyz.com/blog/single-line-monaco-editor
182
+ this.standaloneCodeEditor?.updateOptions({
183
+ // quickSuggestions: false,
184
+ fixedOverflowWidgets: true,
185
+ acceptSuggestionOnEnter: 'on',
186
+ hover: {
187
+ delay: 100,
188
+ },
189
+ roundedSelection: false,
190
+ contextmenu: false,
191
+ cursorStyle: 'line-thin',
192
+ links: false,
193
+ find: {
194
+ addExtraSpaceOnTop: false,
195
+ autoFindInSelection: 'never',
196
+ seedSearchStringFromSelection: 'never',
197
+ },
198
+ fontSize: 14,
199
+ fontWeight: 'normal',
200
+ overviewRulerLanes: 0,
201
+ scrollBeyondLastColumn: 0,
202
+ wordWrap: 'on',
203
+ minimap: {
204
+ enabled: false,
205
+ },
206
+ lineNumbers: 'off',
207
+ hideCursorInOverviewRuler: true,
208
+ overviewRulerBorder: false,
209
+ glyphMargin: false,
210
+ folding: false,
211
+ lineDecorationsWidth: 0,
212
+ lineNumbersMinChars: 0,
213
+ renderLineHighlight: 'none',
214
+ scrollbar: {
215
+ horizontal: 'hidden',
216
+ vertical: 'hidden',
217
+ alwaysConsumeMouseWheel: false,
218
+ },
219
+ });
220
+ }
150
221
  const onDidBlurEditorWidget = this.standaloneCodeEditor?.onDidBlurEditorWidget(() => {
151
222
  this.ngZone.run(() => {
152
223
  if (!this.readOnly)
@@ -176,11 +247,11 @@ export class GioMonacoEditorComponent {
176
247
  }
177
248
  }
178
249
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GioMonacoEditorComponent, deps: [{ token: i0.ElementRef }, { token: GIO_MONACO_EDITOR_CONFIG }, { token: i1.GioMonacoEditorService }, { token: i2.GioLanguageJsonService }, { token: i3.GioLanguageElService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i4.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
179
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: GioMonacoEditorComponent, selector: "gio-monaco-editor", inputs: { languageConfig: "languageConfig", options: "options", disableMiniMap: "disableMiniMap", disableAutoFormat: "disableAutoFormat" }, ngImport: i0, template: ` <div *ngIf="loaded$ | async">Loading...</div>`, isInline: true, styles: [":host{display:block;height:100%;min-height:150px;pointer-events:auto;transition:opacity .2s ease-out}:host-context(.hidden){opacity:0}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
250
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: GioMonacoEditorComponent, selector: "gio-monaco-editor", inputs: { languageConfig: "languageConfig", options: "options", disableMiniMap: "disableMiniMap", disableAutoFormat: "disableAutoFormat", singleLineMode: "singleLineMode" }, host: { properties: { "class.single-line": "this.singleLineMode" } }, ngImport: i0, template: ` <div *ngIf="loaded$ | async">Loading...</div>`, isInline: true, styles: [":host{display:block;height:100%;min-height:150px;pointer-events:auto;transition:opacity .2s ease-out}:host.single-line{display:flex;height:24px;min-height:24px;align-items:center}:host-context(.hidden){opacity:0}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
180
251
  }
181
252
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GioMonacoEditorComponent, decorators: [{
182
253
  type: Component,
183
- args: [{ selector: 'gio-monaco-editor', template: ` <div *ngIf="loaded$ | async">Loading...</div>`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;height:100%;min-height:150px;pointer-events:auto;transition:opacity .2s ease-out}:host-context(.hidden){opacity:0}\n"] }]
254
+ args: [{ selector: 'gio-monaco-editor', template: ` <div *ngIf="loaded$ | async">Loading...</div>`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;height:100%;min-height:150px;pointer-events:auto;transition:opacity .2s ease-out}:host.single-line{display:flex;height:24px;min-height:24px;align-items:center}:host-context(.hidden){opacity:0}\n"] }]
184
255
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{
185
256
  type: Inject,
186
257
  args: [GIO_MONACO_EDITOR_CONFIG]
@@ -196,6 +267,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
196
267
  type: Input
197
268
  }], disableAutoFormat: [{
198
269
  type: Input
270
+ }], singleLineMode: [{
271
+ type: Input
272
+ }, {
273
+ type: HostBinding,
274
+ args: ['class.single-line']
199
275
  }] } });
200
276
  const isJsonString = (str) => {
201
277
  try {
@@ -206,4 +282,4 @@ const isJsonString = (str) => {
206
282
  }
207
283
  return true;
208
284
  };
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLW1vbmFjby1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcGFydGljbGVzLWFuZ3VsYXIvc3JjL2xpYi9naW8tbW9uYWNvLWVkaXRvci9naW8tbW9uYWNvLWVkaXRvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDUixJQUFJLEdBQ0wsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXJELE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQXlCLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7QUFrQ2pHLE1BQU0sT0FBTyx3QkFBd0I7SUFtQ25DLFlBQ2tCLFdBQXVCLEVBQ1ksTUFBNkIsRUFDL0QsbUJBQTJDLEVBQzNDLG1CQUEyQyxFQUMzQyxtQkFBeUMsRUFDekMsaUJBQW9DLEVBQ3BDLE1BQWMsRUFDSyxTQUFvQjtRQVB4QyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUNZLFdBQU0sR0FBTixNQUFNLENBQXVCO1FBQy9ELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFDM0Msd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtRQUMzQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXNCO1FBQ3pDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNLLGNBQVMsR0FBVCxTQUFTLENBQVc7UUF0Q25ELFlB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U0FBUyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDNUQsQ0FBQztnQkFDRCxNQUFNO1lBQ1I7Z0JBQ0UsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDOzhHQTdMVSx3QkFBd0IsNENBcUN6Qix3QkFBd0I7a0dBckN2Qix3QkFBd0IscU1BSnpCLGdEQUFnRDs7MkZBSS9DLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSxtQkFBbUIsWUFDbkIsZ0RBQWdELG1CQUV6Qyx1QkFBdUIsQ0FBQyxNQUFNOzswQkF1QzVDLE1BQU07MkJBQUMsd0JBQXdCOzswQkFNL0IsUUFBUTs7MEJBQUksSUFBSTt5Q0F6Q1osY0FBYztzQkFEcEIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsY0FBYztzQkFEcEIsS0FBSztnQkFJQyxpQkFBaUI7c0JBRHZCLEtBQUs7O0FBc0xSLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBVyxFQUFXLEVBQUU7SUFDNUMsSUFBSSxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMyBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGlzRXF1YWwsIGlzU3RyaW5nLCB1bmlxdWVJZCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgTW9uYWNvLCB7IGVkaXRvciB9IGZyb20gJ21vbmFjby1lZGl0b3InO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBHaW9Nb25hY29FZGl0b3JDb25maWcsIEdJT19NT05BQ09fRURJVE9SX0NPTkZJRyB9IGZyb20gJy4vbW9kZWxzL0dpb01vbmFjb0VkaXRvckNvbmZpZyc7XG5pbXBvcnQgeyBHaW9MYW5ndWFnZUpzb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9naW8tbGFuZ3VhZ2UtanNvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEdpb01vbmFjb0VkaXRvclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2dpby1tb25hY28tZWRpdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2lvTGFuZ3VhZ2VFbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2dpby1sYW5ndWFnZS1lbC5zZXJ2aWNlJztcbmltcG9ydCB7IEpTT05TY2hlbWEgfSBmcm9tICcuL21vZGVscy9KU09OU2NoZW1hQXV0b0NvbXBsZXRlJztcblxuZXhwb3J0IHR5cGUgTW9uYWNvRWRpdG9yTGFuZ3VhZ2VDb25maWcgPVxuICB8IHtcbiAgICAgIGxhbmd1YWdlOiAnanNvbic7XG4gICAgICBzY2hlbWFzPzogeyB1cmk6IHN0cmluZzsgc2NoZW1hOiB1bmtub3duIH1bXTtcbiAgICB9XG4gIHwge1xuICAgICAgbGFuZ3VhZ2U6ICdtYXJrZG93bic7XG4gICAgfVxuICB8IHtcbiAgICAgIGxhbmd1YWdlOiAnaHRtbCc7XG4gICAgfVxuICB8IHtcbiAgICAgIGxhbmd1YWdlOiAneWFtbCc7XG4gICAgfVxuICB8IHtcbiAgICAgIGxhbmd1YWdlOiAnc3BlbCc7XG4gICAgICBzY2hlbWE/OiBKU09OU2NoZW1hO1xuICAgIH1cbiAgfCB7XG4gICAgICBsYW5ndWFnZTogJ2Nzcyc7XG4gICAgfTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2lvLW1vbmFjby1lZGl0b3InLFxuICB0ZW1wbGF0ZTogYCA8ZGl2ICpuZ0lmPVwibG9hZGVkJCB8IGFzeW5jXCI+TG9hZGluZy4uLjwvZGl2PmAsXG4gIHN0eWxlVXJsczogWycuL2dpby1tb25hY28tZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9Nb25hY29FZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgcHVibGljIGxhbmd1YWdlQ29uZmlnPzogTW9uYWNvRWRpdG9yTGFuZ3VhZ2VDb25maWc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG9wdGlvbnM6IGVkaXRvci5JU3RhbmRhbG9uZUVkaXRvckNvbnN0cnVjdGlvbk9wdGlvbnMgPSB7fTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGlzYWJsZU1pbmlNYXAgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGlzYWJsZUF1dG9Gb3JtYXQgPSBmYWxzZTtcblxuICBwdWJsaWMgbG9hZGVkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuXG4gIHByaXZhdGUgZGVmYXVsdE9wdGlvbnM6IGVkaXRvci5JU3RhbmRhbG9uZUVkaXRvckNvbnN0cnVjdGlvbk9wdGlvbnMgPSB7XG4gICAgY29udGV4dG1lbnU6IGZhbHNlLFxuICAgIG1pbmltYXA6IHtcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgfSxcbiAgICBhdXRvbWF0aWNMYXlvdXQ6IHRydWUsXG4gICAgc2Nyb2xsQmV5b25kTGFzdExpbmU6IGZhbHNlLFxuICB9O1xuXG4gIHB1YmxpYyB2YWx1ZSA9ICcnO1xuICBwdWJsaWMgcmVhZE9ubHkgPSBmYWxzZTtcbiAgcHVibGljIHN0YW5kYWxvbmVDb2RlRWRpdG9yPzogZWRpdG9yLklTdGFuZGFsb25lQ29kZUVkaXRvcjtcbiAgcHJpdmF0ZSB0ZXh0TW9kZWw/OiBlZGl0b3IuSVRleHRNb2RlbDtcbiAgcHJpdmF0ZSB0b0Rpc3Bvc2VzOiBNb25hY28uSURpc3Bvc2FibGVbXSA9IFtdO1xuXG4gIHByb3RlY3RlZCBfb25DaGFuZ2U6IChfdmFsdWU6IHN0cmluZyB8IG51bGwpID0+IHZvaWQgPSAoKSA9PiAoe30pO1xuXG4gIHByb3RlY3RlZCBfb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBob3N0RWxlbWVudDogRWxlbWVudFJlZixcbiAgICBASW5qZWN0KEdJT19NT05BQ09fRURJVE9SX0NPTkZJRykgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IEdpb01vbmFjb0VkaXRvckNvbmZpZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vbmFjb0VkaXRvclNlcnZpY2U6IEdpb01vbmFjb0VkaXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsYW5ndWFnZUpzb25TZXJ2aWNlOiBHaW9MYW5ndWFnZUpzb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGFuZ3VhZ2VTcGVsU2VydmljZTogR2lvTGFuZ3VhZ2VFbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyByZWFkb25seSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgKSB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAvLyBTZXQgdGhlIHZhbHVlIGFjY2Vzc29yIGRpcmVjdGx5IChpbnN0ZWFkIG9mIHByb3ZpZGluZ1xuICAgICAgLy8gTkdfVkFMVUVfQUNDRVNTT1IpIHRvIGF2b2lkIHJ1bm5pbmcgaW50byBhIGNpcmN1bGFyIGltcG9ydFxuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICAgIHRoaXMubW9uYWNvRWRpdG9yU2VydmljZS5sb2FkRWRpdG9yKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIC8vIFdhaXQgdW50aWwgbW9uYWNvIGVkaXRvciBpcyBhdmFpbGFibGVcbiAgICB0aGlzLm1vbmFjb0VkaXRvclNlcnZpY2UubG9hZGVkJC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpLnN1YnNjcmliZSgoeyBtb25hY28gfSkgPT4ge1xuICAgICAgdGhpcy5zZXR1cEVkaXRvcihtb25hY28pO1xuXG4gICAgICB0aGlzLmxvYWRlZCQubmV4dChmYWxzZSk7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnRvRGlzcG9zZXMuZm9yRWFjaChkID0+IGQuZGlzcG9zZSgpKTtcblxuICAgIGlmICh0aGlzLnN0YW5kYWxvbmVDb2RlRWRpdG9yKSB7XG4gICAgICB0aGlzLnN0YW5kYWxvbmVDb2RlRWRpdG9yLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMuc3RhbmRhbG9uZUNvZGVFZGl0b3IgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGV4dE1vZGVsKSB7XG4gICAgICB0aGlzLnRleHRNb2RlbC5kaXNwb3NlKCk7XG4gICAgICB0aGlzLnRleHRNb2RlbCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBwdWJsaWMgd3JpdGVWYWx1ZShfdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChfdmFsdWUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBpc1N0cmluZyhfdmFsdWUpID8gX3ZhbHVlIDogSlNPTi5zdHJpbmdpZnkoX3ZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudGV4dE1vZGVsKSB7XG4gICAgICB0aGlzLnRleHRNb2RlbC5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF92YWx1ZTogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnJlYWRPbmx5ID0gaXNEaXNhYmxlZDtcblxuICAgIGlmICh0aGlzLnN0YW5kYWxvbmVDb2RlRWRpdG9yKSB7XG4gICAgICB0aGlzLnN0YW5kYWxvbmVDb2RlRWRpdG9yLnVwZGF0ZU9wdGlvbnMoe1xuICAgICAgICByZWFkT25seTogaXNEaXNhYmxlZCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBFZGl0b3IobW9uYWNvOiB0eXBlb2YgTW9uYWNvKSB7XG4gICAgaWYgKCF0aGlzLmhvc3RFbGVtZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGVkaXRvciByZWYgZm91bmQuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZG9tRWxlbWVudCA9IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudDtcblxuICAgIGNvbnN0IHNldHRpbmdzID0ge1xuICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICBsYW5ndWFnZTogdGhpcy5sYW5ndWFnZUNvbmZpZz8ubGFuZ3VhZ2UgPz8gKGlzSnNvblN0cmluZyh0aGlzLnZhbHVlKSA/ICdqc29uJyA6ICdwbGFpbnRleHQnKSxcbiAgICAgIHVyaTogYGNvZGUtJHt1bmlxdWVJZCgpfWAsXG4gICAgfTtcblxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMudGV4dE1vZGVsID0gbW9uYWNvLmVkaXRvci5jcmVhdGVNb2RlbChzZXR0aW5ncy52YWx1ZSwgc2V0dGluZ3MubGFuZ3VhZ2UsIG1vbmFjby5VcmkucGFyc2Uoc2V0dGluZ3MudXJpKSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5kZWZhdWx0T3B0aW9ucywgdGhpcy5vcHRpb25zLCB7XG4gICAgICByZWFkT25seTogdGhpcy5yZWFkT25seSxcbiAgICAgIHRoZW1lOiB0aGlzLmNvbmZpZy50aGVtZSA/PyAndnMnLFxuICAgICAgbW9kZWw6IHRoaXMudGV4dE1vZGVsLFxuICAgICAgbWluaW1hcDoge1xuICAgICAgICBlbmFibGVkOiAhdGhpcy5kaXNhYmxlTWluaU1hcCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnN0YW5kYWxvbmVDb2RlRWRpdG9yID0gbW9uYWNvLmVkaXRvci5jcmVhdGUoZG9tRWxlbWVudCwge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcblxuICAgIGlmICghdGhpcy5kaXNhYmxlQXV0b0Zvcm1hdCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RhbmRhbG9uZUNvZGVFZGl0b3I/LmdldEFjdGlvbignZWRpdG9yLmFjdGlvbi5mb3JtYXREb2N1bWVudCcpPy5ydW4oKTtcbiAgICAgIH0sIDgwKTtcbiAgICB9XG5cbiAgICBjb25zdCBvbkRpZENoYW5nZUNvbnRlbnQgPSB0aGlzLnRleHRNb2RlbD8ub25EaWRDaGFuZ2VDb250ZW50KCgpID0+IHtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy50ZXh0TW9kZWw/LmdldFZhbHVlKCk7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMucmVhZE9ubHkgJiYgIWlzRXF1YWwodGhpcy52YWx1ZSwgbmV3VmFsdWUpKSB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbmV3VmFsdWUgPz8gJyc7XG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZShuZXdWYWx1ZSA/PyAnJyk7XG4gICAgICAgICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBvbkRpZEJsdXJFZGl0b3JXaWRnZXQgPSB0aGlzLnN0YW5kYWxvbmVDb2RlRWRpdG9yPy5vbkRpZEJsdXJFZGl0b3JXaWRnZXQoKCkgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnJlYWRPbmx5KSB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy50b0Rpc3Bvc2VzID0gW29uRGlkQ2hhbmdlQ29udGVudCwgb25EaWRCbHVyRWRpdG9yV2lkZ2V0XS5maWx0ZXIoZCA9PiAhIWQpIGFzIE1vbmFjby5JRGlzcG9zYWJsZVtdO1xuXG4gICAgdGhpcy5zZXR1cExhbmd1YWdlKHNldHRpbmdzLnVyaSwgdGhpcy5sYW5ndWFnZUNvbmZpZyk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwTGFuZ3VhZ2UodXJpOiBzdHJpbmcsIGxhbmd1YWdlQ29uZmlnPzogTW9uYWNvRWRpdG9yTGFuZ3VhZ2VDb25maWcpIHtcbiAgICBpZiAoIWxhbmd1YWdlQ29uZmlnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChsYW5ndWFnZUNvbmZpZy5sYW5ndWFnZSkge1xuICAgICAgY2FzZSAnanNvbic6XG4gICAgICAgIGlmIChsYW5ndWFnZUNvbmZpZy5zY2hlbWFzKSB7XG4gICAgICAgICAgdGhpcy5sYW5ndWFnZUpzb25TZXJ2aWNlLmFkZFNjaGVtYXModXJpLCBsYW5ndWFnZUNvbmZpZy5zY2hlbWFzKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NwZWwnOlxuICAgICAgICBpZiAobGFuZ3VhZ2VDb25maWcuc2NoZW1hKSB7XG4gICAgICAgICAgdGhpcy5sYW5ndWFnZVNwZWxTZXJ2aWNlLnNldFNjaGVtYShsYW5ndWFnZUNvbmZpZy5zY2hlbWEpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IGlzSnNvblN0cmluZyA9IChzdHI6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICB0cnkge1xuICAgIEpTT04ucGFyc2Uoc3RyKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn07XG4iXX0=
285
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLW1vbmFjby1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcGFydGljbGVzLWFuZ3VsYXIvc3JjL2xpYi9naW8tbW9uYWNvLWVkaXRvci9naW8tbW9uYWNvLWVkaXRvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsSUFBSSxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUF5Qix3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7O0FBa0NqRyxNQUFNLE9BQU8sd0JBQXdCO0lBdUNuQyxZQUNrQixXQUF1QixFQUNZLE1BQTZCLEVBQy9ELG1CQUEyQyxFQUMzQyxtQkFBMkMsRUFDM0MsbUJBQXlDLEVBQ3pDLGlCQUFvQyxFQUNwQyxNQUFjLEVBQ0ssU0FBb0I7UUFQeEMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDWSxXQUFNLEdBQU4sTUFBTSxDQUF1QjtRQUMvRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXdCO1FBQzNDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFDM0Msd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFzQjtRQUN6QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDSyxjQUFTLEdBQVQsU0FBUyxDQUFX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QUNWLENBQUM7SUFDSCxDQUFDOzhHQTFRVSx3QkFBd0IsNENBeUN6Qix3QkFBd0I7a0dBekN2Qix3QkFBd0IsNlNBSnpCLGdEQUFnRDs7MkZBSS9DLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSxtQkFBbUIsWUFDbkIsZ0RBQWdELG1CQUV6Qyx1QkFBdUIsQ0FBQyxNQUFNOzswQkEyQzVDLE1BQU07MkJBQUMsd0JBQXdCOzswQkFNL0IsUUFBUTs7MEJBQUksSUFBSTt5Q0E3Q1osY0FBYztzQkFEcEIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsY0FBYztzQkFEcEIsS0FBSztnQkFJQyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBS0MsY0FBYztzQkFGcEIsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxtQkFBbUI7O0FBK1BsQyxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBVyxFQUFFO0lBQzVDLElBQUksQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjMgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaXNFcXVhbCwgaXNTdHJpbmcsIHVuaXF1ZUlkIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBNb25hY28sIHsgZWRpdG9yIH0gZnJvbSAnbW9uYWNvLWVkaXRvcic7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEdpb01vbmFjb0VkaXRvckNvbmZpZywgR0lPX01PTkFDT19FRElUT1JfQ09ORklHIH0gZnJvbSAnLi9tb2RlbHMvR2lvTW9uYWNvRWRpdG9yQ29uZmlnJztcbmltcG9ydCB7IEdpb0xhbmd1YWdlSnNvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2dpby1sYW5ndWFnZS1qc29uLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2lvTW9uYWNvRWRpdG9yU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZ2lvLW1vbmFjby1lZGl0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBHaW9MYW5ndWFnZUVsU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZ2lvLWxhbmd1YWdlLWVsLnNlcnZpY2UnO1xuaW1wb3J0IHsgSlNPTlNjaGVtYSB9IGZyb20gJy4vbW9kZWxzL0pTT05TY2hlbWFBdXRvQ29tcGxldGUnO1xuXG5leHBvcnQgdHlwZSBNb25hY29FZGl0b3JMYW5ndWFnZUNvbmZpZyA9XG4gIHwge1xuICAgICAgbGFuZ3VhZ2U6ICdqc29uJztcbiAgICAgIHNjaGVtYXM/OiB7IHVyaTogc3RyaW5nOyBzY2hlbWE6IHVua25vd24gfVtdO1xuICAgIH1cbiAgfCB7XG4gICAgICBsYW5ndWFnZTogJ21hcmtkb3duJztcbiAgICB9XG4gIHwge1xuICAgICAgbGFuZ3VhZ2U6ICdodG1sJztcbiAgICB9XG4gIHwge1xuICAgICAgbGFuZ3VhZ2U6ICd5YW1sJztcbiAgICB9XG4gIHwge1xuICAgICAgbGFuZ3VhZ2U6ICdzcGVsJztcbiAgICAgIHNjaGVtYT86IEpTT05TY2hlbWE7XG4gICAgfVxuICB8IHtcbiAgICAgIGxhbmd1YWdlOiAnY3NzJztcbiAgICB9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tbW9uYWNvLWVkaXRvcicsXG4gIHRlbXBsYXRlOiBgIDxkaXYgKm5nSWY9XCJsb2FkZWQkIHwgYXN5bmNcIj5Mb2FkaW5nLi4uPC9kaXY+YCxcbiAgc3R5bGVVcmxzOiBbJy4vZ2lvLW1vbmFjby1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEdpb01vbmFjb0VkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBwdWJsaWMgbGFuZ3VhZ2VDb25maWc/OiBNb25hY29FZGl0b3JMYW5ndWFnZUNvbmZpZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3B0aW9uczogZWRpdG9yLklTdGFuZGFsb25lRWRpdG9yQ29uc3RydWN0aW9uT3B0aW9ucyA9IHt9O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXNhYmxlTWluaU1hcCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXNhYmxlQXV0b0Zvcm1hdCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc2luZ2xlLWxpbmUnKVxuICBwdWJsaWMgc2luZ2xlTGluZU1vZGUgPSBmYWxzZTtcblxuICBwdWJsaWMgbG9hZGVkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuXG4gIHByaXZhdGUgZGVmYXVsdE9wdGlvbnM6IGVkaXRvci5JU3RhbmRhbG9uZUVkaXRvckNvbnN0cnVjdGlvbk9wdGlvbnMgPSB7XG4gICAgY29udGV4dG1lbnU6IGZhbHNlLFxuICAgIG1pbmltYXA6IHtcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgfSxcbiAgICBhdXRvbWF0aWNMYXlvdXQ6IHRydWUsXG4gICAgc2Nyb2xsQmV5b25kTGFzdExpbmU6IGZhbHNlLFxuICB9O1xuXG4gIHB1YmxpYyB2YWx1ZSA9ICcnO1xuICBwdWJsaWMgcmVhZE9ubHkgPSBmYWxzZTtcbiAgcHVibGljIHN0YW5kYWxvbmVDb2RlRWRpdG9yPzogZWRpdG9yLklTdGFuZGFsb25lQ29kZUVkaXRvcjtcbiAgcHJpdmF0ZSB0ZXh0TW9kZWw/OiBlZGl0b3IuSVRleHRNb2RlbDtcbiAgcHJpdmF0ZSB0b0Rpc3Bvc2VzOiBNb25hY28uSURpc3Bvc2FibGVbXSA9IFtdO1xuXG4gIHByb3RlY3RlZCBfb25DaGFuZ2U6IChfdmFsdWU6IHN0cmluZyB8IG51bGwpID0+IHZvaWQgPSAoKSA9PiAoe30pO1xuXG4gIHByb3RlY3RlZCBfb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBob3N0RWxlbWVudDogRWxlbWVudFJlZixcbiAgICBASW5qZWN0KEdJT19NT05BQ09fRURJVE9SX0NPTkZJRykgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IEdpb01vbmFjb0VkaXRvckNvbmZpZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vbmFjb0VkaXRvclNlcnZpY2U6IEdpb01vbmFjb0VkaXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsYW5ndWFnZUpzb25TZXJ2aWNlOiBHaW9MYW5ndWFnZUpzb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGFuZ3VhZ2VTcGVsU2VydmljZTogR2lvTGFuZ3VhZ2VFbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyByZWFkb25seSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgKSB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAvLyBTZXQgdGhlIHZhbHVlIGFjY2Vzc29yIGRpcmVjdGx5IChpbnN0ZWFkIG9mIHByb3ZpZGluZ1xuICAgICAgLy8gTkdfVkFMVUVfQUNDRVNTT1IpIHRvIGF2b2lkIHJ1bm5pbmcgaW50byBhIGNpcmN1bGFyIGltcG9ydFxuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICAgIHRoaXMubW9uYWNvRWRpdG9yU2VydmljZS5sb2FkRWRpdG9yKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIC8vIFdhaXQgdW50aWwgbW9uYWNvIGVkaXRvciBpcyBhdmFpbGFibGVcbiAgICB0aGlzLm1vbmFjb0VkaXRvclNlcnZpY2UubG9hZGVkJC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpLnN1YnNjcmliZSgoeyBtb25hY28gfSkgPT4ge1xuICAgICAgdGhpcy5zZXR1cEVkaXRvcihtb25hY28pO1xuXG4gICAgICB0aGlzLmxvYWRlZCQubmV4dChmYWxzZSk7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnRvRGlzcG9zZXMuZm9yRWFjaChkID0+IGQuZGlzcG9zZSgpKTtcblxuICAgIGlmICh0aGlzLnN0YW5kYWxvbmVDb2RlRWRpdG9yKSB7XG4gICAgICB0aGlzLnN0YW5kYWxvbmVDb2RlRWRpdG9yLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMuc3RhbmRhbG9uZUNvZGVFZGl0b3IgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGV4dE1vZGVsKSB7XG4gICAgICB0aGlzLnRleHRNb2RlbC5kaXNwb3NlKCk7XG4gICAgICB0aGlzLnRleHRNb2RlbCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBwdWJsaWMgd3JpdGVWYWx1ZShfdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChfdmFsdWUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBpc1N0cmluZyhfdmFsdWUpID8gX3ZhbHVlIDogSlNPTi5zdHJpbmdpZnkoX3ZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudGV4dE1vZGVsKSB7XG4gICAgICB0aGlzLnRleHRNb2RlbC5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF92YWx1ZTogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnJlYWRPbmx5ID0gaXNEaXNhYmxlZDtcblxuICAgIGlmICh0aGlzLnN0YW5kYWxvbmVDb2RlRWRpdG9yKSB7XG4gICAgICB0aGlzLnN0YW5kYWxvbmVDb2RlRWRpdG9yLnVwZGF0ZU9wdGlvbnMoe1xuICAgICAgICByZWFkT25seTogaXNEaXNhYmxlZCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBFZGl0b3IobW9uYWNvOiB0eXBlb2YgTW9uYWNvKSB7XG4gICAgaWYgKCF0aGlzLmhvc3RFbGVtZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGVkaXRvciByZWYgZm91bmQuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZG9tRWxlbWVudCA9IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudDtcblxuICAgIGNvbnN0IHNldHRpbmdzID0ge1xuICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICBsYW5ndWFnZTogdGhpcy5sYW5ndWFnZUNvbmZpZz8ubGFuZ3VhZ2UgPz8gKGlzSnNvblN0cmluZyh0aGlzLnZhbHVlKSA/ICdqc29uJyA6ICdwbGFpbnRleHQnKSxcbiAgICAgIHVyaTogYGNvZGUtJHt1bmlxdWVJZCgpfWAsXG4gICAgfTtcblxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMudGV4dE1vZGVsID0gbW9uYWNvLmVkaXRvci5jcmVhdGVNb2RlbChzZXR0aW5ncy52YWx1ZSwgc2V0dGluZ3MubGFuZ3VhZ2UsIG1vbmFjby5VcmkucGFyc2Uoc2V0dGluZ3MudXJpKSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5kZWZhdWx0T3B0aW9ucywgdGhpcy5vcHRpb25zLCB7XG4gICAgICByZWFkT25seTogdGhpcy5yZWFkT25seSxcbiAgICAgIHRoZW1lOiB0aGlzLmNvbmZpZy50aGVtZSA/PyAndnMnLFxuICAgICAgbW9kZWw6IHRoaXMudGV4dE1vZGVsLFxuICAgICAgbWluaW1hcDoge1xuICAgICAgICBlbmFibGVkOiAhdGhpcy5kaXNhYmxlTWluaU1hcCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnN0YW5kYWxvbmVDb2RlRWRpdG9yID0gbW9uYWNvLmVkaXRvci5jcmVhdGUoZG9tRWxlbWVudCwge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcblxuICAgIGlmICghdGhpcy5kaXNhYmxlQXV0b0Zvcm1hdCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RhbmRhbG9uZUNvZGVFZGl0b3I/LmdldEFjdGlvbignZWRpdG9yLmFjdGlvbi5mb3JtYXREb2N1bWVudCcpPy5ydW4oKTtcbiAgICAgIH0sIDgwKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zaW5nbGVMaW5lTW9kZSkge1xuICAgICAgdGhpcy5zdGFuZGFsb25lQ29kZUVkaXRvcj8uYWRkQWN0aW9uKHtcbiAgICAgICAgaWQ6ICdjdXN0b20uYWN0aW9uJyxcbiAgICAgICAgbGFiZWw6ICdjdXN0b20gYWN0aW9uJyxcbiAgICAgICAga2V5YmluZGluZ3M6IFttb25hY28uS2V5Q29kZS5FbnRlcl0sXG4gICAgICAgIHByZWNvbmRpdGlvbjogJyFzdWdnZXN0V2lkZ2V0VmlzaWJsZSAmJiAhcmVuYW1lSW5wdXRWaXNpYmxlICYmICFpblNuaXBwZXRNb2RlICYmICFxdWlja0ZpeFdpZGdldFZpc2libGUnLFxuICAgICAgICBydW46ICgpID0+IHtcbiAgICAgICAgICAvLyBJZ25vcmUgRW50ZXIga2V5IGluIHNpbmdsZSBsaW5lIG1vZGUgd2hlbiB3cml0aW5nXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3Qgb25EaWRDaGFuZ2VDb250ZW50ID0gdGhpcy50ZXh0TW9kZWw/Lm9uRGlkQ2hhbmdlQ29udGVudCgoKSA9PiB7XG4gICAgICBjb25zdCB0ZXh0TW9kZWxWYWx1ZSA9IHRoaXMudGV4dE1vZGVsPy5nZXRWYWx1ZSgpID8/ICcnO1xuICAgICAgaWYgKHRoaXMuc2luZ2xlTGluZU1vZGUpIHtcbiAgICAgICAgLy8gSWYgdmFsdWUgaGFzIFxcbiwgXFxyIG9yIFxcclxcbiwgcmVtb3ZlIHRoZW1cbiAgICAgICAgLy8gVXNlZnVsIHRvIGNsZWFyIGxpbmUgYnJlYWtzIHdoZW4gcGFzdGluZyB0ZXh0XG4gICAgICAgIGNvbnN0IGhhc0xpbmVCcmVhayA9IG5ldyBSZWdFeHAoLyhcXHJcXG58XFxufFxccikvZ20pO1xuICAgICAgICBpZiAoaGFzTGluZUJyZWFrLnRlc3QodGV4dE1vZGVsVmFsdWUpKSB7XG4gICAgICAgICAgY29uc3QgY3VycmVudFBvc2l0aW9uID0gdGhpcy5zdGFuZGFsb25lQ29kZUVkaXRvcj8uZ2V0UG9zaXRpb24oKTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3RhbmRhbG9uZUNvZGVFZGl0b3I/LnB1c2hVbmRvU3RvcCgpO1xuICAgICAgICAgICAgdGhpcy50ZXh0TW9kZWw/LnNldFZhbHVlKHRleHRNb2RlbFZhbHVlLnJlcGxhY2UoLyhcXHJcXG58XFxufFxccikvZ20sICcnKSk7XG4gICAgICAgICAgICBpZiAoY3VycmVudFBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMuc3RhbmRhbG9uZUNvZGVFZGl0b3I/LnNldFBvc2l0aW9uKGN1cnJlbnRQb3NpdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0YW5kYWxvbmVDb2RlRWRpdG9yPy5wb3BVbmRvU3RvcCgpO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMucmVhZE9ubHkgJiYgIWlzRXF1YWwodGhpcy52YWx1ZSwgdGV4dE1vZGVsVmFsdWUpKSB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGV4dE1vZGVsVmFsdWU7XG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZSh0ZXh0TW9kZWxWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5zaW5nbGVMaW5lTW9kZSkge1xuICAgICAgLy8gU291cmNlIDogaHR0cHM6Ly9mYXJ6YWR5ei5jb20vYmxvZy9zaW5nbGUtbGluZS1tb25hY28tZWRpdG9yXG4gICAgICB0aGlzLnN0YW5kYWxvbmVDb2RlRWRpdG9yPy51cGRhdGVPcHRpb25zKHtcbiAgICAgICAgLy8gcXVpY2tTdWdnZXN0aW9uczogZmFsc2UsXG4gICAgICAgIGZpeGVkT3ZlcmZsb3dXaWRnZXRzOiB0cnVlLFxuICAgICAgICBhY2NlcHRTdWdnZXN0aW9uT25FbnRlcjogJ29uJyxcbiAgICAgICAgaG92ZXI6IHtcbiAgICAgICAgICBkZWxheTogMTAwLFxuICAgICAgICB9LFxuICAgICAgICByb3VuZGVkU2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgY29udGV4dG1lbnU6IGZhbHNlLFxuICAgICAgICBjdXJzb3JTdHlsZTogJ2xpbmUtdGhpbicsXG4gICAgICAgIGxpbmtzOiBmYWxzZSxcbiAgICAgICAgZmluZDoge1xuICAgICAgICAgIGFkZEV4dHJhU3BhY2VPblRvcDogZmFsc2UsXG4gICAgICAgICAgYXV0b0ZpbmRJblNlbGVjdGlvbjogJ25ldmVyJyxcbiAgICAgICAgICBzZWVkU2VhcmNoU3RyaW5nRnJvbVNlbGVjdGlvbjogJ25ldmVyJyxcbiAgICAgICAgfSxcbiAgICAgICAgZm9udFNpemU6IDE0LFxuICAgICAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICAgICAgb3ZlcnZpZXdSdWxlckxhbmVzOiAwLFxuICAgICAgICBzY3JvbGxCZXlvbmRMYXN0Q29sdW1uOiAwLFxuICAgICAgICB3b3JkV3JhcDogJ29uJyxcbiAgICAgICAgbWluaW1hcDoge1xuICAgICAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICBsaW5lTnVtYmVyczogJ29mZicsXG4gICAgICAgIGhpZGVDdXJzb3JJbk92ZXJ2aWV3UnVsZXI6IHRydWUsXG4gICAgICAgIG92ZXJ2aWV3UnVsZXJCb3JkZXI6IGZhbHNlLFxuICAgICAgICBnbHlwaE1hcmdpbjogZmFsc2UsXG4gICAgICAgIGZvbGRpbmc6IGZhbHNlLFxuICAgICAgICBsaW5lRGVjb3JhdGlvbnNXaWR0aDogMCxcbiAgICAgICAgbGluZU51bWJlcnNNaW5DaGFyczogMCxcbiAgICAgICAgcmVuZGVyTGluZUhpZ2hsaWdodDogJ25vbmUnLFxuICAgICAgICBzY3JvbGxiYXI6IHtcbiAgICAgICAgICBob3Jpem9udGFsOiAnaGlkZGVuJyxcbiAgICAgICAgICB2ZXJ0aWNhbDogJ2hpZGRlbicsXG4gICAgICAgICAgYWx3YXlzQ29uc3VtZU1vdXNlV2hlZWw6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3Qgb25EaWRCbHVyRWRpdG9yV2lkZ2V0ID0gdGhpcy5zdGFuZGFsb25lQ29kZUVkaXRvcj8ub25EaWRCbHVyRWRpdG9yV2lkZ2V0KCgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5yZWFkT25seSkgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMudG9EaXNwb3NlcyA9IFtvbkRpZENoYW5nZUNvbnRlbnQsIG9uRGlkQmx1ckVkaXRvcldpZGdldF0uZmlsdGVyKGQgPT4gISFkKSBhcyBNb25hY28uSURpc3Bvc2FibGVbXTtcblxuICAgIHRoaXMuc2V0dXBMYW5ndWFnZShzZXR0aW5ncy51cmksIHRoaXMubGFuZ3VhZ2VDb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cExhbmd1YWdlKHVyaTogc3RyaW5nLCBsYW5ndWFnZUNvbmZpZz86IE1vbmFjb0VkaXRvckxhbmd1YWdlQ29uZmlnKSB7XG4gICAgaWYgKCFsYW5ndWFnZUNvbmZpZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN3aXRjaCAobGFuZ3VhZ2VDb25maWcubGFuZ3VhZ2UpIHtcbiAgICAgIGNhc2UgJ2pzb24nOlxuICAgICAgICBpZiAobGFuZ3VhZ2VDb25maWcuc2NoZW1hcykge1xuICAgICAgICAgIHRoaXMubGFuZ3VhZ2VKc29uU2VydmljZS5hZGRTY2hlbWFzKHVyaSwgbGFuZ3VhZ2VDb25maWcuc2NoZW1hcyk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzcGVsJzpcbiAgICAgICAgaWYgKGxhbmd1YWdlQ29uZmlnLnNjaGVtYSkge1xuICAgICAgICAgIHRoaXMubGFuZ3VhZ2VTcGVsU2VydmljZS5zZXRTY2hlbWEobGFuZ3VhZ2VDb25maWcuc2NoZW1hKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBpc0pzb25TdHJpbmcgPSAoc3RyOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgdHJ5IHtcbiAgICBKU09OLnBhcnNlKHN0cik7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59O1xuIl19
@@ -84,9 +84,14 @@ class ExpressionLanguageBuilder {
84
84
  let el = '';
85
85
  for (const condition of conditionGroup.conditions) {
86
86
  if (condition instanceof ConditionGroup) {
87
- el += '( ';
87
+ const hasMultipleConditions = condition.conditions.length > 1;
88
+ if (hasMultipleConditions) {
89
+ el += '( ';
90
+ }
88
91
  el += ExpressionLanguageBuilder.buildConditionGroup(condition);
89
- el += ' )';
92
+ if (hasMultipleConditions) {
93
+ el += ' )';
94
+ }
90
95
  }
91
96
  else {
92
97
  el += ExpressionLanguageBuilder.buildCondition(condition);