@hirokisakabe/pom 2.0.0 → 3.0.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 (57) hide show
  1. package/README.md +158 -38
  2. package/dist/buildPptx.js +1 -1
  3. package/dist/calcYogaLayout/calcYogaLayout.d.ts.map +1 -1
  4. package/dist/calcYogaLayout/calcYogaLayout.js +95 -19
  5. package/dist/index.d.ts +1 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -1
  8. package/dist/{inputSchema.d.ts → parseXml/inputSchema.d.ts} +253 -24
  9. package/dist/parseXml/inputSchema.d.ts.map +1 -0
  10. package/dist/{inputSchema.js → parseXml/inputSchema.js} +36 -2
  11. package/dist/{parseXml.d.ts → parseXml/parseXml.d.ts} +1 -1
  12. package/dist/parseXml/parseXml.d.ts.map +1 -0
  13. package/dist/{parseXml.js → parseXml/parseXml.js} +30 -2
  14. package/dist/renderPptx/nodes/flow.d.ts.map +1 -1
  15. package/dist/renderPptx/nodes/flow.js +26 -16
  16. package/dist/renderPptx/nodes/index.d.ts +1 -0
  17. package/dist/renderPptx/nodes/index.d.ts.map +1 -1
  18. package/dist/renderPptx/nodes/index.js +1 -0
  19. package/dist/renderPptx/nodes/list.d.ts +12 -0
  20. package/dist/renderPptx/nodes/list.d.ts.map +1 -0
  21. package/dist/renderPptx/nodes/list.js +145 -0
  22. package/dist/renderPptx/nodes/matrix.d.ts.map +1 -1
  23. package/dist/renderPptx/nodes/matrix.js +43 -31
  24. package/dist/renderPptx/nodes/processArrow.d.ts.map +1 -1
  25. package/dist/renderPptx/nodes/processArrow.js +14 -6
  26. package/dist/renderPptx/nodes/shape.js +2 -2
  27. package/dist/renderPptx/nodes/table.d.ts.map +1 -1
  28. package/dist/renderPptx/nodes/table.js +1 -1
  29. package/dist/renderPptx/nodes/timeline.d.ts.map +1 -1
  30. package/dist/renderPptx/nodes/timeline.js +58 -37
  31. package/dist/renderPptx/nodes/tree.d.ts.map +1 -1
  32. package/dist/renderPptx/nodes/tree.js +49 -40
  33. package/dist/renderPptx/renderPptx.d.ts.map +1 -1
  34. package/dist/renderPptx/renderPptx.js +8 -2
  35. package/dist/renderPptx/textOptions.d.ts +1 -28
  36. package/dist/renderPptx/textOptions.d.ts.map +1 -1
  37. package/dist/renderPptx/textOptions.js +1 -27
  38. package/dist/renderPptx/utils/backgroundBorder.js +1 -1
  39. package/dist/renderPptx/utils/scaleToFit.d.ts +8 -0
  40. package/dist/renderPptx/utils/scaleToFit.d.ts.map +1 -0
  41. package/dist/renderPptx/utils/scaleToFit.js +19 -0
  42. package/dist/shared/measureImage.d.ts.map +1 -0
  43. package/dist/{table/utils.d.ts → shared/tableUtils.d.ts} +1 -1
  44. package/dist/shared/tableUtils.d.ts.map +1 -0
  45. package/dist/toPositioned/toPositioned.d.ts.map +1 -1
  46. package/dist/toPositioned/toPositioned.js +4 -2
  47. package/dist/types.d.ts +277 -52
  48. package/dist/types.d.ts.map +1 -1
  49. package/dist/types.js +48 -8
  50. package/package.json +1 -1
  51. package/dist/calcYogaLayout/measureImage.d.ts.map +0 -1
  52. package/dist/inputSchema.d.ts.map +0 -1
  53. package/dist/parseXml.d.ts.map +0 -1
  54. package/dist/table/utils.d.ts.map +0 -1
  55. /package/dist/{calcYogaLayout → shared}/measureImage.d.ts +0 -0
  56. /package/dist/{calcYogaLayout → shared}/measureImage.js +0 -0
  57. /package/dist/{table/utils.js → shared/tableUtils.js} +0 -0
@@ -5,7 +5,7 @@
5
5
  * Used by `parseXml` to validate parsed XML input.
6
6
  */
7
7
  import { z } from "zod";
8
- import { type TreeDataItem } from "./types.ts";
8
+ import { type TreeDataItem } from "../types.ts";
9
9
  export declare const inputBaseNodeSchema: z.ZodObject<{
10
10
  w: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"max">, z.ZodString]>>;
11
11
  h: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"max">, z.ZodString]>>;
