@bilig/formula 0.8.0 → 0.8.1
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/dist/binder-wasm-arity.d.ts +1 -0
- package/dist/binder-wasm-arity.js +541 -0
- package/dist/binder-wasm-arity.js.map +1 -0
- package/dist/binder-wasm-rules.d.ts +1 -2
- package/dist/binder-wasm-rules.js +2 -540
- package/dist/binder-wasm-rules.js.map +1 -1
- package/dist/builtins/cell-value-utils.d.ts +9 -0
- package/dist/builtins/cell-value-utils.js +63 -0
- package/dist/builtins/cell-value-utils.js.map +1 -0
- package/dist/builtins/datetime.d.ts +2 -10
- package/dist/builtins/datetime.js +5 -261
- package/dist/builtins/datetime.js.map +1 -1
- package/dist/builtins/excel-date.d.ts +16 -0
- package/dist/builtins/excel-date.js +199 -0
- package/dist/builtins/excel-date.js.map +1 -0
- package/dist/builtins/lookup-core-helpers.d.ts +50 -0
- package/dist/builtins/lookup-core-helpers.js +342 -0
- package/dist/builtins/lookup-core-helpers.js.map +1 -0
- package/dist/builtins/lookup.d.ts +3 -25
- package/dist/builtins/lookup.js +3 -341
- package/dist/builtins/lookup.js.map +1 -1
- package/dist/formula-reference-translation.d.ts +20 -0
- package/dist/formula-reference-translation.js +273 -0
- package/dist/formula-reference-translation.js.map +1 -0
- package/dist/formula-serializer.d.ts +2 -0
- package/dist/formula-serializer.js +74 -0
- package/dist/formula-serializer.js.map +1 -0
- package/dist/formula-sheet-rename.d.ts +14 -0
- package/dist/formula-sheet-rename.js +243 -0
- package/dist/formula-sheet-rename.js.map +1 -0
- package/dist/formula-structural-rewrite.d.ts +14 -0
- package/dist/formula-structural-rewrite.js +511 -0
- package/dist/formula-structural-rewrite.js.map +1 -0
- package/dist/formula-template-key.d.ts +2 -0
- package/dist/formula-template-key.js +58 -0
- package/dist/formula-template-key.js.map +1 -1
- package/dist/js-evaluator-cell-values.d.ts +5 -0
- package/dist/js-evaluator-cell-values.js +14 -0
- package/dist/js-evaluator-cell-values.js.map +1 -0
- package/dist/js-evaluator-runtime-helpers.d.ts +39 -0
- package/dist/js-evaluator-runtime-helpers.js +453 -0
- package/dist/js-evaluator-runtime-helpers.js.map +1 -0
- package/dist/js-evaluator-types.d.ts +178 -0
- package/dist/js-evaluator-types.js +2 -0
- package/dist/js-evaluator-types.js.map +1 -0
- package/dist/js-evaluator.d.ts +4 -178
- package/dist/js-evaluator.js +3 -463
- package/dist/js-evaluator.js.map +1 -1
- package/dist/translation-reference-utils.d.ts +42 -0
- package/dist/translation-reference-utils.js +178 -0
- package/dist/translation-reference-utils.js.map +1 -0
- package/dist/translation.d.ts +6 -32
- package/dist/translation.js +14 -1300
- package/dist/translation.js.map +1 -1
- package/package.json +2 -2
package/dist/builtins/lookup.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ErrorCode
|
|
1
|
+
import { ErrorCode } from '@bilig/protocol';
|
|
2
2
|
import { getExternalLookupFunction } from '../external-function-adapter.js';
|
|
3
3
|
import { createLookupArrayShapeBuiltins } from './lookup-array-shape-builtins.js';
|
|
4
|
+
import { arrayResult, areRangeArgs, collectNumericSeries, compareScalars, compileCriteriaMatcher, errorValue, findFirstNonRange, firstLookupError, flattenNumbers, getRangeValue, isError, isRangeArg, matchesCompiledCriteria, matchesCriteria, numberResult, numericAggregateCandidate, pickRangeRow, requireCellRange, requireCellVector, toBoolean, toCellRange, toInteger, toNumber, toNumericMatrix, toStringValue, } from './lookup-core-helpers.js';
|
|
4
5
|
import { createLookupCriteriaBuiltins } from './lookup-criteria-builtins.js';
|
|
5
6
|
import { createLookupDatabaseBuiltins } from './lookup-database-builtins.js';
|
|
6
7
|
import { createLookupFinancialBuiltins } from './lookup-financial-builtins.js';
|
|
@@ -10,268 +11,7 @@ import { createLookupOrderStatisticsBuiltins } from './lookup-order-statistics-b
|
|
|
10
11
|
import { createLookupReferenceBuiltins } from './lookup-reference-builtins.js';
|
|
11
12
|
import { createLookupRegressionBuiltins } from './lookup-regression-builtins.js';
|
|
12
13
|
import { createLookupSortFilterBuiltins } from './lookup-sort-filter-builtins.js';
|
|
13
|
-
|
|
14
|
-
return { tag: ValueTag.Error, code };
|
|
15
|
-
}
|
|
16
|
-
function numberResult(value) {
|
|
17
|
-
return { tag: ValueTag.Number, value };
|
|
18
|
-
}
|
|
19
|
-
function isError(value) {
|
|
20
|
-
return value !== undefined && !isRangeArg(value) && value.tag === ValueTag.Error;
|
|
21
|
-
}
|
|
22
|
-
function isRangeArg(value) {
|
|
23
|
-
return typeof value === 'object' && value !== null && 'kind' in value && value.kind === 'range';
|
|
24
|
-
}
|
|
25
|
-
function isCriteriaOperator(value) {
|
|
26
|
-
return value === '=' || value === '<>' || value === '>' || value === '>=' || value === '<' || value === '<=';
|
|
27
|
-
}
|
|
28
|
-
function findFirstNonRange(values) {
|
|
29
|
-
for (const value of values) {
|
|
30
|
-
if (!isRangeArg(value)) {
|
|
31
|
-
return value;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return undefined;
|
|
35
|
-
}
|
|
36
|
-
function areRangeArgs(values) {
|
|
37
|
-
return values.every((value) => isRangeArg(value));
|
|
38
|
-
}
|
|
39
|
-
function toNumber(value) {
|
|
40
|
-
switch (value.tag) {
|
|
41
|
-
case ValueTag.Number:
|
|
42
|
-
return value.value;
|
|
43
|
-
case ValueTag.Boolean:
|
|
44
|
-
return value.value ? 1 : 0;
|
|
45
|
-
case ValueTag.Empty:
|
|
46
|
-
return 0;
|
|
47
|
-
case ValueTag.String:
|
|
48
|
-
case ValueTag.Error:
|
|
49
|
-
return undefined;
|
|
50
|
-
default:
|
|
51
|
-
return undefined;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
function toInteger(value) {
|
|
55
|
-
const numeric = toNumber(value);
|
|
56
|
-
if (numeric === undefined || !Number.isFinite(numeric)) {
|
|
57
|
-
return undefined;
|
|
58
|
-
}
|
|
59
|
-
return Math.trunc(numeric);
|
|
60
|
-
}
|
|
61
|
-
function toBoolean(value) {
|
|
62
|
-
switch (value.tag) {
|
|
63
|
-
case ValueTag.Boolean:
|
|
64
|
-
return value.value;
|
|
65
|
-
case ValueTag.Number:
|
|
66
|
-
return value.value !== 0;
|
|
67
|
-
case ValueTag.Empty:
|
|
68
|
-
return false;
|
|
69
|
-
case ValueTag.String:
|
|
70
|
-
case ValueTag.Error:
|
|
71
|
-
return undefined;
|
|
72
|
-
default:
|
|
73
|
-
return undefined;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
function toStringValue(value) {
|
|
77
|
-
switch (value.tag) {
|
|
78
|
-
case ValueTag.Empty:
|
|
79
|
-
return '';
|
|
80
|
-
case ValueTag.Number:
|
|
81
|
-
return String(value.value);
|
|
82
|
-
case ValueTag.Boolean:
|
|
83
|
-
return value.value ? 'TRUE' : 'FALSE';
|
|
84
|
-
case ValueTag.String:
|
|
85
|
-
return value.value;
|
|
86
|
-
case ValueTag.Error:
|
|
87
|
-
return '';
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
function compareScalars(left, right) {
|
|
91
|
-
if ((left.tag === ValueTag.String || left.tag === ValueTag.Empty) && (right.tag === ValueTag.String || right.tag === ValueTag.Empty)) {
|
|
92
|
-
const normalizedLeft = toStringValue(left).toUpperCase();
|
|
93
|
-
const normalizedRight = toStringValue(right).toUpperCase();
|
|
94
|
-
if (normalizedLeft === normalizedRight) {
|
|
95
|
-
return 0;
|
|
96
|
-
}
|
|
97
|
-
return normalizedLeft < normalizedRight ? -1 : 1;
|
|
98
|
-
}
|
|
99
|
-
const leftNum = toNumber(left);
|
|
100
|
-
const rightNum = toNumber(right);
|
|
101
|
-
if (leftNum === undefined || rightNum === undefined) {
|
|
102
|
-
return undefined;
|
|
103
|
-
}
|
|
104
|
-
if (leftNum === rightNum) {
|
|
105
|
-
return 0;
|
|
106
|
-
}
|
|
107
|
-
return leftNum < rightNum ? -1 : 1;
|
|
108
|
-
}
|
|
109
|
-
function requireCellVector(arg) {
|
|
110
|
-
if (!isRangeArg(arg)) {
|
|
111
|
-
return errorValue(ErrorCode.Value);
|
|
112
|
-
}
|
|
113
|
-
if (arg.refKind !== 'cells') {
|
|
114
|
-
return errorValue(ErrorCode.Value);
|
|
115
|
-
}
|
|
116
|
-
if (arg.rows !== 1 && arg.cols !== 1) {
|
|
117
|
-
return errorValue(ErrorCode.NA);
|
|
118
|
-
}
|
|
119
|
-
return arg;
|
|
120
|
-
}
|
|
121
|
-
function requireCellRange(arg) {
|
|
122
|
-
if (!isRangeArg(arg) || arg.refKind !== 'cells') {
|
|
123
|
-
return errorValue(ErrorCode.Value);
|
|
124
|
-
}
|
|
125
|
-
return arg;
|
|
126
|
-
}
|
|
127
|
-
function getRangeValue(range, row, col) {
|
|
128
|
-
const index = row * range.cols + col;
|
|
129
|
-
return range.values[index] ?? { tag: ValueTag.Empty };
|
|
130
|
-
}
|
|
131
|
-
function arrayResult(values, rows, cols) {
|
|
132
|
-
return { kind: 'array', values, rows, cols };
|
|
133
|
-
}
|
|
134
|
-
function collectNumericSeries(arg, mode) {
|
|
135
|
-
const values = [];
|
|
136
|
-
const cells = isRangeArg(arg) ? arg.values : [arg];
|
|
137
|
-
if (isRangeArg(arg) && arg.refKind !== 'cells') {
|
|
138
|
-
return errorValue(ErrorCode.Value);
|
|
139
|
-
}
|
|
140
|
-
for (const cell of cells) {
|
|
141
|
-
if (cell.tag === ValueTag.Error) {
|
|
142
|
-
return cell;
|
|
143
|
-
}
|
|
144
|
-
if (cell.tag === ValueTag.Number) {
|
|
145
|
-
values.push(cell.value);
|
|
146
|
-
continue;
|
|
147
|
-
}
|
|
148
|
-
if (mode === 'strict') {
|
|
149
|
-
return errorValue(ErrorCode.Value);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
return values;
|
|
153
|
-
}
|
|
154
|
-
function numericAggregateCandidate(value) {
|
|
155
|
-
return value.tag === ValueTag.Number ? value.value : undefined;
|
|
156
|
-
}
|
|
157
|
-
function toCellRange(arg) {
|
|
158
|
-
if (!isRangeArg(arg)) {
|
|
159
|
-
return { kind: 'range', values: [arg], refKind: 'cells', rows: 1, cols: 1 };
|
|
160
|
-
}
|
|
161
|
-
if (arg.refKind !== 'cells') {
|
|
162
|
-
return errorValue(ErrorCode.Value);
|
|
163
|
-
}
|
|
164
|
-
return arg;
|
|
165
|
-
}
|
|
166
|
-
function toNumericMatrix(arg) {
|
|
167
|
-
const range = toCellRange(arg);
|
|
168
|
-
if (!isRangeArg(range)) {
|
|
169
|
-
return range;
|
|
170
|
-
}
|
|
171
|
-
const matrix = [];
|
|
172
|
-
for (let row = 0; row < range.rows; row += 1) {
|
|
173
|
-
const rowValues = [];
|
|
174
|
-
for (let col = 0; col < range.cols; col += 1) {
|
|
175
|
-
const numeric = toNumber(getRangeValue(range, row, col));
|
|
176
|
-
if (numeric === undefined) {
|
|
177
|
-
return errorValue(ErrorCode.Value);
|
|
178
|
-
}
|
|
179
|
-
rowValues.push(numeric);
|
|
180
|
-
}
|
|
181
|
-
matrix.push(rowValues);
|
|
182
|
-
}
|
|
183
|
-
return matrix;
|
|
184
|
-
}
|
|
185
|
-
function flattenNumbers(arg) {
|
|
186
|
-
if (!isRangeArg(arg)) {
|
|
187
|
-
const numeric = toNumber(arg);
|
|
188
|
-
return numeric === undefined ? errorValue(ErrorCode.Value) : [numeric];
|
|
189
|
-
}
|
|
190
|
-
const values = [];
|
|
191
|
-
for (const value of arg.values) {
|
|
192
|
-
const numeric = toNumber(value);
|
|
193
|
-
if (numeric === undefined) {
|
|
194
|
-
return errorValue(ErrorCode.Value);
|
|
195
|
-
}
|
|
196
|
-
values.push(numeric);
|
|
197
|
-
}
|
|
198
|
-
return values;
|
|
199
|
-
}
|
|
200
|
-
function pickRangeRow(range, row) {
|
|
201
|
-
const values = [];
|
|
202
|
-
for (let col = 0; col < range.cols; col += 1) {
|
|
203
|
-
values.push(getRangeValue(range, row, col));
|
|
204
|
-
}
|
|
205
|
-
return values;
|
|
206
|
-
}
|
|
207
|
-
function hasWildcardPattern(pattern) {
|
|
208
|
-
for (let index = 0; index < pattern.length; index += 1) {
|
|
209
|
-
const char = pattern[index];
|
|
210
|
-
if (char === '~') {
|
|
211
|
-
index += 1;
|
|
212
|
-
continue;
|
|
213
|
-
}
|
|
214
|
-
if (char === '*' || char === '?') {
|
|
215
|
-
return true;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
return false;
|
|
219
|
-
}
|
|
220
|
-
function wildcardPatternToRegExp(pattern) {
|
|
221
|
-
let source = '^';
|
|
222
|
-
for (let index = 0; index < pattern.length; index += 1) {
|
|
223
|
-
const char = pattern[index];
|
|
224
|
-
if (char === undefined) {
|
|
225
|
-
continue;
|
|
226
|
-
}
|
|
227
|
-
if (char === '~') {
|
|
228
|
-
const escaped = pattern[index + 1];
|
|
229
|
-
if (escaped !== undefined) {
|
|
230
|
-
source += escapeRegexFragment(escaped);
|
|
231
|
-
index += 1;
|
|
232
|
-
continue;
|
|
233
|
-
}
|
|
234
|
-
source += escapeRegexFragment(char);
|
|
235
|
-
continue;
|
|
236
|
-
}
|
|
237
|
-
if (char === '*') {
|
|
238
|
-
source += '.*';
|
|
239
|
-
continue;
|
|
240
|
-
}
|
|
241
|
-
if (char === '?') {
|
|
242
|
-
source += '.';
|
|
243
|
-
continue;
|
|
244
|
-
}
|
|
245
|
-
source += escapeRegexFragment(char);
|
|
246
|
-
}
|
|
247
|
-
source += '$';
|
|
248
|
-
return new RegExp(source, 'i');
|
|
249
|
-
}
|
|
250
|
-
function escapeRegexFragment(value) {
|
|
251
|
-
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
252
|
-
}
|
|
253
|
-
function unescapeCriteriaPattern(pattern) {
|
|
254
|
-
let unescaped = '';
|
|
255
|
-
for (let index = 0; index < pattern.length; index += 1) {
|
|
256
|
-
const char = pattern[index];
|
|
257
|
-
if (char === undefined) {
|
|
258
|
-
continue;
|
|
259
|
-
}
|
|
260
|
-
if (char === '~') {
|
|
261
|
-
const escaped = pattern[index + 1];
|
|
262
|
-
if (escaped !== undefined) {
|
|
263
|
-
unescaped += escaped;
|
|
264
|
-
index += 1;
|
|
265
|
-
continue;
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
unescaped += char;
|
|
269
|
-
}
|
|
270
|
-
return unescaped;
|
|
271
|
-
}
|
|
272
|
-
function firstLookupError(args) {
|
|
273
|
-
return args.find((arg) => isError(arg));
|
|
274
|
-
}
|
|
14
|
+
export { compileCriteriaMatcher, matchesCompiledCriteria };
|
|
275
15
|
const externalLookupBuiltinNames = ['FILTERXML', 'STOCKHISTORY'];
|
|
276
16
|
function createExternalLookupBuiltin(name) {
|
|
277
17
|
return (...args) => {
|
|
@@ -415,84 +155,6 @@ export function createLookupBuiltinResolver(options = {}) {
|
|
|
415
155
|
return builtins[upper] ?? getExternalLookupFunction(name);
|
|
416
156
|
};
|
|
417
157
|
}
|
|
418
|
-
export function matchesCompiledCriteria(value, compiled) {
|
|
419
|
-
if (isError(value)) {
|
|
420
|
-
return false;
|
|
421
|
-
}
|
|
422
|
-
if (compiled.wildcardPattern) {
|
|
423
|
-
const matches = compiled.wildcardPattern.test(toStringValue(value));
|
|
424
|
-
return compiled.operator === '=' ? matches : !matches;
|
|
425
|
-
}
|
|
426
|
-
const comparison = compareScalars(value, compiled.operand);
|
|
427
|
-
if (comparison === undefined) {
|
|
428
|
-
return false;
|
|
429
|
-
}
|
|
430
|
-
switch (compiled.operator) {
|
|
431
|
-
case '=':
|
|
432
|
-
return comparison === 0;
|
|
433
|
-
case '<>':
|
|
434
|
-
return comparison !== 0;
|
|
435
|
-
case '>':
|
|
436
|
-
return comparison > 0;
|
|
437
|
-
case '>=':
|
|
438
|
-
return comparison >= 0;
|
|
439
|
-
case '<':
|
|
440
|
-
return comparison < 0;
|
|
441
|
-
case '<=':
|
|
442
|
-
return comparison <= 0;
|
|
443
|
-
}
|
|
444
|
-
}
|
|
445
|
-
export function compileCriteriaMatcher(criteria) {
|
|
446
|
-
let { operator, operand } = parseCriteria(criteria);
|
|
447
|
-
let wildcardPattern;
|
|
448
|
-
if (operand.tag === ValueTag.String && (operator === '=' || operator === '<>') && hasWildcardPattern(operand.value)) {
|
|
449
|
-
wildcardPattern = wildcardPatternToRegExp(operand.value);
|
|
450
|
-
}
|
|
451
|
-
else if (operand.tag === ValueTag.String && operand.value.includes('~')) {
|
|
452
|
-
operand = {
|
|
453
|
-
tag: ValueTag.String,
|
|
454
|
-
value: unescapeCriteriaPattern(operand.value),
|
|
455
|
-
stringId: operand.stringId,
|
|
456
|
-
};
|
|
457
|
-
}
|
|
458
|
-
return {
|
|
459
|
-
operator,
|
|
460
|
-
operand,
|
|
461
|
-
...(wildcardPattern ? { wildcardPattern } : {}),
|
|
462
|
-
};
|
|
463
|
-
}
|
|
464
|
-
function matchesCriteria(value, criteria) {
|
|
465
|
-
return matchesCompiledCriteria(value, compileCriteriaMatcher(criteria));
|
|
466
|
-
}
|
|
467
|
-
function parseCriteria(criteria) {
|
|
468
|
-
if (criteria.tag !== ValueTag.String) {
|
|
469
|
-
return { operator: '=', operand: criteria };
|
|
470
|
-
}
|
|
471
|
-
const match = /^(<=|>=|<>|=|<|>)(.*)$/.exec(criteria.value);
|
|
472
|
-
if (!match) {
|
|
473
|
-
return { operator: '=', operand: criteria };
|
|
474
|
-
}
|
|
475
|
-
const operator = match[1] ?? '=';
|
|
476
|
-
return {
|
|
477
|
-
operator: isCriteriaOperator(operator) ? operator : '=',
|
|
478
|
-
operand: parseCriteriaOperand(match[2] ?? ''),
|
|
479
|
-
};
|
|
480
|
-
}
|
|
481
|
-
function parseCriteriaOperand(raw) {
|
|
482
|
-
const trimmed = raw.trim();
|
|
483
|
-
if (trimmed === '') {
|
|
484
|
-
return { tag: ValueTag.String, value: '', stringId: 0 };
|
|
485
|
-
}
|
|
486
|
-
const upper = trimmed.toUpperCase();
|
|
487
|
-
if (upper === 'TRUE' || upper === 'FALSE') {
|
|
488
|
-
return { tag: ValueTag.Boolean, value: upper === 'TRUE' };
|
|
489
|
-
}
|
|
490
|
-
const numeric = Number(trimmed);
|
|
491
|
-
if (Number.isFinite(numeric)) {
|
|
492
|
-
return { tag: ValueTag.Number, value: numeric };
|
|
493
|
-
}
|
|
494
|
-
return { tag: ValueTag.String, value: trimmed, stringId: 0 };
|
|
495
|
-
}
|
|
496
158
|
export function getLookupBuiltin(name) {
|
|
497
159
|
return createLookupBuiltinResolver()(name);
|
|
498
160
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/builtins/lookup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAkB,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAA;AAE3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAA;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAA;AAC5E,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAA;AAC9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAA;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACxE,OAAO,EAAE,mCAAmC,EAAE,MAAM,uCAAuC,CAAA;AAC3F,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAA;AAC9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAA;AAChF,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAA;AAmBjF,SAAS,UAAU,CAAC,IAAe;IACjC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,CAAA;AACtC,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,CAAA;AACxC,CAAC;AAED,SAAS,OAAO,CAAC,KAAwC;IACvD,OAAO,KAAK,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,KAAK,CAAA;AAClF,CAAC;AAED,SAAS,UAAU,CAAC,KAAwC;IAC1D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAA;AACjG,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,CAAA;AAC9G,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAqD;IAC9E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,MAAqD;IACzE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;AACnD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAgB;IAChC,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC;QAClB,KAAK,QAAQ,CAAC,MAAM;YAClB,OAAO,KAAK,CAAC,KAAK,CAAA;QACpB,KAAK,QAAQ,CAAC,OAAO;YACnB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5B,KAAK,QAAQ,CAAC,KAAK;YACjB,OAAO,CAAC,CAAA;QACV,KAAK,QAAQ,CAAC,MAAM,CAAC;QACrB,KAAK,QAAQ,CAAC,KAAK;YACjB,OAAO,SAAS,CAAA;QAClB;YACE,OAAO,SAAS,CAAA;IACpB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAgB;IACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/B,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AAC5B,CAAC;AAED,SAAS,SAAS,CAAC,KAAgB;IACjC,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC;QAClB,KAAK,QAAQ,CAAC,OAAO;YACnB,OAAO,KAAK,CAAC,KAAK,CAAA;QACpB,KAAK,QAAQ,CAAC,MAAM;YAClB,OAAO,KAAK,CAAC,KAAK,KAAK,CAAC,CAAA;QAC1B,KAAK,QAAQ,CAAC,KAAK;YACjB,OAAO,KAAK,CAAA;QACd,KAAK,QAAQ,CAAC,MAAM,CAAC;QACrB,KAAK,QAAQ,CAAC,KAAK;YACjB,OAAO,SAAS,CAAA;QAClB;YACE,OAAO,SAAS,CAAA;IACpB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAgB;IACrC,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC;QAClB,KAAK,QAAQ,CAAC,KAAK;YACjB,OAAO,EAAE,CAAA;QACX,KAAK,QAAQ,CAAC,MAAM;YAClB,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC5B,KAAK,QAAQ,CAAC,OAAO;YACnB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;QACvC,KAAK,QAAQ,CAAC,MAAM;YAClB,OAAO,KAAK,CAAC,KAAK,CAAA;QACpB,KAAK,QAAQ,CAAC,KAAK;YACjB,OAAO,EAAE,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAe,EAAE,KAAgB;IACvD,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrI,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;QACxD,MAAM,eAAe,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;QAC1D,IAAI,cAAc,KAAK,eAAe,EAAE,CAAC;YACvC,OAAO,CAAC,CAAA;QACV,CAAC;QACD,OAAO,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAClD,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAChC,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,CAAC,CAAA;IACV,CAAC;IACD,OAAO,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,iBAAiB,CAAC,GAA0B;IACnD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IACD,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,gBAAgB,CAAC,GAA0B;IAClD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAChD,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,aAAa,CAAC,KAA2B,EAAE,GAAW,EAAE,GAAW;IAC1E,MAAM,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,CAAA;IACpC,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAA;AACvD,CAAC;AAED,SAAS,WAAW,CAAC,MAAmB,EAAE,IAAY,EAAE,IAAY;IAClE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AAC9C,CAAC;AAED,SAAS,oBAAoB,CAAC,GAA0B,EAAE,IAA0B;IAClF,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAClD,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAC/C,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;YAChC,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACvB,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAgB;IACjD,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AAChE,CAAC;AAED,SAAS,WAAW,CAAC,GAA0B;IAC7C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;IAC7E,CAAC;IACD,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,eAAe,CAAC,GAA0B;IACjD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;IAC9B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,MAAM,GAAe,EAAE,CAAA;IAC7B,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAa,EAAE,CAAA;QAC9B,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;YACxD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YACpC,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACzB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACxB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,cAAc,CAAC,GAA0B;IAChD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC7B,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACxE,CAAC;IACD,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACpC,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACtB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,YAAY,CAAC,KAA2B,EAAE,GAAW;IAC5D,MAAM,MAAM,GAAgB,EAAE,CAAA;IAC9B,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;IAC7C,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe;IACzC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;QAC3B,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,KAAK,IAAI,CAAC,CAAA;YACV,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjC,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAe;IAC9C,IAAI,MAAM,GAAG,GAAG,CAAA;IAChB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;QAC3B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;YAClC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAA;gBACtC,KAAK,IAAI,CAAC,CAAA;gBACV,SAAQ;YACV,CAAC;YACD,MAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAA;YACnC,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,IAAI,IAAI,CAAA;YACd,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,CAAA;YACb,SAAQ;QACV,CAAC;QACD,MAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IACD,MAAM,IAAI,GAAG,CAAA;IACb,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAChC,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;AACrD,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAe;IAC9C,IAAI,SAAS,GAAG,EAAE,CAAA;IAClB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;QAC3B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;YAClC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,SAAS,IAAI,OAAO,CAAA;gBACpB,KAAK,IAAI,CAAC,CAAA;gBACV,SAAQ;YACV,CAAC;QACH,CAAC;QACD,SAAS,IAAI,IAAI,CAAA;IACnB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAsC;IAC9D,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;AACzC,CAAC;AAED,MAAM,0BAA0B,GAAG,CAAC,WAAW,EAAE,cAAc,CAAU,CAAA;AAEzE,SAAS,2BAA2B,CAAC,IAAY;IAC/C,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;QACjB,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAC5C,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,aAAa,CAAA;QACtB,CAAC;QACD,MAAM,QAAQ,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAA;QAChD,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IACrE,CAAC,CAAA;AACH,CAAC;AAED,MAAM,sBAAsB,GAAG,MAAM,CAAC,WAAW,CAC/C,0BAA0B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,CACnD,CAAA;AAElC,MAAM,wBAAwB,GAAG,8BAA8B,CAAC;IAC9D,UAAU;IACV,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,SAAS;IACT,cAAc;CACf,CAAC,CAAA;AAEF,MAAM,6BAA6B,GAAG,mCAAmC,CAAC;IACxE,UAAU;IACV,YAAY;IACZ,WAAW;IACX,gBAAgB;IAChB,OAAO;IACP,UAAU;IACV,QAAQ;IACR,SAAS;IACT,cAAc;CACf,CAAC,CAAA;AAEF,MAAM,uBAAuB,GAAG,6BAA6B,CAAC;IAC5D,UAAU;IACV,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,oBAAoB;CACrB,CAAC,CAAA;AAEF,MAAM,wBAAwB,GAAG,8BAA8B,CAAC;IAC9D,UAAU;IACV,UAAU;IACV,QAAQ;IACR,eAAe;CAChB,CAAC,CAAA;AAEF,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;IACtD,UAAU;IACV,YAAY;IACZ,WAAW;IACX,UAAU;IACV,gBAAgB;IAChB,iBAAiB;IACjB,YAAY;IACZ,QAAQ;IACR,eAAe;IACf,cAAc;CACf,CAAC,CAAA;AAEF,MAAM,wBAAwB,GAAG,8BAA8B,CAAC;IAC9D,UAAU;IACV,WAAW;IACX,OAAO;IACP,UAAU;IACV,SAAS;IACT,SAAS;IACT,gBAAgB;IAChB,WAAW;IACX,cAAc;IACd,aAAa;IACb,YAAY;CACb,CAAC,CAAA;AAEF,MAAM,sBAAsB,GAAG,4BAA4B,CAAC;IAC1D,UAAU;IACV,YAAY;IACZ,OAAO;IACP,UAAU;IACV,QAAQ;IACR,aAAa;IACb,gBAAgB;IAChB,aAAa;IACb,eAAe;CAChB,CAAC,CAAA;AAEF,MAAM,sBAAsB,GAAG,4BAA4B,CAAC;IAC1D,UAAU;IACV,YAAY;IACZ,OAAO;IACP,UAAU;IACV,QAAQ;IACR,gBAAgB;IAChB,eAAe;IACf,yBAAyB;CAC1B,CAAC,CAAA;AAEF,SAAS,sBAAsB,CAAC,UAAwC,EAAE;IACxE,MAAM,uBAAuB,GAAG,6BAA6B,CAAC;QAC5D,UAAU;QACV,YAAY;QACZ,OAAO;QACP,UAAU;QACV,SAAS;QACT,SAAS;QACT,iBAAiB;QACjB,WAAW;QACX,cAAc;QACd,aAAa;QACb,GAAG,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,wBAAwB,EAAE,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5G,CAAC,CAAA;IAEF,OAAO;QACL,GAAG,wBAAwB;QAC3B,GAAG,uBAAuB;QAC1B,GAAG,sBAAsB;QACzB,GAAG,sBAAsB;QACzB,GAAG,uBAAuB;QAC1B,GAAG,wBAAwB;QAC3B,GAAG,wBAAwB;QAC3B,GAAG,6BAA6B;QAChC,GAAG,oBAAoB;QACvB,GAAG,wBAAwB;QAC3B,GAAG,sBAAsB;KAC1B,CAAA;AACH,CAAC;AAED,MAAM,wBAAwB,GAAG,8BAA8B,CAAC;IAC9D,UAAU;IACV,WAAW;IACX,OAAO;IACP,UAAU;IACV,SAAS;IACT,SAAS;IACT,gBAAgB;IAChB,WAAW;IACX,aAAa;IACb,iBAAiB;IACjB,YAAY;IACZ,YAAY;CACb,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,cAAc,GAAkC,sBAAsB,EAAE,CAAA;AAErF,MAAM,UAAU,2BAA2B,CAAC,UAAwC,EAAE;IACpF,MAAM,QAAQ,GAAG,OAAO,CAAC,wBAAwB,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;IAClH,OAAO,CAAC,IAAY,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAChC,IAAI,KAAK,KAAK,iBAAiB,EAAE,CAAC;YAChC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC5B,CAAC;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAA;IAC3D,CAAC,CAAA;AACH,CAAC;AAUD,MAAM,UAAU,uBAAuB,CAAC,KAAgB,EAAE,QAAiC;IACzF,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;QACnE,OAAO,QAAQ,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IACvD,CAAC;IACD,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC1D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,QAAQ,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC1B,KAAK,GAAG;YACN,OAAO,UAAU,KAAK,CAAC,CAAA;QACzB,KAAK,IAAI;YACP,OAAO,UAAU,KAAK,CAAC,CAAA;QACzB,KAAK,GAAG;YACN,OAAO,UAAU,GAAG,CAAC,CAAA;QACvB,KAAK,IAAI;YACP,OAAO,UAAU,IAAI,CAAC,CAAA;QACxB,KAAK,GAAG;YACN,OAAO,UAAU,GAAG,CAAC,CAAA;QACvB,KAAK,IAAI;YACP,OAAO,UAAU,IAAI,CAAC,CAAA;IAC1B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,QAAmB;IACxD,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IACnD,IAAI,eAAmC,CAAA;IACvC,IAAI,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,IAAI,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACpH,eAAe,GAAG,uBAAuB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC1D,CAAC;SAAM,IAAI,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1E,OAAO,GAAG;YACR,GAAG,EAAE,QAAQ,CAAC,MAAM;YACpB,KAAK,EAAE,uBAAuB,CAAC,OAAO,CAAC,KAAK,CAAC;YAC7C,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAA;IACH,CAAC;IACD,OAAO;QACL,QAAQ;QACR,OAAO;QACP,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAgB,EAAE,QAAmB;IAC5D,OAAO,uBAAuB,CAAC,KAAK,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAA;AACzE,CAAC;AAED,SAAS,aAAa,CAAC,QAAmB;IACxC,IAAI,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;IAC7C,CAAC;IAED,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;IAC7C,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAA;IAChC,OAAO;QACL,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;QACvD,OAAO,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;KAC9C,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW;IACvC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IAC1B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAA;IACzD,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;IACnC,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QAC1C,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,MAAM,EAAE,CAAA;IAC3D,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAC/B,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;IACjD,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,2BAA2B,EAAE,CAAC,IAAI,CAAC,CAAA;AAC5C,CAAC"}
|
|
1
|
+
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/builtins/lookup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { RangeAddress } from './addressing.js';
|
|
2
|
+
import type { ParsedCellReferenceInfo, ParsedDependencyReference, ParsedRangeReferenceInfo } from './compiler.js';
|
|
3
|
+
export declare function translateParsedCellReference<Reference extends ParsedCellReferenceInfo>(reference: Reference, rowDelta: number, colDelta: number): Reference;
|
|
4
|
+
export declare function translateParsedRangeReference(reference: ParsedRangeReferenceInfo, rowDelta: number, colDelta: number): ParsedRangeReferenceInfo;
|
|
5
|
+
export declare function translateParsedDependencyReference(reference: ParsedDependencyReference, rowDelta: number, colDelta: number): ParsedDependencyReference;
|
|
6
|
+
export declare function translateQualifiedCellReference(raw: string, rowDelta: number, colDelta: number): string;
|
|
7
|
+
export declare function formatParsedCellReference(reference: ParsedCellReferenceInfo): string;
|
|
8
|
+
export declare function formatParsedLocalCellReference(reference: ParsedCellReferenceInfo): string;
|
|
9
|
+
export declare function formatParsedRangeReference(reference: ParsedRangeReferenceInfo): string;
|
|
10
|
+
export declare function translatedCellInstructionKey(sheetName: string | undefined, address: string): string;
|
|
11
|
+
export declare function translatedRangeInstructionKey(sheetName: string | undefined, refKind: 'cells' | 'rows' | 'cols', start: string, end: string): string;
|
|
12
|
+
export declare function buildTranslatedCellReferenceMap(original: readonly ParsedCellReferenceInfo[] | undefined, translated: readonly ParsedCellReferenceInfo[] | undefined): Map<string, ParsedCellReferenceInfo>;
|
|
13
|
+
export declare function buildTranslatedRangeReferenceMap(original: readonly ParsedRangeReferenceInfo[] | undefined, translated: readonly ParsedRangeReferenceInfo[] | undefined): Map<string, ParsedRangeReferenceInfo>;
|
|
14
|
+
export declare function formatParsedDependencyReference(reference: ParsedDependencyReference): string;
|
|
15
|
+
export declare function translateQualifiedDependencyReference(raw: string, rowDelta: number, colDelta: number): string;
|
|
16
|
+
export declare function translateQualifiedRangeReference(raw: string, rowDelta: number, colDelta: number): string;
|
|
17
|
+
export declare function translateRangeAddress(range: RangeAddress, rowDelta: number, colDelta: number): RangeAddress;
|
|
18
|
+
export declare function translateCellReference(ref: string, rowDelta: number, colDelta: number): string;
|
|
19
|
+
export declare function translateColumnReference(ref: string, colDelta: number): string;
|
|
20
|
+
export declare function translateRowReference(ref: string, rowDelta: number): string;
|