myrta-ui 1.1.20 → 1.1.22

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.
Files changed (44) hide show
  1. package/esm2020/lib/components/form/formula-editor/enums/error-messages.enum.mjs +16 -0
  2. package/esm2020/lib/components/form/formula-editor/formula-editor.component.mjs +301 -0
  3. package/esm2020/lib/components/form/formula-editor/formula-editor.module.mjs +50 -0
  4. package/esm2020/lib/components/form/formula-editor/helpers/check-errors.helper.mjs +73 -0
  5. package/esm2020/lib/components/form/formula-editor/helpers/create-tags.helper.mjs +17 -0
  6. package/esm2020/lib/components/form/formula-editor/models/check-error-result.model.mjs +2 -0
  7. package/esm2020/lib/components/form/formula-editor/models/formula-editor.model.mjs +2 -0
  8. package/esm2020/lib/components/form/formula-editor/models/index.mjs +4 -0
  9. package/esm2020/lib/components/form/formula-editor/models/white-list-item.model.mjs +2 -0
  10. package/esm2020/lib/helpers/is-number.helper.mjs +7 -0
  11. package/esm2020/lib/services/mrx-form-validator/mrx-form-validator.mjs +7 -2
  12. package/esm2020/lib/services/mrx-form-validator/validations/callback.validation.mjs +2 -2
  13. package/esm2020/lib/services/mrx-form-validator/validations/email.validation.mjs +2 -2
  14. package/esm2020/lib/services/mrx-form-validator/validations/max-length.validation.mjs +2 -2
  15. package/esm2020/lib/services/mrx-form-validator/validations/max-value.validation.mjs +2 -2
  16. package/esm2020/lib/services/mrx-form-validator/validations/min-length.validation.mjs +2 -2
  17. package/esm2020/lib/services/mrx-form-validator/validations/min-value.validation.mjs +2 -2
  18. package/esm2020/lib/services/mrx-form-validator/validations/pattern.validation.mjs +2 -2
  19. package/esm2020/lib/services/mrx-form-validator/validations/required.validation.mjs +2 -2
  20. package/esm2020/public-api.mjs +4 -1
  21. package/fesm2015/myrta-ui.mjs +464 -17
  22. package/fesm2015/myrta-ui.mjs.map +1 -1
  23. package/fesm2020/myrta-ui.mjs +462 -17
  24. package/fesm2020/myrta-ui.mjs.map +1 -1
  25. package/lib/components/form/formula-editor/enums/error-messages.enum.d.ts +8 -0
  26. package/lib/components/form/formula-editor/formula-editor.component.d.ts +67 -0
  27. package/lib/components/form/formula-editor/formula-editor.module.d.ts +14 -0
  28. package/lib/components/form/formula-editor/helpers/check-errors.helper.d.ts +6 -0
  29. package/lib/components/form/formula-editor/helpers/create-tags.helper.d.ts +5 -0
  30. package/lib/components/form/formula-editor/models/check-error-result.model.d.ts +5 -0
  31. package/lib/components/form/formula-editor/models/formula-editor.model.d.ts +5 -0
  32. package/lib/components/form/formula-editor/models/index.d.ts +3 -0
  33. package/lib/components/form/formula-editor/models/white-list-item.model.d.ts +4 -0
  34. package/lib/helpers/is-number.helper.d.ts +1 -0
  35. package/lib/services/mrx-form-validator/validations/callback.validation.d.ts +1 -1
  36. package/lib/services/mrx-form-validator/validations/email.validation.d.ts +1 -1
  37. package/lib/services/mrx-form-validator/validations/max-length.validation.d.ts +1 -1
  38. package/lib/services/mrx-form-validator/validations/max-value.validation.d.ts +1 -1
  39. package/lib/services/mrx-form-validator/validations/min-length.validation.d.ts +1 -1
  40. package/lib/services/mrx-form-validator/validations/min-value.validation.d.ts +1 -1
  41. package/lib/services/mrx-form-validator/validations/pattern.validation.d.ts +1 -1
  42. package/lib/services/mrx-form-validator/validations/required.validation.d.ts +1 -1
  43. package/package.json +1 -1
  44. package/public-api.d.ts +3 -0
