@eui/components 15.5.4-snapshot-1700698504245 → 15.5.4

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.
@@ -791,7 +791,7 @@
791
791
  .ops.filter((c: { attributes: string; insert: string }) => typeof c.insert === 'string')
792
792
  .map((c: { attributes: string; insert: string }) => c.insert.replace(/\n/g, ' '));
793
793
 
794
- const jsonStrippedContent = content.join(' ');
794
+ const jsonStrippedContent = content.join('');
795
795
  actual = jsonStrippedContent.trim().split(/\s+/).length;
796
796
  } else {
797
797
  const exceptTags = /<strong>|<\/strong>|<b>|<\/b>|<i>|<\/i>|<em>|<\/em>|<s>|<\/s>|<strike>|<\/strike>|<u>|<\/u>/gm;
@@ -899,7 +899,7 @@
899
899
  .ops.filter((c: { attributes: string; insert: string }) => typeof c.insert === 'string')
900
900
  .map((c: { attributes: string; insert: string }) => c.insert.replace(/\n/g, ' '));
901
901
 
902
- const jsonStrippedContent = content.join(' ');
902
+ const jsonStrippedContent = content.join('');
903
903
  actual = jsonStrippedContent.trim().split(/\s+/).length;
904
904
  } else {
905
905
  const exceptTags = /<strong>|<\/strong>|<b>|<\/b>|<i>|<\/i>|<em>|<\/em>|<s>|<\/s>|<strike>|<\/strike>|<u>|<\/u>/gm;
@@ -30,10 +30,10 @@ export class EuiEditorCountersComponent {
30
30
  }
31
31
  }
32
32
  /** @nocollapse */ EuiEditorCountersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EuiEditorCountersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
- /** @nocollapse */ EuiEditorCountersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: EuiEditorCountersComponent, selector: "eui-editor-counters", inputs: { charactersCounter: "charactersCounter", charactersLabel: "charactersLabel", wordsCounter: "wordsCounter", wordsLabel: "wordsLabel", isMaxLengthValid: "isMaxLengthValid", hasCharactersCounter: "hasCharactersCounter", hasWordsCounter: "hasWordsCounter" }, ngImport: i0, template: "<button class=\"editor-counters\">\n <div *ngIf=\"hasCharactersCounter\" class=\"eui-u-flex eui-u-flex-column eui-u-mv-2xs\">\n <span class=\"chars-counter\" [class.chars-counter--error]=\"!isMaxLengthValid\">{{ charactersCounter }}</span>\n <span class=\"chars-label\">{{ charactersLabel }}</span>\n </div>\n <div *ngIf=\"hasWordsCounter\" class=\"eui-u-flex eui-u-flex-column eui-u-mv-2xs\">\n <span class=\"words-counter\">{{ wordsCounter }}</span>\n <span class=\"words-label\">{{ wordsLabel }}</span>\n </div>\n</button>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
33
+ /** @nocollapse */ EuiEditorCountersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: EuiEditorCountersComponent, selector: "eui-editor-counters", inputs: { charactersCounter: "charactersCounter", charactersLabel: "charactersLabel", wordsCounter: "wordsCounter", wordsLabel: "wordsLabel", isMaxLengthValid: "isMaxLengthValid", hasCharactersCounter: "hasCharactersCounter", hasWordsCounter: "hasWordsCounter" }, ngImport: i0, template: "<button class=\"editor-counters\">\n <div *ngIf=\"hasCharactersCounter\" class=\"eui-u-flex eui-u-flex-column\" [class.eui-u-mr-2xs]=\"hasWordsCounter\">\n <span class=\"chars-counter\" [class.chars-counter--error]=\"!isMaxLengthValid\">{{ charactersCounter }}</span>\n <span class=\"chars-label\">{{ charactersLabel }}</span>\n </div>\n <div *ngIf=\"hasWordsCounter\" class=\"eui-u-flex eui-u-flex-column eui-u-mv-2xs\">\n <span class=\"words-counter\">{{ wordsCounter }}</span>\n <span class=\"words-label\">{{ wordsLabel }}</span>\n </div>\n</button>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EuiEditorCountersComponent, decorators: [{
35
35
  type: Component,