@@ -116,32 +116,259 @@ export declare const inputTextNodeSchema: z.ZodObject<{
116
116
  highlight: z.ZodOptional<z.ZodString>;
117
117
  fontFamily: z.ZodOptional<z.ZodString>;
118
118
  lineSpacingMultiple: z.ZodOptional<z.ZodNumber>;
119
- bullet: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
120
- type: z.ZodOptional<z.ZodEnum<{
121
- number: "number";
122
- bullet: "bullet";
119
+ }, z.core.$strip>;
120
+ export declare const inputLiNodeSchema: z.ZodObject<{
121
+ text: z.ZodString;
122
+ bold: z.ZodOptional<z.ZodBoolean>;
123
+ italic: z.ZodOptional<z.ZodBoolean>;
124
+ underline: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
125
+ style: z.ZodOptional<z.ZodEnum<{
126
+ dash: "dash";
127
+ dashHeavy: "dashHeavy";
128
+ dashLong: "dashLong";
129
+ dashLongHeavy: "dashLongHeavy";
130
+ dbl: "dbl";
131
+ dotDash: "dotDash";
132
+ dotDotDash: "dotDotDash";
133
+ dotted: "dotted";
134
+ dottedHeavy: "dottedHeavy";
135
+ heavy: "heavy";
136
+ none: "none";
137
+ sng: "sng";
138
+ wavy: "wavy";
139
+ wavyDbl: "wavyDbl";
140
+ wavyHeavy: "wavyHeavy";
141
+ }>>;
142
+ color: z.ZodOptional<z.ZodString>;
143
+ }, z.core.$strip>]>>;
144
+ strike: z.ZodOptional<z.ZodBoolean>;
145
+ highlight: z.ZodOptional<z.ZodString>;
146
+ color: z.ZodOptional<z.ZodString>;
147
+ fontPx: z.ZodOptional<z.ZodNumber>;
148
+ fontFamily: z.ZodOptional<z.ZodString>;
149
+ }, z.core.$strip>;
150
+ export declare const inputUlNodeSchema: z.ZodObject<{
151
+ w: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"max">, z.ZodString]>>;
152
+ h: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"max">, z.ZodString]>>;
153
+ minW: z.ZodOptional<z.ZodNumber>;
154
+ maxW: z.ZodOptional<z.ZodNumber>;
155
+ minH: z.ZodOptional<z.ZodNumber>;
156
+ maxH: z.ZodOptional<z.ZodNumber>;
157
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
158
+ top: z.ZodOptional<z.ZodNumber>;
159
+ right: z.ZodOptional<z.ZodNumber>;
160
+ bottom: z.ZodOptional<z.ZodNumber>;
161
+ left: z.ZodOptional<z.ZodNumber>;
162
+ }, z.core.$strip>]>>;
163
+ backgroundColor: z.ZodOptional<z.ZodString>;
164
+ backgroundImage: z.ZodOptional<z.ZodObject<{
165
+ src: z.ZodString;
166
+ sizing: z.ZodOptional<z.ZodEnum<{
167
+ cover: "cover";
168
+ contain: "contain";
169
+ }>>;
170
+ }, z.core.$strip>>;
171
+ border: z.ZodOptional<z.ZodObject<{
172
+ color: z.ZodOptional<z.ZodString>;
173
+ width: z.ZodOptional<z.ZodNumber>;
174
+ dashType: z.ZodOptional<z.ZodEnum<{
175
+ solid: "solid";
176
+ dash: "dash";
177
+ dashDot: "dashDot";
178
+ lgDash: "lgDash";
179
+ lgDashDot: "lgDashDot";
180
+ lgDashDotDot: "lgDashDotDot";
181
+ sysDash: "sysDash";
182
+ sysDot: "sysDot";
183
+ }>>;
184
+ }, z.core.$strip>>;
185
+ borderRadius: z.ZodOptional<z.ZodNumber>;
186
+ opacity: z.ZodOptional<z.ZodNumber>;
187
+ type: z.ZodLiteral<"ul">;
188
+ items: z.ZodArray<z.ZodObject<{
189
+ text: z.ZodString;
190
+ bold: z.ZodOptional<z.ZodBoolean>;
191
+ italic: z.ZodOptional<z.ZodBoolean>;
192
+ underline: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
193
+ style: z.ZodOptional<z.ZodEnum<{
194
+ dash: "dash";
195
+ dashHeavy: "dashHeavy";
196
+ dashLong: "dashLong";
197
+ dashLongHeavy: "dashLongHeavy";
198
+ dbl: "dbl";
199
+ dotDash: "dotDash";
200
+ dotDotDash: "dotDotDash";
201
+ dotted: "dotted";
202
+ dottedHeavy: "dottedHeavy";
203
+ heavy: "heavy";
204
+ none: "none";
205
+ sng: "sng";
206
+ wavy: "wavy";
207
+ wavyDbl: "wavyDbl";
208
+ wavyHeavy: "wavyHeavy";
209
+ }>>;
210
+ color: z.ZodOptional<z.ZodString>;
211
+ }, z.core.$strip>]>>;
212
+ strike: z.ZodOptional<z.ZodBoolean>;
213
+ highlight: z.ZodOptional<z.ZodString>;
214
+ color: z.ZodOptional<z.ZodString>;
215
+ fontPx: z.ZodOptional<z.ZodNumber>;
216
+ fontFamily: z.ZodOptional<z.ZodString>;
217
+ }, z.core.$strip>>;
218
+ fontPx: z.ZodOptional<z.ZodNumber>;
219
+ color: z.ZodOptional<z.ZodString>;
220
+ alignText: z.ZodOptional<z.ZodEnum<{
221
+ right: "right";
222
+ left: "left";
223
+ center: "center";
224
+ }>>;
225
+ bold: z.ZodOptional<z.ZodBoolean>;
226
+ italic: z.ZodOptional<z.ZodBoolean>;
227
+ underline: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
228
+ style: z.ZodOptional<z.ZodEnum<{
229
+ dash: "dash";
230
+ dashHeavy: "dashHeavy";
231
+ dashLong: "dashLong";
232
+ dashLongHeavy: "dashLongHeavy";
233
+ dbl: "dbl";
234
+ dotDash: "dotDash";
235
+ dotDotDash: "dotDotDash";
236
+ dotted: "dotted";
237
+ dottedHeavy: "dottedHeavy";
238
+ heavy: "heavy";
239
+ none: "none";
240
+ sng: "sng";
241
+ wavy: "wavy";
242
+ wavyDbl: "wavyDbl";
243
+ wavyHeavy: "wavyHeavy";
123
244
  }>>;