@@ -0,0 +1,16 @@
1
+ export var ErrorTypeEnum;
2
+ (function (ErrorTypeEnum) {
3
+ ErrorTypeEnum["Default"] = "default";
4
+ ErrorTypeEnum["Interpretation"] = "interpretation";
5
+ ErrorTypeEnum["Sequence"] = "sequence";
6
+ ErrorTypeEnum["Divider"] = "divider";
7
+ ErrorTypeEnum["Bracket"] = "bracket";
8
+ })(ErrorTypeEnum || (ErrorTypeEnum = {}));
9
+ export const ErrorMessagesEnum = {
10
+ [ErrorTypeEnum.Default]: '',
11
+ [ErrorTypeEnum.Interpretation]: 'Не удалось интерпретировать введенное значение',
12
+ [ErrorTypeEnum.Sequence]: 'Некорректная последовательность элементов',
13
+ [ErrorTypeEnum.Divider]: 'Некорректный разделитель',
14
+ [ErrorTypeEnum.Bracket]: 'Не все скобки закрыты'
15
+ };
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItbWVzc2FnZXMuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2Zvcm11bGEtZWRpdG9yL2VudW1zL2Vycm9yLW1lc3NhZ2VzLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksYUFNWDtBQU5ELFdBQVksYUFBYTtJQUN2QixvQ0FBbUIsQ0FBQTtJQUNuQixrREFBaUMsQ0FBQTtJQUNqQyxzQ0FBcUIsQ0FBQTtJQUNyQixvQ0FBbUIsQ0FBQTtJQUNuQixvQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTlcsYUFBYSxLQUFiLGFBQWEsUUFNeEI7QUFFRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBa0M7SUFDOUQsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRTtJQUMzQixDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRSxnREFBZ0Q7SUFDaEYsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsMkNBQTJDO0lBQ3JFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLDBCQUEwQjtJQUNuRCxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSx1QkFBdUI7Q0FDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEVycm9yVHlwZUVudW0ge1xyXG4gIERlZmF1bHQgPSAnZGVmYXVsdCcsXHJcbiAgSW50ZXJwcmV0YXRpb24gPSAnaW50ZXJwcmV0YXRpb24nLFxyXG4gIFNlcXVlbmNlID0gJ3NlcXVlbmNlJyxcclxuICBEaXZpZGVyID0gJ2RpdmlkZXInLFxyXG4gIEJyYWNrZXQgPSAnYnJhY2tldCcsXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBFcnJvck1lc3NhZ2VzRW51bTogUmVjb3JkPEVycm9yVHlwZUVudW0sIHN0cmluZz4gPSB7XHJcbiAgW0Vycm9yVHlwZUVudW0uRGVmYXVsdF06ICcnLFxyXG4gIFtFcnJvclR5cGVFbnVtLkludGVycHJldGF0aW9uXTogJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0LjQvdGC0LXRgNC/0YDQtdGC0LjRgNC+0LLQsNGC0Ywg0LLQstC10LTQtdC90L3QvtC1INC30L3QsNGH0LXQvdC40LUnLFxyXG4gIFtFcnJvclR5cGVFbnVtLlNlcXVlbmNlXTogJ9Cd0LXQutC+0YDRgNC10LrRgtC90LDRjyDQv9C+0YHQu9C10LTQvtCy0LDRgtC10LvRjNC90L7RgdGC0Ywg0Y3Qu9C10LzQtdC90YLQvtCyJyxcclxuICBbRXJyb3JUeXBlRW51bS5EaXZpZGVyXTogJ9Cd0LXQutC+0YDRgNC10LrRgtC90YvQuSDRgNCw0LfQtNC10LvQuNGC0LXQu9GMJyxcclxuICBbRXJyb3JUeXBlRW51bS5CcmFja2V0XTogJ9Cd0LUg0LLRgdC1INGB0LrQvtCx0LrQuCDQt9Cw0LrRgNGL0YLRiydcclxufTtcclxuXHJcbiJdfQ==
@@ -0,0 +1,301 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, HostListener, Inject, Input, Output, ViewChild, } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { DOCUMENT } from '@angular/common';
4
+ import { v4 as uuidv4 } from 'uuid';
5
+ import { ErrorMessagesEnum, ErrorTypeEnum } from './enums/error-messages.enum';
6
+ import { createBracket, createNumber, createOperator, createTag, createTagOutside } from './helpers/create-tags.helper';
7
+ import { isAn } from '../../../helpers/is-number.helper';
8
+ import { checkBracketErrors, checkDividerErrors, checkInterpretationErrors, checkSequenceErrors } from './helpers/check-errors.helper';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../../error-message/error-message.component";
11
+ import * as i2 from "../../save-state/save-state.component";
12
+ import * as i3 from "@angular/common";
13
+ import * as i4 from "../../../pipes/safe/safe.pipe";
14
+ export class FormulaEditorComponent {
15
+ constructor(document, _detector, eRef) {
16
+ this.document = document;
17
+ this._detector = _detector;
18
+ this.eRef = eRef;
19
+ this._selection = null;
20
+ this._cursorPosition = {
21
+ startContainer: null,
22
+ endContainer: null,
23
+ startOffset: 0,
24
+ endOffset: 0
25
+ };
26
+ this.searchText = '';
27
+ this.operatorList = ['+', '-', '*', '/'];
28
+ this.bracketList = ['(', ')'];
29
+ this.value = '';
30
+ this.visibleValue = '';
31
+ this.isFocused = false;
32
+ this.errorModel = {
33
+ isError: false,
34
+ errorType: ErrorTypeEnum.Default
35
+ };
36
+ // SAVE STATE
37
+ this.uuid = uuidv4();
38
+ this.fields = [];
39
+ this.whiteList = [];
40
+ this.disabled = false;
41
+ this.readonly = false;
42
+ this.placeholder = '';
43
+ this.customClasses = '';
44
+ // VALIDATE
45
+ this.invalid = false;
46
+ this.invalidMessage = '';
47
+ this.checkInvalid = null;
48
+ this.changed = new EventEmitter();
49
+ this.blurred = new EventEmitter();
50
+ this.modelChange = new EventEmitter();
51
+ this.onChange = (value) => {
52
+ };
53
+ this.onTouched = () => {
54
+ };
55
+ }
56
+ get getErrorMessage() {
57
+ return this.invalidMessage || ErrorMessagesEnum[this.errorModel.errorType];
58
+ }
59
+ get filteredList() {
60
+ return this.whiteList.filter(item => item.label.includes(this.searchText));
61
+ }
62
+ get getInvalid() {
63
+ return this.errorModel.isError || this.invalid;
64
+ }
65
+ get readonlyClass() {
66
+ return this.readonly ? 'mrx-input__readonly' : '';
67
+ }
68
+ get checkValidClasses() {
69
+ return this.checkInvalid === false ? 'mrx-input-checked-success' : this.checkInvalid === true ? 'mrx-input-checked-error' : '';
70
+ }
71
+ get getClasses() {
72
+ return `${this.customClasses} ${this.readonlyClass} ${this.checkValidClasses}`;
73
+ }
74
+ get _inputValue() {
75
+ return this.inputElement.nativeElement.textContent || '';
76
+ }
77
+ writeValue(outsideValue) {
78
+ if (outsideValue !== null) {
79
+ this.value = outsideValue;
80
+ this.visibleValue = this._transformValue(this._modifiedValue(outsideValue)).visibleValue;
81
+ }
82
+ }
83
+ onInput(event) {
84
+ const { value, searchText } = this._transformValue(this._inputValue, false);
85
+ this.updateValue(value);
86
+ this.searchText = searchText;
87
+ this._storeCursorPosition();
88
+ }
89
+ onBlur(event) {
90
+ this._storeCursorPosition();
91
+ this.blurred.emit({ value: this.value, id: this.uuid });
92
+ }
93
+ onFocus(event) {
94
+ this.isFocused = true;
95
+ this._detector.markForCheck();
96
+ }
97
+ insertTag(whiteListItem) {
98
+ this._restoreCursorPosition(this.inputElement.nativeElement);
99
+ this._insertPositionText(whiteListItem.label);
100
+ setTimeout(() => {
101
+ const { value, visibleValue } = this._transformValue(this._inputValue, false);
102
+ this.updateValue(value);
103
+ this.updateVisibleValue(visibleValue);
104
+ });
105
+ this._placeCaretAtEnd();
106
+ this.searchText = '';
107
+ }
108
+ updateVisibleValue(insideValue) {
109
+ this.visibleValue = insideValue;
110
+ this._storeCursorPosition();
111
+ }
112
+ updateValue(insideValue) {
113
+ this.value = insideValue;
114
+ this.changed.emit(insideValue);
115
+ this.modelChange.emit({ value: insideValue, id: this.uuid });
116
+ this.onChange(insideValue);
117
+ this.onTouched();
118
+ }
119
+ _modifiedValue(value) {
120
+ const clearedValue = value.trim().split(' ').filter(e => e !== '');
121
+ return clearedValue.map(v => {
122
+ const findItem = this.whiteList.find(w => `{${w.sysName}}` === v);
123
+ return findItem ? findItem.label : v;
124
+ }).join(' ');
125
+ }
126
+ _transformValue(content, analise = false) {
127
+ const valueArray = content.split(/[\s\u00A0]+/).filter(e => e !== '');
128
+ const visibleValueArray = [];
129
+ const originalValueArray = [];
130
+ let isInterpretationError = false;
131
+ let searchText = '';
132
+ valueArray.forEach((item, index, array) => {
133
+ const clearedItem = item.trim();
134
+ const findItem = this.whiteList.find(v => clearedItem.includes(v.label));
135
+ if (findItem) {
136
+ visibleValueArray.push(createTag(findItem.label));
137
+ originalValueArray.push(createTagOutside(findItem.sysName));
138
+ }
139
+ else if (this.bracketList.find(v => v === clearedItem)) {
140
+ visibleValueArray.push(createBracket(clearedItem));
141
+ originalValueArray.push(clearedItem);
142
+ }
143
+ else if (this.operatorList.find(v => v === clearedItem)) {
144
+ visibleValueArray.push(createOperator(clearedItem));
145
+ originalValueArray.push(clearedItem);
146
+ }
147
+ else if (isAn(clearedItem)) {
148
+ visibleValueArray.push(createNumber(clearedItem));
149
+ originalValueArray.push(clearedItem);
150
+ }
151
+ else {
152
+ visibleValueArray.push(clearedItem);
153
+ originalValueArray.push(clearedItem);
154
+ searchText = clearedItem;
155
+ isInterpretationError = true;
156
+ }
157
+ });
158
+ if (analise) {
159
+ this._checkErrors(originalValueArray, isInterpretationError);
160
+ }
161
+ return {
162
+ value: originalValueArray.join(' '),
163
+ visibleValue: visibleValueArray.join(' '),
164
+ searchText: searchText
165
+ };
166
+ }
167
+ _checkErrors(valueArray, isInterpretationError) {
168
+ this._disableError();
169
+ this._toggleError(checkBracketErrors(valueArray));
170
+ this._toggleError(checkDividerErrors(valueArray, this.whiteList));
171
+ this._toggleError(checkSequenceErrors(valueArray, this.operatorList, this.bracketList));
172
+ this._toggleError(checkInterpretationErrors(isInterpretationError));
173
+ }
174
+ _toggleError(errorModel) {
175
+ if (!this.errorModel.isError) {
176
+ this.errorModel = errorModel;
177
+ }
178
+ this._detector.detectChanges();
179
+ }
180
+ _disableError() {
181
+ this.errorModel = {
182
+ isError: false,
183
+ errorType: ErrorTypeEnum.Default
184
+ };
185
+ this._detector.detectChanges();
186
+ }
187
+ _insertPositionText(content) {
188
+ const node = document.createTextNode(content);
189
+ try {
190
+ if (this._range) {
191
+ this._range.deleteContents();
192
+ this._range.insertNode(node);
193
+ this._range = this._range.cloneRange();
194
+ this._range.selectNodeContents(node);
195
+ this._range.collapse(false);
196
+ }
197
+ }
198
+ catch (e) {
199
+ }
200
+ }
201
+ _storeCursorPosition() {
202
+ this._selection = window.getSelection();
203
+ if (this._selection && this._selection.rangeCount > 0) {
204
+ this._range = this._selection.getRangeAt(0);
205
+ this._cursorPosition.startContainer = this._range.startContainer;
206
+ this._cursorPosition.endContainer = this._range.endContainer;
207
+ this._cursorPosition.startOffset = this._range.startOffset;
208
+ this._cursorPosition.endOffset = this._range.endOffset;
209
+ }
210
+ this._detector.detectChanges();
211
+ }
212
+ _restoreCursorPosition(element) {
213
+ this._range = document.createRange();
214
+ if (this._cursorPosition.startContainer && this._cursorPosition.endContainer) {
215
+ this._range.setStart(this._cursorPosition.startContainer, this._cursorPosition.startOffset);
216
+ this._range.setEnd(this._cursorPosition.endContainer, this._cursorPosition.endOffset);
217
+ }
218
+ this._selection = document.getSelection();
219
+ if (this._selection) {
220
+ this._selection.removeAllRanges();
221
+ this._selection.addRange(this._range);
222
+ element.focus();
223
+ }
224
+ }
225
+ _placeCaretAtEnd() {
226
+ setTimeout(() => {
227
+ this._range = document.createRange();
228
+ this._selection = document.getSelection();
229
+ if (this._selection) {
230
+ this._range.selectNodeContents(this.inputElement.nativeElement);
231
+ this._range.collapse(false);
232
+ this._selection.removeAllRanges();
233
+ this._selection.addRange(this._range);
234
+ this.inputElement.nativeElement.focus();
235
+ }
236
+ });
237
+ }
238
+ clickOut(event) {
239
+ if (!this.eRef.nativeElement.contains(event.target)) {
240
+ const { value, visibleValue } = this._transformValue(this._inputValue, true);
241
+ this.updateValue(value);
242
+ this.updateVisibleValue(visibleValue);
243
+ this.isFocused = false;
244
+ this._detector.detectChanges();
245
+ }
246
+ }
247
+ registerOnChange(fn) {
248
+ this.onChange = fn;
249
+ }
250
+ registerOnTouched(fn) {
251
+ this.onTouched = fn;
252
+ }
253
+ }
254
+ 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 });
255
+ FormulaEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FormulaEditorComponent, selector: "mrx-formula-editor", inputs: { fields: "fields", whiteList: "whiteList", disabled: "disabled", readonly: "readonly", placeholder: "placeholder", customClasses: "customClasses", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid" }, outputs: { changed: "changed", blurred: "blurred", modelChange: "modelChange" }, host: { listeners: { "document:click": "clickOut($event)" } }, providers: [{
256
+ provide: NG_VALUE_ACCESSOR,
257
+ useExisting: forwardRef(() => FormulaEditorComponent),
258
+ multi: true
259
+ }], 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;width:100%;border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);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 });
260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorComponent, decorators: [{
261
+ type: Component,
262
+ args: [{ selector: 'mrx-formula-editor', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{
263
+ provide: NG_VALUE_ACCESSOR,
264
+ useExisting: forwardRef(() => FormulaEditorComponent),
265
+ multi: true
266
+ }], 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;width:100%;border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);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"] }]
267
+ }], ctorParameters: function () { return [{ type: Document, decorators: [{
268
+ type: Inject,
269
+ args: [DOCUMENT]
270
+ }] }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { fields: [{
271
+ type: Input
272
+ }], whiteList: [{
273
+ type: Input
274
+ }], disabled: [{
275
+ type: Input
276
+ }], readonly: [{
277
+ type: Input
278
+ }], placeholder: [{
279
+ type: Input
280
+ }], customClasses: [{
281
+ type: Input
282
+ }], invalid: [{
283
+ type: Input
284
+ }], invalidMessage: [{
285
+ type: Input
286
+ }], checkInvalid: [{
287
+ type: Input
288
+ }], inputElement: [{
289
+ type: ViewChild,
290
+ args: ['inputElement', { static: true }]
291
+ }], changed: [{
292
+ type: Output
293
+ }], blurred: [{
294
+ type: Output
295
+ }], modelChange: [{
296
+ type: Output
297
+ }], clickOut: [{
298
+ type: HostListener,
299
+ args: ['document:click', ['$event']]
300
+ }] } });
301
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXVsYS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybXVsYS1lZGl0b3IvZm9ybXVsYS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybXVsYS1lZGl0b3IvZm9ybXVsYS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQWMsWUFBWSxFQUNuQyxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQ3ZDLE1BQU0sRUFBRSxTQUFTLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4SCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFekQsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLG1CQUFtQixFQUNwQixNQUFNLCtCQUErQixDQUFDOzs7Ozs7QUFnQnZDLE1BQU0sT0FBTyxzQkFBc0I7SUFvRGpDLFlBQzRCLFFBQWtC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SyxFQUFFLElBQUk7eUJBQ1osQ0FBQzswREF1RG9DLFFBQVE7MEJBQTNDLE1BQU07MkJBQUMsUUFBUTtxR0FyQkYsTUFBTTtzQkFBckIsS0FBSztnQkFFVSxTQUFTO3NCQUF4QixLQUFLO2dCQUVVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBR1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBRXFDLFlBQVk7c0JBQXRELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFFeEIsT0FBTztzQkFBdkIsTUFBTTtnQkFDVSxPQUFPO3NCQUF2QixNQUFNO2dCQUNVLFdBQVc7c0JBQTNCLE1BQU07Z0JBd09QLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCxcclxuICBPdXRwdXQsIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgRXJyb3JNZXNzYWdlc0VudW0sIEVycm9yVHlwZUVudW0gfSBmcm9tICcuL2VudW1zL2Vycm9yLW1lc3NhZ2VzLmVudW0nO1xyXG5pbXBvcnQgeyBjcmVhdGVCcmFja2V0LCBjcmVhdGVOdW1iZXIsIGNyZWF0ZU9wZXJhdG9yLCBjcmVhdGVUYWcsIGNyZWF0ZVRhZ091dHNpZGUgfSBmcm9tICcuL2hlbHBlcnMvY3JlYXRlLXRhZ3MuaGVscGVyJztcclxuaW1wb3J0IHsgaXNBbiB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvaXMtbnVtYmVyLmhlbHBlcic7XHJcbmltcG9ydCB7IFdoaXRlTGlzdEl0ZW1Nb2RlbCB9IGZyb20gJy4vbW9kZWxzL3doaXRlLWxpc3QtaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgY2hlY2tCcmFja2V0RXJyb3JzLFxyXG4gIGNoZWNrRGl2aWRlckVycm9ycyxcclxuICBjaGVja0ludGVycHJldGF0aW9uRXJyb3JzLFxyXG4gIGNoZWNrU2VxdWVuY2VFcnJvcnNcclxufSBmcm9tICcuL2hlbHBlcnMvY2hlY2stZXJyb3JzLmhlbHBlcic7XHJcbmltcG9ydCB7IENoZWNrRXJyb3JSZXN1bHRNb2RlbCB9IGZyb20gJy4vbW9kZWxzL2NoZWNrLWVycm9yLXJlc3VsdC5tb2RlbCc7XHJcbmltcG9ydCB7IEZvcm11bGFFZGl0b3JWYWx1ZVR5cGVzLCBGb3JtdWxhRWRpdG9yVmFsdWVXaXRoSWQgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IElucHV0VGV4dFNpemVzRW51bSB9IGZyb20gJy4uL2lucHV0LXRleHQvaW5wdXQtdGV4dC5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LWZvcm11bGEtZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybXVsYS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm11bGEtZWRpdG9yLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb3JtdWxhRWRpdG9yQ29tcG9uZW50KSxcclxuICAgIG11bHRpOiB0cnVlXHJcbiAgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm11bGFFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgcHJpdmF0ZSBfcmFuZ2U6IGFueTtcclxuICBwcml2YXRlIF9zZWxlY3Rpb246IFNlbGVjdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgX2N1cnNvclBvc2l0aW9uOiB7XHJcbiAgICBzdGFydENvbnRhaW5lcjogTm9kZSB8IG51bGwsXHJcbiAgICBlbmRDb250YWluZXI6IE5vZGUgfCBudWxsLFxyXG4gICAgc3RhcnRPZmZzZXQ6IG51bWJlcixcclxuICAgIGVuZE9mZnNldDogbnVtYmVyXHJcbiAgfSA9IHtcclxuICAgIHN0YXJ0Q29udGFpbmVyOiBudWxsLFxyXG4gICAgZW5kQ29udGFpbmVyOiBudWxsLFxyXG4gICAgc3RhcnRPZmZzZXQ6IDAsXHJcbiAgICBlbmRPZmZzZXQ6IDBcclxuICB9O1xyXG5cclxuICBwcml2YXRlIHNlYXJjaFRleHQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBwcml2YXRlIG9wZXJhdG9yTGlzdDogc3RyaW5nW10gPSBbJysnLCAnLScsICcqJywgJy8nXTtcclxuICBwcml2YXRlIGJyYWNrZXRMaXN0OiBzdHJpbmdbXSA9IFsnKCcsICcpJ107XHJcblxyXG4gIHB1YmxpYyB2YWx1ZSA9ICcnO1xyXG4gIHB1YmxpYyB2aXNpYmxlVmFsdWUgPSAnJztcclxuXHJcbiAgcHVibGljIGlzRm9jdXNlZCA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgZXJyb3JNb2RlbDogQ2hlY2tFcnJvclJlc3VsdE1vZGVsID0ge1xyXG4gICAgaXNFcnJvcjogZmFsc2UsXHJcbiAgICBlcnJvclR5cGU6IEVycm9yVHlwZUVudW0uRGVmYXVsdFxyXG4gIH07XHJcblxyXG4gIC8vIFNBVkUgU1RBVEVcclxuICBwdWJsaWMgdXVpZDogc3RyaW5nID0gdXVpZHY0KCk7XHJcbiAgQElucHV0KCkgcHVibGljIGZpZWxkczogRmllbGRbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgd2hpdGVMaXN0OiBXaGl0ZUxpc3RJdGVtTW9kZWxbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgcmVhZG9ubHkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXIgPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tQ2xhc3NlcyA9ICcnO1xyXG5cclxuICAvLyBWQUxJREFURVxyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGludmFsaWRNZXNzYWdlOiBzdHJpbmcgfCBzdHJpbmdbXSA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjaGVja0ludmFsaWQ6IHRydWUgfCBmYWxzZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBAVmlld0NoaWxkKCdpbnB1dEVsZW1lbnQnLCB7c3RhdGljOiB0cnVlfSkgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBjaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Rm9ybXVsYUVkaXRvclZhbHVlVHlwZXM+ID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtdWxhRWRpdG9yVmFsdWVUeXBlcz4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIGJsdXJyZWQ6IEV2ZW50RW1pdHRlcjxGb3JtdWxhRWRpdG9yVmFsdWVXaXRoSWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtdWxhRWRpdG9yVmFsdWVXaXRoSWQ+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBtb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPEZvcm11bGFFZGl0b3JWYWx1ZVdpdGhJZD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm11bGFFZGl0b3JWYWx1ZVdpdGhJZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcclxuICAgIHByaXZhdGUgX2RldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgZVJlZjogRWxlbWVudFJlZlxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRFcnJvck1lc3NhZ2UoKTogc3RyaW5nIHwgc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZE1lc3NhZ2UgfHwgRXJyb3JNZXNzYWdlc0VudW1bdGhpcy5lcnJvck1vZGVsLmVycm9yVHlwZV07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZpbHRlcmVkTGlzdCgpOiBXaGl0ZUxpc3RJdGVtTW9kZWxbXSB7XHJcbiAgICByZXR1cm4gdGhpcy53aGl0ZUxpc3QuZmlsdGVyKGl0ZW0gPT4gaXRlbS5sYWJlbC5pbmNsdWRlcyh0aGlzLnNlYXJjaFRleHQpKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRJbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZXJyb3JNb2RlbC5pc0Vycm9yIHx8IHRoaXMuaW52YWxpZFxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByZWFkb25seUNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5yZWFkb25seSA/ICdtcngtaW5wdXRfX3JlYWRvbmx5JyA6ICcnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjaGVja1ZhbGlkQ2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tJbnZhbGlkID09PSBmYWxzZSA/ICdtcngtaW5wdXQtY2hlY2tlZC1zdWNjZXNzJyA6IHRoaXMuY2hlY2tJbnZhbGlkID09PSB0cnVlID8gJ21yeC1pbnB1dC1jaGVja2VkLWVycm9yJyA6ICcnXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldENsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHt0aGlzLmN1c3RvbUNsYXNzZXN9ICR7dGhpcy5yZWFkb25seUNsYXNzfSAke3RoaXMuY2hlY2tWYWxpZENsYXNzZXN9YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0IF9pbnB1dFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudCB8fCAnJztcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUob3V0c2lkZVZhbHVlOiBGb3JtdWxhRWRpdG9yVmFsdWVUeXBlcyk6IHZvaWQge1xyXG4gICAgaWYgKG91dHNpZGVWYWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gb3V0c2lkZVZhbHVlO1xyXG4gICAgICB0aGlzLnZpc2libGVWYWx1ZSA9IHRoaXMuX3RyYW5zZm9ybVZhbHVlKHRoaXMuX21vZGlmaWVkVmFsdWUob3V0c2lkZVZhbHVlKSkudmlzaWJsZVZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25JbnB1dChldmVudDogRXZlbnQpIHtcclxuICAgIGNvbnN0IHt2YWx1ZSwgc2VhcmNoVGV4dH0gPSB0aGlzLl90cmFuc2Zvcm1WYWx1ZSh0aGlzLl9pbnB1dFZhbHVlLCBmYWxzZSk7XHJcblxyXG4gICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XHJcbiAgICB0aGlzLnNlYXJjaFRleHQgPSBzZWFyY2hUZXh0XHJcblxyXG4gICAgdGhpcy5fc3RvcmVDdXJzb3JQb3NpdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5fc3RvcmVDdXJzb3JQb3NpdGlvbigpO1xyXG4gICAgdGhpcy5ibHVycmVkLmVtaXQoe3ZhbHVlOiB0aGlzLnZhbHVlLCBpZDogdGhpcy51dWlkfSlcclxuICB9XHJcblxyXG4gIG9uRm9jdXMoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XHJcbiAgICB0aGlzLl9kZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIGluc2VydFRhZyh3aGl0ZUxpc3RJdGVtOiBXaGl0ZUxpc3RJdGVtTW9kZWwpIHtcclxuICAgIHRoaXMuX3Jlc3RvcmVDdXJzb3JQb3NpdGlvbih0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50KTtcclxuICAgIHRoaXMuX2luc2VydFBvc2l0aW9uVGV4dCh3aGl0ZUxpc3RJdGVtLmxhYmVsKTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3Qge3ZhbHVlLCB2aXNpYmxlVmFsdWV9ID0gdGhpcy5fdHJhbnNmb3JtVmFsdWUodGhpcy5faW5wdXRWYWx1ZSwgZmFsc2UpO1xyXG5cclxuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgIHRoaXMudXBkYXRlVmlzaWJsZVZhbHVlKHZpc2libGVWYWx1ZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLl9wbGFjZUNhcmV0QXRFbmQoKTtcclxuICAgIHRoaXMuc2VhcmNoVGV4dCA9ICcnXHJcbiAgfVxyXG5cclxuICB1cGRhdGVWaXNpYmxlVmFsdWUoaW5zaWRlVmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy52aXNpYmxlVmFsdWUgPSBpbnNpZGVWYWx1ZTtcclxuICAgIHRoaXMuX3N0b3JlQ3Vyc29yUG9zaXRpb24oKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVZhbHVlKGluc2lkZVZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudmFsdWUgPSBpbnNpZGVWYWx1ZTtcclxuICAgIHRoaXMuY2hhbmdlZC5lbWl0KGluc2lkZVZhbHVlKTtcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh7dmFsdWU6IGluc2lkZVZhbHVlLCBpZDogdGhpcy51dWlkfSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKGluc2lkZVZhbHVlKTtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9tb2RpZmllZFZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgY2xlYXJlZFZhbHVlOiBzdHJpbmdbXSA9IHZhbHVlLnRyaW0oKS5zcGxpdCgnICcpLmZpbHRlcihlID0+IGUgIT09ICcnKTtcclxuXHJcbiAgICByZXR1cm4gY2xlYXJlZFZhbHVlLm1hcCh2ID0+IHtcclxuICAgICAgY29uc3QgZmluZEl0ZW0gPSB0aGlzLndoaXRlTGlzdC5maW5kKHcgPT4gYHske3cuc3lzTmFtZX19YCA9PT0gdik7XHJcbiAgICAgIHJldHVybiBmaW5kSXRlbSA/IGZpbmRJdGVtLmxhYmVsIDogdjtcclxuICAgIH0pLmpvaW4oJyAnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RyYW5zZm9ybVZhbHVlKGNvbnRlbnQ6IHN0cmluZywgYW5hbGlzZTogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICBjb25zdCB2YWx1ZUFycmF5ID0gY29udGVudC5zcGxpdCgvW1xcc1xcdTAwQTBdKy8pLmZpbHRlcihlID0+IGUgIT09ICcnKTtcclxuICAgIGNvbnN0IHZpc2libGVWYWx1ZUFycmF5OiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgY29uc3Qgb3JpZ2luYWxWYWx1ZUFycmF5OiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgIGxldCBpc0ludGVycHJldGF0aW9uRXJyb3IgPSBmYWxzZTtcclxuXHJcbiAgICBsZXQgc2VhcmNoVGV4dCA9ICcnXHJcblxyXG4gICAgdmFsdWVBcnJheS5mb3JFYWNoKChpdGVtLCBpbmRleCwgYXJyYXkpID0+IHtcclxuICAgICAgY29uc3QgY2xlYXJlZEl0ZW0gPSBpdGVtLnRyaW0oKTtcclxuICAgICAgY29uc3QgZmluZEl0ZW0gPSB0aGlzLndoaXRlTGlzdC5maW5kKHYgPT4gY2xlYXJlZEl0ZW0uaW5jbHVkZXModi5sYWJlbCkgKTtcclxuXHJcbiAgICAgIGlmIChmaW5kSXRlbSkge1xyXG4gICAgICAgIHZpc2libGVWYWx1ZUFycmF5LnB1c2goY3JlYXRlVGFnKGZpbmRJdGVtLmxhYmVsKSk7XHJcbiAgICAgICAgb3JpZ2luYWxWYWx1ZUFycmF5LnB1c2goY3JlYXRlVGFnT3V0c2lkZShmaW5kSXRlbS5zeXNOYW1lKSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5icmFja2V0TGlzdC5maW5kKHYgPT4gdiA9PT0gY2xlYXJlZEl0ZW0pKSB7XHJcbiAgICAgICAgdmlzaWJsZVZhbHVlQXJyYXkucHVzaChjcmVhdGVCcmFja2V0KGNsZWFyZWRJdGVtKSk7XHJcbiAgICAgICAgb3JpZ2luYWxWYWx1ZUFycmF5LnB1c2goY2xlYXJlZEl0ZW0pO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMub3BlcmF0b3JMaXN0LmZpbmQodiA9PiB2ID09PSBjbGVhcmVkSXRlbSkpIHtcclxuICAgICAgICB2aXNpYmxlVmFsdWVBcnJheS5wdXNoKGNyZWF0ZU9wZXJhdG9yKGNsZWFyZWRJdGVtKSk7XHJcbiAgICAgICAgb3JpZ2luYWxWYWx1ZUFycmF5LnB1c2goY2xlYXJlZEl0ZW0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGlzQW4oY2xlYXJlZEl0ZW0pKSB7XHJcbiAgICAgICAgdmlzaWJsZVZhbHVlQXJyYXkucHVzaChjcmVhdGVOdW1iZXIoY2xlYXJlZEl0ZW0pKTtcclxuICAgICAgICBvcmlnaW5hbFZhbHVlQXJyYXkucHVzaChjbGVhcmVkSXRlbSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdmlzaWJsZVZhbHVlQXJyYXkucHVzaChjbGVhcmVkSXRlbSk7XHJcbiAgICAgICAgb3JpZ2luYWxWYWx1ZUFycmF5LnB1c2goY2xlYXJlZEl0ZW0pO1xyXG4gICAgICAgIHNlYXJjaFRleHQgPSBjbGVhcmVkSXRlbVxyXG5cclxuICAgICAgICBpc0ludGVycHJldGF0aW9uRXJyb3IgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoYW5hbGlzZSkge1xyXG4gICAgICB0aGlzLl9jaGVja0Vycm9ycyhvcmlnaW5hbFZhbHVlQXJyYXksIGlzSW50ZXJwcmV0YXRpb25FcnJvcik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdmFsdWU6IG9yaWdpbmFsVmFsdWVBcnJheS5qb2luKCcgJyksXHJcbiAgICAgIHZpc2libGVWYWx1ZTogdmlzaWJsZVZhbHVlQXJyYXkuam9pbignICcpLFxyXG4gICAgICBzZWFyY2hUZXh0OiBzZWFyY2hUZXh0XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2hlY2tFcnJvcnModmFsdWVBcnJheTogc3RyaW5nW10sIGlzSW50ZXJwcmV0YXRpb25FcnJvcjogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZGlzYWJsZUVycm9yKCk7XHJcblxyXG4gICAgdGhpcy5fdG9nZ2xlRXJyb3IoY2hlY2tCcmFja2V0RXJyb3JzKHZhbHVlQXJyYXkpKTtcclxuICAgIHRoaXMuX3RvZ2dsZUVycm9yKGNoZWNrRGl2aWRlckVycm9ycyh2YWx1ZUFycmF5LCB0aGlzLndoaXRlTGlzdCkpO1xyXG4gICAgdGhpcy5fdG9nZ2xlRXJyb3IoY2hlY2tTZXF1ZW5jZUVycm9ycyh2YWx1ZUFycmF5LCB0aGlzLm9wZXJhdG9yTGlzdCwgdGhpcy5icmFja2V0TGlzdCkpO1xyXG4gICAgdGhpcy5fdG9nZ2xlRXJyb3IoY2hlY2tJbnRlcnByZXRhdGlvbkVycm9ycyhpc0ludGVycHJldGF0aW9uRXJyb3IpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RvZ2dsZUVycm9yKGVycm9yTW9kZWw6IENoZWNrRXJyb3JSZXN1bHRNb2RlbCkge1xyXG4gICAgaWYgKCF0aGlzLmVycm9yTW9kZWwuaXNFcnJvcikge1xyXG4gICAgICB0aGlzLmVycm9yTW9kZWwgPSBlcnJvck1vZGVsO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2Rpc2FibGVFcnJvcigpIHtcclxuICAgIHRoaXMuZXJyb3JNb2RlbCA9IHtcclxuICAgICAgaXNFcnJvcjogZmFsc2UsXHJcbiAgICAgIGVycm9yVHlwZTogRXJyb3JUeXBlRW51bS5EZWZhdWx0XHJcbiAgICB9O1xyXG4gICAgdGhpcy5fZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaW5zZXJ0UG9zaXRpb25UZXh0KGNvbnRlbnQ6IHN0cmluZykge1xyXG4gICAgY29uc3Qgbm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNvbnRlbnQpO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGlmICh0aGlzLl9yYW5nZSkge1xyXG4gICAgICAgIHRoaXMuX3JhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XHJcbiAgICAgICAgdGhpcy5fcmFuZ2UuaW5zZXJ0Tm9kZShub2RlKTtcclxuICAgICAgICB0aGlzLl9yYW5nZSA9IHRoaXMuX3JhbmdlLmNsb25lUmFuZ2UoKTtcclxuICAgICAgICB0aGlzLl9yYW5nZS5zZWxlY3ROb2RlQ29udGVudHMobm9kZSk7XHJcbiAgICAgICAgdGhpcy5fcmFuZ2UuY29sbGFwc2UoZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zdG9yZUN1cnNvclBvc2l0aW9uKCkge1xyXG4gICAgdGhpcy5fc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xyXG5cclxuICAgIGlmICh0aGlzLl9zZWxlY3Rpb24gJiYgdGhpcy5fc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwKSB7XHJcbiAgICAgIHRoaXMuX3JhbmdlID0gdGhpcy5fc2VsZWN0aW9uLmdldFJhbmdlQXQoMCk7XHJcblxyXG4gICAgICB0aGlzLl9jdXJzb3JQb3NpdGlvbi5zdGFydENvbnRhaW5lciA9IHRoaXMuX3JhbmdlLnN0YXJ0Q29udGFpbmVyO1xyXG4gICAgICB0aGlzLl9jdXJzb3JQb3NpdGlvbi5lbmRDb250YWluZXIgPSB0aGlzLl9yYW5nZS5lbmRDb250YWluZXI7XHJcbiAgICAgIHRoaXMuX2N1cnNvclBvc2l0aW9uLnN0YXJ0T2Zmc2V0ID0gdGhpcy5fcmFuZ2Uuc3RhcnRPZmZzZXQ7XHJcbiAgICAgIHRoaXMuX2N1cnNvclBvc2l0aW9uLmVuZE9mZnNldCA9IHRoaXMuX3JhbmdlLmVuZE9mZnNldDtcclxuICAgIH1cclxuICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Jlc3RvcmVDdXJzb3JQb3NpdGlvbihlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50KSB7XHJcbiAgICB0aGlzLl9yYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuX2N1cnNvclBvc2l0aW9uLnN0YXJ0Q29udGFpbmVyICYmIHRoaXMuX2N1cnNvclBvc2l0aW9uLmVuZENvbnRhaW5lcikge1xyXG4gICAgICB0aGlzLl9yYW5nZS5zZXRTdGFydCh0aGlzLl9jdXJzb3JQb3NpdGlvbi5zdGFydENvbnRhaW5lciwgdGhpcy5fY3Vyc29yUG9zaXRpb24uc3RhcnRPZmZzZXQpO1xyXG4gICAgICB0aGlzLl9yYW5nZS5zZXRFbmQodGhpcy5fY3Vyc29yUG9zaXRpb24uZW5kQ29udGFpbmVyLCB0aGlzLl9jdXJzb3JQb3NpdGlvbi5lbmRPZmZzZXQpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3NlbGVjdGlvbiA9IGRvY3VtZW50LmdldFNlbGVjdGlvbigpO1xyXG5cclxuICAgIGlmICh0aGlzLl9zZWxlY3Rpb24pIHtcclxuICAgICAgdGhpcy5fc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xyXG4gICAgICB0aGlzLl9zZWxlY3Rpb24uYWRkUmFuZ2UodGhpcy5fcmFuZ2UpO1xyXG4gICAgICBlbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wbGFjZUNhcmV0QXRFbmQoKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5fcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xyXG4gICAgICB0aGlzLl9zZWxlY3Rpb24gPSBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLl9zZWxlY3Rpb24pIHtcclxuICAgICAgICB0aGlzLl9yYW5nZS5zZWxlY3ROb2RlQ29udGVudHModGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgdGhpcy5fcmFuZ2UuY29sbGFwc2UoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcclxuICAgICAgICB0aGlzLl9zZWxlY3Rpb24uYWRkUmFuZ2UodGhpcy5fcmFuZ2UpO1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgY2xpY2tPdXQoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBpZiAoIXRoaXMuZVJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcclxuICAgICAgY29uc3Qge3ZhbHVlLCB2aXNpYmxlVmFsdWV9ID0gdGhpcy5fdHJhbnNmb3JtVmFsdWUodGhpcy5faW5wdXRWYWx1ZSwgdHJ1ZSk7XHJcblxyXG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcclxuICAgICAgdGhpcy51cGRhdGVWaXNpYmxlVmFsdWUodmlzaWJsZVZhbHVlKTtcclxuXHJcbiAgICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4ge30pOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHtcclxuICB9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4ge1xyXG4gIH07XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwibXJ4LWZvcm11bGEtZWRpdG9yXCJcclxuICBbY2xhc3MubXJ4LWlucHV0LWVycm9yXT1cImdldEludmFsaWRcIlxyXG4gIFtjbGFzcy4tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gIFtjbGFzcy4tcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gIFtjbGFzc109XCJnZXRDbGFzc2VzXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJtcngtZm9ybXVsYS1lZGl0b3JfX3dyYXBwZXJcIj5cclxuICAgIDxkaXZcclxuICAgICAgW2lubmVySFRNTF09XCJ2aXNpYmxlVmFsdWUudHJpbSgpIHwgc2FmZVwiXHJcbiAgICAgICNpbnB1dEVsZW1lbnRcclxuICAgICAgY2xhc3M9XCJtcngtZm9ybXVsYS1lZGl0b3JfX2JveFwiXHJcbiAgICAgIGNvbnRlbnRlZGl0YWJsZT1cInRydWVcIlxyXG4gICAgICBbYXR0ci5kYXRhLXBoXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXHJcbiAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICA+PC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm1yeC1mb3JtdWxhLWVkaXRvcl9fcG9wdXBcIiAqbmdJZj1cImlzRm9jdXNlZFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZXJyb3JNb2RlbC5pc0Vycm9yICYmIGlzRm9jdXNlZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtcngtZm9ybXVsYS1lZGl0b3JfX3BvcHVwLS1lcnJvclwiPlxyXG4gICAgICAgICAge3sgZ2V0RXJyb3JNZXNzYWdlIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyZWRMaXN0Lmxlbmd0aDsgZWxzZSBlbXB0eUxpc3RcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cIm1yeC1mb3JtdWxhLWVkaXRvcl9fcG9wdXAtLXJvd1wiXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmaWx0ZXJlZExpc3RcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImluc2VydFRhZyhpdGVtKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2VtcHR5TGlzdD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWZvcm11bGEtZWRpdG9yX19wb3B1cC0tcm93XCI+XHJcbiAgICAgICAgICDQndC10YIg0YDQtdC30YPQu9GM0YLQsNGC0L7QslxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gICAgPG1yeC1lcnJvci1tZXNzYWdlXHJcbiAgICAgICpuZ0lmPVwiZ2V0SW52YWxpZCAmJiBnZXRFcnJvck1lc3NhZ2UgJiYgIWlzRm9jdXNlZFwiXHJcbiAgICAgIFtpbnZhbGlkTWVzc2FnZV09XCJnZXRFcnJvck1lc3NhZ2VcIlxyXG4gICAgPjwvbXJ4LWVycm9yLW1lc3NhZ2U+XHJcblxyXG4gICAgPG1yeC1zYXZlLXN0YXRlIFtpZF09XCJ1dWlkXCIgW2ZpZWxkc109XCJmaWVsZHNcIj48L21yeC1zYXZlLXN0YXRlPlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,50 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormulaEditorComponent } from './formula-editor.component';
4
+ import { CharsLeftModule } from '../../chars-left/chars-left.module';
5
+ import { ErrorMessageModule } from '../../error-message/error-message.module';
6
+ import { FormsModule } from '@angular/forms';
7
+ import { NgxMaskModule } from 'ngx-mask';
8
+ import { SaveStateModule } from '../../save-state/save-state.module';
9
+ import { SafeModule } from '../../../pipes/safe/safe.module';
10
+ import * as i0 from "@angular/core";
11
+ export class FormulaEditorModule {
12
+ }
13
+ FormulaEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ FormulaEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorModule, declarations: [FormulaEditorComponent], imports: [CommonModule,
15
+ CharsLeftModule,
16
+ ErrorMessageModule,
17
+ FormsModule,
18
+ NgxMaskModule,
19
+ SaveStateModule,
20
+ SafeModule], exports: [FormulaEditorComponent] });
21
+ FormulaEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorModule, imports: [[
22
+ CommonModule,
23
+ CharsLeftModule,
24
+ ErrorMessageModule,
25
+ FormsModule,
26
+ NgxMaskModule,
27
+ SaveStateModule,
28
+ SafeModule
29
+ ]] });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorModule, decorators: [{
31
+ type: NgModule,
32
+ args: [{
33
+ declarations: [
34
+ FormulaEditorComponent
35
+ ],
36
+ imports: [
37
+ CommonModule,
38
+ CharsLeftModule,
39
+ ErrorMessageModule,
40
+ FormsModule,
41
+ NgxMaskModule,
42
+ SaveStateModule,
43
+ SafeModule
44
+ ],
45
+ exports: [
46
+ FormulaEditorComponent
47
+ ]
48
+ }]
49
+ }] });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXVsYS1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybXVsYS1lZGl0b3IvZm9ybXVsYS1lZGl0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQW1CN0QsTUFBTSxPQUFPLG1CQUFtQjs7Z0hBQW5CLG1CQUFtQjtpSEFBbkIsbUJBQW1CLGlCQWY1QixzQkFBc0IsYUFHdEIsWUFBWTtRQUNaLGVBQWU7UUFDZixrQkFBa0I7UUFDbEIsV0FBVztRQUNYLGFBQWE7UUFDYixlQUFlO1FBQ2YsVUFBVSxhQUdWLHNCQUFzQjtpSEFHYixtQkFBbUIsWUFickI7WUFDUCxZQUFZO1lBQ1osZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixXQUFXO1lBQ1gsYUFBYTtZQUNiLGVBQWU7WUFDZixVQUFVO1NBQ1g7MkZBS1UsbUJBQW1CO2tCQWpCL0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsVUFBVTtxQkFDWDtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asc0JBQXNCO3FCQUN2QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXVsYUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vZm9ybXVsYS1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IENoYXJzTGVmdE1vZHVsZSB9IGZyb20gJy4uLy4uL2NoYXJzLWxlZnQvY2hhcnMtbGVmdC5tb2R1bGUnO1xuaW1wb3J0IHsgRXJyb3JNZXNzYWdlTW9kdWxlIH0gZnJvbSAnLi4vLi4vZXJyb3ItbWVzc2FnZS9lcnJvci1tZXNzYWdlLm1vZHVsZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5neE1hc2tNb2R1bGUgfSBmcm9tICduZ3gtbWFzayc7XG5pbXBvcnQgeyBTYXZlU3RhdGVNb2R1bGUgfSBmcm9tICcuLi8uLi9zYXZlLXN0YXRlL3NhdmUtc3RhdGUubW9kdWxlJztcbmltcG9ydCB7IFNhZmVNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcy9zYWZlL3NhZmUubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRm9ybXVsYUVkaXRvckNvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIENoYXJzTGVmdE1vZHVsZSxcbiAgICBFcnJvck1lc3NhZ2VNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTmd4TWFza01vZHVsZSxcbiAgICBTYXZlU3RhdGVNb2R1bGUsXG4gICAgU2FmZU1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRm9ybXVsYUVkaXRvckNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvcm11bGFFZGl0b3JNb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,73 @@
1
+ import { ErrorTypeEnum } from '../enums/error-messages.enum';
2
+ export const checkInterpretationErrors = (error) => {
3
+ return {
4
+ isError: error,
5
+ errorType: ErrorTypeEnum.Interpretation
6
+ };
7
+ };
8
+ export const checkBracketErrors = (array) => {
9
+ const findOpenedBrackets = array.filter(i => i === '(');
10
+ const findClosedBrackets = array.filter(i => i === ')');
11
+ const isError = !(findOpenedBrackets.length === findClosedBrackets.length);
12
+ return {
13
+ isError: isError,
14
+ errorType: ErrorTypeEnum.Bracket
15
+ };
16
+ };
17
+ export const checkSequenceErrors = (array, operatorList, bracketList) => {
18
+ let isError = false;
19
+ array.forEach((item, idx) => {
20
+ if (idx === 0) {
21
+ isError = isError || !!operatorList.find(i => i === item);
22
+ }
23
+ else if (idx > 0 && idx < array.length - 1) {
24
+ if (!operatorList.find(i => i === item)) {
25
+ if (bracketList.find(i => i === item)) {
26
+ if (item === '(') {
27
+ isError = isError || !operatorList.find(i => i === array[idx - 1]);
28
+ }
29
+ else if (item === ')') {
30
+ isError = isError || !operatorList.find(i => i === array[idx + 1]);
31
+ }
32
+ }
33
+ else {
34
+ if (!bracketList.find(i => i === array[idx - 1])) {
35
+ isError = isError || !operatorList.find(i => i === array[idx - 1]);
36
+ }
37
+ }
38
+ }
39
+ }
40
+ else if (idx === array.length - 1) {
41
+ if (!operatorList.find(i => i === item)) {
42
+ if (!bracketList.find(i => i === item)) {
43
+ isError = isError || !operatorList.find(i => i === array[idx - 1]);
44
+ }
45
+ else {
46
+ isError = isError || !!operatorList.find(i => i === array[idx - 1]);
47
+ }
48
+ }
49
+ else {
50
+ isError = isError || true;
51
+ }
52
+ }
53
+ });
54
+ return {
55
+ isError: isError,
56
+ errorType: ErrorTypeEnum.Sequence
57
+ };
58
+ };
59
+ export const checkDividerErrors = (array, list) => {
60
+ const regExp = /^[0-9]*[,/][0-9]+$/;
61
+ let isError = false;
62
+ array.some((item) => {
63
+ if (regExp.test(item)) {
64
+ isError = true;
65
+ return;
66
+ }
67
+ });
68
+ return {
69
+ isError: isError,
70
+ errorType: ErrorTypeEnum.Divider
71
+ };
72
+ };
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stZXJyb3JzLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2Zvcm11bGEtZWRpdG9yL2hlbHBlcnMvY2hlY2stZXJyb3JzLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFJN0QsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxLQUFjLEVBQXlCLEVBQUU7SUFDakYsT0FBTztRQUNMLE9BQU8sRUFBRSxLQUFLO1FBQ2QsU0FBUyxFQUFFLGFBQWEsQ0FBQyxjQUFjO0tBQ3hDLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQWUsRUFBeUIsRUFBRTtJQUMzRSxNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDeEQsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEtBQUssa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFM0UsT0FBTztRQUNMLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLFNBQVMsRUFBRSxhQUFhLENBQUMsT0FBTztLQUNqQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFlLEVBQUUsWUFBc0IsRUFBRSxXQUFxQixFQUF5QixFQUFFO0lBQzNILElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztJQUVw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LENBQUMsSUFBWSxFQUFFLEVBQUU7UUFDMUIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3JCLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDZixPQUFNO1NBQ1A7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTCxPQUFPLEVBQUUsT0FBTztRQUNoQixTQUFTLEVBQUUsYUFBYSxDQUFDLE9BQU87S0FDakMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVycm9yVHlwZUVudW0gfSBmcm9tICcuLi9lbnVtcy9lcnJvci1tZXNzYWdlcy5lbnVtJztcclxuaW1wb3J0IHsgQ2hlY2tFcnJvclJlc3VsdE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2NoZWNrLWVycm9yLXJlc3VsdC5tb2RlbCc7XHJcbmltcG9ydCB7IFdoaXRlTGlzdEl0ZW1Nb2RlbCB9IGZyb20gJy4uL21vZGVscy93aGl0ZS1saXN0LWl0ZW0ubW9kZWwnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGNoZWNrSW50ZXJwcmV0YXRpb25FcnJvcnMgPSAoZXJyb3I6IGJvb2xlYW4pOiBDaGVja0Vycm9yUmVzdWx0TW9kZWwgPT4ge1xyXG4gIHJldHVybiB7XHJcbiAgICBpc0Vycm9yOiBlcnJvcixcclxuICAgIGVycm9yVHlwZTogRXJyb3JUeXBlRW51bS5JbnRlcnByZXRhdGlvblxyXG4gIH07XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY2hlY2tCcmFja2V0RXJyb3JzID0gKGFycmF5OiBzdHJpbmdbXSk6IENoZWNrRXJyb3JSZXN1bHRNb2RlbCA9PiB7XHJcbiAgY29uc3QgZmluZE9wZW5lZEJyYWNrZXRzID0gYXJyYXkuZmlsdGVyKGkgPT4gaSA9PT0gJygnKTtcclxuICBjb25zdCBmaW5kQ2xvc2VkQnJhY2tldHMgPSBhcnJheS5maWx0ZXIoaSA9PiBpID09PSAnKScpO1xyXG4gIGNvbnN0IGlzRXJyb3IgPSAhKGZpbmRPcGVuZWRCcmFja2V0cy5sZW5ndGggPT09IGZpbmRDbG9zZWRCcmFja2V0cy5sZW5ndGgpO1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgaXNFcnJvcjogaXNFcnJvcixcclxuICAgIGVycm9yVHlwZTogRXJyb3JUeXBlRW51bS5CcmFja2V0XHJcbiAgfTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBjaGVja1NlcXVlbmNlRXJyb3JzID0gKGFycmF5OiBzdHJpbmdbXSwgb3BlcmF0b3JMaXN0OiBzdHJpbmdbXSwgYnJhY2tldExpc3Q6IHN0cmluZ1tdKTogQ2hlY2tFcnJvclJlc3VsdE1vZGVsID0+IHtcclxuICBsZXQgaXNFcnJvciA9IGZhbHNlO1xyXG5cclxuICBhcnJheS5mb3JFYWNoKChpdGVtOiBzdHJpbmcsIGlkeDogbnVtYmVyKSA9PiB7XHJcbiAgICBpZiAoaWR4ID09PSAwKSB7XHJcbiAgICAgIGlzRXJyb3IgPSBpc0Vycm9yIHx8ICEhb3BlcmF0b3JMaXN0LmZpbmQoaSA9PiBpID09PSBpdGVtKTtcclxuICAgIH0gZWxzZSBpZiAoaWR4ID4gMCAmJiBpZHggPCBhcnJheS5sZW5ndGggLSAxKSB7XHJcbiAgICAgIGlmICghb3BlcmF0b3JMaXN0LmZpbmQoaSA9PiBpID09PSBpdGVtKSkge1xyXG4gICAgICAgIGlmIChicmFja2V0TGlzdC5maW5kKGkgPT4gaSA9PT0gaXRlbSkpIHtcclxuICAgICAgICAgIGlmIChpdGVtID09PSAnKCcpIHtcclxuICAgICAgICAgICAgaXNFcnJvciA9IGlzRXJyb3IgfHwgIW9wZXJhdG9yTGlzdC5maW5kKGkgPT4gaSA9PT0gYXJyYXlbaWR4IC0gMV0pO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChpdGVtID09PSAnKScpIHtcclxuICAgICAgICAgICAgaXNFcnJvciA9IGlzRXJyb3IgfHwgIW9wZXJhdG9yTGlzdC5maW5kKGkgPT4gaSA9PT0gYXJyYXlbaWR4ICsgMV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoIWJyYWNrZXRMaXN0LmZpbmQoaSA9PiBpID09PSBhcnJheVtpZHggLSAxXSkpIHtcclxuICAgICAgICAgICAgaXNFcnJvciA9IGlzRXJyb3IgfHwgIW9wZXJhdG9yTGlzdC5maW5kKGkgPT4gaSA9PT0gYXJyYXlbaWR4IC0gMV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChpZHggPT09IGFycmF5Lmxlbmd0aCAtIDEpIHtcclxuICAgICAgaWYgKCFvcGVyYXRvckxpc3QuZmluZChpID0+IGkgPT09IGl0ZW0pKSB7XHJcbiAgICAgICAgaWYgKCFicmFja2V0TGlzdC5maW5kKGkgPT4gaSA9PT0gaXRlbSkpIHtcclxuICAgICAgICAgIGlzRXJyb3IgPSBpc0Vycm9yIHx8ICFvcGVyYXRvckxpc3QuZmluZChpID0+IGkgPT09IGFycmF5W2lkeCAtIDFdKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaXNFcnJvciA9IGlzRXJyb3IgfHwgISFvcGVyYXRvckxpc3QuZmluZChpID0+IGkgPT09IGFycmF5W2lkeCAtIDFdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaXNFcnJvciA9IGlzRXJyb3IgfHwgdHJ1ZVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBpc0Vycm9yOiBpc0Vycm9yLFxyXG4gICAgZXJyb3JUeXBlOiBFcnJvclR5cGVFbnVtLlNlcXVlbmNlXHJcbiAgfTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBjaGVja0RpdmlkZXJFcnJvcnMgPSAoYXJyYXk6IHN0cmluZ1tdLCBsaXN0OiBXaGl0ZUxpc3RJdGVtTW9kZWxbXSk6IENoZWNrRXJyb3JSZXN1bHRNb2RlbCA9PiB7XHJcbiAgY29uc3QgcmVnRXhwID0gL15bMC05XSpbLC9dWzAtOV0rJC87XHJcblxyXG4gIGxldCBpc0Vycm9yID0gZmFsc2U7XHJcblxyXG4gIGFycmF5LnNvbWUoKGl0ZW06IHN0cmluZykgPT4ge1xyXG4gICAgaWYgKHJlZ0V4cC50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgIGlzRXJyb3IgPSB0cnVlO1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGlzRXJyb3I6IGlzRXJyb3IsXHJcbiAgICBlcnJvclR5cGU6IEVycm9yVHlwZUVudW0uRGl2aWRlclxyXG4gIH07XHJcbn07XHJcbiJdfQ==
@@ -0,0 +1,17 @@
1
+ // &nbsp;
2
+ export const createTag = (content) => {
3
+ return `<div class="tag" contenteditable="false" tabindex="-1">${content}</div>&nbsp;`;
4
+ };
5
+ export const createOperator = (content) => {
6
+ return `<div class="operator" contenteditable="false" tabindex="-1">${content}</div>&nbsp;`;
7
+ };
8
+ export const createNumber = (content) => {
9
+ return `<div class="number" contenteditable="false" tabindex="-1">${content}</div>&nbsp;`;
10
+ };
11
+ export const createBracket = (content) => {
12
+ return `<div class="bracket" contenteditable="false" tabindex="-1">${content}</div>&nbsp;`;
13
+ };
14
+ export const createTagOutside = (content) => {
15
+ return `{${content}}`;
16
+ };
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXRhZ3MuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybXVsYS1lZGl0b3IvaGVscGVycy9jcmVhdGUtdGFncy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUztBQUNULE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO0lBQzNDLE9BQU8sMERBQTBELE9BQU8sY0FBYyxDQUFBO0FBQ3hGLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO0lBQ2hELE9BQU8sK0RBQStELE9BQU8sY0FBYyxDQUFBO0FBQzdGLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO0lBQzlDLE9BQU8sNkRBQTZELE9BQU8sY0FBYyxDQUFBO0FBQzNGLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO0lBQy9DLE9BQU8sOERBQThELE9BQU8sY0FBYyxDQUFBO0FBQzVGLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUU7SUFDbEQsT0FBTyxJQUFJLE9BQU8sR0FBRyxDQUFBO0FBQ3ZCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vICZuYnNwO1xyXG5leHBvcnQgY29uc3QgY3JlYXRlVGFnID0gKGNvbnRlbnQ6IHN0cmluZykgPT4ge1xyXG4gIHJldHVybiBgPGRpdiBjbGFzcz1cInRhZ1wiIGNvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCIgdGFiaW5kZXg9XCItMVwiPiR7Y29udGVudH08L2Rpdj4mbmJzcDtgXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBjcmVhdGVPcGVyYXRvciA9IChjb250ZW50OiBzdHJpbmcpID0+IHtcclxuICByZXR1cm4gYDxkaXYgY2xhc3M9XCJvcGVyYXRvclwiIGNvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCIgdGFiaW5kZXg9XCItMVwiPiR7Y29udGVudH08L2Rpdj4mbmJzcDtgXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBjcmVhdGVOdW1iZXIgPSAoY29udGVudDogc3RyaW5nKSA9PiB7XHJcbiAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwibnVtYmVyXCIgY29udGVudGVkaXRhYmxlPVwiZmFsc2VcIiB0YWJpbmRleD1cIi0xXCI+JHtjb250ZW50fTwvZGl2PiZuYnNwO2BcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGNyZWF0ZUJyYWNrZXQgPSAoY29udGVudDogc3RyaW5nKSA9PiB7XHJcbiAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiYnJhY2tldFwiIGNvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCIgdGFiaW5kZXg9XCItMVwiPiR7Y29udGVudH08L2Rpdj4mbmJzcDtgXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBjcmVhdGVUYWdPdXRzaWRlID0gKGNvbnRlbnQ6IHN0cmluZykgPT4ge1xyXG4gIHJldHVybiBgeyR7Y29udGVudH19YFxyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stZXJyb3ItcmVzdWx0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybXVsYS1lZGl0b3IvbW9kZWxzL2NoZWNrLWVycm9yLXJlc3VsdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXJyb3JUeXBlRW51bSB9IGZyb20gJy4uL2VudW1zL2Vycm9yLW1lc3NhZ2VzLmVudW0nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDaGVja0Vycm9yUmVzdWx0TW9kZWwge1xyXG4gIGlzRXJyb3I6IGJvb2xlYW4sXHJcbiAgZXJyb3JUeXBlOiBFcnJvclR5cGVFbnVtXHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXVsYS1lZGl0b3IubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtdWxhLWVkaXRvci9tb2RlbHMvZm9ybXVsYS1lZGl0b3IubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEZvcm11bGFFZGl0b3JWYWx1ZVR5cGVzID0gc3RyaW5nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGb3JtdWxhRWRpdG9yVmFsdWVXaXRoSWQge1xyXG4gIHZhbHVlOiBGb3JtdWxhRWRpdG9yVmFsdWVUeXBlcyxcclxuICBpZDogc3RyaW5nXHJcbn1cclxuIl19
@@ -0,0 +1,4 @@
1
+ export * from './formula-editor.model';
2
+ export * from './check-error-result.model';
3
+ export * from './white-list-item.model';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtdWxhLWVkaXRvci9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Zvcm11bGEtZWRpdG9yLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9jaGVjay1lcnJvci1yZXN1bHQubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL3doaXRlLWxpc3QtaXRlbS5tb2RlbCc7XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hpdGUtbGlzdC1pdGVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybXVsYS1lZGl0b3IvbW9kZWxzL3doaXRlLWxpc3QtaXRlbS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBXaGl0ZUxpc3RJdGVtTW9kZWwge1xyXG4gIHN5c05hbWU6IHN0cmluZyxcclxuICBsYWJlbDogc3RyaW5nXHJcbn1cclxuIl19
@@ -0,0 +1,7 @@
1
+ export const isAn = (value) => {
2
+ if (value instanceof Number) {
3
+ value = value.valueOf();
4
+ }
5
+ return !isNaN(parseFloat(value)) && isFinite(value);
6
+ };
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbnVtYmVyLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvaGVscGVycy9pcy1udW1iZXIuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO0lBQ2pDLElBQUcsS0FBSyxZQUFZLE1BQU0sRUFBRTtRQUMxQixLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0tBQ3pCO0lBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdEQsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzQW4gPSAodmFsdWU6IGFueSkgPT4ge1xyXG4gIGlmKHZhbHVlIGluc3RhbmNlb2YgTnVtYmVyKSB7XHJcbiAgICB2YWx1ZSA9IHZhbHVlLnZhbHVlT2YoKTtcclxuICB9XHJcblxyXG4gIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdCh2YWx1ZSkpICYmIGlzRmluaXRlKHZhbHVlKTtcclxufVxyXG4iXX0=