36
- args: [{ selector: 'eui-editor-counters', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button class=\"editor-counters\">\n <div *ngIf=\"hasCharactersCounter\" class=\"eui-u-flex eui-u-flex-column eui-u-mv-2xs\">\n <span class=\"chars-counter\" [class.chars-counter--error]=\"!isMaxLengthValid\">{{ charactersCounter }}</span>\n <span class=\"chars-label\">{{ charactersLabel }}</span>\n </div>\n <div *ngIf=\"hasWordsCounter\" class=\"eui-u-flex eui-u-flex-column eui-u-mv-2xs\">\n <span class=\"words-counter\">{{ wordsCounter }}</span>\n <span class=\"words-label\">{{ wordsLabel }}</span>\n </div>\n</button>\n" }]
36
+ args: [{ selector: 'eui-editor-counters', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button class=\"editor-counters\">\n <div *ngIf=\"hasCharactersCounter\" class=\"eui-u-flex eui-u-flex-column\" [class.eui-u-mr-2xs]=\"hasWordsCounter\">\n <span class=\"chars-counter\" [class.chars-counter--error]=\"!isMaxLengthValid\">{{ charactersCounter }}</span>\n <span class=\"chars-label\">{{ charactersLabel }}</span>\n </div>\n <div *ngIf=\"hasWordsCounter\" class=\"eui-u-flex eui-u-flex-column eui-u-mv-2xs\">\n <span class=\"words-counter\">{{ wordsCounter }}</span>\n <span class=\"words-label\">{{ wordsLabel }}</span>\n </div>\n</button>\n" }]
37
37
  }], propDecorators: { charactersCounter: [{
38
38
  type: Input
39
39
  }], charactersLabel: [{
@@ -49,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
49
49
  }], hasWordsCounter: [{
50
50
  type: Input
51
51
  }] } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWVkaXRvci1jb3VudGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9leHRlcm5hbHMvZXVpLWVkaXRvci9jb3VudGVycy9ldWktZWRpdG9yLWNvdW50ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2V4dGVybmFscy9ldWktZWRpdG9yL2NvdW50ZXJzL2V1aS1lZGl0b3ItY291bnRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTN0YsTUFBTSxPQUFPLDBCQUEwQjtJQVB2QztRQVNhLG9CQUFlLEdBQUcsWUFBWSxDQUFDO1FBRS9CLGVBQVUsR0FBRyxPQUFPLENBQUM7UUFRdEIsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBUXpCLDBCQUFxQixHQUFHLElBQUksQ0FBQztRQVE3QixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7S0FDbkM7SUF4QkcsSUFDSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUksZ0JBQWdCLENBQUMsS0FBbUI7UUFDcEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUNJLG9CQUFvQjtRQUNwQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsSUFBSSxvQkFBb0IsQ0FBQyxLQUFtQjtRQUN4QyxJQUFJLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQ0ksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFDRCxJQUFJLGVBQWUsQ0FBQyxLQUFtQjtRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQzs7MElBM0JRLDBCQUEwQjs4SEFBMUIsMEJBQTBCLG1VQ1Z2Qyx5akJBVUE7MkZEQWEsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUVJLHFCQUFxQixpQkFFaEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFTRixvQkFBb0I7c0JBRHZCLEtBQUs7Z0JBU0YsZUFBZTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBzZWxlY3RvcjogJ2V1aS1lZGl0b3ItY291bnRlcnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktZWRpdG9yLWNvdW50ZXJzLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlFZGl0b3JDb3VudGVyc0NvbXBvbmVudCB7XG4gICAgQElucHV0KCkgY2hhcmFjdGVyc0NvdW50ZXI6IG51bWJlcjtcbiAgICBASW5wdXQoKSBjaGFyYWN0ZXJzTGFiZWwgPSAnY2hhcmFjdGVycyc7XG4gICAgQElucHV0KCkgd29yZHNDb3VudGVyOiBudW1iZXI7XG4gICAgQElucHV0KCkgd29yZHNMYWJlbCA9ICd3b3Jkcyc7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNNYXhMZW5ndGhWYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTWF4TGVuZ3RoVmFsaWQ7XG4gICAgfVxuICAgIHNldCBpc01heExlbmd0aFZhbGlkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNNYXhMZW5ndGhWYWxpZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzTWF4TGVuZ3RoVmFsaWQgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc0NoYXJhY3RlcnNDb3VudGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzQ2hhcmFjdGVyc0NvdW50ZXI7XG4gICAgfVxuICAgIHNldCBoYXNDaGFyYWN0ZXJzQ291bnRlcih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2hhc0NoYXJhY3RlcnNDb3VudGVyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaGFzQ2hhcmFjdGVyc0NvdW50ZXIgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc1dvcmRzQ291bnRlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc1dvcmRzQ291bnRlcjtcbiAgICB9XG4gICAgc2V0IGhhc1dvcmRzQ291bnRlcih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2hhc1dvcmRzQ291bnRlciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2hhc1dvcmRzQ291bnRlciA9IHRydWU7XG59XG4iLCI8YnV0dG9uIGNsYXNzPVwiZWRpdG9yLWNvdW50ZXJzXCI+XG4gICAgPGRpdiAqbmdJZj1cImhhc0NoYXJhY3RlcnNDb3VudGVyXCIgY2xhc3M9XCJldWktdS1mbGV4IGV1aS11LWZsZXgtY29sdW1uIGV1aS11LW12LTJ4c1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNoYXJzLWNvdW50ZXJcIiBbY2xhc3MuY2hhcnMtY291bnRlci0tZXJyb3JdPVwiIWlzTWF4TGVuZ3RoVmFsaWRcIj57eyBjaGFyYWN0ZXJzQ291bnRlciB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGFycy1sYWJlbFwiPnt7IGNoYXJhY3RlcnNMYWJlbCB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiaGFzV29yZHNDb3VudGVyXCIgY2xhc3M9XCJldWktdS1mbGV4IGV1aS11LWZsZXgtY29sdW1uIGV1aS11LW12LTJ4c1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIndvcmRzLWNvdW50ZXJcIj57eyB3b3Jkc0NvdW50ZXIgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwid29yZHMtbGFiZWxcIj57eyB3b3Jkc0xhYmVsIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuPC9idXR0b24+XG4iXX0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWVkaXRvci1jb3VudGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9leHRlcm5hbHMvZXVpLWVkaXRvci9jb3VudGVycy9ldWktZWRpdG9yLWNvdW50ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2V4dGVybmFscy9ldWktZWRpdG9yL2NvdW50ZXJzL2V1aS1lZGl0b3ItY291bnRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTN0YsTUFBTSxPQUFPLDBCQUEwQjtJQVB2QztRQVNhLG9CQUFlLEdBQUcsWUFBWSxDQUFDO1FBRS9CLGVBQVUsR0FBRyxPQUFPLENBQUM7UUFRdEIsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBUXpCLDBCQUFxQixHQUFHLElBQUksQ0FBQztRQVE3QixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7S0FDbkM7SUF4QkcsSUFDSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUksZ0JBQWdCLENBQUMsS0FBbUI7UUFDcEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUNJLG9CQUFvQjtRQUNwQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsSUFBSSxvQkFBb0IsQ0FBQyxLQUFtQjtRQUN4QyxJQUFJLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQ0ksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFDRCxJQUFJLGVBQWUsQ0FBQyxLQUFtQjtRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQzs7MElBM0JRLDBCQUEwQjs4SEFBMUIsMEJBQTBCLG1VQ1Z2QyxxbEJBVUE7MkZEQWEsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUVJLHFCQUFxQixpQkFFaEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFTRixvQkFBb0I7c0JBRHZCLEtBQUs7Z0JBU0YsZUFBZTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBzZWxlY3RvcjogJ2V1aS1lZGl0b3ItY291bnRlcnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktZWRpdG9yLWNvdW50ZXJzLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlFZGl0b3JDb3VudGVyc0NvbXBvbmVudCB7XG4gICAgQElucHV0KCkgY2hhcmFjdGVyc0NvdW50ZXI6IG51bWJlcjtcbiAgICBASW5wdXQoKSBjaGFyYWN0ZXJzTGFiZWwgPSAnY2hhcmFjdGVycyc7XG4gICAgQElucHV0KCkgd29yZHNDb3VudGVyOiBudW1iZXI7XG4gICAgQElucHV0KCkgd29yZHNMYWJlbCA9ICd3b3Jkcyc7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNNYXhMZW5ndGhWYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTWF4TGVuZ3RoVmFsaWQ7XG4gICAgfVxuICAgIHNldCBpc01heExlbmd0aFZhbGlkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNNYXhMZW5ndGhWYWxpZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzTWF4TGVuZ3RoVmFsaWQgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc0NoYXJhY3RlcnNDb3VudGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzQ2hhcmFjdGVyc0NvdW50ZXI7XG4gICAgfVxuICAgIHNldCBoYXNDaGFyYWN0ZXJzQ291bnRlcih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2hhc0NoYXJhY3RlcnNDb3VudGVyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaGFzQ2hhcmFjdGVyc0NvdW50ZXIgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc1dvcmRzQ291bnRlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc1dvcmRzQ291bnRlcjtcbiAgICB9XG4gICAgc2V0IGhhc1dvcmRzQ291bnRlcih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2hhc1dvcmRzQ291bnRlciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2hhc1dvcmRzQ291bnRlciA9IHRydWU7XG59XG4iLCI8YnV0dG9uIGNsYXNzPVwiZWRpdG9yLWNvdW50ZXJzXCI+XG4gICAgPGRpdiAqbmdJZj1cImhhc0NoYXJhY3RlcnNDb3VudGVyXCIgY2xhc3M9XCJldWktdS1mbGV4IGV1aS11LWZsZXgtY29sdW1uXCIgW2NsYXNzLmV1aS11LW1yLTJ4c109XCJoYXNXb3Jkc0NvdW50ZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGFycy1jb3VudGVyXCIgW2NsYXNzLmNoYXJzLWNvdW50ZXItLWVycm9yXT1cIiFpc01heExlbmd0aFZhbGlkXCI+e3sgY2hhcmFjdGVyc0NvdW50ZXIgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY2hhcnMtbGFiZWxcIj57eyBjaGFyYWN0ZXJzTGFiZWwgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImhhc1dvcmRzQ291bnRlclwiIGNsYXNzPVwiZXVpLXUtZmxleCBldWktdS1mbGV4LWNvbHVtbiBldWktdS1tdi0yeHNcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ3b3Jkcy1jb3VudGVyXCI+e3sgd29yZHNDb3VudGVyIH19PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIndvcmRzLWxhYmVsXCI+e3sgd29yZHNMYWJlbCB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbjwvYnV0dG9uPlxuIl19
