@bilig/workbook 0.59.0 → 0.64.0

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/find.js CHANGED
@@ -53,17 +53,22 @@ function isCellRangeRef(value) {
53
53
  hasOwnString(value, 'endAddress'));
54
54
  }
55
55
  function isWorkbookTableRef(value) {
56
+ return isWorkbookTableRefData(value) && hasOwnFunction(value, 'column');
57
+ }
58
+ function isWorkbookTableRefData(value) {
56
59
  return (typeof value === 'object' &&
57
60
  value !== null &&
58
61
  hasValidBaseRef(value) &&
59
62
  value.kind === 'table' &&
60
63
  hasOptionalString(value, 'name') &&
61
64
  hasOptionalString(value, 'sheetName') &&
62
- hasOptionalStringArray(value, 'headers') &&
63
- hasOwnFunction(value, 'column'));
65
+ hasOptionalStringArray(value, 'headers'));
64
66
  }
65
67
  function isWorkbookRowsRef(value) {
66
- if (typeof value !== 'object' || value === null || !hasValidBaseRef(value) || value.kind !== 'rows' || !hasOwnFunction(value, 'column')) {
68
+ return isWorkbookRowsRefData(value) && hasOwnFunction(value, 'column');
69
+ }
70
+ function isWorkbookRowsRefData(value) {
71
+ if (typeof value !== 'object' || value === null || !hasValidBaseRef(value) || value.kind !== 'rows') {
67
72
  return false;
68
73
  }
69
74
  const where = Object.getOwnPropertyDescriptor(value, 'where')?.value;
@@ -75,16 +80,24 @@ function isWorkbookRowsRef(value) {
75
80
  return false;
76
81
  }
77
82
  const table = Object.getOwnPropertyDescriptor(value, 'table')?.value;
78
- return hasOptionalString(value, 'sheetName') && (table === undefined || isWorkbookTableRef(table));
83
+ return hasOptionalString(value, 'sheetName') && (table === undefined || isWorkbookTableRefData(table));
79
84
  }
80
85
  function isWorkbookColumnRef(value) {
81
- if (typeof value !== 'object' || value === null || !hasValidBaseRef(value) || value.kind !== 'column' || !hasOwnString(value, 'name')) {
86
+ if (!isWorkbookColumnRefData(value)) {
82
87
  return false;
83
88
  }
84
89
  const table = Object.getOwnPropertyDescriptor(value, 'table')?.value;
85
90
  const rows = Object.getOwnPropertyDescriptor(value, 'rows')?.value;
86
91
  return isWorkbookTableRef(table) && (rows === undefined || isWorkbookRowsRef(rows));
87
92
  }
93
+ function isWorkbookColumnRefData(value) {
94
+ if (typeof value !== 'object' || value === null || !hasValidBaseRef(value) || value.kind !== 'column' || !hasOwnString(value, 'name')) {
95
+ return false;
96
+ }
97
+ const table = Object.getOwnPropertyDescriptor(value, 'table')?.value;
98
+ const rows = Object.getOwnPropertyDescriptor(value, 'rows')?.value;
99
+ return isWorkbookTableRefData(table) && (rows === undefined || isWorkbookRowsRefData(rows));
100
+ }
88
101
  export function isWorkbookRef(value) {
89
102
  if (typeof value !== 'object' || value === null || !hasValidBaseRef(value)) {
90
103
  return false;
@@ -102,6 +115,23 @@ export function isWorkbookRef(value) {
102
115
  return isWorkbookRowsRef(value);
103
116
  }
104
117
  }
118
+ export function isWorkbookRefData(value) {
119
+ if (typeof value !== 'object' || value === null || !hasValidBaseRef(value)) {
120
+ return false;
121
+ }
122
+ switch (value.kind) {
123
+ case 'range':
124
+ return isCellRangeRef(Object.getOwnPropertyDescriptor(value, 'range')?.value);
125
+ case 'name':
126
+ return hasOwnString(value, 'name');
127
+ case 'table':
128
+ return isWorkbookTableRefData(value);
129
+ case 'column':
130
+ return isWorkbookColumnRefData(value);
131
+ case 'rows':
132
+ return isWorkbookRowsRefData(value);
133
+ }
134
+ }
105
135
  export function collectWorkbookRefs(value) {
106
136
  const refs = [];
107
137
  const seenRefs = new Set();
@@ -141,6 +171,108 @@ export function collectWorkbookRefs(value) {
141
171
  visit(value);
142
172
  return refs;
143
173
  }
174
+ export function toWorkbookRefData(ref) {
175
+ if (!isWorkbookRefData(ref)) {
176
+ throw new Error('Workbook ref data is invalid');
177
+ }
178
+ switch (ref.kind) {
179
+ case 'range':
180
+ return {
181
+ kind: 'range',
182
+ id: ref.id,
183
+ label: ref.label,
184
+ range: { ...ref.range },
185
+ };
186
+ case 'name':
187
+ return {
188
+ kind: 'name',
189
+ id: ref.id,
190
+ label: ref.label,
191
+ name: ref.name,
192
+ };
193
+ case 'table':
194
+ return {
195
+ kind: 'table',
196
+ id: ref.id,
197
+ label: ref.label,
198
+ ...(ref.name !== undefined ? { name: ref.name } : {}),
199
+ ...(ref.sheetName !== undefined ? { sheetName: ref.sheetName } : {}),
200
+ ...(ref.headers !== undefined ? { headers: [...ref.headers] } : {}),
201
+ };
202
+ case 'column':
203
+ return {
204
+ kind: 'column',
205
+ id: ref.id,
206
+ label: ref.label,
207
+ table: toWorkbookTableRefData(ref.table),
208
+ ...(ref.rows !== undefined ? { rows: toWorkbookRowsRefData(ref.rows) } : {}),
209
+ name: ref.name,
210
+ };
211
+ case 'rows':
212
+ return {
213
+ kind: 'rows',
214
+ id: ref.id,
215
+ label: ref.label,
216
+ ...(ref.sheetName !== undefined ? { sheetName: ref.sheetName } : {}),
217
+ ...(ref.table !== undefined ? { table: toWorkbookTableRefData(ref.table) } : {}),
218
+ where: { ...ref.where },
219
+ };
220
+ }
221
+ }
222
+ function toWorkbookTableRefData(ref) {
223
+ const data = toWorkbookRefData(ref);
224
+ if (data.kind !== 'table') {
225
+ throw new Error('Workbook table ref data is invalid');
226
+ }
227
+ return data;
228
+ }
229
+ function toWorkbookRowsRefData(ref) {
230
+ const data = toWorkbookRefData(ref);
231
+ if (data.kind !== 'rows') {
232
+ throw new Error('Workbook rows ref data is invalid');
233
+ }
234
+ return data;
235
+ }
236
+ export function collectWorkbookRefData(value) {
237
+ const refs = [];
238
+ const seenRefs = new Set();
239
+ const seenObjects = new WeakSet();
240
+ function pushRef(ref) {
241
+ const key = `${ref.kind}:${ref.id}`;
242
+ if (!seenRefs.has(key)) {
243
+ seenRefs.add(key);
244
+ refs.push(ref);
245
+ }
246
+ }
247
+ function visit(current) {
248
+ if (current === null || current === undefined || typeof current !== 'object') {
249
+ return;
250
+ }
251
+ if (seenObjects.has(current)) {
252
+ return;
253
+ }
254
+ seenObjects.add(current);
255
+ if (isWorkbookRefData(current)) {
256
+ const ref = toWorkbookRefData(current);
257
+ pushRef(ref);
258
+ if (ref.kind === 'column') {
259
+ visit(ref.rows);
260
+ visit(ref.table);
261
+ }
262
+ if (ref.kind === 'rows') {
263
+ visit(ref.table);
264
+ }
265
+ return;
266
+ }
267
+ if (Array.isArray(current)) {
268
+ current.forEach(visit);
269
+ return;
270
+ }
271
+ Object.values(current).forEach(visit);
272
+ }
273
+ visit(value);
274
+ return refs;
275
+ }
144
276
  function cleanIdPart(value) {
145
277
  const cleaned = value
146
278
  .trim()
@@ -379,6 +511,119 @@ export function createWorkbookRowsRef(options) {
379
511
  hideHelper(rows, 'column');
380
512
  return Object.freeze(rows);
381
513
  }
514
+ function refDataKey(ref) {
515
+ return `${ref.kind}:${ref.id}`;
516
+ }
517
+ function sameRefData(left, right) {
518
+ return left !== undefined && right !== undefined && refDataKey(left) === refDataKey(right);
519
+ }
520
+ function hydrateTableRefData(data) {
521
+ const table = {
522
+ kind: 'table',
523
+ id: data.id,
524
+ label: data.label,
525
+ ...(data.name !== undefined ? { name: data.name } : {}),
526
+ ...(data.sheetName !== undefined ? { sheetName: data.sheetName } : {}),
527
+ ...(data.headers !== undefined ? { headers: Object.freeze([...data.headers]) } : {}),
528
+ column(name) {
529
+ return createWorkbookColumnRef({ table, name });
530
+ },
531
+ };
532
+ hideHelper(table, 'column');
533
+ return Object.freeze(table);
534
+ }
535
+ function hydrateRowsRefData(data, sharedTable) {
536
+ const table = data.table === undefined ? undefined : sameRefData(data.table, sharedTable) ? sharedTable : hydrateTableRefData(data.table);
537
+ const rows = {
538
+ kind: 'rows',
539
+ id: data.id,
540
+ label: data.label,
541
+ ...(data.sheetName !== undefined ? { sheetName: data.sheetName } : {}),
542
+ ...(table !== undefined ? { table } : {}),
543
+ where: Object.freeze({ ...data.where }),
544
+ column(name) {
545
+ if (rows.table === undefined) {
546
+ throw new Error('Rows column selection requires a table-backed row selector');
547
+ }
548
+ return createWorkbookColumnRef({ table: rows.table, rows, name });
549
+ },
550
+ };
551
+ hideHelper(rows, 'column');
552
+ return Object.freeze(rows);
553
+ }
554
+ export function hydrateWorkbookRef(data) {
555
+ if (!isWorkbookRefData(data)) {
556
+ throw new Error('Workbook ref data is invalid');
557
+ }
558
+ switch (data.kind) {
559
+ case 'range':
560
+ return Object.freeze({
561
+ kind: 'range',
562
+ id: data.id,
563
+ label: data.label,
564
+ range: Object.freeze({ ...data.range }),
565
+ });
566
+ case 'name':
567
+ return Object.freeze({
568
+ kind: 'name',
569
+ id: data.id,
570
+ label: data.label,
571
+ name: data.name,
572
+ });
573
+ case 'table':
574
+ return hydrateTableRefData(data);
575
+ case 'column': {
576
+ const table = hydrateTableRefData(data.table);
577
+ const rows = data.rows === undefined ? undefined : hydrateRowsRefData(data.rows, table);
578
+ return Object.freeze({
579
+ kind: 'column',
580
+ id: data.id,
581
+ label: data.label,
582
+ table,
583
+ ...(rows !== undefined ? { rows } : {}),
584
+ name: data.name,
585
+ });
586
+ }
587
+ case 'rows':
588
+ return hydrateRowsRefData(data);
589
+ }
590
+ }
591
+ function isHydratableContainer(value) {
592
+ const prototype = Object.getPrototypeOf(value);
593
+ return Array.isArray(value) || prototype === Object.prototype || prototype === null;
594
+ }
595
+ function hydrateWorkbookRefsValue(value, seen) {
596
+ if (value === null || value === undefined || typeof value !== 'object') {
597
+ return value;
598
+ }
599
+ if (isWorkbookRefData(value)) {
600
+ return hydrateWorkbookRef(value);
601
+ }
602
+ if (!isHydratableContainer(value)) {
603
+ return value;
604
+ }
605
+ const cached = seen.get(value);
606
+ if (cached !== undefined) {
607
+ return cached;
608
+ }
609
+ if (Array.isArray(value)) {
610
+ const hydrated = [];
611
+ seen.set(value, hydrated);
612
+ value.forEach((entry) => {
613
+ hydrated.push(hydrateWorkbookRefsValue(entry, seen));
614
+ });
615
+ return Object.freeze(hydrated);
616
+ }
617
+ const hydrated = {};
618
+ seen.set(value, hydrated);
619
+ Object.entries(value).forEach(([key, entry]) => {
620
+ hydrated[key] = hydrateWorkbookRefsValue(entry, seen);
621
+ });
622
+ return Object.freeze(hydrated);
623
+ }
624
+ export function hydrateWorkbookRefs(value) {
625
+ return hydrateWorkbookRefsValue(value, new WeakMap());
626
+ }
382
627
  export function findTable(options) {
383
628
  return createWorkbookTableRef(options);
384
629
  }
package/dist/find.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"find.js","sourceRoot":"","sources":["../src/find.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"find.js","sourceRoot":"","sources":["../src/find.ts"],"names":[],"mappings":"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"}
package/dist/formula.d.ts CHANGED
@@ -3,9 +3,15 @@ export interface WorkbookFormulaExpression {
3
3
  readonly kind: 'formula';
4
4
  readonly source: string;
5
5
  readonly inputs: readonly WorkbookRef[];
6
+ readonly labels: readonly WorkbookFormulaLabel[];
7
+ }
8
+ export interface WorkbookFormulaLabel {
9
+ readonly name: string;
10
+ readonly ref: WorkbookRef;
6
11
  }
7
12
  export interface WorkbookRawFormulaOptions {
8
13
  readonly inputs?: readonly WorkbookRef[];
14
+ readonly labels?: readonly WorkbookFormulaLabel[];
9
15
  }
10
16
  export type WorkbookFormulaOperand = WorkbookFormulaExpression | WorkbookRef | number | boolean;
11
17
  declare function call(name: string, args: readonly WorkbookFormulaOperand[]): WorkbookFormulaExpression;
@@ -13,6 +19,7 @@ export declare const formula: {
13
19
  readonly raw: (source: string, options?: WorkbookRawFormulaOptions) => WorkbookFormulaExpression;
14
20
  readonly source: (expression: WorkbookFormulaOperand) => string;
15
21
  readonly inputs: (expression: WorkbookFormulaOperand) => readonly WorkbookRef[];
22
+ readonly labels: (expression: WorkbookFormulaOperand) => readonly WorkbookFormulaLabel[];
16
23
  readonly ref: (ref: WorkbookRef) => WorkbookFormulaExpression;
17
24
  readonly text: (value: string) => WorkbookFormulaExpression;
18
25
  readonly call: typeof call;
package/dist/formula.js CHANGED
@@ -21,11 +21,38 @@ function uniqueRefs(refs) {
21
21
  }
22
22
  return unique;
23
23
  }
24
- function createFormulaExpression(source, inputs = []) {
24
+ function uniqueLabels(labels) {
25
+ const seen = new Set();
26
+ const unique = [];
27
+ for (const label of labels) {
28
+ if (label.name.trim() === '') {
29
+ throw new Error('Formula label name cannot be empty');
30
+ }
31
+ const key = `${label.name}:${label.ref.kind}:${label.ref.id}`;
32
+ if (seen.has(key)) {
33
+ continue;
34
+ }
35
+ seen.add(key);
36
+ unique.push(label);
37
+ }
38
+ return unique;
39
+ }
40
+ function labelForRef(ref) {
41
+ return {
42
+ name: refSource(ref),
43
+ ref,
44
+ };
45
+ }
46
+ function labelsForRefs(refs) {
47
+ return refs.map(labelForRef);
48
+ }
49
+ function createFormulaExpression(source, inputs = [], labels = labelsForRefs(inputs)) {
50
+ const expressionLabels = uniqueLabels(labels);
25
51
  return {
26
52
  kind: 'formula',
27
53
  source: normalizeFormulaSource(source),
28
- inputs: uniqueRefs(inputs),
54
+ inputs: uniqueRefs([...inputs, ...expressionLabels.map((label) => label.ref)]),
55
+ labels: expressionLabels,
29
56
  };
30
57
  }
31
58
  function isFormulaExpression(value) {
@@ -89,19 +116,32 @@ function operandInputs(operand) {
89
116
  }
90
117
  return [];
91
118
  }
119
+ function operandLabels(operand) {
120
+ if (isFormulaExpression(operand)) {
121
+ return operand.labels;
122
+ }
123
+ if (isWorkbookRef(operand)) {
124
+ return [labelForRef(operand)];
125
+ }
126
+ return [];
127
+ }
92
128
  function collectInputs(args) {
93
129
  return uniqueRefs(args.flatMap((arg) => operandInputs(arg)));
94
130
  }
131
+ function collectLabels(args) {
132
+ return uniqueLabels(args.flatMap((arg) => operandLabels(arg)));
133
+ }
95
134
  function binary(left, operator, right) {
96
- return createFormulaExpression(`(${operandSource(left)})${operator}(${operandSource(right)})`, collectInputs([left, right]));
135
+ return createFormulaExpression(`(${operandSource(left)})${operator}(${operandSource(right)})`, collectInputs([left, right]), collectLabels([left, right]));
97
136
  }
98
137
  function call(name, args) {
99
138
  const callee = normalizeFormulaFunctionName(name);
100
- return createFormulaExpression(`${callee}(${args.map(operandSource).join(',')})`, collectInputs(args));
139
+ return createFormulaExpression(`${callee}(${args.map(operandSource).join(',')})`, collectInputs(args), collectLabels(args));
101
140
  }
102
141
  export const formula = {
103
142
  raw(source, options = {}) {
104
- return createFormulaExpression(source, options.inputs ?? []);
143
+ const inputs = options.inputs ?? [];
144
+ return createFormulaExpression(source, inputs, options.labels ?? labelsForRefs(inputs));
105
145
  },
106
146
  source(expression) {
107
147
  return normalizeFormulaSource(operandSource(expression));
@@ -109,8 +149,11 @@ export const formula = {
109
149
  inputs(expression) {
110
150
  return operandInputs(expression);
111
151
  },
152
+ labels(expression) {
153
+ return operandLabels(expression);
154
+ },
112
155
  ref(ref) {
113
- return createFormulaExpression(refSource(ref), [ref]);
156
+ return createFormulaExpression(refSource(ref), [ref], [labelForRef(ref)]);
114
157
  },
115
158
  text(value) {
116
159
  return createFormulaExpression(`"${value.replaceAll('"', '""')}"`);
@@ -1 +1 @@
1
- {"version":3,"file":"formula.js","sourceRoot":"","sources":["../src/formula.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formula.js","sourceRoot":"","sources":["../src/formula.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAuB3E,SAAS,sBAAsB,CAAC,MAAc;IAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IAC7B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IACvE,YAAY,CAAC,UAAU,CAAC,CAAA;IACxB,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,SAAS,UAAU,CAAC,IAA4B;IAC9C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,MAAM,GAAkB,EAAE,CAAA;IAChC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE,CAAA;QACnC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACb,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,YAAY,CAAC,MAAuC;IAC3D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,MAAM,GAA2B,EAAE,CAAA;IACzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACvD,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,CAAA;QAC7D,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACb,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,WAAW,CAAC,GAAgB;IACnC,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC;QACpB,GAAG;KACJ,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAA4B;IACjD,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;AAC9B,CAAC;AAED,SAAS,uBAAuB,CAC9B,MAAc,EACd,SAAiC,EAAE,EACnC,SAA0C,aAAa,CAAC,MAAM,CAAC;IAE/D,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAC7C,OAAO;QACL,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC;QACtC,MAAM,EAAE,UAAU,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9E,MAAM,EAAE,gBAAgB;KACzB,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAA;AACnG,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACf,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,KAAK,CAAC,IAAI,KAAK,SAAS;QACxB,IAAI,IAAI,KAAK;QACb,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,CAC7B,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,SAAiB;IACvC,OAAO,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAA;AACxG,CAAC;AAED,SAAS,cAAc,CAAC,KAAmB;IACzC,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAC7C,OAAO,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,UAAU,EAAE,CAAA;AAC1I,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAgB;IAC5C,OAAO,eAAe,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC,EAAE,CAAA;AACnE,CAAC;AAED,SAAS,SAAS,CAAC,GAAgB;IACjC,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,IAAI,CAAA;IACjB,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACtE,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,GAAG,CAAA;IACzC,CAAC;IACD,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,aAAa,CAAC,OAA+B;IACpD,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,MAAM,CAAA;IACvB,CAAC;IACD,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC,OAAO,CAAC,CAAA;IAC3B,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACnD,CAAC;QACD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;IACxB,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;IACvC,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,qHAAqH,CAAC,CAAA;AACxI,CAAC;AAED,SAAS,aAAa,CAAC,OAA+B;IACpD,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,MAAM,CAAA;IACvB,CAAC;IACD,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,SAAS,aAAa,CAAC,OAA+B;IACpD,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,MAAM,CAAA;IACvB,CAAC;IACD,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA;IAC/B,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,SAAS,aAAa,CAAC,IAAuC;IAC5D,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAC9D,CAAC;AAED,SAAS,aAAa,CAAC,IAAuC;IAC5D,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAChE,CAAC;AAED,SAAS,MAAM,CAAC,IAA4B,EAAE,QAA+B,EAAE,KAA6B;IAC1G,OAAO,uBAAuB,CAC5B,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,QAAQ,IAAI,aAAa,CAAC,KAAK,CAAC,GAAG,EAC9D,aAAa,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAC5B,aAAa,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAC7B,CAAA;AACH,CAAC;AAED,SAAS,IAAI,CAAC,IAAY,EAAE,IAAuC;IACjE,MAAM,MAAM,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAA;IACjD,OAAO,uBAAuB,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;AAC7H,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,GAAG,CAAC,MAAc,EAAE,UAAqC,EAAE;QACzD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAA;QACnC,OAAO,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;IACzF,CAAC;IACD,MAAM,CAAC,UAAkC;QACvC,OAAO,sBAAsB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAA;IAC1D,CAAC;IACD,MAAM,CAAC,UAAkC;QACvC,OAAO,aAAa,CAAC,UAAU,CAAC,CAAA;IAClC,CAAC;IACD,MAAM,CAAC,UAAkC;QACvC,OAAO,aAAa,CAAC,UAAU,CAAC,CAAA;IAClC,CAAC;IACD,GAAG,CAAC,GAAgB;QAClB,OAAO,uBAAuB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC3E,CAAC;IACD,IAAI,CAAC,KAAa;QAChB,OAAO,uBAAuB,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IACpE,CAAC;IACD,IAAI;IACJ,GAAG,CAAC,IAA4B,EAAE,KAA6B;QAC7D,OAAO,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;IACjC,CAAC;IACD,QAAQ,CAAC,IAA4B,EAAE,KAA6B;QAClE,OAAO,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;IACjC,CAAC;IACD,QAAQ,CAAC,IAA4B,EAAE,KAA6B;QAClE,OAAO,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;IACjC,CAAC;IACD,MAAM,CAAC,IAA4B,EAAE,KAA6B;QAChE,OAAO,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;IACjC,CAAC;IACD,GAAG,CAAC,GAAG,IAAuC;QAC5C,OAAO,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC1B,CAAC;CACO,CAAA"}
package/dist/guards.js CHANGED
@@ -420,7 +420,38 @@ function isWorkbookPivotValue(value) {
420
420
  const CHART_TYPE_VALUES = new Set(['column', 'bar', 'line', 'area', 'pie', 'scatter']);
421
421
  const CHART_SERIES_ORIENTATION_VALUES = new Set(['rows', 'columns']);
422
422
  const CHART_LEGEND_POSITION_VALUES = new Set(['top', 'right', 'bottom', 'left', 'hidden']);
423
+ const DRAWING_ANCHOR_EDIT_AS_VALUES = new Set(['twoCell', 'oneCell', 'absolute']);
423
424
  const SHAPE_TYPE_VALUES = new Set(['rectangle', 'roundedRectangle', 'ellipse', 'line', 'arrow', 'textBox']);
425
+ function isDrawingAnchorMarker(value) {
426
+ return (isRecord(value) &&
427
+ hasSafeNonNegativeInteger(value, 'row') &&
428
+ hasSafeNonNegativeInteger(value, 'col') &&
429
+ isOptionalSafeNonNegativeInteger(value['rowOffset']) &&
430
+ isOptionalSafeNonNegativeInteger(value['colOffset']));
431
+ }
432
+ function isDrawingAnchorExtent(value) {
433
+ return isRecord(value) && hasSafePositiveInteger(value, 'width') && hasSafePositiveInteger(value, 'height');
434
+ }
435
+ function isDrawingAnchorPosition(value) {
436
+ return isRecord(value) && hasSafeNonNegativeInteger(value, 'x') && hasSafeNonNegativeInteger(value, 'y');
437
+ }
438
+ function isWorkbookChartAnchor(value) {
439
+ if (!isRecord(value) || typeof value['kind'] !== 'string') {
440
+ return false;
441
+ }
442
+ switch (value['kind']) {
443
+ case 'twoCell':
444
+ return ((value['editAs'] === undefined || (typeof value['editAs'] === 'string' && DRAWING_ANCHOR_EDIT_AS_VALUES.has(value['editAs']))) &&
445
+ isDrawingAnchorMarker(value['from']) &&
446
+ isDrawingAnchorMarker(value['to']));
447
+ case 'oneCell':
448
+ return isDrawingAnchorMarker(value['from']) && isDrawingAnchorExtent(value['extent']);
449
+ case 'absolute':
450
+ return isDrawingAnchorPosition(value['position']) && isDrawingAnchorExtent(value['extent']);
451
+ default:
452
+ return false;
453
+ }
454
+ }
424
455
  function isWorkbookChart(value) {
425
456
  return (isRecord(value) &&
426
457
  hasString(value, 'id') &&
@@ -429,6 +460,7 @@ function isWorkbookChart(value) {
429
460
  isCellRangeRef(value['source']) &&
430
461
  typeof value['chartType'] === 'string' &&
431
462
  CHART_TYPE_VALUES.has(value['chartType']) &&
463
+ (value['anchor'] === undefined || isWorkbookChartAnchor(value['anchor'])) &&
432
464
  (value['seriesOrientation'] === undefined ||
433
465
  (typeof value['seriesOrientation'] === 'string' && CHART_SERIES_ORIENTATION_VALUES.has(value['seriesOrientation']))) &&
434
466
  isOptionalBoolean(value['firstRowAsHeaders']) &&