@deckflow/deckuse-pptx 1.0.0 → 1.1.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.
Files changed (79) hide show
  1. package/LICENSE +662 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/adapter.d.ts +70 -3
  4. package/dist/adapter.d.ts.map +1 -1
  5. package/dist/adapter.js +519 -86
  6. package/dist/adapter.js.map +1 -1
  7. package/dist/addressing.d.ts +45 -0
  8. package/dist/addressing.d.ts.map +1 -0
  9. package/dist/addressing.js +401 -0
  10. package/dist/addressing.js.map +1 -0
  11. package/dist/chart-classify.d.ts +10 -0
  12. package/dist/chart-classify.d.ts.map +1 -0
  13. package/dist/chart-classify.js +54 -0
  14. package/dist/chart-classify.js.map +1 -0
  15. package/dist/chart.d.ts +33 -0
  16. package/dist/chart.d.ts.map +1 -0
  17. package/dist/chart.js +492 -0
  18. package/dist/chart.js.map +1 -0
  19. package/dist/edition.d.ts +20 -0
  20. package/dist/edition.d.ts.map +1 -0
  21. package/dist/edition.js +46 -0
  22. package/dist/edition.js.map +1 -0
  23. package/dist/elements.d.ts.map +1 -1
  24. package/dist/elements.js +61 -46
  25. package/dist/elements.js.map +1 -1
  26. package/dist/hyperlink.d.ts +7 -0
  27. package/dist/hyperlink.d.ts.map +1 -0
  28. package/dist/hyperlink.js +83 -0
  29. package/dist/hyperlink.js.map +1 -0
  30. package/dist/index-sync.d.ts +7 -0
  31. package/dist/index-sync.d.ts.map +1 -0
  32. package/dist/index-sync.js +24 -0
  33. package/dist/index-sync.js.map +1 -0
  34. package/dist/index.d.ts +2 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +2 -0
  37. package/dist/index.js.map +1 -1
  38. package/dist/indexer.d.ts +4 -0
  39. package/dist/indexer.d.ts.map +1 -1
  40. package/dist/indexer.js +105 -27
  41. package/dist/indexer.js.map +1 -1
  42. package/dist/media.d.ts +15 -0
  43. package/dist/media.d.ts.map +1 -0
  44. package/dist/media.js +141 -0
  45. package/dist/media.js.map +1 -0
  46. package/dist/mutations.d.ts +8 -2
  47. package/dist/mutations.d.ts.map +1 -1
  48. package/dist/mutations.js +695 -72
  49. package/dist/mutations.js.map +1 -1
  50. package/dist/picture.d.ts.map +1 -1
  51. package/dist/picture.js +1 -3
  52. package/dist/picture.js.map +1 -1
  53. package/dist/properties.d.ts +6 -1
  54. package/dist/properties.d.ts.map +1 -1
  55. package/dist/properties.js +159 -10
  56. package/dist/properties.js.map +1 -1
  57. package/dist/resolve-properties.d.ts +17 -0
  58. package/dist/resolve-properties.d.ts.map +1 -0
  59. package/dist/resolve-properties.js +545 -0
  60. package/dist/resolve-properties.js.map +1 -0
  61. package/dist/slides.d.ts +3 -1
  62. package/dist/slides.d.ts.map +1 -1
  63. package/dist/slides.js +77 -4
  64. package/dist/slides.js.map +1 -1
  65. package/dist/table.d.ts +15 -0
  66. package/dist/table.d.ts.map +1 -0
  67. package/dist/table.js +456 -0
  68. package/dist/table.js.map +1 -0
  69. package/dist/types.d.ts +2 -1
  70. package/dist/types.d.ts.map +1 -1
  71. package/dist/workspace.d.ts +9 -9
  72. package/dist/workspace.d.ts.map +1 -1
  73. package/dist/workspace.js +67 -47
  74. package/dist/workspace.js.map +1 -1
  75. package/dist/xml.d.ts +7 -0
  76. package/dist/xml.d.ts.map +1 -1
  77. package/dist/xml.js +86 -13
  78. package/dist/xml.js.map +1 -1
  79. package/package.json +11 -3
