myrta-ui 1.1.28 → 1.1.29

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.
@@ -0,0 +1,7 @@
1
+ export var FormulaEditorSizesEnum;
2
+ (function (FormulaEditorSizesEnum) {
3
+ FormulaEditorSizesEnum["small"] = "mrx-formula-editor-sm";
4
+ FormulaEditorSizesEnum["medium"] = "mrx-formula-editor-md";
5
+ FormulaEditorSizesEnum["large"] = "mrx-formula-editor-lg";
6
+ })(FormulaEditorSizesEnum || (FormulaEditorSizesEnum = {}));
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXVsYS1lZGl0b3Itc2l6ZS5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybXVsYS1lZGl0b3IvZW51bXMvZm9ybXVsYS1lZGl0b3Itc2l6ZS5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLHNCQUlYO0FBSkQsV0FBWSxzQkFBc0I7SUFDaEMseURBQWlDLENBQUE7SUFDakMsMERBQWtDLENBQUE7SUFDbEMseURBQWlDLENBQUE7QUFDbkMsQ0FBQyxFQUpXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFJakMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBGb3JtdWxhRWRpdG9yU2l6ZXNFbnVtIHtcclxuICAnc21hbGwnID0gJ21yeC1mb3JtdWxhLWVkaXRvci1zbScsXHJcbiAgJ21lZGl1bScgPSAnbXJ4LWZvcm11bGEtZWRpdG9yLW1kJyxcclxuICAnbGFyZ2UnID0gJ21yeC1mb3JtdWxhLWVkaXRvci1sZycsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEZvcm11bGFFZGl0b3JTaXplc1R5cGVzID0gJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJztcclxuIl19
@@ -6,6 +6,7 @@ import { ErrorMessagesEnum, ErrorTypeEnum } from './enums/error-messages.enum';
6
6
  import { createBracket, createNumber, createOperator, createTag, createTagOutside } from './helpers/create-tags.helper';
7
7
  import { isAn } from '../../../helpers/is-number.helper';
8
8
  import { checkBracketErrors, checkDividerErrors, checkInterpretationErrors, checkSequenceErrors } from './helpers/check-errors.helper';
9
+ import { FormulaEditorSizesEnum } from './enums/formula-editor-size.enum';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "../../error-message/error-message.component";
11
12
  import * as i2 from "../../save-state/save-state.component";
@@ -45,6 +46,7 @@ export class FormulaEditorComponent {
45
46
  this.readonly = false;
46
47
  this.placeholder = '';
47
48
  this.customClasses = '';
49
+ this.size = 'large';
48
50
  // VALIDATE
49
51
  this.invalid = false;
50
52
  this.invalidMessage = '';
@@ -79,7 +81,13 @@ export class FormulaEditorComponent {
79
81
  return this.checkInvalid === false ? 'mrx-input-checked-success' : this.checkInvalid === true ? 'mrx-input-checked-error' : '';
80
82
  }
81
83
  get getClasses() {
82
- return `${this.customClasses} ${this.readonlyClass} ${this.checkValidClasses}`;
84
+ return `${FormulaEditorSizesEnum[this.size]} ${this.customClasses} ${this.readonlyClass} ${this.checkValidClasses}`;
85
+ }
86
+ get getIconClass() {
87
+ return `${this.size !== 'large' ? 'icon-font-16' : 'icon-font-24'}`;
88
+ }
89
+ get canClean() {
90
+ return !!this.visibleValue.trim();
83
91
  }
84
92
  get _inputValue() {
85
93
  return this.inputElement.nativeElement.textContent || '';
@@ -93,19 +101,28 @@ export class FormulaEditorComponent {
93
101
  }
94
102
  }
95
103
  onInput(event) {
96
- const { searchText } = this._transformValue(this._modifiedValue(this._inputValue), false);
97
- // this.updateValue(value);
104
+ const { value, searchText } = this._transformValue(this._modifiedValue(this._inputValue), false);
105
+ this.updateValue(value);
98
106
  this.searchText = searchText;
99
107
  this._storeCursorPosition();
100
108
  }
101
- onBlur(event) {
102
- this._storeCursorPosition();
103
- this.blurred.emit({ value: this.value, id: this.uuid });
104
- }
105
109
  onFocus(event) {
106
110
  this.isFocused = true;
107
111
  this._detector.markForCheck();
108
112
  }
113
+ onClear() {
114
+ this.updateValue('');
115
+ this.updateVisibleValue('');
116
+ }
117
+ onBlur(event) {
118
+ this._storeCursorPosition();
119
+ }
120
+ onKeyup(event) {
121
+ event.preventDefault();
122
+ this.inputElement.nativeElement.blur();
123
+ this.isFocused = false;
124
+ this._detector.detectChanges();
125
+ }
109
126
  insertTag(whiteListItem) {
110
127
  this._restoreCursorPosition(this.inputElement.nativeElement);
111
128
  this._insertPositionText(`{${whiteListItem.sysName}}`);
@@ -224,12 +241,6 @@ export class FormulaEditorComponent {
224
241
  this._range.setStart(this._cursorPosition.startContainer, this._cursorPosition.startOffset);
225
242
  this._range.setEnd(this._cursorPosition.endContainer, this._cursorPosition.endOffset);
226
243
  }
227
- this._selection = document.getSelection();
228
- if (this._selection) {
229
- // this._selection.removeAllRanges();
230
- // this._selection.addRange(this._range);
231
- // element.focus();
232
- }
233
244
  }
234
245
  _placeCaretAtEnd() {
235
246
  setTimeout(() => {
@@ -260,18 +271,18 @@ export class FormulaEditorComponent {
260
271
  }
261
272
  }
262
273
  FormulaEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorComponent, deps: [{ token: DOCUMENT }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
263
- FormulaEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FormulaEditorComponent, selector: "mrx-formula-editor", inputs: { fields: "fields", disabled: "disabled", readonly: "readonly", placeholder: "placeholder", customClasses: "customClasses", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid", items: "items" }, outputs: { changed: "changed", blurred: "blurred", modelChange: "modelChange" }, host: { listeners: { "document:click": "clickOut($event)" } }, providers: [{
274
+ FormulaEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FormulaEditorComponent, selector: "mrx-formula-editor", inputs: { fields: "fields", disabled: "disabled", readonly: "readonly", placeholder: "placeholder", customClasses: "customClasses", size: "size", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid", items: "items" }, outputs: { changed: "changed", blurred: "blurred", modelChange: "modelChange" }, host: { listeners: { "document:click": "clickOut($event)" } }, providers: [{
264
275
  provide: NG_VALUE_ACCESSOR,
265
276
  useExisting: forwardRef(() => FormulaEditorComponent),
266
277
  multi: true
267
- }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, static: true }], ngImport: i0, template: "<div\r\n class=\"mrx-formula-editor\"\r\n [class.mrx-input-error]=\"getInvalid\"\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [class]=\"getClasses\"\r\n>\r\n <div class=\"mrx-formula-editor__wrapper\">\r\n <div\r\n [innerHTML]=\"visibleValue.trim() | safe\"\r\n #inputElement\r\n class=\"mrx-formula-editor__box\"\r\n contenteditable=\"true\"\r\n [attr.data-ph]=\"placeholder\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (focus)=\"onFocus($event)\"\r\n ></div>\r\n\r\n <div class=\"mrx-formula-editor__popup\" *ngIf=\"isFocused\">\r\n <ng-container *ngIf=\"errorModel.isError && isFocused\">\r\n <div class=\"mrx-formula-editor__popup--error\">\r\n {{ getErrorMessage }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"filteredList.length; else emptyList\">\r\n <div\r\n class=\"mrx-formula-editor__popup--row\"\r\n *ngFor=\"let item of filteredList\"\r\n (click)=\"insertTag(item); $event.stopPropagation()\"\r\n >\r\n {{ item.label }}\r\n </div>\r\n </ng-container>\r\n <ng-template #emptyList>\r\n <div class=\"mrx-formula-editor__popup--row\">\r\n \u041D\u0435\u0442 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <mrx-error-message\r\n *ngIf=\"getInvalid && getErrorMessage && !isFocused\"\r\n [invalidMessage]=\"getErrorMessage\"\r\n ></mrx-error-message>\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n", styles: [".mrx-formula-editor{position:relative}.mrx-formula-editor__box{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:36px;padding:5px var(--spacing-3, 12px) 5px var(--spacing-2, 8px);border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1, 4px);outline:none;color:var(--neutral-text-primary, #262626);transition:outline-width .2s,border .2s;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space}.mrx-formula-editor__box:focus,.mrx-formula-editor__box:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-formula-editor__wrapper{position:relative}.mrx-formula-editor__box ::ng-deep .tag{display:inline-flex;font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px);border-radius:var(--border-radius-1, 4px);background:var(--brand-bg-secondary-default, #EDF5FF);padding:6px 12px;margin:0 2px;cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__box ::ng-deep .bracket{display:inline-flex;font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px);color:var(--neutral-text-tertiary, #71767E);cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__box ::ng-deep .operator{display:inline-flex;font-family:var(--body-lg-font-family, \"PT Sans\");font-size:var(--body-lg-font-size, 16px);font-weight:var(--body-lg-font-weight, 400);line-height:var(--body-lg-line-height, 24px);color:var(--system-text-attention, #AC5C06);cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__box ::ng-deep .number{display:inline-flex;font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px);color:var(--system-text-negative, #8E2100);cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__popup{position:absolute;z-index:99;width:100%;border-radius:var(--border-radius-1);background:var(--neutral-bg-island-default, #F8F9FA);box-shadow:0 1px 4px #3a3a3a4d;background-color:#fff;max-height:240px;overflow-x:hidden;overflow-y:auto;margin-top:4px}.mrx-formula-editor__popup--error{padding:var(--spacing-2) var(--spacing-4);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--system-text-negative, #8E2100)}.mrx-formula-editor__popup--row{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding:calc(var(--spacing-2) + var(--spacing-half)) var(--spacing-4);white-space:normal;transition:background-color .2s}.mrx-formula-editor__popup--row:hover{cursor:pointer;background-color:var(--Bg2)!important}.mrx-formula-editor__box:empty:not(:focus):before{content:attr(data-ph);color:var(--neutral-text-tertiary, #71767E);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);padding-left:8px}.mrx-formula-editor.-disabled .mrx-formula-editor__box{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-tertiary, #71767E);pointer-events:none}.mrx-formula-editor.-readonly .mrx-formula-editor__box{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-primary, #262626);pointer-events:none}.mrx-formula-editor.mrx-input-error .mrx-formula-editor__box{border-color:var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-error .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-checked-error .mrx-formula-editor__box{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-formula-editor.mrx-input-checked-error .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-checked-success .mrx-formula-editor__box{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-formula-editor.mrx-input-checked-success .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}\n"], components: [{ type: i1.ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }, { type: i2.SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "safe": i4.SafePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
278
+ }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, static: true }], ngImport: i0, template: "<div\r\n class=\"mrx-formula-editor\"\r\n [class.mrx-input-error]=\"getInvalid\"\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [class]=\"getClasses\"\r\n>\r\n <div class=\"mrx-formula-editor__wrapper\">\r\n <div\r\n [innerHTML]=\"visibleValue.trim() | safe\"\r\n #inputElement\r\n class=\"mrx-formula-editor__box\"\r\n contenteditable=\"true\"\r\n [attr.data-ph]=\"placeholder\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (focus)=\"onFocus($event)\"\r\n (keydown.enter)=\"onKeyup($event)\"\r\n (keydown.tab)=\"onKeyup($event)\"\r\n ></div>\r\n\r\n <div class=\"mrx-formula-editor__clear\" *ngIf=\"canClean\" (click)=\"onClear()\">\r\n <div class=\"mrx-icon icon-close\" [class]=\"getIconClass\"></div>\r\n </div>\r\n\r\n <div class=\"mrx-formula-editor__popup\" *ngIf=\"isFocused\">\r\n <ng-container *ngIf=\"errorModel.isError && isFocused\">\r\n <div class=\"mrx-formula-editor__popup--error\">\r\n {{ getErrorMessage }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"filteredList.length; else emptyList\">\r\n <div\r\n class=\"mrx-formula-editor__popup--row\"\r\n *ngFor=\"let item of filteredList\"\r\n (click)=\"insertTag(item); $event.stopPropagation()\"\r\n >\r\n {{ item.label }}\r\n </div>\r\n </ng-container>\r\n <ng-template #emptyList>\r\n <div class=\"mrx-formula-editor__popup--row\">\r\n \u041D\u0435\u0442 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <mrx-error-message\r\n *ngIf=\"getInvalid && getErrorMessage && !isFocused\"\r\n [invalidMessage]=\"getErrorMessage\"\r\n ></mrx-error-message>\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n", styles: [".mrx-formula-editor{position:relative}.mrx-formula-editor__box{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1, 4px);outline:none;color:var(--neutral-text-primary, #262626);transition:outline-width .2s,border .2s;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space}.mrx-formula-editor__box:focus,.mrx-formula-editor__box:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-formula-editor__wrapper{position:relative}.mrx-formula-editor__clear{position:absolute;top:12px;right:12px;cursor:pointer}.mrx-formula-editor__box ::ng-deep .tag{display:inline-flex;cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__box ::ng-deep .argument{border-radius:var(--border-radius-1, 4px);background:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-formula-editor__box ::ng-deep .bracket{color:var(--neutral-text-tertiary, #71767E)}.mrx-formula-editor__box ::ng-deep .operator{color:var(--system-text-attention, #AC5C06)}.mrx-formula-editor__box ::ng-deep .number{color:var(--system-text-negative, #8E2100)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box{padding:5px 44px 5px var(--spacing-2, 8px);font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:36px}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-lg-font-family, \"PT Sans\");font-size:var(--body-lg-font-size, 16px);font-weight:var(--body-lg-font-weight, 400);line-height:var(--body-lg-line-height, 24px)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.argument{padding:6px 12px;margin:0 2px}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box{padding:5px 36px 5px var(--spacing-2, 8px);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:28px}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-weight:var(--body-sm-font-weight, 400);line-height:var(--body-sm-line-height, 16px)}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.argument{padding:4px 8px;margin:0 2px}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box{padding:5px 36px 5px var(--spacing-2, 8px);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:28px}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-weight:var(--body-sm-font-weight, 400);line-height:var(--body-sm-line-height, 16px)}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.argument{padding:4px 8px;margin:0 2px}.mrx-formula-editor__popup{position:absolute;z-index:99;width:100%;border-radius:var(--border-radius-1);background:var(--neutral-bg-island-default, #F8F9FA);box-shadow:0 1px 4px #3a3a3a4d;background-color:#fff;max-height:240px;overflow-x:hidden;overflow-y:auto;margin-top:4px}.mrx-formula-editor__popup--error{padding:var(--spacing-2) var(--spacing-4);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--system-text-negative, #8E2100)}.mrx-formula-editor__popup--row{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding:calc(var(--spacing-2) + var(--spacing-half)) var(--spacing-4);white-space:normal;transition:background-color .2s}.mrx-formula-editor__popup--row:hover{cursor:pointer;background-color:var(--Bg2)!important}.mrx-formula-editor__box:empty:not(:focus):before{content:attr(data-ph);color:var(--neutral-text-tertiary, #71767E);padding-left:8px}.mrx-formula-editor.-disabled .mrx-formula-editor__box{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-tertiary, #71767E);pointer-events:none}.mrx-formula-editor.-readonly .mrx-formula-editor__box{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-primary, #262626);pointer-events:none}.mrx-formula-editor.mrx-input-error .mrx-formula-editor__box{border-color:var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-error .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-checked-error .mrx-formula-editor__box{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-formula-editor.mrx-input-checked-error .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-checked-success .mrx-formula-editor__box{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-formula-editor.mrx-input-checked-success .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}\n"], components: [{ type: i1.ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }, { type: i2.SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "safe": i4.SafePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
268
279
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorComponent, decorators: [{
269
280
  type: Component,
270
281
  args: [{ selector: 'mrx-formula-editor', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{
271
282
  provide: NG_VALUE_ACCESSOR,
272
283
  useExisting: forwardRef(() => FormulaEditorComponent),
273
284
  multi: true
274
- }], template: "<div\r\n class=\"mrx-formula-editor\"\r\n [class.mrx-input-error]=\"getInvalid\"\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [class]=\"getClasses\"\r\n>\r\n <div class=\"mrx-formula-editor__wrapper\">\r\n <div\r\n [innerHTML]=\"visibleValue.trim() | safe\"\r\n #inputElement\r\n class=\"mrx-formula-editor__box\"\r\n contenteditable=\"true\"\r\n [attr.data-ph]=\"placeholder\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (focus)=\"onFocus($event)\"\r\n ></div>\r\n\r\n <div class=\"mrx-formula-editor__popup\" *ngIf=\"isFocused\">\r\n <ng-container *ngIf=\"errorModel.isError && isFocused\">\r\n <div class=\"mrx-formula-editor__popup--error\">\r\n {{ getErrorMessage }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"filteredList.length; else emptyList\">\r\n <div\r\n class=\"mrx-formula-editor__popup--row\"\r\n *ngFor=\"let item of filteredList\"\r\n (click)=\"insertTag(item); $event.stopPropagation()\"\r\n >\r\n {{ item.label }}\r\n </div>\r\n </ng-container>\r\n <ng-template #emptyList>\r\n <div class=\"mrx-formula-editor__popup--row\">\r\n \u041D\u0435\u0442 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <mrx-error-message\r\n *ngIf=\"getInvalid && getErrorMessage && !isFocused\"\r\n [invalidMessage]=\"getErrorMessage\"\r\n ></mrx-error-message>\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n", styles: [".mrx-formula-editor{position:relative}.mrx-formula-editor__box{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:36px;padding:5px var(--spacing-3, 12px) 5px var(--spacing-2, 8px);border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1, 4px);outline:none;color:var(--neutral-text-primary, #262626);transition:outline-width .2s,border .2s;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space}.mrx-formula-editor__box:focus,.mrx-formula-editor__box:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-formula-editor__wrapper{position:relative}.mrx-formula-editor__box ::ng-deep .tag{display:inline-flex;font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px);border-radius:var(--border-radius-1, 4px);background:var(--brand-bg-secondary-default, #EDF5FF);padding:6px 12px;margin:0 2px;cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__box ::ng-deep .bracket{display:inline-flex;font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px);color:var(--neutral-text-tertiary, #71767E);cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__box ::ng-deep .operator{display:inline-flex;font-family:var(--body-lg-font-family, \"PT Sans\");font-size:var(--body-lg-font-size, 16px);font-weight:var(--body-lg-font-weight, 400);line-height:var(--body-lg-line-height, 24px);color:var(--system-text-attention, #AC5C06);cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__box ::ng-deep .number{display:inline-flex;font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px);color:var(--system-text-negative, #8E2100);cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__popup{position:absolute;z-index:99;width:100%;border-radius:var(--border-radius-1);background:var(--neutral-bg-island-default, #F8F9FA);box-shadow:0 1px 4px #3a3a3a4d;background-color:#fff;max-height:240px;overflow-x:hidden;overflow-y:auto;margin-top:4px}.mrx-formula-editor__popup--error{padding:var(--spacing-2) var(--spacing-4);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--system-text-negative, #8E2100)}.mrx-formula-editor__popup--row{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding:calc(var(--spacing-2) + var(--spacing-half)) var(--spacing-4);white-space:normal;transition:background-color .2s}.mrx-formula-editor__popup--row:hover{cursor:pointer;background-color:var(--Bg2)!important}.mrx-formula-editor__box:empty:not(:focus):before{content:attr(data-ph);color:var(--neutral-text-tertiary, #71767E);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);padding-left:8px}.mrx-formula-editor.-disabled .mrx-formula-editor__box{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-tertiary, #71767E);pointer-events:none}.mrx-formula-editor.-readonly .mrx-formula-editor__box{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-primary, #262626);pointer-events:none}.mrx-formula-editor.mrx-input-error .mrx-formula-editor__box{border-color:var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-error .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-checked-error .mrx-formula-editor__box{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-formula-editor.mrx-input-checked-error .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-checked-success .mrx-formula-editor__box{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-formula-editor.mrx-input-checked-success .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}\n"] }]
285
+ }], template: "<div\r\n class=\"mrx-formula-editor\"\r\n [class.mrx-input-error]=\"getInvalid\"\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [class]=\"getClasses\"\r\n>\r\n <div class=\"mrx-formula-editor__wrapper\">\r\n <div\r\n [innerHTML]=\"visibleValue.trim() | safe\"\r\n #inputElement\r\n class=\"mrx-formula-editor__box\"\r\n contenteditable=\"true\"\r\n [attr.data-ph]=\"placeholder\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (focus)=\"onFocus($event)\"\r\n (keydown.enter)=\"onKeyup($event)\"\r\n (keydown.tab)=\"onKeyup($event)\"\r\n ></div>\r\n\r\n <div class=\"mrx-formula-editor__clear\" *ngIf=\"canClean\" (click)=\"onClear()\">\r\n <div class=\"mrx-icon icon-close\" [class]=\"getIconClass\"></div>\r\n </div>\r\n\r\n <div class=\"mrx-formula-editor__popup\" *ngIf=\"isFocused\">\r\n <ng-container *ngIf=\"errorModel.isError && isFocused\">\r\n <div class=\"mrx-formula-editor__popup--error\">\r\n {{ getErrorMessage }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"filteredList.length; else emptyList\">\r\n <div\r\n class=\"mrx-formula-editor__popup--row\"\r\n *ngFor=\"let item of filteredList\"\r\n (click)=\"insertTag(item); $event.stopPropagation()\"\r\n >\r\n {{ item.label }}\r\n </div>\r\n </ng-container>\r\n <ng-template #emptyList>\r\n <div class=\"mrx-formula-editor__popup--row\">\r\n \u041D\u0435\u0442 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <mrx-error-message\r\n *ngIf=\"getInvalid && getErrorMessage && !isFocused\"\r\n [invalidMessage]=\"getErrorMessage\"\r\n ></mrx-error-message>\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n", styles: [".mrx-formula-editor{position:relative}.mrx-formula-editor__box{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1, 4px);outline:none;color:var(--neutral-text-primary, #262626);transition:outline-width .2s,border .2s;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space}.mrx-formula-editor__box:focus,.mrx-formula-editor__box:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-formula-editor__wrapper{position:relative}.mrx-formula-editor__clear{position:absolute;top:12px;right:12px;cursor:pointer}.mrx-formula-editor__box ::ng-deep .tag{display:inline-flex;cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__box ::ng-deep .argument{border-radius:var(--border-radius-1, 4px);background:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-formula-editor__box ::ng-deep .bracket{color:var(--neutral-text-tertiary, #71767E)}.mrx-formula-editor__box ::ng-deep .operator{color:var(--system-text-attention, #AC5C06)}.mrx-formula-editor__box ::ng-deep .number{color:var(--system-text-negative, #8E2100)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box{padding:5px 44px 5px var(--spacing-2, 8px);font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:36px}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-lg-font-family, \"PT Sans\");font-size:var(--body-lg-font-size, 16px);font-weight:var(--body-lg-font-weight, 400);line-height:var(--body-lg-line-height, 24px)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.argument{padding:6px 12px;margin:0 2px}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box{padding:5px 36px 5px var(--spacing-2, 8px);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:28px}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-weight:var(--body-sm-font-weight, 400);line-height:var(--body-sm-line-height, 16px)}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.argument{padding:4px 8px;margin:0 2px}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box{padding:5px 36px 5px var(--spacing-2, 8px);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:28px}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-weight:var(--body-sm-font-weight, 400);line-height:var(--body-sm-line-height, 16px)}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.argument{padding:4px 8px;margin:0 2px}.mrx-formula-editor__popup{position:absolute;z-index:99;width:100%;border-radius:var(--border-radius-1);background:var(--neutral-bg-island-default, #F8F9FA);box-shadow:0 1px 4px #3a3a3a4d;background-color:#fff;max-height:240px;overflow-x:hidden;overflow-y:auto;margin-top:4px}.mrx-formula-editor__popup--error{padding:var(--spacing-2) var(--spacing-4);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--system-text-negative, #8E2100)}.mrx-formula-editor__popup--row{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding:calc(var(--spacing-2) + var(--spacing-half)) var(--spacing-4);white-space:normal;transition:background-color .2s}.mrx-formula-editor__popup--row:hover{cursor:pointer;background-color:var(--Bg2)!important}.mrx-formula-editor__box:empty:not(:focus):before{content:attr(data-ph);color:var(--neutral-text-tertiary, #71767E);padding-left:8px}.mrx-formula-editor.-disabled .mrx-formula-editor__box{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-tertiary, #71767E);pointer-events:none}.mrx-formula-editor.-readonly .mrx-formula-editor__box{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-primary, #262626);pointer-events:none}.mrx-formula-editor.mrx-input-error .mrx-formula-editor__box{border-color:var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-error .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-checked-error .mrx-formula-editor__box{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-formula-editor.mrx-input-checked-error .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-checked-success .mrx-formula-editor__box{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-formula-editor.mrx-input-checked-success .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}\n"] }]
275
286
  }], ctorParameters: function () { return [{ type: Document, decorators: [{
276
287
  type: Inject,
277
288
  args: [DOCUMENT]
@@ -285,6 +296,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
285
296
  type: Input
286
297
  }], customClasses: [{
287
298
  type: Input
299
+ }], size: [{
300
+ type: Input
288
301
  }], invalid: [{
289
302
  type: Input
290
303
  }], invalidMessage: [{
@@ -306,4 +319,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
306
319
  type: HostListener,
307
320
  args: ['document:click', ['$event']]
308
321
  }] } });
