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.
- package/esm2020/lib/components/form/formula-editor/enums/error-messages.enum.mjs +16 -0
- package/esm2020/lib/components/form/formula-editor/formula-editor.component.mjs +301 -0
- package/esm2020/lib/components/form/formula-editor/formula-editor.module.mjs +50 -0
- package/esm2020/lib/components/form/formula-editor/helpers/check-errors.helper.mjs +73 -0
- package/esm2020/lib/components/form/formula-editor/helpers/create-tags.helper.mjs +17 -0
- package/esm2020/lib/components/form/formula-editor/models/check-error-result.model.mjs +2 -0
- package/esm2020/lib/components/form/formula-editor/models/formula-editor.model.mjs +2 -0
- package/esm2020/lib/components/form/formula-editor/models/index.mjs +4 -0
- package/esm2020/lib/components/form/formula-editor/models/white-list-item.model.mjs +2 -0
- package/esm2020/lib/helpers/is-number.helper.mjs +7 -0
- package/esm2020/lib/services/mrx-form-validator/mrx-form-validator.mjs +7 -2
- package/esm2020/lib/services/mrx-form-validator/validations/callback.validation.mjs +2 -2
- package/esm2020/lib/services/mrx-form-validator/validations/email.validation.mjs +2 -2
- package/esm2020/lib/services/mrx-form-validator/validations/max-length.validation.mjs +2 -2
- package/esm2020/lib/services/mrx-form-validator/validations/max-value.validation.mjs +2 -2
- package/esm2020/lib/services/mrx-form-validator/validations/min-length.validation.mjs +2 -2
- package/esm2020/lib/services/mrx-form-validator/validations/min-value.validation.mjs +2 -2
- package/esm2020/lib/services/mrx-form-validator/validations/pattern.validation.mjs +2 -2
- package/esm2020/lib/services/mrx-form-validator/validations/required.validation.mjs +2 -2
- package/esm2020/public-api.mjs +4 -1
- package/fesm2015/myrta-ui.mjs +464 -17
- package/fesm2015/myrta-ui.mjs.map +1 -1
- package/fesm2020/myrta-ui.mjs +462 -17
- package/fesm2020/myrta-ui.mjs.map +1 -1
- package/lib/components/form/formula-editor/enums/error-messages.enum.d.ts +8 -0
- package/lib/components/form/formula-editor/formula-editor.component.d.ts +67 -0
- package/lib/components/form/formula-editor/formula-editor.module.d.ts +14 -0
- package/lib/components/form/formula-editor/helpers/check-errors.helper.d.ts +6 -0
- package/lib/components/form/formula-editor/helpers/create-tags.helper.d.ts +5 -0
- package/lib/components/form/formula-editor/models/check-error-result.model.d.ts +5 -0
- package/lib/components/form/formula-editor/models/formula-editor.model.d.ts +5 -0
- package/lib/components/form/formula-editor/models/index.d.ts +3 -0
- package/lib/components/form/formula-editor/models/white-list-item.model.d.ts +4 -0
- package/lib/helpers/is-number.helper.d.ts +1 -0
- package/lib/services/mrx-form-validator/validations/callback.validation.d.ts +1 -1
- package/lib/services/mrx-form-validator/validations/email.validation.d.ts +1 -1
- package/lib/services/mrx-form-validator/validations/max-length.validation.d.ts +1 -1
- package/lib/services/mrx-form-validator/validations/max-value.validation.d.ts +1 -1
- package/lib/services/mrx-form-validator/validations/min-length.validation.d.ts +1 -1
- package/lib/services/mrx-form-validator/validations/min-value.validation.d.ts +1 -1
- package/lib/services/mrx-form-validator/validations/pattern.validation.d.ts +1 -1
- package/lib/services/mrx-form-validator/validations/required.validation.d.ts +1 -1
- package/package.json +1 -1
- 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
|
+
//
|
|
2
|
+
export const createTag = (content) => {
|
|
3
|
+
return `<div class="tag" contenteditable="false" tabindex="-1">${content}</div> `;
|
|
4
|
+
};
|
|
5
|
+
export const createOperator = (content) => {
|
|
6
|
+
return `<div class="operator" contenteditable="false" tabindex="-1">${content}</div> `;
|
|
7
|
+
};
|
|
8
|
+
export const createNumber = (content) => {
|
|
9
|
+
return `<div class="number" contenteditable="false" tabindex="-1">${content}</div> `;
|
|
10
|
+
};
|
|
11
|
+
export const createBracket = (content) => {
|
|
12
|
+
return `<div class="bracket" contenteditable="false" tabindex="-1">${content}</div> `;
|
|
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=
|