@nahisaho/katashiro-generator 0.2.2 → 0.2.4

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 (93) hide show
  1. package/dist/audio/AudioGenerator.d.ts +82 -0
  2. package/dist/audio/AudioGenerator.d.ts.map +1 -0
  3. package/dist/audio/AudioGenerator.js +561 -0
  4. package/dist/audio/AudioGenerator.js.map +1 -0
  5. package/dist/audio/SSMLBuilder.d.ts +114 -0
  6. package/dist/audio/SSMLBuilder.d.ts.map +1 -0
  7. package/dist/audio/SSMLBuilder.js +269 -0
  8. package/dist/audio/SSMLBuilder.js.map +1 -0
  9. package/dist/audio/index.d.ts +10 -0
  10. package/dist/audio/index.d.ts.map +1 -0
  11. package/dist/audio/index.js +12 -0
  12. package/dist/audio/index.js.map +1 -0
  13. package/dist/audio/types.d.ts +322 -0
  14. package/dist/audio/types.d.ts.map +1 -0
  15. package/dist/audio/types.js +102 -0
  16. package/dist/audio/types.js.map +1 -0
  17. package/dist/chart/ChartGenerator.d.ts +120 -0
  18. package/dist/chart/ChartGenerator.d.ts.map +1 -0
  19. package/dist/chart/ChartGenerator.js +328 -0
  20. package/dist/chart/ChartGenerator.js.map +1 -0
  21. package/dist/chart/DiagramGenerator.d.ts +141 -0
  22. package/dist/chart/DiagramGenerator.d.ts.map +1 -0
  23. package/dist/chart/DiagramGenerator.js +350 -0
  24. package/dist/chart/DiagramGenerator.js.map +1 -0
  25. package/dist/chart/MermaidBuilder.d.ts +291 -0
  26. package/dist/chart/MermaidBuilder.d.ts.map +1 -0
  27. package/dist/chart/MermaidBuilder.js +429 -0
  28. package/dist/chart/MermaidBuilder.js.map +1 -0
  29. package/dist/chart/SvgBuilder.d.ts +103 -0
  30. package/dist/chart/SvgBuilder.d.ts.map +1 -0
  31. package/dist/chart/SvgBuilder.js +503 -0
  32. package/dist/chart/SvgBuilder.js.map +1 -0
  33. package/dist/chart/index.d.ts +12 -0
  34. package/dist/chart/index.d.ts.map +1 -0
  35. package/dist/chart/index.js +13 -0
  36. package/dist/chart/index.js.map +1 -0
  37. package/dist/chart/types.d.ts +244 -0
  38. package/dist/chart/types.d.ts.map +1 -0
  39. package/dist/chart/types.js +107 -0
  40. package/dist/chart/types.js.map +1 -0
  41. package/dist/image/ImageGenerator.d.ts +145 -0
  42. package/dist/image/ImageGenerator.d.ts.map +1 -0
  43. package/dist/image/ImageGenerator.js +402 -0
  44. package/dist/image/ImageGenerator.js.map +1 -0
  45. package/dist/image/PromptOptimizer.d.ts +73 -0
  46. package/dist/image/PromptOptimizer.d.ts.map +1 -0
  47. package/dist/image/PromptOptimizer.js +295 -0
  48. package/dist/image/PromptOptimizer.js.map +1 -0
  49. package/dist/image/index.d.ts +10 -0
  50. package/dist/image/index.d.ts.map +1 -0
  51. package/dist/image/index.js +12 -0
  52. package/dist/image/index.js.map +1 -0
  53. package/dist/image/types.d.ts +237 -0
  54. package/dist/image/types.d.ts.map +1 -0
  55. package/dist/image/types.js +97 -0
  56. package/dist/image/types.js.map +1 -0
  57. package/dist/index.d.ts +5 -0
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +40 -0
  60. package/dist/index.js.map +1 -1
  61. package/dist/ogp/OGPGenerator.d.ts +97 -0
  62. package/dist/ogp/OGPGenerator.d.ts.map +1 -0
  63. package/dist/ogp/OGPGenerator.js +245 -0
  64. package/dist/ogp/OGPGenerator.js.map +1 -0
  65. package/dist/ogp/OGPSvgBuilder.d.ts +95 -0
  66. package/dist/ogp/OGPSvgBuilder.d.ts.map +1 -0
  67. package/dist/ogp/OGPSvgBuilder.js +383 -0
  68. package/dist/ogp/OGPSvgBuilder.js.map +1 -0
  69. package/dist/ogp/index.d.ts +10 -0
  70. package/dist/ogp/index.d.ts.map +1 -0
  71. package/dist/ogp/index.js +12 -0
  72. package/dist/ogp/index.js.map +1 -0
  73. package/dist/ogp/types.d.ts +183 -0
  74. package/dist/ogp/types.d.ts.map +1 -0
  75. package/dist/ogp/types.js +204 -0
  76. package/dist/ogp/types.js.map +1 -0
  77. package/dist/video/FrameComposer.d.ts +95 -0
  78. package/dist/video/FrameComposer.d.ts.map +1 -0
  79. package/dist/video/FrameComposer.js +325 -0
  80. package/dist/video/FrameComposer.js.map +1 -0
  81. package/dist/video/VideoGenerator.d.ts +82 -0
  82. package/dist/video/VideoGenerator.d.ts.map +1 -0
  83. package/dist/video/VideoGenerator.js +325 -0
  84. package/dist/video/VideoGenerator.js.map +1 -0
  85. package/dist/video/index.d.ts +10 -0
  86. package/dist/video/index.d.ts.map +1 -0
  87. package/dist/video/index.js +12 -0
  88. package/dist/video/index.js.map +1 -0
  89. package/dist/video/types.d.ts +366 -0
  90. package/dist/video/types.d.ts.map +1 -0
  91. package/dist/video/types.js +111 -0
  92. package/dist/video/types.js.map +1 -0
  93. package/package.json +1 -1