@@ -0,0 +1,545 @@
1
+ import { cNvPrIdOf } from './addressing.js';
2
+ import { NS, REL, attr, children, cNvPr, descendants, first, root, textOf } from './xml.js';
3
+ const EMU_PER_PT = 12700;
4
+ const SHAPE_LOCAL_NAMES = new Set(['sp', 'pic', 'graphicFrame', 'cxnSp', 'grpSp']);
5
+ const directChild = (node, localName) => children(node).find((child) => child.localName === localName);
6
+ const shapeByCNvPrId = (doc, id) => descendants(doc).find((node) => node.localName != null &&
7
+ SHAPE_LOCAL_NAMES.has(node.localName) &&
8
+ attr(cNvPr(node), 'id') === id);
9
+ const nodeForItem = (doc, item) => {
10
+ if (['slide', 'notes', 'master', 'layout', 'theme'].includes(item.kind))
11
+ return root(doc);
12
+ const id = cNvPrIdOf(item);
13
+ return id ? shapeByCNvPrId(doc, id) : undefined;
14
+ };
15
+ const prop = (effective, direct, source, unit) => {
16
+ const inherited = direct === null || direct === undefined;
17
+ return {
18
+ effective: effective ?? null,
19
+ direct: direct ?? null,
20
+ inherited,
21
+ ...(source ? { source } : inherited ? { source: { scope: 'default' } } : {}),
22
+ ...(unit ? { unit } : {}),
23
+ };
24
+ };
25
+ const readSrgb = (node) => {
26
+ if (!node)
27
+ return undefined;
28
+ const srgb = first(node, 'srgbClr');
29
+ const val = attr(srgb, 'val');
30
+ if (val)
31
+ return `#${val.toUpperCase()}`;
32
+ return undefined;
33
+ };
34
+ const readSchemeColor = (node, themeColors) => {
35
+ if (!node)
36
+ return undefined;
37
+ const scheme = first(node, 'schemeClr');
38
+ const name = attr(scheme, 'val');
39
+ if (!name)
40
+ return undefined;
41
+ const mapped = themeColors.get(name) ?? themeColors.get(name.toLowerCase());
42
+ return mapped ? `#${mapped.replace(/^#/, '').toUpperCase()}` : undefined;
43
+ };
44
+ const readFillColor = (container, themeColors) => {
45
+ if (!container)
46
+ return undefined;
47
+ if (directChild(container, 'noFill'))
48
+ return { kind: 'none', color: null, transparency: null };
49
+ const solid = directChild(container, 'solidFill');
50
+ if (solid) {
51
+ const color = readSrgb(solid) ?? readSchemeColor(solid, themeColors) ?? null;
52
+ const alpha = attr(first(solid, 'alpha') ?? first(solid, 'srgbClr'), 'val');
53
+ // alpha on srgbClr child
54
+ const alphaNode = descendants(solid, 'alpha')[0];
55
+ const alphaVal = attr(alphaNode, 'val');
56
+ let transparency = null;
57
+ if (alphaVal !== undefined) {
58
+ const n = Number(alphaVal);
59
+ if (Number.isFinite(n))
60
+ transparency = Math.round((1 - n / 100000) * 100);
61
+ }
62
+ void alpha;
63
+ return { kind: 'solid', color, transparency };
64
+ }
65
+ return undefined;
66
+ };
67
+ const loadThemeColors = (archive, themePart) => {
68
+ const map = new Map();
69
+ if (!themePart || !archive.getPart(themePart))
70
+ return map;
71
+ const doc = archive.readXml(themePart);
72
+ const scheme = first(doc, 'clrScheme');
73
+ if (!scheme)
74
+ return map;
75
+ for (const child of children(scheme)) {
76
+ const name = child.localName;
77
+ if (!name)
78
+ continue;
79
+ const srgb = attr(first(child, 'srgbClr'), 'val');
80
+ const sys = attr(first(child, 'sysClr'), 'lastClr');
81
+ const val = srgb ?? sys;
82
+ if (val) {
83
+ map.set(name, val.toUpperCase());
84
+ map.set(name.toLowerCase(), val.toUpperCase());
85
+ }
86
+ }
87
+ return map;
88
+ };
89
+ const loadThemeFonts = (archive, themePart) => {
90
+ if (!themePart || !archive.getPart(themePart))
91
+ return {};
92
+ const doc = archive.readXml(themePart);
93
+ const major = attr(first(first(doc, 'majorFont') ?? doc, 'latin'), 'typeface');
94
+ const minor = attr(first(first(doc, 'minorFont') ?? doc, 'latin'), 'typeface');
95
+ return { ...(major ? { major } : {}), ...(minor ? { minor } : {}) };
96
+ };
97
+ const resolveStyleChain = (archive, slidePart) => {
98
+ const slideRels = archive.getRelationships(slidePart);
99
+ const layoutRel = slideRels.find((r) => r.type === REL.layout);
100
+ const layoutPart = layoutRel?.resolvedTarget;
101
+ let masterPart;
102
+ let themePart;
103
+ if (layoutPart) {
104
+ const layoutRels = archive.getRelationships(layoutPart);
105
+ const masterRel = layoutRels.find((r) => r.type === REL.slideMaster);
106
+ masterPart = masterRel?.resolvedTarget;
107
+ }
108
+ if (masterPart) {
109
+ const masterRels = archive.getRelationships(masterPart);
110
+ const themeRel = masterRels.find((r) => r.type === REL.theme);
111
+ themePart = themeRel?.resolvedTarget;
112
+ }
113
+ if (!themePart) {
114
+ const theme = [...archive.parts.keys()].find((name) => name.startsWith('/ppt/theme/') && name.endsWith('.xml'));
115
+ themePart = theme;
116
+ }
117
+ return {
118
+ ...(layoutPart
119
+ ? {
120
+ layoutPart,
121
+ layoutTarget: `layout:${layoutPart.split('/').pop()?.replace(/\.xml$/, '') ?? layoutPart}`,
122
+ }
123
+ : {}),
124
+ ...(masterPart
125
+ ? {
126
+ masterPart,
127
+ masterTarget: `master:${masterPart.split('/').pop()?.replace(/\.xml$/, '') ?? masterPart}`,
128
+ }
129
+ : {}),
130
+ ...(themePart ? { themePart } : {}),
131
+ };
132
+ };
133
+ const placeholderOf = (node) => {
134
+ const ph = first(node, 'ph');
135
+ if (!ph)
136
+ return undefined;
137
+ const type = attr(ph, 'type') ?? 'body';
138
+ const idx = attr(ph, 'idx');
139
+ return { type, ...(idx !== undefined ? { idx } : {}) };
140
+ };
141
+ const findPlaceholderShape = (doc, type, idx) => {
142
+ for (const node of descendants(doc)) {
143
+ if (!node.localName || !SHAPE_LOCAL_NAMES.has(node.localName))
144
+ continue;
145
+ const ph = placeholderOf(node);
146
+ if (!ph)
147
+ continue;
148
+ if (idx !== undefined && ph.idx === idx)
149
+ return node;
150
+ if (type && ph.type === type && (idx === undefined || ph.idx === undefined))
151
+ return node;
152
+ }
153
+ return undefined;
154
+ };
155
+ const txStyleLevel = (masterDoc, styleKind, level) => {
156
+ const styles = first(masterDoc, 'txStyles');
157
+ if (!styles)
158
+ return undefined;
159
+ const blockName = styleKind === 'title' ? 'titleStyle' : styleKind === 'body' ? 'bodyStyle' : 'otherStyle';
160
+ const block = directChild(styles, blockName) ?? first(styles, blockName);
161
+ if (!block)
162
+ return undefined;
163
+ if (level === 0)
164
+ return directChild(block, 'defPPr') ?? first(block, 'defPPr') ?? directChild(block, 'lvl1pPr') ?? first(block, 'lvl1pPr');
165
+ const name = `lvl${level + 1}pPr`;
166
+ return directChild(block, name) ?? first(block, name);
167
+ };
168
+ const styleKindForPlaceholder = (type) => {
169
+ if (!type)
170
+ return 'body';
171
+ if (type === 'title' || type === 'ctrTitle')
172
+ return 'title';
173
+ if (type === 'body' || type === 'obj' || type === 'subTitle')
174
+ return 'body';
175
+ return 'other';
176
+ };
177
+ const readFontFromRPr = (rPr, themeFonts, themeColors) => {
178
+ if (!rPr)
179
+ return {};
180
+ const sz = attr(rPr, 'sz');
181
+ const size = sz !== undefined ? Number(sz) / 100 : undefined;
182
+ const latin = attr(directChild(rPr, 'latin'), 'typeface');
183
+ let family = latin;
184
+ if (family?.startsWith('+mj-'))
185
+ family = themeFonts.major;
186
+ if (family?.startsWith('+mn-'))
187
+ family = themeFonts.minor;
188
+ const bold = attr(rPr, 'b');
189
+ const italic = attr(rPr, 'i');
190
+ const underline = attr(rPr, 'u');
191
+ const solid = directChild(rPr, 'solidFill');
192
+ const color = solid
193
+ ? (readSrgb(solid) ?? readSchemeColor(solid, themeColors))
194
+ : undefined;
195
+ return {
196
+ ...(family ? { family } : {}),
197
+ ...(size !== undefined && Number.isFinite(size) ? { size } : {}),
198
+ ...(bold === '1' || bold === 'true' ? { weight: 'bold' } : bold === '0' ? { weight: 'regular' } : {}),
199
+ ...(italic === '1' || italic === 'true'
200
+ ? { italic: true }
201
+ : italic === '0'
202
+ ? { italic: false }
203
+ : {}),
204
+ ...(underline && underline !== 'none' ? { underline: true } : {}),
205
+ ...(color ? { color } : {}),
206
+ };
207
+ };
208
+ const firstRunRPr = (node) => {
209
+ const run = descendants(node, 'r')[0];
210
+ return run ? directChild(run, 'rPr') : undefined;
211
+ };
212
+ const defRPrFromLevel = (level) => {
213
+ if (!level)
214
+ return undefined;
215
+ return directChild(level, 'defRPr') ?? first(level, 'defRPr');
216
+ };
217
+ const readTransform = (node) => {
218
+ const xfrm = first(node, 'xfrm');
219
+ const off = xfrm ? first(xfrm, 'off') : undefined;
220
+ const ext = xfrm ? first(xfrm, 'ext') : undefined;
221
+ const rot = attr(xfrm, 'rot');
222
+ return {
223
+ x: attr(off, 'x') !== undefined ? Number(attr(off, 'x')) : null,
224
+ y: attr(off, 'y') !== undefined ? Number(attr(off, 'y')) : null,
225
+ width: attr(ext, 'cx') !== undefined ? Number(attr(ext, 'cx')) : null,
226
+ height: attr(ext, 'cy') !== undefined ? Number(attr(ext, 'cy')) : null,
227
+ rotation: rot !== undefined ? Number(rot) / 60000 : null,
228
+ 'flip.x': attr(xfrm, 'flipH') === '1',
229
+ 'flip.y': attr(xfrm, 'flipV') === '1',
230
+ };
231
+ };
232
+ const filterProps = (all, props, mode, includeProvenance) => {
233
+ const keys = props?.length ? props : Object.keys(all);
234
+ const out = {};
235
+ for (const key of keys) {
236
+ const value = all[key];
237
+ if (!value)
238
+ continue;
239
+ if (mode === 'effective') {
240
+ out[key] = includeProvenance
241
+ ? {
242
+ effective: value.effective,
243
+ inherited: value.inherited,
244
+ ...(value.source ? { source: value.source } : {}),
245
+ ...(value.unit ? { unit: value.unit } : {}),
246
+ }
247
+ : value.effective;
248
+ }
249
+ else if (mode === 'direct') {
250
+ out[key] = includeProvenance
251
+ ? {
252
+ direct: value.direct,
253
+ inherited: value.inherited,
254
+ ...(value.unit ? { unit: value.unit } : {}),
255
+ }
256
+ : value.direct;
257
+ }
258
+ else {
259
+ out[key] = includeProvenance
260
+ ? value
261
+ : { effective: value.effective, direct: value.direct, inherited: value.inherited };
262
+ }
263
+ }
264
+ return out;
265
+ };
266
+ export function resolveProperties(archive, resolved, options = {}) {
267
+ const mode = options.resolve ?? 'both';
268
+ const includeProvenance = options.provenance !== false;
269
+ const warnings = [];
270
+ const item = resolved.item;
271
+ const doc = archive.readXml(item.partUri);
272
+ const node = nodeForItem(doc, item);
273
+ if (!node) {
274
+ warnings.push('Element XML node was not found; returning empty properties');
275
+ return {
276
+ target: resolved.target,
277
+ uid: resolved.uid,
278
+ ...(item.name ? { name: item.name } : {}),
279
+ properties: {},
280
+ warnings,
281
+ };
282
+ }
283
+ if (item.kind === 'slide' || item.kind === 'master' || item.kind === 'layout' || item.kind === 'theme') {
284
+ const properties = {
285
+ name: prop(item.name ?? null, item.name ?? null, { scope: 'local', target: resolved.target }),
286
+ };
287
+ return {
288
+ target: resolved.target,
289
+ uid: resolved.uid,
290
+ ...(item.name ? { name: item.name } : {}),
291
+ properties: filterProps(properties, options.props, mode, includeProvenance),
292
+ warnings,
293
+ };
294
+ }
295
+ const chain = resolveStyleChain(archive, item.partUri);
296
+ const themeColors = loadThemeColors(archive, chain.themePart);
297
+ const themeFonts = loadThemeFonts(archive, chain.themePart);
298
+ const all = {};
299
+ const name = attr(cNvPr(node), 'name') ?? null;
300
+ all['name'] = prop(name, name, { scope: 'local', target: resolved.target, path: 'name' });
301
+ const nvPr = first(node, 'nvPr');
302
+ const hidden = attr(nvPr, 'hidden') === '1';
303
+ all['visible'] = prop(!hidden, !hidden, { scope: 'local', target: resolved.target, path: 'visible' });
304
+ const xfrm = readTransform(node);
305
+ for (const [key, value] of Object.entries(xfrm)) {
306
+ const unit = ['x', 'y', 'width', 'height'].includes(key)
307
+ ? 'emu'
308
+ : key === 'rotation'
309
+ ? 'deg'
310
+ : undefined;
311
+ all[key] = prop(value, value, { scope: 'local', target: resolved.target, path: key }, unit);
312
+ }
313
+ const spPr = directChild(node, 'spPr') ?? first(node, 'spPr');
314
+ const directFill = readFillColor(spPr, themeColors);
315
+ all['fill.kind'] = prop(directFill?.kind ?? null, directFill?.kind ?? null, directFill
316
+ ? { scope: 'local', target: resolved.target, path: 'fill.kind' }
317
+ : { scope: 'default' });
318
+ all['fill.color'] = prop(directFill?.color ?? null, directFill?.color ?? null, directFill?.color
319
+ ? { scope: 'local', target: resolved.target, path: 'fill.color' }
320
+ : { scope: 'default' });
321
+ all['fill.transparency'] = prop(directFill?.transparency ?? null, directFill?.transparency ?? null, directFill?.transparency !== null && directFill?.transparency !== undefined
322
+ ? { scope: 'local', target: resolved.target, path: 'fill.transparency' }
323
+ : { scope: 'default' });
324
+ const ln = spPr ? directChild(spPr, 'ln') : undefined;
325
+ if (ln && directChild(ln, 'noFill')) {
326
+ all['line.kind'] = prop('none', 'none', {
327
+ scope: 'local',
328
+ target: resolved.target,
329
+ path: 'line.kind',
330
+ });
331
+ all['line.color'] = prop(null, null, { scope: 'local', target: resolved.target, path: 'line.color' });
332
+ all['line.width'] = prop(null, null, { scope: 'local', target: resolved.target, path: 'line.width' }, 'pt');
333
+ }
334
+ else if (ln) {
335
+ const lineFill = readFillColor(ln, themeColors);
336
+ const w = attr(ln, 'w');
337
+ all['line.kind'] = prop('solid', 'solid', {
338
+ scope: 'local',
339
+ target: resolved.target,
340
+ path: 'line.kind',
341
+ });
342
+ all['line.color'] = prop(lineFill?.color ?? null, lineFill?.color ?? null, { scope: 'local', target: resolved.target, path: 'line.color' });
343
+ all['line.width'] = prop(w !== undefined ? Number(w) / EMU_PER_PT : null, w !== undefined ? Number(w) / EMU_PER_PT : null, { scope: 'local', target: resolved.target, path: 'line.width' }, 'pt');
344
+ }
345
+ else {
346
+ all['line.kind'] = prop(null, null, { scope: 'default' });
347
+ all['line.color'] = prop(null, null, { scope: 'default' });
348
+ all['line.width'] = prop(null, null, { scope: 'default' }, 'pt');
349
+ }
350
+ const text = textOf(node).replace(/\s+/g, ' ').trim();
351
+ all['text.value'] = prop(text || null, text || null, {
352
+ scope: 'local',
353
+ target: resolved.target,
354
+ path: 'text.value',
355
+ });
356
+ const directRPr = firstRunRPr(node);
357
+ const directFont = readFontFromRPr(directRPr, themeFonts, themeColors);
358
+ const ph = placeholderOf(node);
359
+ let inheritedFont = {};
360
+ let inheritedSource;
361
+ if (!directFont.size || !directFont.family || !directFont.color) {
362
+ // Try layout placeholder shape defRPr / list style, then master txStyles.
363
+ if (ph && chain.layoutPart && archive.getPart(chain.layoutPart)) {
364
+ const layoutDoc = archive.readXml(chain.layoutPart);
365
+ const layoutShape = findPlaceholderShape(layoutDoc, ph.type, ph.idx);
366
+ if (layoutShape) {
367
+ const layoutRPr = firstRunRPr(layoutShape) ?? defRPrFromLevel(first(layoutShape, 'lstStyle') ? first(first(layoutShape, 'lstStyle'), 'defPPr') : undefined);
368
+ const fromLayout = readFontFromRPr(layoutRPr, themeFonts, themeColors);
369
+ inheritedFont = { ...fromLayout, ...inheritedFont };
370
+ if (fromLayout.size || fromLayout.family || fromLayout.color) {
371
+ inheritedSource = {
372
+ scope: 'layout',
373
+ target: chain.layoutTarget,
374
+ path: 'placeholder.font',
375
+ };
376
+ }
377
+ }
378
+ }
379
+ if (chain.masterPart && archive.getPart(chain.masterPart)) {
380
+ const masterDoc = archive.readXml(chain.masterPart);
381
+ const styleKind = styleKindForPlaceholder(ph?.type);
382
+ const level = txStyleLevel(masterDoc, styleKind, 0);
383
+ const fromMaster = readFontFromRPr(defRPrFromLevel(level), themeFonts, themeColors);
384
+ inheritedFont = { ...fromMaster, ...inheritedFont };
385
+ if (!inheritedSource && (fromMaster.size || fromMaster.family || fromMaster.color)) {
386
+ inheritedSource = {
387
+ scope: 'master',
388
+ target: chain.masterTarget,
389
+ path: `textStyles.${styleKind}.level.0.font`,
390
+ };
391
+ }
392
+ // Also match placeholder shape on master.
393
+ if (ph) {
394
+ const masterShape = findPlaceholderShape(masterDoc, ph.type, ph.idx);
395
+ if (masterShape) {
396
+ const masterRPr = firstRunRPr(masterShape);
397
+ const fromMasterShape = readFontFromRPr(masterRPr, themeFonts, themeColors);
398
+ inheritedFont = { ...fromMasterShape, ...inheritedFont };
399
+ }
400
+ }
401
+ }
402
+ if (!inheritedFont.family && themeFonts.minor) {
403
+ inheritedFont = { ...inheritedFont, family: themeFonts.minor };
404
+ if (!inheritedSource)
405
+ inheritedSource = { scope: 'theme', target: 'theme', path: 'fontScheme.minorFont' };
406
+ }
407
+ }
408
+ const mergeFont = (key, propName, unit) => {
409
+ const direct = directFont[key] ?? null;
410
+ const effective = (directFont[key] ?? inheritedFont[key] ?? null);
411
+ const source = direct !== null && direct !== undefined
412
+ ? { scope: 'local', target: resolved.target, path: propName }
413
+ : inheritedFont[key] !== undefined
414
+ ? inheritedSource ?? { scope: 'default' }
415
+ : { scope: 'default' };
416
+ // Refine path for master font.size
417
+ const refined = source?.scope === 'master' && propName.startsWith('font.')
418
+ ? {
419
+ ...source,
420
+ path: `${source.path?.replace(/\.font$/, '') ?? 'textStyles.body.level.0'}.${propName}`,
421
+ }
422
+ : source;
423
+ all[propName] = prop(effective, direct, refined, unit);
424
+ };
425
+ mergeFont('family', 'font.family');
426
+ mergeFont('size', 'font.size', 'pt');
427
+ mergeFont('weight', 'font.weight');
428
+ mergeFont('italic', 'font.italic');
429
+ mergeFont('underline', 'font.underline');
430
+ mergeFont('color', 'font.color');
431
+ const pPr = first(descendants(node, 'p')[0] ?? node, 'pPr');
432
+ const align = attr(pPr, 'algn');
433
+ const lvl = attr(pPr, 'lvl');
434
+ all['paragraph.align'] = prop(align ?? null, align ?? null, align
435
+ ? { scope: 'local', target: resolved.target, path: 'paragraph.align' }
436
+ : { scope: 'default' });
437
+ all['paragraph.level'] = prop(lvl !== undefined ? Number(lvl) : 0, lvl !== undefined ? Number(lvl) : null, lvl !== undefined
438
+ ? { scope: 'local', target: resolved.target, path: 'paragraph.level' }
439
+ : { scope: 'default' });
440
+ const hlink = typeof item.payload?.['hyperlink'] === 'string' ? item.payload['hyperlink'] : null;
441
+ all['hyperlink'] = prop(hlink, hlink, hlink
442
+ ? { scope: 'local', target: resolved.target, path: 'hyperlink' }
443
+ : { scope: 'default' });
444
+ const phType = typeof item.payload?.['placeholder'] === 'string' ? item.payload['placeholder'] : null;
445
+ all['placeholder'] = prop(phType, phType, phType
446
+ ? { scope: 'local', target: resolved.target, path: 'placeholder' }
447
+ : { scope: 'default' });
448
+ return {
449
+ target: resolved.target,
450
+ uid: resolved.uid,
451
+ ...(name ? { name } : {}),
452
+ properties: filterProps(all, options.props, mode, includeProvenance),
453
+ warnings,
454
+ };
455
+ }
456
+ /** Map Phase-1 dotted property names to legacy setProperties keys. */
457
+ export const mapDottedProperties = (properties) => {
458
+ const out = {};
459
+ for (const [key, value] of Object.entries(properties)) {
460
+ switch (key) {
461
+ case 'font.family':
462
+ out['fontFamily'] = value;
463
+ break;
464
+ case 'font.size':
465
+ out['fontSize'] = value;
466
+ break;
467
+ case 'font.weight':
468
+ out['bold'] = value === 'bold' || value === true;
469
+ break;
470
+ case 'font.italic':
471
+ out['italic'] = value;
472
+ break;
473
+ case 'font.underline':
474
+ out['underline'] = value;
475
+ break;
476
+ case 'font.color':
477
+ out['textColor'] = typeof value === 'string' ? value.replace(/^#/, '') : value;
478
+ break;
479
+ case 'fill.color':
480
+ out['fill'] =
481
+ typeof value === 'string' ? value.replace(/^#/, '') : value;
482
+ break;
483
+ case 'fill.kind':
484
+ if (value === 'none')
485
+ out['fill'] = 'none';
486
+ break;
487
+ case 'fill.transparency':
488
+ // Stored via fill object when combined; ignore alone for now.
489
+ break;
490
+ case 'line.color':
491
+ case 'line.kind':
492
+ case 'line.width':
493
+ case 'line.dash': {
494
+ const line = out['line'] ?? {};
495
+ if (key === 'line.color' && typeof value === 'string')
496
+ line['color'] = value.replace(/^#/, '');
497
+ else if (key === 'line.kind' && value === 'none')
498
+ out['line'] = 'none';
499
+ else if (key === 'line.width')
500
+ line['width'] = value;
501
+ else if (key === 'line.dash')
502
+ line['dash'] = value;
503
+ if (out['line'] !== 'none')
504
+ out['line'] = { ...line };
505
+ break;
506
+ }
507
+ case 'text.value':
508
+ out['text'] = value;
509
+ break;
510
+ case 'name':
511
+ out['name'] = value;
512
+ break;
513
+ case 'visible':
514
+ out['hidden'] = value === false;
515
+ break;
516
+ case 'paragraph.align':
517
+ out['paragraph.align'] = value;
518
+ break;
519
+ case 'paragraph.level':
520
+ out['paragraph.level'] = typeof value === 'string' ? Number(value) : value;
521
+ break;
522
+ case 'bullet':
523
+ out['bullet'] = value;
524
+ break;
525
+ case 'hyperlink':
526
+ out['hyperlink'] = value === '' ? null : value;
527
+ break;
528
+ default:
529
+ out[key] = value;
530
+ }
531
+ }
532
+ // Combine fill.color + transparency
533
+ if ('fill.color' in properties || 'fill.transparency' in properties) {
534
+ const color = properties['fill.color'];
535
+ const transparency = properties['fill.transparency'];
536
+ if (typeof color === 'string') {
537
+ out['fill'] =
538
+ transparency !== undefined
539
+ ? { type: 'solid', color: color.replace(/^#/, ''), transparency }
540
+ : color.replace(/^#/, '');
541
+ }
542
+ }
543
+ return out;
544
+ };
545
+ //# sourceMappingURL=resolve-properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-properties.js","sourceRoot":"","sources":["../src/resolve-properties.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAE5F,MAAM,UAAU,GAAG,KAAK,CAAC;AACzB,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAEnF,MAAM,WAAW,GAAG,CAAC,IAAa,EAAE,SAAiB,EAAuB,EAAE,CAC5E,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;AAEhE,MAAM,cAAc,GAAG,CAAC,GAAa,EAAE,EAAU,EAAuB,EAAE,CACxE,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CACnB,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,SAAS,IAAI,IAAI;IACtB,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;IACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CACjC,CAAC;AAEJ,MAAM,WAAW,GAAG,CAAC,GAAa,EAAE,IAAoB,EAAuB,EAAE;IAC/E,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1F,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,CACX,SAAkB,EAClB,MAAe,EACf,MAAgC,EAChC,IAAa,EACE,EAAE;IACjB,MAAM,SAAS,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,CAAC;IAC1D,OAAO;QACL,SAAS,EAAE,SAAS,IAAI,IAAI;QAC5B,MAAM,EAAE,MAAM,IAAI,IAAI;QACtB,SAAS;QACT,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,SAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,IAAyB,EAAsB,EAAE;IACjE,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9B,IAAI,GAAG;QAAE,OAAO,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;IACxC,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CACtB,IAAyB,EACzB,WAAgC,EACZ,EAAE;IACtB,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5E,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CACpB,SAA8B,EAC9B,WAAgC,EACiD,EAAE;IACnF,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,IAAI,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC/F,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAClD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC;QAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5E,yBAAyB;QACzB,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACxC,IAAI,YAAY,GAAkB,IAAI,CAAC;QACvC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3B,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;QAC5E,CAAC;QACD,KAAK,KAAK,CAAC;QACX,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAChD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,OAAmB,EAAE,SAA6B,EAAuB,EAAE;IAClG,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,GAAG,CAAC;IAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM;QAAE,OAAO,GAAG,CAAC;IACxB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;QAC7B,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,IAAI,GAAG,CAAC;QACxB,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YACjC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,OAAmB,EACnB,SAA6B,EACO,EAAE;IACtC,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IACzD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,GAAG,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC;IAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,GAAG,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC;IAC/E,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACtE,CAAC,CAAC;AAUF,MAAM,iBAAiB,GAAG,CAAC,OAAmB,EAAE,SAAiB,EAAc,EAAE;IAC/E,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,SAAS,EAAE,cAAc,CAAC;IAC7C,IAAI,UAA8B,CAAC;IACnC,IAAI,SAA6B,CAAC;IAClC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,WAAW,CAAC,CAAC;QACrE,UAAU,GAAG,SAAS,EAAE,cAAc,CAAC;IACzC,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9D,SAAS,GAAG,QAAQ,EAAE,cAAc,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACpD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CACxD,CAAC;QACF,SAAS,GAAG,KAAK,CAAC;IACpB,CAAC;IACD,OAAO;QACL,GAAG,CAAC,UAAU;YACZ,CAAC,CAAC;gBACE,UAAU;gBACV,YAAY,EAAE,UAAU,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,UAAU,EAAE;aAC3F;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,UAAU;YACZ,CAAC,CAAC;gBACE,UAAU;gBACV,YAAY,EAAE,UAAU,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,UAAU,EAAE;aAC3F;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,IAAa,EAA+C,EAAE;IACnF,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5B,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAC3B,GAAa,EACb,IAAwB,EACxB,GAAuB,EACF,EAAE;IACvB,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YAAE,SAAS;QACxE,MAAM,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,IAAI,GAAG,KAAK,SAAS,IAAI,EAAE,CAAC,GAAG,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QACrD,IAAI,IAAI,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;IAC3F,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACnB,SAAmB,EACnB,SAAqC,EACrC,KAAa,EACQ,EAAE;IACvB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,SAAS,GACb,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;IAC3F,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzE,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC3I,MAAM,IAAI,GAAG,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC;IAClC,OAAO,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,IAAwB,EAA8B,EAAE;IACvF,IAAI,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IACzB,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,OAAO,CAAC;IAC5D,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC;IAC5E,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CACtB,GAAwB,EACxB,UAA8C,EAC9C,WAAgC,EAQhC,EAAE;IACF,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC;IAC1D,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC;QAAE,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;IAC1D,IAAI,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC;QAAE,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,KAAK;QACjB,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC1D,CAAC,CAAC,SAAS,CAAC;IACd,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrG,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,MAAM;YACrC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;YAClB,CAAC,CAAC,MAAM,KAAK,GAAG;gBACd,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE;gBACnB,CAAC,CAAC,EAAE,CAAC;QACT,GAAG,CAAC,SAAS,IAAI,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,IAAa,EAAuB,EAAE;IACzD,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,KAA0B,EAAuB,EAAE;IAC1E,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,IAAa,EAA2C,EAAE;IAC/E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9B,OAAO;QACL,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QAC/D,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QAC/D,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QACrE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QACtE,QAAQ,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI;QACxD,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,GAAG;QACrC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,GAAG;KACtC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAClB,GAAkC,EAClC,KAA2B,EAC3B,IAAiB,EACjB,iBAA0B,EACe,EAAE;IAC3C,MAAM,IAAI,GAAG,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtD,MAAM,GAAG,GAA4C,EAAE,CAAC;IACxD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,GAAG,CAAC,GAAG,CAAC,GAAG,iBAAiB;gBAC1B,CAAC,CAAC;oBACE,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC5C;gBACH,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;QACtB,CAAC;aAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,GAAG,CAAC,GAAG,CAAC,GAAG,iBAAiB;gBAC1B,CAAC,CAAC;oBACE,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC5C;gBACH,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,GAAG,iBAAiB;gBAC1B,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;QACvF,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAC/B,OAAmB,EACnB,QAAwB,EACxB,UAII,EAAE;IAQN,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC;IACvC,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,KAAK,KAAK,CAAC;IACvD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAEpC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,QAAQ,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QAC5E,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,UAAU,EAAE,EAAE;YACd,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACvG,MAAM,UAAU,GAAkC;YAChD,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;SAC9F,CAAC;QACF,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,UAAU,EAAE,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,iBAAiB,CAAC;YAC3E,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAkC,EAAE,CAAC;IAE9C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;IAC/C,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAE1F,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,GAAG,CAAC;IAC5C,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAEtG,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YACtD,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,GAAG,KAAK,UAAU;gBAClB,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,SAAS,CAAC;QAChB,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpD,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,CACrB,UAAU,EAAE,IAAI,IAAI,IAAI,EACxB,UAAU,EAAE,IAAI,IAAI,IAAI,EACxB,UAAU;QACR,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE;QAChE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CACzB,CAAC;IACF,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CACtB,UAAU,EAAE,KAAK,IAAI,IAAI,EACzB,UAAU,EAAE,KAAK,IAAI,IAAI,EACzB,UAAU,EAAE,KAAK;QACf,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE;QACjE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CACzB,CAAC;IACF,GAAG,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAC7B,UAAU,EAAE,YAAY,IAAI,IAAI,EAChC,UAAU,EAAE,YAAY,IAAI,IAAI,EAChC,UAAU,EAAE,YAAY,KAAK,IAAI,IAAI,UAAU,EAAE,YAAY,KAAK,SAAS;QACzE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE;QACxE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CACzB,CAAC;IAEF,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtD,IAAI,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC;QACpC,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE;YACtC,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;QACH,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QACtG,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,CAAC;IAC9G,CAAC;SAAM,IAAI,EAAE,EAAE,CAAC;QACd,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACxB,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE;YACxC,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;QACH,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CACtB,QAAQ,EAAE,KAAK,IAAI,IAAI,EACvB,QAAQ,EAAE,KAAK,IAAI,IAAI,EACvB,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAChE,CAAC;QACF,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CACtB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,EAC/C,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,EAC/C,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,EAC/D,IAAI,CACL,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1D,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC3D,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACtD,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE;QACnD,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,IAAI,EAAE,YAAY;KACnB,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAEvE,MAAM,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,aAAa,GAAuC,EAAE,CAAC;IAC3D,IAAI,eAAoD,CAAC;IAEzD,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAChE,0EAA0E;QAC1E,IAAI,EAAE,IAAI,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YAChE,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACpD,MAAM,WAAW,GAAG,oBAAoB,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YACrE,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAC7J,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;gBACvE,aAAa,GAAG,EAAE,GAAG,UAAU,EAAE,GAAG,aAAa,EAAE,CAAC;gBACpD,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;oBAC7D,eAAe,GAAG;wBAChB,KAAK,EAAE,QAAQ;wBACf,MAAM,EAAE,KAAK,CAAC,YAAY;wBAC1B,IAAI,EAAE,kBAAkB;qBACzB,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,uBAAuB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YACpD,MAAM,UAAU,GAAG,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YACpF,aAAa,GAAG,EAAE,GAAG,UAAU,EAAE,GAAG,aAAa,EAAE,CAAC;YACpD,IAAI,CAAC,eAAe,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnF,eAAe,GAAG;oBAChB,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,KAAK,CAAC,YAAY;oBAC1B,IAAI,EAAE,cAAc,SAAS,eAAe;iBAC7C,CAAC;YACJ,CAAC;YACD,0CAA0C;YAC1C,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,WAAW,GAAG,oBAAoB,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;gBACrE,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;oBAC3C,MAAM,eAAe,GAAG,eAAe,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;oBAC5E,aAAa,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,aAAa,EAAE,CAAC;gBAC3D,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YAC9C,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;YAC/D,IAAI,CAAC,eAAe;gBAClB,eAAe,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC;QACxF,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,CAChB,GAAM,EACN,QAAgB,EAChB,IAAa,EACP,EAAE;QACR,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;QACvC,MAAM,SAAS,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,IAAI,CAAY,CAAC;QAC7E,MAAM,MAAM,GACV,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;YACrC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7D,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,SAAS;gBAChC,CAAC,CAAC,eAAe,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;gBACzC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC7B,mCAAmC;QACnC,MAAM,OAAO,GACX,MAAM,EAAE,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;YACxD,CAAC,CAAC;gBACE,GAAG,MAAM;gBACT,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,yBAAyB,IAAI,QAAQ,EAAE;aACxF;YACH,CAAC,CAAC,MAAM,CAAC;QACb,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACnC,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IACrC,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACnC,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACnC,SAAS,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACzC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAEjC,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,GAAG,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAC3B,KAAK,IAAI,IAAI,EACb,KAAK,IAAI,IAAI,EACb,KAAK;QACH,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE;QACtE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CACzB,CAAC;IACF,GAAG,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAC3B,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EACnC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EACtC,GAAG,KAAK,SAAS;QACf,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE;QACtE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CACzB,CAAC;IAEF,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjG,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,CACrB,KAAK,EACL,KAAK,EACL,KAAK;QACH,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE;QAChE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CACzB,CAAC;IAEF,MAAM,MAAM,GACV,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzF,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CACvB,MAAM,EACN,MAAM,EACN,MAAM;QACJ,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;QAClE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CACzB,CAAC;IAEF,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,UAAU,EAAE,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,iBAAiB,CAAC;QACpE,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,UAAmC,EACV,EAAE;IAC3B,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,aAAa;gBAChB,GAAG,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;gBAC1B,MAAM;YACR,KAAK,WAAW;gBACd,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;gBACxB,MAAM;YACR,KAAK,aAAa;gBAChB,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,CAAC;gBACjD,MAAM;YACR,KAAK,aAAa;gBAChB,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;gBACtB,MAAM;YACR,KAAK,gBAAgB;gBACnB,GAAG,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;gBACzB,MAAM;YACR,KAAK,YAAY;gBACf,GAAG,CAAC,WAAW,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC/E,MAAM;YACR,KAAK,YAAY;gBACf,GAAG,CAAC,MAAM,CAAC;oBACT,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC9D,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,KAAK,KAAK,MAAM;oBAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;gBAC3C,MAAM;YACR,KAAK,mBAAmB;gBACtB,8DAA8D;gBAC9D,MAAM;YACR,KAAK,YAAY,CAAC;YAClB,KAAK,WAAW,CAAC;YACjB,KAAK,YAAY,CAAC;YAClB,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,IAAI,GAAI,GAAG,CAAC,MAAM,CAAyC,IAAI,EAAE,CAAC;gBACxE,IAAI,GAAG,KAAK,YAAY,IAAI,OAAO,KAAK,KAAK,QAAQ;oBACnD,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;qBACrC,IAAI,GAAG,KAAK,WAAW,IAAI,KAAK,KAAK,MAAM;oBAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;qBAClE,IAAI,GAAG,KAAK,YAAY;oBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;qBAChD,IAAI,GAAG,KAAK,WAAW;oBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;gBACnD,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM;oBAAE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;gBACtD,MAAM;YACR,CAAC;YACD,KAAK,YAAY;gBACf,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;gBACpB,MAAM;YACR,KAAK,MAAM;gBACT,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;gBACpB,MAAM;YACR,KAAK,SAAS;gBACZ,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,KAAK,KAAK,CAAC;gBAChC,MAAM;YACR,KAAK,iBAAiB;gBACpB,GAAG,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC;gBAC/B,MAAM;YACR,KAAK,iBAAiB;gBACpB,GAAG,CAAC,iBAAiB,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC3E,MAAM;YACR,KAAK,QAAQ;gBACX,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;gBACtB,MAAM;YACR,KAAK,WAAW;gBACd,GAAG,CAAC,WAAW,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC/C,MAAM;YACR;gBACE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;IACD,oCAAoC;IACpC,IAAI,YAAY,IAAI,UAAU,IAAI,mBAAmB,IAAI,UAAU,EAAE,CAAC;QACpE,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;QACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,GAAG,CAAC,MAAM,CAAC;gBACT,YAAY,KAAK,SAAS;oBACxB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE;oBACjE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
package/dist/slides.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  import { OpcArchive } from '@deckflow/deckuse-opc';
2
- export declare function addSlide(archive: OpcArchive, templatePart?: string, layoutPart?: string): string;
2
+ /** Create a notes slide part for `slidePart` when missing; return the notes part URI. */
3
+ export declare function ensureNotes(archive: OpcArchive, slidePart: string): string;
4
+ export declare function addSlide(archive: OpcArchive, templatePart?: string, layoutPart?: string, afterIndex?: number): string;
3
5
  export declare function duplicateSlide(archive: OpcArchive, part: string): string;
4
6
  export declare function removeSlide(archive: OpcArchive, part: string): void;
5
7
  export declare function slideElementPart(refPart: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"slides.d.ts","sourceRoot":"","sources":["../src/slides.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAwB,MAAM,uBAAuB,CAAC;AAqDzE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CA6DhG;AACD,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAExE;AACD,wBAAgB,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CA4BnE;AACD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD"}
1
+ {"version":3,"file":"slides.d.ts","sourceRoot":"","sources":["../src/slides.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAwB,MAAM,uBAAuB,CAAC;AAqDzE,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAkC1E;AAmCD,wBAAgB,QAAQ,CACtB,OAAO,EAAE,UAAU,EACnB,YAAY,CAAC,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAgER;AACD,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAExE;AACD,wBAAgB,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAyBnE;AACD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD"}