@eui/components 16.2.6-snapshot-1700775952599 → 16.2.6

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.
@@ -751,7 +751,6 @@
751
751
  const content = JSON.parse(control.value)
752
752
  .ops.filter((c: { attributes: string; insert: string }) => typeof c.insert === 'string')
753
753
  .map((c: { attributes: string; insert: string }) => c.insert.replace(/\n/g, ''));
754
-
755
754
  const jsonStrippedContent = content.join('');
756
755
  actual = jsonStrippedContent.length;
757
756
  } else {
@@ -791,7 +790,7 @@
791
790
  .ops.filter((c: { attributes: string; insert: string }) => typeof c.insert === 'string')
792
791
  .map((c: { attributes: string; insert: string }) => c.insert.replace(/\n/g, ' '));
793
792
 
794
- const jsonStrippedContent = content.join(' ');
793
+ const jsonStrippedContent = content.join('');
795
794
  actual = jsonStrippedContent.trim().split(/\s+/).length;
796
795
  } else {
797
796
  const exceptTags = /<strong>|<\/strong>|<b>|<\/b>|<i>|<\/i>|<em>|<\/em>|<s>|<\/s>|<strike>|<\/strike>|<u>|<\/u>/gm;
@@ -899,7 +898,7 @@
899
898
  .ops.filter((c: { attributes: string; insert: string }) => typeof c.insert === 'string')
900
899
  .map((c: { attributes: string; insert: string }) => c.insert.replace(/\n/g, ' '));
901
900
 
902
- const jsonStrippedContent = content.join(' ');
901
+ const jsonStrippedContent = content.join('');
903
902
  actual = jsonStrippedContent.trim().split(/\s+/).length;
904
903
  } else {
905
904
  const exceptTags = /<strong>|<\/strong>|<b>|<\/b>|<i>|<\/i>|<em>|<\/em>|<s>|<\/s>|<strike>|<\/strike>|<u>|<\/u>/gm;
@@ -115,7 +115,7 @@ export const euiEditorMinWords = (minWords) => (control) => {
115
115
  const content = JSON.parse(control.value)
116
116
  .ops.filter((c) => typeof c.insert === 'string')
117
117
  .map((c) => c.insert.replace(/\n/g, ' '));
118
- const jsonStrippedContent = content.join(' ');
118
+ const jsonStrippedContent = content.join('');
119
119
  actual = jsonStrippedContent.trim().split(/\s+/).length;
120
120
  }
121
121
  else {
@@ -150,7 +150,7 @@ export const euiEditorMaxWords = (maxWords) => (control) => {
150
150
  const content = JSON.parse(control.value)
151
151
  .ops.filter((c) => typeof c.insert === 'string')
152
152
  .map((c) => c.insert.replace(/\n/g, ' '));
153
- const jsonStrippedContent = content.join(' ');
153
+ const jsonStrippedContent = content.join('');
154
154
  actual = jsonStrippedContent.trim().split(/\s+/).length;
155
155
  }
156
156
  else {
@@ -215,4 +215,4 @@ export const euiEditorMaxBytes = (maxBytes) => (control) => {
215
215
  return actual > maxBytes ? { maxBytes: { maxBytes, actual } } : null;
216
216
  }
217
217
  };
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWVkaXRvci52YWxpZGF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZXh0ZXJuYWxzL2V1aS1lZGl0b3IvdmFsaWRhdG9ycy9ldWktZWRpdG9yLnZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFhLEVBQVcsRUFBRTtJQUN0QyxJQUFJO1FBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNyQjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1IsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWEsRUFBVSxFQUFFO0lBQ3pDLDRDQUE0QztJQUM1QyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ3JCLEtBQUssSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN4QyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFO1lBQzlCLENBQUMsRUFBRSxDQUFDO1NBQ1A7YUFBTSxJQUFJLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxJQUFJLE1BQU0sRUFBRTtZQUN2QyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ1Y7UUFDRCxJQUFJLElBQUksSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sRUFBRTtZQUNsQyxDQUFDLEVBQUUsQ0FBQztTQUNQO0tBQ0o7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0s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SSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3RDO2FBQU07WUFDSCxNQUFNLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEQ7UUFFRCxPQUFPLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztLQUN4RTtBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmNvbnN0IGlzSnNvbiA9ICh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgSlNPTi5wYXJzZSh2YWx1ZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcblxuY29uc3QgYnl0ZUxlbmd0aCA9ICh2YWx1ZTogc3RyaW5nKTogbnVtYmVyID0+IHtcbiAgICAvLyByZXR1cm5zIHRoZSBieXRlIGxlbmd0aCBvZiBhbiB1dGY4IHN0cmluZ1xuICAgIGxldCBzID0gdmFsdWUubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSB2YWx1ZS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBjb25zdCBjb2RlID0gdmFsdWUuY2hhckNvZGVBdChpKTtcbiAgICAgICAgaWYgKGNvZGUgPiAweDdmICYmIGNvZGUgPD0gMHg3ZmYpIHtcbiAgICAgICAgICAgIHMrKztcbiAgICAgICAgfSBlbHNlIGlmIChjb2RlID4gMHg3ZmYgJiYgY29kZSA8PSAweGZmZmYpIHtcbiAgICAgICAgICAgIHMgKz0gMjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29kZSA+PSAweGRjMDAgJiYgY29kZSA8PSAweGRmZmYpIHtcbiAgICAgICAgICAgIGktLTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcztcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBWYWxpZGF0b3IgdGhhdCByZXF1aXJlcyB0aGUgbGVuZ3RoIG9mIHRoZSBlZGl0b3IncyBjb250ZW50LCBvdXQgb2YgSFRNTCB0YWdzIG9yIEpTT04gc3RydWN0dXJlLCB0byBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWxcbiAqIHRvIHRoZSBwcm92aWRlZCBtaW5pbXVtIGxlbmd0aC5cbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICogVmFsaWRhdGUgdGhhdCB0aGUgZWRpdG9yIGhhcyBhIG1pbmltdW0gb2YgNSBjaGFyYWN0ZXJzOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGVkaXRvciA9IG5ldyBGb3JtQ29udHJvbCgnbmcnLCBldWlFZGl0b3JNaW5MZW5ndGgoNSkpO1xuICogY29uc29sZS5sb2coZWRpdG9yLmVycm9ycyk7IC8vIHsgbWlubGVuZ3RoOiB7IG1pbkxlbmd0aDogNSwgYWN0dWFsOiAyIH0gfVxuICogYGBgXG4gKlxuICogQHJldHVybnMgQSB2YWxpZGF0b3IgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIGVycm9yIG1hcCB3aXRoIHRoZVxuICogYG1pbmxlbmd0aGAgaWYgdGhlIHZhbGlkYXRpb24gY2hlY2sgZmFpbHMsIG90aGVyd2lzZSBgbnVsbGAuXG4gKi9cbmV4cG9ydCBjb25zdCBldWlFZGl0b3JNaW5MZW5ndGggPVxuICAgIChtaW5MZW5ndGg6IG51bWJlcik6IFZhbGlkYXRvckZuID0+XG4gICAgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgbWluTGVuZ3RoOiB7IG1pbkxlbmd0aDogbnVtYmVyOyBhY3R1YWw6IG51bWJlciB9IH0gfCBudWxsID0+IHtcbiAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgIGxldCBhY3R1YWwgPSAwO1xuICAgICAgICAgICAgaWYgKGlzSnNvbihjb250cm9sLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBKU09OLnBhcnNlKGNvbnRyb2wudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgIC5vcHMuZmlsdGVyKChjOiB7IGF0dHJpYnV0ZXM6IHN0cmluZzsgaW5zZXJ0OiBzdHJpbmcgfSkgPT4gdHlwZW9mIGMuaW5zZXJ0ID09PSAnc3RyaW5nJylcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoYzogeyBhdHRyaWJ1dGVzOiBzdHJpbmc7IGluc2VydDogc3RyaW5nIH0pID0+IGMuaW5zZXJ0LnJlcGxhY2UoL1xcbi9nLCAnJykpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QganNvblN0cmlwcGVkQ29udGVudCA9IGNvbnRlbnQuam9pbignJyk7XG4gICAgICAgICAgICAgICAgYWN0dWFsID0ganNvblN0cmlwcGVkQ29udGVudC5sZW5ndGg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gLyg8KFtePl0rKT4pL2dpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhZ3NTdHJpcHBlZENvbnRlbnQgPSBjb250cm9sLnZhbHVlLnJlcGxhY2UocmVnZXgsICcnKTtcbiAgICAgICAgICAgICAgICBhY3R1YWwgPSB0YWdzU3RyaXBwZWRDb250ZW50Lmxlbmd0aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGFjdHVhbCA8IG1pbkxlbmd0aCA/IHsgbWluTGVuZ3RoOiB7IG1pbkxlbmd0aCwgYWN0dWFsIH0gfSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogVmFsaWRhdG9yIHRoYXQgcmVxdWlyZXMgdGhlIGxlbmd0aCBvZiB0aGUgZWRpdG9yJ3MgY29udGVudCwgb3V0IG9mIEhUTUwgdGFncyBvciBKU09OIHN0cnVjdHVyZSwgdG8gYmUgbGVzcyB0aGFuIG9yIGVxdWFsXG4gKiB0byB0aGUgcHJvdmlkZWQgbWF4aW11bSBsZW5ndGguXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqIFZhbGlkYXRlIHRoYXQgdGhlIGVkaXRvciBoYXMgYSBtYXhpbXVtIG9mIDEwIGNoYXJhY3RlcnM6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZWRpdG9yID0gbmV3IEZvcm1Db250cm9sKCduZyBhbmd1bGFyIHJlYWN0aXZlJywgZXVpRWRpdG9yTWF4TGVuZ3RoKDEwKSk7XG4gKiBjb25zb2xlLmxvZyhlZGl0b3IuZXJyb3JzKTsgLy8geyBtYXhMZW5ndGg6IHsgbWF4TGVuZ3RoOiAxMCwgYWN0dWFsOiAxOSB9IH1cbiAqIGBgYFxuICpcbiAqIEByZXR1cm5zIEEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBlcnJvciBtYXAgd2l0aCB0aGVcbiAqIGBtYXhsZW5ndGhgIGlmIHRoZSB2YWxpZGF0aW9uIGNoZWNrIGZhaWxzLCBvdGhlcndpc2UgYG51bGxgLlxuICovXG5leHBvcnQgY29uc3QgZXVpRWRpdG9yTWF4TGVuZ3RoID1cbiAgICAobWF4TGVuZ3RoOiBudW1iZXIpOiBWYWxpZGF0b3JGbiA9PlxuICAgIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IG1heExlbmd0aDogeyBtYXhMZW5ndGg6IG51bWJlcjsgYWN0dWFsOiBudW1iZXIgfSB9IHwgbnVsbCA9PiB7XG4gICAgICAgIGlmIChjb250cm9sLnZhbHVlKSB7XG4gICAgICAgICAgICBsZXQgYWN0dWFsID0gMDtcbiAgICAgICAgICAgIGlmIChpc0pzb24oY29udHJvbC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gSlNPTi5wYXJzZShjb250cm9sLnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAub3BzLmZpbHRlcigoYzogeyBhdHRyaWJ1dGVzOiBzdHJpbmc7IGluc2VydDogc3RyaW5nIH0pID0+IHR5cGVvZiBjLmluc2VydCA9PT0gJ3N0cmluZycpXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKGM6IHsgYXR0cmlidXRlczogc3RyaW5nOyBpbnNlcnQ6IHN0cmluZyB9KSA9PiBjLmluc2VydC5yZXBsYWNlKC9cXG4vZywgJycpKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGpzb25TdHJpcHBlZENvbnRlbnQgPSBjb250ZW50LmpvaW4oJycpO1xuICAgICAgICAgICAgICAgIGFjdHVhbCA9IGpzb25TdHJpcHBlZENvbnRlbnQubGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWdleCA9IC8oPChbXj5dKyk+KS9naTtcbiAgICAgICAgICAgICAgICBjb25zdCB0YWdzU3RyaXBwZWRDb250ZW50ID0gY29udHJvbC52YWx1ZS5yZXBsYWNlKHJlZ2V4LCAnJyk7XG4gICAgICAgICAgICAgICAgYWN0dWFsID0gdGFnc1N0cmlwcGVkQ29udGVudC5sZW5ndGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhY3R1YWwgPiBtYXhMZW5ndGggPyB7IG1heExlbmd0aDogeyBtYXhMZW5ndGgsIGFjdHVhbCB9IH0gOiBudWxsO1xuICAgICAgICB9XG4gICAgfTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFZhbGlkYXRvciB0aGF0IHJlcXVpcmVzIHRoZSBudW1iZXIgb2Ygd29yZHMgaW4gdGhlIGVkaXRvciwgb3V0IG9mIEhUTUwgdGFncyBvciBKU09OIHN0cnVjdHVyZSwgdG8gYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsXG4gKiB0byB0aGUgcHJvdmlkZWQgbWluaW11bSBudW1iZXIuXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqIFZhbGlkYXRlIHRoYXQgdGhlIGVkaXRvciBoYXMgYSBtaW5pbXVtIG9mIDUgd29yZHM6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZWRpdG9yID0gbmV3IEZvcm1Db250cm9sKCduZyBhbmd1bGFyJywgZXVpRWRpdG9yTWluV29yZHMoNSkpO1xuICogY29uc29sZS5sb2coZWRpdG9yLmVycm9ycyk7IC8vIHsgbWluV29yZHM6IHsgbWluV29yZHM6IDUsIGFjdHVhbDogMiB9IH1cbiAqIGBgYFxuICpcbiAqIEByZXR1cm5zIEEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBlcnJvciBtYXAgd2l0aCB0aGVcbiAqIGBtaW5Xb3Jkc2AgaWYgdGhlIHZhbGlkYXRpb24gY2hlY2sgZmFpbHMsIG90aGVyd2lzZSBgbnVsbGAuXG4gKi9cbmV4cG9ydCBjb25zdCBldWlFZGl0b3JNaW5Xb3JkcyA9XG4gICAgKG1pbldvcmRzOiBudW1iZXIpOiBWYWxpZGF0b3JGbiA9PlxuICAgIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IG1pbldvcmRzOiB7IG1pbldvcmRzOiBudW1iZXI7IGFjdHVhbDogbnVtYmVyIH0gfSB8IG51bGwgPT4ge1xuICAgICAgICBpZiAoY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgbGV0IGFjdHVhbCA9IDA7XG4gICAgICAgICAgICBpZiAoaXNKc29uKGNvbnRyb2wudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IEpTT04ucGFyc2UoY29udHJvbC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgLm9wcy5maWx0ZXIoKGM6IHsgYXR0cmlidXRlczogc3RyaW5nOyBpbnNlcnQ6IHN0cmluZyB9KSA9PiB0eXBlb2YgYy5pbnNlcnQgPT09ICdzdHJpbmcnKVxuICAgICAgICAgICAgICAgICAgICAubWFwKChjOiB7IGF0dHJpYnV0ZXM6IHN0cmluZzsgaW5zZXJ0OiBzdHJpbmcgfSkgPT4gYy5pbnNlcnQucmVwbGFjZSgvXFxuL2csICcgJykpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QganNvblN0cmlwcGVkQ29udGVudCA9IGNvbnRlbnQuam9pbignICcpO1xuICAgICAgICAgICAgICAgIGFjdHVhbCA9IGpzb25TdHJpcHBlZENvbnRlbnQudHJpbSgpLnNwbGl0KC9cXHMrLykubGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleGNlcHRUYWdzID0gLzxzdHJvbmc+fDxcXC9zdHJvbmc+fDxiPnw8XFwvYj58PGk+fDxcXC9pPnw8ZW0+fDxcXC9lbT58PHM+fDxcXC9zPnw8c3RyaWtlPnw8XFwvc3RyaWtlPnw8dT58PFxcL3U+L2dtO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gLyg8KFtePl0rKT4pL2dpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhZ3NTdHJpcHBlZENvbnRlbnQ6IHN0cmluZyA9IGNvbnRyb2wudmFsdWUucmVwbGFjZShleGNlcHRUYWdzLCAnJykucmVwbGFjZShyZWdleCwgJyAnKS5yZXBsYWNlKCcgICcsICcgJyk7XG4gICAgICAgICAgICAgICAgYWN0dWFsID0gdGFnc1N0cmlwcGVkQ29udGVudC50cmltKCkuc3BsaXQoL1xccysvKS5maWx0ZXIodCA9PiB0ICE9PSAnJykubGVuZ3RoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYWN0dWFsIDwgbWluV29yZHMgPyB7IG1pbldvcmRzOiB7IG1pbldvcmRzLCBhY3R1YWwgfSB9IDogbnVsbDtcbiAgICAgICAgfVxuICAgIH07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBWYWxpZGF0b3IgdGhhdCByZXF1aXJlcyB0aGUgbnVtYmVyIG9mIHdvcmRzIGluIHRoZSBlZGl0b3IsIG91dCBvZiBIVE1MIHRhZ3Mgb3IgSlNPTiBzdHJ1Y3R1cmUsIHRvIGJlIGxlc3MgdGhhbiBvciBlcXVhbFxuICogdG8gdGhlIHByb3ZpZGVkIG1heGltdW0gbnVtYmVyLlxuICpcbiAqIEB1c2FnZU5vdGVzXG4gKiBWYWxpZGF0ZSB0aGF0IHRoZSBlZGl0b3IgaGFzIGEgbWF4aW11bSBvZiAxMCB3b3JkczpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBlZGl0b3IgPSBuZXcgRm9ybUNvbnRyb2woJ25nIGFuZ3VsYXIgcmVhY3RpdmUgZm9ybXMgZWRpdG9yIHd5c2l3eWcgZXVpIGVjIGV1cm9wYSBucG0gbm9kZScsIGV1aUVkaXRvck1heFdvcmRzKDEwKSk7XG4gKiBjb25zb2xlLmxvZyhlZGl0b3IuZXJyb3JzKTsgLy8geyBtYXhXb3JkczogeyBtYXhXb3JkczogMTAsIGFjdHVhbDogMTEgfSB9XG4gKiBgYGBcbiAqXG4gKiBAcmV0dXJucyBBIHZhbGlkYXRvciBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gZXJyb3IgbWFwIHdpdGggdGhlXG4gKiBgbWF4V29yZHNgIGlmIHRoZSB2YWxpZGF0aW9uIGNoZWNrIGZhaWxzLCBvdGhlcndpc2UgYG51bGxgLlxuICovXG5leHBvcnQgY29uc3QgZXVpRWRpdG9yTWF4V29yZHMgPVxuICAgIChtYXhXb3JkczogbnVtYmVyKTogVmFsaWRhdG9yRm4gPT5cbiAgICAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBtYXhXb3JkczogeyBtYXhXb3JkczogbnVtYmVyOyBhY3R1YWw6IG51bWJlciB9IH0gfCBudWxsID0+IHtcbiAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgIGxldCBhY3R1YWwgPSAwO1xuICAgICAgICAgICAgaWYgKGlzSnNvbihjb250cm9sLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBKU09OLnBhcnNlKGNvbnRyb2wudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgIC5vcHMuZmlsdGVyKChjOiB7IGF0dHJpYnV0ZXM6IHN0cmluZzsgaW5zZXJ0OiBzdHJpbmcgfSkgPT4gdHlwZW9mIGMuaW5zZXJ0ID09PSAnc3RyaW5nJylcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoYzogeyBhdHRyaWJ1dGVzOiBzdHJpbmc7IGluc2VydDogc3RyaW5nIH0pID0+IGMuaW5zZXJ0LnJlcGxhY2UoL1xcbi9nLCAnICcpKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGpzb25TdHJpcHBlZENvbnRlbnQgPSBjb250ZW50LmpvaW4oJyAnKTtcbiAgICAgICAgICAgICAgICBhY3R1YWwgPSBqc29uU3RyaXBwZWRDb250ZW50LnRyaW0oKS5zcGxpdCgvXFxzKy8pLmxlbmd0aDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhjZXB0VGFncyA9IC88c3Ryb25nPnw8XFwvc3Ryb25nPnw8Yj58PFxcL2I+fDxpPnw8XFwvaT58PGVtPnw8XFwvZW0+fDxzPnw8XFwvcz58PHN0cmlrZT58PFxcL3N0cmlrZT58PHU+fDxcXC91Pi9nbTtcbiAgICAgICAgICAgICAgICBjb25zdCByZWdleCA9IC8oPChbXj5dKyk+KS9naTtcbiAgICAgICAgICAgICAgICBjb25zdCB0YWdzU3RyaXBwZWRDb250ZW50OiBzdHJpbmcgPSBjb250cm9sLnZhbHVlLnJlcGxhY2UoZXhjZXB0VGFncywgJycpLnJlcGxhY2UocmVnZXgsICcgJykucmVwbGFjZSgnICAnLCAnICcpO1xuICAgICAgICAgICAgICAgIGFjdHVhbCA9IHRhZ3NTdHJpcHBlZENvbnRlbnQudHJpbSgpLnNwbGl0KC9cXHMrLykuZmlsdGVyKHQgPT4gdCAhPT0gJycpLmxlbmd0aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGFjdHVhbCA+IG1heFdvcmRzID8geyBtYXhXb3JkczogeyBtYXhXb3JkcywgYWN0dWFsIH0gfSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogVmFsaWRhdG9yIHRoYXQgcmVxdWlyZXMgdGhlIG51bWJlciBvZiBieXRlcyBpbiB0aGUgZWRpdG9yLCB3aXRoIEhUTUwgdGFncyBvciBKU09OIHN0cnVjdHVyZSwgdG8gYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsXG4gKiB0byB0aGUgcHJvdmlkZWQgbWluaW11bSBudW1iZXIuXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqIFZhbGlkYXRlIHRoYXQgdGhlIGVkaXRvciBoYXMgYSBtaW5pbXVtIG9mIDIwIGJ5dGVzOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGVkaXRvciA9IG5ldyBGb3JtQ29udHJvbCgnPHA+ZXVyb3BhLmV1PC9wPicsIGV1aUVkaXRvck1pbkJ5dGVzKDIwKSk7XG4gKiBjb25zb2xlLmxvZyhlZGl0b3IuZXJyb3JzKTsgLy8geyBtaW5CeXRlczogeyBtaW5CeXRlczogMjAsIGFjdHVhbDogMTYgfSB9XG4gKiBgYGBcbiAqXG4gKiBAcmV0dXJucyBBIHZhbGlkYXRvciBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gZXJyb3IgbWFwIHdpdGggdGhlXG4gKiBgbWluQnl0ZXNgIGlmIHRoZSB2YWxpZGF0aW9uIGNoZWNrIGZhaWxzLCBvdGhlcndpc2UgYG51bGxgLlxuICovXG5leHBvcnQgY29uc3QgZXVpRWRpdG9yTWluQnl0ZXMgPVxuICAgIChtaW5CeXRlczogbnVtYmVyKTogVmFsaWRhdG9yRm4gPT5cbiAgICAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBtaW5CeXRlczogeyBtaW5CeXRlczogbnVtYmVyOyBhY3R1YWw6IG51bWJlciB9IH0gfCBudWxsID0+IHtcbiAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgIGxldCBhY3R1YWwgPSAwO1xuICAgICAgICAgICAgY29uc3QgbSA9IGVuY29kZVVSSUNvbXBvbmVudChjb250cm9sLnZhbHVlKS5tYXRjaCgvJVs4OUFCYWJdL2cpO1xuICAgICAgICAgICAgYWN0dWFsID0gY29udHJvbC52YWx1ZS5sZW5ndGggKyAobSA/IG0ubGVuZ3RoIDogMCk7XG5cbiAgICAgICAgICAgIHJldHVybiBhY3R1YWwgPCBtaW5CeXRlcyA/IHsgbWluQnl0ZXM6IHsgbWluQnl0ZXMsIGFjdHVhbCB9IH0gOiBudWxsO1xuICAgICAgICB9XG4gICAgfTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFZhbGlkYXRvciB0aGF0IHJlcXVpcmVzIHRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlIGVkaXRvciwgd2l0aCBIVE1MIHRhZ3Mgb3IgSlNPTiBzdHJ1Y3R1cmUsIHRvIGJlIGxlc3MgdGhhbiBvciBlcXVhbFxuICogdG8gdGhlIHByb3ZpZGVkIG1pbmltdW0gbnVtYmVyLlxuICpcbiAqIEB1c2FnZU5vdGVzXG4gKiBWYWxpZGF0ZSB0aGF0IHRoZSBlZGl0b3IgaGFzIGEgbWF4aW11bSBvZiAyMCBieXRlczpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBlZGl0b3IgPSBuZXcgRm9ybUNvbnRyb2woJzxwPmV1cm9wYS5ldSBzaXRlPC9wPicsIGV1aUVkaXRvck1pbkJ5dGVzKDIwKSk7XG4gKiBjb25zb2xlLmxvZyhlZGl0b3IuZXJyb3JzKTsgLy8geyBtYXhCeXRlczogeyBtYXhCeXRlczogMjAsIGFjdHVhbDogMjEgfSB9XG4gKiBgYGBcbiAqXG4gKiBAcmV0dXJucyBBIHZhbGlkYXRvciBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gZXJyb3IgbWFwIHdpdGggdGhlXG4gKiBgbWF4Qnl0ZXNgIGlmIHRoZSB2YWxpZGF0aW9uIGNoZWNrIGZhaWxzLCBvdGhlcndpc2UgYG51bGxgLlxuICovXG5leHBvcnQgY29uc3QgZXVpRWRpdG9yTWF4Qnl0ZXMgPVxuICAgIChtYXhCeXRlczogbnVtYmVyKTogVmFsaWRhdG9yRm4gPT5cbiAgICAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBtYXhCeXRlczogeyBtYXhCeXRlczogbnVtYmVyOyBhY3R1YWw6IG51bWJlciB9IH0gfCBudWxsID0+IHtcbiAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgIGxldCBhY3R1YWwgPSAwO1xuICAgICAgICAgICAgaWYgKGlzSnNvbihjb250cm9sLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGFjdHVhbCA9IGJ5dGVMZW5ndGgoY29udHJvbC52YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IG0gPSBlbmNvZGVVUklDb21wb25lbnQoY29udHJvbC52YWx1ZSkubWF0Y2goLyVbODlBQmFiXS9nKTtcbiAgICAgICAgICAgICAgICBhY3R1YWwgPSBjb250cm9sLnZhbHVlLmxlbmd0aCArIChtID8gbS5sZW5ndGggOiAwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGFjdHVhbCA+IG1heEJ5dGVzID8geyBtYXhCeXRlczogeyBtYXhCeXRlcywgYWN0dWFsIH0gfSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuIl19
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWVkaXRvci52YWxpZGF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZXh0ZXJuYWxzL2V1aS1lZGl0b3IvdmFsaWRhdG9ycy9ldWktZWRpdG9yLnZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFhLEVBQVcsRUFBRTtJQUN0QyxJQUFJO1FBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNyQjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1IsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWEsRUFBVSxFQUFFO0lBQ3pDLDRDQUE0QztJQUM1QyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ3JCLEtBQUssSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN4QyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFO1lBQzlCLENBQUMsRUFBRSxDQUFDO1NBQ1A7YUFBTSxJQUFJLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxJQUFJLE1BQU0sRUFBRTtZQUN2QyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ1Y7UUFDRCxJQUFJLElBQUksSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sRUFBRTtZQUNsQyxDQUFDLEVBQUUsQ0FBQztTQUNQO0tBQ0o7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0s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SSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3RDO2FBQU07WUFDSCxNQUFNLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEQ7UUFFRCxPQUFPLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztLQUN4RTtBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmNvbnN0IGlzSnNvbiA9ICh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgSlNPTi5wYXJzZSh2YWx1ZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcblxuY29uc3QgYnl0ZUxlbmd0aCA9ICh2YWx1ZTogc3RyaW5nKTogbnVtYmVyID0+IHtcbiAgICAvLyByZXR1cm5zIHRoZSBieXRlIGxlbmd0aCBvZiBhbiB1dGY4IHN0cmluZ1xuICAgIGxldCBzID0gdmFsdWUubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSB2YWx1ZS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBjb25zdCBjb2RlID0gdmFsdWUuY2hhckNvZGVBdChpKTtcbiAgICAgICAgaWYgKGNvZGUgPiAweDdmICYmIGNvZGUgPD0gMHg3ZmYpIHtcbiAgICAgICAgICAgIHMrKztcbiAgICAgICAgfSBlbHNlIGlmIChjb2RlID4gMHg3ZmYgJiYgY29kZSA8PSAweGZmZmYpIHtcbiAgICAgICAgICAgIHMgKz0gMjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29kZSA+PSAweGRjMDAgJiYgY29kZSA8PSAweGRmZmYpIHtcbiAgICAgICAgICAgIGktLTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcztcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBWYWxpZGF0b3IgdGhhdCByZXF1aXJlcyB0aGUgbGVuZ3RoIG9mIHRoZSBlZGl0b3IncyBjb250ZW50LCBvdXQgb2YgSFRNTCB0YWdzIG9yIEpTT04gc3RydWN0dXJlLCB0byBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWxcbiAqIHRvIHRoZSBwcm92aWRlZCBtaW5pbXVtIGxlbmd0aC5cbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICogVmFsaWRhdGUgdGhhdCB0aGUgZWRpdG9yIGhhcyBhIG1pbmltdW0gb2YgNSBjaGFyYWN0ZXJzOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGVkaXRvciA9IG5ldyBGb3JtQ29udHJvbCgnbmcnLCBldWlFZGl0b3JNaW5MZW5ndGgoNSkpO1xuICogY29uc29sZS5sb2coZWRpdG9yLmVycm9ycyk7IC8vIHsgbWlubGVuZ3RoOiB7IG1pbkxlbmd0aDogNSwgYWN0dWFsOiAyIH0gfVxuICogYGBgXG4gKlxuICogQHJldHVybnMgQSB2YWxpZGF0b3IgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIGVycm9yIG1hcCB3aXRoIHRoZVxuICogYG1pbmxlbmd0aGAgaWYgdGhlIHZhbGlkYXRpb24gY2hlY2sgZmFpbHMsIG90aGVyd2lzZSBgbnVsbGAuXG4gKi9cbmV4cG9ydCBjb25zdCBldWlFZGl0b3JNaW5MZW5ndGggPVxuICAgIChtaW5MZW5ndGg6IG51bWJlcik6IFZhbGlkYXRvckZuID0+XG4gICAgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgbWluTGVuZ3RoOiB7IG1pbkxlbmd0aDogbnVtYmVyOyBhY3R1YWw6IG51bWJlciB9IH0gfCBudWxsID0+IHtcbiAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgIGxldCBhY3R1YWwgPSAwO1xuICAgICAgICAgICAgaWYgKGlzSnNvbihjb250cm9sLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBKU09OLnBhcnNlKGNvbnRyb2wudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgIC5vcHMuZmlsdGVyKChjOiB7IGF0dHJpYnV0ZXM6IHN0cmluZzsgaW5zZXJ0OiBzdHJpbmcgfSkgPT4gdHlwZW9mIGMuaW5zZXJ0ID09PSAnc3RyaW5nJylcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoYzogeyBhdHRyaWJ1dGVzOiBzdHJpbmc7IGluc2VydDogc3RyaW5nIH0pID0+IGMuaW5zZXJ0LnJlcGxhY2UoL1xcbi9nLCAnJykpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QganNvblN0cmlwcGVkQ29udGVudCA9IGNvbnRlbnQuam9pbignJyk7XG4gICAgICAgICAgICAgICAgYWN0dWFsID0ganNvblN0cmlwcGVkQ29udGVudC5sZW5ndGg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gLyg8KFtePl0rKT4pL2dpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhZ3NTdHJpcHBlZENvbnRlbnQgPSBjb250cm9sLnZhbHVlLnJlcGxhY2UocmVnZXgsICcnKTtcbiAgICAgICAgICAgICAgICBhY3R1YWwgPSB0YWdzU3RyaXBwZWRDb250ZW50Lmxlbmd0aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGFjdHVhbCA8IG1pbkxlbmd0aCA/IHsgbWluTGVuZ3RoOiB7IG1pbkxlbmd0aCwgYWN0dWFsIH0gfSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogVmFsaWRhdG9yIHRoYXQgcmVxdWlyZXMgdGhlIGxlbmd0aCBvZiB0aGUgZWRpdG9yJ3MgY29udGVudCwgb3V0IG9mIEhUTUwgdGFncyBvciBKU09OIHN0cnVjdHVyZSwgdG8gYmUgbGVzcyB0aGFuIG9yIGVxdWFsXG4gKiB0byB0aGUgcHJvdmlkZWQgbWF4aW11bSBsZW5ndGguXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqIFZhbGlkYXRlIHRoYXQgdGhlIGVkaXRvciBoYXMgYSBtYXhpbXVtIG9mIDEwIGNoYXJhY3RlcnM6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZWRpdG9yID0gbmV3IEZvcm1Db250cm9sKCduZyBhbmd1bGFyIHJlYWN0aXZlJywgZXVpRWRpdG9yTWF4TGVuZ3RoKDEwKSk7XG4gKiBjb25zb2xlLmxvZyhlZGl0b3IuZXJyb3JzKTsgLy8geyBtYXhMZW5ndGg6IHsgbWF4TGVuZ3RoOiAxMCwgYWN0dWFsOiAxOSB9IH1cbiAqIGBgYFxuICpcbiAqIEByZXR1cm5zIEEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBlcnJvciBtYXAgd2l0aCB0aGVcbiAqIGBtYXhsZW5ndGhgIGlmIHRoZSB2YWxpZGF0aW9uIGNoZWNrIGZhaWxzLCBvdGhlcndpc2UgYG51bGxgLlxuICovXG5leHBvcnQgY29uc3QgZXVpRWRpdG9yTWF4TGVuZ3RoID1cbiAgICAobWF4TGVuZ3RoOiBudW1iZXIpOiBWYWxpZGF0b3JGbiA9PlxuICAgIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IG1heExlbmd0aDogeyBtYXhMZW5ndGg6IG51bWJlcjsgYWN0dWFsOiBudW1iZXIgfSB9IHwgbnVsbCA9PiB7XG4gICAgICAgIGlmIChjb250cm9sLnZhbHVlKSB7XG4gICAgICAgICAgICBsZXQgYWN0dWFsID0gMDtcbiAgICAgICAgICAgIGlmIChpc0pzb24oY29udHJvbC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gSlNPTi5wYXJzZShjb250cm9sLnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAub3BzLmZpbHRlcigoYzogeyBhdHRyaWJ1dGVzOiBzdHJpbmc7IGluc2VydDogc3RyaW5nIH0pID0+IHR5cGVvZiBjLmluc2VydCA9PT0gJ3N0cmluZycpXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKGM6IHsgYXR0cmlidXRlczogc3RyaW5nOyBpbnNlcnQ6IHN0cmluZyB9KSA9PiBjLmluc2VydC5yZXBsYWNlKC9cXG4vZywgJycpKTtcbiAgICAgICAgICAgICAgICBjb25zdCBqc29uU3RyaXBwZWRDb250ZW50ID0gY29udGVudC5qb2luKCcnKTtcbiAgICAgICAgICAgICAgICBhY3R1YWwgPSBqc29uU3RyaXBwZWRDb250ZW50Lmxlbmd0aDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVnZXggPSAvKDwoW14+XSspPikvZ2k7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFnc1N0cmlwcGVkQ29udGVudCA9IGNvbnRyb2wudmFsdWUucmVwbGFjZShyZWdleCwgJycpO1xuICAgICAgICAgICAgICAgIGFjdHVhbCA9IHRhZ3NTdHJpcHBlZENvbnRlbnQubGVuZ3RoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYWN0dWFsID4gbWF4TGVuZ3RoID8geyBtYXhMZW5ndGg6IHsgbWF4TGVuZ3RoLCBhY3R1YWwgfSB9IDogbnVsbDtcbiAgICAgICAgfVxuICAgIH07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBWYWxpZGF0b3IgdGhhdCByZXF1aXJlcyB0aGUgbnVtYmVyIG9mIHdvcmRzIGluIHRoZSBlZGl0b3IsIG91dCBvZiBIVE1MIHRhZ3Mgb3IgSlNPTiBzdHJ1Y3R1cmUsIHRvIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbFxuICogdG8gdGhlIHByb3ZpZGVkIG1pbmltdW0gbnVtYmVyLlxuICpcbiAqIEB1c2FnZU5vdGVzXG4gKiBWYWxpZGF0ZSB0aGF0IHRoZSBlZGl0b3IgaGFzIGEgbWluaW11bSBvZiA1IHdvcmRzOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGVkaXRvciA9IG5ldyBGb3JtQ29udHJvbCgnbmcgYW5ndWxhcicsIGV1aUVkaXRvck1pbldvcmRzKDUpKTtcbiAqIGNvbnNvbGUubG9nKGVkaXRvci5lcnJvcnMpOyAvLyB7IG1pbldvcmRzOiB7IG1pbldvcmRzOiA1LCBhY3R1YWw6IDIgfSB9XG4gKiBgYGBcbiAqXG4gKiBAcmV0dXJucyBBIHZhbGlkYXRvciBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gZXJyb3IgbWFwIHdpdGggdGhlXG4gKiBgbWluV29yZHNgIGlmIHRoZSB2YWxpZGF0aW9uIGNoZWNrIGZhaWxzLCBvdGhlcndpc2UgYG51bGxgLlxuICovXG5leHBvcnQgY29uc3QgZXVpRWRpdG9yTWluV29yZHMgPVxuICAgIChtaW5Xb3JkczogbnVtYmVyKTogVmFsaWRhdG9yRm4gPT5cbiAgICAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBtaW5Xb3JkczogeyBtaW5Xb3JkczogbnVtYmVyOyBhY3R1YWw6IG51bWJlciB9IH0gfCBudWxsID0+IHtcbiAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgIGxldCBhY3R1YWwgPSAwO1xuICAgICAgICAgICAgaWYgKGlzSnNvbihjb250cm9sLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBKU09OLnBhcnNlKGNvbnRyb2wudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgIC5vcHMuZmlsdGVyKChjOiB7IGF0dHJpYnV0ZXM6IHN0cmluZzsgaW5zZXJ0OiBzdHJpbmcgfSkgPT4gdHlwZW9mIGMuaW5zZXJ0ID09PSAnc3RyaW5nJylcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoYzogeyBhdHRyaWJ1dGVzOiBzdHJpbmc7IGluc2VydDogc3RyaW5nIH0pID0+IGMuaW5zZXJ0LnJlcGxhY2UoL1xcbi9nLCAnICcpKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGpzb25TdHJpcHBlZENvbnRlbnQgPSBjb250ZW50LmpvaW4oJycpO1xuICAgICAgICAgICAgICAgIGFjdHVhbCA9IGpzb25TdHJpcHBlZENvbnRlbnQudHJpbSgpLnNwbGl0KC9cXHMrLykubGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleGNlcHRUYWdzID0gLzxzdHJvbmc+fDxcXC9zdHJvbmc+fDxiPnw8XFwvYj58PGk+fDxcXC9pPnw8ZW0+fDxcXC9lbT58PHM+fDxcXC9zPnw8c3RyaWtlPnw8XFwvc3RyaWtlPnw8dT58PFxcL3U+L2dtO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gLyg8KFtePl0rKT4pL2dpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhZ3NTdHJpcHBlZENvbnRlbnQ6IHN0cmluZyA9IGNvbnRyb2wudmFsdWUucmVwbGFjZShleGNlcHRUYWdzLCAnJykucmVwbGFjZShyZWdleCwgJyAnKS5yZXBsYWNlKCcgICcsICcgJyk7XG4gICAgICAgICAgICAgICAgYWN0dWFsID0gdGFnc1N0cmlwcGVkQ29udGVudC50cmltKCkuc3BsaXQoL1xccysvKS5maWx0ZXIodCA9PiB0ICE9PSAnJykubGVuZ3RoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYWN0dWFsIDwgbWluV29yZHMgPyB7IG1pbldvcmRzOiB7IG1pbldvcmRzLCBhY3R1YWwgfSB9IDogbnVsbDtcbiAgICAgICAgfVxuICAgIH07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBWYWxpZGF0b3IgdGhhdCByZXF1aXJlcyB0aGUgbnVtYmVyIG9mIHdvcmRzIGluIHRoZSBlZGl0b3IsIG91dCBvZiBIVE1MIHRhZ3Mgb3IgSlNPTiBzdHJ1Y3R1cmUsIHRvIGJlIGxlc3MgdGhhbiBvciBlcXVhbFxuICogdG8gdGhlIHByb3ZpZGVkIG1heGltdW0gbnVtYmVyLlxuICpcbiAqIEB1c2FnZU5vdGVzXG4gKiBWYWxpZGF0ZSB0aGF0IHRoZSBlZGl0b3IgaGFzIGEgbWF4aW11bSBvZiAxMCB3b3JkczpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBlZGl0b3IgPSBuZXcgRm9ybUNvbnRyb2woJ25nIGFuZ3VsYXIgcmVhY3RpdmUgZm9ybXMgZWRpdG9yIHd5c2l3eWcgZXVpIGVjIGV1cm9wYSBucG0gbm9kZScsIGV1aUVkaXRvck1heFdvcmRzKDEwKSk7XG4gKiBjb25zb2xlLmxvZyhlZGl0b3IuZXJyb3JzKTsgLy8geyBtYXhXb3JkczogeyBtYXhXb3JkczogMTAsIGFjdHVhbDogMTEgfSB9XG4gKiBgYGBcbiAqXG4gKiBAcmV0dXJucyBBIHZhbGlkYXRvciBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gZXJyb3IgbWFwIHdpdGggdGhlXG4gKiBgbWF4V29yZHNgIGlmIHRoZSB2YWxpZGF0aW9uIGNoZWNrIGZhaWxzLCBvdGhlcndpc2UgYG51bGxgLlxuICovXG5leHBvcnQgY29uc3QgZXVpRWRpdG9yTWF4V29yZHMgPVxuICAgIChtYXhXb3JkczogbnVtYmVyKTogVmFsaWRhdG9yRm4gPT5cbiAgICAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBtYXhXb3JkczogeyBtYXhXb3JkczogbnVtYmVyOyBhY3R1YWw6IG51bWJlciB9IH0gfCBudWxsID0+IHtcbiAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgIGxldCBhY3R1YWwgPSAwO1xuICAgICAgICAgICAgaWYgKGlzSnNvbihjb250cm9sLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBKU09OLnBhcnNlKGNvbnRyb2wudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgIC5vcHMuZmlsdGVyKChjOiB7IGF0dHJpYnV0ZXM6IHN0cmluZzsgaW5zZXJ0OiBzdHJpbmcgfSkgPT4gdHlwZW9mIGMuaW5zZXJ0ID09PSAnc3RyaW5nJylcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoYzogeyBhdHRyaWJ1dGVzOiBzdHJpbmc7IGluc2VydDogc3RyaW5nIH0pID0+IGMuaW5zZXJ0LnJlcGxhY2UoL1xcbi9nLCAnICcpKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGpzb25TdHJpcHBlZENvbnRlbnQgPSBjb250ZW50LmpvaW4oJycpO1xuICAgICAgICAgICAgICAgIGFjdHVhbCA9IGpzb25TdHJpcHBlZENvbnRlbnQudHJpbSgpLnNwbGl0KC9cXHMrLykubGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleGNlcHRUYWdzID0gLzxzdHJvbmc+fDxcXC9zdHJvbmc+fDxiPnw8XFwvYj58PGk+fDxcXC9pPnw8ZW0+fDxcXC9lbT58PHM+fDxcXC9zPnw8c3RyaWtlPnw8XFwvc3RyaWtlPnw8dT58PFxcL3U+L2dtO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gLyg8KFtePl0rKT4pL2dpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhZ3NTdHJpcHBlZENvbnRlbnQ6IHN0cmluZyA9IGNvbnRyb2wudmFsdWUucmVwbGFjZShleGNlcHRUYWdzLCAnJykucmVwbGFjZShyZWdleCwgJyAnKS5yZXBsYWNlKCcgICcsICcgJyk7XG4gICAgICAgICAgICAgICAgYWN0dWFsID0gdGFnc1N0cmlwcGVkQ29udGVudC50cmltKCkuc3BsaXQoL1xccysvKS5maWx0ZXIodCA9PiB0ICE9PSAnJykubGVuZ3RoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYWN0dWFsID4gbWF4V29yZHMgPyB7IG1heFdvcmRzOiB7IG1heFdvcmRzLCBhY3R1YWwgfSB9IDogbnVsbDtcbiAgICAgICAgfVxuICAgIH07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBWYWxpZGF0b3IgdGhhdCByZXF1aXJlcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGluIHRoZSBlZGl0b3IsIHdpdGggSFRNTCB0YWdzIG9yIEpTT04gc3RydWN0dXJlLCB0byBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWxcbiAqIHRvIHRoZSBwcm92aWRlZCBtaW5pbXVtIG51bWJlci5cbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICogVmFsaWRhdGUgdGhhdCB0aGUgZWRpdG9yIGhhcyBhIG1pbmltdW0gb2YgMjAgYnl0ZXM6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZWRpdG9yID0gbmV3IEZvcm1Db250cm9sKCc8cD5ldXJvcGEuZXU8L3A+JywgZXVpRWRpdG9yTWluQnl0ZXMoMjApKTtcbiAqIGNvbnNvbGUubG9nKGVkaXRvci5lcnJvcnMpOyAvLyB7IG1pbkJ5dGVzOiB7IG1pbkJ5dGVzOiAyMCwgYWN0dWFsOiAxNiB9IH1cbiAqIGBgYFxuICpcbiAqIEByZXR1cm5zIEEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBlcnJvciBtYXAgd2l0aCB0aGVcbiAqIGBtaW5CeXRlc2AgaWYgdGhlIHZhbGlkYXRpb24gY2hlY2sgZmFpbHMsIG90aGVyd2lzZSBgbnVsbGAuXG4gKi9cbmV4cG9ydCBjb25zdCBldWlFZGl0b3JNaW5CeXRlcyA9XG4gICAgKG1pbkJ5dGVzOiBudW1iZXIpOiBWYWxpZGF0b3JGbiA9PlxuICAgIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IG1pbkJ5dGVzOiB7IG1pbkJ5dGVzOiBudW1iZXI7IGFjdHVhbDogbnVtYmVyIH0gfSB8IG51bGwgPT4ge1xuICAgICAgICBpZiAoY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgbGV0IGFjdHVhbCA9IDA7XG4gICAgICAgICAgICBjb25zdCBtID0gZW5jb2RlVVJJQ29tcG9uZW50KGNvbnRyb2wudmFsdWUpLm1hdGNoKC8lWzg5QUJhYl0vZyk7XG4gICAgICAgICAgICBhY3R1YWwgPSBjb250cm9sLnZhbHVlLmxlbmd0aCArIChtID8gbS5sZW5ndGggOiAwKTtcblxuICAgICAgICAgICAgcmV0dXJuIGFjdHVhbCA8IG1pbkJ5dGVzID8geyBtaW5CeXRlczogeyBtaW5CeXRlcywgYWN0dWFsIH0gfSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogVmFsaWRhdG9yIHRoYXQgcmVxdWlyZXMgdGhlIG51bWJlciBvZiBieXRlcyBpbiB0aGUgZWRpdG9yLCB3aXRoIEhUTUwgdGFncyBvciBKU09OIHN0cnVjdHVyZSwgdG8gYmUgbGVzcyB0aGFuIG9yIGVxdWFsXG4gKiB0byB0aGUgcHJvdmlkZWQgbWluaW11bSBudW1iZXIuXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqIFZhbGlkYXRlIHRoYXQgdGhlIGVkaXRvciBoYXMgYSBtYXhpbXVtIG9mIDIwIGJ5dGVzOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGVkaXRvciA9IG5ldyBGb3JtQ29udHJvbCgnPHA+ZXVyb3BhLmV1IHNpdGU8L3A+JywgZXVpRWRpdG9yTWluQnl0ZXMoMjApKTtcbiAqIGNvbnNvbGUubG9nKGVkaXRvci5lcnJvcnMpOyAvLyB7IG1heEJ5dGVzOiB7IG1heEJ5dGVzOiAyMCwgYWN0dWFsOiAyMSB9IH1cbiAqIGBgYFxuICpcbiAqIEByZXR1cm5zIEEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBlcnJvciBtYXAgd2l0aCB0aGVcbiAqIGBtYXhCeXRlc2AgaWYgdGhlIHZhbGlkYXRpb24gY2hlY2sgZmFpbHMsIG90aGVyd2lzZSBgbnVsbGAuXG4gKi9cbmV4cG9ydCBjb25zdCBldWlFZGl0b3JNYXhCeXRlcyA9XG4gICAgKG1heEJ5dGVzOiBudW1iZXIpOiBWYWxpZGF0b3JGbiA9PlxuICAgIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IG1heEJ5dGVzOiB7IG1heEJ5dGVzOiBudW1iZXI7IGFjdHVhbDogbnVtYmVyIH0gfSB8IG51bGwgPT4ge1xuICAgICAgICBpZiAoY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgbGV0IGFjdHVhbCA9IDA7XG4gICAgICAgICAgICBpZiAoaXNKc29uKGNvbnRyb2wudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgYWN0dWFsID0gYnl0ZUxlbmd0aChjb250cm9sLnZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbSA9IGVuY29kZVVSSUNvbXBvbmVudChjb250cm9sLnZhbHVlKS5tYXRjaCgvJVs4OUFCYWJdL2cpO1xuICAgICAgICAgICAgICAgIGFjdHVhbCA9IGNvbnRyb2wudmFsdWUubGVuZ3RoICsgKG0gPyBtLmxlbmd0aCA6IDApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYWN0dWFsID4gbWF4Qnl0ZXMgPyB7IG1heEJ5dGVzOiB7IG1heEJ5dGVzLCBhY3R1YWwgfSB9IDogbnVsbDtcbiAgICAgICAgfVxuICAgIH07XG4iXX0=
@@ -30,11 +30,11 @@ export class EuiAppToolbarComponent {
30
30
  document.documentElement.style.removeProperty('--eui-app-toolbar-height');
31
31
  }
32
32
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EuiAppToolbarComponent, deps: [{ token: i1.UxAppShellService }], target: i0.ɵɵFactoryTarget.Component }); }
33
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EuiAppToolbarComponent, selector: "eui-app-toolbar", inputs: { hasLanguageSelector: "hasLanguageSelector" }, host: { properties: { "class": "this.string", "attr.role": "this.role" } }, ngImport: i0, template: "<!--Only render the toggle if there is a rendered sidebar in the DOM, otherwise it doesn't make sense. -->\n<eui-sidebar-toggle *ngIf=\"asService.getState('hasSidebar') | async\" class=\"eui-app-toolbar__sidebar-toggle\"> </eui-sidebar-toggle>\n\n<ng-content></ng-content>\n\n<ng-container\n *ngIf=\"\n !(asService.getState('hasHeader') | async | coerceBool) ||\n ((asService.getState('hasHeader') | async) && (asService.breakpoints$ | async).isMobile)\n \">\n <ng-container *ngIf=\"hasLanguageSelector\">\n <eui-language-selector styleClass=\"eui-app-toolbar__language-selector\"> </eui-language-selector>\n </ng-container>\n</ng-container>\n", styles: [".eui-app-toolbar{align-items:center;background:var(--eui-app-toolbar-bg-color);color:var(--eui-app-toolbar-color);width:100%;height:var(--eui-app-toolbar-height);display:flex;position:fixed;right:0;left:0;top:calc(var(--eui-app-header-height) + var(--eui-app-top-message-height));transition:top .1s ease,left .1s ease-in,width .1s ease-in;z-index:var(--eui-base-z-index-nav)}.eui-app-toolbar__sidebar-toggle{padding:0 0 0 var(--eui-base-spacing-xs)}.eui-app-toolbar__language-selector{margin-left:auto}.eui-app-toolbar__language-selector .eui-language-selector-link__icon{color:var(--eui-base-color-white);font-size:var(--eui-base-icon-size-l)}.eui-app-toolbar__language-selector .eui-language-selector-link__language-code{color:var(--eui-base-color-primary-100)}.modal-open .eui-app-toolbar{z-index:auto}.eui-t-ec .eui-app-toolbar__sidebar-toggle{padding-top:calc(var(--eui-base-spacing-m) + 2px)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EuiSidebarToggleComponent, selector: "eui-sidebar-toggle", inputs: ["iconSvgFillColor", "e2eAttr"] }, { kind: "component", type: i4.EuiLanguageSelectorComponent, selector: "eui-language-selector", inputs: ["hasLanguageSelection"], outputs: ["languageSelectorClick"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.EuiCoerceBooleanPipe, name: "coerceBool" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
33
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EuiAppToolbarComponent, selector: "eui-app-toolbar", inputs: { hasLanguageSelector: "hasLanguageSelector" }, host: { properties: { "class": "this.string", "attr.role": "this.role" } }, ngImport: i0, template: "<!--Only render the toggle if there is a rendered sidebar in the DOM, otherwise it doesn't make sense. -->\n<eui-sidebar-toggle *ngIf=\"asService.getState('hasSidebar') | async\" class=\"eui-app-toolbar__sidebar-toggle\"> </eui-sidebar-toggle>\n\n<ng-content></ng-content>\n\n<ng-container\n *ngIf=\"\n !(asService.getState('hasHeader') | async | coerceBool) ||\n ((asService.getState('hasHeader') | async) && (asService.breakpoints$ | async).isMobile)\n \">\n <ng-container *ngIf=\"hasLanguageSelector\">\n <eui-language-selector styleClass=\"eui-app-toolbar__language-selector\"> </eui-language-selector>\n </ng-container>\n</ng-container>\n", styles: [".eui-app-toolbar{align-items:center;background:var(--eui-app-toolbar-bg-color);color:var(--eui-app-toolbar-color);width:100%;height:var(--eui-app-toolbar-height);display:flex;position:fixed;right:0;left:0;top:calc(var(--eui-app-header-height) + var(--eui-app-top-message-height));transition:top .1s ease,left .1s ease-in,width .1s ease-in;z-index:var(--eui-base-z-index-nav)}.eui-app-toolbar__sidebar-toggle{padding:0 0 0 var(--eui-base-spacing-xs)}.eui-app-toolbar__sidebar-toggle .eui-icon-svg svg{fill:var(--eui-base-color-white);color:var(--eui-base-color-white)}.eui-app-toolbar__language-selector{margin-left:auto}.eui-app-toolbar__language-selector .eui-language-selector-link__icon{color:var(--eui-base-color-white);font-size:var(--eui-base-icon-size-l)}.eui-app-toolbar__language-selector .eui-language-selector-link__language-code{color:var(--eui-base-color-primary-100)}.modal-open .eui-app-toolbar{z-index:auto}.eui-t-ec .eui-app-toolbar__sidebar-toggle{padding-top:calc(var(--eui-base-spacing-m) + 2px)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EuiSidebarToggleComponent, selector: "eui-sidebar-toggle", inputs: ["iconSvgFillColor", "e2eAttr"] }, { kind: "component", type: i4.EuiLanguageSelectorComponent, selector: "eui-language-selector", inputs: ["hasLanguageSelection"], outputs: ["languageSelectorClick"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.EuiCoerceBooleanPipe, name: "coerceBool" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
34
34
  }
35
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EuiAppToolbarComponent, decorators: [{
36
36
  type: Component,
37
- args: [{ selector: 'eui-app-toolbar', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: "<!--Only render the toggle if there is a rendered sidebar in the DOM, otherwise it doesn't make sense. -->\n<eui-sidebar-toggle *ngIf=\"asService.getState('hasSidebar') | async\" class=\"eui-app-toolbar__sidebar-toggle\"> </eui-sidebar-toggle>\n\n<ng-content></ng-content>\n\n<ng-container\n *ngIf=\"\n !(asService.getState('hasHeader') | async | coerceBool) ||\n ((asService.getState('hasHeader') | async) && (asService.breakpoints$ | async).isMobile)\n \">\n <ng-container *ngIf=\"hasLanguageSelector\">\n <eui-language-selector styleClass=\"eui-app-toolbar__language-selector\"> </eui-language-selector>\n </ng-container>\n</ng-container>\n", styles: [".eui-app-toolbar{align-items:center;background:var(--eui-app-toolbar-bg-color);color:var(--eui-app-toolbar-color);width:100%;height:var(--eui-app-toolbar-height);display:flex;position:fixed;right:0;left:0;top:calc(var(--eui-app-header-height) + var(--eui-app-top-message-height));transition:top .1s ease,left .1s ease-in,width .1s ease-in;z-index:var(--eui-base-z-index-nav)}.eui-app-toolbar__sidebar-toggle{padding:0 0 0 var(--eui-base-spacing-xs)}.eui-app-toolbar__language-selector{margin-left:auto}.eui-app-toolbar__language-selector .eui-language-selector-link__icon{color:var(--eui-base-color-white);font-size:var(--eui-base-icon-size-l)}.eui-app-toolbar__language-selector .eui-language-selector-link__language-code{color:var(--eui-base-color-primary-100)}.modal-open .eui-app-toolbar{z-index:auto}.eui-t-ec .eui-app-toolbar__sidebar-toggle{padding-top:calc(var(--eui-base-spacing-m) + 2px)}\n"] }]
37
+ args: [{ selector: 'eui-app-toolbar', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: "<!--Only render the toggle if there is a rendered sidebar in the DOM, otherwise it doesn't make sense. -->\n<eui-sidebar-toggle *ngIf=\"asService.getState('hasSidebar') | async\" class=\"eui-app-toolbar__sidebar-toggle\"> </eui-sidebar-toggle>\n\n<ng-content></ng-content>\n\n<ng-container\n *ngIf=\"\n !(asService.getState('hasHeader') | async | coerceBool) ||\n ((asService.getState('hasHeader') | async) && (asService.breakpoints$ | async).isMobile)\n \">\n <ng-container *ngIf=\"hasLanguageSelector\">\n <eui-language-selector styleClass=\"eui-app-toolbar__language-selector\"> </eui-language-selector>\n </ng-container>\n</ng-container>\n", styles: [".eui-app-toolbar{align-items:center;background:var(--eui-app-toolbar-bg-color);color:var(--eui-app-toolbar-color);width:100%;height:var(--eui-app-toolbar-height);display:flex;position:fixed;right:0;left:0;top:calc(var(--eui-app-header-height) + var(--eui-app-top-message-height));transition:top .1s ease,left .1s ease-in,width .1s ease-in;z-index:var(--eui-base-z-index-nav)}.eui-app-toolbar__sidebar-toggle{padding:0 0 0 var(--eui-base-spacing-xs)}.eui-app-toolbar__sidebar-toggle .eui-icon-svg svg{fill:var(--eui-base-color-white);color:var(--eui-base-color-white)}.eui-app-toolbar__language-selector{margin-left:auto}.eui-app-toolbar__language-selector .eui-language-selector-link__icon{color:var(--eui-base-color-white);font-size:var(--eui-base-icon-size-l)}.eui-app-toolbar__language-selector .eui-language-selector-link__language-code{color:var(--eui-base-color-primary-100)}.modal-open .eui-app-toolbar{z-index:auto}.eui-t-ec .eui-app-toolbar__sidebar-toggle{padding-top:calc(var(--eui-base-spacing-m) + 2px)}\n"] }]
38
38
  }], ctorParameters: function () { return [{ type: i1.UxAppShellService }]; }, propDecorators: { string: [{
39
39
  type: HostBinding,
40
40
  args: ['class']
@@ -1 +1 @@
1
- {"version":3,"file":"eui-editor.validators.d.ts","sourceRoot":"","sources":["../../../../externals/eui-editor/validators/eui-editor.validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AA4B9D;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kBAAkB,cACf,MAAM,KAAG,WAmBpB,CAAC;AAEN;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kBAAkB,cACf,MAAM,KAAG,WAmBpB,CAAC;AAEN;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,aACf,MAAM,KAAG,WAoBnB,CAAC;AAEN;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,aACf,MAAM,KAAG,WAoBnB,CAAC;AAEN;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,aACf,MAAM,KAAG,WASnB,CAAC;AAEN;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,aACf,MAAM,KAAG,WAanB,CAAC"}
1
+ {"version":3,"file":"eui-editor.validators.d.ts","sourceRoot":"","sources":["../../../../externals/eui-editor/validators/eui-editor.validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AA4B9D;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kBAAkB,cACf,MAAM,KAAG,WAmBpB,CAAC;AAEN;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kBAAkB,cACf,MAAM,KAAG,WAkBpB,CAAC;AAEN;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,aACf,MAAM,KAAG,WAoBnB,CAAC;AAEN;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,aACf,MAAM,KAAG,WAoBnB,CAAC;AAEN;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,aACf,MAAM,KAAG,WASnB,CAAC;AAEN;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,aACf,MAAM,KAAG,WAanB,CAAC"}
@@ -1065,7 +1065,7 @@ const euiEditorMinWords = (minWords) => (control) => {
1065
1065
  const content = JSON.parse(control.value)
1066
1066
  .ops.filter((c) => typeof c.insert === 'string')
1067
1067
  .map((c) => c.insert.replace(/\n/g, ' '));
1068
- const jsonStrippedContent = content.join(' ');
1068
+ const jsonStrippedContent = content.join('');
1069
1069
  actual = jsonStrippedContent.trim().split(/\s+/).length;
1070
1070
  }
1071
1071
  else {
@@ -1100,7 +1100,7 @@ const euiEditorMaxWords = (maxWords) => (control) => {
1100
1100
  const content = JSON.parse(control.value)
1101
1101
  .ops.filter((c) => typeof c.insert === 'string')
1102
1102
  .map((c) => c.insert.replace(/\n/g, ' '));
1103
- const jsonStrippedContent = content.join(' ');
1103
+ const jsonStrippedContent = content.join('');
1104
1104
  actual = jsonStrippedContent.trim().split(/\s+/).length;
1105
1105
  }
1106
1106
  else {