124
- indent: z.ZodOptional<z.ZodNumber>;
125
- numberType: z.ZodOptional<z.ZodEnum<{
126
- alphaLcParenBoth: "alphaLcParenBoth";
127
- alphaLcParenR: "alphaLcParenR";
128
- alphaLcPeriod: "alphaLcPeriod";
129
- alphaUcParenBoth: "alphaUcParenBoth";
130
- alphaUcParenR: "alphaUcParenR";
131
- alphaUcPeriod: "alphaUcPeriod";
132
- arabicParenBoth: "arabicParenBoth";
133
- arabicParenR: "arabicParenR";
134
- arabicPeriod: "arabicPeriod";
135
- arabicPlain: "arabicPlain";
136
- romanLcParenBoth: "romanLcParenBoth";
137
- romanLcParenR: "romanLcParenR";
138
- romanLcPeriod: "romanLcPeriod";
139
- romanUcParenBoth: "romanUcParenBoth";
140
- romanUcParenR: "romanUcParenR";
141
- romanUcPeriod: "romanUcPeriod";
245
+ color: z.ZodOptional<z.ZodString>;
246
+ }, z.core.$strip>]>>;
247
+ strike: z.ZodOptional<z.ZodBoolean>;
248
+ highlight: z.ZodOptional<z.ZodString>;
249
+ fontFamily: z.ZodOptional<z.ZodString>;
250
+ lineSpacingMultiple: z.ZodOptional<z.ZodNumber>;
251
+ }, z.core.$strip>;
252
+ export declare const inputOlNodeSchema: z.ZodObject<{
253
+ w: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"max">, z.ZodString]>>;
254
+ h: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"max">, z.ZodString]>>;
255
+ minW: z.ZodOptional<z.ZodNumber>;
256
+ maxW: z.ZodOptional<z.ZodNumber>;
257
+ minH: z.ZodOptional<z.ZodNumber>;
258
+ maxH: z.ZodOptional<z.ZodNumber>;
259
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
260
+ top: z.ZodOptional<z.ZodNumber>;
261
+ right: z.ZodOptional<z.ZodNumber>;
262
+ bottom: z.ZodOptional<z.ZodNumber>;
263
+ left: z.ZodOptional<z.ZodNumber>;
264
+ }, z.core.$strip>]>>;
265
+ backgroundColor: z.ZodOptional<z.ZodString>;
266
+ backgroundImage: z.ZodOptional<z.ZodObject<{
267
+ src: z.ZodString;
268
+ sizing: z.ZodOptional<z.ZodEnum<{
269
+ cover: "cover";
270
+ contain: "contain";
142
271
  }>>;
143
- numberStartAt: z.ZodOptional<z.ZodNumber>;
272
+ }, z.core.$strip>>;
273
+ border: z.ZodOptional<z.ZodObject<{
274
+ color: z.ZodOptional<z.ZodString>;
275
+ width: z.ZodOptional<z.ZodNumber>;
276
+ dashType: z.ZodOptional<z.ZodEnum<{
277
+ solid: "solid";
278
+ dash: "dash";
279
+ dashDot: "dashDot";
280
+ lgDash: "lgDash";
281
+ lgDashDot: "lgDashDot";
282
+ lgDashDotDot: "lgDashDotDot";
283
+ sysDash: "sysDash";
284
+ sysDot: "sysDot";
285
+ }>>;
286
+ }, z.core.$strip>>;
287
+ borderRadius: z.ZodOptional<z.ZodNumber>;
288
+ opacity: z.ZodOptional<z.ZodNumber>;
289
+ type: z.ZodLiteral<"ol">;
290
+ items: z.ZodArray<z.ZodObject<{
291
+ text: z.ZodString;
292
+ bold: z.ZodOptional<z.ZodBoolean>;
293
+ italic: z.ZodOptional<z.ZodBoolean>;
294
+ underline: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
295
+ style: z.ZodOptional<z.ZodEnum<{
296
+ dash: "dash";
297
+ dashHeavy: "dashHeavy";
298
+ dashLong: "dashLong";
299
+ dashLongHeavy: "dashLongHeavy";
300
+ dbl: "dbl";
301
+ dotDash: "dotDash";
302
+ dotDotDash: "dotDotDash";
303
+ dotted: "dotted";
304
+ dottedHeavy: "dottedHeavy";
305
+ heavy: "heavy";
306
+ none: "none";
307
+ sng: "sng";
308
+ wavy: "wavy";
309
+ wavyDbl: "wavyDbl";
310
+ wavyHeavy: "wavyHeavy";
311
+ }>>;
312
+ color: z.ZodOptional<z.ZodString>;
313
+ }, z.core.$strip>]>>;
314
+ strike: z.ZodOptional<z.ZodBoolean>;
315
+ highlight: z.ZodOptional<z.ZodString>;
316
+ color: z.ZodOptional<z.ZodString>;
317
+ fontPx: z.ZodOptional<z.ZodNumber>;
318
+ fontFamily: z.ZodOptional<z.ZodString>;
319
+ }, z.core.$strip>>;
320
+ fontPx: z.ZodOptional<z.ZodNumber>;
321
+ color: z.ZodOptional<z.ZodString>;
322
+ alignText: z.ZodOptional<z.ZodEnum<{
323
+ right: "right";
324
+ left: "left";
325
+ center: "center";
326
+ }>>;
327
+ bold: z.ZodOptional<z.ZodBoolean>;
328
+ italic: z.ZodOptional<z.ZodBoolean>;
329
+ underline: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
330
+ style: z.ZodOptional<z.ZodEnum<{
331
+ dash: "dash";
332
+ dashHeavy: "dashHeavy";
333
+ dashLong: "dashLong";
334
+ dashLongHeavy: "dashLongHeavy";
335
+ dbl: "dbl";
336
+ dotDash: "dotDash";
337
+ dotDotDash: "dotDotDash";
338
+ dotted: "dotted";
339
+ dottedHeavy: "dottedHeavy";
340
+ heavy: "heavy";
341
+ none: "none";
342
+ sng: "sng";
343
+ wavy: "wavy";
344
+ wavyDbl: "wavyDbl";
345
+ wavyHeavy: "wavyHeavy";
346
+ }>>;
347
+ color: z.ZodOptional<z.ZodString>;
144
348
  }, z.core.$strip>]>>;
