@industry-theme/principal-view-panels 0.1.54 → 0.1.56
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/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/panels/CanvasDetailPanel.d.ts +31 -0
- package/dist/panels/CanvasDetailPanel.d.ts.map +1 -0
- package/dist/panels/CanvasDetailPanel.stories.d.ts +50 -0
- package/dist/panels/CanvasDetailPanel.stories.d.ts.map +1 -0
- package/dist/panels/CanvasListPanel.d.ts +13 -0
- package/dist/panels/CanvasListPanel.d.ts.map +1 -0
- package/dist/panels/CanvasListPanel.stories.d.ts +47 -0
- package/dist/panels/CanvasListPanel.stories.d.ts.map +1 -0
- package/dist/panels/canvas-list/components/CanvasCard.d.ts +13 -0
- package/dist/panels/canvas-list/components/CanvasCard.d.ts.map +1 -0
- package/dist/panels/canvas-list/hooks/useCanvasData.d.ts +17 -0
- package/dist/panels/canvas-list/hooks/useCanvasData.d.ts.map +1 -0
- package/dist/panels/execution-viewer/NarrativeRenderer.d.ts.map +1 -1
- package/dist/panels/execution-viewer/NarrativeTemplatePanel.d.ts.map +1 -1
- package/dist/panels.bundle.js +1078 -568
- package/dist/panels.bundle.js.map +1 -1
- package/package.json +1 -1
- package/dist/panels/ExecutionViewerPanel.d.ts +0 -11
- package/dist/panels/ExecutionViewerPanel.d.ts.map +0 -1
- package/dist/panels/ExecutionViewerPanel.stories.d.ts +0 -77
- package/dist/panels/ExecutionViewerPanel.stories.d.ts.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,9 @@ import type { PanelDefinition } from './types';
|
|
|
2
2
|
export { EventControllerPanel } from './panels/EventControllerPanel';
|
|
3
3
|
export type { EventControllerPanelProps, PlaybackState, PlaybackStatus } from './panels/EventControllerPanel';
|
|
4
4
|
export { TraceViewerPanel } from './panels/TraceViewerPanel';
|
|
5
|
-
export {
|
|
5
|
+
export { CanvasDetailPanel } from './panels/CanvasDetailPanel';
|
|
6
|
+
export type { CanvasDetailPanelProps } from './panels/CanvasDetailPanel';
|
|
7
|
+
export { CanvasListPanel } from './panels/CanvasListPanel';
|
|
6
8
|
export { PanelFileSystemAdapter } from './adapters/PanelFileSystemAdapter';
|
|
7
9
|
export type { FileTreeEntry, PanelFileSystemAdapterOptions } from './adapters/PanelFileSystemAdapter';
|
|
8
10
|
/**
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,SAAS,CAAC;AAIlE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,YAAY,EAAE,yBAAyB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE9G,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,YAAY,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,YAAY,EAAE,aAAa,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAEtG;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,eAAe,EA6HnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,qBAGzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,qBAG3B,CAAC;AAEF;;;GAGG;AACH,OAAO,EACL,uBAAuB,EACvB,+BAA+B,EAC/B,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PanelComponentProps } from '@principal-ade/panel-framework-core';
|
|
3
|
+
export type ViewMode = 'raw' | 'narrative';
|
|
4
|
+
/**
|
|
5
|
+
* Props for CanvasDetailPanel
|
|
6
|
+
*/
|
|
7
|
+
export interface CanvasDetailPanelProps extends PanelComponentProps {
|
|
8
|
+
/**
|
|
9
|
+
* Optional canvas ID to display.
|
|
10
|
+
* If provided, this takes precedence over events.
|
|
11
|
+
* This allows the host to control panel state via props instead of events.
|
|
12
|
+
*/
|
|
13
|
+
selectedCanvasId?: string | null;
|
|
14
|
+
/**
|
|
15
|
+
* Optional canvas path to load.
|
|
16
|
+
* If provided along with selectedCanvasId, the panel will load this canvas immediately.
|
|
17
|
+
*/
|
|
18
|
+
canvasPath?: string | null;
|
|
19
|
+
/**
|
|
20
|
+
* Optional canvas name for display.
|
|
21
|
+
*/
|
|
22
|
+
canvasName?: string | null;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Canvas Detail Panel
|
|
26
|
+
*
|
|
27
|
+
* Displays canvas details with execution artifacts, narrative templates, and playback controls.
|
|
28
|
+
* Can be controlled via props (selectedCanvasId) or events.
|
|
29
|
+
*/
|
|
30
|
+
export declare const CanvasDetailPanel: React.FC<CanvasDetailPanelProps>;
|
|
31
|
+
//# sourceMappingURL=CanvasDetailPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasDetailPanel.d.ts","sourceRoot":"","sources":["../../src/panels/CanvasDetailPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAuB/E,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,WAAW,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AA2BD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAw8B9D,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* CanvasDetailPanel Component
|
|
5
|
+
*
|
|
6
|
+
* Visualizes execution artifacts (test runs) overlaid on canvas diagrams.
|
|
7
|
+
* Canvas files are selected from the CanvasListPanel via events.
|
|
8
|
+
*
|
|
9
|
+
* Features:
|
|
10
|
+
* - Narrative template visualization with scenario mapping
|
|
11
|
+
* - Execution artifact playback with timeline controls
|
|
12
|
+
* - Side-by-side canvas and event visualization
|
|
13
|
+
* - Metadata display (spans, events, framework, status)
|
|
14
|
+
*/
|
|
15
|
+
declare const meta: {
|
|
16
|
+
title: string;
|
|
17
|
+
component: React.FC<import("./CanvasDetailPanel").CanvasDetailPanelProps>;
|
|
18
|
+
parameters: {
|
|
19
|
+
layout: string;
|
|
20
|
+
docs: {
|
|
21
|
+
description: {
|
|
22
|
+
component: string;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
tags: string[];
|
|
27
|
+
decorators: ((Story: import("storybook/internal/csf").PartialStoryFn<import("@storybook/react").ReactRenderer, {
|
|
28
|
+
selectedCanvasId?: string | null | undefined;
|
|
29
|
+
canvasPath?: string | null | undefined;
|
|
30
|
+
canvasName?: string | null | undefined;
|
|
31
|
+
context: import("@principal-ade/panel-framework-core").PanelContextValue;
|
|
32
|
+
actions: import("@principal-ade/panel-framework-core").PanelActions;
|
|
33
|
+
events: import("@principal-ade/panel-framework-core").PanelEventEmitter;
|
|
34
|
+
}>) => import("react/jsx-runtime").JSX.Element)[];
|
|
35
|
+
};
|
|
36
|
+
export default meta;
|
|
37
|
+
type Story = StoryObj<typeof meta>;
|
|
38
|
+
/**
|
|
39
|
+
* Step 2: Canvas + Narrative Template
|
|
40
|
+
* Adds narrative template but no execution data yet.
|
|
41
|
+
* Shows scenario mapping without actual execution runs.
|
|
42
|
+
*/
|
|
43
|
+
export declare const ProgressiveStep2CanvasAndNarrative: Story;
|
|
44
|
+
/**
|
|
45
|
+
* Step 3: Canvas + Narrative + Execution Data
|
|
46
|
+
* Complete setup with canvas, narrative template, and actual execution spans.
|
|
47
|
+
* Shows full narrative rendering with execution data mapped to scenarios.
|
|
48
|
+
*/
|
|
49
|
+
export declare const ProgressiveStep3FullSetup: Story;
|
|
50
|
+
//# sourceMappingURL=CanvasDetailPanel.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasDetailPanel.stories.d.ts","sourceRoot":"","sources":["../../src/panels/CanvasDetailPanel.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAoB,MAAM,OAAO,CAAC;AAMzC;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;CAsBgC,CAAC;AAE3C,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AA4QnC;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,EAAE,KAiChD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,KAuCvC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PanelComponentProps } from '@principal-ade/panel-framework-core';
|
|
3
|
+
/**
|
|
4
|
+
* CanvasListPanel - A panel for displaying .otel.canvas files
|
|
5
|
+
*
|
|
6
|
+
* This panel shows:
|
|
7
|
+
* - List/grid of available canvas files from the file tree
|
|
8
|
+
* - Search functionality to filter canvases
|
|
9
|
+
* - Canvas metadata (name, source, path)
|
|
10
|
+
* - Click to select and emit events for detail views
|
|
11
|
+
*/
|
|
12
|
+
export declare const CanvasListPanel: React.FC<PanelComponentProps>;
|
|
13
|
+
//# sourceMappingURL=CanvasListPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasListPanel.d.ts","sourceRoot":"","sources":["../../src/panels/CanvasListPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAO/E;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAmTzD,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: React.FC<import("@principal-ade/panel-framework-core").PanelComponentProps>;
|
|
6
|
+
parameters: {
|
|
7
|
+
layout: string;
|
|
8
|
+
docs: {
|
|
9
|
+
description: {
|
|
10
|
+
component: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
tags: string[];
|
|
15
|
+
decorators: ((Story: import("storybook/internal/csf").PartialStoryFn<import("@storybook/react").ReactRenderer, {
|
|
16
|
+
context: import("@principal-ade/panel-framework-core").PanelContextValue;
|
|
17
|
+
actions: import("@principal-ade/panel-framework-core").PanelActions;
|
|
18
|
+
events: import("@principal-ade/panel-framework-core").PanelEventEmitter;
|
|
19
|
+
}>) => import("react/jsx-runtime").JSX.Element)[];
|
|
20
|
+
};
|
|
21
|
+
export default meta;
|
|
22
|
+
type Story = StoryObj<typeof meta>;
|
|
23
|
+
/**
|
|
24
|
+
* Default story showing the canvas list panel with multiple canvas files
|
|
25
|
+
*/
|
|
26
|
+
export declare const Default: Story;
|
|
27
|
+
/**
|
|
28
|
+
* Loading state
|
|
29
|
+
*/
|
|
30
|
+
export declare const Loading: Story;
|
|
31
|
+
/**
|
|
32
|
+
* Empty state with no canvas files
|
|
33
|
+
*/
|
|
34
|
+
export declare const Empty: Story;
|
|
35
|
+
/**
|
|
36
|
+
* With event handling - demonstrates event emission on canvas selection
|
|
37
|
+
*/
|
|
38
|
+
export declare const WithEventHandling: Story;
|
|
39
|
+
/**
|
|
40
|
+
* Single canvas file
|
|
41
|
+
*/
|
|
42
|
+
export declare const SingleCanvas: Story;
|
|
43
|
+
/**
|
|
44
|
+
* Many canvas files (scrolling behavior)
|
|
45
|
+
*/
|
|
46
|
+
export declare const ManyCanvases: Story;
|
|
47
|
+
//# sourceMappingURL=CanvasListPanel.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasListPanel.stories.d.ts","sourceRoot":"","sources":["../../src/panels/CanvasListPanel.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;CAsB8B,CAAC;AAEzC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAuCnC;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,KA8BrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,KA8BrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,KA8BnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAmD/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,KAuC1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,KAuC1B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { CanvasFile } from '../../execution-viewer/ExecutionLoader';
|
|
3
|
+
interface CanvasCardProps {
|
|
4
|
+
canvas: CanvasFile;
|
|
5
|
+
onClick: (canvas: CanvasFile) => void;
|
|
6
|
+
isSelected?: boolean;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* CanvasCard - Displays a canvas file in a card format
|
|
10
|
+
*/
|
|
11
|
+
export declare const CanvasCard: React.FC<CanvasCardProps>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=CanvasCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasCard.d.ts","sourceRoot":"","sources":["../../../../src/panels/canvas-list/components/CanvasCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAEzE,UAAU,eAAe;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAgFhD,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { PanelContextValue } from '@principal-ade/panel-framework-core';
|
|
2
|
+
import { type CanvasFile } from '../../execution-viewer/ExecutionLoader';
|
|
3
|
+
interface UseCanvasDataParams {
|
|
4
|
+
context: PanelContextValue;
|
|
5
|
+
}
|
|
6
|
+
interface UseCanvasDataReturn {
|
|
7
|
+
canvases: CanvasFile[];
|
|
8
|
+
isLoading: boolean;
|
|
9
|
+
error: string | null;
|
|
10
|
+
refreshCanvases: () => Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Hook to discover and load .otel.canvas files from the file tree
|
|
14
|
+
*/
|
|
15
|
+
export declare const useCanvasData: ({ context, }: UseCanvasDataParams) => UseCanvasDataReturn;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=useCanvasData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCanvasData.d.ts","sourceRoot":"","sources":["../../../../src/panels/canvas-list/hooks/useCanvasData.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAE1F,UAAU,mBAAmB;IAC3B,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAKD;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,cAE3B,mBAAmB,KAAG,mBAqExB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NarrativeRenderer.d.ts","sourceRoot":"","sources":["../../../src/panels/execution-viewer/NarrativeRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAC;AAG9F,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,QAAQ,EAAE,iBAAiB,CAAC;IAE5B,4BAA4B;IAC5B,MAAM,EAAE,SAAS,EAAE,CAAC;IAEpB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAE5B,0BAA0B;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,
|
|
1
|
+
{"version":3,"file":"NarrativeRenderer.d.ts","sourceRoot":"","sources":["../../../src/panels/execution-viewer/NarrativeRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAC;AAG9F,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,QAAQ,EAAE,iBAAiB,CAAC;IAE5B,4BAA4B;IAC5B,MAAM,EAAE,SAAS,EAAE,CAAC;IAEpB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAE5B,0BAA0B;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CA8X9D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NarrativeTemplatePanel.d.ts","sourceRoot":"","sources":["../../../src/panels/execution-viewer/NarrativeTemplatePanel.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"NarrativeTemplatePanel.d.ts","sourceRoot":"","sources":["../../../src/panels/execution-viewer/NarrativeTemplatePanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,UAAU,2BAA2B;IACnC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,mBAAmB,CAAC,EAAE,aAAa,EAAE,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAwYxE,CAAC"}
|