@@ -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+IHR5cGVvZiBjLmluc2VydCA9PT0gJ3N0cmluZycpXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKGM6IHsgYXR0cmlidXRlczogc3RyaW5nOyBpbnNlcnQ6IHN0cmluZyB9KSA9PiBjLmluc2VydC5yZXBsYWNlKC9cXG4vZywgJycpKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGpzb25TdHJpcHBlZENvbnRlbnQgPSBjb250ZW50LmpvaW4oJycpO1xuICAgICAgICAgICAgICAgIGFjdHVhbCA9IGpzb25TdHJpcHBlZENvbnRlbnQubGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWdleCA9IC8oPChbXj5dKyk+KS9naTtcbiAgICAgICAgICAgICAgICBjb25zdCB0YWdzU3RyaXBwZWRDb250ZW50ID0gY29udHJvbC52YWx1ZS5yZXBsYWNlKHJlZ2V4LCAnJyk7XG4gICAgICAgICAgICAgICAgYWN0dWFsID0gdGFnc1N0cmlwcGVkQ29udGVudC5sZW5ndGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhY3R1YWwgPiBtYXhMZW5ndGggPyB7IG1heExlbmd0aDogeyBtYXhMZW5ndGgsIGFjdHVhbCB9IH0gOiBudWxsO1xuICAgICAgICB9XG4gICAgfTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFZhbGlkYXRvciB0aGF0IHJlcXVpcmVzIHRoZSBudW1iZXIgb2Ygd29yZHMgaW4gdGhlIGVkaXRvciwgb3V0IG9mIEhUTUwgdGFncyBvciBKU09OIHN0cnVjdHVyZSwgdG8gYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsXG4gKiB0byB0aGUgcHJvdmlkZWQgbWluaW11bSBudW1iZXIuXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqIFZhbGlkYXRlIHRoYXQgdGhlIGVkaXRvciBoYXMgYSBtaW5pbXVtIG9mIDUgd29yZHM6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZWRpdG9yID0gbmV3IEZvcm1Db250cm9sKCduZyBhbmd1bGFyJywgZXVpRWRpdG9yTWluV29yZHMoNSkpO1xuICogY29uc29sZS5sb2coZWRpdG9yLmVycm9ycyk7IC8vIHsgbWluV29yZHM6IHsgbWluV29yZHM6IDUsIGFjdHVhbDogMiB9IH1cbiAqIGBgYFxuICpcbiAqIEByZXR1cm5zIEEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBlcnJvciBtYXAgd2l0aCB0aGVcbiAqIGBtaW5Xb3Jkc2AgaWYgdGhlIHZhbGlkYXRpb24gY2hlY2sgZmFpbHMsIG90aGVyd2lzZSBgbnVsbGAuXG4gKi9cbmV4cG9ydCBjb25zdCBldWlFZGl0b3JNaW5Xb3JkcyA9XG4gICAgKG1pbldvcmRzOiBudW1iZXIpOiBWYWxpZGF0b3JGbiA9PlxuICAgIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IG1pbldvcmRzOiB7IG1pbldvcmRzOiBudW1iZXI7IGFjdHVhbDogbnVtYmVyIH0gfSB8IG51bGwgPT4ge1xuICAgICAgICBpZiAoY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgbGV0IGFjdHVhbCA9IDA7XG4gICAgICAgICAgICBpZiAoaXNKc29uKGNvbnRyb2wudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IEpTT04ucGFyc2UoY29udHJvbC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgLm9wcy5maWx0ZXIoKGM6IHsgYXR0cmlidXRlczogc3RyaW5nOyBpbnNlcnQ6IHN0cmluZyB9KSA9PiB0eXBlb2YgYy5pbnNlcnQgPT09ICdzdHJpbmcnKVxuICAgICAgICAgICAgICAgICAgICAubWFwKChjOiB7IGF0dHJpYnV0ZXM6IHN0cmluZzsgaW5zZXJ0OiBzdHJpbmcgfSkgPT4gYy5pbnNlcnQucmVwbGFjZSgvXFxuL2csICcgJykpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QganNvblN0cmlwcGVkQ29udGVudCA9IGNvbnRlbnQuam9pbignJyk7XG4gICAgICAgICAgICAgICAgYWN0dWFsID0ganNvblN0cmlwcGVkQ29udGVudC50cmltKCkuc3BsaXQoL1xccysvKS5sZW5ndGg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4Y2VwdFRhZ3MgPSAvPHN0cm9uZz58PFxcL3N0cm9uZz58PGI+fDxcXC9iPnw8aT58PFxcL2k+fDxlbT58PFxcL2VtPnw8cz58PFxcL3M+fDxzdHJpa2U+fDxcXC9zdHJpa2U+fDx1Pnw8XFwvdT4vZ207XG4gICAgICAgICAgICAgICAgY29uc3QgcmVnZXggPSAvKDwoW14+XSspPikvZ2k7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFnc1N0cmlwcGVkQ29udGVudDogc3RyaW5nID0gY29udHJvbC52YWx1ZS5yZXBsYWNlKGV4Y2VwdFRhZ3MsICcnKS5yZXBsYWNlKHJlZ2V4LCAnICcpLnJlcGxhY2UoJyAgJywgJyAnKTtcbiAgICAgICAgICAgICAgICBhY3R1YWwgPSB0YWdzU3RyaXBwZWRDb250ZW50LnRyaW0oKS5zcGxpdCgvXFxzKy8pLmZpbHRlcih0ID0+IHQgIT09ICcnKS5sZW5ndGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhY3R1YWwgPCBtaW5Xb3JkcyA/IHsgbWluV29yZHM6IHsgbWluV29yZHMsIGFjdHVhbCB9IH0gOiBudWxsO1xuICAgICAgICB9XG4gICAgfTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFZhbGlkYXRvciB0aGF0IHJlcXVpcmVzIHRoZSBudW1iZXIgb2Ygd29yZHMgaW4gdGhlIGVkaXRvciwgb3V0IG9mIEhUTUwgdGFncyBvciBKU09OIHN0cnVjdHVyZSwgdG8gYmUgbGVzcyB0aGFuIG9yIGVxdWFsXG4gKiB0byB0aGUgcHJvdmlkZWQgbWF4aW11bSBudW1iZXIuXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqIFZhbGlkYXRlIHRoYXQgdGhlIGVkaXRvciBoYXMgYSBtYXhpbXVtIG9mIDEwIHdvcmRzOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGVkaXRvciA9IG5ldyBGb3JtQ29udHJvbCgnbmcgYW5ndWxhciByZWFjdGl2ZSBmb3JtcyBlZGl0b3Igd3lzaXd5ZyBldWkgZWMgZXVyb3BhIG5wbSBub2RlJywgZXVpRWRpdG9yTWF4V29yZHMoMTApKTtcbiAqIGNvbnNvbGUubG9nKGVkaXRvci5lcnJvcnMpOyAvLyB7IG1heFdvcmRzOiB7IG1heFdvcmRzOiAxMCwgYWN0dWFsOiAxMSB9IH1cbiAqIGBgYFxuICpcbiAqIEByZXR1cm5zIEEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBlcnJvciBtYXAgd2l0aCB0aGVcbiAqIGBtYXhXb3Jkc2AgaWYgdGhlIHZhbGlkYXRpb24gY2hlY2sgZmFpbHMsIG90aGVyd2lzZSBgbnVsbGAuXG4gKi9cbmV4cG9ydCBjb25zdCBldWlFZGl0b3JNYXhXb3JkcyA9XG4gICAgKG1heFdvcmRzOiBudW1iZXIpOiBWYWxpZGF0b3JGbiA9PlxuICAgIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IG1heFdvcmRzOiB7IG1heFdvcmRzOiBudW1iZXI7IGFjdHVhbDogbnVtYmVyIH0gfSB8IG51bGwgPT4ge1xuICAgICAgICBpZiAoY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgbGV0IGFjdHVhbCA9IDA7XG4gICAgICAgICAgICBpZiAoaXNKc29uKGNvbnRyb2wudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IEpTT04ucGFyc2UoY29udHJvbC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgLm9wcy5maWx0ZXIoKGM6IHsgYXR0cmlidXRlczogc3RyaW5nOyBpbnNlcnQ6IHN0cmluZyB9KSA9PiB0eXBlb2YgYy5pbnNlcnQgPT09ICdzdHJpbmcnKVxuICAgICAgICAgICAgICAgICAgICAubWFwKChjOiB7IGF0dHJpYnV0ZXM6IHN0cmluZzsgaW5zZXJ0OiBzdHJpbmcgfSkgPT4gYy5pbnNlcnQucmVwbGFjZSgvXFxuL2csICcgJykpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QganNvblN0cmlwcGVkQ29udGVudCA9IGNvbnRlbnQuam9pbignJyk7XG4gICAgICAgICAgICAgICAgYWN0dWFsID0ganNvblN0cmlwcGVkQ29udGVudC50cmltKCkuc3BsaXQoL1xccysvKS5sZW5ndGg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4Y2VwdFRhZ3MgPSAvPHN0cm9uZz58PFxcL3N0cm9uZz58PGI+fDxcXC9iPnw8aT58PFxcL2k+fDxlbT58PFxcL2VtPnw8cz58PFxcL3M+fDxzdHJpa2U+fDxcXC9zdHJpa2U+fDx1Pnw8XFwvdT4vZ207XG4gICAgICAgICAgICAgICAgY29uc3QgcmVnZXggPSAvKDwoW14+XSspPikvZ2k7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFnc1N0cmlwcGVkQ29udGVudDogc3RyaW5nID0gY29udHJvbC52YWx1ZS5yZXBsYWNlKGV4Y2VwdFRhZ3MsICcnKS5yZXBsYWNlKHJlZ2V4LCAnICcpLnJlcGxhY2UoJyAgJywgJyAnKTtcbiAgICAgICAgICAgICAgICBhY3R1YWwgPSB0YWdzU3RyaXBwZWRDb250ZW50LnRyaW0oKS5zcGxpdCgvXFxzKy8pLmZpbHRlcih0ID0+IHQgIT09ICcnKS5sZW5ndGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhY3R1YWwgPiBtYXhXb3JkcyA/IHsgbWF4V29yZHM6IHsgbWF4V29yZHMsIGFjdHVhbCB9IH0gOiBudWxsO1xuICAgICAgICB9XG4gICAgfTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFZhbGlkYXRvciB0aGF0IHJlcXVpcmVzIHRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlIGVkaXRvciwgd2l0aCBIVE1MIHRhZ3Mgb3IgSlNPTiBzdHJ1Y3R1cmUsIHRvIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbFxuICogdG8gdGhlIHByb3ZpZGVkIG1pbmltdW0gbnVtYmVyLlxuICpcbiAqIEB1c2FnZU5vdGVzXG4gKiBWYWxpZGF0ZSB0aGF0IHRoZSBlZGl0b3IgaGFzIGEgbWluaW11bSBvZiAyMCBieXRlczpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBlZGl0b3IgPSBuZXcgRm9ybUNvbnRyb2woJzxwPmV1cm9wYS5ldTwvcD4nLCBldWlFZGl0b3JNaW5CeXRlcygyMCkpO1xuICogY29uc29sZS5sb2coZWRpdG9yLmVycm9ycyk7IC8vIHsgbWluQnl0ZXM6IHsgbWluQnl0ZXM6IDIwLCBhY3R1YWw6IDE2IH0gfVxuICogYGBgXG4gKlxuICogQHJldHVybnMgQSB2YWxpZGF0b3IgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIGVycm9yIG1hcCB3aXRoIHRoZVxuICogYG1pbkJ5dGVzYCBpZiB0aGUgdmFsaWRhdGlvbiBjaGVjayBmYWlscywgb3RoZXJ3aXNlIGBudWxsYC5cbiAqL1xuZXhwb3J0IGNvbnN0IGV1aUVkaXRvck1pbkJ5dGVzID1cbiAgICAobWluQnl0ZXM6IG51bWJlcik6IFZhbGlkYXRvckZuID0+XG4gICAgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgbWluQnl0ZXM6IHsgbWluQnl0ZXM6IG51bWJlcjsgYWN0dWFsOiBudW1iZXIgfSB9IHwgbnVsbCA9PiB7XG4gICAgICAgIGlmIChjb250cm9sLnZhbHVlKSB7XG4gICAgICAgICAgICBsZXQgYWN0dWFsID0gMDtcbiAgICAgICAgICAgIGNvbnN0IG0gPSBlbmNvZGVVUklDb21wb25lbnQoY29udHJvbC52YWx1ZSkubWF0Y2goLyVbODlBQmFiXS9nKTtcbiAgICAgICAgICAgIGFjdHVhbCA9IGNvbnRyb2wudmFsdWUubGVuZ3RoICsgKG0gPyBtLmxlbmd0aCA6IDApO1xuXG4gICAgICAgICAgICByZXR1cm4gYWN0dWFsIDwgbWluQnl0ZXMgPyB7IG1pbkJ5dGVzOiB7IG1pbkJ5dGVzLCBhY3R1YWwgfSB9IDogbnVsbDtcbiAgICAgICAgfVxuICAgIH07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBWYWxpZGF0b3IgdGhhdCByZXF1aXJlcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGluIHRoZSBlZGl0b3IsIHdpdGggSFRNTCB0YWdzIG9yIEpTT04gc3RydWN0dXJlLCB0byBiZSBsZXNzIHRoYW4gb3IgZXF1YWxcbiAqIHRvIHRoZSBwcm92aWRlZCBtaW5pbXVtIG51bWJlci5cbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICogVmFsaWRhdGUgdGhhdCB0aGUgZWRpdG9yIGhhcyBhIG1heGltdW0gb2YgMjAgYnl0ZXM6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZWRpdG9yID0gbmV3IEZvcm1Db250cm9sKCc8cD5ldXJvcGEuZXUgc2l0ZTwvcD4nLCBldWlFZGl0b3JNaW5CeXRlcygyMCkpO1xuICogY29uc29sZS5sb2coZWRpdG9yLmVycm9ycyk7IC8vIHsgbWF4Qnl0ZXM6IHsgbWF4Qnl0ZXM6IDIwLCBhY3R1YWw6IDIxIH0gfVxuICogYGBgXG4gKlxuICogQHJldHVybnMgQSB2YWxpZGF0b3IgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIGVycm9yIG1hcCB3aXRoIHRoZVxuICogYG1heEJ5dGVzYCBpZiB0aGUgdmFsaWRhdGlvbiBjaGVjayBmYWlscywgb3RoZXJ3aXNlIGBudWxsYC5cbiAqL1xuZXhwb3J0IGNvbnN0IGV1aUVkaXRvck1heEJ5dGVzID1cbiAgICAobWF4Qnl0ZXM6IG51bWJlcik6IFZhbGlkYXRvckZuID0+XG4gICAgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgbWF4Qnl0ZXM6IHsgbWF4Qnl0ZXM6IG51bWJlcjsgYWN0dWFsOiBudW1iZXIgfSB9IHwgbnVsbCA9PiB7XG4gICAgICAgIGlmIChjb250cm9sLnZhbHVlKSB7XG4gICAgICAgICAgICBsZXQgYWN0dWFsID0gMDtcbiAgICAgICAgICAgIGlmIChpc0pzb24oY29udHJvbC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBhY3R1YWwgPSBieXRlTGVuZ3RoKGNvbnRyb2wudmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtID0gZW5jb2RlVVJJQ29tcG9uZW50KGNvbnRyb2wudmFsdWUpLm1hdGNoKC8lWzg5QUJhYl0vZyk7XG4gICAgICAgICAgICAgICAgYWN0dWFsID0gY29udHJvbC52YWx1ZS5sZW5ndGggKyAobSA/IG0ubGVuZ3RoIDogMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhY3R1YWwgPiBtYXhCeXRlcyA/IHsgbWF4Qnl0ZXM6IHsgbWF4Qnl0ZXMsIGFjdHVhbCB9IH0gOiBudWxsO1xuICAgICAgICB9XG4gICAgfTtcbiJdfQ==
@@ -173,10 +173,10 @@ class EuiEditorCountersComponent {
173
173
  }