309
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXVsYS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybXVsYS1lZGl0b3IvZm9ybXVsYS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybXVsYS1lZGl0b3IvZm9ybXVsYS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQWMsWUFBWSxFQUNuQyxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQ3ZDLE1BQU0sRUFBRSxTQUFTLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4SCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFekQsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLG1CQUFtQixFQUNwQixNQUFNLCtCQUErQixDQUFDOzs7Ozs7QUFjdkMsTUFBTSxPQUFPLHNCQUFzQjtJQWlFakMsWUFDNEIsUUFBa0Is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QUFDLHNCQUFzQixDQUFDO1lBQ3JELEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxzSkMvQkoseXFEQWlEQTsyRkRoQmEsc0JBQXNCO2tCQVhsQyxTQUFTOytCQUNFLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUM7NEJBQ1YsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUM7NEJBQ3JELEtBQUssRUFBRSxJQUFJO3lCQUNaLENBQUM7MERBb0VvQyxRQUFROzBCQUEzQyxNQUFNOzJCQUFDLFFBQVE7cUdBNUJGLE1BQU07c0JBQXJCLEtBQUs7Z0JBRVUsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFHVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFHRixLQUFLO3NCQURSLEtBQUs7Z0JBU3FDLFlBQVk7c0JBQXRELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFFeEIsT0FBTztzQkFBdkIsTUFBTTtnQkFDVSxPQUFPO3NCQUF2QixNQUFNO2dCQUNVLFdBQVc7c0JBQTNCLE1BQU07Z0JBNE9QLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCxcclxuICBPdXRwdXQsIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgRXJyb3JNZXNzYWdlc0VudW0sIEVycm9yVHlwZUVudW0gfSBmcm9tICcuL2VudW1zL2Vycm9yLW1lc3NhZ2VzLmVudW0nO1xyXG5pbXBvcnQgeyBjcmVhdGVCcmFja2V0LCBjcmVhdGVOdW1iZXIsIGNyZWF0ZU9wZXJhdG9yLCBjcmVhdGVUYWcsIGNyZWF0ZVRhZ091dHNpZGUgfSBmcm9tICcuL2hlbHBlcnMvY3JlYXRlLXRhZ3MuaGVscGVyJztcclxuaW1wb3J0IHsgaXNBbiB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvaXMtbnVtYmVyLmhlbHBlcic7XHJcbmltcG9ydCB7IFdoaXRlTGlzdEl0ZW1Nb2RlbCwgQ2hlY2tFcnJvclJlc3VsdE1vZGVsIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQge1xyXG4gIGNoZWNrQnJhY2tldEVycm9ycyxcclxuICBjaGVja0RpdmlkZXJFcnJvcnMsXHJcbiAgY2hlY2tJbnRlcnByZXRhdGlvbkVycm9ycyxcclxuICBjaGVja1NlcXVlbmNlRXJyb3JzXHJcbn0gZnJvbSAnLi9oZWxwZXJzL2NoZWNrLWVycm9ycy5oZWxwZXInO1xyXG5pbXBvcnQgeyBGb3JtdWxhRWRpdG9yVmFsdWVUeXBlcywgRm9ybXVsYUVkaXRvclZhbHVlV2l0aElkIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtcngtZm9ybXVsYS1lZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtdWxhLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybXVsYS1lZGl0b3IuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvcm11bGFFZGl0b3JDb21wb25lbnQpLFxyXG4gICAgbXVsdGk6IHRydWVcclxuICB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybXVsYUVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBwcml2YXRlIF9yYW5nZTogYW55O1xyXG4gIHByaXZhdGUgX3NlbGVjdGlvbjogU2VsZWN0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfY3Vyc29yUG9zaXRpb246IHtcclxuICAgIHN0YXJ0Q29udGFpbmVyOiBOb2RlIHwgbnVsbCxcclxuICAgIGVuZENvbnRhaW5lcjogTm9kZSB8IG51bGwsXHJcbiAgICBzdGFydE9mZnNldDogbnVtYmVyLFxyXG4gICAgZW5kT2Zmc2V0OiBudW1iZXJcclxuICB9ID0ge1xyXG4gICAgc3RhcnRDb250YWluZXI6IG51bGwsXHJcbiAgICBlbmRDb250YWluZXI6IG51bGwsXHJcbiAgICBzdGFydE9mZnNldDogMCxcclxuICAgIGVuZE9mZnNldDogMFxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgc2VhcmNoVGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG5cclxuICBwcml2YXRlIF9vcGVyYXRvckxpc3Q6IHN0cmluZ1tdID0gWycrJywgJy0nLCAnKicsICcvJ107XHJcbiAgcHJpdmF0ZSBfYnJhY2tldExpc3Q6IHN0cmluZ1tdID0gWycoJywgJyknXTtcclxuICBwcml2YXRlIF9pdGVtTGlzdDogV2hpdGVMaXN0SXRlbU1vZGVsW10gPSBbXTtcclxuICBwcml2YXRlIF9tb2RpZmllZEl0ZW1MaXN0OiB7IGl0ZW1zOiB7IFtwOiBzdHJpbmddOiBzdHJpbmcgfSwgcmVnRXhwOiBSZWdFeHAgfSA9IHtcclxuICAgIGl0ZW1zOiB7fSxcclxuICAgIHJlZ0V4cDogbmV3IFJlZ0V4cCgnJyksXHJcbiAgfTtcclxuXHJcbiAgcHVibGljIHZhbHVlID0gJyc7XHJcbiAgcHVibGljIHZpc2libGVWYWx1ZSA9ICcnO1xyXG5cclxuICBwdWJsaWMgaXNGb2N1c2VkID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBlcnJvck1vZGVsOiBDaGVja0Vycm9yUmVzdWx0TW9kZWwgPSB7XHJcbiAgICBpc0Vycm9yOiBmYWxzZSxcclxuICAgIGVycm9yVHlwZTogRXJyb3JUeXBlRW51bS5EZWZhdWx0XHJcbiAgfTtcclxuXHJcbiAgLy8gU0FWRSBTVEFURVxyXG4gIHB1YmxpYyB1dWlkOiBzdHJpbmcgPSB1dWlkdjQoKTtcclxuICBASW5wdXQoKSBwdWJsaWMgZmllbGRzOiBGaWVsZFtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlciA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21DbGFzc2VzID0gJyc7XHJcblxyXG4gIC8vIFZBTElEQVRFXHJcbiAgQElucHV0KCkgcHVibGljIGludmFsaWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZE1lc3NhZ2U6IHN0cmluZyB8IHN0cmluZ1tdID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGNoZWNrSW52YWxpZDogdHJ1ZSB8IGZhbHNlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGl0ZW1zKGl0ZW1zOiBXaGl0ZUxpc3RJdGVtTW9kZWxbXSkge1xyXG4gICAgY29uc3QgaXRlbXNNYXAgPSBPYmplY3QuZnJvbUVudHJpZXMoaXRlbXMubWFwKG9iaiA9PiBbb2JqLmxhYmVsLCBvYmouc3lzTmFtZV0pKTtcclxuXHJcbiAgICB0aGlzLl9pdGVtTGlzdCA9IGl0ZW1zO1xyXG4gICAgdGhpcy5fbW9kaWZpZWRJdGVtTGlzdC5pdGVtcyA9IGl0ZW1zTWFwO1xyXG4gICAgdGhpcy5fbW9kaWZpZWRJdGVtTGlzdC5yZWdFeHAgPSBuZXcgUmVnRXhwKGl0ZW1zLm1hcChzID0+IHMubGFiZWwpLmpvaW4oJ3wnKSwgJ2cnKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudCcsIHtzdGF0aWM6IHRydWV9KSBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxGb3JtdWxhRWRpdG9yVmFsdWVUeXBlcz4gPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm11bGFFZGl0b3JWYWx1ZVR5cGVzPigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgYmx1cnJlZDogRXZlbnRFbWl0dGVyPEZvcm11bGFFZGl0b3JWYWx1ZVdpdGhJZD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm11bGFFZGl0b3JWYWx1ZVdpdGhJZD4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIG1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Rm9ybXVsYUVkaXRvclZhbHVlV2l0aElkPiA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybXVsYUVkaXRvclZhbHVlV2l0aElkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxyXG4gICAgcHJpdmF0ZSBfZGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBlUmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldEVycm9yTWVzc2FnZSgpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkTWVzc2FnZSB8fCBFcnJvck1lc3NhZ2VzRW51bVt0aGlzLmVycm9yTW9kZWwuZXJyb3JUeXBlXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZmlsdGVyZWRMaXN0KCk6IFdoaXRlTGlzdEl0ZW1Nb2RlbFtdIHtcclxuICAgIHJldHVybiB0aGlzLl9pdGVtTGlzdC5maWx0ZXIoaXRlbSA9PiBpdGVtLmxhYmVsLmluY2x1ZGVzKHRoaXMuc2VhcmNoVGV4dCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRJbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZXJyb3JNb2RlbC5pc0Vycm9yIHx8IHRoaXMuaW52YWxpZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcmVhZG9ubHlDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucmVhZG9ubHkgPyAnbXJ4LWlucHV0X19yZWFkb25seScgOiAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY2hlY2tWYWxpZENsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrSW52YWxpZCA9PT0gZmFsc2UgPyAnbXJ4LWlucHV0LWNoZWNrZWQtc3VjY2VzcycgOiB0aGlzLmNoZWNrSW52YWxpZCA9PT0gdHJ1ZSA/ICdtcngtaW5wdXQtY2hlY2tlZC1lcnJvcicgOiAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuY3VzdG9tQ2xhc3Nlc30gJHt0aGlzLnJlYWRvbmx5Q2xhc3N9ICR7dGhpcy5jaGVja1ZhbGlkQ2xhc3Nlc31gO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgX2lucHV0VmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50IHx8ICcnO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZShvdXRzaWRlVmFsdWU6IEZvcm11bGFFZGl0b3JWYWx1ZVR5cGVzKTogdm9pZCB7XHJcbiAgICBpZiAob3V0c2lkZVZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgIGNvbnN0IHt2aXNpYmxlVmFsdWV9ID0gdGhpcy5fdHJhbnNmb3JtVmFsdWUodGhpcy5fbW9kaWZpZWRWYWx1ZShvdXRzaWRlVmFsdWUpKTtcclxuXHJcbiAgICAgIHRoaXMudmFsdWUgPSBvdXRzaWRlVmFsdWU7XHJcbiAgICAgIHRoaXMudmlzaWJsZVZhbHVlID0gdmlzaWJsZVZhbHVlO1xyXG5cclxuICAgICAgdGhpcy5fZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25JbnB1dChldmVudDogRXZlbnQpIHtcclxuICAgIGNvbnN0IHtzZWFyY2hUZXh0fSA9IHRoaXMuX3RyYW5zZm9ybVZhbHVlKHRoaXMuX21vZGlmaWVkVmFsdWUodGhpcy5faW5wdXRWYWx1ZSksIGZhbHNlKTtcclxuXHJcbiAgICAvLyB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcclxuICAgIHRoaXMuc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQ7XHJcblxyXG4gICAgdGhpcy5fc3RvcmVDdXJzb3JQb3NpdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5fc3RvcmVDdXJzb3JQb3NpdGlvbigpO1xyXG4gICAgdGhpcy5ibHVycmVkLmVtaXQoe3ZhbHVlOiB0aGlzLnZhbHVlLCBpZDogdGhpcy51dWlkfSk7XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzKGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5fZGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBpbnNlcnRUYWcod2hpdGVMaXN0SXRlbTogV2hpdGVMaXN0SXRlbU1vZGVsKSB7XHJcbiAgICB0aGlzLl9yZXN0b3JlQ3Vyc29yUG9zaXRpb24odGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcbiAgICB0aGlzLl9pbnNlcnRQb3NpdGlvblRleHQoYHske3doaXRlTGlzdEl0ZW0uc3lzTmFtZX19YCk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHt2YWx1ZSwgdmlzaWJsZVZhbHVlfSA9IHRoaXMuX3RyYW5zZm9ybVZhbHVlKHRoaXMuX21vZGlmaWVkVmFsdWUodGhpcy5faW5wdXRWYWx1ZSksIGZhbHNlKTtcclxuXHJcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xyXG4gICAgICB0aGlzLnVwZGF0ZVZpc2libGVWYWx1ZSh2aXNpYmxlVmFsdWUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fcGxhY2VDYXJldEF0RW5kKCk7XHJcblxyXG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gJyc7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVWaXNpYmxlVmFsdWUoaW5zaWRlVmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy52aXNpYmxlVmFsdWUgPSBpbnNpZGVWYWx1ZTtcclxuXHJcbiAgICB0aGlzLl9zdG9yZUN1cnNvclBvc2l0aW9uKCk7XHJcblxyXG4gICAgdGhpcy5fZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVmFsdWUoaW5zaWRlVmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy52YWx1ZSA9IGluc2lkZVZhbHVlO1xyXG4gICAgdGhpcy5jaGFuZ2VkLmVtaXQoaW5zaWRlVmFsdWUpO1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHt2YWx1ZTogaW5zaWRlVmFsdWUsIGlkOiB0aGlzLnV1aWR9KTtcclxuICAgIHRoaXMub25DaGFuZ2UoaW5zaWRlVmFsdWUpO1xyXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX21vZGlmaWVkVmFsdWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZSh0aGlzLl9tb2RpZmllZEl0ZW1MaXN0LnJlZ0V4cCwgbWF0Y2ggPT4gYHske3RoaXMuX21vZGlmaWVkSXRlbUxpc3QuaXRlbXNbbWF0Y2hdfX1gKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RyYW5zZm9ybVZhbHVlKGNvbnRlbnQ6IHN0cmluZywgYW5hbGlzZTogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICBjb25zdCB2YWx1ZUFycmF5ID0gY29udGVudC5zcGxpdCgvW1xcc1xcdTAwQTBdKy8pLmZpbHRlcihCb29sZWFuKTtcclxuXHJcbiAgICBjb25zdCB2aXNpYmxlVmFsdWVBcnJheTogc3RyaW5nW10gPSBbXTtcclxuICAgIGNvbnN0IG9yaWdpbmFsVmFsdWVBcnJheTogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICBsZXQgaXNJbnRlcnByZXRhdGlvbkVycm9yID0gZmFsc2U7XHJcblxyXG4gICAgbGV0IHNlYXJjaFRleHQgPSAnJztcclxuXHJcbiAgICB2YWx1ZUFycmF5LmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgY29uc3QgY2xlYXJlZEl0ZW0gPSBpdGVtLnRyaW0oKTtcclxuICAgICAgY29uc3QgZmluZEl0ZW0gPSB0aGlzLl9pdGVtTGlzdC5maW5kKHYgPT4gY2xlYXJlZEl0ZW0uaW5jbHVkZXModi5zeXNOYW1lKSk7XHJcblxyXG4gICAgICBpZiAoZmluZEl0ZW0pIHtcclxuICAgICAgICB2aXNpYmxlVmFsdWVBcnJheS5wdXNoKGNyZWF0ZVRhZyhmaW5kSXRlbS5sYWJlbCkpO1xyXG4gICAgICAgIG9yaWdpbmFsVmFsdWVBcnJheS5wdXNoKGNyZWF0ZVRhZ091dHNpZGUoZmluZEl0ZW0uc3lzTmFtZSkpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX2JyYWNrZXRMaXN0LmZpbmQodiA9PiB2ID09PSBjbGVhcmVkSXRlbSkpIHtcclxuICAgICAgICB2aXNpYmxlVmFsdWVBcnJheS5wdXNoKGNyZWF0ZUJyYWNrZXQoY2xlYXJlZEl0ZW0pKTtcclxuICAgICAgICBvcmlnaW5hbFZhbHVlQXJyYXkucHVzaChjbGVhcmVkSXRlbSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fb3BlcmF0b3JMaXN0LmZpbmQodiA9PiB2ID09PSBjbGVhcmVkSXRlbSkpIHtcclxuICAgICAgICB2aXNpYmxlVmFsdWVBcnJheS5wdXNoKGNyZWF0ZU9wZXJhdG9yKGNsZWFyZWRJdGVtKSk7XHJcbiAgICAgICAgb3JpZ2luYWxWYWx1ZUFycmF5LnB1c2goY2xlYXJlZEl0ZW0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGlzQW4oY2xlYXJlZEl0ZW0pKSB7XHJcbiAgICAgICAgdmlzaWJsZVZhbHVlQXJyYXkucHVzaChjcmVhdGVOdW1iZXIoY2xlYXJlZEl0ZW0pKTtcclxuICAgICAgICBvcmlnaW5hbFZhbHVlQXJyYXkucHVzaChjbGVhcmVkSXRlbSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdmlzaWJsZVZhbHVlQXJyYXkucHVzaChjbGVhcmVkSXRlbSk7XHJcbiAgICAgICAgb3JpZ2luYWxWYWx1ZUFycmF5LnB1c2goY2xlYXJlZEl0ZW0pO1xyXG4gICAgICAgIHNlYXJjaFRleHQgPSBjbGVhcmVkSXRlbTtcclxuXHJcbiAgICAgICAgaXNJbnRlcnByZXRhdGlvbkVycm9yID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGFuYWxpc2UpIHtcclxuICAgICAgdGhpcy5fY2hlY2tFcnJvcnMob3JpZ2luYWxWYWx1ZUFycmF5LCBpc0ludGVycHJldGF0aW9uRXJyb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHZhbHVlOiBvcmlnaW5hbFZhbHVlQXJyYXkuam9pbignICcpLFxyXG4gICAgICB2aXNpYmxlVmFsdWU6IHZpc2libGVWYWx1ZUFycmF5LmpvaW4oJyAnKSxcclxuICAgICAgc2VhcmNoVGV4dDogc2VhcmNoVGV4dFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NoZWNrRXJyb3JzKHZhbHVlQXJyYXk6IHN0cmluZ1tdLCBpc0ludGVycHJldGF0aW9uRXJyb3I6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2Rpc2FibGVFcnJvcigpO1xyXG5cclxuICAgIHRoaXMuX3RvZ2dsZUVycm9yKGNoZWNrQnJhY2tldEVycm9ycyh2YWx1ZUFycmF5KSk7XHJcbiAgICB0aGlzLl90b2dnbGVFcnJvcihjaGVja0RpdmlkZXJFcnJvcnModmFsdWVBcnJheSwgdGhpcy5faXRlbUxpc3QpKTtcclxuICAgIHRoaXMuX3RvZ2dsZUVycm9yKGNoZWNrU2VxdWVuY2VFcnJvcnModmFsdWVBcnJheSwgdGhpcy5fb3BlcmF0b3JMaXN0LCB0aGlzLl9icmFja2V0TGlzdCkpO1xyXG4gICAgdGhpcy5fdG9nZ2xlRXJyb3IoY2hlY2tJbnRlcnByZXRhdGlvbkVycm9ycyhpc0ludGVycHJldGF0aW9uRXJyb3IpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RvZ2dsZUVycm9yKGVycm9yTW9kZWw6IENoZWNrRXJyb3JSZXN1bHRNb2RlbCkge1xyXG4gICAgaWYgKCF0aGlzLmVycm9yTW9kZWwuaXNFcnJvcikge1xyXG4gICAgICB0aGlzLmVycm9yTW9kZWwgPSBlcnJvck1vZGVsO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2Rpc2FibGVFcnJvcigpIHtcclxuICAgIHRoaXMuZXJyb3JNb2RlbCA9IHtcclxuICAgICAgaXNFcnJvcjogZmFsc2UsXHJcbiAgICAgIGVycm9yVHlwZTogRXJyb3JUeXBlRW51bS5EZWZhdWx0XHJcbiAgICB9O1xyXG4gICAgdGhpcy5fZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaW5zZXJ0UG9zaXRpb25UZXh0KGNvbnRlbnQ6IHN0cmluZykge1xyXG4gICAgY29uc3Qgbm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNvbnRlbnQpO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGlmICh0aGlzLl9yYW5nZSkge1xyXG4gICAgICAgIHRoaXMuX3JhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XHJcbiAgICAgICAgdGhpcy5fcmFuZ2UuaW5zZXJ0Tm9kZShub2RlKTtcclxuICAgICAgICB0aGlzLl9yYW5nZSA9IHRoaXMuX3JhbmdlLmNsb25lUmFuZ2UoKTtcclxuICAgICAgICB0aGlzLl9yYW5nZS5zZWxlY3ROb2RlQ29udGVudHMobm9kZSk7XHJcbiAgICAgICAgdGhpcy5fcmFuZ2UuY29sbGFwc2UoZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zdG9yZUN1cnNvclBvc2l0aW9uKCkge1xyXG4gICAgdGhpcy5fc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xyXG5cclxuICAgIGlmICh0aGlzLl9zZWxlY3Rpb24gJiYgdGhpcy5fc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwKSB7XHJcbiAgICAgIHRoaXMuX3JhbmdlID0gdGhpcy5fc2VsZWN0aW9uLmdldFJhbmdlQXQoMCk7XHJcblxyXG4gICAgICB0aGlzLl9jdXJzb3JQb3NpdGlvbi5zdGFydENvbnRhaW5lciA9IHRoaXMuX3JhbmdlLnN0YXJ0Q29udGFpbmVyO1xyXG4gICAgICB0aGlzLl9jdXJzb3JQb3NpdGlvbi5lbmRDb250YWluZXIgPSB0aGlzLl9yYW5nZS5lbmRDb250YWluZXI7XHJcbiAgICAgIHRoaXMuX2N1cnNvclBvc2l0aW9uLnN0YXJ0T2Zmc2V0ID0gdGhpcy5fcmFuZ2Uuc3RhcnRPZmZzZXQ7XHJcbiAgICAgIHRoaXMuX2N1cnNvclBvc2l0aW9uLmVuZE9mZnNldCA9IHRoaXMuX3JhbmdlLmVuZE9mZnNldDtcclxuICAgIH1cclxuICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Jlc3RvcmVDdXJzb3JQb3NpdGlvbihlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50KSB7XHJcbiAgICB0aGlzLl9yYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuX2N1cnNvclBvc2l0aW9uLnN0YXJ0Q29udGFpbmVyICYmIHRoaXMuX2N1cnNvclBvc2l0aW9uLmVuZENvbnRhaW5lcikge1xyXG4gICAgICB0aGlzLl9yYW5nZS5zZXRTdGFydCh0aGlzLl9jdXJzb3JQb3NpdGlvbi5zdGFydENvbnRhaW5lciwgdGhpcy5fY3Vyc29yUG9zaXRpb24uc3RhcnRPZmZzZXQpO1xyXG4gICAgICB0aGlzLl9yYW5nZS5zZXRFbmQodGhpcy5fY3Vyc29yUG9zaXRpb24uZW5kQ29udGFpbmVyLCB0aGlzLl9jdXJzb3JQb3NpdGlvbi5lbmRPZmZzZXQpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3NlbGVjdGlvbiA9IGRvY3VtZW50LmdldFNlbGVjdGlvbigpO1xyXG5cclxuICAgIGlmICh0aGlzLl9zZWxlY3Rpb24pIHtcclxuICAgICAgLy8gdGhpcy5fc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xyXG4gICAgICAvLyB0aGlzLl9zZWxlY3Rpb24uYWRkUmFuZ2UodGhpcy5fcmFuZ2UpO1xyXG4gICAgICAvLyBlbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wbGFjZUNhcmV0QXRFbmQoKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5fcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xyXG4gICAgICB0aGlzLl9zZWxlY3Rpb24gPSBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLl9zZWxlY3Rpb24pIHtcclxuICAgICAgICB0aGlzLl9yYW5nZS5zZWxlY3ROb2RlQ29udGVudHModGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgdGhpcy5fcmFuZ2UuY29sbGFwc2UoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcclxuICAgICAgICB0aGlzLl9zZWxlY3Rpb24uYWRkUmFuZ2UodGhpcy5fcmFuZ2UpO1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgY2xpY2tPdXQoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBpZiAoIXRoaXMuZVJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcclxuICAgICAgY29uc3Qge3Zpc2libGVWYWx1ZX0gPSB0aGlzLl90cmFuc2Zvcm1WYWx1ZSh0aGlzLl9tb2RpZmllZFZhbHVlKHRoaXMuX2lucHV0VmFsdWUpLCB0cnVlKTtcclxuXHJcbiAgICAgIHRoaXMudXBkYXRlVmlzaWJsZVZhbHVlKHZpc2libGVWYWx1ZSk7XHJcblxyXG4gICAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHt9KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7XHJcbiAgfTtcclxuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHtcclxuICB9O1xyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cIm1yeC1mb3JtdWxhLWVkaXRvclwiXHJcbiAgW2NsYXNzLm1yeC1pbnB1dC1lcnJvcl09XCJnZXRJbnZhbGlkXCJcclxuICBbY2xhc3MuLWRpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICBbY2xhc3MuLXJlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICBbY2xhc3NdPVwiZ2V0Q2xhc3Nlc1wiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwibXJ4LWZvcm11bGEtZWRpdG9yX193cmFwcGVyXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIFtpbm5lckhUTUxdPVwidmlzaWJsZVZhbHVlLnRyaW0oKSB8IHNhZmVcIlxyXG4gICAgICAjaW5wdXRFbGVtZW50XHJcbiAgICAgIGNsYXNzPVwibXJ4LWZvcm11bGEtZWRpdG9yX19ib3hcIlxyXG4gICAgICBjb250ZW50ZWRpdGFibGU9XCJ0cnVlXCJcclxuICAgICAgW2F0dHIuZGF0YS1waF09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxyXG4gICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXHJcbiAgICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxyXG4gICAgPjwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJtcngtZm9ybXVsYS1lZGl0b3JfX3BvcHVwXCIgKm5nSWY9XCJpc0ZvY3VzZWRcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVycm9yTW9kZWwuaXNFcnJvciAmJiBpc0ZvY3VzZWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWZvcm11bGEtZWRpdG9yX19wb3B1cC0tZXJyb3JcIj5cclxuICAgICAgICAgIHt7IGdldEVycm9yTWVzc2FnZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlcmVkTGlzdC5sZW5ndGg7IGVsc2UgZW1wdHlMaXN0XCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJtcngtZm9ybXVsYS1lZGl0b3JfX3BvcHVwLS1yb3dcIlxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWRMaXN0XCJcclxuICAgICAgICAgIChjbGljayk9XCJpbnNlcnRUYWcoaXRlbSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eUxpc3Q+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1mb3JtdWxhLWVkaXRvcl9fcG9wdXAtLXJvd1wiPlxyXG4gICAgICAgICAg0J3QtdGCINGA0LXQt9GD0LvRjNGC0LDRgtC+0LJcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICAgIDxtcngtZXJyb3ItbWVzc2FnZVxyXG4gICAgICAqbmdJZj1cImdldEludmFsaWQgJiYgZ2V0RXJyb3JNZXNzYWdlICYmICFpc0ZvY3VzZWRcIlxyXG4gICAgICBbaW52YWxpZE1lc3NhZ2VdPVwiZ2V0RXJyb3JNZXNzYWdlXCJcclxuICAgID48L21yeC1lcnJvci1tZXNzYWdlPlxyXG5cclxuICAgIDxtcngtc2F2ZS1zdGF0ZSBbaWRdPVwidXVpZFwiIFtmaWVsZHNdPVwiZmllbGRzXCI+PC9tcngtc2F2ZS1zdGF0ZT5cclxuPC9kaXY+XHJcbiJdfQ==
322
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXVsYS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybXVsYS1lZGl0b3IvZm9ybXVsYS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybXVsYS1lZGl0b3IvZm9ybXVsYS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQWMsWUFBWSxFQUNuQyxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQ3ZDLE1BQU0sRUFBRSxTQUFTLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4SCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFekQsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLG1CQUFtQixFQUNwQixNQUFNLCtCQUErQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxzQkFBc0IsRUFBMkIsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7O0FBYW5HLE1BQU0sT0FBTyxzQkFBc0I7SUFpRWpDLFlBQzRCLFFBQWtCLEVBQ3BDLFNBQTRCLEVBQzVCLElBQWdCO1FBRkUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQUM1QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBbEVsQixlQUFVLEdBQXFCLElBQUksQ0FBQztRQUNwQyxvQkFBZSxHQUtuQjtZQUNGLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFdBQVcsRUFBRSxDQUFDO1lBQ2QsU0FBUyxFQUFFLENBQUM7U0FDYixDQUFDO1FBRU0sZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUV4QixrQkFBYSxHQUFhLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0MsaUJBQVksR0FBYSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNwQyxjQUFTLEdBQXlCLEVBQUUsQ0FBQztRQUNyQyxzQkFBaUIsR0FBdUQ7WUFDOUUsS0FBSyxFQUFFLEVBQUU7WUFDVCxNQUFNLEVBQUUsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDO1NBQ3ZCLENBQUM7UUFFSyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFFbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixlQUFVLEdBQTBCO1lBQ3pDLE9BQU8sRUFBRSxLQUFLO1lBQ2QsU0FBUyxFQUFFLGFBQWEsQ0FBQyxPQUFPO1NBQ2pDLENBQUM7UUFFRixhQUFhO1FBQ04sU0FBSSxHQUFXLE1BQU0sRUFBRSxDQUFDO1FBQ2YsV0FBTSxHQUFZLEVBQUUsQ0FBQztRQUVyQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsU0FBSSxHQUE0QixPQUFPLENBQUM7UUFFeEQsV0FBVztRQUNLLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsbUJBQWMsR0FBc0IsRUFBRSxDQUFDO1FBQ3ZDLGlCQUFZLEdBQXdCLElBQUksQ0FBQztRQWF4QyxZQUFPLEdBQTBDLElBQUksWUFBWSxFQUEyQixDQUFDO1FBQzdGLFlBQU8sR0FBMkMsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDL0YsZ0JBQVcsR0FBMkMsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUE0UTVHLGFBQVEsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO1FBQ2xDLENBQUMsQ0FBQztRQUNNLGNBQVMsR0FBRyxHQUFHLEVBQUU7UUFDekIsQ0FBQyxDQUFDO0lBeFFGLENBQUM7SUFwQkQsSUFDSSxLQUFLLENBQUMsS0FBMkI7UUFDbkMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFaEYsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7UUFDeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBZUQsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFXLGlCQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDakksQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUN0SCxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQTtJQUNyRSxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVELElBQVksV0FBVztRQUNyQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7SUFDM0QsQ0FBQztJQUVELFVBQVUsQ0FBQyxZQUFxQztRQUM5QyxJQUFJLFlBQVksS0FBSyxJQUFJLEVBQUU7WUFDekIsTUFBTSxFQUFDLFlBQVksRUFBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBRS9FLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDO1lBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1lBRWpDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVk7UUFDbEIsTUFBTSxFQUFDLEtBQUssRUFBRSxVQUFVLEVBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRS9GLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFFN0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFZO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQVk7UUFDakIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFVO1FBQ2hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUV0QixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUN0QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxTQUFTLENBQUMsYUFBaUM7UUFDekMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksYUFBYSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFFdkQsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUVqRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxXQUFtQjtRQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztRQUVoQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUU1QixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxXQUFXLENBQUMsV0FBbUI7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQWE7UUFDbEMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFFTyxlQUFlLENBQUMsT0FBZSxFQUFFLFVBQW1CLEtBQUs7UUFDL0QsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFaEUsTUFBTSxpQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDdkMsTUFBTSxrQkFBa0IsR0FBYSxFQUFFLENBQUM7UUFFeEMsSUFBSSxxQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFFbEMsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBRXBCLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMxQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDaEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBRTNFLElBQUksUUFBUSxFQUFFO2dCQUNaLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ2xELGtCQUFrQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUM3RDtpQkFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxFQUFFO2dCQUN6RCxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ25ELGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUN0QztpQkFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxFQUFFO2dCQUMxRCxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BELGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUN0QztpQkFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDNUIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUNsRCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDdEM7aUJBQU07Z0JBQ0wsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNwQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3JDLFVBQVUsR0FBRyxXQUFXLENBQUM7Z0JBRXpCLHFCQUFxQixHQUFHLElBQUksQ0FBQzthQUM5QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLHFCQUFxQixDQUFDLENBQUM7U0FDOUQ7UUFFRCxPQUFPO1lBQ0wsS0FBSyxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDbkMsWUFBWSxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDekMsVUFBVSxFQUFFLFVBQVU7U0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFTyxZQUFZLENBQUMsVUFBb0IsRUFBRSxxQkFBOEI7UUFDdkUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJCLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQzFGLElBQUksQ0FBQyxZQUFZLENBQUMseUJBQXlCLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTyxZQUFZLENBQUMsVUFBaUM7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFO1lBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1NBQzlCO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2hCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsU0FBUyxFQUFFLGFBQWEsQ0FBQyxPQUFPO1NBQ2pDLENBQUM7UUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxPQUFlO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUMsSUFBSTtZQUNGLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDZixJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM3QjtTQUNGO1FBQUMsT0FBTyxDQUFDLEVBQUU7U0FDWDtJQUNILENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFeEMsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRTtZQUNyRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTVDLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQzdELElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQzNELElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1NBQ3hEO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU8sc0JBQXNCLENBQUMsT0FBeUI7UUFDdEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFckMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRTtZQUM1RSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzVGLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdkY7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUUxQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDaEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDekM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxRQUFRLENBQUMsS0FBWTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuRCxNQUFNLEVBQUMsWUFBWSxFQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUV6RixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUNoQztJQUNILENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxFQUFPO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxFQUFZO1FBQ25DLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7O21IQXpVVSxzQkFBc0Isa0JBa0V2QixRQUFRO3VHQWxFUCxzQkFBc0IscWJBTnRCLENBQUM7WUFDVixPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsc0JBQXNCLENBQUM7WUFDckQsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDLHNKQ2hDSix5N0RBdURBOzJGRHJCYSxzQkFBc0I7a0JBWGxDLFNBQVM7K0JBQ0Usb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQzs0QkFDVixPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQzs0QkFDckQsS0FBSyxFQUFFLElBQUk7eUJBQ1osQ0FBQzswREFvRW9DLFFBQVE7MEJBQTNDLE1BQU07MkJBQUMsUUFBUTtxR0E3QkYsTUFBTTtzQkFBckIsS0FBSztnQkFFVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBR1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBR0YsS0FBSztzQkFEUixLQUFLO2dCQVNxQyxZQUFZO3NCQUF0RCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBRXhCLE9BQU87c0JBQXZCLE1BQU07Z0JBQ1UsT0FBTztzQkFBdkIsTUFBTTtnQkFDVSxXQUFXO3NCQUEzQixNQUFNO2dCQXlQUCxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsXHJcbiAgT3V0cHV0LCBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEVycm9yTWVzc2FnZXNFbnVtLCBFcnJvclR5cGVFbnVtIH0gZnJvbSAnLi9lbnVtcy9lcnJvci1tZXNzYWdlcy5lbnVtJztcclxuaW1wb3J0IHsgY3JlYXRlQnJhY2tldCwgY3JlYXRlTnVtYmVyLCBjcmVhdGVPcGVyYXRvciwgY3JlYXRlVGFnLCBjcmVhdGVUYWdPdXRzaWRlIH0gZnJvbSAnLi9oZWxwZXJzL2NyZWF0ZS10YWdzLmhlbHBlcic7XHJcbmltcG9ydCB7IGlzQW4gfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL2lzLW51bWJlci5oZWxwZXInO1xyXG5pbXBvcnQgeyBXaGl0ZUxpc3RJdGVtTW9kZWwsIENoZWNrRXJyb3JSZXN1bHRNb2RlbCB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHtcclxuICBjaGVja0JyYWNrZXRFcnJvcnMsXHJcbiAgY2hlY2tEaXZpZGVyRXJyb3JzLFxyXG4gIGNoZWNrSW50ZXJwcmV0YXRpb25FcnJvcnMsXHJcbiAgY2hlY2tTZXF1ZW5jZUVycm9yc1xyXG59IGZyb20gJy4vaGVscGVycy9jaGVjay1lcnJvcnMuaGVscGVyJztcclxuaW1wb3J0IHsgRm9ybXVsYUVkaXRvclZhbHVlVHlwZXMsIEZvcm11bGFFZGl0b3JWYWx1ZVdpdGhJZCB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgRm9ybXVsYUVkaXRvclNpemVzRW51bSwgRm9ybXVsYUVkaXRvclNpemVzVHlwZXMgfSBmcm9tICcuL2VudW1zL2Zvcm11bGEtZWRpdG9yLXNpemUuZW51bSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21yeC1mb3JtdWxhLWVkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm11bGEtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtdWxhLWVkaXRvci5jb21wb25lbnQubGVzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9ybXVsYUVkaXRvckNvbXBvbmVudCksXHJcbiAgICBtdWx0aTogdHJ1ZVxyXG4gIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtdWxhRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIHByaXZhdGUgX3JhbmdlOiBhbnk7XHJcbiAgcHJpdmF0ZSBfc2VsZWN0aW9uOiBTZWxlY3Rpb24gfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIF9jdXJzb3JQb3NpdGlvbjoge1xyXG4gICAgc3RhcnRDb250YWluZXI6IE5vZGUgfCBudWxsLFxyXG4gICAgZW5kQ29udGFpbmVyOiBOb2RlIHwgbnVsbCxcclxuICAgIHN0YXJ0T2Zmc2V0OiBudW1iZXIsXHJcbiAgICBlbmRPZmZzZXQ6IG51bWJlclxyXG4gIH0gPSB7XHJcbiAgICBzdGFydENvbnRhaW5lcjogbnVsbCxcclxuICAgIGVuZENvbnRhaW5lcjogbnVsbCxcclxuICAgIHN0YXJ0T2Zmc2V0OiAwLFxyXG4gICAgZW5kT2Zmc2V0OiAwXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBzZWFyY2hUZXh0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgcHJpdmF0ZSBfb3BlcmF0b3JMaXN0OiBzdHJpbmdbXSA9IFsnKycsICctJywgJyonLCAnLyddO1xyXG4gIHByaXZhdGUgX2JyYWNrZXRMaXN0OiBzdHJpbmdbXSA9IFsnKCcsICcpJ107XHJcbiAgcHJpdmF0ZSBfaXRlbUxpc3Q6IFdoaXRlTGlzdEl0ZW1Nb2RlbFtdID0gW107XHJcbiAgcHJpdmF0ZSBfbW9kaWZpZWRJdGVtTGlzdDogeyBpdGVtczogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0sIHJlZ0V4cDogUmVnRXhwIH0gPSB7XHJcbiAgICBpdGVtczoge30sXHJcbiAgICByZWdFeHA6IG5ldyBSZWdFeHAoJycpLFxyXG4gIH07XHJcblxyXG4gIHB1YmxpYyB2YWx1ZSA9ICcnO1xyXG4gIHB1YmxpYyB2aXNpYmxlVmFsdWUgPSAnJztcclxuXHJcbiAgcHVibGljIGlzRm9jdXNlZCA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgZXJyb3JNb2RlbDogQ2hlY2tFcnJvclJlc3VsdE1vZGVsID0ge1xyXG4gICAgaXNFcnJvcjogZmFsc2UsXHJcbiAgICBlcnJvclR5cGU6IEVycm9yVHlwZUVudW0uRGVmYXVsdFxyXG4gIH07XHJcblxyXG4gIC8vIFNBVkUgU1RBVEVcclxuICBwdWJsaWMgdXVpZDogc3RyaW5nID0gdXVpZHY0KCk7XHJcbiAgQElucHV0KCkgcHVibGljIGZpZWxkczogRmllbGRbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgcmVhZG9ubHkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXIgPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tQ2xhc3NlcyA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzaXplOiBGb3JtdWxhRWRpdG9yU2l6ZXNUeXBlcyA9ICdsYXJnZSc7XHJcblxyXG4gIC8vIFZBTElEQVRFXHJcbiAgQElucHV0KCkgcHVibGljIGludmFsaWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZE1lc3NhZ2U6IHN0cmluZyB8IHN0cmluZ1tdID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGNoZWNrSW52YWxpZDogdHJ1ZSB8IGZhbHNlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGl0ZW1zKGl0ZW1zOiBXaGl0ZUxpc3RJdGVtTW9kZWxbXSkge1xyXG4gICAgY29uc3QgaXRlbXNNYXAgPSBPYmplY3QuZnJvbUVudHJpZXMoaXRlbXMubWFwKG9iaiA9PiBbb2JqLmxhYmVsLCBvYmouc3lzTmFtZV0pKTtcclxuXHJcbiAgICB0aGlzLl9pdGVtTGlzdCA9IGl0ZW1zO1xyXG4gICAgdGhpcy5fbW9kaWZpZWRJdGVtTGlzdC5pdGVtcyA9IGl0ZW1zTWFwO1xyXG4gICAgdGhpcy5fbW9kaWZpZWRJdGVtTGlzdC5yZWdFeHAgPSBuZXcgUmVnRXhwKGl0ZW1zLm1hcChzID0+IHMubGFiZWwpLmpvaW4oJ3wnKSwgJ2cnKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudCcsIHtzdGF0aWM6IHRydWV9KSBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxGb3JtdWxhRWRpdG9yVmFsdWVUeXBlcz4gPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm11bGFFZGl0b3JWYWx1ZVR5cGVzPigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgYmx1cnJlZDogRXZlbnRFbWl0dGVyPEZvcm11bGFFZGl0b3JWYWx1ZVdpdGhJZD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm11bGFFZGl0b3JWYWx1ZVdpdGhJZD4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIG1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Rm9ybXVsYUVkaXRvclZhbHVlV2l0aElkPiA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybXVsYUVkaXRvclZhbHVlV2l0aElkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxyXG4gICAgcHJpdmF0ZSBfZGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBlUmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldEVycm9yTWVzc2FnZSgpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkTWVzc2FnZSB8fCBFcnJvck1lc3NhZ2VzRW51bVt0aGlzLmVycm9yTW9kZWwuZXJyb3JUeXBlXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZmlsdGVyZWRMaXN0KCk6IFdoaXRlTGlzdEl0ZW1Nb2RlbFtdIHtcclxuICAgIHJldHVybiB0aGlzLl9pdGVtTGlzdC5maWx0ZXIoaXRlbSA9PiBpdGVtLmxhYmVsLmluY2x1ZGVzKHRoaXMuc2VhcmNoVGV4dCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRJbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZXJyb3JNb2RlbC5pc0Vycm9yIHx8IHRoaXMuaW52YWxpZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcmVhZG9ubHlDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucmVhZG9ubHkgPyAnbXJ4LWlucHV0X19yZWFkb25seScgOiAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY2hlY2tWYWxpZENsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrSW52YWxpZCA9PT0gZmFsc2UgPyAnbXJ4LWlucHV0LWNoZWNrZWQtc3VjY2VzcycgOiB0aGlzLmNoZWNrSW52YWxpZCA9PT0gdHJ1ZSA/ICdtcngtaW5wdXQtY2hlY2tlZC1lcnJvcicgOiAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke0Zvcm11bGFFZGl0b3JTaXplc0VudW1bdGhpcy5zaXplXX0gJHt0aGlzLmN1c3RvbUNsYXNzZXN9ICR7dGhpcy5yZWFkb25seUNsYXNzfSAke3RoaXMuY2hlY2tWYWxpZENsYXNzZXN9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0SWNvbkNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7dGhpcy5zaXplICE9PSAnbGFyZ2UnID8gJ2ljb24tZm9udC0xNicgOiAnaWNvbi1mb250LTI0J31gXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNhbkNsZWFuKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy52aXNpYmxlVmFsdWUudHJpbSgpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCBfaW5wdXRWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQgfHwgJyc7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKG91dHNpZGVWYWx1ZTogRm9ybXVsYUVkaXRvclZhbHVlVHlwZXMpOiB2b2lkIHtcclxuICAgIGlmIChvdXRzaWRlVmFsdWUgIT09IG51bGwpIHtcclxuICAgICAgY29uc3Qge3Zpc2libGVWYWx1ZX0gPSB0aGlzLl90cmFuc2Zvcm1WYWx1ZSh0aGlzLl9tb2RpZmllZFZhbHVlKG91dHNpZGVWYWx1ZSkpO1xyXG5cclxuICAgICAgdGhpcy52YWx1ZSA9IG91dHNpZGVWYWx1ZTtcclxuICAgICAgdGhpcy52aXNpYmxlVmFsdWUgPSB2aXNpYmxlVmFsdWU7XHJcblxyXG4gICAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbklucHV0KGV2ZW50OiBFdmVudCkge1xyXG4gICAgY29uc3Qge3ZhbHVlLCBzZWFyY2hUZXh0fSA9IHRoaXMuX3RyYW5zZm9ybVZhbHVlKHRoaXMuX21vZGlmaWVkVmFsdWUodGhpcy5faW5wdXRWYWx1ZSksIGZhbHNlKTtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcclxuXHJcbiAgICB0aGlzLnNlYXJjaFRleHQgPSBzZWFyY2hUZXh0O1xyXG5cclxuICAgIHRoaXMuX3N0b3JlQ3Vyc29yUG9zaXRpb24oKTtcclxuICB9XHJcblxyXG4gIG9uRm9jdXMoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XHJcbiAgICB0aGlzLl9kZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIG9uQ2xlYXIoKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKCcnKTtcclxuICAgIHRoaXMudXBkYXRlVmlzaWJsZVZhbHVlKCcnKTtcclxuICB9XHJcblxyXG4gIG9uQmx1cihldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMuX3N0b3JlQ3Vyc29yUG9zaXRpb24oKTtcclxuICB9XHJcblxyXG4gIG9uS2V5dXAoZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxyXG5cclxuICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYmx1cigpXHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5fZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgaW5zZXJ0VGFnKHdoaXRlTGlzdEl0ZW06IFdoaXRlTGlzdEl0ZW1Nb2RlbCkge1xyXG4gICAgdGhpcy5fcmVzdG9yZUN1cnNvclBvc2l0aW9uKHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgdGhpcy5faW5zZXJ0UG9zaXRpb25UZXh0KGB7JHt3aGl0ZUxpc3RJdGVtLnN5c05hbWV9fWApO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCB7dmFsdWUsIHZpc2libGVWYWx1ZX0gPSB0aGlzLl90cmFuc2Zvcm1WYWx1ZSh0aGlzLl9tb2RpZmllZFZhbHVlKHRoaXMuX2lucHV0VmFsdWUpLCBmYWxzZSk7XHJcblxyXG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcclxuICAgICAgdGhpcy51cGRhdGVWaXNpYmxlVmFsdWUodmlzaWJsZVZhbHVlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX3BsYWNlQ2FyZXRBdEVuZCgpO1xyXG5cclxuICAgIHRoaXMuc2VhcmNoVGV4dCA9ICcnO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVmlzaWJsZVZhbHVlKGluc2lkZVZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudmlzaWJsZVZhbHVlID0gaW5zaWRlVmFsdWU7XHJcblxyXG4gICAgdGhpcy5fc3RvcmVDdXJzb3JQb3NpdGlvbigpO1xyXG5cclxuICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVZhbHVlKGluc2lkZVZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudmFsdWUgPSBpbnNpZGVWYWx1ZTtcclxuICAgIHRoaXMuY2hhbmdlZC5lbWl0KGluc2lkZVZhbHVlKTtcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh7dmFsdWU6IGluc2lkZVZhbHVlLCBpZDogdGhpcy51dWlkfSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKGluc2lkZVZhbHVlKTtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9tb2RpZmllZFZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UodGhpcy5fbW9kaWZpZWRJdGVtTGlzdC5yZWdFeHAsIG1hdGNoID0+IGB7JHt0aGlzLl9tb2RpZmllZEl0ZW1MaXN0Lml0ZW1zW21hdGNoXX19YCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90cmFuc2Zvcm1WYWx1ZShjb250ZW50OiBzdHJpbmcsIGFuYWxpc2U6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgY29uc3QgdmFsdWVBcnJheSA9IGNvbnRlbnQuc3BsaXQoL1tcXHNcXHUwMEEwXSsvKS5maWx0ZXIoQm9vbGVhbik7XHJcblxyXG4gICAgY29uc3QgdmlzaWJsZVZhbHVlQXJyYXk6IHN0cmluZ1tdID0gW107XHJcbiAgICBjb25zdCBvcmlnaW5hbFZhbHVlQXJyYXk6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgbGV0IGlzSW50ZXJwcmV0YXRpb25FcnJvciA9IGZhbHNlO1xyXG5cclxuICAgIGxldCBzZWFyY2hUZXh0ID0gJyc7XHJcblxyXG4gICAgdmFsdWVBcnJheS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNsZWFyZWRJdGVtID0gaXRlbS50cmltKCk7XHJcbiAgICAgIGNvbnN0IGZpbmRJdGVtID0gdGhpcy5faXRlbUxpc3QuZmluZCh2ID0+IGNsZWFyZWRJdGVtLmluY2x1ZGVzKHYuc3lzTmFtZSkpO1xyXG5cclxuICAgICAgaWYgKGZpbmRJdGVtKSB7XHJcbiAgICAgICAgdmlzaWJsZVZhbHVlQXJyYXkucHVzaChjcmVhdGVUYWcoZmluZEl0ZW0ubGFiZWwpKTtcclxuICAgICAgICBvcmlnaW5hbFZhbHVlQXJyYXkucHVzaChjcmVhdGVUYWdPdXRzaWRlKGZpbmRJdGVtLnN5c05hbWUpKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLl9icmFja2V0TGlzdC5maW5kKHYgPT4gdiA9PT0gY2xlYXJlZEl0ZW0pKSB7XHJcbiAgICAgICAgdmlzaWJsZVZhbHVlQXJyYXkucHVzaChjcmVhdGVCcmFja2V0KGNsZWFyZWRJdGVtKSk7XHJcbiAgICAgICAgb3JpZ2luYWxWYWx1ZUFycmF5LnB1c2goY2xlYXJlZEl0ZW0pO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX29wZXJhdG9yTGlzdC5maW5kKHYgPT4gdiA9PT0gY2xlYXJlZEl0ZW0pKSB7XHJcbiAgICAgICAgdmlzaWJsZVZhbHVlQXJyYXkucHVzaChjcmVhdGVPcGVyYXRvcihjbGVhcmVkSXRlbSkpO1xyXG4gICAgICAgIG9yaWdpbmFsVmFsdWVBcnJheS5wdXNoKGNsZWFyZWRJdGVtKTtcclxuICAgICAgfSBlbHNlIGlmIChpc0FuKGNsZWFyZWRJdGVtKSkge1xyXG4gICAgICAgIHZpc2libGVWYWx1ZUFycmF5LnB1c2goY3JlYXRlTnVtYmVyKGNsZWFyZWRJdGVtKSk7XHJcbiAgICAgICAgb3JpZ2luYWxWYWx1ZUFycmF5LnB1c2goY2xlYXJlZEl0ZW0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHZpc2libGVWYWx1ZUFycmF5LnB1c2goY2xlYXJlZEl0ZW0pO1xyXG4gICAgICAgIG9yaWdpbmFsVmFsdWVBcnJheS5wdXNoKGNsZWFyZWRJdGVtKTtcclxuICAgICAgICBzZWFyY2hUZXh0ID0gY2xlYXJlZEl0ZW07XHJcblxyXG4gICAgICAgIGlzSW50ZXJwcmV0YXRpb25FcnJvciA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChhbmFsaXNlKSB7XHJcbiAgICAgIHRoaXMuX2NoZWNrRXJyb3JzKG9yaWdpbmFsVmFsdWVBcnJheSwgaXNJbnRlcnByZXRhdGlvbkVycm9yKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB2YWx1ZTogb3JpZ2luYWxWYWx1ZUFycmF5LmpvaW4oJyAnKSxcclxuICAgICAgdmlzaWJsZVZhbHVlOiB2aXNpYmxlVmFsdWVBcnJheS5qb2luKCcgJyksXHJcbiAgICAgIHNlYXJjaFRleHQ6IHNlYXJjaFRleHRcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jaGVja0Vycm9ycyh2YWx1ZUFycmF5OiBzdHJpbmdbXSwgaXNJbnRlcnByZXRhdGlvbkVycm9yOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlRXJyb3IoKTtcclxuXHJcbiAgICB0aGlzLl90b2dnbGVFcnJvcihjaGVja0JyYWNrZXRFcnJvcnModmFsdWVBcnJheSkpO1xyXG4gICAgdGhpcy5fdG9nZ2xlRXJyb3IoY2hlY2tEaXZpZGVyRXJyb3JzKHZhbHVlQXJyYXksIHRoaXMuX2l0ZW1MaXN0KSk7XHJcbiAgICB0aGlzLl90b2dnbGVFcnJvcihjaGVja1NlcXVlbmNlRXJyb3JzKHZhbHVlQXJyYXksIHRoaXMuX29wZXJhdG9yTGlzdCwgdGhpcy5fYnJhY2tldExpc3QpKTtcclxuICAgIHRoaXMuX3RvZ2dsZUVycm9yKGNoZWNrSW50ZXJwcmV0YXRpb25FcnJvcnMoaXNJbnRlcnByZXRhdGlvbkVycm9yKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90b2dnbGVFcnJvcihlcnJvck1vZGVsOiBDaGVja0Vycm9yUmVzdWx0TW9kZWwpIHtcclxuICAgIGlmICghdGhpcy5lcnJvck1vZGVsLmlzRXJyb3IpIHtcclxuICAgICAgdGhpcy5lcnJvck1vZGVsID0gZXJyb3JNb2RlbDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kaXNhYmxlRXJyb3IoKSB7XHJcbiAgICB0aGlzLmVycm9yTW9kZWwgPSB7XHJcbiAgICAgIGlzRXJyb3I6IGZhbHNlLFxyXG4gICAgICBlcnJvclR5cGU6IEVycm9yVHlwZUVudW0uRGVmYXVsdFxyXG4gICAgfTtcclxuICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2luc2VydFBvc2l0aW9uVGV4dChjb250ZW50OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IG5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjb250ZW50KTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAodGhpcy5fcmFuZ2UpIHtcclxuICAgICAgICB0aGlzLl9yYW5nZS5kZWxldGVDb250ZW50cygpO1xyXG4gICAgICAgIHRoaXMuX3JhbmdlLmluc2VydE5vZGUobm9kZSk7XHJcbiAgICAgICAgdGhpcy5fcmFuZ2UgPSB0aGlzLl9yYW5nZS5jbG9uZVJhbmdlKCk7XHJcbiAgICAgICAgdGhpcy5fcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKG5vZGUpO1xyXG4gICAgICAgIHRoaXMuX3JhbmdlLmNvbGxhcHNlKGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc3RvcmVDdXJzb3JQb3NpdGlvbigpIHtcclxuICAgIHRoaXMuX3NlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcclxuXHJcbiAgICBpZiAodGhpcy5fc2VsZWN0aW9uICYmIHRoaXMuX3NlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCkge1xyXG4gICAgICB0aGlzLl9yYW5nZSA9IHRoaXMuX3NlbGVjdGlvbi5nZXRSYW5nZUF0KDApO1xyXG5cclxuICAgICAgdGhpcy5fY3Vyc29yUG9zaXRpb24uc3RhcnRDb250YWluZXIgPSB0aGlzLl9yYW5nZS5zdGFydENvbnRhaW5lcjtcclxuICAgICAgdGhpcy5fY3Vyc29yUG9zaXRpb24uZW5kQ29udGFpbmVyID0gdGhpcy5fcmFuZ2UuZW5kQ29udGFpbmVyO1xyXG4gICAgICB0aGlzLl9jdXJzb3JQb3NpdGlvbi5zdGFydE9mZnNldCA9IHRoaXMuX3JhbmdlLnN0YXJ0T2Zmc2V0O1xyXG4gICAgICB0aGlzLl9jdXJzb3JQb3NpdGlvbi5lbmRPZmZzZXQgPSB0aGlzLl9yYW5nZS5lbmRPZmZzZXQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZXN0b3JlQ3Vyc29yUG9zaXRpb24oZWxlbWVudDogSFRNTElucHV0RWxlbWVudCkge1xyXG4gICAgdGhpcy5fcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xyXG5cclxuICAgIGlmICh0aGlzLl9jdXJzb3JQb3NpdGlvbi5zdGFydENvbnRhaW5lciAmJiB0aGlzLl9jdXJzb3JQb3NpdGlvbi5lbmRDb250YWluZXIpIHtcclxuICAgICAgdGhpcy5fcmFuZ2Uuc2V0U3RhcnQodGhpcy5fY3Vyc29yUG9zaXRpb24uc3RhcnRDb250YWluZXIsIHRoaXMuX2N1cnNvclBvc2l0aW9uLnN0YXJ0T2Zmc2V0KTtcclxuICAgICAgdGhpcy5fcmFuZ2Uuc2V0RW5kKHRoaXMuX2N1cnNvclBvc2l0aW9uLmVuZENvbnRhaW5lciwgdGhpcy5fY3Vyc29yUG9zaXRpb24uZW5kT2Zmc2V0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3BsYWNlQ2FyZXRBdEVuZCgpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9yYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGlvbiA9IGRvY3VtZW50LmdldFNlbGVjdGlvbigpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbikge1xyXG4gICAgICAgIHRoaXMuX3JhbmdlLnNlbGVjdE5vZGVDb250ZW50cyh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICB0aGlzLl9yYW5nZS5jb2xsYXBzZShmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbi5hZGRSYW5nZSh0aGlzLl9yYW5nZSk7XHJcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBjbGlja091dChldmVudDogRXZlbnQpIHtcclxuICAgIGlmICghdGhpcy5lUmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xyXG4gICAgICBjb25zdCB7dmlzaWJsZVZhbHVlfSA9IHRoaXMuX3RyYW5zZm9ybVZhbHVlKHRoaXMuX21vZGlmaWVkVmFsdWUodGhpcy5faW5wdXRWYWx1ZSksIHRydWUpO1xyXG5cclxuICAgICAgdGhpcy51cGRhdGVWaXNpYmxlVmFsdWUodmlzaWJsZVZhbHVlKTtcclxuXHJcbiAgICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4ge30pOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHtcclxuICB9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4ge1xyXG4gIH07XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwibXJ4LWZvcm11bGEtZWRpdG9yXCJcclxuICBbY2xhc3MubXJ4LWlucHV0LWVycm9yXT1cImdldEludmFsaWRcIlxyXG4gIFtjbGFzcy4tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gIFtjbGFzcy4tcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gIFtjbGFzc109XCJnZXRDbGFzc2VzXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJtcngtZm9ybXVsYS1lZGl0b3JfX3dyYXBwZXJcIj5cclxuICAgIDxkaXZcclxuICAgICAgW2lubmVySFRNTF09XCJ2aXNpYmxlVmFsdWUudHJpbSgpIHwgc2FmZVwiXHJcbiAgICAgICNpbnB1dEVsZW1lbnRcclxuICAgICAgY2xhc3M9XCJtcngtZm9ybXVsYS1lZGl0b3JfX2JveFwiXHJcbiAgICAgIGNvbnRlbnRlZGl0YWJsZT1cInRydWVcIlxyXG4gICAgICBbYXR0ci5kYXRhLXBoXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXHJcbiAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uS2V5dXAoJGV2ZW50KVwiXHJcbiAgICAgIChrZXlkb3duLnRhYik9XCJvbktleXVwKCRldmVudClcIlxyXG4gICAgPjwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJtcngtZm9ybXVsYS1lZGl0b3JfX2NsZWFyXCIgKm5nSWY9XCJjYW5DbGVhblwiIChjbGljayk9XCJvbkNsZWFyKClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pY29uIGljb24tY2xvc2VcIiBbY2xhc3NdPVwiZ2V0SWNvbkNsYXNzXCI+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LWZvcm11bGEtZWRpdG9yX19wb3B1cFwiICpuZ0lmPVwiaXNGb2N1c2VkXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlcnJvck1vZGVsLmlzRXJyb3IgJiYgaXNGb2N1c2VkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1mb3JtdWxhLWVkaXRvcl9fcG9wdXAtLWVycm9yXCI+XHJcbiAgICAgICAgICB7eyBnZXRFcnJvck1lc3NhZ2UgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXJlZExpc3QubGVuZ3RoOyBlbHNlIGVtcHR5TGlzdFwiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwibXJ4LWZvcm11bGEtZWRpdG9yX19wb3B1cC0tcm93XCJcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkTGlzdFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiaW5zZXJ0VGFnKGl0ZW0pOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlMaXN0PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtcngtZm9ybXVsYS1lZGl0b3JfX3BvcHVwLS1yb3dcIj5cclxuICAgICAgICAgINCd0LXRgiDRgNC10LfRg9C70YzRgtCw0YLQvtCyXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgICA8bXJ4LWVycm9yLW1lc3NhZ2VcclxuICAgICAgKm5nSWY9XCJnZXRJbnZhbGlkICYmIGdldEVycm9yTWVzc2FnZSAmJiAhaXNGb2N1c2VkXCJcclxuICAgICAgW2ludmFsaWRNZXNzYWdlXT1cImdldEVycm9yTWVzc2FnZVwiXHJcbiAgICA+PC9tcngtZXJyb3ItbWVzc2FnZT5cclxuXHJcbiAgICA8bXJ4LXNhdmUtc3RhdGUgW2lkXT1cInV1aWRcIiBbZmllbGRzXT1cImZpZWxkc1wiPjwvbXJ4LXNhdmUtc3RhdGU+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,17 +1,17 @@
1
1
  // &nbsp;