349
+ strike: z.ZodOptional<z.ZodBoolean>;
350
+ highlight: z.ZodOptional<z.ZodString>;
351
+ fontFamily: z.ZodOptional<z.ZodString>;
352
+ lineSpacingMultiple: z.ZodOptional<z.ZodNumber>;
353
+ numberType: z.ZodOptional<z.ZodEnum<{
354
+ alphaLcParenBoth: "alphaLcParenBoth";
355
+ alphaLcParenR: "alphaLcParenR";
356
+ alphaLcPeriod: "alphaLcPeriod";
357
+ alphaUcParenBoth: "alphaUcParenBoth";
358
+ alphaUcParenR: "alphaUcParenR";
359
+ alphaUcPeriod: "alphaUcPeriod";
360
+ arabicParenBoth: "arabicParenBoth";
361
+ arabicParenR: "arabicParenR";
362
+ arabicPeriod: "arabicPeriod";
363
+ arabicPlain: "arabicPlain";
364
+ romanLcParenBoth: "romanLcParenBoth";
365
+ romanLcParenR: "romanLcParenR";
366
+ romanLcPeriod: "romanLcPeriod";
367
+ romanUcParenBoth: "romanUcParenBoth";
368
+ romanUcParenR: "romanUcParenR";
369
+ romanUcPeriod: "romanUcPeriod";
370
+ }>>;
371
+ numberStartAt: z.ZodOptional<z.ZodNumber>;
145
372
  }, z.core.$strip>;
146
373
  export declare const inputImageNodeSchema: z.ZodObject<{
147
374
  w: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"max">, z.ZodString]>>;
@@ -565,6 +792,8 @@ export declare const inputShapeNodeSchema: z.ZodObject<{
565
792
  }, z.core.$strip>]>>;
566
793
  strike: z.ZodOptional<z.ZodBoolean>;
567
794
  highlight: z.ZodOptional<z.ZodString>;
795
+ fontFamily: z.ZodOptional<z.ZodString>;
796
+ lineSpacingMultiple: z.ZodOptional<z.ZodNumber>;
568
797
  }, z.core.$strip>;
569
798
  export declare const inputChartNodeSchema: z.ZodObject<{
570
799
  w: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"max">, z.ZodString]>>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputSchema.d.ts","sourceRoot":"","sources":["../../src/parseXml/inputSchema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAoCL,KAAK,YAAY,EAElB,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAa9B,CAAC;AAKH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAa9B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAe,CAAC;AAE9C,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAa5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAe5B,CAAC;AAUH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAK/B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAK/B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiB/B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAU/B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIlC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKhC,CAAC;AAUH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAU9B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAS9B,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAatC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAW9B,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * Used by `parseXml` to validate parsed XML input.