174
174
  }
175
175
  /** @nocollapse */ EuiEditorCountersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EuiEditorCountersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
176
- /** @nocollapse */ EuiEditorCountersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: EuiEditorCountersComponent, selector: "eui-editor-counters", inputs: { charactersCounter: "charactersCounter", charactersLabel: "charactersLabel", wordsCounter: "wordsCounter", wordsLabel: "wordsLabel", isMaxLengthValid: "isMaxLengthValid", hasCharactersCounter: "hasCharactersCounter", hasWordsCounter: "hasWordsCounter" }, ngImport: i0, template: "<button class=\"editor-counters\">\n <div *ngIf=\"hasCharactersCounter\" class=\"eui-u-flex eui-u-flex-column eui-u-mv-2xs\">\n <span class=\"chars-counter\" [class.chars-counter--error]=\"!isMaxLengthValid\">{{ charactersCounter }}</span>\n <span class=\"chars-label\">{{ charactersLabel }}</span>\n </div>\n <div *ngIf=\"hasWordsCounter\" class=\"eui-u-flex eui-u-flex-column eui-u-mv-2xs\">\n <span class=\"words-counter\">{{ wordsCounter }}</span>\n <span class=\"words-label\">{{ wordsLabel }}</span>\n </div>\n</button>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
176
+ /** @nocollapse */ EuiEditorCountersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: EuiEditorCountersComponent, selector: "eui-editor-counters", inputs: { charactersCounter: "charactersCounter", charactersLabel: "charactersLabel", wordsCounter: "wordsCounter", wordsLabel: "wordsLabel", isMaxLengthValid: "isMaxLengthValid", hasCharactersCounter: "hasCharactersCounter", hasWordsCounter: "hasWordsCounter" }, ngImport: i0, template: "<button class=\"editor-counters\">\n <div *ngIf=\"hasCharactersCounter\" class=\"eui-u-flex eui-u-flex-column\" [class.eui-u-mr-2xs]=\"hasWordsCounter\">\n <span class=\"chars-counter\" [class.chars-counter--error]=\"!isMaxLengthValid\">{{ charactersCounter }}</span>\n <span class=\"chars-label\">{{ charactersLabel }}</span>\n </div>\n <div *ngIf=\"hasWordsCounter\" class=\"eui-u-flex eui-u-flex-column eui-u-mv-2xs\">\n <span class=\"words-counter\">{{ wordsCounter }}</span>\n <span class=\"words-label\">{{ wordsLabel }}</span>\n </div>\n</button>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
177
177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EuiEditorCountersComponent, decorators: [{
178
178
  type: Component,
179
- args: [{ selector: 'eui-editor-counters', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button class=\"editor-counters\">\n <div *ngIf=\"hasCharactersCounter\" class=\"eui-u-flex eui-u-flex-column eui-u-mv-2xs\">\n <span class=\"chars-counter\" [class.chars-counter--error]=\"!isMaxLengthValid\">{{ charactersCounter }}</span>\n <span class=\"chars-label\">{{ charactersLabel }}</span>\n </div>\n <div *ngIf=\"hasWordsCounter\" class=\"eui-u-flex eui-u-flex-column eui-u-mv-2xs\">\n <span class=\"words-counter\">{{ wordsCounter }}</span>\n <span class=\"words-label\">{{ wordsLabel }}</span>\n </div>\n</button>\n" }]
179
+ args: [{ selector: 'eui-editor-counters', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button class=\"editor-counters\">\n <div *ngIf=\"hasCharactersCounter\" class=\"eui-u-flex eui-u-flex-column\" [class.eui-u-mr-2xs]=\"hasWordsCounter\">\n <span class=\"chars-counter\" [class.chars-counter--error]=\"!isMaxLengthValid\">{{ charactersCounter }}</span>\n <span class=\"chars-label\">{{ charactersLabel }}</span>\n </div>\n <div *ngIf=\"hasWordsCounter\" class=\"eui-u-flex eui-u-flex-column eui-u-mv-2xs\">\n <span class=\"words-counter\">{{ wordsCounter }}</span>\n <span class=\"words-label\">{{ wordsLabel }}</span>\n </div>\n</button>\n" }]
180
180
  }], propDecorators: { charactersCounter: [{
181
181
  type: Input
182
182
  }], charactersLabel: [{
@@ -1068,7 +1068,7 @@ const euiEditorMinWords = (minWords) => (control) => {
1068
1068
  const content = JSON.parse(control.value)
1069
1069
  .ops.filter((c) => typeof c.insert === 'string')
1070
1070
  .map((c) => c.insert.replace(/\n/g, ' '));
1071
- const jsonStrippedContent = content.join(' ');
1071
+ const jsonStrippedContent = content.join('');
1072
1072
  actual = jsonStrippedContent.trim().split(/\s+/).length;
1073
1073
  }
1074
1074
  else {
@@ -1103,7 +1103,7 @@ const euiEditorMaxWords = (maxWords) => (control) => {
1103
1103
  const content = JSON.parse(control.value)
1104
1104
  .ops.filter((c) => typeof c.insert === 'string')
1105
1105
  .map((c) => c.insert.replace(/\n/g, ' '));
1106
- const jsonStrippedContent = content.join(' ');
1106
+ const jsonStrippedContent = content.join('');
1107
1107
  actual = jsonStrippedContent.trim().split(/\s+/).length;
1108
1108
  }
1109
1109
  else {