@@ -0,0 +1,328 @@
1
+ /**
2
+ * ChartGenerator
3
+ * SVGチャートの生成
4
+ * REQ-MEDIA-002-001: チャート生成
5
+ */
6
+ import { ok, err } from '@nahisaho/katashiro-core';
7
+ import { DEFAULT_CHART_CONFIG, ChartGeneratorError, CHART_ERROR_CODES, } from './types.js';
8
+ import { SvgBuilder } from './SvgBuilder.js';
9
+ /**
10
+ * チャートジェネレータークラス
11
+ * 各種チャートをSVG形式で生成
12
+ */
13
+ export class ChartGenerator {
14
+ config;
15
+ constructor(config) {
16
+ this.config = { ...DEFAULT_CHART_CONFIG, ...config };
17
+ }
18
+ /**
19
+ * チャートを生成(IChartGenerator実装)
20
+ * @param data チャートデータ
21
+ * @param config チャート設定
22
+ * @returns 生成結果
23
+ */
24
+ async generate(data, config) {
25
+ try {
26
+ const chartData = this.validateData(data);
27
+ const options = {
28
+ type: this.mapChartType(config.type),
29
+ title: config.title,
30
+ xAxis: config.xLabel ? { title: config.xLabel } : undefined,
31
+ yAxis: config.yLabel ? { title: config.yLabel } : undefined,
32
+ colors: config.colors,
33
+ width: config.width,
34
+ height: config.height,
35
+ };
36
+ const output = await this.generateChart(chartData, options);
37
+ return ok(output.content);
38
+ }
39
+ catch (error) {
40
+ return err(error instanceof Error
41
+ ? error
42
+ : new ChartGeneratorError(CHART_ERROR_CODES.RENDER_FAILED, String(error)));
43
+ }
44
+ }
45
+ /**
46
+ * チャートを生成(拡張版)
47
+ * @param data チャートデータ
48
+ * @param options チャートオプション
49
+ * @param format 出力フォーマット
50
+ * @returns チャート出力
51
+ */
52
+ async generateChart(data, options, format = 'svg') {
53
+ this.validateChartData(data);
54
+ this.validateOptions(options);
55
+ const builder = new SvgBuilder(options, this.config);
56
+ builder.addHeader();
57
+ builder.addTitle();
58
+ switch (options.type) {
59
+ case 'bar':
60
+ builder.drawBarChart(data);
61
+ break;
62
+ case 'line':
63
+ builder.drawLineChart(data);
64
+ break;
65
+ case 'pie':
66
+ builder.drawPieChart(data, false);
67
+ break;
68
+ case 'doughnut':
69
+ builder.drawPieChart(data, true);
70
+ break;
71
+ case 'scatter':
72
+ builder.drawScatterChart(data);
73
+ break;
74
+ case 'area':
75
+ builder.drawAreaChart(data);
76
+ break;
77
+ case 'radar':
78
+ builder.drawRadarChart(data);
79
+ break;
80
+ case 'bubble':
81
+ builder.drawScatterChart(data);
82
+ break;
83
+ default:
84
+ throw new ChartGeneratorError(CHART_ERROR_CODES.INVALID_TYPE, `Unsupported chart type: ${options.type}`);
85
+ }
86
+ builder.addLegend(data);
87
+ const svg = builder.build();
88
+ // PNG変換が必要な場合
89
+ if (format === 'png') {
90
+ const pngBuffer = await this.convertToPng(svg, options);
91
+ return {
92
+ format: 'png',
93
+ content: pngBuffer,
94
+ width: options.width ?? this.config.defaultWidth,
95
+ height: options.height ?? this.config.defaultHeight,
96
+ metadata: {
97
+ type: options.type,
98
+ generatedAt: new Date(),
99
+ library: 'katashiro-chart',
100
+ title: options.title,
101
+ },
102
+ };
103
+ }
104
+ return {
105
+ format: 'svg',
106
+ content: svg,
107
+ width: options.width ?? this.config.defaultWidth,
108
+ height: options.height ?? this.config.defaultHeight,
109
+ metadata: {
110
+ type: options.type,
111
+ generatedAt: new Date(),
112
+ library: 'katashiro-chart',
113
+ title: options.title,
114
+ },
115
+ };
116
+ }
117
+ /**
118
+ * 棒グラフを生成
119
+ */
120
+ async generateBarChart(labels, series, options) {
121
+ const chartData = {
122
+ labels,
123
+ series: series.map(s => ({
124
+ name: s.name,
125
+ data: s.data,
126
+ color: s.color,
127
+ })),
128
+ };
129
+ return this.generateChart(chartData, {
130
+ type: 'bar',
131
+ ...options,
132
+ });
133
+ }
134
+ /**
135
+ * 折れ線グラフを生成
136
+ */
137
+ async generateLineChart(labels, series, options) {
138
+ const chartData = {
139
+ labels,
140
+ series: series.map(s => ({
141
+ name: s.name,
142
+ data: s.data,
143
+ color: s.color,
144
+ style: s.style,
145
+ marker: 'circle',
146
+ })),
147
+ };
148
+ return this.generateChart(chartData, {
149
+ type: 'line',
150
+ ...options,
151
+ });
152
+ }
153
+ /**
154
+ * 円グラフを生成
155
+ */
156
+ async generatePieChart(data, options) {
157
+ const chartData = {
158
+ labels: data.map(d => d.label),
159
+ series: [
160
+ {
161
+ name: 'data',
162
+ data: data.map(d => ({
163
+ label: d.label,
164
+ value: d.value,
165
+ color: d.color,
166
+ })),
167
+ },
168
+ ],
169
+ };
170
+ return this.generateChart(chartData, {
171
+ type: options?.isDoughnut ? 'doughnut' : 'pie',
172
+ showValues: true,
173
+ ...options,
174
+ });
175
+ }
176
+ /**
177
+ * 散布図を生成
178
+ */
179
+ async generateScatterChart(series, options) {
180
+ const chartData = {
181
+ series: series.map(s => ({
182
+ name: s.name,
183
+ data: s.data.map(d => ({
184
+ label: String(d.x),
185
+ value: d.y,
186
+ value2: d.size,
187
+ })),
188
+ color: s.color,
189
+ })),
190
+ };
191
+ return this.generateChart(chartData, {
192
+ type: 'scatter',
193
+ ...options,
194
+ });
195
+ }
196
+ /**
197
+ * エリアチャートを生成
198
+ */
199
+ async generateAreaChart(labels, series, options) {
200
+ const chartData = {
201
+ labels,
202
+ series: series.map(s => ({
203
+ name: s.name,
204
+ data: s.data,
205
+ color: s.color,
206
+ })),
207
+ };
208
+ return this.generateChart(chartData, {
209
+ type: 'area',
210
+ ...options,
211
+ });
212
+ }
213
+ /**
214
+ * レーダーチャートを生成
215
+ */
216
+ async generateRadarChart(labels, series, options) {
217
+ const chartData = {
218
+ labels,
219
+ series: series.map(s => ({
220
+ name: s.name,
221
+ data: s.data,
222
+ color: s.color,
223
+ })),
224
+ };
225
+ return this.generateChart(chartData, {
226
+ type: 'radar',
227
+ ...options,
228
+ });
229
+ }
230
+ /**
231
+ * 複合チャートを生成
232
+ */
233
+ async generateComboChart(labels, barSeries, lineSeries, options) {
234
+ // 複合チャートはSVGを手動で構築
235
+ const barOptions = {
236
+ type: 'bar',
237
+ ...options,
238
+ };
239
+ const chartData = {
240
+ labels,
241
+ series: [
242
+ ...barSeries.map(s => ({ ...s, data: s.data })),
243
+ ...lineSeries.map(s => ({ ...s, data: s.data, style: 'solid' })),
244
+ ],
245
+ };
246
+ // TODO: 複合チャートの実装を改善
247
+ return this.generateChart(chartData, barOptions);
248
+ }
249
+ /**
250
+ * データの検証
251
+ */
252
+ validateData(data) {
253
+ if (!data || typeof data !== 'object') {
254
+ throw new ChartGeneratorError(CHART_ERROR_CODES.INVALID_DATA, 'Data must be an object');
255
+ }
256
+ const d = data;
257
+ if (!Array.isArray(d.series)) {
258
+ throw new ChartGeneratorError(CHART_ERROR_CODES.INVALID_DATA, 'Data must have a series array');
259
+ }
260
+ return data;
261
+ }
262
+ /**
263
+ * チャートデータの検証
264
+ */
265
+ validateChartData(data) {
266
+ if (!data.series || data.series.length === 0) {
267
+ throw new ChartGeneratorError(CHART_ERROR_CODES.INVALID_DATA, 'Chart data must have at least one series');
268
+ }
269
+ for (const series of data.series) {
270
+ if (!series.name) {
271
+ throw new ChartGeneratorError(CHART_ERROR_CODES.INVALID_DATA, 'Each series must have a name');
272
+ }
273
+ if (!series.data || !Array.isArray(series.data)) {
274
+ throw new ChartGeneratorError(CHART_ERROR_CODES.INVALID_DATA, `Series "${series.name}" must have a data array`);
275
+ }
276
+ }
277
+ }
278
+ /**
279
+ * オプションの検証
280
+ */
281
+ validateOptions(options) {
282
+ const validTypes = [
283
+ 'bar',
284
+ 'line',
285
+ 'pie',
286
+ 'doughnut',
287
+ 'scatter',
288
+ 'area',
289
+ 'radar',
290
+ 'bubble',
291
+ ];
292
+ if (!validTypes.includes(options.type)) {
293
+ throw new ChartGeneratorError(CHART_ERROR_CODES.INVALID_TYPE, `Invalid chart type: ${options.type}. Valid types: ${validTypes.join(', ')}`);
294
+ }
295
+ }
296
+ /**
297
+ * ChartConfig.typeをChartTypeにマップ
298
+ */
299
+ mapChartType(type) {
300
+ switch (type) {
301
+ case 'bar':
302
+ return 'bar';
303
+ case 'line':
304
+ return 'line';
305
+ case 'pie':
306
+ return 'pie';
307
+ case 'scatter':
308
+ return 'scatter';
309
+ case 'mermaid':
310
+ // Mermaidはダイアグラムなのでデフォルトで棒グラフ
311
+ return 'bar';
312
+ default:
313
+ return 'bar';
314
+ }
315
+ }
316
+ /**
317
+ * SVGをPNGに変換(Node.js環境用)
318
+ */
319
+ async convertToPng(_svg, options) {
320
+ // TODO: sharp等のライブラリを使用してPNG変換を実装
321
+ // 現時点ではプレースホルダー
322
+ const width = options.width ?? this.config.defaultWidth;
323
+ const height = options.height ?? this.config.defaultHeight;
324
+ // 空のPNGバッファを返す(実際の実装では変換が必要)
325
+ return Buffer.from(`PNG placeholder: ${width}x${height}`, 'utf-8');
326
+ }
327
+ }
328
+ //# sourceMappingURL=ChartGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartGenerator.js","sourceRoot":"","sources":["../../src/chart/ChartGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * DiagramGenerator
3
+ * Mermaidダイアグラムの生成
4
+ * REQ-MEDIA-002-002: ダイアグラム生成
5
+ */
6
+ import { type Result } from '@nahisaho/katashiro-core';
7
+ import type { DiagramOptions, DiagramOutput, DiagramType, OutputFormat } from './types.js';
8
+ import { type FlowchartData, type SequenceData, type ClassDiagramData, type GanttData } from './MermaidBuilder.js';
9
+ /**
10
+ * ダイアグラムジェネレータークラス
11
+ * Mermaidを使用して各種ダイアグラムを生成
12
+ */
13
+ export declare class DiagramGenerator {
14
+ private readonly mermaidBuilder;
15
+ private readonly defaultWidth;
16
+ private readonly defaultHeight;
17
+ constructor(options?: {
18
+ defaultWidth?: number;
19
+ defaultHeight?: number;
20
+ });
21
+ /**
22
+ * Mermaid定義からダイアグラムを生成
23
+ * @param definition Mermaid定義文字列
24
+ * @param options オプション
25
+ * @returns 生成結果
26
+ */
27
+ generate(definition: string, options?: DiagramOptions): Promise<Result<DiagramOutput, Error>>;
28
+ /**
29
+ * フローチャートを生成
30
+ */
31
+ generateFlowchart(data: FlowchartData, options?: DiagramOptions): Promise<Result<DiagramOutput, Error>>;
32
+ /**
33
+ * シーケンス図を生成
34
+ */
35
+ generateSequenceDiagram(data: SequenceData, options?: DiagramOptions): Promise<Result<DiagramOutput, Error>>;
36
+ /**
37
+ * クラス図を生成
38
+ */
39
+ generateClassDiagram(data: ClassDiagramData, options?: DiagramOptions): Promise<Result<DiagramOutput, Error>>;
40
+ /**
41
+ * 状態図を生成
42
+ */
43
+ generateStateDiagram(states: Array<{
44
+ id: string;
45
+ label?: string;
46
+ type?: 'start' | 'end' | 'choice' | 'fork' | 'join';
47
+ }>, transitions: Array<{
48
+ from: string;
49
+ to: string;
50
+ label?: string;
51
+ }>, options?: DiagramOptions): Promise<Result<DiagramOutput, Error>>;
52
+ /**
53
+ * ER図を生成
54
+ */
55
+ generateErDiagram(entities: Array<{
56
+ name: string;
57
+ attributes: Array<{
58
+ name: string;
59
+ type: string;
60
+ key?: 'PK' | 'FK' | 'UK';
61
+ }>;
62
+ }>, relationships: Array<{
63
+ from: string;
64
+ to: string;
65
+ relation: string;
66
+ fromCardinality: '|o' | '||' | '}o' | '}|';
67
+ toCardinality: 'o|' | '||' | 'o{' | '|{';
68
+ }>, options?: DiagramOptions): Promise<Result<DiagramOutput, Error>>;
69
+ /**
70
+ * ガントチャートを生成
71
+ */
72
+ generateGanttChart(data: GanttData, options?: DiagramOptions): Promise<Result<DiagramOutput, Error>>;
73
+ /**
74
+ * パイチャート(Mermaid版)を生成
75
+ */
76
+ generatePieChart(data: Array<{
77
+ label: string;
78
+ value: number;
79
+ }>, options?: DiagramOptions): Promise<Result<DiagramOutput, Error>>;
80
+ /**
81
+ * マインドマップを生成
82
+ */
83
+ generateMindmap(root: string, children: Array<{
84
+ text: string;
85
+ children?: Array<{
86
+ text: string;
87
+ children?: Array<{
88
+ text: string;
89
+ }>;
90
+ }>;
91
+ }>, options?: DiagramOptions): Promise<Result<DiagramOutput, Error>>;
92
+ /**
93
+ * タイムラインを生成
94
+ */
95
+ generateTimeline(title: string, sections: Array<{
96
+ period: string;
97
+ events: string[];
98
+ }>, options?: DiagramOptions): Promise<Result<DiagramOutput, Error>>;
99
+ /**
100
+ * Gitグラフを生成
101
+ */
102
+ generateGitGraph(commits: Array<{
103
+ id?: string;
104
+ type: 'commit' | 'branch' | 'checkout' | 'merge';
105
+ message?: string;
106
+ tag?: string;
107
+ branch?: string;
108
+ }>, options?: DiagramOptions): Promise<Result<DiagramOutput, Error>>;
109
+ /**
110
+ * ダイアグラムタイプを判定
111
+ */
112
+ detectDiagramType(definition: string): DiagramType;
113
+ /**
114
+ * Mermaid定義を検証
115
+ */
116
+ validateDefinition(definition: string): {
117
+ valid: boolean;
118
+ error?: string;
119
+ };
120
+ /**
121
+ * MermaidをSVGにレンダリング
122
+ */
123
+ private renderMermaid;
124
+ /**
125
+ * フローチャートデータの検証
126
+ */
127
+ private validateFlowchartData;
128
+ /**
129
+ * シーケンス図データの検証
130
+ */
131
+ private validateSequenceData;
132
+ /**
133
+ * クラス図データの検証
134
+ */
135
+ private validateClassDiagramData;
136
+ /**
137
+ * PNGフォーマットへの変換(未実装)
138
+ */
139
+ convertToPng(_diagramOutput: DiagramOutput, _format: OutputFormat): Promise<Buffer>;
140
+ }
141
+ //# sourceMappingURL=DiagramGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiagramGenerator.d.ts","sourceRoot":"","sources":["../../src/chart/DiagramGenerator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACf,MAAM,qBAAqB,CAAC;AAE7B;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;gBAE3B,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE;IAMvE;;;;;OAKG;IACG,QAAQ,CACZ,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IA0CxC;;OAEG;IACG,iBAAiB,CACrB,IAAI,EAAE,aAAa,EACnB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAiBxC;;OAEG;IACG,uBAAuB,CAC3B,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAiBxC;;OAEG;IACG,oBAAoB,CACxB,IAAI,EAAE,gBAAgB,EACtB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAiBxC;;OAEG;IACG,oBAAoB,CACxB,MAAM,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;KACrD,CAAC,EACF,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EAChE,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IA2BxC;;OAEG;IACG,iBAAiB,CACrB,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;SAAE,CAAC,CAAC;KAC7E,CAAC,EACF,aAAa,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QAC3C,aAAa,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;KAC1C,CAAC,EACF,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IA2BxC;;OAEG;IACG,kBAAkB,CACtB,IAAI,EAAE,SAAS,EACf,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAuBxC;;OAEG;IACG,gBAAgB,CACpB,IAAI,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAC7C,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAuBxC;;OAEG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC,CAAA;SAAE,CAAC,CAAC;KACxE,CAAC,EACF,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAuBxC;;OAEG;IACG,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,EACrD,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAuBxC;;OAEG;IACG,gBAAgB,CACpB,OAAO,EAAE,KAAK,CAAC;QACb,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;QACjD,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,EACF,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAuBxC;;OAEG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW;IAIlD;;OAEG;IACH,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAyC1E;;OAEG;YACW,aAAa;IA4B3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA0B7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA0B5B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA0BhC;;OAEG;IACG,YAAY,CAChB,cAAc,EAAE,aAAa,EAC7B,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,MAAM,CAAC;CAOnB"}