@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.
- package/README.md +198 -177
- package/dist/inputSchema.d.ts +14 -0
- package/dist/inputSchema.d.ts.map +1 -1
- package/dist/inputSchema.js +4 -1
- package/dist/parsePptx/convertChart.d.ts +8 -0
- package/dist/parsePptx/convertChart.d.ts.map +1 -0
- package/dist/parsePptx/convertChart.js +78 -0
- package/dist/parsePptx/convertImage.d.ts +8 -0
- package/dist/parsePptx/convertImage.d.ts.map +1 -0
- package/dist/parsePptx/convertImage.js +13 -0
- package/dist/parsePptx/convertShape.d.ts +7 -0
- package/dist/parsePptx/convertShape.d.ts.map +1 -0
- package/dist/parsePptx/convertShape.js +137 -0
- package/dist/parsePptx/convertTable.d.ts +7 -0
- package/dist/parsePptx/convertTable.d.ts.map +1 -0
- package/dist/parsePptx/convertTable.js +46 -0
- package/dist/parsePptx/convertText.d.ts +7 -0
- package/dist/parsePptx/convertText.d.ts.map +1 -0
- package/dist/parsePptx/convertText.js +32 -0
- package/dist/parsePptx/index.d.ts +23 -0
- package/dist/parsePptx/index.d.ts.map +1 -0
- package/dist/parsePptx/index.js +114 -0
- package/dist/parsePptx/parseHtml.d.ts +22 -0
- package/dist/parsePptx/parseHtml.d.ts.map +1 -0
- package/dist/parsePptx/parseHtml.js +53 -0
- package/dist/parsePptx/types.d.ts +15 -0
- package/dist/parsePptx/types.d.ts.map +1 -0
- package/dist/parsePptx/types.js +1 -0
- package/dist/parsePptx/units.d.ts +13 -0
- package/dist/parsePptx/units.d.ts.map +1 -0
- package/dist/parsePptx/units.js +19 -0
- package/dist/renderPptx/renderPptx.d.ts.map +1 -1
- package/dist/renderPptx/renderPptx.js +15 -2
- package/dist/types.d.ts +23 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +12 -1
- 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(/ /gi, " ")
|
|
15
|
+
.replace(/</gi, "<")
|
|
16
|
+
.replace(/>/gi, ">")
|
|
17
|
+
.replace(/&/gi, "&")
|
|
18
|
+
.replace(/"/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,
|
|
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(
|
|
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;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,YAAY,sEAIvB,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;mBAQxB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;EAS3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;iBAI5B,CAAC;AAEH,eAAO,MAAM,eAAe;;;iBAG1B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;iBAO5B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;EAiBjC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;iBAK9B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;EAAgD,CAAC;AAE9E,eAAO,MAAM,oBAAoB;;;;;;;EAO/B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;EAA4B,CAAC;AAE7D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmL1B,CAAC;AAGH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAGxD,QAAA,MAAM,iBAAiB
|
|
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([
|
|
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.
|
|
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",
|