2
2
  export const createTag = (content) => {
3
- return `<div class="tag" contenteditable="false" tabindex="-1">${content}</div>&nbsp;`;
3
+ return `<div class="tag argument -medium" contenteditable="false" tabindex="-1">${content}</div>&nbsp;`;
4
4
  };
5
5
  export const createOperator = (content) => {
6
- return `<div class="operator" contenteditable="false" tabindex="-1">${content}</div>&nbsp;`;
6
+ return `<div class="tag operator -large" contenteditable="false" tabindex="-1">${content}</div>&nbsp;`;
7
7
  };
8
8
  export const createNumber = (content) => {
9
- return `<div class="number" contenteditable="false" tabindex="-1">${content}</div>&nbsp;`;
9
+ return `<div class="tag number -medium" contenteditable="false" tabindex="-1">${content}</div>&nbsp;`;
10
10
  };
11
11
  export const createBracket = (content) => {
12
- return `<div class="bracket" contenteditable="false" tabindex="-1">${content}</div>&nbsp;`;
12
+ return `<div class="tag bracket -medium" contenteditable="false" tabindex="-1">${content}</div>&nbsp;`;
13
13
  };
14
14
  export const createTagOutside = (content) => {
15
15
  return `{${content}}`;
16
16
  };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXRhZ3MuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybXVsYS1lZGl0b3IvaGVscGVycy9jcmVhdGUtdGFncy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUztBQUNULE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO0lBQzNDLE9BQU8sMERBQTBELE9BQU8sY0FBYyxDQUFBO0FBQ3hGLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO0lBQ2hELE9BQU8sK0RBQStELE9BQU8sY0FBYyxDQUFBO0FBQzdGLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO0lBQzlDLE9BQU8sNkRBQTZELE9BQU8sY0FBYyxDQUFBO0FBQzNGLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO0lBQy9DLE9BQU8sOERBQThELE9BQU8sY0FBYyxDQUFBO0FBQzVGLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUU7SUFDbEQsT0FBTyxJQUFJLE9BQU8sR0FBRyxDQUFBO0FBQ3ZCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vICZuYnNwO1xyXG5leHBvcnQgY29uc3QgY3JlYXRlVGFnID0gKGNvbnRlbnQ6IHN0cmluZykgPT4ge1xyXG4gIHJldHVybiBgPGRpdiBjbGFzcz1cInRhZ1wiIGNvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCIgdGFiaW5kZXg9XCItMVwiPiR7Y29udGVudH08L2Rpdj4mbmJzcDtgXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBjcmVhdGVPcGVyYXRvciA9IChjb250ZW50OiBzdHJpbmcpID0+IHtcclxuICByZXR1cm4gYDxkaXYgY2xhc3M9XCJvcGVyYXRvclwiIGNvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCIgdGFiaW5kZXg9XCItMVwiPiR7Y29udGVudH08L2Rpdj4mbmJzcDtgXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBjcmVhdGVOdW1iZXIgPSAoY29udGVudDogc3RyaW5nKSA9PiB7XHJcbiAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwibnVtYmVyXCIgY29udGVudGVkaXRhYmxlPVwiZmFsc2VcIiB0YWJpbmRleD1cIi0xXCI+JHtjb250ZW50fTwvZGl2PiZuYnNwO2BcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGNyZWF0ZUJyYWNrZXQgPSAoY29udGVudDogc3RyaW5nKSA9PiB7XHJcbiAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiYnJhY2tldFwiIGNvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCIgdGFiaW5kZXg9XCItMVwiPiR7Y29udGVudH08L2Rpdj4mbmJzcDtgXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBjcmVhdGVUYWdPdXRzaWRlID0gKGNvbnRlbnQ6IHN0cmluZykgPT4ge1xyXG4gIHJldHVybiBgeyR7Y29udGVudH19YFxyXG59XHJcbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXRhZ3MuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybXVsYS1lZGl0b3IvaGVscGVycy9jcmVhdGUtdGFncy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUztBQUNULE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO0lBQzNDLE9BQU8sMkVBQTJFLE9BQU8sY0FBYyxDQUFBO0FBQ3pHLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO0lBQ2hELE9BQU8sMEVBQTBFLE9BQU8sY0FBYyxDQUFBO0FBQ3hHLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO0lBQzlDLE9BQU8seUVBQXlFLE9BQU8sY0FBYyxDQUFBO0FBQ3ZHLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO0lBQy9DLE9BQU8sMEVBQTBFLE9BQU8sY0FBYyxDQUFBO0FBQ3hHLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUU7SUFDbEQsT0FBTyxJQUFJLE9BQU8sR0FBRyxDQUFBO0FBQ3ZCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vICZuYnNwO1xyXG5leHBvcnQgY29uc3QgY3JlYXRlVGFnID0gKGNvbnRlbnQ6IHN0cmluZykgPT4ge1xyXG4gIHJldHVybiBgPGRpdiBjbGFzcz1cInRhZyBhcmd1bWVudCAtbWVkaXVtXCIgY29udGVudGVkaXRhYmxlPVwiZmFsc2VcIiB0YWJpbmRleD1cIi0xXCI+JHtjb250ZW50fTwvZGl2PiZuYnNwO2BcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGNyZWF0ZU9wZXJhdG9yID0gKGNvbnRlbnQ6IHN0cmluZykgPT4ge1xyXG4gIHJldHVybiBgPGRpdiBjbGFzcz1cInRhZyBvcGVyYXRvciAtbGFyZ2VcIiBjb250ZW50ZWRpdGFibGU9XCJmYWxzZVwiIHRhYmluZGV4PVwiLTFcIj4ke2NvbnRlbnR9PC9kaXY+Jm5ic3A7YFxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgY3JlYXRlTnVtYmVyID0gKGNvbnRlbnQ6IHN0cmluZykgPT4ge1xyXG4gIHJldHVybiBgPGRpdiBjbGFzcz1cInRhZyBudW1iZXIgLW1lZGl1bVwiIGNvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCIgdGFiaW5kZXg9XCItMVwiPiR7Y29udGVudH08L2Rpdj4mbmJzcDtgXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBjcmVhdGVCcmFja2V0ID0gKGNvbnRlbnQ6IHN0cmluZykgPT4ge1xyXG4gIHJldHVybiBgPGRpdiBjbGFzcz1cInRhZyBicmFja2V0IC1tZWRpdW1cIiBjb250ZW50ZWRpdGFibGU9XCJmYWxzZVwiIHRhYmluZGV4PVwiLTFcIj4ke2NvbnRlbnR9PC9kaXY+Jm5ic3A7YFxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgY3JlYXRlVGFnT3V0c2lkZSA9IChjb250ZW50OiBzdHJpbmcpID0+IHtcclxuICByZXR1cm4gYHske2NvbnRlbnR9fWBcclxufVxyXG4iXX0=
