@hirokisakabe/pom 0.1.10 → 0.1.12

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 (37) hide show
  1. package/README.md +198 -177
  2. package/dist/inputSchema.d.ts +14 -0
  3. package/dist/inputSchema.d.ts.map +1 -1
  4. package/dist/inputSchema.js +4 -1
  5. package/dist/parsePptx/convertChart.d.ts +8 -0
  6. package/dist/parsePptx/convertChart.d.ts.map +1 -0
  7. package/dist/parsePptx/convertChart.js +78 -0
  8. package/dist/parsePptx/convertImage.d.ts +8 -0
  9. package/dist/parsePptx/convertImage.d.ts.map +1 -0
  10. package/dist/parsePptx/convertImage.js +13 -0
  11. package/dist/parsePptx/convertShape.d.ts +7 -0
  12. package/dist/parsePptx/convertShape.d.ts.map +1 -0
  13. package/dist/parsePptx/convertShape.js +137 -0
  14. package/dist/parsePptx/convertTable.d.ts +7 -0
  15. package/dist/parsePptx/convertTable.d.ts.map +1 -0
  16. package/dist/parsePptx/convertTable.js +46 -0
  17. package/dist/parsePptx/convertText.d.ts +7 -0
  18. package/dist/parsePptx/convertText.d.ts.map +1 -0
  19. package/dist/parsePptx/convertText.js +32 -0
  20. package/dist/parsePptx/index.d.ts +23 -0
  21. package/dist/parsePptx/index.d.ts.map +1 -0
  22. package/dist/parsePptx/index.js +114 -0
  23. package/dist/parsePptx/parseHtml.d.ts +22 -0
  24. package/dist/parsePptx/parseHtml.d.ts.map +1 -0
  25. package/dist/parsePptx/parseHtml.js +53 -0
  26. package/dist/parsePptx/types.d.ts +15 -0
  27. package/dist/parsePptx/types.d.ts.map +1 -0
  28. package/dist/parsePptx/types.js +1 -0
  29. package/dist/parsePptx/units.d.ts +13 -0
  30. package/dist/parsePptx/units.d.ts.map +1 -0
  31. package/dist/parsePptx/units.js +19 -0
  32. package/dist/renderPptx/renderPptx.d.ts.map +1 -1
  33. package/dist/renderPptx/renderPptx.js +15 -2
  34. package/dist/types.d.ts +23 -0
  35. package/dist/types.d.ts.map +1 -1
  36. package/dist/types.js +12 -1
  37. package/package.json +4 -4