6
6
  */
7
7
  import { z } from "zod";
8
- import { lengthSchema, paddingSchema, borderStyleSchema, borderDashSchema, fillStyleSchema, shadowStyleSchema, alignItemsSchema, justifyContentSchema, shapeTypeSchema, tableColumnSchema, tableRowSchema, chartTypeSchema, chartDataSchema, bulletOptionsSchema, radarStyleSchema, timelineDirectionSchema, timelineItemSchema, matrixAxisSchema, matrixQuadrantsSchema, matrixItemSchema, treeLayoutSchema, treeNodeShapeSchema, treeConnectorStyleSchema, flowDirectionSchema, flowNodeItemSchema, flowConnectionSchema, flowConnectorStyleSchema, processArrowDirectionSchema, processArrowStepSchema, lineArrowSchema, underlineSchema, backgroundImageSchema, } from "./types.js";
8
+ import { lengthSchema, paddingSchema, borderStyleSchema, borderDashSchema, fillStyleSchema, shadowStyleSchema, alignItemsSchema, justifyContentSchema, shapeTypeSchema, tableColumnSchema, tableRowSchema, chartTypeSchema, chartDataSchema, liNodeSchema, radarStyleSchema, bulletNumberTypeSchema, timelineDirectionSchema, timelineItemSchema, matrixAxisSchema, matrixQuadrantsSchema, matrixItemSchema, treeLayoutSchema, treeNodeShapeSchema, treeConnectorStyleSchema, flowDirectionSchema, flowNodeItemSchema, flowConnectionSchema, flowConnectorStyleSchema, processArrowDirectionSchema, processArrowStepSchema, lineArrowSchema, underlineSchema, backgroundImageSchema, } from "../types.js";
9
9
  // ===== Base Node Schema =====
