@openleaf-editor/core 0.1.0-beta.2 → 0.1.0-beta.3
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/README.md +115 -0
- package/dist/autolink.d.ts.map +1 -1
- package/dist/autolink.js +45 -7
- package/dist/autolink.js.map +1 -1
- package/dist/command-helpers.d.ts +8 -0
- package/dist/command-helpers.d.ts.map +1 -0
- package/dist/command-helpers.js +36 -0
- package/dist/command-helpers.js.map +1 -0
- package/dist/commands.d.ts +15 -61
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +295 -343
- package/dist/commands.js.map +1 -1
- package/dist/css.d.ts +1 -175
- package/dist/css.d.ts.map +1 -1
- package/dist/css.js +1 -516
- package/dist/css.js.map +1 -1
- package/dist/disclosure.d.ts +21 -0
- package/dist/disclosure.d.ts.map +1 -0
- package/dist/disclosure.js +144 -0
- package/dist/disclosure.js.map +1 -0
- package/dist/elements.d.ts +2 -0
- package/dist/elements.d.ts.map +1 -0
- package/dist/elements.js +2 -0
- package/dist/elements.js.map +1 -0
- package/dist/embed.d.ts +1 -51
- package/dist/embed.d.ts.map +1 -1
- package/dist/embed.js +1 -115
- package/dist/embed.js.map +1 -1
- package/dist/errors.d.ts +38 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +40 -0
- package/dist/errors.js.map +1 -0
- package/dist/extensions.d.ts +46 -5
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +272 -52
- package/dist/extensions.js.map +1 -1
- package/dist/formats.d.ts.map +1 -1
- package/dist/formats.js +19 -7
- package/dist/formats.js.map +1 -1
- package/dist/html.d.ts +32 -2
- package/dist/html.d.ts.map +1 -1
- package/dist/html.js +185 -31
- package/dist/html.js.map +1 -1
- package/dist/index.d.ts +21 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -6
- package/dist/index.js.map +1 -1
- package/dist/insert-commands.d.ts +172 -0
- package/dist/insert-commands.d.ts.map +1 -0
- package/dist/insert-commands.js +560 -0
- package/dist/insert-commands.js.map +1 -0
- package/dist/isolating-selection.d.ts +41 -0
- package/dist/isolating-selection.d.ts.map +1 -0
- package/dist/isolating-selection.js +162 -0
- package/dist/isolating-selection.js.map +1 -0
- package/dist/noneditable.d.ts.map +1 -1
- package/dist/noneditable.js +18 -4
- package/dist/noneditable.js.map +1 -1
- package/dist/plugins.d.ts +20 -2
- package/dist/plugins.d.ts.map +1 -1
- package/dist/plugins.js +27 -2
- package/dist/plugins.js.map +1 -1
- package/dist/preserve.d.ts +48 -17
- package/dist/preserve.d.ts.map +1 -1
- package/dist/preserve.js +214 -43
- package/dist/preserve.js.map +1 -1
- package/dist/schema.d.ts +15 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +157 -28
- package/dist/schema.js.map +1 -1
- package/dist/structure.d.ts +32 -0
- package/dist/structure.d.ts.map +1 -1
- package/dist/structure.js +53 -10
- package/dist/structure.js.map +1 -1
- package/dist/tables.d.ts +47 -1
- package/dist/tables.d.ts.map +1 -1
- package/dist/tables.js +417 -40
- package/dist/tables.js.map +1 -1
- package/dist/testing.d.ts +3 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +3 -0
- package/dist/testing.js.map +1 -0
- package/dist/tokens.d.ts +8 -0
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +54 -6
- package/dist/tokens.js.map +1 -1
- package/dist/url.d.ts +1 -25
- package/dist/url.d.ts.map +1 -1
- package/dist/url.js +1 -77
- package/dist/url.js.map +1 -1
- package/dist/visual-aids.d.ts +11 -1
- package/dist/visual-aids.d.ts.map +1 -1
- package/dist/visual-aids.js +124 -36
- package/dist/visual-aids.js.map +1 -1
- package/package.json +15 -1
package/dist/tables.js
CHANGED
|
@@ -35,8 +35,10 @@
|
|
|
35
35
|
* is what tells a screen reader which cells a header governs. Dropping it turns
|
|
36
36
|
* a navigable table into a grid of unrelated values.
|
|
37
37
|
*/
|
|
38
|
+
import { DOMSerializer } from 'prosemirror-model';
|
|
39
|
+
import { Plugin, PluginKey } from 'prosemirror-state';
|
|
38
40
|
import { applyStyleAttribute, parseDeclarations, safeColor, serializeDeclarations, } from './css.js';
|
|
39
|
-
import {
|
|
41
|
+
import { scrub, serializationTarget } from './preserve.js';
|
|
40
42
|
/** Presentational attributes legacy CMS content puts on `<table>`. */
|
|
41
43
|
const TABLE_LEGACY_ATTRS = ['border', 'cellpadding', 'cellspacing', 'width', 'align', 'summary', 'class'];
|
|
42
44
|
/** Attributes legacy content puts on cells, plus the accessibility-critical ones. */
|
|
@@ -97,19 +99,92 @@ function safeStyleValue(property, value) {
|
|
|
97
99
|
}
|
|
98
100
|
function readStyle(el, properties) {
|
|
99
101
|
const declarations = parseDeclarations(el.getAttribute('style'));
|
|
102
|
+
const bgcolor = safeColor(el.getAttribute('bgcolor'));
|
|
100
103
|
const out = new Map();
|
|
101
104
|
for (const name of properties) {
|
|
102
105
|
const safe = safeStyleValue(name, declarations.get(name));
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
106
|
+
/*
|
|
107
|
+
* `bgcolor` is the legacy spelling of `background-color`, read only when
|
|
108
|
+
* the declaration itself is absent.
|
|
109
|
+
*
|
|
110
|
+
* Resolved INSIDE the loop so that the result is in `properties` order
|
|
111
|
+
* whichever spelling it came from. Filling it in afterwards -- which is
|
|
112
|
+
* what this did -- appended the background last when it came from the
|
|
113
|
+
* attribute and emitted it first when it came from the declaration. A cell
|
|
114
|
+
* carrying both a `bgcolor` and a `padding` therefore serialized in one
|
|
115
|
+
* order on the first save and the other on the second: the round trip was
|
|
116
|
+
* not a fixed point, so the markup churned on every save, forever, with a
|
|
117
|
+
* real diff each time and nothing to show for it.
|
|
118
|
+
*/
|
|
119
|
+
const value = safe ?? (name === 'background-color' ? bgcolor : null);
|
|
120
|
+
if (value)
|
|
121
|
+
out.set(name, value);
|
|
110
122
|
}
|
|
111
123
|
return serializeDeclarations(out);
|
|
112
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* Remove from a node's carried residue every declaration the node itself
|
|
127
|
+
* consumed, and nothing else.
|
|
128
|
+
*
|
|
129
|
+
* The counterpart to `readStyle`. Because `style` is always carried verbatim
|
|
130
|
+
* (see extensions.ts for why a composite attribute cannot be "claimed" by a
|
|
131
|
+
* spec), a cell that stored `background-color:red;border:1px solid red` holds
|
|
132
|
+
* the whole string in residue and the background in its own attribute. Emitting
|
|
133
|
+
* both would write the background twice.
|
|
134
|
+
*
|
|
135
|
+
* The test is `safeTableStyleValue(...) !== null`, not "is this property in the
|
|
136
|
+
* list", and the difference is the point: `readStyle` drops a value it cannot
|
|
137
|
+
* validate, so `width:calc(100% - 3px)` never reached the node's attribute and
|
|
138
|
+
* must therefore stay in the residue. Matching on the property name alone would
|
|
139
|
+
* delete it from both places and lose it.
|
|
140
|
+
*
|
|
141
|
+
* `bgcolor` and `vertical-align` go for the same reason one level up: both are
|
|
142
|
+
* folded into a modelled attribute on the way in, so leaving the original in the
|
|
143
|
+
* residue emits two spellings of one fact -- which is the state `<td bgcolor>`
|
|
144
|
+
* was actually in, coming back as `style="background-color:#f00" bgcolor="#f00"`.
|
|
145
|
+
* This is the trade `scrubModelledStyle` already makes for `<p align="center">`:
|
|
146
|
+
* stored content converges on the spelling that is still valid HTML.
|
|
147
|
+
*/
|
|
148
|
+
function scrubTableStyle(properties, cell) {
|
|
149
|
+
return (carried) => {
|
|
150
|
+
const style = carried['style'];
|
|
151
|
+
if (style !== undefined) {
|
|
152
|
+
const declarations = parseDeclarations(style);
|
|
153
|
+
const before = declarations.size;
|
|
154
|
+
for (const name of properties) {
|
|
155
|
+
const value = declarations.get(name);
|
|
156
|
+
if (value !== undefined && safeTableStyleValue(name, value) !== null) {
|
|
157
|
+
declarations.delete(name);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
if (cell) {
|
|
161
|
+
const valign = declarations.get('vertical-align');
|
|
162
|
+
if (valign !== undefined && safeVAlign(valign) !== null) {
|
|
163
|
+
declarations.delete('vertical-align');
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// Nothing consumed means nothing to rewrite: leave the author's spelling
|
|
167
|
+
// alone, for the same reason `scrubModelledStyle` does.
|
|
168
|
+
if (declarations.size !== before) {
|
|
169
|
+
const rest = serializeDeclarations(declarations);
|
|
170
|
+
if (rest !== null)
|
|
171
|
+
carried['style'] = rest;
|
|
172
|
+
else
|
|
173
|
+
delete carried['style'];
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
const bgcolor = carried['bgcolor'];
|
|
177
|
+
if (bgcolor !== undefined && safeColor(bgcolor) !== null)
|
|
178
|
+
delete carried['bgcolor'];
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
/** The residue scrubs for the table node types, keyed by schema node name. */
|
|
182
|
+
export const CARRIED_STYLE_SCRUBS = {
|
|
183
|
+
table: scrubTableStyle(TABLE_STYLE_PROPS, false),
|
|
184
|
+
table_row: scrubTableStyle(ROW_STYLE_PROPS, false),
|
|
185
|
+
table_cell: scrubTableStyle(CELL_STYLE_PROPS, true),
|
|
186
|
+
table_header: scrubTableStyle(CELL_STYLE_PROPS, true),
|
|
187
|
+
};
|
|
113
188
|
function readAttrs(el, names) {
|
|
114
189
|
const out = {};
|
|
115
190
|
for (const name of names)
|
|
@@ -127,19 +202,131 @@ function writeAttrs(attrs, names) {
|
|
|
127
202
|
}
|
|
128
203
|
const legacyDefaults = (names) => Object.fromEntries(names.map((name) => [name, { default: null }]));
|
|
129
204
|
/**
|
|
130
|
-
*
|
|
205
|
+
* Bounds for the cell span attributes, and why a parser has to impose them.
|
|
131
206
|
*
|
|
132
|
-
*
|
|
133
|
-
*
|
|
207
|
+
* Both consumers of `colspan` scale linearly in it. `TableMap.get` allocates and
|
|
208
|
+
* fills `width * height` map cells, and `updateColumnsOnResize` -- installed for
|
|
209
|
+
* every table node view by `columnResizing()` in `plugins-table` -- appends one
|
|
210
|
+
* real `<col>` element per column. So a single stored `<td colspan="5000000">`
|
|
211
|
+
* was five million DOM elements built synchronously on first render, and a table
|
|
212
|
+
* asked to lay out half a billion pixels wide. That is a hung tab from a
|
|
213
|
+
* fifty-byte attribute, reachable through every entry point into the schema:
|
|
214
|
+
* `element.value`, `parseHtml`, a paste, an import, or content stored before this
|
|
215
|
+
* bound existed.
|
|
216
|
+
*
|
|
217
|
+
* Negative values were worse than large ones. `|| 1` catches `NaN` and `0` and
|
|
218
|
+
* nothing else, so `colspan="-5"` landed verbatim and `computeMap` then did
|
|
219
|
+
* `mapPos += colspan` with a negative operand, walking its write cursor backwards
|
|
220
|
+
* through the map it was filling.
|
|
221
|
+
*
|
|
222
|
+
* The numbers are HTML's own limits, so nothing an author could have written in a
|
|
223
|
+
* document is lost: a browser parsing the same markup clamps it identically.
|
|
224
|
+
*
|
|
225
|
+
* Clamping here rather than defending in the consumers is deliberate. The
|
|
226
|
+
* commands in `plugins-table`, the property dialogs, `fixTables` and the resize
|
|
227
|
+
* node view all read `node.attrs.colspan` directly, and every one of them would
|
|
228
|
+
* otherwise need a bound of its own.
|
|
134
229
|
*/
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
230
|
+
const MAX_COLSPAN = 1000;
|
|
231
|
+
const MAX_ROWSPAN = 65534;
|
|
232
|
+
/**
|
|
233
|
+
* The cumulative bound, and why the per-cell one is not enough on its own.
|
|
234
|
+
*
|
|
235
|
+
* `MAX_COLSPAN` bounds one attribute. It does not bound their sum, and both
|
|
236
|
+
* consumers scale in the sum: a row of 5,000 `<td colspan="1000">` cells is
|
|
237
|
+
* about 125 KB of input and produces a five-million-column table -- measured,
|
|
238
|
+
* not estimated -- which is the same hung tab the per-cell clamp exists to
|
|
239
|
+
* prevent, reached by addition instead of by one large number.
|
|
240
|
+
*
|
|
241
|
+
* So a row gets a total as well, and each cell is clamped against what the row
|
|
242
|
+
* has left. A cell arriving with nothing left still claims one column rather
|
|
243
|
+
* than being dropped: losing a cell silently changes the document, and one
|
|
244
|
+
* column each is already harmless. That puts the worst case at
|
|
245
|
+
* `max(cells in the row, MAX_TABLE_COLUMNS)` columns -- linear in the input,
|
|
246
|
+
* because 5,000 cells cost 5,000 tags to write. Removing the amplification is
|
|
247
|
+
* the property that matters; a wide table is only ever as wide as its markup.
|
|
248
|
+
*/
|
|
249
|
+
const MAX_TABLE_COLUMNS = 1000;
|
|
250
|
+
/**
|
|
251
|
+
* A column wider than this is not a layout.
|
|
252
|
+
*
|
|
253
|
+
* `updateColumnsOnResize` writes each entry straight into `col.style.width`, and
|
|
254
|
+
* sums them into the table's `minWidth`.
|
|
255
|
+
*/
|
|
256
|
+
const MAX_COLWIDTH = 10000;
|
|
257
|
+
/**
|
|
258
|
+
* A span attribute, clamped to what HTML itself allows.
|
|
259
|
+
*
|
|
260
|
+
* `rowspan="0"` means "to the end of the section" in HTML, but
|
|
261
|
+
* `prosemirror-tables` requires at least 1 and the schema default is 1, so it
|
|
262
|
+
* normalizes up rather than being carried as a zero the cell map cannot use.
|
|
263
|
+
*/
|
|
264
|
+
function readSpan(el, name, max) {
|
|
265
|
+
const parsed = Number.parseInt(el.getAttribute(name) ?? '1', 10);
|
|
266
|
+
if (!Number.isFinite(parsed) || parsed < 1)
|
|
267
|
+
return 1;
|
|
268
|
+
return Math.min(parsed, max);
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Every cell in a row, clamped against the row's cumulative column budget.
|
|
272
|
+
*
|
|
273
|
+
* Computed once per row and memoised rather than per cell against its preceding
|
|
274
|
+
* siblings, which would be quadratic in exactly the row built to be wide. Keyed
|
|
275
|
+
* by element, so the answer does not depend on the order ProseMirror happens to
|
|
276
|
+
* visit the cells in, and recomputing it for the same row is a lookup.
|
|
277
|
+
*/
|
|
278
|
+
const rowBudgets = new WeakMap();
|
|
279
|
+
/** Whether this element is a cell, so a stray child cannot spend the budget. */
|
|
280
|
+
function isCell(el) {
|
|
281
|
+
const name = el.nodeName.toLowerCase();
|
|
282
|
+
return name === 'td' || name === 'th';
|
|
283
|
+
}
|
|
284
|
+
function budgetedColspan(el) {
|
|
285
|
+
const row = el.parentElement;
|
|
286
|
+
if (row === null)
|
|
287
|
+
return readSpan(el, 'colspan', MAX_COLSPAN);
|
|
288
|
+
let budget = rowBudgets.get(row);
|
|
289
|
+
if (budget === undefined) {
|
|
290
|
+
budget = new Map();
|
|
291
|
+
let used = 0;
|
|
292
|
+
for (const cell of Array.from(row.children)) {
|
|
293
|
+
if (!isCell(cell))
|
|
294
|
+
continue;
|
|
295
|
+
const asked = readSpan(cell, 'colspan', MAX_COLSPAN);
|
|
296
|
+
// At least one: see the note on MAX_TABLE_COLUMNS about not dropping cells.
|
|
297
|
+
const granted = Math.max(1, Math.min(asked, MAX_TABLE_COLUMNS - used));
|
|
298
|
+
budget.set(cell, granted);
|
|
299
|
+
used += granted;
|
|
300
|
+
}
|
|
301
|
+
rowBudgets.set(row, budget);
|
|
141
302
|
}
|
|
142
|
-
return
|
|
303
|
+
return budget.get(el) ?? readSpan(el, 'colspan', MAX_COLSPAN);
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Parse `colwidth` from the attribute the serializer writes.
|
|
307
|
+
*
|
|
308
|
+
* `prosemirror-tables` stores column widths as an array of numbers on the cell
|
|
309
|
+
* that starts the column, which is how its resizing plugin reads them -- one
|
|
310
|
+
* entry per column the cell covers, which is the invariant the commands in
|
|
311
|
+
* `plugins-table` already document and rely on.
|
|
312
|
+
*
|
|
313
|
+
* The digits-only test and the length check are `prosemirror-tables`' own rules
|
|
314
|
+
* for the same attribute, adopted rather than reinvented. They are stricter than
|
|
315
|
+
* the `Number.isFinite` test they replace in the two ways that matter: a negative
|
|
316
|
+
* width no longer survives to be written into `col.style.width`, and an array
|
|
317
|
+
* that does not match `colspan` is rejected instead of being indexed past its
|
|
318
|
+
* end. The ceiling is ours, for the same reason the span bounds exist.
|
|
319
|
+
*/
|
|
320
|
+
function readColwidth(el, colspan) {
|
|
321
|
+
const attr = el.getAttribute('data-colwidth');
|
|
322
|
+
if (!attr || !/^\d+(,\d+)*$/.test(attr))
|
|
323
|
+
return null;
|
|
324
|
+
const parsed = attr.split(',').map((n) => Number.parseInt(n, 10));
|
|
325
|
+
if (parsed.length !== colspan)
|
|
326
|
+
return null;
|
|
327
|
+
if (parsed.some((n) => n < 1 || n > MAX_COLWIDTH))
|
|
328
|
+
return null;
|
|
329
|
+
return parsed;
|
|
143
330
|
}
|
|
144
331
|
const cellAttrs = {
|
|
145
332
|
// These three names are required by prosemirror-tables.
|
|
@@ -151,10 +338,15 @@ const cellAttrs = {
|
|
|
151
338
|
};
|
|
152
339
|
function cellGetAttrs(dom) {
|
|
153
340
|
const el = dom;
|
|
341
|
+
// Against the row's remaining budget, not just the per-cell ceiling: the sum
|
|
342
|
+
// is what both consumers actually scale in. See MAX_TABLE_COLUMNS.
|
|
343
|
+
const colspan = budgetedColspan(el);
|
|
154
344
|
const attrs = {
|
|
155
|
-
colspan
|
|
156
|
-
rowspan:
|
|
157
|
-
|
|
345
|
+
colspan,
|
|
346
|
+
rowspan: readSpan(el, 'rowspan', MAX_ROWSPAN),
|
|
347
|
+
// Read against the clamped colspan, not the attribute: the array has to
|
|
348
|
+
// match the number of columns the cell actually claims.
|
|
349
|
+
colwidth: readColwidth(el, colspan),
|
|
158
350
|
...readAttrs(el, CELL_LEGACY_ATTRS),
|
|
159
351
|
style: readStyle(el, CELL_STYLE_PROPS),
|
|
160
352
|
};
|
|
@@ -225,13 +417,28 @@ function cellToDOM(tag) {
|
|
|
225
417
|
* is to hand markup back unmodified.
|
|
226
418
|
*/
|
|
227
419
|
const FURNITURE_TAGS = new Set(['caption', 'colgroup', 'col']);
|
|
420
|
+
/**
|
|
421
|
+
* Drop `contenteditable` from furniture before it is stored as a node attr.
|
|
422
|
+
*
|
|
423
|
+
* The editor stamps `contenteditable="false"` on a live caption so a caret
|
|
424
|
+
* cannot enter it. That marker is not author content. Clipboard HTML used to
|
|
425
|
+
* carry it (DOMSerializer does not run inside `serializeHtml`), parse then
|
|
426
|
+
* kept it via `scrub`, and from then on it was in the document permanently.
|
|
427
|
+
* Stripping here is how already-contaminated markup, and any future serializer
|
|
428
|
+
* hole, cannot persist it.
|
|
429
|
+
*/
|
|
430
|
+
function dropFurnitureInertMarker(el) {
|
|
431
|
+
el.removeAttribute('contenteditable');
|
|
432
|
+
}
|
|
228
433
|
/** Serialized direct children of `el` matching `tags`, in document order. */
|
|
229
434
|
function readFurniture(el, tags) {
|
|
230
435
|
let html = '';
|
|
231
436
|
for (const child of Array.from(el.children)) {
|
|
232
437
|
if (!tags.includes(child.nodeName.toLowerCase()))
|
|
233
438
|
continue;
|
|
234
|
-
|
|
439
|
+
const clone = child.cloneNode(true);
|
|
440
|
+
dropFurnitureInertMarker(clone);
|
|
441
|
+
html += scrub(clone);
|
|
235
442
|
// HTML permits exactly one caption; a second is somebody else's bug and
|
|
236
443
|
// concatenating it would render two. Take the first and stop.
|
|
237
444
|
if (child.nodeName.toLowerCase() === 'caption')
|
|
@@ -246,20 +453,103 @@ function readFurniture(el, tags) {
|
|
|
246
453
|
* illegal inside a `<div>` and would be silently discarded there -- the same
|
|
247
454
|
* reason the preservation layer uses one.
|
|
248
455
|
*/
|
|
249
|
-
function appendFurniture(table, html, doc
|
|
456
|
+
function appendFurniture(table, html, doc) {
|
|
250
457
|
const tpl = doc.createElement('template');
|
|
251
458
|
tpl.innerHTML = html;
|
|
252
459
|
for (const child of Array.from(tpl.content.children)) {
|
|
253
460
|
if (!FURNITURE_TAGS.has(child.nodeName.toLowerCase()))
|
|
254
461
|
continue;
|
|
255
|
-
//
|
|
256
|
-
//
|
|
257
|
-
//
|
|
258
|
-
|
|
259
|
-
|
|
462
|
+
// Never stamp `contenteditable` here. `toDOM` is shared by the editor, by
|
|
463
|
+
// `serializeHtml`, and by clipboard serialization (`DOMSerializer` is
|
|
464
|
+
// called with no `withSerializationDocument` wrap). Emitting the inert
|
|
465
|
+
// marker for "not serializeHtml" leaked it into clipboard HTML, then into
|
|
466
|
+
// stored content on paste. The editor applies the marker in a node view
|
|
467
|
+
// (`tableCaptionNodeView`) that serializers never run.
|
|
260
468
|
table.appendChild(child);
|
|
261
469
|
}
|
|
262
470
|
}
|
|
471
|
+
/**
|
|
472
|
+
* `<thead>` and `<tfoot>`: recorded as row COUNTS, restored on serialization.
|
|
473
|
+
*
|
|
474
|
+
* The wrappers were skipped on parse and never written back, so every save
|
|
475
|
+
* flattened a grouped table into one undifferentiated `<tbody>`. That is not a
|
|
476
|
+
* cosmetic loss. `<thead>` is what makes a header repeat at the top of each page
|
|
477
|
+
* when a long table is printed, it is the hook `position: sticky` header CSS and
|
|
478
|
+
* every `thead th` selector in a site's stylesheet attach to, and it is the
|
|
479
|
+
* structural cue that tells assistive technology which rows label the data.
|
|
480
|
+
* Opening and saving an inherited document changed how the page rendered and
|
|
481
|
+
* printed, in a way nothing in the editor showed.
|
|
482
|
+
*
|
|
483
|
+
* A count rather than a wrapper node, for the reason spelled out above
|
|
484
|
+
* `readFurniture`: `prosemirror-tables` computes its cell map with
|
|
485
|
+
* `height = table.childCount` and reads `table.child(row)` as a row, so a
|
|
486
|
+
* `thead` node between the table and its rows would shift every coordinate the
|
|
487
|
+
* library derives and break cell selection, column resizing and the row and
|
|
488
|
+
* column commands. The rows stay direct children; only the knowledge of where
|
|
489
|
+
* the groups were is stored beside them.
|
|
490
|
+
*
|
|
491
|
+
* Counted from the ends and only from the ends. A `<tfoot>` written before its
|
|
492
|
+
* `<tbody>` -- required by HTML 4, still common in old content -- leaves rows
|
|
493
|
+
* that are not trailing, so no footer is recorded and that table keeps today's
|
|
494
|
+
* behaviour. The alternative is taking the last N rows regardless and moving
|
|
495
|
+
* somebody's data into a `<tfoot>` it never belonged to, which is worse than the
|
|
496
|
+
* loss it would be fixing.
|
|
497
|
+
*/
|
|
498
|
+
const tableSectionRows = new WeakMap();
|
|
499
|
+
/**
|
|
500
|
+
* Row counts for a `<table>` element this module rendered, or undefined.
|
|
501
|
+
*
|
|
502
|
+
* The serialization pass in html.ts needs to know how many of a table's rows
|
|
503
|
+
* came out of a `<thead>`, and `toDOM` cannot tell it in the output: ProseMirror
|
|
504
|
+
* allows exactly one `contentDOM`, so rows cannot flow into two sections. The
|
|
505
|
+
* count therefore travels beside the DOM rather than inside it.
|
|
506
|
+
*
|
|
507
|
+
* Out of band for the same reason `preservedElements` is (see preserve.ts): a
|
|
508
|
+
* `data-` attribute stripped after the fact cannot distinguish the attribute
|
|
509
|
+
* this code just added from the identical attribute in a customer's document,
|
|
510
|
+
* and deleting theirs is a worse bug than the one being fixed. A WeakMap cannot
|
|
511
|
+
* collide with content and needs no cleanup pass.
|
|
512
|
+
*/
|
|
513
|
+
export function tableSectionRowCounts(el) {
|
|
514
|
+
return tableSectionRows.get(el);
|
|
515
|
+
}
|
|
516
|
+
/**
|
|
517
|
+
* Count the rows a table's own `<thead>` and `<tfoot>` contribute.
|
|
518
|
+
*
|
|
519
|
+
* Direct children only, at both levels. `querySelectorAll` would attribute a
|
|
520
|
+
* nested table's header to the outer table and lift the wrong rows on the way
|
|
521
|
+
* out -- a nested table is the case where being off by a row is silent and
|
|
522
|
+
* permanent.
|
|
523
|
+
*
|
|
524
|
+
* The rows are walked in the order the parser will see them, because that is the
|
|
525
|
+
* order they will be in on the node. A `<thead>` that is not first, or a
|
|
526
|
+
* `<tfoot>` that is not last, contributes nothing: the counts describe a leading
|
|
527
|
+
* and a trailing run, and anything else cannot be expressed as one.
|
|
528
|
+
*/
|
|
529
|
+
function readSectionRows(el) {
|
|
530
|
+
const owners = [];
|
|
531
|
+
for (const child of Array.from(el.children)) {
|
|
532
|
+
const name = child.nodeName.toLowerCase();
|
|
533
|
+
if (name === 'tr') {
|
|
534
|
+
owners.push('tbody');
|
|
535
|
+
continue;
|
|
536
|
+
}
|
|
537
|
+
if (name !== 'thead' && name !== 'tbody' && name !== 'tfoot')
|
|
538
|
+
continue;
|
|
539
|
+
for (const row of Array.from(child.children)) {
|
|
540
|
+
if (row.nodeName.toLowerCase() === 'tr')
|
|
541
|
+
owners.push(name);
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
let header = 0;
|
|
545
|
+
while (header < owners.length && owners[header] === 'thead')
|
|
546
|
+
header += 1;
|
|
547
|
+
let footer = 0;
|
|
548
|
+
while (footer < owners.length - header && owners[owners.length - 1 - footer] === 'tfoot') {
|
|
549
|
+
footer += 1;
|
|
550
|
+
}
|
|
551
|
+
return { header, footer };
|
|
552
|
+
}
|
|
263
553
|
export const table = {
|
|
264
554
|
content: 'table_row+',
|
|
265
555
|
tableRole: 'table',
|
|
@@ -269,17 +559,24 @@ export const table = {
|
|
|
269
559
|
...legacyDefaults(TABLE_LEGACY_ATTRS),
|
|
270
560
|
caption: { default: null },
|
|
271
561
|
colgroup: { default: null },
|
|
562
|
+
headerRows: { default: 0 },
|
|
563
|
+
footerRows: { default: 0 },
|
|
272
564
|
style: { default: null },
|
|
273
565
|
},
|
|
274
566
|
parseDOM: [
|
|
275
567
|
{
|
|
276
568
|
tag: 'table',
|
|
277
|
-
getAttrs: (dom) =>
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
569
|
+
getAttrs: (dom) => {
|
|
570
|
+
const sections = readSectionRows(dom);
|
|
571
|
+
return {
|
|
572
|
+
...readAttrs(dom, TABLE_LEGACY_ATTRS),
|
|
573
|
+
caption: readFurniture(dom, ['caption']),
|
|
574
|
+
colgroup: readFurniture(dom, ['colgroup', 'col']),
|
|
575
|
+
headerRows: sections.header,
|
|
576
|
+
footerRows: sections.footer,
|
|
577
|
+
style: readStyle(dom, TABLE_STYLE_PROPS),
|
|
578
|
+
};
|
|
579
|
+
},
|
|
283
580
|
},
|
|
284
581
|
/*
|
|
285
582
|
* `tbody`, `thead` and `tfoot` are SKIPPED rather than ignored: the wrapper
|
|
@@ -289,6 +586,12 @@ export const table = {
|
|
|
289
586
|
* These rules also have to exist because the preservation layer's catch-all
|
|
290
587
|
* would otherwise claim a `<tbody>` as unrecognised markup and produce an
|
|
291
588
|
* opaque atom that `table_row+` refuses to accept.
|
|
589
|
+
*
|
|
590
|
+
* Skipping loses which group each row was in, which is why `headerRows` and
|
|
591
|
+
* `footerRows` are counted separately in `getAttrs` and put back on the way
|
|
592
|
+
* out. Attributes ON the wrapper -- a `<thead class="sticky">` -- are still
|
|
593
|
+
* dropped; recording the grouping is the fidelity win worth having, and a
|
|
594
|
+
* second residue channel for an element that is not a node is not.
|
|
292
595
|
*/
|
|
293
596
|
{ tag: 'tbody', skip: true },
|
|
294
597
|
{ tag: 'thead', skip: true },
|
|
@@ -301,18 +604,31 @@ export const table = {
|
|
|
301
604
|
* them the preservation layer's catch-all claims a `<caption>` as an
|
|
302
605
|
* unrecognised block, and `table_row+` refuses to accept it, so the caption
|
|
303
606
|
* is dropped a second way by a different mechanism.
|
|
607
|
+
*
|
|
608
|
+
* They are scoped with `context: 'table/'`. `DOMParser.fromSchema` flattens
|
|
609
|
+
* every spec's parse rules into one list; a rule declared on `table` is
|
|
610
|
+
* otherwise global. Unscoped `ignore` also fired for an orphaned
|
|
611
|
+
* `<caption>` or `<col>` -- a fragment, a partial paste, a leftover after
|
|
612
|
+
* the table was deleted -- and `ignore` takes the element's text with it.
|
|
613
|
+
* Outside a table the preservation layer keeps the markup instead.
|
|
304
614
|
*/
|
|
305
|
-
{ tag: 'colgroup', ignore: true },
|
|
306
|
-
{ tag: 'col', ignore: true },
|
|
307
|
-
{ tag: 'caption', ignore: true },
|
|
615
|
+
{ tag: 'colgroup', ignore: true, context: 'table/' },
|
|
616
|
+
{ tag: 'col', ignore: true, context: 'table/' },
|
|
617
|
+
{ tag: 'caption', ignore: true, context: 'table/' },
|
|
308
618
|
],
|
|
309
619
|
toDOM(node) {
|
|
310
620
|
const attrs = writeAttrs(node.attrs, TABLE_LEGACY_ATTRS);
|
|
311
621
|
const caption = node.attrs['caption'];
|
|
312
622
|
const colgroup = node.attrs['colgroup'];
|
|
313
623
|
const style = node.attrs['style'];
|
|
314
|
-
|
|
624
|
+
const header = node.attrs['headerRows'] || 0;
|
|
625
|
+
const footer = node.attrs['footerRows'] || 0;
|
|
626
|
+
// A table with sections has to take the element path even when it has no
|
|
627
|
+
// furniture: the row counts are keyed by the element, and the array path
|
|
628
|
+
// never produces one to key them by.
|
|
629
|
+
if (!caption && !colgroup && !style && !header && !footer) {
|
|
315
630
|
return ['table', attrs, ['tbody', 0]];
|
|
631
|
+
}
|
|
316
632
|
/*
|
|
317
633
|
* Furniture forces a real element rather than an output-spec array, because
|
|
318
634
|
* an array cannot express "these children, then the content hole inside a
|
|
@@ -329,14 +645,75 @@ export const table = {
|
|
|
329
645
|
// Emitting them in any other order produces markup browsers reshuffle, which
|
|
330
646
|
// would make the round-trip lossy again by a subtler route.
|
|
331
647
|
if (caption)
|
|
332
|
-
appendFurniture(table, caption, doc
|
|
648
|
+
appendFurniture(table, caption, doc);
|
|
333
649
|
if (colgroup)
|
|
334
|
-
appendFurniture(table, colgroup, doc
|
|
650
|
+
appendFurniture(table, colgroup, doc);
|
|
335
651
|
const tbody = doc.createElement('tbody');
|
|
336
652
|
table.appendChild(tbody);
|
|
653
|
+
/*
|
|
654
|
+
* Every row goes into the one `<tbody>`, including the header rows, and the
|
|
655
|
+
* split back into `<thead>`/`<tfoot>` happens after serialization in
|
|
656
|
+
* html.ts. It cannot happen here: a node has exactly one `contentDOM`, so
|
|
657
|
+
* there is no output spec that means "the first two rows here, the rest
|
|
658
|
+
* there". This is also why the editor shows a grouped table as one body --
|
|
659
|
+
* the grouping survives the save, it just is not visible while typing.
|
|
660
|
+
*/
|
|
661
|
+
if (header || footer)
|
|
662
|
+
tableSectionRows.set(table, { header, footer });
|
|
337
663
|
return { dom: table, contentDOM: tbody };
|
|
338
664
|
},
|
|
339
665
|
};
|
|
666
|
+
/**
|
|
667
|
+
* Editor-only table node view: same DOM as `toDOM`, plus `contenteditable="false"`
|
|
668
|
+
* on a preserved caption.
|
|
669
|
+
*
|
|
670
|
+
* A caption sits inside the editable area but outside the node's `contentDOM`,
|
|
671
|
+
* so without the marker a caret can enter text ProseMirror will discard on its
|
|
672
|
+
* next redraw. Serializers (`serializeHtml`, clipboard `DOMSerializer`) never
|
|
673
|
+
* consult node views, so the marker cannot reach stored or clipboard HTML.
|
|
674
|
+
*
|
|
675
|
+
* `@openleaf-editor/plugins-table` replaces this with `CaptionedTableView`, which
|
|
676
|
+
* stamps the same attribute on the caption it rebuilds. Until that bundle loads,
|
|
677
|
+
* this is the view the core editor uses.
|
|
678
|
+
*/
|
|
679
|
+
export function tableCaptionNodeView(node) {
|
|
680
|
+
const spec = node.type.spec.toDOM(node);
|
|
681
|
+
const rendered = Array.isArray(spec)
|
|
682
|
+
? DOMSerializer.renderSpec(document, spec)
|
|
683
|
+
: spec;
|
|
684
|
+
const root = rendered.dom;
|
|
685
|
+
if (root instanceof Element) {
|
|
686
|
+
const first = root.firstElementChild;
|
|
687
|
+
if (first && first.nodeName === 'CAPTION')
|
|
688
|
+
first.setAttribute('contenteditable', 'false');
|
|
689
|
+
}
|
|
690
|
+
const view = { dom: rendered.dom };
|
|
691
|
+
if (rendered.contentDOM)
|
|
692
|
+
view.contentDOM = rendered.contentDOM;
|
|
693
|
+
return view;
|
|
694
|
+
}
|
|
695
|
+
const captionViewKey = new PluginKey('openleaf-table-caption-view');
|
|
696
|
+
/**
|
|
697
|
+
* Registers `tableCaptionNodeView` for editors that have not loaded
|
|
698
|
+
* `@openleaf-editor/plugins-table`.
|
|
699
|
+
*
|
|
700
|
+
* Must sit *before* that bundle's plugins in the editor stack.
|
|
701
|
+
* `EditorView.someProp` walks plugins from the end, so `columnResizing`'s
|
|
702
|
+
* `CaptionedTableView` still wins when both are present. Putting this view
|
|
703
|
+
* later is how it once shadowed column resize.
|
|
704
|
+
*/
|
|
705
|
+
export function tableCaptionPlugin() {
|
|
706
|
+
return new Plugin({
|
|
707
|
+
key: captionViewKey,
|
|
708
|
+
props: {
|
|
709
|
+
nodeViews: {
|
|
710
|
+
table(node) {
|
|
711
|
+
return tableCaptionNodeView(node);
|
|
712
|
+
},
|
|
713
|
+
},
|
|
714
|
+
},
|
|
715
|
+
});
|
|
716
|
+
}
|
|
340
717
|
export const table_row = {
|
|
341
718
|
content: '(table_cell | table_header)*',
|
|
342
719
|
tableRole: 'row',
|
package/dist/tables.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../src/tables.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../src/tables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAErD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,SAAS,EACT,qBAAqB,GACtB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAE1D,sEAAsE;AACtE,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAU,CAAA;AAElH,qFAAqF;AACrF,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAU,CAAA;AAE9G,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAA;AAEvD;;;;GAIG;AACH,MAAM,iBAAiB,GAAG,CAAC,kBAAkB,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAA;AAC1E,MAAM,eAAe,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAU,CAAA;AAC/D,MAAM,gBAAgB,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAU,CAAA;AAEjE,MAAM,MAAM,GAAG,6CAA6C,CAAA;AAC5D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;AAE/D,SAAS,UAAU,CAAC,KAAa;IAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;AAClD,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACvC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACrD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAClC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACpF,CAAC;AAED,SAAS,UAAU,CAAC,KAAgC;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC5C,OAAO,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;AACjD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,KAAyB;IAC7E,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,IAAI,QAAQ,KAAK,kBAAkB;QAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAA;IAC5D,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC,KAAK,CAAC,CAAA;IACrD,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAA;IAC3E,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB,EAAE,KAAyB;IACjE,OAAO,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AAC7C,CAAC;AAED,SAAS,SAAS,CAAC,EAAW,EAAE,UAA6B;IAC3D,MAAM,YAAY,GAAG,iBAAiB,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAA;IAChE,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAA;IACrD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAA;IACrC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QACzD;;;;;;;;;;;;WAYG;QACH,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACpE,IAAI,KAAK;YAAE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAA;AACnC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAS,eAAe,CAAC,UAA6B,EAAE,IAAa;IACnE,OAAO,CAAC,OAA+B,EAAQ,EAAE;QAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;QAC9B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;YAC7C,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAA;YAChC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBACpC,IAAI,KAAK,KAAK,SAAS,IAAI,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;oBACrE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAC3B,CAAC;YACH,CAAC;YACD,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;gBACjD,IAAI,MAAM,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;oBACxD,YAAY,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;gBACvC,CAAC;YACH,CAAC;YACD,yEAAyE;YACzE,wDAAwD;YACxD,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACjC,MAAM,IAAI,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAA;gBAChD,IAAI,IAAI,KAAK,IAAI;oBAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;;oBACrC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;QAClC,IAAI,OAAO,KAAK,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI;YAAE,OAAO,OAAO,CAAC,SAAS,CAAC,CAAA;IACrF,CAAC,CAAA;AACH,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,MAAM,oBAAoB,GAA8D;IAC7F,KAAK,EAAE,eAAe,CAAC,iBAAiB,EAAE,KAAK,CAAC;IAChD,SAAS,EAAE,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC;IAClD,UAAU,EAAE,eAAe,CAAC,gBAAgB,EAAE,IAAI,CAAC;IACnD,YAAY,EAAE,eAAe,CAAC,gBAAgB,EAAE,IAAI,CAAC;CACtD,CAAA;AAED,SAAS,SAAS,CAAC,EAAW,EAAE,KAAwB;IACtD,MAAM,GAAG,GAAkC,EAAE,CAAA;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3D,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,UAAU,CACjB,KAA8B,EAC9B,KAAwB;IAExB,MAAM,GAAG,GAA2B,EAAE,CAAA;IACtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;QACzB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACtF,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,KAAwB,EAAqC,EAAE,CACrF,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,GAAG,IAAI,CAAA;AACxB,MAAM,WAAW,GAAG,KAAK,CAAA;AACzB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAC9B;;;;;GAKG;AACH,MAAM,YAAY,GAAG,KAAK,CAAA;AAE1B;;;;;;GAMG;AACH,SAAS,QAAQ,CAAC,EAAW,EAAE,IAA2B,EAAE,GAAW;IACrE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAA;IAChE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,CAAA;IACpD,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAC9B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,GAAG,IAAI,OAAO,EAAiC,CAAA;AAE/D,gFAAgF;AAChF,SAAS,MAAM,CAAC,EAAW;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;IACtC,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAA;AACvC,CAAC;AAED,SAAS,eAAe,CAAC,EAAW;IAClC,MAAM,GAAG,GAAG,EAAE,CAAC,aAAa,CAAA;IAC5B,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;IAC7D,IAAI,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,GAAG,IAAI,GAAG,EAAmB,CAAA;QACnC,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBAAE,SAAQ;YAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;YACpD,4EAA4E;YAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAA;YACtE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YACzB,IAAI,IAAI,OAAO,CAAA;QACjB,CAAC;QACD,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAC7B,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;AAC/D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,YAAY,CAAC,EAAW,EAAE,OAAe;IAChD,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAA;IAC7C,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IACjE,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO;QAAE,OAAO,IAAI,CAAA;IAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;QAAE,OAAO,IAAI,CAAA;IAC9D,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,SAAS,GAAG;IAChB,wDAAwD;IACxD,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;IACvB,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;IACvB,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3B,GAAG,cAAc,CAAC,iBAAiB,CAAC;IACpC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;CACzB,CAAA;AAED,SAAS,YAAY,CAAC,GAAS;IAC7B,MAAM,EAAE,GAAG,GAAc,CAAA;IACzB,6EAA6E;IAC7E,mEAAmE;IACnE,MAAM,OAAO,GAAG,eAAe,CAAC,EAAE,CAAC,CAAA;IACnC,MAAM,KAAK,GAA4B;QACrC,OAAO;QACP,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC;QAC7C,wEAAwE;QACxE,wDAAwD;QACxD,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC;QACnC,GAAG,SAAS,CAAC,EAAE,EAAE,iBAAiB,CAAC;QACnC,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,gBAAgB,CAAC;KACvC,CAAA;IACD,6EAA6E;IAC7E,8EAA8E;IAC9E,6BAA6B;IAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;QAC/F,IAAI,SAAS;YAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAA;IAC5C,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,aAAa,CACpB,GAAW,EACX,KAA6B,EAC7B,KAAoB;IAEpB,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IACnD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC/E,IAAI,KAAK;QAAE,mBAAmB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;IACzC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAA;AACpC,CAAC;AAED,SAAS,SAAS,CAAC,GAAgB;IACjC,OAAO,CAAC,IAAwC,EAAiB,EAAE;QACjE,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAA;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAW,CAAA;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAW,CAAA;QAC/C,IAAI,OAAO,KAAK,CAAC;YAAE,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QACrD,IAAI,OAAO,KAAK,CAAC;YAAE,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAoB,CAAA;QAC1D,IAAI,QAAQ;YAAE,KAAK,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAkB,CAAA;QAClD,IAAI,KAAK;YAAE,OAAO,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QAClD,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IACxB,CAAC,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAA;AAEnF;;;;;;;;;GASG;AACH,SAAS,wBAAwB,CAAC,EAAW;IAC3C,EAAE,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAA;AACvC,CAAC;AAED,6EAA6E;AAC7E,SAAS,aAAa,CAAC,EAAW,EAAE,IAAuB;IACzD,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAAE,SAAQ;QAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAY,CAAA;QAC9C,wBAAwB,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;QACpB,wEAAwE;QACxE,8DAA8D;QAC9D,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,SAAS;YAAE,MAAK;IACvD,CAAC;IACD,OAAO,IAAI,IAAI,IAAI,CAAA;AACrB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,KAAc,EAAE,IAAY,EAAE,GAAa;IAClE,MAAM,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;IACzC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAA;IACpB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAE,GAA2B,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9E,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAAE,SAAQ;QAC/D,0EAA0E;QAC1E,sEAAsE;QACtE,uEAAuE;QACvE,0EAA0E;QAC1E,wEAAwE;QACxE,uDAAuD;QACvD,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAA+C,CAAA;AAEnF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAW;IAC/C,OAAO,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AACjC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,eAAe,CAAC,EAAW;IAClC,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;QACzC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACpB,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO;YAAE,SAAQ;QACtE,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,IAAI;gBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;IACD,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,OAAO,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,OAAO;QAAE,MAAM,IAAI,CAAC,CAAA;IACxE,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,OAAO,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC;QACzF,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;AAC3B,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAa;IAC7B,OAAO,EAAE,YAAY;IACrB,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,OAAO;IACd,KAAK,EAAE;QACL,GAAG,cAAc,CAAC,kBAAkB,CAAC;QACrC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAC1B,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAC3B,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;QAC1B,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;QAC1B,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;KACzB;IACD,QAAQ,EAAE;QACR;YACE,GAAG,EAAE,OAAO;YACZ,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;gBAChB,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAc,CAAC,CAAA;gBAChD,OAAO;oBACL,GAAG,SAAS,CAAC,GAAc,EAAE,kBAAkB,CAAC;oBAChD,OAAO,EAAE,aAAa,CAAC,GAAc,EAAE,CAAC,SAAS,CAAC,CAAC;oBACnD,QAAQ,EAAE,aAAa,CAAC,GAAc,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;oBAC5D,UAAU,EAAE,QAAQ,CAAC,MAAM;oBAC3B,UAAU,EAAE,QAAQ,CAAC,MAAM;oBAC3B,KAAK,EAAE,SAAS,CAAC,GAAc,EAAE,iBAAiB,CAAC;iBACpD,CAAA;YACH,CAAC;SACF;QACD;;;;;;;;;;;;;;WAcG;QACH,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;QAC5B,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;QAC5B,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;QAC5B;;;;;;;;;;;;;;;WAeG;QACH,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE;QACpD,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC/C,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE;KACpD;IACD,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAA;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAkB,CAAA;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAkB,CAAA;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAkB,CAAA;QAClD,MAAM,MAAM,GAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAY,IAAI,CAAC,CAAA;QACxD,MAAM,MAAM,GAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAY,IAAI,CAAC,CAAA;QACxD,yEAAyE;QACzE,yEAAyE;QACzE,qCAAqC;QACrC,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1D,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;QACvC,CAAC;QAED;;;;;WAKG;QACH,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAA;QACjC,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QACxC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAClF,IAAI,KAAK;YAAE,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAE5C,4EAA4E;QAC5E,6EAA6E;QAC7E,4DAA4D;QAC5D,IAAI,OAAO;YAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;QACjD,IAAI,QAAQ;YAAE,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;QAEnD,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QACxC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACxB;;;;;;;WAOG;QACH,IAAI,MAAM,IAAI,MAAM;YAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QACrE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAA;IAC1C,CAAC;CACF,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC,IAAI,CAAC,CAAA;IACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAClC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC;QAC1C,CAAC,CAAE,IAAkE,CAAA;IACvE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAA;IACzB,IAAI,IAAI,YAAY,OAAO,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAA;QACpC,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;YAAE,KAAK,CAAC,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;IAC3F,CAAC;IACD,MAAM,IAAI,GAAa,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAkB,EAAE,CAAA;IAC3D,IAAI,QAAQ,CAAC,UAAU;QAAE,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAA;IAC9D,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAA;AAEnE;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,MAAM,CAAC;QAChB,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE;YACL,SAAS,EAAE;gBACT,KAAK,CAAC,IAAI;oBACR,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAA;gBACnC,CAAC;aACF;SACF;KACF,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAa;IACjC,OAAO,EAAE,8BAA8B;IACvC,SAAS,EAAE,KAAK;IAChB,KAAK,EAAE,EAAE,GAAG,cAAc,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACjE,QAAQ,EAAE;QACR;YACE,GAAG,EAAE,IAAI;YACT,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAClB,GAAG,SAAS,CAAC,GAAc,EAAE,SAAS,CAAC;gBACvC,KAAK,EAAE,SAAS,CAAC,GAAc,EAAE,eAAe,CAAC;aAClD,CAAC;SACH;KACF;IACD,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAkB,CAAA;QAClD,IAAI,KAAK;YAAE,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QACnD,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IACzB,CAAC;CACF,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAa;IAClC,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE,SAAS;IAChB,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;IACjD,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;CACvB,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAa;IACpC,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE,SAAS;IAChB,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;IACjD,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;CACvB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA"}
|
package/dist/testing.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA"}
|