@@ -0,0 +1,53 @@
1
+ /**
2
+ * pptxtojsonのテキスト要素はHTML形式でスタイル情報を含んでいる
3
+ * このモジュールはHTMLからテキストとスタイル情報を抽出する
4
+ */
5
+ /**
6
+ * HTMLコンテンツからプレーンテキストを抽出
7
+ * <p>タグは改行、<br>は改行、それ以外のタグは除去
8
+ */
9
+ export function extractPlainText(html) {
10
+ return html
11
+ .replace(/<br\s*\/?>/gi, "\n")
12
+ .replace(/<\/p>/gi, "\n")
13
+ .replace(/<[^>]+>/g, "")
14
+ .replace(/&nbsp;/gi, " ")
15
+ .replace(/&lt;/gi, "<")
16
+ .replace(/&gt;/gi, ">")
17
+ .replace(/&amp;/gi, "&")
18
+ .replace(/&quot;/gi, '"')
19
+ .trim();
20
+ }
21
+ /**
22
+ * HTMLのstyle属性からスタイル情報を抽出
23
+ * 最初に見つかったスタイルを使用(複数スタイルの場合は最初のもの)
24
+ */
25
+ export function extractStyles(html) {
26
+ const result = {};
27
+ // font-size: Npt
28
+ const fontSizeMatch = html.match(/font-size:\s*(\d+(?:\.\d+)?)pt/i);
29
+ if (fontSizeMatch) {
30
+ result.fontSize = parseFloat(fontSizeMatch[1]);
31
+ }
32
+ // color: #XXXXXX or rgb(...)
33
+ const colorMatch = html.match(/(?:^|[^-])color:\s*(#[0-9A-Fa-f]{6})/i);
34
+ if (colorMatch) {
35
+ result.color = colorMatch[1];
36
+ }
37
+ // font-weight: bold
38
+ const boldMatch = html.match(/font-weight:\s*bold/i);
39
+ if (boldMatch) {
40
+ result.bold = true;
41
+ }
42
+ // text-align: left|center|right
43
+ const textAlignMatch = html.match(/text-align:\s*(left|center|right)/i);
44
+ if (textAlignMatch) {
45
+ result.textAlign = textAlignMatch[1];
46
+ }
47
+ // font-family
48
+ const fontFamilyMatch = html.match(/font-family:\s*["']?([^;"']+)/i);
49
+ if (fontFamilyMatch) {
50
+ result.fontFamily = fontFamilyMatch[1].trim();
51
+ }
52
+ return result;
53
+ }
@@ -0,0 +1,15 @@
1
+ import type { POMNode } from "../types";
2
+ export type { Slide, Element, BaseElement, Text, Image, Shape, Table, TableCell, Chart, CommonChart, ScatterChart, ChartItem, ChartValue, ChartType, Fill, ColorFill, ImageFill, GradientFill, PatternFill, Shadow, Border, Group, Diagram, Video, Audio, Math, } from "pptxtojson";
3
+ export type ParsedPptx = {
4
+ slides: POMNode[];
5
+ images: Map<string, Uint8Array>;
6
+ metadata: {
7
+ slideWidth: number;
8
+ slideHeight: number;
9
+ };
10
+ };
11
+ export type ParsePptxOptions = {
12
+ slideFactor?: number;
13
+ fontsizeFactor?: number;
14
+ };
15
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/parsePptx/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,YAAY,EACV,KAAK,EACL,OAAO,EACP,WAAW,EACX,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,SAAS,EACT,KAAK,EACL,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,SAAS,EACT,IAAI,EACJ,SAAS,EACT,SAAS,EACT,YAAY,EACZ,WAAW,EACX,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACP,KAAK,EACL,KAAK,EACL,IAAI,GACL,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAChC,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ /**
2
+ * ポイント(pt)からピクセル(px)への変換
3
+ * pptxtojsonはpt単位で出力する
4
+ * 変換式: pt × 4/3 = px (96 DPI基準)
5
+ */
6
+ export declare function ptToPx(pt: number): number;
7
+ /**
8
+ * カラーコードの正規化
9
+ * "#FF0000" → "FF0000"
10
+ * pomでは#なしの16進数カラーコードを使用する
11
+ */
12
+ export declare function normalizeColor(color: string): string;
13
+ //# sourceMappingURL=units.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"units.d.ts","sourceRoot":"","sources":["../../src/parsePptx/units.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKpD"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * ポイント(pt)からピクセル(px)への変換
3
+ * pptxtojsonはpt単位で出力する
4
+ * 変換式: pt × 4/3 = px (96 DPI基準)
5
+ */
6
+ export function ptToPx(pt) {
7
+ return pt * (4 / 3);
8
+ }
9
+ /**
10
+ * カラーコードの正規化
11
+ * "#FF0000" → "FF0000"
12
+ * pomでは#なしの16進数カラーコードを使用する
13
+ */
14
+ export function normalizeColor(color) {
15
+ if (color.startsWith("#")) {
16
+ return color.slice(1).toUpperCase();
17
+ }
18
+ return color.toUpperCase();
19
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"renderPptx.d.ts","sourceRoot":"","sources":["../../src/renderPptx/renderPptx.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,aAAa,MAAM,WAAW,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAK/C,KAAK,OAAO,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,OAAO,iBAqNnE"}
1
+ {"version":3,"file":"renderPptx.d.ts","sourceRoot":"","sources":["../../src/renderPptx/renderPptx.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,aAAa,MAAM,WAAW,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAK/C,KAAK,OAAO,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,OAAO,iBAqOnE"}
@@ -20,7 +20,7 @@ export function renderPptx(pages, slidePx) {
20
20
  for (const data of pages) {
21
21
  const slide = pptx.addSlide();
22
22
  function renderBackgroundAndBorder(node) {
23
- const { backgroundColor, border } = node;
23
+ const { backgroundColor, border, borderRadius } = node;
24
24
  const hasBackground = Boolean(backgroundColor);
25
25
  const hasBorder = Boolean(border &&
26
26
  (border.color !== undefined ||
@@ -39,6 +39,14 @@ export function renderPptx(pages, slidePx) {
39
39
  dashType: border?.dashType,
40
40
  }
41
41
  : { type: "none" };
42
+ // borderRadius がある場合は roundRect を使用し、rectRadius を計算
43
+ const shapeType = borderRadius
44
+ ? pptx.ShapeType.roundRect
45
+ : pptx.ShapeType.rect;
46
+ // px を 0-1 の正規化値に変換
47
+ const rectRadius = borderRadius
48
+ ? Math.min((borderRadius / Math.min(node.w, node.h)) * 2, 1)
49
+ : undefined;
42
50
  const shapeOptions = {
43
51
  x: pxToIn(node.x),
44
52
  y: pxToIn(node.y),
@@ -46,8 +54,9 @@ export function renderPptx(pages, slidePx) {
46
54
  h: pxToIn(node.h),
47
55
  fill,
48
56
  line,
57
+ rectRadius,
49
58
  };
50
- slide.addShape(pptx.ShapeType.rect, shapeOptions);
59
+ slide.addShape(shapeType, shapeOptions);
51
60
  }
52
61
  /**
53
62
  * node をスライドにレンダリングする
@@ -185,6 +194,10 @@ export function renderPptx(pages, slidePx) {
185
194
  title: node.title,
186
195
  chartColors: node.chartColors,
187
196
  };
197
+ // radar専用オプション
198
+ if (node.chartType === "radar" && node.radarStyle) {
199
+ chartOptions.radarStyle = node.radarStyle;
200
+ }
188
201
  slide.addChart(node.chartType, chartData, chartOptions);
189
202
  break;
190
203
  }
package/dist/types.d.ts CHANGED
@@ -329,6 +329,7 @@ declare const basePOMNodeSchema: z.ZodObject<{
329
329
  sysDot: "sysDot";
330
330
  }>>;
331
331
  }, z.core.$strip>>;
332
+ borderRadius: z.ZodOptional<z.ZodNumber>;
332
333
  }, z.core.$strip>;
333
334
  type BasePOMNode = z.infer<typeof basePOMNodeSchema>;
334
335
  export declare const textNodeSchema: z.ZodObject<{
@@ -360,6 +361,7 @@ export declare const textNodeSchema: z.ZodObject<{
360
361
  sysDot: "sysDot";
361
362
  }>>;
362
363
  }, z.core.$strip>>;
364
+ borderRadius: z.ZodOptional<z.ZodNumber>;
363
365
  type: z.ZodLiteral<"text">;
364
366
  text: z.ZodString;
365
367
  fontPx: z.ZodOptional<z.ZodNumber>;
@@ -428,6 +430,7 @@ export declare const imageNodeSchema: z.ZodObject<{
428
430
  sysDot: "sysDot";
429
431
  }>>;
430
432
  }, z.core.$strip>>;
433
+ borderRadius: z.ZodOptional<z.ZodNumber>;
431
434
  type: z.ZodLiteral<"image">;
432
435
  src: z.ZodString;
433
436
  }, z.core.$strip>;
@@ -490,6 +493,7 @@ export declare const tableNodeSchema: z.ZodObject<{
490
493
  sysDot: "sysDot";
491
494
  }>>;
492
495
  }, z.core.$strip>>;
496
+ borderRadius: z.ZodOptional<z.ZodNumber>;
493
497
  type: z.ZodLiteral<"table">;
494
498
  columns: z.ZodArray<z.ZodObject<{
495
499
  width: z.ZodOptional<z.ZodNumber>;
@@ -540,6 +544,7 @@ export declare const shapeNodeSchema: z.ZodObject<{
540
544
  sysDot: "sysDot";
541
545
  }>>;
542
546
  }, z.core.$strip>>;
547
+ borderRadius: z.ZodOptional<z.ZodNumber>;
543
548
  type: z.ZodLiteral<"shape">;
544
549
  shapeType: z.ZodEnum<{
545
550
  accentBorderCallout1: "accentBorderCallout1";
@@ -764,6 +769,14 @@ export declare const chartTypeSchema: z.ZodEnum<{
764
769
  line: "line";
765
770
  pie: "pie";
766
771
  bar: "bar";
772
+ area: "area";
773
+ doughnut: "doughnut";
774
+ radar: "radar";
775
+ }>;
776
+ export declare const radarStyleSchema: z.ZodEnum<{
777
+ standard: "standard";
778
+ marker: "marker";
779
+ filled: "filled";
767
780
  }>;
768
781
  export declare const chartDataSchema: z.ZodObject<{
769
782
  name: z.ZodOptional<z.ZodString>;
@@ -799,11 +812,15 @@ export declare const chartNodeSchema: z.ZodObject<{
799
812
  sysDot: "sysDot";
800
813
  }>>;
801
814
  }, z.core.$strip>>;
815
+ borderRadius: z.ZodOptional<z.ZodNumber>;
802
816
  type: z.ZodLiteral<"chart">;
803
817
  chartType: z.ZodEnum<{
804
818
  line: "line";
805
819
  pie: "pie";
806
820
  bar: "bar";
821
+ area: "area";
822
+ doughnut: "doughnut";
823
+ radar: "radar";
807
824
  }>;
808
825
  data: z.ZodArray<z.ZodObject<{
809
826
  name: z.ZodOptional<z.ZodString>;
@@ -814,6 +831,11 @@ export declare const chartNodeSchema: z.ZodObject<{
814
831
  showTitle: z.ZodOptional<z.ZodBoolean>;
815
832
  title: z.ZodOptional<z.ZodString>;
816
833
  chartColors: z.ZodOptional<z.ZodArray<z.ZodString>>;
834
+ radarStyle: z.ZodOptional<z.ZodEnum<{
835
+ standard: "standard";
836
+ marker: "marker";
837
+ filled: "filled";
838
+ }>>;
817
839
  }, z.core.$strip>;
818
840
  export type TextNode = z.infer<typeof textNodeSchema>;
819
841
  export type ImageNode = z.infer<typeof imageNodeSchema>;
@@ -825,6 +847,7 @@ export type ShapeNode = z.infer<typeof shapeNodeSchema>;
825
847
  export type ChartType = z.infer<typeof chartTypeSchema>;
826
848
  export type ChartData = z.infer<typeof chartDataSchema>;
827
849
  export type ChartNode = z.infer<typeof chartNodeSchema>;
850
+ export type RadarStyle = z.infer<typeof radarStyleSchema>;
828
851
  export type BoxNode = BasePOMNode & {
829
852
  type: "box";
830
853
  children: POMNode;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -267,6 +267,7 @@ const basePOMNodeSchema = z.object({
267
267
  padding: paddingSchema.optional(),
268
268
  backgroundColor: z.string().optional(),
269
269
  border: borderStyleSchema.optional(),
270
+ borderRadius: z.number().optional(),
270
271
  });
271
272
  // ===== Non-recursive Node Types =====
272
273
  export const textNodeSchema = basePOMNodeSchema.extend({
@@ -317,7 +318,15 @@ export const shapeNodeSchema = basePOMNodeSchema.extend({
317
318
  alignText: z.enum(["left", "center", "right"]).optional(),
318
319
  bold: z.boolean().optional(),
319
320
  });
320
- export const chartTypeSchema = z.enum(["bar", "line", "pie"]);
321
+ export const chartTypeSchema = z.enum([
322
+ "bar",
323
+ "line",
324
+ "pie",
325
+ "area",
326
+ "doughnut",
327
+ "radar",
328
+ ]);
329
+ export const radarStyleSchema = z.enum(["standard", "marker", "filled"]);
321
330
  export const chartDataSchema = z.object({
322
331
  name: z.string().optional(),
323
332
  labels: z.array(z.string()),
@@ -331,6 +340,8 @@ export const chartNodeSchema = basePOMNodeSchema.extend({
331
340
  showTitle: z.boolean().optional(),
332
341
  title: z.string().optional(),
333
342
  chartColors: z.array(z.string()).optional(),
343
+ // radar専用オプション
344
+ radarStyle: radarStyleSchema.optional(),
334
345
  });
335
346
  // Define schemas using passthrough to maintain type safety
336
347
  const boxNodeSchemaBase = basePOMNodeSchema.extend({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hirokisakabe/pom",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "description": "PowerPoint Object Model - A declarative TypeScript library for creating PowerPoint presentations",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -56,10 +56,10 @@
56
56
  "test:run": "vitest run",
57
57
  "vrt": "tsx vrt/runVrt.ts",
58
58
  "vrt:update": "tsx vrt/runVrt.ts --update",
59
- "vrt:docker": "docker compose run --rm vrt",
60
- "vrt:docker:update": "docker compose run --rm vrt-update",
59
+ "vrt:docker": "docker compose build vrt && docker compose run --rm vrt",
60
+ "vrt:docker:update": "docker compose build vrt-update && docker compose run --rm vrt-update",
61
61
  "preview": "tsx preview/lib/previewPptx.ts",
62
- "preview:docker": "docker compose run --rm preview"
62
+ "preview:docker": "docker compose build preview && docker compose run --rm preview"
63
63
  },
64
64
  "devDependencies": {
65
65
  "@eslint/js": "^9.39.1",