@@ -17280,16 +17280,16 @@ const ErrorMessagesEnum = {
17280
17280
 
17281
17281
  // &nbsp;
17282
17282
  const createTag = (content) => {
17283
- return `<div class="tag" contenteditable="false" tabindex="-1">${content}</div>&nbsp;`;
17283
+ return `<div class="tag argument -medium" contenteditable="false" tabindex="-1">${content}</div>&nbsp;`;
17284
17284
  };
17285
17285
  const createOperator = (content) => {
17286
- return `<div class="operator" contenteditable="false" tabindex="-1">${content}</div>&nbsp;`;
17286
+ return `<div class="tag operator -large" contenteditable="false" tabindex="-1">${content}</div>&nbsp;`;
17287
17287
  };
17288
17288
  const createNumber = (content) => {
17289
- return `<div class="number" contenteditable="false" tabindex="-1">${content}</div>&nbsp;`;
17289
+ return `<div class="tag number -medium" contenteditable="false" tabindex="-1">${content}</div>&nbsp;`;
17290
17290
  };
17291
17291
  const createBracket = (content) => {
17292
- return `<div class="bracket" contenteditable="false" tabindex="-1">${content}</div>&nbsp;`;
17292
+ return `<div class="tag bracket -medium" contenteditable="false" tabindex="-1">${content}</div>&nbsp;`;
17293
17293
  };
17294
17294
  const createTagOutside = (content) => {
17295
17295
  return `{${content}}`;
@@ -17374,6 +17374,13 @@ const checkDividerErrors = (array, list) => {
17374
17374
  };
17375
17375
  };
17376
17376
 
17377
+ var FormulaEditorSizesEnum;
17378
+ (function (FormulaEditorSizesEnum) {
17379
+ FormulaEditorSizesEnum["small"] = "mrx-formula-editor-sm";
17380
+ FormulaEditorSizesEnum["medium"] = "mrx-formula-editor-md";
17381
+ FormulaEditorSizesEnum["large"] = "mrx-formula-editor-lg";
17382
+ })(FormulaEditorSizesEnum || (FormulaEditorSizesEnum = {}));
17383
+
17377
17384
  class FormulaEditorComponent {
17378
17385
  constructor(document, _detector, eRef) {
17379
17386
  this.document = document;
@@ -17408,6 +17415,7 @@ class FormulaEditorComponent {
17408
17415
  this.readonly = false;
17409
17416
  this.placeholder = '';
17410
17417
  this.customClasses = '';
17418
+ this.size = 'large';
17411
17419
  // VALIDATE
17412
17420
  this.invalid = false;
17413
17421
  this.invalidMessage = '';
@@ -17442,7 +17450,13 @@ class FormulaEditorComponent {
17442
17450
  return this.checkInvalid === false ? 'mrx-input-checked-success' : this.checkInvalid === true ? 'mrx-input-checked-error' : '';
17443
17451
  }
17444
17452
  get getClasses() {
17445
- return `${this.customClasses} ${this.readonlyClass} ${this.checkValidClasses}`;
17453
+ return `${FormulaEditorSizesEnum[this.size]} ${this.customClasses} ${this.readonlyClass} ${this.checkValidClasses}`;
17454
+ }
17455
+ get getIconClass() {
17456
+ return `${this.size !== 'large' ? 'icon-font-16' : 'icon-font-24'}`;
17457
+ }
17458
+ get canClean() {
17459
+ return !!this.visibleValue.trim();
17446
17460
  }
17447
17461
  get _inputValue() {
17448
17462
  return this.inputElement.nativeElement.textContent || '';
@@ -17456,19 +17470,28 @@ class FormulaEditorComponent {
17456
17470
  }
17457
17471
  }
17458
17472
  onInput(event) {
17459
- const { searchText } = this._transformValue(this._modifiedValue(this._inputValue), false);
17460
- // this.updateValue(value);
17473
+ const { value, searchText } = this._transformValue(this._modifiedValue(this._inputValue), false);
17474
+ this.updateValue(value);
17461
17475
  this.searchText = searchText;
17462
17476
  this._storeCursorPosition();
17463
17477
  }
17464
- onBlur(event) {
17465
- this._storeCursorPosition();
17466
- this.blurred.emit({ value: this.value, id: this.uuid });
17467
- }
17468
17478
  onFocus(event) {
17469
17479
  this.isFocused = true;
17470
17480
  this._detector.markForCheck();
17471
17481
  }
17482
+ onClear() {
17483
+ this.updateValue('');
17484
+ this.updateVisibleValue('');
17485
+ }
17486
+ onBlur(event) {
17487
+ this._storeCursorPosition();
17488
+ }
17489
+ onKeyup(event) {
17490
+ event.preventDefault();
17491
+ this.inputElement.nativeElement.blur();
17492
+ this.isFocused = false;
17493
+ this._detector.detectChanges();
17494
+ }
17472
17495
  insertTag(whiteListItem) {
17473
17496
  this._restoreCursorPosition(this.inputElement.nativeElement);
17474
17497
  this._insertPositionText(`{${whiteListItem.sysName}}`);
@@ -17587,12 +17610,6 @@ class FormulaEditorComponent {
17587
17610
  this._range.setStart(this._cursorPosition.startContainer, this._cursorPosition.startOffset);
17588
17611
  this._range.setEnd(this._cursorPosition.endContainer, this._cursorPosition.endOffset);
17589
17612
  }
17590
- this._selection = document.getSelection();
17591
- if (this._selection) {
17592
- // this._selection.removeAllRanges();
17593
- // this._selection.addRange(this._range);
17594
- // element.focus();
17595
- }
17596
17613
  }
17597
17614
  _placeCaretAtEnd() {
17598
17615
  setTimeout(() => {
@@ -17623,18 +17640,18 @@ class FormulaEditorComponent {
17623
17640
  }
17624
17641
  }
17625
17642
  FormulaEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorComponent, deps: [{ token: DOCUMENT }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
17626
- FormulaEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FormulaEditorComponent, selector: "mrx-formula-editor", inputs: { fields: "fields", disabled: "disabled", readonly: "readonly", placeholder: "placeholder", customClasses: "customClasses", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid", items: "items" }, outputs: { changed: "changed", blurred: "blurred", modelChange: "modelChange" }, host: { listeners: { "document:click": "clickOut($event)" } }, providers: [{
17643
+ FormulaEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FormulaEditorComponent, selector: "mrx-formula-editor", inputs: { fields: "fields", disabled: "disabled", readonly: "readonly", placeholder: "placeholder", customClasses: "customClasses", size: "size", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid", items: "items" }, outputs: { changed: "changed", blurred: "blurred", modelChange: "modelChange" }, host: { listeners: { "document:click": "clickOut($event)" } }, providers: [{
17627
17644
  provide: NG_VALUE_ACCESSOR,
17628
17645
  useExisting: forwardRef(() => FormulaEditorComponent),
17629
17646
  multi: true
17630
- }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, static: true }], ngImport: i0, template: "<div\r\n class=\"mrx-formula-editor\"\r\n [class.mrx-input-error]=\"getInvalid\"\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [class]=\"getClasses\"\r\n>\r\n <div class=\"mrx-formula-editor__wrapper\">\r\n <div\r\n [innerHTML]=\"visibleValue.trim() | safe\"\r\n #inputElement\r\n class=\"mrx-formula-editor__box\"\r\n contenteditable=\"true\"\r\n [attr.data-ph]=\"placeholder\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (focus)=\"onFocus($event)\"\r\n ></div>\r\n\r\n <div class=\"mrx-formula-editor__popup\" *ngIf=\"isFocused\">\r\n <ng-container *ngIf=\"errorModel.isError && isFocused\">\r\n <div class=\"mrx-formula-editor__popup--error\">\r\n {{ getErrorMessage }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"filteredList.length; else emptyList\">\r\n <div\r\n class=\"mrx-formula-editor__popup--row\"\r\n *ngFor=\"let item of filteredList\"\r\n (click)=\"insertTag(item); $event.stopPropagation()\"\r\n >\r\n {{ item.label }}\r\n </div>\r\n </ng-container>\r\n <ng-template #emptyList>\r\n <div class=\"mrx-formula-editor__popup--row\">\r\n \u041D\u0435\u0442 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <mrx-error-message\r\n *ngIf=\"getInvalid && getErrorMessage && !isFocused\"\r\n [invalidMessage]=\"getErrorMessage\"\r\n ></mrx-error-message>\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n", styles: [".mrx-formula-editor{position:relative}.mrx-formula-editor__box{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:36px;padding:5px var(--spacing-3, 12px) 5px var(--spacing-2, 8px);border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1, 4px);outline:none;color:var(--neutral-text-primary, #262626);transition:outline-width .2s,border .2s;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space}.mrx-formula-editor__box:focus,.mrx-formula-editor__box:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-formula-editor__wrapper{position:relative}.mrx-formula-editor__box ::ng-deep .tag{display:inline-flex;font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px);border-radius:var(--border-radius-1, 4px);background:var(--brand-bg-secondary-default, #EDF5FF);padding:6px 12px;margin:0 2px;cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__box ::ng-deep .bracket{display:inline-flex;font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px);color:var(--neutral-text-tertiary, #71767E);cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__box ::ng-deep .operator{display:inline-flex;font-family:var(--body-lg-font-family, \"PT Sans\");font-size:var(--body-lg-font-size, 16px);font-weight:var(--body-lg-font-weight, 400);line-height:var(--body-lg-line-height, 24px);color:var(--system-text-attention, #AC5C06);cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__box ::ng-deep .number{display:inline-flex;font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px);color:var(--system-text-negative, #8E2100);cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__popup{position:absolute;z-index:99;width:100%;border-radius:var(--border-radius-1);background:var(--neutral-bg-island-default, #F8F9FA);box-shadow:0 1px 4px #3a3a3a4d;background-color:#fff;max-height:240px;overflow-x:hidden;overflow-y:auto;margin-top:4px}.mrx-formula-editor__popup--error{padding:var(--spacing-2) var(--spacing-4);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--system-text-negative, #8E2100)}.mrx-formula-editor__popup--row{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding:calc(var(--spacing-2) + var(--spacing-half)) var(--spacing-4);white-space:normal;transition:background-color .2s}.mrx-formula-editor__popup--row:hover{cursor:pointer;background-color:var(--Bg2)!important}.mrx-formula-editor__box:empty:not(:focus):before{content:attr(data-ph);color:var(--neutral-text-tertiary, #71767E);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);padding-left:8px}.mrx-formula-editor.-disabled .mrx-formula-editor__box{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-tertiary, #71767E);pointer-events:none}.mrx-formula-editor.-readonly .mrx-formula-editor__box{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-primary, #262626);pointer-events:none}.mrx-formula-editor.mrx-input-error .mrx-formula-editor__box{border-color:var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-error .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-checked-error .mrx-formula-editor__box{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-formula-editor.mrx-input-checked-error .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-checked-success .mrx-formula-editor__box{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-formula-editor.mrx-input-checked-success .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}\n"], components: [{ type: ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }, { type: SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "safe": SafePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
17647
+ }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, static: true }], ngImport: i0, template: "<div\r\n class=\"mrx-formula-editor\"\r\n [class.mrx-input-error]=\"getInvalid\"\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [class]=\"getClasses\"\r\n>\r\n <div class=\"mrx-formula-editor__wrapper\">\r\n <div\r\n [innerHTML]=\"visibleValue.trim() | safe\"\r\n #inputElement\r\n class=\"mrx-formula-editor__box\"\r\n contenteditable=\"true\"\r\n [attr.data-ph]=\"placeholder\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (focus)=\"onFocus($event)\"\r\n (keydown.enter)=\"onKeyup($event)\"\r\n (keydown.tab)=\"onKeyup($event)\"\r\n ></div>\r\n\r\n <div class=\"mrx-formula-editor__clear\" *ngIf=\"canClean\" (click)=\"onClear()\">\r\n <div class=\"mrx-icon icon-close\" [class]=\"getIconClass\"></div>\r\n </div>\r\n\r\n <div class=\"mrx-formula-editor__popup\" *ngIf=\"isFocused\">\r\n <ng-container *ngIf=\"errorModel.isError && isFocused\">\r\n <div class=\"mrx-formula-editor__popup--error\">\r\n {{ getErrorMessage }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"filteredList.length; else emptyList\">\r\n <div\r\n class=\"mrx-formula-editor__popup--row\"\r\n *ngFor=\"let item of filteredList\"\r\n (click)=\"insertTag(item); $event.stopPropagation()\"\r\n >\r\n {{ item.label }}\r\n </div>\r\n </ng-container>\r\n <ng-template #emptyList>\r\n <div class=\"mrx-formula-editor__popup--row\">\r\n \u041D\u0435\u0442 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <mrx-error-message\r\n *ngIf=\"getInvalid && getErrorMessage && !isFocused\"\r\n [invalidMessage]=\"getErrorMessage\"\r\n ></mrx-error-message>\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n", styles: [".mrx-formula-editor{position:relative}.mrx-formula-editor__box{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1, 4px);outline:none;color:var(--neutral-text-primary, #262626);transition:outline-width .2s,border .2s;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space}.mrx-formula-editor__box:focus,.mrx-formula-editor__box:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-formula-editor__wrapper{position:relative}.mrx-formula-editor__clear{position:absolute;top:12px;right:12px;cursor:pointer}.mrx-formula-editor__box ::ng-deep .tag{display:inline-flex;cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__box ::ng-deep .argument{border-radius:var(--border-radius-1, 4px);background:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-formula-editor__box ::ng-deep .bracket{color:var(--neutral-text-tertiary, #71767E)}.mrx-formula-editor__box ::ng-deep .operator{color:var(--system-text-attention, #AC5C06)}.mrx-formula-editor__box ::ng-deep .number{color:var(--system-text-negative, #8E2100)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box{padding:5px 44px 5px var(--spacing-2, 8px);font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:36px}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-lg-font-family, \"PT Sans\");font-size:var(--body-lg-font-size, 16px);font-weight:var(--body-lg-font-weight, 400);line-height:var(--body-lg-line-height, 24px)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.argument{padding:6px 12px;margin:0 2px}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box{padding:5px 36px 5px var(--spacing-2, 8px);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:28px}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-weight:var(--body-sm-font-weight, 400);line-height:var(--body-sm-line-height, 16px)}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.argument{padding:4px 8px;margin:0 2px}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box{padding:5px 36px 5px var(--spacing-2, 8px);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:28px}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-weight:var(--body-sm-font-weight, 400);line-height:var(--body-sm-line-height, 16px)}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.argument{padding:4px 8px;margin:0 2px}.mrx-formula-editor__popup{position:absolute;z-index:99;width:100%;border-radius:var(--border-radius-1);background:var(--neutral-bg-island-default, #F8F9FA);box-shadow:0 1px 4px #3a3a3a4d;background-color:#fff;max-height:240px;overflow-x:hidden;overflow-y:auto;margin-top:4px}.mrx-formula-editor__popup--error{padding:var(--spacing-2) var(--spacing-4);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--system-text-negative, #8E2100)}.mrx-formula-editor__popup--row{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding:calc(var(--spacing-2) + var(--spacing-half)) var(--spacing-4);white-space:normal;transition:background-color .2s}.mrx-formula-editor__popup--row:hover{cursor:pointer;background-color:var(--Bg2)!important}.mrx-formula-editor__box:empty:not(:focus):before{content:attr(data-ph);color:var(--neutral-text-tertiary, #71767E);padding-left:8px}.mrx-formula-editor.-disabled .mrx-formula-editor__box{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-tertiary, #71767E);pointer-events:none}.mrx-formula-editor.-readonly .mrx-formula-editor__box{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-primary, #262626);pointer-events:none}.mrx-formula-editor.mrx-input-error .mrx-formula-editor__box{border-color:var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-error .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-checked-error .mrx-formula-editor__box{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-formula-editor.mrx-input-checked-error .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-checked-success .mrx-formula-editor__box{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-formula-editor.mrx-input-checked-success .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}\n"], components: [{ type: ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }, { type: SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "safe": SafePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
17631
17648
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorComponent, decorators: [{
17632
17649
  type: Component,
17633
17650
  args: [{ selector: 'mrx-formula-editor', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{
17634
17651
  provide: NG_VALUE_ACCESSOR,
17635
17652
  useExisting: forwardRef(() => FormulaEditorComponent),
17636
17653
  multi: true
17637
- }], template: "<div\r\n class=\"mrx-formula-editor\"\r\n [class.mrx-input-error]=\"getInvalid\"\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [class]=\"getClasses\"\r\n>\r\n <div class=\"mrx-formula-editor__wrapper\">\r\n <div\r\n [innerHTML]=\"visibleValue.trim() | safe\"\r\n #inputElement\r\n class=\"mrx-formula-editor__box\"\r\n contenteditable=\"true\"\r\n [attr.data-ph]=\"placeholder\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (focus)=\"onFocus($event)\"\r\n ></div>\r\n\r\n <div class=\"mrx-formula-editor__popup\" *ngIf=\"isFocused\">\r\n <ng-container *ngIf=\"errorModel.isError && isFocused\">\r\n <div class=\"mrx-formula-editor__popup--error\">\r\n {{ getErrorMessage }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"filteredList.length; else emptyList\">\r\n <div\r\n class=\"mrx-formula-editor__popup--row\"\r\n *ngFor=\"let item of filteredList\"\r\n (click)=\"insertTag(item); $event.stopPropagation()\"\r\n >\r\n {{ item.label }}\r\n </div>\r\n </ng-container>\r\n <ng-template #emptyList>\r\n <div class=\"mrx-formula-editor__popup--row\">\r\n \u041D\u0435\u0442 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <mrx-error-message\r\n *ngIf=\"getInvalid && getErrorMessage && !isFocused\"\r\n [invalidMessage]=\"getErrorMessage\"\r\n ></mrx-error-message>\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n", styles: [".mrx-formula-editor{position:relative}.mrx-formula-editor__box{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:36px;padding:5px var(--spacing-3, 12px) 5px var(--spacing-2, 8px);border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1, 4px);outline:none;color:var(--neutral-text-primary, #262626);transition:outline-width .2s,border .2s;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space}.mrx-formula-editor__box:focus,.mrx-formula-editor__box:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-formula-editor__wrapper{position:relative}.mrx-formula-editor__box ::ng-deep .tag{display:inline-flex;font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px);border-radius:var(--border-radius-1, 4px);background:var(--brand-bg-secondary-default, #EDF5FF);padding:6px 12px;margin:0 2px;cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__box ::ng-deep .bracket{display:inline-flex;font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px);color:var(--neutral-text-tertiary, #71767E);cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__box ::ng-deep .operator{display:inline-flex;font-family:var(--body-lg-font-family, \"PT Sans\");font-size:var(--body-lg-font-size, 16px);font-weight:var(--body-lg-font-weight, 400);line-height:var(--body-lg-line-height, 24px);color:var(--system-text-attention, #AC5C06);cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__box ::ng-deep .number{display:inline-flex;font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px);color:var(--system-text-negative, #8E2100);cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__popup{position:absolute;z-index:99;width:100%;border-radius:var(--border-radius-1);background:var(--neutral-bg-island-default, #F8F9FA);box-shadow:0 1px 4px #3a3a3a4d;background-color:#fff;max-height:240px;overflow-x:hidden;overflow-y:auto;margin-top:4px}.mrx-formula-editor__popup--error{padding:var(--spacing-2) var(--spacing-4);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--system-text-negative, #8E2100)}.mrx-formula-editor__popup--row{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding:calc(var(--spacing-2) + var(--spacing-half)) var(--spacing-4);white-space:normal;transition:background-color .2s}.mrx-formula-editor__popup--row:hover{cursor:pointer;background-color:var(--Bg2)!important}.mrx-formula-editor__box:empty:not(:focus):before{content:attr(data-ph);color:var(--neutral-text-tertiary, #71767E);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);padding-left:8px}.mrx-formula-editor.-disabled .mrx-formula-editor__box{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-tertiary, #71767E);pointer-events:none}.mrx-formula-editor.-readonly .mrx-formula-editor__box{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-primary, #262626);pointer-events:none}.mrx-formula-editor.mrx-input-error .mrx-formula-editor__box{border-color:var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-error .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-checked-error .mrx-formula-editor__box{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-formula-editor.mrx-input-checked-error .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-checked-success .mrx-formula-editor__box{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-formula-editor.mrx-input-checked-success .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}\n"] }]
17654
+ }], template: "<div\r\n class=\"mrx-formula-editor\"\r\n [class.mrx-input-error]=\"getInvalid\"\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [class]=\"getClasses\"\r\n>\r\n <div class=\"mrx-formula-editor__wrapper\">\r\n <div\r\n [innerHTML]=\"visibleValue.trim() | safe\"\r\n #inputElement\r\n class=\"mrx-formula-editor__box\"\r\n contenteditable=\"true\"\r\n [attr.data-ph]=\"placeholder\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (focus)=\"onFocus($event)\"\r\n (keydown.enter)=\"onKeyup($event)\"\r\n (keydown.tab)=\"onKeyup($event)\"\r\n ></div>\r\n\r\n <div class=\"mrx-formula-editor__clear\" *ngIf=\"canClean\" (click)=\"onClear()\">\r\n <div class=\"mrx-icon icon-close\" [class]=\"getIconClass\"></div>\r\n </div>\r\n\r\n <div class=\"mrx-formula-editor__popup\" *ngIf=\"isFocused\">\r\n <ng-container *ngIf=\"errorModel.isError && isFocused\">\r\n <div class=\"mrx-formula-editor__popup--error\">\r\n {{ getErrorMessage }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"filteredList.length; else emptyList\">\r\n <div\r\n class=\"mrx-formula-editor__popup--row\"\r\n *ngFor=\"let item of filteredList\"\r\n (click)=\"insertTag(item); $event.stopPropagation()\"\r\n >\r\n {{ item.label }}\r\n </div>\r\n </ng-container>\r\n <ng-template #emptyList>\r\n <div class=\"mrx-formula-editor__popup--row\">\r\n \u041D\u0435\u0442 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <mrx-error-message\r\n *ngIf=\"getInvalid && getErrorMessage && !isFocused\"\r\n [invalidMessage]=\"getErrorMessage\"\r\n ></mrx-error-message>\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n", styles: [".mrx-formula-editor{position:relative}.mrx-formula-editor__box{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1, 4px);outline:none;color:var(--neutral-text-primary, #262626);transition:outline-width .2s,border .2s;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space}.mrx-formula-editor__box:focus,.mrx-formula-editor__box:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-formula-editor__wrapper{position:relative}.mrx-formula-editor__clear{position:absolute;top:12px;right:12px;cursor:pointer}.mrx-formula-editor__box ::ng-deep .tag{display:inline-flex;cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__box ::ng-deep .argument{border-radius:var(--border-radius-1, 4px);background:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-formula-editor__box ::ng-deep .bracket{color:var(--neutral-text-tertiary, #71767E)}.mrx-formula-editor__box ::ng-deep .operator{color:var(--system-text-attention, #AC5C06)}.mrx-formula-editor__box ::ng-deep .number{color:var(--system-text-negative, #8E2100)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box{padding:5px 44px 5px var(--spacing-2, 8px);font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:36px}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-lg-font-family, \"PT Sans\");font-size:var(--body-lg-font-size, 16px);font-weight:var(--body-lg-font-weight, 400);line-height:var(--body-lg-line-height, 24px)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.argument{padding:6px 12px;margin:0 2px}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box{padding:5px 36px 5px var(--spacing-2, 8px);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:28px}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-weight:var(--body-sm-font-weight, 400);line-height:var(--body-sm-line-height, 16px)}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.argument{padding:4px 8px;margin:0 2px}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box{padding:5px 36px 5px var(--spacing-2, 8px);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:28px}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-weight:var(--body-sm-font-weight, 400);line-height:var(--body-sm-line-height, 16px)}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.argument{padding:4px 8px;margin:0 2px}.mrx-formula-editor__popup{position:absolute;z-index:99;width:100%;border-radius:var(--border-radius-1);background:var(--neutral-bg-island-default, #F8F9FA);box-shadow:0 1px 4px #3a3a3a4d;background-color:#fff;max-height:240px;overflow-x:hidden;overflow-y:auto;margin-top:4px}.mrx-formula-editor__popup--error{padding:var(--spacing-2) var(--spacing-4);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--system-text-negative, #8E2100)}.mrx-formula-editor__popup--row{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding:calc(var(--spacing-2) + var(--spacing-half)) var(--spacing-4);white-space:normal;transition:background-color .2s}.mrx-formula-editor__popup--row:hover{cursor:pointer;background-color:var(--Bg2)!important}.mrx-formula-editor__box:empty:not(:focus):before{content:attr(data-ph);color:var(--neutral-text-tertiary, #71767E);padding-left:8px}.mrx-formula-editor.-disabled .mrx-formula-editor__box{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-tertiary, #71767E);pointer-events:none}.mrx-formula-editor.-readonly .mrx-formula-editor__box{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-primary, #262626);pointer-events:none}.mrx-formula-editor.mrx-input-error .mrx-formula-editor__box{border-color:var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-error .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-checked-error .mrx-formula-editor__box{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-formula-editor.mrx-input-checked-error .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-checked-success .mrx-formula-editor__box{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-formula-editor.mrx-input-checked-success .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}\n"] }]
17638
17655
  }], ctorParameters: function () {
17639
17656
  return [{ type: Document, decorators: [{
17640
17657
  type: Inject,
@@ -17650,6 +17667,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
17650
17667
  type: Input
17651
17668
  }], customClasses: [{
17652
17669
  type: Input
17670
+ }], size: [{
17671
+ type: Input
17653
17672
  }], invalid: [{
17654
17673
  type: Input
17655
17674
  }], invalidMessage: [{