10
10
  export const inputBaseNodeSchema = z.object({
11
11
  w: lengthSchema.optional(),
@@ -35,7 +35,37 @@ export const inputTextNodeSchema = inputBaseNodeSchema.extend({
35
35
  highlight: z.string().optional(),
36
36
  fontFamily: z.string().optional(),
37
37
  lineSpacingMultiple: z.number().optional(),
38
- bullet: z.union([z.boolean(), bulletOptionsSchema]).optional(),
38
+ });
39
+ export const inputLiNodeSchema = liNodeSchema;
40
+ export const inputUlNodeSchema = inputBaseNodeSchema.extend({
41
+ type: z.literal("ul"),
42
+ items: z.array(inputLiNodeSchema),
43
+ fontPx: z.number().optional(),
44
+ color: z.string().optional(),
45
+ alignText: z.enum(["left", "center", "right"]).optional(),
46
+ bold: z.boolean().optional(),
47
+ italic: z.boolean().optional(),
48
+ underline: underlineSchema.optional(),
49
+ strike: z.boolean().optional(),
50
+ highlight: z.string().optional(),
51
+ fontFamily: z.string().optional(),
52
+ lineSpacingMultiple: z.number().optional(),
53
+ });
54
+ export const inputOlNodeSchema = inputBaseNodeSchema.extend({
55
+ type: z.literal("ol"),
56
+ items: z.array(inputLiNodeSchema),
57
+ fontPx: z.number().optional(),
58
+ color: z.string().optional(),
59
+ alignText: z.enum(["left", "center", "right"]).optional(),
60
+ bold: z.boolean().optional(),
61
+ italic: z.boolean().optional(),
62
+ underline: underlineSchema.optional(),
63
+ strike: z.boolean().optional(),
64
+ highlight: z.string().optional(),
65
+ fontFamily: z.string().optional(),
66
+ lineSpacingMultiple: z.number().optional(),
67
+ numberType: bulletNumberTypeSchema.optional(),
68
+ numberStartAt: z.number().optional(),
39
69
  });
40
70
  const inputImageSizingSchema = z.object({
41
71
  type: z.enum(["contain", "cover", "crop"]),
@@ -71,6 +101,8 @@ export const inputShapeNodeSchema = inputBaseNodeSchema.extend({
71
101
  underline: underlineSchema.optional(),
72
102
  strike: z.boolean().optional(),
73
103
  highlight: z.string().optional(),
104
+ fontFamily: z.string().optional(),
105
+ lineSpacingMultiple: z.number().optional(),
74
106
  });
75
107
  export const inputChartNodeSchema = inputBaseNodeSchema.extend({
76
108
  type: z.literal("chart"),
@@ -177,6 +209,8 @@ const inputLayerNodeSchemaBase = inputBaseNodeSchema.extend({
177
209
  /** Input schema for POM nodes (used internally by parseXml) */
178
210
  const inputPomNodeSchema = z.lazy(() => z.discriminatedUnion("type", [
179
211
  inputTextNodeSchema,
212
+ inputUlNodeSchema,
213
+ inputOlNodeSchema,
180
214
  inputImageNodeSchema,
181
215
  inputTableNodeSchema,
182
216
  inputBoxNodeSchemaBase,
@@ -1,4 +1,4 @@
1
- import type { POMNode } from "./types.ts";
1
+ import type { POMNode } from "../types.ts";
2
2
  export declare class ParseXmlError extends Error {
3
3
  readonly errors: string[];
4
4
  constructor(errors: string[]);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseXml.d.ts","sourceRoot":"","sources":["../../src/parseXml/parseXml.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAmC3C,qBAAa,aAAc,SAAQ,KAAK;IACtC,SAAgB,MAAM,EAAE,MAAM,EAAE,CAAC;gBACrB,MAAM,EAAE,MAAM,EAAE;CAM7B;AAk9BD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,CAiCrD"}
@@ -1,7 +1,7 @@
1
1
  import { XMLParser } from "fast-xml-parser";
2
2
  import { z } from "zod";
3
- import { inputTextNodeSchema, inputImageNodeSchema, inputTableNodeSchema, inputShapeNodeSchema, inputChartNodeSchema, inputTimelineNodeSchema, inputMatrixNodeSchema, inputTreeNodeSchema, inputFlowNodeSchema, inputProcessArrowNodeSchema, inputLineNodeSchema, inputBaseNodeSchema, } from "./inputSchema.js";
4
- import { alignItemsSchema, justifyContentSchema, shadowStyleSchema, processArrowStepSchema, timelineItemSchema, matrixAxisSchema, matrixQuadrantsSchema, matrixItemSchema, flowNodeItemSchema, flowConnectionSchema, chartDataSchema, tableColumnSchema, tableCellSchema, } from "./types.js";
3
+ import { inputTextNodeSchema, inputUlNodeSchema, inputOlNodeSchema, inputLiNodeSchema, inputImageNodeSchema, inputTableNodeSchema, inputShapeNodeSchema, inputChartNodeSchema, inputTimelineNodeSchema, inputMatrixNodeSchema, inputTreeNodeSchema, inputFlowNodeSchema, inputProcessArrowNodeSchema, inputLineNodeSchema, inputBaseNodeSchema, } from "./inputSchema.js";
4
+ import { alignItemsSchema, justifyContentSchema, shadowStyleSchema, processArrowStepSchema, timelineItemSchema, matrixAxisSchema, matrixQuadrantsSchema, matrixItemSchema, flowNodeItemSchema, flowConnectionSchema, chartDataSchema, tableColumnSchema, tableCellSchema, } from "../types.js";
5
5
  // ===== ParseXmlError =====
6
6
  export class ParseXmlError extends Error {
7
7
  errors;
@@ -24,6 +24,8 @@ const TAG_TO_TYPE = {
24
24
  Tree: "tree",
25
25
  Flow: "flow",
26
26
  ProcessArrow: "processArrow",
27
+ Ul: "ul",
28
+ Ol: "ol",
27
29
  Line: "line",
28
30
  Box: "box",
29
31
  VStack: "vstack",
@@ -47,6 +49,8 @@ const leafNodeShapes = {
47
49
  flow: extractShape(inputFlowNodeSchema),
48
50
  processArrow: extractShape(inputProcessArrowNodeSchema),
49
51
  line: extractShape(inputLineNodeSchema),
52
+ ul: extractShape(inputUlNodeSchema),
53
+ ol: extractShape(inputOlNodeSchema),
50
54
  };
51
55
  const containerShapes = {
52
56
  box: extractShape(inputBaseNodeSchema.extend({ shadow: shadowStyleSchema.optional() })),
@@ -123,6 +127,8 @@ const leafNodeValidationSchemas = {
123
127
  flow: inputFlowNodeSchema,
124
128
  processArrow: inputProcessArrowNodeSchema,
125
129
  line: inputLineNodeSchema,
130
+ ul: inputUlNodeSchema,
131
+ ol: inputOlNodeSchema,
126
132
  };
127
133
  function formatZodIssue(issue, tagName) {
128
134
  const path = issue.path;
@@ -180,6 +186,8 @@ const CHILD_ELEMENT_PROPS = {
180
186
  matrix: new Set(["axes", "items", "quadrants"]),
181
187
  processArrow: new Set(["steps"]),
182
188
  tree: new Set(["data"]),
189
+ ul: new Set(["items"]),
190
+ ol: new Set(["items"]),
183
191
  };
184
192
  function validateLeafNode(nodeType, result, errors) {
185
193
  const schema = leafNodeValidationSchemas[nodeType];
@@ -409,6 +417,7 @@ const childElementShapes = {
409
417
  Connection: extractShape(flowConnectionSchema),
410
418
  Column: extractShape(tableColumnSchema),
411
419
  Cell: extractShape(tableCellSchema),
420
+ Li: extractShape(inputLiNodeSchema),
412
421
  };
413
422
  function coerceChildAttrs(parentTagName, tagName, attrs, errors) {
414
423
  const shape = childElementShapes[tagName];
@@ -650,7 +659,26 @@ function convertTreeChildren(childElements, result, errors) {
650
659
  }
651
660
  result.data = convertTreeItem(child, errors);
652
661
  }
662
+ function convertListChildren(parentTag, childElements, result, errors) {
663
+ const items = [];
664
+ for (const child of childElements) {
665
+ const tag = getTagName(child);
666
+ if (tag !== "Li") {
667
+ errors.push(`Unknown child element <${tag}> inside <${parentTag}>. Expected: <Li>`);
668
+ continue;
669
+ }
670
+ const attrs = coerceChildAttrs(parentTag, tag, getAttributes(child), errors);
671
+ const textContent = getTextContent(child);
672
+ if (textContent !== undefined && !("text" in attrs)) {
673
+ attrs.text = textContent;
674
+ }
675
+ items.push(attrs);
676
+ }
677
+ result.items = items;
678
+ }
653
679
  const CHILD_ELEMENT_CONVERTERS = {
680
+ ul: (childElements, result, errors) => convertListChildren("Ul", childElements, result, errors),
681
+ ol: (childElements, result, errors) => convertListChildren("Ol", childElements, result, errors),
654
682
  processArrow: convertProcessArrowChildren,
655
683
  timeline: convertTimelineChildren,
656
684
  matrix: convertMatrixChildren,
@@ -1 +1 @@
1
- {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../../src/renderPptx/nodes/flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,KAAK,kBAAkB,GAAG,OAAO,CAAC,cAAc,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAWpE,wBAAgB,cAAc,CAC5B,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,aAAa,GACjB,IAAI,CA0GN"}
1
+ {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../../src/renderPptx/nodes/flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKjD,KAAK,kBAAkB,GAAG,OAAO,CAAC,cAAc,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAWpE,wBAAgB,cAAc,CAC5B,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,aAAa,GACjB,IAAI,CA6HN"}
@@ -1,4 +1,6 @@
1
1
  import { pxToIn, pxToPt } from "../units.js";
2
+ import { measureFlow } from "../../calcYogaLayout/measureCompositeNodes.js";
3
+ import { calcScaleFactor } from "../utils/scaleToFit.js";
2
4
  export function renderFlowNode(node, ctx) {
3
5
  const direction = node.direction ?? "horizontal";
4
6
  const nodeWidth = node.nodeWidth ?? 120;
@@ -6,14 +8,20 @@ export function renderFlowNode(node, ctx) {
6
8
  const nodeGap = node.nodeGap ?? 80;
7
9
  const connectorStyle = node.connectorStyle ?? {};
8
10
  const defaultColor = "1D4ED8";
11
+ // スケール係数を計算
12
+ const intrinsic = measureFlow(node);
13
+ const scaleFactor = calcScaleFactor(node.w, node.h, intrinsic.width, intrinsic.height, "flow");
14
+ const scaledNodeWidth = nodeWidth * scaleFactor;
15
+ const scaledNodeHeight = nodeHeight * scaleFactor;
16
+ const scaledNodeGap = nodeGap * scaleFactor;
9
17
  const layouts = new Map();
10
18
  const nodeCount = node.nodes.length;
11
19
  // ノードのレイアウトを計算
12
20
  if (direction === "horizontal") {
13
- calculateHorizontalLayout(node, layouts, nodeCount, nodeWidth, nodeHeight, nodeGap);
21
+ calculateHorizontalLayout(node, layouts, nodeCount, scaledNodeWidth, scaledNodeHeight, scaledNodeGap, scaleFactor);
14
22
  }
15
23
  else {
16
- calculateVerticalLayout(node, layouts, nodeCount, nodeWidth, nodeHeight, nodeGap);
24
+ calculateVerticalLayout(node, layouts, nodeCount, scaledNodeWidth, scaledNodeHeight, scaledNodeGap, scaleFactor);
17
25
  }
18
26
  // 接続線を描画(ノードより先に描画して背面に配置)
19
27
  for (const conn of node.connections) {
@@ -22,7 +30,7 @@ export function renderFlowNode(node, ctx) {
22
30
  if (!fromLayout || !toLayout)
23
31
  continue;
24
32
  const lineColor = conn.color ?? connectorStyle.color ?? "333333";
25
- const lineWidth = connectorStyle.width ?? 2;
33
+ const lineWidth = (connectorStyle.width ?? 2) * scaleFactor;
26
34
  const arrowType = connectorStyle.arrowType ?? "triangle";
27
35
  drawConnection(ctx, direction, fromLayout, toLayout, lineColor, lineWidth, arrowType);
28
36
  // ラベルを描画
@@ -37,12 +45,14 @@ export function renderFlowNode(node, ctx) {
37
45
  toLayout.y +
38
46
  toLayout.height / 2) /
39
47
  2;
48
+ const labelW = 60 * scaleFactor;
49
+ const labelH = 20 * scaleFactor;
40
50
  ctx.slide.addText(conn.label, {
41
- x: pxToIn(labelX - 30),
42
- y: pxToIn(labelY - 10),
43
- w: pxToIn(60),
44
- h: pxToIn(20),
45
- fontSize: pxToPt(10),
51
+ x: pxToIn(labelX - labelW / 2),
52
+ y: pxToIn(labelY - labelH / 2),
53
+ w: pxToIn(labelW),
54
+ h: pxToIn(labelH),
55
+ fontSize: pxToPt(10 * scaleFactor),
46
56
  fontFace: "Noto Sans JP",
47
57
  color: "64748B",
48
58
  align: "center",
@@ -65,8 +75,8 @@ export function renderFlowNode(node, ctx) {
65
75
  h: pxToIn(layout.height),
66
76
  shape: item.shape,
67
77
  fill: { color: fillColor },
68
- line: { color: "333333", width: pxToPt(1) },
69
- fontSize: pxToPt(14),
78
+ line: { color: "333333", width: pxToPt(1 * scaleFactor) },
79
+ fontSize: pxToPt(14 * scaleFactor),
70
80
  fontFace: "Noto Sans JP",
71
81
  color: textColor,
72
82
  align: "center",
@@ -74,13 +84,13 @@ export function renderFlowNode(node, ctx) {
74
84
  });
75
85
  }
76
86
  }
77
- function calculateHorizontalLayout(node, layouts, nodeCount, nodeWidth, nodeHeight, nodeGap) {
87
+ function calculateHorizontalLayout(node, layouts, nodeCount, nodeWidth, nodeHeight, nodeGap, scaleFactor) {
78
88
  const totalWidth = nodeCount * nodeWidth + (nodeCount - 1) * nodeGap;
79
89
  const startX = node.x + (node.w - totalWidth) / 2;
80
90
  const centerY = node.y + node.h / 2;
81
91
  node.nodes.forEach((item, index) => {
82
- const w = item.width ?? nodeWidth;
83
- const h = item.height ?? nodeHeight;
92
+ const w = (item.width ?? nodeWidth / scaleFactor) * scaleFactor;
93
+ const h = (item.height ?? nodeHeight / scaleFactor) * scaleFactor;
84
94
  layouts.set(item.id, {
85
95
  id: item.id,
86
96
  x: startX + index * (nodeWidth + nodeGap) + (nodeWidth - w) / 2,
@@ -91,13 +101,13 @@ function calculateHorizontalLayout(node, layouts, nodeCount, nodeWidth, nodeHeig
91
101
  });
92
102
  });
93
103
  }
94
- function calculateVerticalLayout(node, layouts, nodeCount, nodeWidth, nodeHeight, nodeGap) {
104
+ function calculateVerticalLayout(node, layouts, nodeCount, nodeWidth, nodeHeight, nodeGap, scaleFactor) {
95
105
  const totalHeight = nodeCount * nodeHeight + (nodeCount - 1) * nodeGap;
96
106
  const startY = node.y + (node.h - totalHeight) / 2;
97
107
  const centerX = node.x + node.w / 2;
98
108
  node.nodes.forEach((item, index) => {
99
- const w = item.width ?? nodeWidth;
100
- const h = item.height ?? nodeHeight;
109
+ const w = (item.width ?? nodeWidth / scaleFactor) * scaleFactor;
110
+ const h = (item.height ?? nodeHeight / scaleFactor) * scaleFactor;
101
111
  layouts.set(item.id, {
102
112
  id: item.id,
103
113
  x: centerX - w / 2,
@@ -9,4 +9,5 @@ export { renderTreeNode } from "./tree.ts";
9
9
  export { renderFlowNode } from "./flow.ts";
10
10
  export { renderProcessArrowNode } from "./processArrow.ts";
11
11
  export { renderLineNode } from "./line.ts";
12
+ export { renderUlNode, renderOlNode } from "./list.ts";
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderPptx/nodes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderPptx/nodes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
@@ -9,3 +9,4 @@ export { renderTreeNode } from "./tree.js";
9
9
  export { renderFlowNode } from "./flow.js";
10
10
  export { renderProcessArrowNode } from "./processArrow.js";
11
11
  export { renderLineNode } from "./line.js";
12
+ export { renderUlNode, renderOlNode } from "./list.js";
@@ -0,0 +1,12 @@
1
+ import type { PositionedNode } from "../../types.ts";
2
+ import type { RenderContext } from "../types.ts";
3
+ type UlPositionedNode = Extract<PositionedNode, {
4
+ type: "ul";
5
+ }>;
6
+ type OlPositionedNode = Extract<PositionedNode, {
7
+ type: "ol";
8
+ }>;
9
+ export declare function renderUlNode(node: UlPositionedNode, ctx: RenderContext): void;
10
+ export declare function renderOlNode(node: OlPositionedNode, ctx: RenderContext): void;
11
+ export {};
12
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/renderPptx/nodes/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAU,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,KAAK,gBAAgB,GAAG,OAAO,CAAC,cAAc,EAAE;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC;AAChE,KAAK,gBAAgB,GAAG,OAAO,CAAC,cAAc,EAAE;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC;AA6BhE,wBAAgB,YAAY,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CA2D7E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAiE7E"}